Compare commits

...

1521 Commits

Author SHA1 Message Date
Juan Picado @jotadeveloper
7f03b5f2c5 chore(release): 3.0.0-alpha.13 2018-02-16 18:14:25 +01:00
Juan Picado @jotadeveloper
f8285ed503 docs: update ssl section 2018-02-16 08:21:40 +01:00
Juan Picado @jotadeveloper
eea6cfdbca Merge pull request #575 from verdaccio/fix-574
fix: update doc and output console to generate https
2018-02-16 08:11:31 +01:00
Juan Picado @jotadeveloper
9c8abfb62e fix: update doc and output console to generate https 2018-02-16 08:03:33 +01:00
Juan Picado @jotadeveloper
5df9830c3a chore: update lock file and update dependency 2018-02-16 07:32:07 +01:00
Juan Picado @jotadeveloper
f7d8d8696d Merge pull request #573 from verdaccio/snyk-fix-5d02d4ff
chore: snyk new fixes for 1 vulnerable dependency path
2018-02-16 07:07:31 +01:00
snyk-bot
11f1fd76c6 fix: package.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/npm:lodash:20180130

Latest report for verdaccio/verdaccio:
https://snyk.io/test/github/verdaccio/verdaccio
2018-02-15 02:18:36 +00:00
Juan Picado @jotadeveloper
9693b1b157 docs(readme): update readme 2018-02-11 12:30:16 +01:00
Juan Picado @jotadeveloper
89cd52759b docs(wiki): update wiki main page 2018-02-11 12:26:08 +01:00
Juan Picado @jotadeveloper
4586e84dd0 Merge pull request #569 from verdaccio/renovate-update2
chore(deps): force renovate to resolve only 1 day per month
2018-02-11 11:55:41 +01:00
Juan Picado @jotadeveloper
d3baa2a1c6 chore(deps): force renovate to resolve only 1 day per month 2018-02-11 11:54:57 +01:00
Juan Picado @jotadeveloper
73cf045284 Merge pull request #568 from verdaccio/renovate-update
chore(deps): force renovate to resolve only 1 day per month
2018-02-11 11:52:54 +01:00
Juan Picado @jotadeveloper
8d10f8b815 chore(deps): force renovate to resolve only 1 day per month 2018-02-11 11:52:10 +01:00
Juan Picado @jotadeveloper
6df369da8e Merge pull request #564 from verdaccio/renovate/eslint-plugin-jest-21.x
chore(deps): update dependency eslint-plugin-jest to v21.8.0
2018-02-11 11:40:55 +01:00
Renovate Bot
3aa32ad70f chore(deps): update dependency eslint-plugin-jest to v21.8.0 2018-02-11 10:32:05 +00:00
Juan Picado @jotadeveloper
006afb638d Merge pull request #562 from verdaccio/renovate/babel-plugin-flow-runtime-0.x
chore(deps): update dependency babel-plugin-flow-runtime to v0.17.0
2018-02-11 11:31:30 +01:00
Renovate Bot
55c319b1d5 chore(deps): update dependency babel-plugin-flow-runtime to v0.17.0 2018-02-11 08:58:33 +00:00
verdacciobot
44d9975416 docs(translation): update translation
docs(translation): update translation
2018-02-11 09:58:10 +01:00
Juan Picado @jotadeveloper
df6978ef68 Merge pull request #555 from verdaccio/renovate/pin-dependencies
chore(deps): pin dependencies
2018-02-11 09:56:33 +01:00
Renovate Bot
23ddbdcc7e chore(deps): pin dependencies 2018-02-10 23:12:13 +00:00
Juan Picado @jotadeveloper
bcf4581a8e Merge pull request #561 from verdaccio/test-ui
test: e2e testing with puppeteer
2018-02-11 00:11:43 +01:00
Juan Picado @jotadeveloper
66031363b9 test(e2e): add test scenario for sidebar 2018-02-11 00:02:14 +01:00
Juan Picado @jotadeveloper
e91bb8e723 test(e2e): add test scenario to load readme on detail page 2018-02-10 17:09:02 +01:00
Juan Picado @jotadeveloper
705eda1697 fix: broken import reference 2018-02-10 16:56:55 +01:00
Juan Picado @jotadeveloper
508d175778 test(e2e): add test scenario to display published packages on ui 2018-02-10 16:45:29 +01:00
Juan Picado @jotadeveloper
1f05808018 test(e2e): add logout test 2018-02-10 13:20:17 +01:00
Juan Picado @jotadeveloper
8c2a755f84 test(e2e): add test scenario to login user 2018-02-10 09:41:01 +01:00
Juan Picado @jotadeveloper
9807e21dee test: add e2e support 2018-02-09 08:42:34 +01:00
Juan Picado @jotadeveloper
780874ece9 test: add husky and lint 2018-02-08 23:25:18 +01:00
Juan Picado @jotadeveloper
27286a5bff test: add e2e test - testing ci mode 2018-02-08 22:45:13 +01:00
Juan Picado @jotadeveloper
784bcf8ecc Merge pull request #554 from verdaccio/renovate/docker-node-9.x
chore(deps): update node dockerfile tag to v9.5.0-alpine
2018-02-05 09:25:16 +01:00
Juan Picado @jotadeveloper
a96ac10e3b chore(release): 3.0.0-alpha.12 2018-02-04 15:05:45 +01:00
Juan Picado @jotadeveloper
ab4235c7f7 Merge pull request #556 from verdaccio/es6-improve
Increase flow support and es6
2018-02-04 14:51:28 +01:00
Juan Picado @jotadeveloper
d561580d68 chore(flow): update flow definitions 2018-02-04 14:35:03 +01:00
Juan Picado @jotadeveloper
f7414e9bb2 chore(flow): update flow definitions for proxy 2018-02-04 14:15:51 +01:00
Juan Picado @jotadeveloper
7e06ccc8ac chore(flow): update flow definitions 2018-02-04 02:12:45 +01:00
Juan Picado @jotadeveloper
7a86b71342 refactor(flow): add flow support to storage 2018-02-04 00:24:28 +01:00
Juan Picado @jotadeveloper
42f23da363 refactor: methods to camel case 2018-02-03 22:36:28 +01:00
Juan Picado @jotadeveloper
67414a5ed5 refactor: getPackage method 2018-02-03 22:33:14 +01:00
Juan Picado @jotadeveloper
bee4d1cf4f test(unit): add test for uplink offline, refactor proxy 2018-02-03 22:21:23 +01:00
Juan Picado @jotadeveloper
0cc29e605d chore(style): update title size 2018-02-03 19:43:26 +01:00
Juan Picado @jotadeveloper
1570810f99 refactor: web api to es6 2018-02-03 19:33:04 +01:00
Juan Picado @jotadeveloper
3bb374c84a chore: style improvements 2018-02-03 19:27:55 +01:00
Juan Picado @jotadeveloper
3f3c789e21 Merge pull request #552 from verdaccio/update-dependencies
chore: update dependencies
2018-02-03 17:28:20 +01:00
Renovate Bot
d16bd386ca chore(deps): update node to tag 9.5.0-alpine 2018-02-03 16:14:58 +00:00
Juan Picado @jotadeveloper
64daa46756 chore: update dependencies 2018-02-03 16:47:33 +01:00
Juan Picado @jotadeveloper
3efe428f1c Merge pull request #540 from verdaccio/renovate/pin-dependencies
chore(deps): pin dependencies
2018-02-03 13:48:22 +01:00
Renovate Bot
354f19edce chore(deps): pin dependencies 2018-02-03 12:26:56 +00:00
Juan Picado @jotadeveloper
15d7f0e22a Merge pull request #539 from verdaccio/new_footer
feat: new footer, close #486
2018-02-03 13:25:53 +01:00
Meeeeow
3b568cd74b refactor: add links to verdaccio official website 2018-02-03 20:10:56 +08:00
Meeeeow
b35ccc2f28 refactor: remove span tag, fill country name into alt property 2018-02-03 20:03:40 +08:00
Meeeeow
da610e562f refactor: re-design footer 2018-02-03 19:39:01 +08:00
Meeeeow
982b974e63 Merge branch 'master' into new_footer 2018-02-03 18:06:11 +08:00
Juan Picado @jotadeveloper
125cb224b5 Merge pull request #543 from wporta/master
docs: small spelling fix
2018-01-30 23:25:16 +01:00
Wilfredo Porta
129f1fe6a7 docs: small spelling fix 2018-01-30 15:55:03 -06:00
Juan Picado @jotadeveloper
8e646eb03f chore(release): 3.0.0-alpha.11 2018-01-28 20:51:15 +01:00
Juan Picado @jotadeveloper
bd6b723465 Merge pull request #534 from verdaccio/feature-api-unit-test
test(unit): add unit test for enpoints
2018-01-28 20:41:07 +01:00
Juan Picado @jotadeveloper
885345f4cf test(unit): add unit test for publish and unpublish 2018-01-28 20:25:19 +01:00
Juan Picado @jotadeveloper
c08f257bf1 test(unit): add unit test for basic searc 2018-01-28 18:58:51 +01:00
Juan Picado @jotadeveloper
7c717359fc chore(build): skip test 2018-01-28 18:48:56 +01:00
Meeeeow
cd96b95651 feat: new footer, close #486 2018-01-29 01:32:13 +08:00
Juan Picado @jotadeveloper
234299fe2a test(dist-tag): add unit test for dist-tag 2018-01-28 14:51:51 +01:00
Juan Picado @jotadeveloper
ec36521ab8 fix(dist-tag): fix #411 latest tag is incorrect 2018-01-28 11:53:49 +01:00
Juan Picado @jotadeveloper
819f06015e test(unit): add unit test for packages endpoint 2018-01-28 11:38:22 +01:00
Juan Picado @jotadeveloper
3e41dcaf6e refactor(test): remove deprecated groups 2018-01-28 11:37:33 +01:00
Juan Picado @jotadeveloper
181ea648fa fix(flow): done does not accept arguments 2018-01-28 09:46:22 +01:00
Juan Picado @jotadeveloper
e4a21839d4 chore(flowt): update jest definition 2018-01-28 09:35:33 +01:00
Juan Picado @jotadeveloper
5140b57efb refactor(test): remove deprecate auth support, fix all test 2018-01-28 02:47:54 +01:00
Juan Picado @jotadeveloper
aa3101ef9a test(unit): add test for add_user and login 2018-01-26 18:16:51 +01:00
Juan Picado @jotadeveloper
67c63892d3 refactor(auth): remove deprecated add user logic 2018-01-26 07:35:07 +01:00
Juan Picado @jotadeveloper
a5ac23ef14 test(unit): relocate unit test 2018-01-25 23:31:47 +01:00
Juan Picado @jotadeveloper
d9a008e881 test(unit): add unit test for add user 2018-01-25 23:14:03 +01:00
Juan Picado @jotadeveloper
eaa0e3f8bd test(unit): add unit test for ping and whoiam 2018-01-25 21:37:37 +01:00
Juan Picado @jotadeveloper
19579a2e26 Merge pull request #531 from hiwanz/patch-1
Fix broken URL
2018-01-25 07:34:24 +01:00
丸子
ed65d00484 Fix broken URL 2018-01-25 14:17:41 +08:00
Juan Picado @jotadeveloper
94d47ee149 Merge pull request #529 from verdaccio/fix-525
docs(config): add http proxy configuration
2018-01-24 22:09:00 +01:00
Juan Picado @jotadeveloper
21621c712b docs(config): add http proxy configuration 2018-01-24 21:53:35 +01:00
verdacciobot
b30a515622 docs(translate): update website Spanish and Portuguese
docs(translate): update website Spanish and Portuguese
2018-01-23 08:59:05 +01:00
Juan Picado @jotadeveloper
c9711ccc5d Merge pull request #524 from verdaccio/juanpicado-patch-1
chore(docs): Enable Português
2018-01-23 08:07:35 +01:00
Juan Picado @jotadeveloper
ae955a4d2b chore(docs): Enable Português 2018-01-23 07:20:32 +01:00
Juan Picado @jotadeveloper
92b5af5819 Merge pull request #523 from Filiosoft/master
Filiosoft uses Verdaccio!
2018-01-23 07:16:21 +01:00
Noah Prail
8c6cbb92cd Filiosoft uses Verdaccio! 2018-01-22 20:22:55 -05:00
Juan Picado @jotadeveloper
38bb1e6433 Merge pull request #522 from verdaccio/feat-website
chore(website): enable algolia
2018-01-22 20:35:50 +01:00
Juan Picado @jotadeveloper
dd48ba1947 chore(website): enable algolia 2018-01-22 20:29:34 +01:00
Juan Picado @jotadeveloper
2c6256dcd8 Merge pull request #520 from verdaccio/renovate/react-hot-loader-4.x
chore(deps): update dependency react-hot-loader to v4.0.0-beta.17
2018-01-22 17:55:52 +01:00
Renovate Bot
f8df3753c8 chore(deps): update dependency react-hot-loader to v4.0.0-beta.17 2018-01-22 16:01:27 +00:00
Juan Picado @jotadeveloper
d29af71218 Merge pull request #510 from verdaccio/renovate/webpack-dev-server-2.x
chore(deps): update dependency webpack-dev-server to v2.11.1
2018-01-22 08:40:17 +01:00
Renovate Bot
b4235af5e6 chore(deps): update dependency webpack-dev-server to v2.11.1 2018-01-22 07:31:01 +00:00
Juan Picado @jotadeveloper
b961f49da8 Merge pull request #518 from verdaccio/renovate/pin-dependencies
chore(deps): pin dependencies
2018-01-22 08:29:25 +01:00
Renovate Bot
ab5c0a4a69 chore(deps): pin dependencies 2018-01-22 06:47:25 +00:00
Juan Picado @jotadeveloper
04418bfb08 Merge pull request #503 from verdaccio/renovate/jest-monorepo
chore(deps): update jest monorepo packages to v22.1.4
2018-01-22 07:46:46 +01:00
Juan Picado @jotadeveloper
5acdc8778b Merge branch 'master' into renovate/jest-monorepo 2018-01-22 07:39:17 +01:00
Juan Picado @jotadeveloper
7a6ea9652d Merge pull request #470 from bufferoverflow/chore/commitlint
chore(lint): use commitlint as part of lint
2018-01-22 07:37:50 +01:00
Roger Meier
9939f14323 chore: use commitlint and git commitmsg hook with husky 2018-01-21 21:05:18 +01:00
Renovate Bot
52cdcc65fa chore(deps): update jest monorepo packages 2018-01-21 16:05:17 +00:00
Juan Picado @jotadeveloper
4da2d2a670 Merge pull request #516 from verdaccio/bufferoverflow-patch-1
chore(crowdin): custom conventional commit message
2018-01-21 16:25:31 +01:00
Roger Meier
74f42c603e chore(crowdin): custom conventional commit message 2018-01-21 14:19:41 +01:00
verdacciobot
ed37e5d261 docs: update translations
docs: update translations
2018-01-21 11:29:14 +01:00
Juan Picado @jotadeveloper
51436e8105 Merge pull request #508 from bufferoverflow/chore/travis
add travis as secon ci
2018-01-21 11:18:10 +01:00
Roger Meier
dccb79faa4 chore: use travis-ci 2018-01-21 10:58:39 +01:00
Juan Picado @jotadeveloper
d1aa55cd73 docs: remove invalid string: 2018-01-21 10:23:24 +01:00
Juan Picado @jotadeveloper
e962e81a71 docs: update node api: 2018-01-21 10:12:17 +01:00
Juan Picado @jotadeveloper
7281f6e365 docs: add multiple implementation references 2018-01-21 10:10:21 +01:00
verdacciobot
d1bed601b7 docs: update translations
docs: update translations
2018-01-21 00:04:36 +01:00
Juan Picado @jotadeveloper
4592049a7e fix: add cname to docusaurus config file 2018-01-20 23:36:23 +01:00
Juan Picado @jotadeveloper
3c6a219c60 Merge pull request #511 from verdaccio/fix-502
fix: Update website and move it to the root
2018-01-20 23:02:21 +01:00
Juan Picado @jotadeveloper
7514d04351 fix: Update website and move it to the root 2018-01-20 23:00:45 +01:00
Juan Picado @jotadeveloper
2142c62ece Merge pull request #505 from verdaccio/renovate/docker-node-9.x
chore(deps): update node dockerfile tag to v9.4.0-alpine
2018-01-20 12:28:25 +01:00
Renovate Bot
e141f39953 chore(deps): update node to tag 9.4.0-alpine 2018-01-20 11:21:26 +00:00
Juan Picado @jotadeveloper
57d4127345 Merge pull request #504 from verdaccio/renovate/react-hot-loader-4.x
chore(deps): update dependency react-hot-loader to v4.0.0-beta.15
2018-01-20 11:33:46 +01:00
Renovate Bot
cd828fc59b chore(deps): update dependency react-hot-loader to v4.0.0-beta.15 2018-01-20 10:20:57 +00:00
Juan Picado @jotadeveloper
ed4db42a58 Merge pull request #501 from verdaccio/renovate/eslint-plugin-jest-21.x
chore(deps): update dependency eslint-plugin-jest to v21.7.0
2018-01-20 10:42:29 +01:00
Renovate Bot
a08c9f9189 chore(deps): update dependency eslint-plugin-jest to v21.7.0 2018-01-20 09:17:37 +00:00
Juan Picado @jotadeveloper
97511f9bdf Merge pull request #499 from verdaccio/renovate/css-loader-0.x
chore(deps): update dependency css-loader to v0.28.9
2018-01-20 09:26:10 +01:00
Renovate Bot
89f6e3c431 chore(deps): update dependency css-loader to v0.28.9 2018-01-20 08:12:16 +00:00
verdacciobot
281933a998 New Crowdin translations (#479)
* New translations contributing.md (Chinese Simplified)

* New translations contributing.md (Chinese Traditional)

* New translations contributing.md (Chinese Traditional, Hong Kong)

* New translations contributing.md (Portuguese, Brazilian)

* New translations contributing.md (Spanish)

* New translations contributing.md (Urdu (Pakistan))

* New translations docker.md (Chinese Simplified)

* New translations docker.md (Chinese Traditional)

* New translations docker.md (Chinese Traditional, Hong Kong)

* New translations docker.md (Portuguese, Brazilian)

* New translations docker.md (Spanish)

* New translations docker.md (Urdu (Pakistan))

* New translations node-api.md (Chinese Simplified)

* New translations node-api.md (Chinese Traditional)

* New translations node-api.md (Chinese Traditional, Hong Kong)

* New translations node-api.md (Portuguese, Brazilian)

* New translations node-api.md (Spanish)

* New translations node-api.md (Urdu (Pakistan))

* New translations uplinks.md (Chinese Traditional)

* New translations uplinks.md (Chinese Traditional, Hong Kong)

* New translations uplinks.md (Portuguese, Brazilian)

* New translations uplinks.md (Spanish)

* New translations uplinks.md (Urdu (Pakistan))

* New translations uplinks.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations config.md (Spanish)

* New translations config.md (Urdu (Pakistan))

* New translations config.md (Chinese Traditional, Hong Kong)

* New translations config.md (Portuguese, Brazilian)

* New translations config.md (Chinese Traditional)
2018-01-20 09:09:16 +01:00
Juan Picado @jotadeveloper
83ba46b986 Merge pull request #482 from verdaccio/renovate/pin-docker-digests
chore(deps): pin dockerfile node:9.2.0-alpine image digest
2018-01-20 09:08:34 +01:00
Renovate Bot
61427892ca chore(deps): update node to tag 9.2.0-alpine 2018-01-19 21:09:39 +00:00
Juan Picado @jotadeveloper
e0b8c05e51 Merge pull request #497 from verdaccio/fix-445
fix: IPv6 set up
2018-01-19 22:09:35 +01:00
Juan Picado @jotadeveloper
71a0bcaf6f fix: IPv6 set up 2018-01-19 21:40:13 +01:00
Juan Picado @jotadeveloper
96065514df Merge pull request #496 from verdaccio/fix-upkink-doc
fix #493 Update uplink documentation adding CA property
2018-01-19 21:31:45 +01:00
Juan Picado @jotadeveloper
5f57cc6310 fix #493 Update uplink documentation adding CA property 2018-01-19 21:19:57 +01:00
Juan Picado @jotadeveloper
b0d6935071 Update README.md 2018-01-19 07:27:00 +01:00
Juan Picado @jotadeveloper
b1115fed54 chore(release): 3.0.0-alpha.10 2018-01-18 07:35:29 +01:00
Juan Picado @jotadeveloper
015a0a7f29 Merge pull request #491 from verdaccio/feature-node-api
refactor: add node api to launch verdaccio programmatically
2018-01-18 07:03:53 +01:00
Juan Picado @jotadeveloper
3d9cb2075e chore: update readme 2018-01-18 07:03:21 +01:00
Juan Picado @jotadeveloper
6d491fdde7 chore: enable codecov 2018-01-18 07:03:21 +01:00
Juan Picado @jotadeveloper
7d9736eaba fix: wrong import reference 2018-01-18 07:03:21 +01:00
Juan Picado @jotadeveloper
046e8b1ae1 feat: add node api to launch verdaccio programmatically 2018-01-18 07:03:12 +01:00
Juan Picado @jotadeveloper
d3186896d0 chore(release): 3.0.0-alpha.9 2018-01-17 08:47:48 +01:00
Juan Picado @jotadeveloper
fc116b5907 fix: update local-storage dep to fix unit test 2018-01-17 08:37:58 +01:00
Juan Picado @jotadeveloper
bd288e57f0 fix: update lock file 2018-01-17 00:02:56 +01:00
Juan Picado @jotadeveloper
004d5b09f9 fix: issue on local storage on download tarballs 2018-01-16 23:57:44 +01:00
Juan Picado @jotadeveloper
a27e2624b2 chore(build): build code on prepublish 2018-01-16 23:56:17 +01:00
Juan Picado @jotadeveloper
689476de6f Update docker.md 2018-01-16 22:49:53 +01:00
Juan Picado @jotadeveloper
695fe50d2c chore(release): 3.0.0-alpha.8 2018-01-16 09:16:04 +01:00
Juan Picado @jotadeveloper
a2d2754339 chore(build): update dep version 2018-01-16 07:56:52 +01:00
Juan Picado @jotadeveloper
a16e3d6a06 Merge pull request #481 from verdaccio/renovate/pin-dependencies
chore(deps): pin dependencies
2018-01-16 00:47:56 +01:00
Renovate Bot
7e7270c185 chore(deps): pin dependencies 2018-01-15 23:40:10 +00:00
Juan Picado @jotadeveloper
fd480306b7 Merge pull request #480 from verdaccio/renovate/configure
Configure Renovate
2018-01-16 00:39:31 +01:00
Juan Picado @jotadeveloper
cefbb7051d fix: update renovate app conf 2018-01-16 00:38:55 +01:00
renovate[bot]
6363daf7e8 Add renovate.json 2018-01-15 23:26:52 +00:00
Juan Picado @jotadeveloper
8b36ff6a16 Merge pull request #477 from verdaccio/update_deps
build: update dependencies
2018-01-16 00:26:02 +01:00
Juan Picado @jotadeveloper
c4d6ad2b99 chore(build): remove unused dep: 2018-01-16 00:15:27 +01:00
Juan Picado @jotadeveloper
123625419a build: update flow to latest 2018-01-15 23:04:58 +00:00
Juan Picado @jotadeveloper
258e39a762 build: update jest cli 2018-01-15 23:04:58 +00:00
Juan Picado @jotadeveloper
53d4bf6597 build: update jest and babel deps 2018-01-15 23:04:58 +00:00
Juan Picado @jotadeveloper
ccb14a54df build: update jest dependencies 2018-01-15 23:04:58 +00:00
Juan Picado @jotadeveloper
8b6b98a56a build: update dependencies 2018-01-15 23:04:58 +00:00
Juan Picado @jotadeveloper
cc2c86856e Merge pull request #478 from drubin/improve-docs
Improve docs
2018-01-16 00:04:54 +01:00
David Rubin
092767b4cb docs: Improve english in pull request template 2018-01-15 23:22:25 +01:00
David Rubin
318c41c648 docs: Fix typos and links
* Update chef name
* Replace broken link
* Fix image (GitHub seemed to have changed their markdown syntax)
2018-01-15 23:15:42 +01:00
Juan Picado @jotadeveloper
19f55589b3 fix: display plugins loaded by default 2018-01-13 20:46:31 +01:00
Juan Picado @jotadeveloper
39859c174a chore(release): 3.0.0-alpha.7 2018-01-13 19:08:11 +01:00
Juan Picado @jotadeveloper
05a35b6d01 build: remove greenkeeper 2018-01-13 19:08:03 +01:00
Juan Picado @jotadeveloper
b4c44a1b8b chore(release): 3.0.0-alpha.6 2018-01-13 18:33:59 +01:00
Juan Picado @jotadeveloper
6b33084285 build: circleci website deployment update 2018-01-13 18:28:07 +01:00
Juan Picado @jotadeveloper
b8a027f6af chore(release): 3.0.0-alpha.5 2018-01-13 17:05:17 +01:00
Juan Picado @jotadeveloper
c6c02f8c75 Merge pull request #471 from verdaccio/feature-storage-plugin
refactor: resolve local storage path on the plugin it self
2018-01-13 17:04:21 +01:00
Juan Picado @jotadeveloper
7b1728a404 refactor: resolve local storage path on the plugin it self 2018-01-13 16:55:14 +01:00
Juan Picado @jotadeveloper
d145224b70 Merge pull request #469 from bufferoverflow/chore/dependencies
use david-dm instead of greenkeeper
2018-01-12 18:47:42 +01:00
Roger Meier
a91eaae4bb chore: use david-dm instead of greenkeeper 2018-01-12 14:23:19 +01:00
verdacciobot
3ea7f9a45f New Crowdin translations (#463)
* New translations docker.md (Spanish)

* New translations docker.md (Spanish)

* New translations docker.md (Spanish)

* New translations en.json (Portuguese, Brazilian)

* New translations install.md (Portuguese, Brazilian)

* New translations cli.md (Portuguese, Brazilian)

* New translations config.md (Portuguese, Brazilian)

* New translations install.md (Portuguese, Brazilian)
2018-01-11 06:23:50 +01:00
Juan Picado @jotadeveloper
32273eb60e Merge pull request #466 from coreyjewett/patch-1
fix link to server.md
2018-01-11 06:23:24 +01:00
Corey Jewett
a545557e93 fix link to server.md 2018-01-10 18:17:56 -08:00
Juan Picado @jotadeveloper
c3352fde4a Update README.md 2018-01-10 17:00:05 +01:00
Juan Picado @jotadeveloper
0e934d414f Update languages.js 2018-01-10 09:08:15 +01:00
Juan Picado @jotadeveloper
d968e9e2c4 docs: add tracking id 2018-01-10 08:34:18 +01:00
Juan Picado @jotadeveloper
01676cd57d docs: add static files 2018-01-10 03:56:44 +01:00
Juan Picado @jotadeveloper
c66f568ecb build: ignore greenkeeper 2018-01-10 03:52:19 +01:00
Juan Picado @jotadeveloper
0592078931 build: remove build step for website 2018-01-10 03:49:12 +01:00
verdacciobot
66b2175584 New Crowdin translations (#461)
* New translations ansible.md (Chinese Traditional)

* New translations uplinks.md (Chinese Traditional, Hong Kong)

* New translations ssl.md (Urdu (Pakistan))

* New translations test.md (Chinese Traditional)

* New translations test.md (Chinese Traditional, Hong Kong)

* New translations test.md (Portuguese, Brazilian)

* New translations test.md (Spanish)

* New translations test.md (Urdu (Pakistan))

* New translations uplinks.md (Chinese Traditional)

* New translations uplinks.md (Portuguese, Brazilian)

* New translations ssl.md (Portuguese, Brazilian)

* New translations uplinks.md (Spanish)

* New translations uplinks.md (Urdu (Pakistan))

* New translations use-cases.md (Chinese Traditional)

* New translations use-cases.md (Chinese Traditional, Hong Kong)

* New translations use-cases.md (Portuguese, Brazilian)

* New translations use-cases.md (Spanish)

* New translations use-cases.md (Urdu (Pakistan))

* New translations ssl.md (Spanish)

* New translations ssl.md (Chinese Traditional, Hong Kong)

* New translations web.md (Chinese Traditional, Hong Kong)

* New translations reverse-proxy.md (Chinese Traditional, Hong Kong)

* New translations protect-your-dependencies.md (Urdu (Pakistan))

* New translations repositories.md (Chinese Traditional)

* New translations repositories.md (Chinese Traditional, Hong Kong)

* New translations repositories.md (Portuguese, Brazilian)

* New translations repositories.md (Spanish)

* New translations repositories.md (Urdu (Pakistan))

* New translations reverse-proxy.md (Chinese Traditional)

* New translations reverse-proxy.md (Portuguese, Brazilian)

* New translations ssl.md (Chinese Traditional)

* New translations reverse-proxy.md (Spanish)

* New translations reverse-proxy.md (Urdu (Pakistan))

* New translations server.md (Chinese Traditional)

* New translations server.md (Chinese Traditional, Hong Kong)

* New translations server.md (Portuguese, Brazilian)

* New translations server.md (Spanish)

* New translations server.md (Urdu (Pakistan))

* New translations web.md (Chinese Traditional)

* New translations web.md (Portuguese, Brazilian)

* New translations protect-your-dependencies.md (Portuguese, Brazilian)

* New translations repositories.md (Chinese Simplified)

* New translations install.md (Chinese Simplified)

* New translations kubernetes.md (Chinese Simplified)

* New translations logger.md (Chinese Simplified)

* New translations notifications.md (Chinese Simplified)

* New translations packages.md (Chinese Simplified)

* New translations plugins.md (Chinese Simplified)

* New translations protect-your-dependencies.md (Chinese Simplified)

* New translations reverse-proxy.md (Chinese Simplified)

* New translations home.md (Chinese Simplified)

* New translations server.md (Chinese Simplified)

* New translations ssl.md (Chinese Simplified)

* New translations test.md (Chinese Simplified)

* New translations uplinks.md (Chinese Simplified)

* New translations use-cases.md (Chinese Simplified)

* New translations web.md (Chinese Simplified)

* New translations windows.md (Chinese Simplified)

* New translations iis-server.md (Chinese Simplified)

* New translations docker.md (Chinese Simplified)

* New translations web.md (Spanish)

* New translations web.md (Urdu (Pakistan))

* New translations windows.md (Chinese Traditional)

* New translations windows.md (Chinese Traditional, Hong Kong)

* New translations windows.md (Portuguese, Brazilian)

* New translations windows.md (Spanish)

* New translations windows.md (Urdu (Pakistan))

* New translations dev-plugins.md (Chinese Simplified)

* New translations ansible.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations cli.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations contributing.md (Chinese Simplified)

* New translations protect-your-dependencies.md (Spanish)

* New translations protect-your-dependencies.md (Chinese Traditional, Hong Kong)

* New translations ansible.md (Chinese Traditional, Hong Kong)

* New translations dev-plugins.md (Chinese Traditional)

* New translations config.md (Spanish)

* New translations config.md (Urdu (Pakistan))

* New translations contributing.md (Chinese Traditional)

* New translations contributing.md (Chinese Traditional, Hong Kong)

* New translations contributing.md (Portuguese, Brazilian)

* New translations contributing.md (Spanish)

* New translations contributing.md (Urdu (Pakistan))

* New translations dev-plugins.md (Chinese Traditional, Hong Kong)

* New translations config.md (Chinese Traditional, Hong Kong)

* New translations dev-plugins.md (Portuguese, Brazilian)

* New translations dev-plugins.md (Spanish)

* New translations dev-plugins.md (Urdu (Pakistan))

* New translations docker.md (Chinese Traditional)

* New translations docker.md (Chinese Traditional, Hong Kong)

* New translations docker.md (Portuguese, Brazilian)

* New translations docker.md (Spanish)

* New translations config.md (Portuguese, Brazilian)

* New translations config.md (Chinese Traditional)

* New translations home.md (Chinese Traditional)

* New translations auth.md (Urdu (Pakistan))

* New translations ansible.md (Portuguese, Brazilian)

* New translations ansible.md (Spanish)

* New translations ansible.md (Urdu (Pakistan))

* New translations auth.md (Chinese Traditional)

* New translations auth.md (Chinese Traditional, Hong Kong)

* New translations auth.md (Portuguese, Brazilian)

* New translations auth.md (Spanish)

* New translations cli.md (Urdu (Pakistan))

* New translations cli.md (Chinese Traditional)

* New translations cli.md (Chinese Traditional, Hong Kong)

* New translations cli.md (Portuguese, Brazilian)

* New translations cli.md (Spanish)

* New translations docker.md (Urdu (Pakistan))

* New translations home.md (Chinese Traditional, Hong Kong)

* New translations protect-your-dependencies.md (Chinese Traditional)

* New translations packages.md (Chinese Traditional, Hong Kong)

* New translations logger.md (Urdu (Pakistan))

* New translations notifications.md (Chinese Traditional)

* New translations notifications.md (Chinese Traditional, Hong Kong)

* New translations notifications.md (Portuguese, Brazilian)

* New translations notifications.md (Spanish)

* New translations notifications.md (Urdu (Pakistan))

* New translations packages.md (Chinese Traditional)

* New translations packages.md (Portuguese, Brazilian)

* New translations logger.md (Portuguese, Brazilian)

* New translations packages.md (Spanish)

* New translations packages.md (Urdu (Pakistan))

* New translations plugins.md (Chinese Traditional)

* New translations plugins.md (Chinese Traditional, Hong Kong)

* New translations plugins.md (Portuguese, Brazilian)

* New translations plugins.md (Spanish)

* New translations plugins.md (Urdu (Pakistan))

* New translations logger.md (Spanish)

* New translations logger.md (Chinese Traditional, Hong Kong)

* New translations home.md (Portuguese, Brazilian)

* New translations install.md (Chinese Traditional)

* New translations home.md (Spanish)

* New translations home.md (Urdu (Pakistan))

* New translations iis-server.md (Chinese Traditional)

* New translations iis-server.md (Chinese Traditional, Hong Kong)

* New translations iis-server.md (Portuguese, Brazilian)

* New translations iis-server.md (Spanish)

* New translations iis-server.md (Urdu (Pakistan))

* New translations install.md (Chinese Traditional, Hong Kong)

* New translations logger.md (Chinese Traditional)

* New translations install.md (Portuguese, Brazilian)

* New translations install.md (Spanish)

* New translations install.md (Urdu (Pakistan))

* New translations kubernetes.md (Chinese Traditional)

* New translations kubernetes.md (Chinese Traditional, Hong Kong)

* New translations kubernetes.md (Portuguese, Brazilian)

* New translations kubernetes.md (Spanish)

* New translations kubernetes.md (Urdu (Pakistan))
2018-01-09 18:52:17 +01:00
Juan Picado @jotadeveloper
84733c100f Website Deployment (#462)
build: publish the website
2018-01-09 18:44:40 +01:00
Juan Picado @jotadeveloper
ccba5e9a4c docs: enable Chinese Simplified translation 2018-01-09 18:16:20 +01:00
Juan Picado @jotadeveloper
965fff2f6c docs: enable Chinese Simplified translation 2018-01-09 18:02:30 +01:00
Juan Picado @jotadeveloper
c9d1892d66 docs: update and fix several pages 2018-01-09 18:00:47 +01:00
verdacciobot
b37f05f11d New Crowdin translations (#460)
* New translations notifications.md (Chinese Simplified)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Chinese Traditional)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Spanish)

* New translations en.json (Urdu (Pakistan))

* New translations notifications.md (Chinese Traditional)

* New translations notifications.md (Chinese Traditional, Hong Kong)

* New translations notifications.md (Portuguese, Brazilian)

* New translations notifications.md (Spanish)

* New translations notifications.md (Urdu (Pakistan))

* New translations en.json (Chinese Simplified)

* New translations web.md (Spanish)
2018-01-09 17:27:08 +01:00
verdacciobot
cb18eeae4f New Crowdin translations (#458)
* New translations notifications.md (Chinese Simplified)

* New translations en.json (Chinese Traditional, Hong Kong)

* New translations en.json (Chinese Traditional)

* New translations en.json (Portuguese, Brazilian)

* New translations en.json (Spanish)

* New translations en.json (Urdu (Pakistan))

* New translations notifications.md (Chinese Traditional)

* New translations notifications.md (Chinese Traditional, Hong Kong)

* New translations notifications.md (Portuguese, Brazilian)

* New translations notifications.md (Spanish)

* New translations notifications.md (Urdu (Pakistan))

* New translations en.json (Chinese Simplified)
2018-01-09 09:55:16 +01:00
Juan Picado @jotadeveloper
a24ab094aa Set theme jekyll-theme-minimal 2018-01-09 07:12:53 +01:00
Juan Picado @jotadeveloper
d5adcbd67e docs: remove link 2018-01-08 23:06:28 +01:00
Juan Picado @jotadeveloper
4b3ec7fee5 docs: add missing column 2018-01-08 23:04:38 +01:00
Juan Picado @jotadeveloper
415e31b1f8 chore(release): 3.0.0-alpha.4 2018-01-08 22:53:04 +01:00
Juan Picado @jotadeveloper
8a9aaa81c0 docs: update license on package.json 2018-01-08 22:52:20 +01:00
verdacciobot
af94c80597 New Crowdin translations (#457)
* New translations ansible.md (Chinese Simplified)

* New translations packages.md (Chinese Simplified)

* New translations windows.md (Chinese Simplified)

* New translations web.md (Chinese Simplified)

* New translations use-cases.md (Chinese Simplified)

* New translations uplinks.md (Chinese Simplified)

* New translations test.md (Chinese Simplified)

* New translations ssl.md (Chinese Simplified)

* New translations server.md (Chinese Simplified)

* New translations reverse-proxy.md (Chinese Simplified)

* New translations repositories.md (Chinese Simplified)

* New translations protect-your-dependencies.md (Chinese Simplified)

* New translations plugins.md (Chinese Simplified)

* New translations notifications.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations logger.md (Chinese Simplified)

* New translations kubernetes.md (Chinese Simplified)

* New translations install.md (Chinese Simplified)

* New translations index.md (Chinese Simplified)

* New translations iis-server.md (Chinese Simplified)

* New translations home.md (Chinese Simplified)

* New translations docker.md (Chinese Simplified)

* New translations dev-plugins.md (Chinese Simplified)

* New translations contributing.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations cli.md (Chinese Simplified)

* New translations build.md (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations install.md (Chinese Simplified)

* New translations install.md (Chinese Simplified)

* New translations home.md (Chinese Simplified)

* New translations cli.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations en.json (Spanish)

* New translations en.json (Spanish)

* New translations en.json (Spanish)

* New translations en.json (Spanish)

* New translations en.json (Spanish)

* New translations config.md (Chinese Simplified)

* New translations config.md (Spanish)

* New translations config.md (Urdu (Pakistan))

* New translations config.md (Chinese Traditional, Hong Kong)

* New translations config.md (Portuguese, Brazilian)

* New translations config.md (Chinese Traditional)

* New translations config.md (Spanish)

* New translations config.md (Spanish)

* New translations config.md (Spanish)

* New translations config.md (Spanish)
2018-01-08 22:14:06 +01:00
verdacciobot
cfb169be0f New Crowdin translations (#456)
* New translations ansible.md (Chinese Simplified)

* New translations packages.md (Chinese Simplified)

* New translations windows.md (Chinese Simplified)

* New translations web.md (Chinese Simplified)

* New translations use-cases.md (Chinese Simplified)

* New translations uplinks.md (Chinese Simplified)

* New translations test.md (Chinese Simplified)

* New translations ssl.md (Chinese Simplified)

* New translations server.md (Chinese Simplified)

* New translations reverse-proxy.md (Chinese Simplified)

* New translations repositories.md (Chinese Simplified)

* New translations protect-your-dependencies.md (Chinese Simplified)

* New translations plugins.md (Chinese Simplified)

* New translations notifications.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations logger.md (Chinese Simplified)

* New translations kubernetes.md (Chinese Simplified)

* New translations install.md (Chinese Simplified)

* New translations index.md (Chinese Simplified)

* New translations iis-server.md (Chinese Simplified)

* New translations home.md (Chinese Simplified)

* New translations docker.md (Chinese Simplified)

* New translations dev-plugins.md (Chinese Simplified)

* New translations contributing.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations cli.md (Chinese Simplified)

* New translations build.md (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations en.json (Chinese Simplified)

* New translations install.md (Chinese Simplified)

* New translations install.md (Chinese Simplified)

* New translations home.md (Chinese Simplified)

* New translations cli.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations auth.md (Chinese Simplified)

* New translations config.md (Chinese Simplified)

* New translations en.json (Spanish)

* New translations en.json (Spanish)

* New translations en.json (Spanish)

* New translations en.json (Spanish)

* New translations en.json (Spanish)

* New translations config.md (Chinese Simplified)

* New translations config.md (Spanish)

* New translations config.md (Urdu (Pakistan))

* New translations config.md (Chinese Traditional, Hong Kong)

* New translations config.md (Portuguese, Brazilian)

* New translations config.md (Chinese Traditional)
2018-01-08 20:45:03 +01:00
Juan Picado @jotadeveloper
4937537386 Update config.md 2018-01-08 20:40:36 +01:00
Juan Picado @jotadeveloper
06f093d189 docs: remove old index file 2018-01-08 20:09:25 +01:00
Juan Picado @jotadeveloper
838e4d9d34 Update README.md 2018-01-08 07:51:44 +01:00
Juan Picado @jotadeveloper
db8b7bc0b6 Merge pull request #455 from verdaccio/l10n_master
New Crowdin translations
2018-01-08 07:50:27 +01:00
verdacciobot
ad5e1809d6 New translations install.md (Spanish) 2018-01-08 07:46:19 +01:00
verdacciobot
ffb4b84b1e New translations config.md (Chinese Traditional) 2018-01-08 07:46:12 +01:00
verdacciobot
ba07885c7d New translations config.md (Chinese Traditional, Hong Kong) 2018-01-08 07:46:11 +01:00
verdacciobot
e5e1f1713b New translations config.md (Portuguese, Brazilian) 2018-01-08 07:46:10 +01:00
verdacciobot
3fd14aab0f New translations config.md (Spanish) 2018-01-08 07:46:09 +01:00
verdacciobot
092318b288 New translations config.md (Urdu (Pakistan)) 2018-01-08 07:46:08 +01:00
verdacciobot
2b86a09e50 New translations notifications.md (Chinese Traditional) 2018-01-08 07:46:04 +01:00
verdacciobot
9a9a31ce5a New translations notifications.md (Portuguese, Brazilian) 2018-01-08 07:46:03 +01:00
verdacciobot
7c36cf0d67 New translations notifications.md (Chinese Traditional, Hong Kong) 2018-01-08 07:45:55 +01:00
verdacciobot
954b34cf74 New translations plugins.md (Urdu (Pakistan)) 2018-01-08 07:45:53 +01:00
verdacciobot
cf4266b7d1 New translations plugins.md (Spanish) 2018-01-08 07:45:52 +01:00
verdacciobot
64b8a730fc New translations plugins.md (Portuguese, Brazilian) 2018-01-08 07:45:51 +01:00
verdacciobot
12686134bb New translations plugins.md (Chinese Traditional, Hong Kong) 2018-01-08 07:45:50 +01:00
verdacciobot
276a69fd38 New translations plugins.md (Chinese Traditional) 2018-01-08 07:45:49 +01:00
verdacciobot
b408cff07b New translations notifications.md (Urdu (Pakistan)) 2018-01-08 07:45:46 +01:00
verdacciobot
adc44d1fcf New translations notifications.md (Spanish) 2018-01-08 07:45:46 +01:00
Juan Picado @jotadeveloper
ec201b4de6 Update config.md 2018-01-08 07:28:41 +01:00
Juan Picado @jotadeveloper
d9955b5477 Merge pull request #454 from bufferoverflow/docs/gitlab
docs: add verdaccio-gitlab plugin
2018-01-08 07:10:15 +01:00
Roger Meier
90bbffaad6 docs: add verdaccio-gitlab plugin 2018-01-08 00:31:23 +01:00
Juan Picado @jotadeveloper
8d537b28a4 chore(release): 3.0.0-alpha.3 2018-01-07 19:40:30 +01:00
Juan Picado @jotadeveloper
43e3f6e025 docs: update readme 2018-01-07 19:40:08 +01:00
Juan Picado @jotadeveloper
324027b42a chore(release): 3.0.0-alpha.2 2018-01-07 19:17:04 +01:00
Juan Picado @jotadeveloper
1eb8e58e0e build: improve beta and alpha release 2018-01-07 19:16:44 +01:00
Juan Picado @jotadeveloper
6ce4f79a30 chore(release): 3.0.0-alpha.1 2018-01-07 18:55:22 +01:00
Juan Picado @jotadeveloper
9953980405 build: allow to deploy any tag 2018-01-07 18:52:01 +01:00
Juan Picado @jotadeveloper
76657a5d67 chore(release): 3.0.0-alpha.0 2018-01-07 18:23:43 +01:00
Juan Picado @jotadeveloper
403a95190e build: all publish packages on as beta tag 2018-01-07 18:23:25 +01:00
Juan Picado @jotadeveloper
3939b6c9e5 build: add greenkeeper ignore packages 2018-01-07 18:17:46 +01:00
Juan Picado @jotadeveloper
25089880b6 build: update circleci conf 2018-01-07 17:58:22 +01:00
Juan Picado @jotadeveloper
12b3776993 3.0.0-0 2018-01-07 14:15:15 +01:00
Juan Picado @jotadeveloper
b709b378f5 docs: update readme 2018-01-07 14:02:46 +01:00
Juan Picado @jotadeveloper
09606fd4f4 Merge pull request #376 from verdaccio/3.x
The first merge for Release 3.x
2018-01-07 13:55:18 +01:00
Juan Picado @jotadeveloper
9584416fe9 docs: Add license reference to README and add specific license for documentation 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
6628ae7ab5 build: remove travis support 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
84b810e68a fix: add storage es6 plugin suport and fix plugin logic 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
9a6adc62b6 refactor: improve plugin system to load es6 modules 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
dcbd1e9db8 refactor: fix class location 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
d352c6c63f refactor: load storage as plugin and as fallback use LocalStorage 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
f320d5eeb4 build: update circle ci 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
4f5443d857 refactor: remove locking files from local-storage, update to minor versions local-storage and types 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
2ae80dd15e fix: broken build on docker 2018-01-07 07:59:36 +00:00
Ayush Sharma
cbcd86efb4 webui: package sidebar test cases 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
c602a4c9e7 test: add unit test for up-storage, getRemoteMetadata, fetchTarball 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
9d82eb8820 test: add unit test for up-storage 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
e14927afe5 build: ignore branches and update yarn version 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
e1f1eb3e79 fix: docker build with test 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
658360864a fix: run unit test on docker 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
0b135a863e fix: lint errors 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
ce5af8a004 fix: flow lint errors 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
b494d47eeb test: add additonal unit test for local-storage 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
d0e97cf076 test: add some unit test for local-storage 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
724e372246 refactor: utils as an import instead constructor argument 2018-01-07 07:59:36 +00:00
Ayush Sharma
4b8193041b fix: package child components gives undefined in api call
removes ununsed code

packageMeta should be required props
2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
5b60be0c06 build: update yarn to 1.3.2 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
d1a02d7388 build: update Docker to node 9.2.0 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
275dca11e1 fix: fix running test into Docker container 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
edf2ff343d fix: wrong reference after rebase 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
2315ef01e1 refactor: enable transpile code on DockerImage 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
8a80aad67b refactor: disable test on DockerImage 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
82a71ebf64 refactor: drop node4 support 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
e0d3223968 refactor: fix code review suggestions 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
3c157a221a refactor: update snapshots 2018-01-07 07:59:36 +00:00
Ayush Sharma
7bb7619b8f ci: removes node 4 tests 2018-01-07 07:59:36 +00:00
Ayush Sharma
5fadb77707 test: fixes presets 2018-01-07 07:59:36 +00:00
Ayush Sharma
d24904c650 webui: tests and dependency mock fixes
deps fixes

deps fixes
2018-01-07 07:59:36 +00:00
Ayush Sharma
ab4b9a0e2e webui: removes function check in search component in test 2018-01-07 07:59:36 +00:00
Ayush Sharma
5ae7863d8f webui snapshot testing
deps fixes for ui tests

snapshot fixes
2018-01-07 07:59:36 +00:00
Ayush Sharma
e03672b70b Chore: typo and spacing fixes
test name fixes
2018-01-07 07:59:36 +00:00
Ayush Sharma
ea47691300 Fix: Header component test 2018-01-07 07:59:36 +00:00
Ayush Sharma
3052e5fb22 Webui component test with Jest 2018-01-07 07:59:36 +00:00
Ayush Sharma
753281effe Package detail component test 2018-01-07 07:59:36 +00:00
Ayush Sharma
c56c03065b WIP: package & Package list component tests 2018-01-07 07:59:36 +00:00
Ayush Sharma
84b29fcf08 webui: <NotFound /> component test case 2018-01-07 07:59:36 +00:00
Ayush Sharma
6a6d7ed4de webui: <Help /> component test case 2018-01-07 07:59:36 +00:00
Ayush Sharma
e38f284b0b webui: <NoItems /> component test case 2018-01-07 07:59:36 +00:00
Ayush Sharma
b77c0ea7bb webui: <Readme /> component test case 2018-01-07 07:59:36 +00:00
Ayush Sharma
50884dfd7e webui: <Search /> component test case
Fix: placeholder test for <Search /> component

minor fix
2018-01-07 07:59:36 +00:00
Ayush Sharma
de867e7a65 Webui: bootstrap and test setup 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
246a680ee1 refactor: force to use flow-bin v0.60 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
813b2888aa refactor: run lint as pre phase 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
fd2eeea4dd refactor: run test on build Docker image 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
0c9e504d1a refactor: clean scripts and dependencies 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
1b1a784640 refactor: remove old module 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
e00e41b24b refactor: fix linting 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
ca5fd82d95 refactor: jest migration completed 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
4cbbb2f370 refactor: functional testing add more test 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
037095f851 refactor: functional testing with jest set up 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
f56b9760ad refactor: better bootstrap structure 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
66e0d4a017 refactor: provides a callback listener to verdaccio bootstrap 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
9b118a2dfb refactor: config path to resolve config files 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
86d92e96d2 chore: add unit test for smart request 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
adf7f3adb3 refactor: refactor functional test server launch (wip) 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
5cc8405d4f refactor: update types for local storage 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
710f1fc3f5 chore: update dot files 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
93865177b2 chore: add flow typed libraries 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
31c2bd48a0 refactor: migrate unit test to Jest 2018-01-07 07:59:36 +00:00
Meeeeow
bc2b44c51e refactor: 🔨 remove unused file 2018-01-07 07:59:36 +00:00
Meeeeow
6a2bcd529a refactor: 🔨 use rest spread replace prototype.push.apply 2018-01-07 07:59:36 +00:00
Meeeeow
6732d2bdcd refactor: 🔨 use destructing 2018-01-07 07:59:36 +00:00
Meeeeow
b2d54e192b refactor: 🔨 follow review, split modules to multiple components 2018-01-07 07:59:36 +00:00
Meeeeow
ba6811bd91 refactor: 🔨 move string md5 and get avatar to utils 2018-01-07 07:59:36 +00:00
Meeeeow
cb98ecc096 deps: ⬇️ downgrade flow-bin and rebuilt yarn.lock 2018-01-07 07:59:36 +00:00
Meeeeow
2cef0a4c41 fix: 🐛 extra argument after rebase 2018-01-07 07:59:36 +00:00
Meeeeow
8fe0f13b49 deps: ⬇️ downgrade react-hot-loader, see react-hot-loader/issues/689 2018-01-07 07:59:36 +00:00
Meeeeow
7caad09ca0 fix: 🐛 npm script "dev:webui" failed due no BABEL_ENV environment variable 2018-01-07 07:59:36 +00:00
Meeeeow
38c15bfe2a refactor: 🔨 add cross-env to npm script for Windows 2018-01-07 07:59:36 +00:00
Meeeeow
136de84cc5 refactor: 🔨 change arguments to rest parameter 2018-01-07 07:59:36 +00:00
Meeeeow
48459b50ac refactor: 🔧 update yarn.lock after rebase branch 3.x 2018-01-07 07:59:36 +00:00
Meeeeow
a2512cf2a0 refactor: 💚 fix extra space in old code 2018-01-07 07:59:36 +00:00
Meeeeow
aa49098d39 fix: 🐛 local package last sync time shown as year 1970 2018-01-07 07:59:36 +00:00
Meeeeow
2a69f4e51a fix: 🐛 detail page will not load new data after route change 2018-01-07 07:59:36 +00:00
Meeeeow
f983fa3860 fix: 🐛 several api don't accept scope package 2018-01-07 07:59:36 +00:00
Meeeeow
1ffd4d7c5f feature: new sidebar in detail page 2018-01-07 07:59:36 +00:00
Meeeeow
691bc97007 refactor: ⬆️ upgrade dependencies & fix issues in dev mode 2018-01-07 07:59:36 +00:00
Meeeeow
d52f426226 refactor: 🔧 add .jsx into editorconfig 2018-01-07 07:59:36 +00:00
Meeeeow
73b7165093 refactor: 🎨 remove extra blank line & add semicolon 2018-01-07 07:59:36 +00:00
Meeeeow
0f33cddda3 refactor: 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
ceed91c1b6 refactor: dockerfile fix typo on build 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
0426281ef7 refactor: dockerfile transpile code on build 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
765c4d2b5d refactor: Update cli path and fix eslint errors for transpiled code 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
a5e162d475 feature: Update Build pipeline for Babel transpiler (#349)
feature: Update Build pipeline for Babel transpiler
2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
6a0d539b61 build: allow missing jsdoc in favor of flow 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
db5d2cc9fc build: update local-storage dependency 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
7ef3364bc6 refactor: disable force to use jsdoc 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
a5c419f269 refactor: finished refactored on local-storage, relocated to main project 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
3d53d96d80 refactor: remove inner references for local storage 2018-01-07 07:59:36 +00:00
Ayush Sharma
6e35e10a72 fix: dist-tag put and delete endpoint removed
dist tags test fixes

minor-fixes: new line
2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
7f4f7380ac refactor: fix rebase unit test 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
34db438bfc feat: Enable flow, there aren't any file being check yet 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
4c0733ca32 refactor: These files will be migrated to another repository 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
0355dc68db chore: update verdacio local storage version 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
112cee789e refactor: remove local-storage in favor of the new dependency 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
121dc3c058 refactor: fix dist-tag tests 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
9c5eec1ca5 refactor: use external local storage (first step to become a plugin) 2018-01-07 07:59:36 +00:00
jjaakola
e8389bcbd9 docs: Add MIT license file 2018-01-07 07:59:36 +00:00
Juan Picado @jotadeveloper
3d04b17f41 Update README.md 2018-01-07 08:59:30 +01:00
Juan Picado @jotadeveloper
1c90c8d7e8 Merge pull request #439 from verdaccio/website
first version of website using docusaurus
2018-01-06 23:39:00 +01:00
Juan Picado @jotadeveloper
4b4c48b85e Merge pull request #434 from verdaccio/l10n_website
New Crowdin translations
2018-01-06 23:32:06 +01:00
Juan Picado @jotadeveloper
bbed58d6a2 New translations en.json (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8e04e428ce New translations test.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2bff3be13c New translations install.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
31a58ed1bd New translations install.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
101d4fbfed New translations config.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
18522d7c07 New translations build.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
e66dedb31e New translations en.json (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
54d679d468 New translations contributing.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8970816537 New translations contributing.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
ce10331ece New translations install.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
c2b5447c8e New translations contributing.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
469661e009 New translations config.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
1deb708347 New translations build.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
0e65bcc43e New translations test.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
5edf12d5e4 New translations en.json (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
339aefbca0 New translations build.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
db3c0c3aa2 New translations config.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
c5fe66f4f4 New translations contributing.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
67e9b261bd New translations config.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
676ef54736 New translations en.json (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2e8fc0bbef New translations build.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
82b3c9b998 New translations install.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
412262a1df New translations test.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
d2e8c1e8f7 New translations test.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3b262f6a97 New translations build.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
d7eb678c0d New translations en.json (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
e7ce8de7f2 New translations test.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
5cb1ffa091 New translations config.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
f7db273b4f New translations install.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
1133c78c22 New translations contributing.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
b06141d516 New translations install.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
a1afee3632 New translations en.json (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
e10c19312f New translations test.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
1a876de084 New translations ssl.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
b29819281b New translations server.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
5d2dd946ab New translations reverse-proxy.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
cc4d3be36e New translations repositories.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
4ca3219bbd New translations protect-your-dependencies.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
0426893682 New translations uplinks.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
51a9efb7ba New translations plugins.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
04757b4f05 New translations notifications.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
93a10be4a3 New translations logger.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
6665e78816 New translations kubernetes.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
ed72f3f269 New translations install.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
79551d951a New translations index.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
a4a9175701 New translations iis-server.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
167e8d286c New translations packages.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
fc7d68024f New translations home.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
afdaef6069 New translations use-cases.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2a8cab87e2 New translations windows.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2a5687bdea New translations kubernetes.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
f52f717134 New translations install.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8980154cf9 New translations index.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
6be7cb55bc New translations iis-server.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
a59d4f0ecf New translations home.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3486b80f46 New translations docker.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
cef86b9a67 New translations web.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8e7ef1e650 New translations dev-plugins.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
833d1567d4 New translations config.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
d49c8a45b4 New translations cli.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
34a17478f3 New translations build.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
408ef654ba New translations auth.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
31c842127c New translations ansible.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
af2163f524 New translations en.json (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
c3c1c27590 New translations contributing.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
b519394cf2 New translations logger.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
7db467630d New translations docker.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
7269e749d8 New translations contributing.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
6e065ae92e New translations packages.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
108824cfdc New translations notifications.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
95800498b4 New translations logger.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
a5fa03ca54 New translations kubernetes.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8322550085 New translations install.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
f77780784a New translations index.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
41b47cdff6 New translations plugins.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
a6d5214b20 New translations iis-server.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2cc2e49b26 New translations docker.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
407e14a03d New translations dev-plugins.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3425ffc8ec New translations contributing.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
7b50db165f New translations config.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
901baebde8 New translations cli.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
f11d07736e New translations build.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
b35787a6c6 New translations home.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
86c5e32641 New translations dev-plugins.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
7c969ff5cd New translations protect-your-dependencies.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
ae45c8798f New translations reverse-proxy.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2c1bd67041 New translations server.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
13a9ee5ccc New translations ssl.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
d716bbc933 New translations test.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
9a5cdbc7c5 New translations uplinks.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
611aebff3d New translations use-cases.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
657278c293 New translations web.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
ac4ca9a56b New translations windows.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
9b5ec45794 New translations en.json (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
c418ad8c51 New translations ansible.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
bb303474bf New translations auth.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
e8b953fe39 New translations build.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
27501d4f5b New translations cli.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
feda3cda20 New translations config.md (Chinese Traditional, Hong Kong) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
dfd888205a New translations repositories.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
08ea2b81fc New translations auth.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
a3a67faaef New translations notifications.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2520b5427b New translations plugins.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8f72619ac1 New translations iis-server.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
713b898d09 New translations home.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
a9f20f2457 New translations docker.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
b822ce8650 New translations dev-plugins.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
282eeb6e5c New translations contributing.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
13f3019439 New translations config.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
09bc423cd7 New translations index.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
f03fc6802a New translations cli.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
6ea350a14a New translations auth.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
42a1657fe7 New translations ansible.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
b6a5000c2b New translations en.json (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
c24589aa1b New translations windows.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
56cfff6576 New translations web.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3b5700c476 New translations use-cases.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3119cc5345 New translations build.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
9f177dd035 New translations uplinks.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
7e97cd226e New translations install.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
5b6b41e8b3 New translations logger.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
87ab57ca44 New translations notifications.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8211fc2f31 New translations packages.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
1bd8393dea New translations plugins.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
56b7d66b02 New translations protect-your-dependencies.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
413d9667f7 New translations repositories.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3088b5058c New translations reverse-proxy.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
f1892abcf4 New translations server.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
141b56dd4d New translations ssl.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
41870b4407 New translations test.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
641f5427d3 New translations uplinks.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
d3adceee65 New translations use-cases.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
b0ab22f4cd New translations web.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
23034e6e4f New translations windows.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
41cbe2bcb2 New translations kubernetes.md (Urdu (Pakistan)) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3203b9e8ab New translations packages.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
00298d0eeb New translations test.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
5397baabee New translations server.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
7192e86a17 New translations build.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
83d76354b1 New translations auth.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2ab518f937 New translations ansible.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
056a80a17e New translations en.json (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
ac9e7b4cbb New translations windows.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8d82958c06 New translations web.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
706a0f5d1b New translations cli.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8595a71f94 New translations use-cases.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
bee30981fa New translations test.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
572e37880c New translations ssl.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
101b59ffb5 New translations server.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
84d8ad9c84 New translations reverse-proxy.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
a45af62398 New translations repositories.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
221e604d3c New translations protect-your-dependencies.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
99539fbccf New translations uplinks.md (Portuguese, Brazilian) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
b2f6949b41 New translations ssl.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
98f7925a36 New translations config.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
2b2a80421f New translations dev-plugins.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
1dea458ff5 New translations docker.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
c8e49dbe3b New translations home.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
bc0571b342 New translations iis-server.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
91bc27337b New translations index.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
d9ab130259 New translations install.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
01e738309a New translations kubernetes.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
347e98e73f New translations logger.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
da6722ea24 New translations notifications.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
980a9076a3 New translations packages.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
46a909ca5b New translations plugins.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3eaf602858 New translations protect-your-dependencies.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
3bc9e07c74 New translations repositories.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
95f619cc2c New translations reverse-proxy.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
47758e0a6e New translations contributing.md (Spanish) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
8d9e6212b0 New translations ansible.md (Chinese Traditional) 2018-01-06 22:30:49 +00:00
Juan Picado @jotadeveloper
977fabf49e build: ignore assets folder 2018-01-06 23:30:39 +01:00
Juan Picado @jotadeveloper
737d873c1d docs: update footer 2018-01-06 23:10:34 +01:00
Juan Picado @jotadeveloper
6076a5931f docs: update documentation and frontend page 2018-01-06 23:04:02 +01:00
Juan Picado @jotadeveloper
83ef0b2305 chore: first version of website using docusaurus 2018-01-06 07:39:30 +00:00
Juan Picado @jotadeveloper
018448b296 Merge pull request #449 from lgaitan/patch-1
docs: Fix typos in plugins.md
2018-01-06 08:39:24 +01:00
Lucius Gaitán
fa18d30da1 docs: Fix typos in plugins.md 2018-01-05 23:09:59 -02:00
Juan Picado @jotadeveloper
2834b14e23 chore(release): 2.7.2 2018-01-05 13:34:06 +01:00
Juan Picado @jotadeveloper
de73f13855 Merge pull request #448 from rowdown/issue-447
fix: marked dependency to latest
2018-01-05 13:27:33 +01:00
Anmol
75bf2a80ea fix: marked dependency to latest 2018-01-05 17:15:58 +05:30
Juan Picado @jotadeveloper
1770824ad0 Merge pull request #443 from grrowl/patch-1
Add packagePatternFlags to Notifications doc
2018-01-02 06:25:36 +01:00
Tom McKenzie
4a0387e4d5 Add packagePatternFlags to Notifications doc 2018-01-02 14:12:34 +11:00
Juan Picado @jotadeveloper
e903afcb12 chore(release): 2.7.1 2017-12-20 08:24:50 +01:00
Juan Picado @jotadeveloper
03aecfa796 assets: add new logos and headers 2017-12-20 07:26:47 +01:00
Juan Picado @jotadeveloper
6ea99e39c6 Merge pull request #354 from ayusharma/issue-352
Notification for multiple endpoints
2017-12-15 07:42:02 +01:00
Ayush Sharma
b605d1ed7e fix: notification for multiple endpoints
add silent fail case for notification promise
2017-12-15 08:08:16 +05:30
Juan Picado @jotadeveloper
5b9f0c09ac Update README.md 2017-12-07 09:11:44 +01:00
Juan Picado @jotadeveloper
ba4e7fb0de Update README.md 2017-12-07 08:59:23 +01:00
Juan Picado @jotadeveloper
2a51dbd40d doc: update logo readme 2017-12-07 08:21:48 +01:00
Juan Picado @jotadeveloper
bd001b6691 Merge pull request #428 from rodriguesbreno/contest/logo
[logo] Add bitmap version
2017-12-07 07:58:13 +01:00
Breno Rodrigues
057e47949c [logo] Add tiny version 2017-12-07 00:40:56 -02:00
Breno Rodrigues
2ebf84f075 [logo] fix file naming 2017-12-07 00:40:20 -02:00
Breno Rodrigues
2e1f650cfa [logo] Add bitmap version 2017-12-07 00:37:04 -02:00
Juan Picado @jotadeveloper
78e6e0d6d7 chore(release): 2.7.0 2017-12-06 00:19:37 +01:00
Juan Picado @jotadeveloper
88f3d2cc43 Merge pull request #405 from osher/patch-1
Match shell title with web title
2017-12-05 23:56:39 +01:00
Juan Picado @jotadeveloper
19b43a2463 Merge pull request #426 from etiennetremel/add-kubernetes-instructions
Add Kubernetes instructions
2017-12-05 23:55:43 +01:00
Juan Picado @jotadeveloper
8e815e2353 Merge pull request #424 from UnitedMarsupials/master
fix: add signal-handling to allow proper log-rotation.
2017-12-05 23:54:16 +01:00
Etienne Tremel
ef1bd347ff Add Kubernetes instructions 2017-12-05 21:03:07 +01:00
Mikhail T
b0960f3fb9 Revert "Document the fix to log-rotation"
This reverts commit b7228a36b6.
2017-12-05 12:29:47 -05:00
Mikhail T
baa4763a24 🐛 Log-rotation used to require a full restart of the application. Now SIGUSR2 can be used to ask the process to reopen the log.
Revert "Use "bug" instead of "fix" to get the cute green icon"

This reverts commit eb9f10f978.
2017-12-05 12:29:24 -05:00
Mikhail T
eb9f10f978 Use "bug" instead of "fix" to get the cute green icon 2017-12-05 12:18:26 -05:00
Mikhail T
b7228a36b6 Document the fix to log-rotation 2017-12-05 12:15:52 -05:00
Mikhail T
10a49e439c Try to appease lint 2017-12-05 12:03:18 -05:00
Mikhail T
717ef38c0c Document SIGUSR2 as the means of notifying the running process, it
needs to reopen the log.
2017-12-05 11:46:48 -05:00
Mikhail T
e0fb5d927f Add signal-handling to allow proper log-rotation. 2017-12-05 11:42:14 -05:00
Juan Picado @jotadeveloper
6088e96a8c Update build.md 2017-12-04 08:12:30 +01:00
Juan Picado @jotadeveloper
348cb06b9e Update build.md 2017-12-04 08:11:38 +01:00
Juan Picado @jotadeveloper
ae81be2361 Merge pull request #410 from ayusharma/typo-wiki-dev
spelling correction in wiki-dev
2017-11-29 07:41:34 +01:00
Ayush Sharma
8f9955423f spelling correction 2017-11-28 23:29:27 +05:30
osher
9ff7f392e4 lindt. lol... 2017-11-15 17:59:45 +02:00
osher
ddcc4935df Match shell title with web title 2017-11-15 17:50:01 +02:00
Juan Picado @jotadeveloper
9e59cf75f0 Merge pull request #394 from HCanber/middleware
Add middleware plugins from fl4re/sinopia
2017-11-15 08:26:25 +01:00
Juan Picado @jotadeveloper
f428a2ea08 Merge pull request #403 from crohrer/patch-1
fixes 2 typos in Readme
2017-11-15 08:23:32 +01:00
Christoph Rohrer
7e1d29be17 fixes 2 typos in Readme 2017-11-12 20:02:08 +01:00
Juan Picado @jotadeveloper
45d43c7cc3 chore(release): 2.6.6 2017-11-08 17:43:07 -05:00
Juan Picado @jotadeveloper
c07385b22f Merge pull request #400 from Meeeeow/fix_multiple_slash_in_resource_url
fix: 🐛 incorrect logo url with slash at the end of `url_prefix`
2017-11-06 17:39:29 -05:00
Meeeeow
859eccb1be fix: 🐛 incorrect logo url with slash at the end of url_prefix 2017-11-06 21:23:28 +08:00
Juan Picado @jotadeveloper
dce43c0682 chore(release): 2.6.5 2017-11-05 03:49:36 -05:00
David Broadhurst
bcc13acf85 fix: upgrade node to fix long standing socket timeout issue 2017-11-05 03:48:30 -05:00
Juan Picado @jotadeveloper
e180d37343 Merge pull request #397 from metaa/patch-1
Using the env path in the systemd service
2017-11-05 09:30:57 +01:00
Metaa
28311db37d Using the env path in the systemd service
Discussed in #396
2017-11-04 03:33:21 +01:00
Håkan Canberger
f08a660e3f refactor: Better variable names 2017-11-02 08:12:43 +01:00
Håkan Canberger
374a5e8e7b feat: Add middleware plugins from fl4re/sinopia
This is basically the PR fl4re/sinopia#18 by @fredr
2017-11-01 15:01:25 +01:00
Juan Picado @jotadeveloper
6a8077a883 chore(release): 2.6.4 2017-10-31 18:42:36 +01:00
Juan Picado @jotadeveloper
bcf79c476d Merge pull request #393 from Meeeeow/fix_sub_directory_resource_url
fix: 🐛 incorrect resource and registry url while install on sub directory
2017-10-31 18:38:09 +01:00
Meeeeow
67e97a13b3 fix: 🐛 incorrect resource and registry url while install on sub directory 2017-11-01 01:28:34 +08:00
Juan Picado @jotadeveloper
aa7fb6532f Merge pull request #390 from BogdanAlexandru/patch-1
Improve spelling in README.md
2017-10-31 07:14:48 +01:00
Bogdan Alexandru Marginean
64bc6abd14 Update README.md 2017-10-31 01:55:33 +02:00
Juan Picado @jotadeveloper
0b43e46eeb docs: update dev documentation 2017-10-29 15:10:11 +01:00
Juan Picado @jotadeveloper
177d28b42e docs: update dev documentation 2017-10-29 08:20:48 +01:00
Juan Picado @jotadeveloper
57e2b168ab docs: update dev documentation 2017-10-29 08:12:28 +01:00
Juan Picado @jotadeveloper
e863ed36f0 docs: update dev documentation 2017-10-29 08:00:29 +01:00
Juan Picado @jotadeveloper
d47f0b6a06 docs: increase dev documentation 2017-10-29 07:46:05 +01:00
Juan Picado @jotadeveloper
b5d10ddf93 docs: add development documentation, contribution guides, etc, wip 2017-10-28 22:36:53 +02:00
Juan Picado @jotadeveloper
4b99b4f16d docs: update readme 2017-10-26 13:49:41 +02:00
Juan Picado @jotadeveloper
40afacb2b5 Merge pull request #387 from gempain/patch-1
Add default column and fix typo
2017-10-26 12:25:47 +02:00
Geoffroy Empain
66394b92d9 Add default column and fix typo
Just saw this while reading your docs:

1. It would be nice to have the default value for optional parameters (but I don't know what the values are and will leave it up to the maintainers to update them in this file).

2. Also fixes a small typo.
2017-10-26 11:22:45 +02:00
Juan Picado @jotadeveloper
288669d91c Merge pull request #383 from rodriguesbreno/contest/logo
Verdaccio's new brand
2017-10-25 23:33:30 +02:00
Breno
f6bc52bb70 verdaccio.github.io design proposal 2017-10-25 11:21:49 -02:00
Breno
2345b590b2 add logo asset files 2017-10-25 10:44:02 -02:00
Breno
0857e1ff45 test: add blank file to test github commit process 2017-10-24 19:24:52 -02:00
Juan Picado @jotadeveloper
681561ab91 Merge pull request #378 from gecruz/patch-1
Update install.md
2017-10-23 20:46:22 +02:00
Gustavo Cruz
308be5e337 Update install.md 2017-10-23 16:39:50 -02:00
Juan Picado @jotadeveloper
3a718b9fc2 chore(release): 2.6.3 2017-10-21 17:55:03 +02:00
Juan Picado @jotadeveloper
a4ab72c31d Merge pull request #374 from lgaitan/socket-check
fix: Check if socket exists before removing
2017-10-21 17:51:40 +02:00
Lucius Gaitán
e916a0f697 fix: Check if socket exists before removing 2017-10-21 06:55:40 -02:00
Juan Picado @jotadeveloper
f2e857990a build: set missing NPM_TOKEN for deployments 2017-10-21 10:46:14 +02:00
Juan Picado @jotadeveloper
4995d19d3e build: remove incremental versionin, this is done by npm run release script 2017-10-21 10:38:29 +02:00
Juan Picado @jotadeveloper
0dfba81fb3 chore(release): 2.6.2 2017-10-21 10:27:02 +02:00
Juan Picado @jotadeveloper
184c7c6c35 Update pull_request_template.md 2017-10-21 10:21:02 +02:00
Juan Picado @jotadeveloper
7cfb655596 Merge pull request #371 from kingjan1999/patch-1
Fix typo in wiki/ssl.md
2017-10-21 09:44:43 +02:00
Juan Picado @jotadeveloper
395e4c26a1 Merge branch 'master' into patch-1 2017-10-21 09:34:26 +02:00
Juan Picado @jotadeveloper
31876459e2 Merge pull request #373 from lgaitan/unix-socket
Unlink socket before listening
2017-10-21 09:32:11 +02:00
Lucius Gaitán
7376f536fd Merge branch 'unix-socket' of https://github.com/lgaitan/verdaccio into unix-socket 2017-10-21 05:24:55 -02:00
Lucius Gaitán
d42a41e134 fix: Remove unix socket before listen 2017-10-21 05:20:55 -02:00
Lucius Gaitán
992e0b92ee Unlink socket before listen 2017-10-21 04:06:46 -02:00
Jan
1df0b7dce0 Fix typo in wiki/ssl.md 2017-10-20 19:09:47 +02:00
Juan Picado @jotadeveloper
d4e3bb0327 Merge pull request #370 from neil-harbinger/typo
fixed a typo
2017-10-20 10:23:02 +02:00
firegrind
dc389e2d3a fixed a typo 2017-10-20 09:15:35 +01:00
Juan Picado @jotadeveloper
f5cf290c93 Merge pull request #369 from verdaccio/circle-ci-publish
build: allow publish from continous integration tool
2017-10-20 06:49:24 +02:00
Juan Picado @jotadeveloper
5efab2bbe5 build: allow publish from continous integration tool 2017-10-19 22:12:59 +02:00
Juan Picado @jotadeveloper
bad85b70ba chore(release): 2.6.1 2017-10-19 19:25:20 +02:00
Juan Picado @jotadeveloper
50d286cdde Merge pull request #368 from verdaccio/docker-patch-1
refactor: upgrade docker to node 8.7
2017-10-19 19:22:43 +02:00
Juan Picado @jotadeveloper
b1b40c48d2 Merge branch 'master' into docker-patch-1 2017-10-19 19:18:56 +02:00
Juan Picado @jotadeveloper
f215b8118b refactor: upgrade docker to node 8.7 2017-10-19 19:13:07 +02:00
Juan Picado @jotadeveloper
46e9b7f4b9 Merge pull request #363 from wiggisser/master
docs: add pfx support for https
2017-10-19 06:22:06 +02:00
Juan Picado @jotadeveloper
e202f6275d Merge branch 'master' into master 2017-10-19 06:18:21 +02:00
karl wiggisser
4a11c5f5cb docs: add pfx support for https 2017-10-18 22:41:56 +02:00
Juan Picado @jotadeveloper
e844ffa387 chore(release): 2.6.0 2017-10-18 22:19:24 +02:00
Juan Picado @jotadeveloper
41c8479fcf Merge pull request #361 from verdaccio/juanpicado-patch-2
docs: add commit guidelines
2017-10-18 22:18:07 +02:00
Juan Picado @jotadeveloper
c44a79b27c docs: add commit guidelines 2017-10-18 20:12:16 +00:00
Juan Picado @jotadeveloper
e5a2c327f7 Merge pull request #360 from wiggisser/master
Support pfx certificates
2017-10-18 22:12:10 +02:00
karl wiggisser
1d0a282c4b refactor: camelCasing and const binding 2017-10-18 21:54:35 +02:00
karl wiggisser
994e9a4a5d chore: fix ci errors 2017-10-18 21:54:25 +02:00
Karl Wiggisser
074086d31a refactor: use object assign 2017-10-18 21:54:17 +02:00
karl wiggisser
c84d567d76 feat: add pfx support for https 2017-10-18 21:54:00 +02:00
Juan Picado @jotadeveloper
fa5797df50 docs: update most common questions link 2017-10-17 18:23:28 +02:00
Juan Picado @jotadeveloper
c570cf21a3 Update docker.md 2017-10-08 09:13:54 +02:00
Juan Picado @jotadeveloper
82857dce93 docs: add new docker tag 2017-10-06 07:21:05 +02:00
Juan Picado @jotadeveloper
9bb8e995aa refactor: update and fix verdaccio scope deps 2017-10-06 07:10:36 +02:00
Juan Picado @jotadeveloper
5b66056cf2 Merge pull request #327 from ayusharma/issue-321
Plugin loader with logs
2017-10-06 07:06:38 +02:00
Ayush Sharma
d6ed202bd9 fix: plugin loader with logs
fix: warn replaced with info
2017-10-06 09:14:27 +05:30
Juan Picado @jotadeveloper
fb8f4cc4c2 chore(release): 2.5.1 2017-10-01 15:31:12 +02:00
Juan Picado @jotadeveloper
045e973597 Merge pull request #338 from verdaccio/fix-docker
fix: fix docker build failure due breaking changes in yarn
2017-10-01 15:30:43 +02:00
Juan Picado @jotadeveloper
c62e90f50b fix: fix docker build failure due breaking changes in yarn 2017-10-01 15:21:50 +02:00
Juan Picado @jotadeveloper
e1c98921d5 docs: update changelog 2017-10-01 14:28:17 +02:00
Juan Picado @jotadeveloper
85a1275ec8 chore(release): 2.5.0 2017-10-01 14:25:45 +02:00
Juan Picado @jotadeveloper
90fa4ad3f4 Merge pull request #337 from verdaccio/fix-334
fix: Fix  #334 UI failure on IE 11, add support for old browsers.
2017-10-01 14:17:27 +02:00
Juan Picado @jotadeveloper
f1f15be353 fix: Fix #334 UI failure on IE 11, add suppor for old browsers. 2017-10-01 14:11:43 +02:00
Juan Picado @jotadeveloper
dbd2a5c8b8 Merge pull request #335 from verdaccio/juanpicado-patch-1
Remove extra query parameters on Accept headers
2017-10-01 09:14:46 +02:00
Juan Picado @jotadeveloper
565fff53cc fix-329 2017-10-01 09:10:02 +02:00
Juan Picado @jotadeveloper
c054682511 Merge pull request #332 from devsquad-tech/feature/uplink_authorization
Feature/uplink authorization
2017-10-01 09:06:00 +02:00
Ramon Henrique Ornelas
3fcdc62736 test: add test return default headers 2017-09-30 21:29:13 -03:00
Ramon Henrique Ornelas
231a4d7227 refactor: small changes in the code
- describe message tests;
- remove condition duplicate;
- add logger in exceptions;
2017-09-30 21:07:45 -03:00
Ramon Henrique Ornelas
f7ad05ec86 test: add test uplink auth 2017-09-30 00:06:42 -03:00
Ramon Henrique Ornelas
ab69b258ca refactor: improvements auth uplink
- find NPM_TOKEN by default;
- remove parameter true to token_env;
- remove duplicate code to assigns header authorization;
- method created to validate rules of auth;
2017-09-29 18:16:55 -03:00
Ramon Henrique Ornelas
cc55c21303 test: fix test and done some improvements in code 2017-09-29 11:02:00 -03:00
Ramon Henrique Ornelas
3f20290ee8 docs: uplink headers authorization 2017-09-28 23:02:38 -03:00
Ramon Henrique Ornelas
7baf7cbe21 feat: header authorization uplink
- define auth type basic or bearer;
- assigns the header get process.env var NPM_TOKEN;
- assigns the header get process.env by set name;
- assigns the header raw token;
2017-09-28 22:28:58 -03:00
Juan Picado @jotadeveloper
eca7cf1a01 Merge pull request #331 from okv/patch-1
Fix typo at config wiki (uplinks section)
2017-09-27 18:56:57 +02:00
Oleg Korobenko
3010f54b03 Fix typo at config wiki (uplinks section) 2017-09-27 14:58:41 +03:00
Juan Picado @jotadeveloper
9ff7160640 Update README.md 2017-09-23 10:58:13 +02:00
Juan Picado @jotadeveloper
e1d596365d chore(release): 2.4.0 2017-09-23 10:00:06 +02:00
Juan Picado @jotadeveloper
6210288085 Merge pull request #326 from miroslavpokorny/Fix_Maximum_call_stack_size_exceeded
fix: bug with Maximum call stack size exceeded on packages web API.
2017-09-23 09:27:08 +02:00
Miroslav Pokorný
11742db503 Changed setImmediate from async library to node default. 2017-09-17 17:35:22 +02:00
Miroslav Pokorný
b4195b15c6 Fixed bug with Maximum call stack size exceeded on packages web API. 2017-09-16 10:46:15 +02:00
Juan Picado @jotadeveloper
519840761c Merge pull request #325 from robi-wan/wiki_directory_structure
docs: Use current directory structure in documentation
2017-09-15 21:35:20 +02:00
robi-wan
4bd174b96f Use current directory structure in documentation
Commit 7fef14c322 refactored the directory structure - reflect these changes in the documentation.
2017-09-14 15:49:57 +02:00
Juan Picado @jotadeveloper
57fbb59889 Merge pull request #323 from ayusharma/issue-322
MessageBox replaced with Alert in login dialog
2017-09-13 11:55:22 +02:00
Ayush Sharma
64839bd61b Fix: #322 - Message box replaced with alert
Review: Minor fixes
2017-09-13 15:08:33 +05:30
Juan Picado @jotadeveloper
e81d50162f Merge pull request #320 from ayusharma/issue-319
Load logo from config
2017-09-13 11:34:46 +02:00
Ayush Sharma
2442571e2f Fix: Issue #319 Load logo from config
Review: catch block
2017-09-13 12:03:18 +05:30
Juan Picado @jotadeveloper
da7aaf3ec4 Merge pull request #317 from Meeeeow/fix_package_metadata_cache
fix: 🐛 Package metadata cache does not work
2017-09-13 07:50:45 +02:00
Meeeeow
59b8bcf817 Merge branch 'master' into fix_package_metadata_cache 2017-09-12 09:50:11 +08:00
Meeeeow
4d6a4471b2 fix: 🐛 Package metadata cache not work 2017-09-10 23:41:09 +08:00
Juan Picado @jotadeveloper
9cde5adfd4 Merge pull request #316 from wpasternak/patch-1
docs: fixed Typo
2017-09-10 14:44:18 +02:00
Willi Pasternak
7b03059819 Fixed Typo 2017-09-10 13:55:14 +02:00
Juan Picado @jotadeveloper
8dea48ed5b docs: Update server section to include AWS info 2017-09-08 08:11:27 +02:00
Juan Picado @jotadeveloper
397a5301fb Merge pull request #315 from ayusharma/issue-311
Fix #311: Debug text in green color
2017-09-08 07:42:58 +02:00
Ayush Sharma
17847ae415 Fix #311: Debug text in green color 2017-09-07 23:10:01 +05:30
Juan Picado @jotadeveloper
ebb033ce1a Merge pull request #313 from Jinshichi/search_fix
fix: add Date and Version in a search result
2017-09-07 08:30:32 +02:00
Yuuki Tada
5d7e0bc1e5 Use singlequote instead of doublequote
modified:   src/lib/storage/local/local-storage.js
2017-09-07 06:14:38 +00:00
Yuuki Tada
f80ff856ba Add DATE and VERSION in search result
modified:   src/lib/storage/local/local-storage.js
	modified:   test/functional/tags/preserve_tags.spec.js
2017-09-07 02:53:26 +00:00
Juan Picado @jotadeveloper
0582e05edc Merge pull request #308 from verdaccio/feature_wiki_upgrade
docs:  Add new sections to documentation
2017-08-29 20:09:48 +02:00
Juan Picado @jotadeveloper
54dbf115ba docs: Merge cli and installation doc 2017-08-29 08:23:06 +02:00
Juan Picado @jotadeveloper
506ae57aa3 docs: Add links to wiki 2017-08-29 08:13:10 +02:00
Juan Picado @jotadeveloper
429d30a390 docs: Updates wiki readme 2017-08-29 07:56:15 +02:00
Juan Picado @jotadeveloper
a3bb5d1363 docs: Updates wiki readme 2017-08-29 07:54:43 +02:00
Juan Picado @jotadeveloper
b29de5c8fd docs: Add installation section 2017-08-29 07:52:43 +02:00
Juan Picado @jotadeveloper
cf7f4a6409 docs: Updates wiki readme 2017-08-28 23:11:08 +02:00
Juan Picado @jotadeveloper
a5b33bbffc docs: Add logger documentation 2017-08-28 22:23:15 +02:00
Juan Picado @jotadeveloper
97f8c120aa docs: Add web ui documentation 2017-08-28 19:57:12 +02:00
Juan Picado @jotadeveloper
ec0746fc8f docs: Upgrade main config file documentation 2017-08-28 19:57:11 +02:00
Juan Picado @jotadeveloper
7c88cb4392 docs: Add main config file documentation 2017-08-28 19:57:11 +02:00
Juan Picado @jotadeveloper
c30555c699 Merge pull request #309 from verdaccio/conf_remove_invalid_section
refactor: remove invalid section and modify comment
2017-08-28 17:10:35 +02:00
Meeeeow
ae413e13be refactor: 📝 remove invalid section and modify comment 2017-08-28 22:42:26 +08:00
Meeeeow
dd623dc3a0 Merge pull request #306 from verdaccio/fix_possible_data_loss_upstream
Fix possible data loss upstream
2017-08-27 19:58:10 +08:00
Juan Picado @jotadeveloper
04710d8fc0 refactor: update lock file 2017-08-26 07:44:18 +02:00
Juan Picado @jotadeveloper
23bcf6fb86 test: Increase coverage for local-data storage 2017-08-26 07:44:18 +02:00
Juan Picado @jotadeveloper
2c3a8f9d42 test: Add unit test for a scenario when the database is corrupted 2017-08-26 07:44:17 +02:00
Juan Picado @jotadeveloper
e4f7f32f91 refactor: Parse database and error handling in separated methods 2017-08-26 07:44:17 +02:00
Meeeeow
552527c085 refactor: 🔨 don't crash main thread when the database file is corrupted
Add a lock for LocalData instance and throw error message while user trying modify package list
2017-08-26 07:44:17 +02:00
Meeeeow
5d73dcaf89 fix: 🐛 check error code to prevent data loss 2017-08-26 07:44:17 +02:00
Meeeeow
5e8b26893e docs: 📝 update docs about not support pm2 cluster mode 2017-08-26 07:43:40 +02:00
Meeeeow
93aae05e63 fix: 🐛 check error code to prevent data loss 2017-08-26 07:43:39 +02:00
Juan Picado @jotadeveloper
a91a0d3bef Merge pull request #298 from verdaccio/feature-docker-upgrade
feat: Update node alpine version to 8.4.0
2017-08-26 07:42:50 +02:00
Juan Picado @jotadeveloper
3f96ce3665 feat: Update node alpine version to 8.4.0 2017-08-18 06:57:41 +02:00
Juan Picado @jotadeveloper
15bd1383be chore(release): 2.3.6 2017-08-17 06:26:02 +02:00
Juan Picado @jotadeveloper
17e81b24b9 Merge branch 'master' of github.com:verdaccio/verdaccio 2017-08-17 06:21:32 +02:00
Juan Picado @jotadeveloper
a9481cc941 fix: link was broken 2017-08-17 06:21:23 +02:00
Juan Picado @jotadeveloper
5c51e485f6 Merge pull request #293 from 8eo/master
Fix auth process to check against username also and not just groups
2017-08-17 06:20:10 +02:00
Juan Picado @jotadeveloper
b00be1baf5 Merge pull request #296 from mrblackus/patch-1
Update SSL documentation
2017-08-17 05:42:17 +02:00
Juan Picado @jotadeveloper
8153e1b109 Merge pull request #295 from jrussellsmyth/fix-accept-header
Correct accept header set for registry requests.
2017-08-17 05:36:40 +02:00
Mathieu Savy
25f9a8dadb Update SSL documentation
Hi,

I had some troubles setting up SSL for my Verdaccio registry because document was not perfectly clear.
I made little improvements on the SSL wiki page by adding a section about Docker (`listen` config entry is ignored because it's already set on Dockerfile), and I also added a link to the Node documentation pointing at more documentation for the `ca`, `cert` and `key` options for the `https` entry on the configuration.
2017-08-16 11:27:43 +02:00
J. Russell Smyth
eb0c87d77a add semicolon after media type in accept statement. Necessary for more pedantic servers such as Artifactory 2017-08-15 23:59:00 +00:00
Adam Szmyd
d0e0bc4ff3 Fix auth process to check against username also and not just groups 2017-08-15 12:21:28 +02:00
Juan Picado @jotadeveloper
0feccf9b4a chore(release): 2.3.5 2017-08-14 08:18:11 +02:00
Juan Picado @jotadeveloper
836bb348fb Merge pull request #290 from verdaccio/fix-289-285
fix: Remove accept header that seems cause issues #285 #289
2017-08-12 13:07:47 +02:00
Juan Picado @jotadeveloper
b6ee1100ef refactor: remove the feature for multi accept strings 2017-08-12 13:01:25 +02:00
Juan Picado @jotadeveloper
fab8391daf fix: Remove accept header that seems cause issues #285 #289 and npm search fails 2017-08-12 12:51:06 +02:00
Juan Picado @jotadeveloper
368fe92a10 Merge pull request #283 from RodrigoBalest/patch-1
doc: amend proxy instructions for Apache
2017-08-07 18:30:17 +02:00
RodrigoBalest
21df66d622 Amend proxy instructions for Apache
Hi.
I had issues regarding to resources when accessing Verdaccio through Apache proxy.
I found out that removing ending slashes at `ProxyPass` and `ProxyPassReverse` settings solved it.
I also set Verdaccio's config `url_prefix` to match the proxy location.
Hope it helps.
2017-08-07 08:44:21 -03:00
Juan Picado @jotadeveloper
d7e6bae469 refactor: move stream tarball helper as a dependency 2017-08-06 22:52:30 +02:00
Juan Picado @jotadeveloper
ba99fd5ba1 refactor: restore previous package check logic 2017-08-06 22:41:14 +02:00
Juan Picado @jotadeveloper
88a29f5928 Merge pull request #262 from verdaccio/fix_unit_test
refactor: unit test, reorganize and group then correctly
2017-08-06 22:08:59 +02:00
Juan Picado @jotadeveloper
32a1b6e6e2 refactor: restore default time out to 20s 2017-08-06 22:04:35 +02:00
Juan Picado @jotadeveloper
8b93b579d3 refactor: naming clean up, relocation, organize by category 2017-08-06 21:54:15 +02:00
Juan Picado @jotadeveloper
b804e96f4a refactor: use utility to parse the yaml config file 2017-08-05 10:35:14 +02:00
Juan Picado @jotadeveloper
d53ce9750b refactor: rename unit test clean up 2017-08-05 10:34:31 +02:00
Juan Picado @jotadeveloper
644c0981db fix: configuration files inconsistencies, add unit test 2017-08-02 20:46:06 +02:00
Juan Picado @jotadeveloper
cda92ac5ab refactor: relocate unit test 2017-08-02 20:45:21 +02:00
Juan Picado @jotadeveloper
a038b282ec refactor: scoped packages unit test, relocate other unit test 2017-07-30 15:56:00 +00:00
Juan Picado @jotadeveloper
1e6c7dd6ea refactor: unit test for readme, preserve tags on publish 2017-07-30 15:56:00 +00:00
Juan Picado @jotadeveloper
6f006fbf40 test: Add functional test to un publish a single version 2017-07-30 17:55:41 +02:00
Juan Picado @jotadeveloper
442305c62f refactor: local storage get rid of error codes dependency 2017-07-30 16:55:22 +02:00
Juan Picado @jotadeveloper
00cf9c25bb refactor: local storage with less external dependencies 2017-07-30 15:12:32 +02:00
Juan Picado @jotadeveloper
5b52447408 refactor: local storage methods cleanup for getTarball 2017-07-30 12:34:23 +02:00
Juan Picado @jotadeveloper
4e2853bb79 doc: add new suggestion to the readme fix #32 2017-07-29 22:27:25 +02:00
Juan Picado @jotadeveloper
cc32186328 refactor: methods clean up on uplink storage 2017-07-29 21:39:22 +02:00
Juan Picado @jotadeveloper
bb080cae17 doc: Add headers options to uplink section 2017-07-29 20:22:32 +02:00
Juan Picado @jotadeveloper
c4555cd64e refactor: storage classes clean up 2017-07-29 19:11:52 +02:00
Juan Picado @jotadeveloper
14bbd93722 chore(release): 2.3.4 2017-07-29 12:16:34 +02:00
Juan Picado @jotadeveloper
901a7bec62 fix: Docker image fails due lock file localhost references 2017-07-29 12:16:28 +02:00
Juan Picado @jotadeveloper
fd0e9190f2 chore(release): 2.3.3 2017-07-29 12:04:14 +02:00
Juan Picado @jotadeveloper
94fb6adf4f fix: refactor #268 in a better way, amended to elegant way 2017-07-29 12:03:51 +02:00
Juan Picado @jotadeveloper
fdc9624d70 Merge pull request #274 from verdaccio/fix_268_refactor
refactor: fix #268 in a better way
2017-07-29 11:17:19 +02:00
Juan Picado @jotadeveloper
420a256832 refactor: fix #268 in a better way 2017-07-29 11:04:46 +02:00
Juan Picado @jotadeveloper
5ba07d7420 Update README.md
doc: add vote section for new logo
2017-07-29 08:42:38 +02:00
Juan Picado @jotadeveloper
124e89867f Merge branch 'master' of github.com:verdaccio/verdaccio 2017-07-29 01:47:19 +02:00
Juan Picado @jotadeveloper
8847ed4e28 chore: update lock file 2017-07-29 01:47:16 +02:00
Juan Picado @jotadeveloper
bd03fc34d2 Merge pull request #271 from amirmohsen/patch-1
Adding X-Forwarded-Proto header to docs
2017-07-29 01:37:15 +02:00
Amir Mohsen Abdolrazaghi
8ae5fa0c0f Adding X-Forwarded-Proto header to docs 2017-07-29 00:23:03 +01:00
Juan Picado @jotadeveloper
c20bf97b5b chore(release): 2.3.2 2017-07-29 01:01:45 +02:00
Juan Picado @jotadeveloper
f589b1be07 build: add new dependency for auto update changelog 2017-07-29 00:19:40 +02:00
Meeeeow
d725a81398 Merge pull request #270 from verdaccio/fix_268
fix: #268 remove the accept header that avoids request with some regi…
2017-07-28 17:38:15 +08:00
Juan Picado @jotadeveloper
e7dcf3cc86 fix: #268 remove the accept header that avoids request with some regiestries 2017-07-28 07:20:13 +02:00
Meeeeow
a4c829d836 Merge pull request #266 from verdaccio/fix_265
fix: Param web.title from config.yaml does not work on docker image #265
2017-07-27 19:14:21 +08:00
Juan Picado @jotadeveloper
ff96d2ec0c fix: undefined check 2017-07-27 08:18:34 +02:00
Juan Picado @jotadeveloper
d0afe78e98 fix: lint warning 2017-07-27 07:42:22 +02:00
Juan Picado @jotadeveloper
b1a396d9c5 fix: Param web.title from config.yaml does not work on docker image #265 2017-07-27 07:35:47 +02:00
Juan Picado @jotadeveloper
b249e14a66 doc: update packages
Add small not for deprecated properties
2017-07-25 22:59:16 +02:00
Juan Picado @jotadeveloper
513f426623 Merge pull request #263 from jachstet-sea/wiki_fixes
Wiki fixes
2017-07-25 20:05:04 +02:00
Jannis Achstetter
7aa25ca0e3 Fix typo 2017-07-25 13:59:45 +01:00
Jannis Achstetter
e13f1f73fa Rename file iss-server.md -> iis-server.md and update the only reference to it 2017-07-25 13:56:25 +01:00
Juan Picado @jotadeveloper
95401ce6de 2.3.1 2017-07-25 07:15:41 +02:00
Juan Picado @jotadeveloper
f9ae0d0ffd chore: prepare release 2017-07-25 07:15:23 +02:00
Juan Picado @jotadeveloper
fb7863439e Merge pull request #261 from verdaccio/fix_scoped_package_detail_and_leaks
Detail page can't handle scoped package
2017-07-24 12:40:32 +02:00
Meeeeow
1c9fbfce50 fix: 🐛 detail page can't handle scoped package
fix: 🐛 readme leak
2017-07-24 17:16:28 +08:00
Juan Picado @jotadeveloper
90854b2c51 Merge pull request #223 from verdaccio/fix_78
Fix #78 Add new setting to allow publish when uplinks are offline
2017-07-24 07:46:03 +02:00
Juan Picado @jotadeveloper
672589b553 refactor: check if the param config is boolean 2017-07-24 07:38:26 +02:00
Juan Picado @jotadeveloper
430425ce2f fix: #78 add new setting to allow publish when uplinks are offline 2017-07-24 07:38:13 +02:00
Juan Picado @jotadeveloper
4a587825f3 doc: add recipe to protect your packages 2017-07-24 07:25:50 +02:00
Juan Picado @jotadeveloper
2b418811ff doc: Add anonymous publish section 2017-07-24 07:25:34 +02:00
Juan Picado @jotadeveloper
aeb9580870 Merge pull request #260 from conorhastings/use-react-synax-highlighter-light
use light version of syntax highlighter
2017-07-23 11:44:17 +02:00
Conor Hastings
d1b30a58e2 use light version of syntax highlighter 2017-07-23 05:39:43 -04:00
Juan Picado @jotadeveloper
4e435e1ac7 doc: update server side section title 2017-07-23 07:32:14 +02:00
Juan Picado @jotadeveloper
9fb0e14897 fix: broken link 2017-07-23 07:19:52 +02:00
Juan Picado @jotadeveloper
d8244e5f49 2.3.0 2017-07-23 01:02:02 +02:00
Juan Picado @jotadeveloper
66f67c026d doc: remove links 2017-07-23 01:01:18 +02:00
Juan Picado @jotadeveloper
fc7d499bf7 docs: prepare release, update readme and add documentation 2017-07-23 00:52:45 +02:00
Juan Picado @jotadeveloper
acb6c8ca25 fix: if author property is not part of the pkg body ui crash 2017-07-22 20:20:29 +02:00
Juan Picado @jotadeveloper
3a187945dc fix: Display message if there are no items on search 2017-07-22 19:32:32 +02:00
Juan Picado @jotadeveloper
19490ffc51 fix: highlight is not a component, must include all dependency 😞 2017-07-22 19:00:13 +02:00
Juan Picado @jotadeveloper
f783ec3df3 chore: ignore npm lock file 2017-07-22 18:25:48 +02:00
Juan Picado @jotadeveloper
de1c6b15fe refactor: yarn lock file is the main one 2017-07-22 18:24:46 +02:00
Juan Picado @jotadeveloper
7cbe4279dd refactor: better script order, update references 2017-07-22 18:21:49 +02:00
Juan Picado @jotadeveloper
a7926a72b5 fix: Better use of imports, save more than 1mb of bundle size. 2017-07-22 18:16:33 +02:00
Juan Picado @jotadeveloper
e84ff197ec fix: extend scss lint to webpack dev and prod env 2017-07-22 17:34:29 +02:00
Juan Picado @jotadeveloper
d72ee76d74 fix: Fix 404 packages view, refactor readme and some components. Split them up for easy testing. 2017-07-22 16:52:31 +02:00
Juan Picado @jotadeveloper
0f31b364e8 fix: eslint missing warnings on ui 2017-07-22 16:48:05 +02:00
Juan Picado @jotadeveloper
b0edff4963 fix: sass lint 2017-07-22 11:33:05 +02:00
Juan Picado @jotadeveloper
b5fccd1ac9 refactor: hide search and title when there is no packages to display 2017-07-22 10:50:53 +02:00
Juan Picado @jotadeveloper
acd4349b75 Merge pull request #259 from Meeeeow/add_publish_introduce
Add publish introduce
2017-07-21 20:33:27 +02:00
Meeeeow
c9c22ed080 fix: 🐛 remove wrong code added in merge cause app crash 2017-07-22 02:25:00 +08:00
Meeeeow
8ff89a7141 feature: 💄 add publish introduce 2017-07-22 02:11:17 +08:00
Juan Picado @jotadeveloper
8ecf4ae0a9 Merge pull request #242 from verdaccio/update_wiki
(doc): Upload wiki documentation
2017-07-19 15:20:38 +02:00
Juan Picado @jotadeveloper
3e78ad3471 (doc): Upload authorization documentation 2017-07-18 19:59:39 +00:00
Juan Picado @jotadeveloper
ee8063401e (doc): Upload plugins documentation 2017-07-18 19:59:39 +00:00
Juan Picado @jotadeveloper
51aa107cb8 release: update changelong 2017-07-18 21:58:21 +02:00
Juan Picado @jotadeveloper
855ace7f95 Merge pull request #220 from verdaccio/refactor-ui
Refactor ui - React, Webpack and CSS Modules
2017-07-18 21:54:23 +02:00
Juan Picado @jotadeveloper
b64dbfe499 chore: update yarn lock file 2017-07-18 21:25:25 +02:00
Juan Picado @jotadeveloper
29294bdabb fix: warnings after rebase 2017-07-18 21:25:01 +02:00
Juan Picado @jotadeveloper
f9dea8a52c refactor: Dockerfile command in one line, save one layer 2017-07-18 21:14:14 +02:00
Juan Picado @jotadeveloper
09656471de fix: update webpack prepublish script and lock file, exclude from npm pack build files 2017-07-18 21:14:14 +02:00
Juan Picado @jotadeveloper
84388ff1da fix: minor UI bug fixes 2017-07-18 21:14:14 +02:00
Juan Picado @jotadeveloper
08c5358a8c refactor: clean non used dependencies and move to dev dependencies for ui 2017-07-18 21:14:14 +02:00
Juan Picado @jotadeveloper
24c1f92644 fix: remove styled-component dependency in favor of css modules 2017-07-18 21:14:14 +02:00
Juan Picado @jotadeveloper
9c175a597b fix: update dependencies, add webpack-merge 2017-07-18 21:14:14 +02:00
Juan Picado @jotadeveloper
945f833ebd fix: fix style lint issue with css module 2017-07-18 21:14:13 +02:00
Juan Picado @jotadeveloper
27470c0e8d fix: avoid include complete lodash library to the bundle, save 400kb. 2017-07-18 21:14:13 +02:00
Juan Picado @jotadeveloper
3738221bf5 fix: eslint warnings 2017-07-18 21:14:13 +02:00
Juan Picado @jotadeveloper
1465ce2b92 fix: Dockerfile to run webpack step 2017-07-18 21:14:13 +02:00
Juan Picado @jotadeveloper
f8a7483b08 refactor: move webpack to root folder and rewrite to es6 node style (legacy compatibility) 2017-07-18 21:14:13 +02:00
Juan Picado @jotadeveloper
6be3c6841c fix: update lock file 2017-07-18 21:14:13 +02:00
Juan Picado @jotadeveloper
ffdd682137 feature: add sass lint 2017-07-18 21:14:13 +02:00
Juan Picado @jotadeveloper
ceb44aa22b fix: typo entry point 2017-07-18 21:14:12 +02:00
Juan Picado @jotadeveloper
a6321a0961 refactor: encourage usage of lodash 2017-07-18 21:14:12 +02:00
Juan Picado @jotadeveloper
2df4f7b628 fix: eslint globally read all files, rename jsx to js. Reduce amount of repeated configuration 2017-07-18 21:14:12 +02:00
Juan Picado @jotadeveloper
2e5a1e7fd9 fix: add template folder instead hosting it in the root 2017-07-18 21:14:12 +02:00
Juan Picado @jotadeveloper
a6d6e58a80 fix: lodash instead typeof 2017-07-18 21:14:12 +02:00
Meeeeow
68a559ebac fix: 🐛 SPA not work with sub-directory reverse proxy 2017-07-18 21:14:12 +02:00
Meeeeow
beafd31cab refactor: 🔨 add home page link to logo in the header 2017-07-18 21:14:12 +02:00
Meeeeow
fd2821fb92 fix: 🐛 use hash router to avoid pathname conflict with package name 2017-07-18 21:14:11 +02:00
Meeeeow
1351f582b0 feature: check token expire before render login button 2017-07-18 21:14:11 +02:00
Meeeeow
3a3f4ed960 fix: incorrect api url in webpack config 2017-07-18 21:14:11 +02:00
Juan Picado @jotadeveloper
2e3c8ed2cb fix: typo on build 2017-07-18 21:14:11 +02:00
Juan Picado @jotadeveloper
b743ee7e3c fix: improve circle build time 2017-07-18 21:14:11 +02:00
Juan Picado @jotadeveloper
5e086d1830 build: force rebuild node-sass after each version switch in circle 2017-07-18 21:14:11 +02:00
Juan Picado @jotadeveloper
2e38c0ebae fix: update test scripts webpack build included 2017-07-18 21:14:11 +02:00
Juan Picado @jotadeveloper
31be70a18c fix: we force travis to update npm to latest 2017-07-18 21:14:11 +02:00
Juan Picado @jotadeveloper
c96dd560cd fix: update travis webpack script 2017-07-18 21:14:10 +02:00
Juan Picado @jotadeveloper
5d924c0cf2 fix: eslint warnings 2017-07-18 21:14:10 +02:00
Juan Picado @jotadeveloper
68fd3d15cc fix: replace ruby-sass-loader by sass-loader 2017-07-18 21:14:10 +02:00
Juan Picado @jotadeveloper
56d3610907 feature: add node-sass dependency 2017-07-18 21:14:10 +02:00
Juan Picado @jotadeveloper
d072428249 fix: update git ignore, not needed files 2017-07-18 21:14:10 +02:00
Juan Picado @jotadeveloper
cfffd04736 refactor: disable readme test 2017-07-18 21:14:10 +02:00
Juan Picado @jotadeveloper
5b1ac962f2 fix: unit test library reference 2017-07-18 21:14:09 +02:00
Juan Picado @jotadeveloper
53349fd096 fix: eslint errors 2017-07-18 21:14:09 +02:00
Juan Picado @jotadeveloper
5ee2faf125 fix: Missing code from pr #222 lost in rebase 2017-07-18 21:14:09 +02:00
Juan Picado @jotadeveloper
5f345a90df fix: dot files, dependencies and update scripts 2017-07-18 21:14:09 +02:00
Meeeeow
6d12e40078 refactor: new webui 2017-07-18 21:14:09 +02:00
Meeeeow
3ba8d0827b refactor: modify webui dependencies & add some code 2017-07-18 21:14:09 +02:00
Meeeeow
bffd8c3d7c refactor: remove unused resource 2017-07-18 21:14:09 +02:00
Meeeeow
d6e04be39f refactor: login & whoami api
- Remove jju from dependencies
- Add JWT to issue token
- Remove cookie middleware
- Add JWT middleware for WebUI
2017-07-18 21:14:08 +02:00
Meeeeow
58b167268e refactor: packages & readme & search api 2017-07-18 21:08:25 +02:00
Meeeeow
7fef14c322 refactor: directory structure 2017-07-18 21:08:10 +02:00
Meeeeow
e3b1a33596 fix: verdaccio is a dependency of verdaccio 2017-07-18 21:02:06 +02:00
Juan Picado @jotadeveloper
3639e32939 Update dependencies #217 2017-07-18 21:02:06 +02:00
Juan Picado @jotadeveloper
9707e0c336 Add new web ui, replace the old one based on jQuery by React components and webpack. 2017-07-18 21:02:06 +02:00
Juan Picado @jotadeveloper
e9f3d0d0c3 Refactor api, relocate routes and clean up the code 2017-07-18 21:02:06 +02:00
Juan Picado @jotadeveloper
c9bf4ed20e Refactor web, relocate files to web folder 2017-07-18 21:02:06 +02:00
Juan Picado @jotadeveloper
999a65e412 #217 Fix yarn install fails on Node 4.x 2017-07-18 21:02:06 +02:00
Juan Picado @jotadeveloper
cf57834019 Update yarn lock file #217 2017-07-18 21:02:06 +02:00
Juan Picado @jotadeveloper
16d7627ba6 Update dependencies #217 2017-07-18 21:02:05 +02:00
Juan Picado @jotadeveloper
3b4b8d94d5 Add ui test to build 2017-07-18 21:02:05 +02:00
Juan Picado @jotadeveloper
18553ba130 Update yarn lock file 2017-07-18 21:02:05 +02:00
Juan Picado @jotadeveloper
e49846bb1b Add new web ui, replace the old one based on jQuery by React components and webpack. 2017-07-18 21:02:05 +02:00
Juan Picado @jotadeveloper
a6d3745cd4 Refactor api, relocate routes and clean up the code 2017-07-18 21:02:05 +02:00
Juan Picado @jotadeveloper
b3a82bc294 Refactor web, relocate files to web folder 2017-07-18 21:02:05 +02:00
Juan Picado @jotadeveloper
4829e5286e Merge pull request #254 from gbtechhub/fix-lb
fix running behind of loadbalancer with TLS termination
2017-07-18 20:56:40 +02:00
Patrik Votocek
7df6948fe6 fix running behind of loadbalancer with TLS termination 2017-07-18 14:24:18 +02:00
Juan Picado @jotadeveloper
44dfb877f5 Merge pull request #253 from verdaccio/juanpicado-patch-2
doc: update readme, add docker badge
2017-07-16 09:26:00 +02:00
Juan Picado @jotadeveloper
5476cf6c21 doc: update readme, add docker badge 2017-07-16 09:21:10 +02:00
Juan Picado @jotadeveloper
789e7590bf Merge pull request #252 from verdaccio/juanpicado-patch-1
Update README.md
2017-07-16 08:51:38 +02:00
Juan Picado @jotadeveloper
4cc2e0b44b Update README.md
Add beta version
Add npx command
2017-07-16 08:39:21 +02:00
Juan Picado @jotadeveloper
b55a0b6c31 Merge commit 'e2180cf507254c37fcf8f3f8536ddb8befac70db'
* commit 'e2180cf507254c37fcf8f3f8536ddb8befac70db':
  2.2.6
  release: update changelog
2017-07-13 07:55:13 +02:00
Juan Picado @jotadeveloper
e2180cf507 2.2.6 2017-07-13 07:03:44 +02:00
Juan Picado @jotadeveloper
249fcff93a release: update changelog 2017-07-13 07:03:35 +02:00
Juan Picado @jotadeveloper
609a7e75ed Merge pull request #251 from verdaccio/node_update
build: update node version due security update announcement
2017-07-13 07:00:21 +02:00
Juan Picado @jotadeveloper
3a518e3959 build: update node version due security update announcement 2017-07-13 06:54:19 +02:00
Juan Picado @jotadeveloper
279e7d1212 Update README.md 2017-07-10 06:46:01 +02:00
Juan Picado @jotadeveloper
a8df59bdf8 build: add circle ci config file 2017-07-09 10:26:06 +02:00
Juan Picado @jotadeveloper
2a817ec25f Merge pull request #245 from verdaccio/locking-file-feature
refactor(storage): extract common library need it for plugins
2017-07-08 16:28:01 +02:00
Juan Picado @jotadeveloper
2187a9e8b8 refactor(storage): extract common library need it for plugins 2017-07-08 16:17:09 +02:00
Juan Picado @jotadeveloper
770ef82fe1 Merge pull request #243 from rbpinheiro/patch-1
fixing yarn syntax
2017-07-05 20:59:55 +02:00
Rafael Pinheiro
436fb47057 fixing yarn syntax
The current command was installing the packages "global" and "verdaccio" locally instead of installing verdaccio globally.
2017-07-05 15:58:07 -03:00
Juan Picado @jotadeveloper
87bdc7013f 2.2.5 2017-07-05 19:33:49 +02:00
Juan Picado @jotadeveloper
7989000ef8 (release): prepare release v2.2.5 (skip 2.2.4 due npm publish issue) 2017-07-05 19:33:42 +02:00
Juan Picado @jotadeveloper
1867bd3184 2.2.4 2017-07-05 19:30:29 +02:00
Juan Picado @jotadeveloper
cc96236dac (release): prepare release v2.2.4 2017-07-05 19:30:29 +02:00
Juan Picado @jotadeveloper
807f170b72 Merge pull request #241 from markpeterfejes/master
Fixed adding the verdaccio user into the group
2017-07-05 19:23:52 +02:00
markpeterfejes
109d80a39e Fixed adding the verdaccio user into the group 2017-07-05 16:30:31 +02:00
Juan Picado @jotadeveloper
4f59b0d2c6 Merge pull request #240 from markpeterfejes/master
Added documentation to the PROTOCOL configuration
2017-07-05 09:58:25 +02:00
markpeterfejes
1d07e65997 Added documentation to the PROTOCOL configuration 2017-07-05 09:47:29 +02:00
Meeeeow
df87eb3224 Merge pull request #236 from verdaccio/fix_105
Increase Documentation
2017-07-05 10:49:12 +08:00
Juan Picado @jotadeveloper
7a5fe2afac 2.2.3 2017-07-04 22:43:12 +02:00
Juan Picado @jotadeveloper
7fd2357245 (release): Preparing release 2.2.3 2017-07-04 22:43:00 +02:00
Juan Picado @jotadeveloper
6cdf8f9007 Merge pull request #239 from markpeterfejes/master
Updated Dockerfile & added proper signal handling
2017-07-04 21:31:02 +02:00
markpeterfejes
e1d447c450 Easy configuration for listen protocol 2017-07-04 18:53:45 +02:00
markpeterfejes
32709843fb Updated Dockerfile - added proper signal handling 2017-07-04 18:10:41 +02:00
Juan Picado @jotadeveloper
02431bf71e (fix): Fix notification table 2017-07-04 08:05:41 +02:00
Juan Picado @jotadeveloper
ef347442be (fix): Fix tabs instead spaces 2017-07-04 08:02:29 +02:00
Juan Picado @jotadeveloper
8e009d8fe8 (doc): Add notifications documentation 2017-07-04 08:00:31 +02:00
Juan Picado @jotadeveloper
432a6c4eaf (doc): Upload cli documentation 2017-07-04 07:20:13 +02:00
Juan Picado @jotadeveloper
da0618c442 Merge pull request #235 from verdaccio/refactor_test
Refactor functional testing
2017-07-03 20:59:39 +02:00
Juan Picado @jotadeveloper
4ea5ec7194 2.2.2 2017-07-02 15:11:07 +02:00
Juan Picado @jotadeveloper
7f16f90186 (release): Update changelog 2017-07-02 15:11:01 +02:00
Juan Picado @jotadeveloper
71a22be8ca (fix): Fix wrong reference to config packages 2017-07-02 15:00:05 +02:00
Juan Picado @jotadeveloper
f504c6c181 (fix): Update broken link 2017-07-02 14:59:45 +02:00
Juan Picado @jotadeveloper
c54f886525 (doc): Upload uplinks documentation, added section 2017-07-02 14:40:00 +02:00
Juan Picado @jotadeveloper
d8177a7724 (doc): Upload packages documentation 2017-07-02 14:39:46 +02:00
Juan Picado @jotadeveloper
17bc128546 (doc): Update ansible doc 2017-07-02 09:38:25 +02:00
Juan Picado @jotadeveloper
09b8c73e47 (doc): Update uplink documentation 2017-07-02 09:35:24 +02:00
Juan Picado @jotadeveloper
3618508640 (doc): Upload uplinks documentation 2017-07-02 00:11:54 +02:00
Juan Picado @jotadeveloper
2a25bce808 (fix): Update doc for issue found on #108 2017-07-02 00:07:42 +02:00
Juan Picado @jotadeveloper
6e91aa88be (test): Refactor and add documentation some unit test, relocate storages 2017-07-02 00:05:58 +02:00
Juan Picado @jotadeveloper
1ae08b6b78 (test): Add functional test for notifications on publish 2017-07-01 11:17:46 +02:00
Juan Picado @jotadeveloper
19f969d442 (fix): fix formatting, easy to read 2017-07-01 09:10:26 +02:00
Juan Picado @jotadeveloper
2f0609d6c7 (fix): coverage, fix reporter 2017-07-01 09:10:00 +02:00
Juan Picado @jotadeveloper
aeed698ed2 (fix): add functional test, unpublish package 2017-07-01 09:09:44 +02:00
Juan Picado @jotadeveloper
6e1a04ecd8 (fix): clean up travis, only codecov enabled 2017-07-01 09:08:38 +02:00
Juan Picado @jotadeveloper
559d4c0ece (fix): clean up test scripts, remove old dependencies 2017-07-01 09:07:16 +02:00
Juan Picado @jotadeveloper
9640730d6c (fix): renamed smart request file 2017-07-01 00:06:21 +02:00
Juan Picado @jotadeveloper
a702e69e16 (fix): increase mocha timeout 2017-06-30 23:17:58 +02:00
Juan Picado @jotadeveloper
492eeef721 (fix): trying to fix hangs promises on travis 2017-06-30 23:11:40 +02:00
Juan Picado @jotadeveloper
b2008958f1 (test): Refactor smart request module 2017-06-30 23:11:12 +02:00
Juan Picado @jotadeveloper
e41dad708e (test): Refactor hash method 2017-06-30 23:10:30 +02:00
Juan Picado @jotadeveloper
582285a37f (cli): encouraging to use lodash 2017-06-30 23:09:59 +02:00
Juan Picado @jotadeveloper
1926522f99 (test): Move mocha options to mocha config file 2017-06-30 23:09:17 +02:00
Juan Picado @jotadeveloper
96c9f459c1 (test): Refactor server class, renamed methods to camelCase 2017-06-28 22:56:02 +02:00
Juan Picado @jotadeveloper
15c6cb09fd (test): Fix mocha debug mode for > Node 7 2017-06-28 22:47:16 +02:00
Juan Picado @jotadeveloper
0651c20990 Merge pull request #233 from verdaccio/fix_109
Fix #109 Remove puppet section from Readme file
2017-06-26 19:46:35 +02:00
Juan Picado @jotadeveloper
eb1cb24723 Fix #109 Remove puppet section from Readme file 2017-06-26 19:44:57 +02:00
Juan Picado @jotadeveloper
912f4e4fc4 Merge pull request #231 from nedelenbos/patch-1
Fixed grammar error in README
2017-06-26 17:50:18 +02:00
Nick
80aebfc26f Fixed grammar error in README
More then just NPM dependencies -> More than just NPM ...
2017-06-26 09:23:35 +02:00
Juan Picado @jotadeveloper
f6ebdb9aec Merge pull request #230 from idangozlan/patch-1
Update plugins.md
2017-06-26 06:58:30 +02:00
Idan Gozlan
011a9c944b Update plugins.md
Added `verdaccio-bitbucket` plugin, a new version for old `sinopia-bitbucket`
2017-06-26 00:43:31 +03:00
Juan Picado @jotadeveloper
efb25cf611 Merge pull request #227 from karfau/fix-docker-port
Fix #213 Allow to configure port for docker
2017-06-24 14:04:17 +02:00
Christian Bewernitz
a1c396ea27 added hint about excluding files from being ignored from docker 2017-06-24 12:03:44 +02:00
Christian Bewernitz
8cfd437b7e moving docker section to new wiki folder 2017-06-24 11:59:25 +02:00
Christian Bewernitz
9a4f81c2cb allow to configure port for docker
- also works for docker-compose
- updated docs accordingly
- included .dockerignore to speed up build
2017-06-24 11:21:28 +02:00
Juan Picado @jotadeveloper
96c6604252 (doc): Update readme, add yarn support 2017-06-24 10:22:06 +02:00
Juan Picado @jotadeveloper
9036126359 (wiki): Relocated server advanced configuration to wiki 2017-06-24 10:11:08 +02:00
Juan Picado @jotadeveloper
73cc898f6b (other): Remove checkboxes from template 2017-06-24 09:47:21 +02:00
Juan Picado @jotadeveloper
a5d0949bb4 (wiki): Fix sections 2017-06-24 09:44:37 +02:00
Juan Picado @jotadeveloper
c8b50ba2d3 (wiki): Update wiki readme 2017-06-24 09:43:09 +02:00
Juan Picado @jotadeveloper
226a0895a9 (wiki): Rename entry folder file 2017-06-24 09:34:02 +02:00
Juan Picado @jotadeveloper
a77371e9b4 Merge pull request #229 from verdaccio/add_wiki
Add wiki section
2017-06-24 09:29:42 +02:00
Juan Picado @jotadeveloper
3ed7610e8d (wiki): Add plugins list 2017-06-24 09:27:55 +02:00
Juan Picado @jotadeveloper
2351b733cd (wiki): Add SSL conf 2017-06-24 09:26:21 +02:00
Juan Picado @jotadeveloper
c76559a4d4 (wiki): Add reverse proxy conf 2017-06-24 09:26:10 +02:00
Juan Picado @jotadeveloper
a5f44c464a (wiki): Add ansible doc 2017-06-24 09:25:51 +02:00
Juan Picado @jotadeveloper
51cb473141 (build): Ignore wiki from dot file 2017-06-24 09:22:03 +02:00
Juan Picado @jotadeveloper
99bc24c0ef (wiki): Add wiki home 2017-06-24 09:21:08 +02:00
Juan Picado @jotadeveloper
5a7e08c4e5 (wiki): Add windows ISS configuration 2017-06-24 09:18:38 +02:00
Juan Picado @jotadeveloper
9d89393695 (wiki): Add windows service documentation 2017-06-24 09:12:21 +02:00
Juan Picado @jotadeveloper
b436e1dc88 Merge pull request #228 from verdaccio/fix_73
Fix 73
2017-06-23 08:33:44 +02:00
Juan Picado @jotadeveloper
172b271c6f Fix #73 Add time property to new published local packages 2017-06-23 08:13:19 +02:00
Juan Picado @jotadeveloper
8fbf77a76d Fix #73 Add time property to deliver uplink last modified package 2017-06-22 22:37:02 +02:00
Juan Picado @jotadeveloper
9fdc251b83 Fix #73 Refactor Storage methods affected 2017-06-22 22:35:09 +02:00
jotadeveloper
2d4f1b2362 Merge pull request #225 from verdaccio/add-code-of-conduct-1
Create CODE_OF_CONDUCT.md
2017-06-19 21:15:05 +02:00
jotadeveloper
450c22359f Create CODE_OF_CONDUCT.md 2017-06-19 21:14:23 +02:00
Waldemar Reusch
ef360d6927 enable verdaccio behind a https nginx proxy (#222)
* enable verdaccio to run with http protcol behind a https reverse proxy

* add semicolon
2017-06-19 12:12:36 +08:00
jotadeveloper
9db2372c05 Update issue_template.md
Remove annoying checkboxes from issue template
2017-06-18 17:38:30 +02:00
jotadeveloper
2cceccad55 Merge pull request #181 from kba/better-docker-cntd
Better docker cntd
2017-06-18 17:34:16 +02:00
jotadeveloper
78b54060b5 Merge branch 'master' into better-docker-cntd 2017-06-18 17:23:46 +02:00
Juan Picado @jotadeveloper
da4c04a22e 2.2.1 2017-06-17 18:22:51 +02:00
Juan Picado @jotadeveloper
5ec951622d Update changelog, prelease release 2017-06-17 18:22:29 +02:00
jotadeveloper
42fb6c3b14 Merge pull request #216 from Meeeeow/feature_support_x_forwarded_for
Add remote ip to request log
2017-06-17 17:22:21 +02:00
Meeeeow
d5a3d085aa add remote ip to request log 2017-06-17 22:13:29 +08:00
jotadeveloper
fdd98ace07 Merge pull request #214 from Meeeeow/update_doc_reverse_proxy
docs: update docs with behind reverse proxy
2017-06-15 18:50:23 +02:00
Meeeeow
733f13528d docs: update docs with behind reverse proxy 2017-06-16 00:27:21 +08:00
jotadeveloper
f21c3f0b26 Update README
Update docker run command, namespace docker image was wrong
2017-06-15 00:56:30 +02:00
jotadeveloper
6f67870f70 Merge pull request #211 from r3wald/205-documentation-for-proxy-configuration
config section moved up, some keywords added.
2017-06-12 19:44:43 +02:00
Robert Ewald
0e9d2454d8 config section moved up, some keywords added. 2017-06-12 11:59:05 +02:00
jotadeveloper
b33f50a1ae Delete _config.yml 2017-06-11 08:51:54 +02:00
jotadeveloper
f3b4fb68ef Merge pull request #210 from verdaccio/storage-refactor-103
Storage refactor
2017-06-11 08:47:07 +02:00
Juan Picado @jotadeveloper
2ee4f38743 Refactor Storage, move local storage to inner folder.
Refactor methods to camelCase
Relocate utilities
2017-06-10 23:41:24 +02:00
Juan Picado @jotadeveloper
d2a4cf3264 Secret key should be persited in config file if exist in the data store 2017-06-10 23:18:50 +02:00
Juan Picado @jotadeveloper
1358d53dd9 Refactor storage, moves secret key generator to config file 2017-06-10 23:07:08 +02:00
Juan Picado @jotadeveloper
ac456232bb Rename local storage class 2017-06-10 23:03:50 +02:00
Juan Picado @jotadeveloper
181267f256 display additional info in case of test fails 2017-06-10 21:41:32 +02:00
Juan Picado @jotadeveloper
e799500893 Restore config refactoring 2017-06-10 21:40:58 +02:00
Juan Picado @jotadeveloper
75c3cbafd0 (eslint) set restrictive rule with non used variables 2017-06-10 20:29:36 +02:00
Juan Picado @jotadeveloper
c7b44ddcaa Set a more descriptive mocha reporter 2017-06-10 20:29:35 +02:00
Juan Picado @jotadeveloper
fcae1fa91d #103 Refactoring Uplink Storage, Config and Storage class 2017-06-10 20:29:35 +02:00
Juan Picado @jotadeveloper
09ca08baaf Refactored addPackage on Storage 2017-06-10 20:29:35 +02:00
Juan Picado @jotadeveloper
391e98de9f Refactor streams, removed not needed dependency 2017-06-10 20:29:35 +02:00
Juan Picado @jotadeveloper
fa4952408a #103 Remove Search references from local storage 2017-06-10 20:28:42 +02:00
Juan Picado @jotadeveloper
4cb0424d23 #103 Rename variables, organize methods, privates goes to the bottom 2017-06-10 20:26:43 +02:00
Juan Picado @jotadeveloper
db3233075c #103 Config file must not be aware of storage database, storage class should handle it. 2017-06-10 20:16:20 +02:00
Juan Picado @jotadeveloper
1307181005 Refactor streams, removed not needed dependency 2017-06-10 18:48:20 +02:00
Juan Picado @jotadeveloper
e9929c23e1 #103 Remove Search references from local storage 2017-06-10 18:46:02 +02:00
Juan Picado @jotadeveloper
fe73eba54e #103 Rename variables, organize methods, privates goes to the bottom 2017-06-10 18:43:20 +02:00
Juan Picado @jotadeveloper
f08e733cc4 #103 Config file must not be aware of storage database, storage class should handle it. 2017-06-10 18:40:03 +02:00
jotadeveloper
a3ebb7942d Update CONTRIBUTING.md 2017-06-10 12:52:00 +02:00
Juan Picado @jotadeveloper
c0bf077974 (release) update authors 2017-06-08 21:18:45 +02:00
Juan Picado @jotadeveloper
c1b2d09cd6 (release) fix typo, wrong version 2017-06-08 21:06:49 +02:00
Juan Picado @jotadeveloper
ce465f0b03 2.2.0 2017-06-08 21:02:44 +02:00
Juan Picado @jotadeveloper
794689304f (release) update changelog, prepare release 2017-06-08 20:58:07 +02:00
jotadeveloper
0cabd62dea Merge pull request #132 from coldrye-collaboration/gh-131
Adds cache option to uplinks
2017-06-08 20:47:14 +02:00
cklein
7018fc99a2 [GH-131] add cache option to uplinks 2017-06-08 17:59:28 +02:00
jotadeveloper
c2741683b2 Update .travis.yml
Add node 8 to travis configuration
2017-06-03 19:19:48 +02:00
jotadeveloper
e58ef5ed9c Merge pull request #206 from strongloop-forks/dont-clobber-tags
don't blindly clobber local dist-tags
2017-06-03 18:56:02 +02:00
Juan Picado @jotadeveloper
fe2d954555 Update lock files 2017-06-03 13:47:35 +02:00
Ryan Graham
64c3ea445b don't blindly clobber local dist-tags
If packages are being published to verdaccio as well as upstream to
npmjs.org, then when the cache is updated from npmjs.org it uses the
dist-tags from the upstream even if the locally published version is
actually newer. This makes it very difficult to use verdaccio as a
staging registry for testing out potential releases.

This change partially reverts a change in behaviour that was introduced
in #8 which caused a regression for the staging style workflow that was
supported by sinopia.
2017-06-01 13:59:56 -07:00
jotadeveloper
163852615a Update README.md
Add docker examples repository reference
2017-05-31 23:34:01 +02:00
jotadeveloper
717b8aa194 Update README.md
Add new badge
2017-05-23 21:40:59 +02:00
jotadeveloper
3e37e54158 Update CONTRIBUTING.md
Gitter over slack channel
2017-05-23 21:10:18 +02:00
jotadeveloper
16f8ae0f30 Merge pull request #197 from BartDubois/url_prefix-as-path
Allow url_prefix to be only the path
2017-05-21 23:00:09 +02:00
Bart Dubois
5336a0a611 Fix ES string delimiters
Use ` in stand of '
2017-05-21 22:55:49 +02:00
Bart Dubois
f8dc1da537 Fix ES6 template string
should be ${...} not @{...}
2017-05-21 22:50:11 +02:00
Bart Dubois
8927d7d144 Aplly sugestions form review
* Reneame the methof and use camelCase
* Use ES6 template string
2017-05-21 22:39:47 +02:00
jotadeveloper
3b65f66584 Update .travis.yml 2017-05-20 21:47:34 +02:00
jotadeveloper
6fe99a6f1b Delete .coveralls.yml 2017-05-20 21:46:21 +02:00
jotadeveloper
9626250140 Merge pull request #198 from mysiar/apache-reverse-proxy
Apache reverse proxy configuration
2017-05-20 21:45:02 +02:00
Piotr Synowiec
a514e254a2 Apache reverse proxy configuration - ip address update 2017-05-20 19:52:19 +02:00
Piotr Synowiec
bf8c018fc5 Apache reverse proxy configuration 2017-05-20 19:44:41 +02:00
Juan Picado @jotadeveloper
1bdb651636 Setup codacy coverage 2017-05-20 12:44:04 +02:00
Juan Picado @jotadeveloper
abc40b8e8e Refactor, cleaned all eslint warnings, eslint set to error to avoid more warnings 2017-05-20 12:33:23 +02:00
Juan Picado @jotadeveloper
a1e6368c29 Refactor, remove eslint warnings and for npm < 2.x, npm minimum higher as 2.15.x 2017-05-20 11:50:20 +02:00
Juan Picado @jotadeveloper
ba6543a322 Refactor Auth class, reduce eslint warnings, moved to es6 2017-05-20 11:13:08 +02:00
Juan Picado @jotadeveloper
2961d21124 Refactor, reduce eslint warnings 2017-05-20 10:47:43 +02:00
Juan Picado @jotadeveloper
45e4e66b4c Update badge 2017-05-20 09:49:42 +02:00
Juan Picado @jotadeveloper
b99d77ec29 Integrating codecov 2017-05-20 09:42:45 +02:00
Juan Picado @jotadeveloper
addd3605f6 Update readme, add coveralls badge 2017-05-20 09:23:32 +02:00
Juan Picado @jotadeveloper
54729bffa2 Set up coveralls 2017-05-20 09:21:24 +02:00
Juan Picado
01dc7dc1d8 Refactor, reduce eslint warnings, add doc 2017-05-20 08:56:06 +02:00
Bart Dubois
ff05d779c4 Allow url_prefix to be only the path
* Define utils function `get_base_url`.
 * If url_prefix start with `/` construct base URL using protocol and host form request.
 * Update SERVER.md with description of new `url_prefix` option.
2017-05-17 00:20:33 +02:00
Juan Picado
93bea50176 Update readme, docker tags support 2017-05-14 16:15:04 +02:00
Juan Picado
7bf1a5a802 Update changelog 2017-05-14 16:05:57 +02:00
Juan Picado
83979b3468 2.1.7 2017-05-14 15:49:38 +02:00
Juan Picado
e04a6784dd Update changelog 2017-05-14 15:49:30 +02:00
Juan Picado
dc8fe022bc fixed publish fail in YARN #183 fix eslint error @W1U02 patch 2017-05-14 15:46:19 +02:00
Juan Picado
502d20e2cf Update contribute guide 2017-05-14 10:17:41 +02:00
Juan Picado
fd66425de6 Update contribute guide 2017-05-14 10:14:32 +02:00
Juan Picado
19310b2078 Update authors 2017-05-13 11:23:41 +02:00
Juan Picado
aea51476da #189 Update https conf full yaml file 2017-05-13 11:23:05 +02:00
Juan Picado
8e729c79d8 Add pr template 2017-05-12 15:45:06 +02:00
Juan Picado
98e334b7fb Increase PR guidelines 2017-05-12 14:46:39 +02:00
Juan Picado
3fd63e5348 2.1.6 2017-05-12 09:40:41 +02:00
Juan Picado
e95064fef5 Update changelog, prepare release 2017-05-12 09:40:17 +02:00
Juan Picado
2215dc3397 Fix #189 Increase info whether https certs are missing 2017-05-12 09:32:08 +02:00
Juan Picado
4b9af22c95 Fix #189 ca safety check is missing 2017-05-12 09:29:22 +02:00
jotadeveloper
54481095ce Update README.md
Reduce the font size server section
2017-05-12 00:57:48 +02:00
Juan Picado
214b3dcde8 Improve contribute guidelines 2017-05-12 00:39:07 +02:00
jotadeveloper
ecb9f52bf3 Update issue_template.md
Add config file as suggestion
2017-05-10 00:02:27 +02:00
Juan Picado
92df8bd178 Fix uppercase lint warning, streams use lowercase function name 2017-05-09 10:11:09 +02:00
Juan Picado
445df5b30e Fix eslint, add jsdoc on storage lib 2017-05-09 09:56:54 +02:00
Juan Picado
57692cd8b1 Fix issue on handle error, missing context 2017-05-09 09:48:02 +02:00
jotadeveloper
f4058bb5c2 Merge pull request #170 from Meeeeow/fix_yarn_upstream
Fix upstream search not work with gzip
2017-05-08 10:40:30 +02:00
Meeeeow
c80dd8958a fix upstream search not work with gzip, close #156 2017-05-08 15:21:54 +08:00
Meeeeow
24879f8198 rename .eslintrc to .eslintrc.yml for compability 2017-05-08 15:19:33 +08:00
Konstantin Baierer
24411f7a68 Dockerfile: Set maintainer, COPY -> ADD 2017-05-07 17:38:53 +02:00
jotadeveloper
93d28f66b2 Merge pull request #184 from marnel/fix-https-suggestion-output
Add additional requirement to output message
2017-05-07 15:22:25 +02:00
Michael Arnel
f4c584cfce add trailing comma for eslint rule 2017-05-07 08:44:53 -04:00
Michael Arnel
a85978f2be Add additional requirement to output message
With out the ca parameter in the https config section the server fails to start with a 500 error and complains that path must be a string.
2017-05-07 08:03:00 -04:00
Juan Picado
90e1a66930 Display version on startup 2017-05-04 21:38:19 +02:00
Juan Picado
2a1f1a7dfa Fix more eslint warnings, add doc 2017-05-04 21:05:47 +02:00
Konstantin Baierer
6fd47b333e Address feedback by @cosaquee and @juanpicado in verdaccio/verdaccio#110 2017-05-03 00:06:06 +02:00
Jeff Mixon
5b8fe3aeb5 Better Docker
Improves the Docker experience by leveraging Data volumes, dropping root permissions, using a more lightweight and secure base image (node:alpine), and moving unwieldy run arguments into a docker-compose file. The net result is you can now issue a single command `docker-compose up --build` to have a fully-functional verdaccio instance running.
2017-05-02 23:18:48 +02:00
Juan Picado
7c6c2d2932 Merge branch 'master' of github.com:verdaccio/verdaccio 2017-04-30 16:57:27 +02:00
jotadeveloper
babf679914 Merge pull request #179 from verdaccio/ping-feature
Implement npm ping endpoint
2017-04-30 16:26:39 +02:00
Juan Picado
f8adc5e1a2 Update readme ping command 2017-04-30 10:01:41 +02:00
Juan Picado
aaedc13d2c npmjs returns an emtpy object 2017-04-30 09:58:11 +02:00
Juan Picado
1e4ac1f842 Fix eslint warnings on up-storage.js 2017-04-29 23:08:50 +02:00
Juan Picado
4ee0ca29d4 Add endpoint for the command npm ping 2017-04-29 22:29:05 +02:00
jotadeveloper
b264e9f3df Merge pull request #176 from verdaccio/clean-eslint
Clean eslint in a couple of files
2017-04-27 06:58:04 +02:00
Juan Picado
90328d5faf Fix config.js new shape 2017-04-27 06:54:53 +02:00
Juan Picado
1d062075c4 Refactor config.js to es6, add jsdoc 2017-04-27 06:54:15 +02:00
Juan Picado
acfd865bb0 Fix eslint issues, add jsdoc 2017-04-27 05:52:46 +02:00
Juan Picado
ff7deb4712 set up coveralls 2017-04-27 04:37:56 +02:00
Juan Picado
09c60e68e0 Add missing @return on search.js 2017-04-27 03:59:11 +02:00
Juan Picado
318634f072 Add jsdoc to stream.js 2017-04-27 03:50:04 +02:00
Juan Picado
105a34f912 Apply es6 feature utils.js 2017-04-27 00:36:19 +02:00
Juan Picado
5a17a04090 Add jsdoc and fix lint warnings for utils.js 2017-04-27 00:35:25 +02:00
Juan Picado
7dde31546e Add jsdoc search.js 2017-04-26 23:48:55 +02:00
jotadeveloper
472e8e94b0 Merge pull request #108 from ryan-codingintrigue/master
Add support for multiple notification endpoints to existing webhook s…
2017-04-26 18:23:35 +02:00
jotadeveloper
3250bc5513 Add app version suggestion to issue template 2017-04-26 17:20:03 +02:00
Ryan Graham
1092c89f86 Added use strict 2017-04-26 13:43:27 +01:00
Ryan Graham
977946a319 Update code style to ES6 2017-04-26 13:38:51 +01:00
Ryan Graham
373c5cb348 Merge branch 'master' into master-fork
# Conflicts:
#	lib/notify.js
2017-04-26 13:31:29 +01:00
Ryan Graham
fee0864ba1 Fixed code style 2017-04-26 13:20:24 +01:00
jotadeveloper
6d8d05b0cc Merge pull request #159 from verdaccio/moving_es6_gradually
Upgrade syntax to ES6
2017-04-24 07:13:52 +02:00
Juan Picado
fcc40d65ae Merge branch 'moving_es6_gradually' of github.com:verdaccio/verdaccio into moving_es6_gradually 2017-04-23 22:34:57 +02:00
Juan Picado
3457e0925d rebase from master branch 2017-04-23 22:28:35 +02:00
Juan Picado
f282941075 Apply partially new eslint rules, upgrade es6 and replace octal literals by chalk colors 2017-04-23 22:19:31 +02:00
Juan Picado
e3e1485369 Update gitignore, IDE hidden folder: 2017-04-23 21:28:41 +02:00
Juan Picado
b05050da5b Update unit test es6 2017-04-23 21:28:40 +02:00
Juan Picado
7970e52068 Migrate storages to classes 2017-04-23 21:28:08 +02:00
Juan Picado
d79f12d45a Migrate Storages to classes 2017-04-23 21:25:24 +02:00
Juan Picado
e6561e10d4 Migrate Search to class 2017-04-23 21:24:30 +02:00
Juan Picado
b5acc054bf clean up phase, moving es6 local storage 2017-04-23 21:24:30 +02:00
Juan Picado
ce59c07b0b Update mocha, clean warning 2017-04-23 21:18:39 +02:00
Juan Picado
f6edac245d clean minimach warning 2017-04-23 21:18:39 +02:00
Juan Picado
c21239a634 Force use npm on travis 2017-04-23 21:18:39 +02:00
Juan Picado
8372674d09 Allow use yarn on dev 2017-04-23 21:09:49 +02:00
Juan Picado
df697b9461 Update min node version, md5 dependency requires it 2017-04-23 21:09:49 +02:00
Juan Picado
0ef1286c37 update eslint, add coverage to ignore list 2017-04-23 21:09:48 +02:00
Juan Picado
52cb33ffdd Remove es6 polyfills and use native Promises 2017-04-23 21:09:48 +02:00
Juan Picado
dd3a4b4821 Apply partially new eslint rules, upgrade es6 and replace octal literals by chalk colors 2017-04-23 20:02:26 +02:00
Juan Picado
896f083000 2.1.5 2017-04-22 11:07:12 +02:00
Juan Picado
05b23fdadc Prepare release, update changelog 2017-04-22 11:06:01 +02:00
jotadeveloper
fe6e503ec3 Merge pull request #166 from Meeeeow/fix_upstream_search
fix upstream search
2017-04-22 10:51:35 +02:00
jotadeveloper
d824821b7a Merge pull request #163 from Meeeeow/fix_search
Fix search feature
2017-04-22 10:42:42 +02:00
Meeeeow
e5ad620a15 fix upstream search (registry.npmjs.org) 2017-04-22 16:41:33 +08:00
Meeeeow
0a769008cf modify varable name to accord with origin code 2017-04-22 16:33:56 +08:00
Juan Picado
34bbde1a7c Merge branch 'master' of github.com:verdaccio/verdaccio 2017-04-22 09:46:12 +02:00
Juan Picado
cb1a7af3c2 eslint ignore coverage folder 2017-04-22 09:46:00 +02:00
jotadeveloper
51b6c6006b Merge pull request #167 from verdaccio/plugin-unit-test
Add unit test for plugin-loader
2017-04-22 09:40:05 +02:00
Juan Picado
580d3e77f7 Fix undefined path value 2017-04-22 09:31:12 +02:00
Juan Picado
7df6962f43 Add unit test for plugin-loader 2017-04-22 08:23:16 +02:00
Meeeeow
caabe0ebda WIP: fix upstream search 2017-04-22 02:34:30 +08:00
Cedric Darne
cb37b38ee4 Package search requires 'access' authorization
Added 'access' check to search route
Handle failed Ajax search request as 'No result'
2017-04-21 12:21:20 +08:00
Meeeeow
601caa8711 update compiled resource 2017-04-21 11:54:28 +08:00
Meeeeow
5150ecb973 fix loading not show after first search 2017-04-21 11:54:28 +08:00
Meeeeow
1ce74482bc fix loading icon not align to center 2017-04-21 11:54:28 +08:00
Meeeeow
a18ac6bed6 fix npm search not show author name 2017-04-21 11:54:28 +08:00
Meeeeow
13d653e4dd fix search not work for multiple storage 2017-04-21 11:53:05 +08:00
Meeeeow
ea4f8474c1 fix deprecared warning with fs.unlink
Since NodeJS 7,  call async api without callback is deprecared.
2017-04-21 11:53:05 +08:00
Meeeeow
62ef3d91b6 update compiled resources 2017-04-21 11:53:05 +08:00
Meeeeow
38518baf44 fix: search leak private package and ui bug
- Check permission in search API
- Fix author's name not show in search result
2017-04-21 11:53:05 +08:00
Meeeeow
04e8638291 remove unused allow_failures in travis config 2017-04-21 11:53:05 +08:00
Emmanuel Narh
5eea1bac6c ADDED intermediate ssl certificate option
The https module allows for an intermediate certificate in the options.
It was somehow missed. Adding it back since I had a certificate that
included an intermediate certificate.
2017-04-21 11:53:05 +08:00
Juan Picado
a57f99cbe0 Update gitignore, IDE hidden folder: 2017-04-19 21:15:52 +02:00
Juan Picado
338ea47b6c Update unit test es6 2017-04-19 21:15:28 +02:00
Juan Picado
20f9436672 Migrate storages to classes 2017-04-19 20:45:48 +02:00
jotadeveloper
d11d9ea5a4 Merge pull request #160 from Meeeeow/docs_behind_proxy
add docs about run behind proxy
2017-04-19 13:52:04 +02:00
Meeeeow
dc8abe99c3 add docs about run behind reverse proxy
- Change word 'proxy' to 'reverse proxy'
2017-04-19 19:35:25 +08:00
Meeeeow
ce65cfff23 add docs about run behind proxy
- Add docs about run behind proxy with different domain and port
- Add server-side configure document link in README.md
2017-04-19 18:21:47 +08:00
Ryan Graham
adb40fc5f4 Fixed Changed headers array to be local to notifyEntry 2017-04-18 13:56:36 +01:00
Ryan Graham
7d62824936 Merge branch 'master' into master-fork
# Conflicts:
#	lib/notify.js
2017-04-18 13:49:24 +01:00
Juan Picado
e267ef1f54 Migrate Storages to classes 2017-04-17 16:10:21 +02:00
Juan Picado
ad7cf21d0e Migrate Search to class 2017-04-17 15:52:36 +02:00
Juan Picado
d484bb4f2f clean up phase, moving es6 local storage 2017-04-17 15:12:31 +02:00
Juan Picado
d66aa7097a Update mocha, clean warning 2017-04-17 13:51:42 +02:00
Juan Picado
69d51e88d8 clean minimach warning 2017-04-17 12:57:03 +02:00
Juan Picado
f51ea1f206 Force use npm on travis 2017-04-17 12:53:17 +02:00
Juan Picado
e50d143d96 Allow use yarn on dev 2017-04-17 12:20:35 +02:00
Juan Picado
92a9174603 Update min node version, md5 dependency requires it 2017-04-17 12:18:13 +02:00
Juan Picado
4edbd47088 update eslint, add coverage to ignore list 2017-04-17 11:54:08 +02:00
Juan Picado
c166c20701 Remove es6 polyfills and use native Promises 2017-04-17 11:47:37 +02:00
Juan Picado
640240e5c2 Remove Symbols dependency, Node 4 as min version supported 2017-04-17 11:36:35 +02:00
Juan Picado
2793914d80 Update authors 2017-04-14 05:18:25 +02:00
Juan Picado
90bb89660c Update readme 2017-04-13 22:15:26 +02:00
Juan Picado
e3af9f023c 2.1.4 2017-04-13 22:02:21 +02:00
Juan Picado
95c8a1fb82 Update changelog 2017-04-13 22:02:10 +02:00
jotadeveloper
32d7e8d891 Merge pull request #154 from verdaccio/unit_testing
Unit testing for Search.js
2017-04-13 21:41:01 +02:00
jotadeveloper
ee99d1fb26 Merge pull request #155 from verdaccio/notify-issue-144
#144 Add fallback support to previous config files
2017-04-13 21:39:20 +02:00
Juan Picado
098675516b #144 Add fallback support to previous config files 2017-04-13 21:32:49 +02:00
jotadeveloper
9350963f58 Update README.md 2017-04-13 08:44:26 +02:00
Juan Picado
999abc5b73 Update changelong, remove duplicated file 2017-04-13 07:03:19 +02:00
Juan Picado
c00456f6fe update readme 2017-04-12 23:18:57 +02:00
Juan Picado
ea1ed4159e Merge branch 'unit_testing' of github.com:verdaccio/verdaccio into unit_testing 2017-04-12 21:18:27 +02:00
Juan Picado
18d52a4103 Add unit test Search indexer 2017-04-12 21:17:28 +02:00
Juan Picado
4bb6a223be Merge branch 'master' of github.com:verdaccio/verdaccio 2017-04-12 21:07:22 +02:00
Juan Picado
d4710164c7 update AUTHORS 2017-04-12 21:06:36 +02:00
jotadeveloper
ee2439d8da Merge pull request #152 from Verikon/master
Allows retrieval of all local package contents via http://server/-/search/~
2017-04-12 06:27:27 +02:00
Bren Norris
94f4cd2be1 wildcarded searches now use asterisk, not tilda 2017-04-11 20:17:24 -04:00
jotadeveloper
2ed6d7f750 Merge pull request #153 from verdaccio/issue-144
Increase verbose on notify request, helps #144
2017-04-11 22:03:20 +02:00
Juan Picado
f1ff7d0eaf Increase verbose on notify request, helps #144 2017-04-11 21:53:21 +02:00
Juan Picado
389b6d006c Add unit test Search indexer 2017-04-10 22:00:41 +02:00
Bren Norris
71d5e5f150 search now accepts a tilda to list all contents of the local package list 2017-04-09 10:05:31 -04:00
jotadeveloper
8c2329795d Merge pull request #147 from nedelenbos/patch-1
Added Nexus Repository OSS as similar existing software
2017-04-05 21:11:44 +02:00
Nick
977e4adfc6 Added Nexus Repository OSS as similar existing software 2017-04-05 20:51:24 +02:00
jotadeveloper
b22bb17d90 Merge pull request #146 from lbguilherme/patch-1
Changelog: Fix pull request link
2017-04-02 07:28:05 +02:00
Guilherme Bernal
7031b9294f Changelog: Fix pull request link 2017-04-01 18:39:17 -03:00
Juan Picado
3bd1e82b54 2.1.3 2017-03-29 22:03:09 +02:00
Juan Picado
af4df69a16 update changelog 2017-03-29 21:39:52 +02:00
jotadeveloper
08864ce302 Merge pull request #143 from jachstet-sea/TaglineOnWebpage
Allow configuring a tagline that is displayed on the webpage between …
2017-03-28 18:18:38 +02:00
Jannis Achstetter
a00be0c20d Allow configuring a tagline that is displayed on the webpage between the header and the list of packages. 2017-03-28 16:48:16 +02:00
jotadeveloper
4f22d6fec6 Merge pull request #137 from danielo515/rpi-docker
Added docker image for rpi
2017-03-23 06:23:40 +01:00
Daniel Rodríguez Rivero
216d376598 Update README.md 2017-03-22 09:55:35 +01:00
jotadeveloper
773ac4922b Merge pull request #136 from psychocode/fix-webreadme
optional scope in the readme package name.
2017-03-18 14:07:07 +01:00
Cody Droz
3a131f380d optional scope in the readme package name. 2017-03-15 08:57:24 -05:00
jotadeveloper
9f06ea4b05 Merge pull request #89 from 030/gh83-systemd-script
[GH-83] create systemd service
2017-03-10 07:22:24 +01:00
Juan Picado
9e3ec11c70 2.1.2 2017-03-09 07:24:33 +01:00
Juan Picado
f3bbc7957e update changelog 2017-03-09 07:24:23 +01:00
danielo515
8e8c8b67f5 - Added docker image for rpi
- Added instructions for build rpi image
- Added npm scripts for building images
2017-03-06 09:33:52 +01:00
jotadeveloper
dbb5fa2c9c Merge pull request #129 from Alexandre-io/fix/plugin-loader
fix(plugin-loader): plugins verdaccio-* overwrite by sinopia-*
2017-03-04 14:25:11 +01:00
jotadeveloper
b82861a5e8 Merge pull request #133 from verdaccio/contribute-guidelines
Contribute guidelines
2017-03-04 14:18:00 +01:00
Alexandre-io
6fa9ed7f07 fix(plugin-loader): plugins verdaccio-* overwrite by sinopia-* 2017-03-02 17:35:27 +01:00
Juan Picado @jotadeveloper
fdd6a21102 change header size 2017-02-18 14:36:56 +01:00
Juan Picado @jotadeveloper
8a0b20719e contributing guidelines, just a rough try example 2017-02-18 12:05:12 +01:00
jotadeveloper
03c7142fa6 Set theme jekyll-theme-cayman 2017-02-17 20:39:40 +01:00
jotadeveloper
03340c1eae Delete CNAME 2017-02-17 20:06:28 +01:00
jotadeveloper
e588e281b6 Create CNAME 2017-02-17 19:51:20 +01:00
jotadeveloper
cf8b906e54 Set theme jekyll-theme-cayman 2017-02-17 19:47:12 +01:00
jotadeveloper
59b8b6f037 Merge pull request #90 from 030/gh-84-ansible
[GH-84] reference added to verdaccio ansible playbook
2017-02-07 12:20:32 +01:00
Juan Picado @jotadeveloper
0b7dc598b2 2.1.1 2017-02-07 07:41:48 +01:00
Juan Picado @jotadeveloper
c609284d0f prepare release 2.1.1 2017-02-07 07:41:37 +01:00
jotadeveloper
90c1ec9d36 Merge pull request #117 from kgrubb/update-readme
[GH-86] updated readme to point to new chef cookbook
2017-02-05 21:13:36 +01:00
jotadeveloper
b76546084c Merge pull request #93 from kgrubb/master
[GH-88] rename to Verdaccio instead of Sinopia
2017-02-05 20:38:20 +01:00
Madison Grubb
e984bd212b updating travis to reflect verdaccio's current setup (removed iojs & 0.12 support) 2017-02-05 12:16:58 -05:00
jotadeveloper
83de901c8a Update .npmignore
Ignore coverage reporter before publish
2017-02-05 14:28:03 +01:00
Madison Grubb
c9f7ba8004 updated readme to point to new chef cookbook 2017-02-04 23:07:33 -05:00
Madison Grubb
01a6c22103 merging in changes from upstream & fixing conflicts 2017-02-04 22:58:26 -05:00
jotadeveloper
9f1b1619e8 Merge pull request #116 from verdaccio/unit-testing-coverage
Unit testing coverage
2017-02-04 09:36:26 +01:00
Juan Picado @jotadeveloper
ffb3c0e6d0 add travis coverage configuration 2017-02-04 00:32:54 +01:00
Juan Picado @jotadeveloper
0470a02b2f Add istanbul unit testing coverage 2017-02-04 00:29:34 +01:00
jotadeveloper
6bbeff6d05 Update README.md 2017-02-03 21:04:43 +01:00
jotadeveloper
0bc3e6c8a0 Merge pull request #112 from imsnif/master
Allow htpasswd-created users to log in
2017-02-03 21:03:23 +01:00
jmwilkinson
53018704e0 Merge pull request #115 from juanpicado/remove-iojs-support
remove travis io.js support
2017-02-03 09:17:17 -08:00
jmwilkinson
e8c16cfb4b Merge pull request #114 from juanpicado/master
rename clean up
2017-01-24 09:20:44 -08:00
Juan Carlos Picado
27ea2f91c0 remove travis io.js support 2017-01-24 08:34:59 +01:00
Juan Carlos Picado
6c6646873c Rename cleanup 2017-01-22 22:23:30 +01:00
Aram Drevekenin
223d6492d4 feat: adduser created with htpasswd 2017-01-19 17:14:53 +02:00
Aram Drevekenin
ccd3d26059 test: adduser created with htpasswd 2017-01-19 17:14:39 +02:00
Ryan Graham
f63e690b15 Add support for multiple notification endpoints to existing webhook system 2017-01-10 08:35:10 +00:00
Juan Carlos Picado
674057b1af replace project names 2016-12-07 23:18:16 +01:00
jmwilkinson
014a0b53ae Merge pull request #101 from juanpicado/master
Fix #65 and also PR on fl4re#4
2016-12-07 12:46:53 -08:00
Juan Carlos Picado
32cc6ea617 Removed testing support for 0.10 and 0.12 (already deprecated) 2016-12-05 20:33:11 +01:00
Juan Carlos Picado
d6dd63f012 add travis node 4,6 and 7 2016-12-05 08:52:52 +01:00
Juan Carlos Picado
0210752ea5 clean warnings on unit test 2016-12-05 08:42:43 +01:00
Juan Carlos Picado
3c060766e7 Fix #65 and also PR on fl4re#4 2016-11-27 15:07:45 +01:00
jmwilkinson
7915bc3b59 Merge pull request #96 from robertgroh/readme_fix
Docs: correct config attribute `proxy_access`

Thanks!
2016-11-18 10:32:12 -08:00
Robert Groh
69c5628184 fix old config attribute name in readme
rename `proxy_access` to `proxy`
see 6075034521 for reference
2016-11-18 16:03:01 +01:00
jmwilkinson
03d66b0664 Merge pull request #72 from josedepaz/patch-1
Problem with docker.yaml
2016-11-15 16:50:40 -08:00
jmwilkinson
7c82d7e485 Merge pull request #94 from tlvince/rm-secrets-log
Prevent logging of user and password
2016-11-15 16:48:28 -08:00
Tom Vincent
c927517e37 Prevent logging of user and password 2016-11-13 16:25:14 +00:00
Madison Grubb
9fd42ffb34 allow sinopia plugins to install 2016-11-09 13:12:15 -05:00
Madison Grubb
a7c4285a68 renaming 'sinopia' to verdaccio. 2016-11-07 12:15:38 -05:00
030
eb6d30537b [GH-84] reference added to verdaccio ansible playbook 2016-11-04 10:26:28 +01:00
030
b9b61c7e97 [GH-83] systemd service could not be enabled 2016-11-03 14:00:21 +01:00
030
eebc466e34 [GH-83] create systemd service 2016-11-03 10:49:49 +01:00
jmwilkinson
f84ca18798 Merge pull request #71 from jmwilkinson/master
Updated README.md to reflect the availability of the docker image
2016-10-20 09:29:15 -07:00
José De Paz
831083a976 Problem with docker.yaml
There is a problem with the docker.yaml file.

auth:
   htpasswd:
     file:/verdaccio/config/htpasswd

The file property should point to /verdaccio/conf/htpasswd because folder /verdaccio/config dosen't exist and therefore dosen't let to create users.

Thank you for working on this great tool.

Regards
2016-10-19 16:38:51 -06:00
jmwilkinson
7530aee68a Updated README.md,
added docker instructions for pre-built images
2016-10-18 09:21:54 -07:00
jmwilkinson
18cc0495ef Merge pull request #1 from verdaccio/master
Upstream pull
2016-10-18 08:43:26 -07:00
trent.earl
047fbb22f8 2.1.0 2016-10-11 19:46:35 -05:00
Manuel de Brito Fontes
4fa150e077 Use __dirname to resolve local plugins
https://github.com/verdaccio/verdaccio/pull/25
2016-10-11 19:00:25 -05:00
trent.earl
5e00e46a9b Logout endpoint should support tokens with /s 2016-10-11 18:53:20 -05:00
Miguel Mejias
25e00a3172 Implement logout endpoint 2016-10-11 18:44:47 -05:00
Jannis Achstetter
3d9af3152e Implement timestamped pretty logging to stdout or stderr
https://github.com/verdaccio/verdaccio/pull/68
2016-10-11 18:43:20 -05:00
Jannis Achstetter
9f9c0fae71 Allow adding/overriding HTTP headers of uplinks via config
https://github.com/verdaccio/verdaccio/pull/67
2016-10-11 18:36:37 -05:00
Denis Babineau
3729c13a91 run as root in docker container to avoid issues with volume permissions 2016-10-11 18:18:38 -05:00
Denis Babineau
eec65929da change process name in Dockerfile 2016-10-11 18:18:38 -05:00
Chad Killingsworth
6f7a28b359 Update the configs to fully support proxying scoped packages from the npm registry 2016-10-11 18:15:02 -05:00
Michael Crowe
a6fa0432ee Prevent the server from crashing if a repo is accessed that the user does not have access to
https://github.com/verdaccio/verdaccio/pull/58
https://github.com/verdaccio/verdaccio/issues/56
2016-10-11 18:06:15 -05:00
Nate Ziarek
6fb1dc2342 Simple notification system to send publish commands to external systems (ala Slack) 2016-09-17 11:09:20 -05:00
Trent Earl
bb7138c3f6 Merge pull request #46 from plitex/fix-custom-template
Register entry partial even if custom template is provided
2016-09-17 10:35:53 -05:00
Trent Earl
c6923c9686 Merge pull request #57 from juanpicado/master
rename process to verdaccio
2016-09-01 14:22:51 -05:00
Juan Carlos Picado
c20cf6d6e5 rename process to verdaccio 2016-09-01 20:34:53 +02:00
trent.earl
d42a5ad1c5 2.0.1 2016-08-29 08:25:33 -05:00
Trent Earl
5e7faae788 Merge pull request #53 from juanpicado/master
Fix #52 binary file missing
2016-08-29 08:25:11 -05:00
Juan Carlos Picado
e4e4a104fe remove sinopia reference 2016-08-27 18:09:28 +02:00
Juan Carlos Picado
2d5cbaf461 Fix #52 binary file missing 2016-08-27 09:12:01 +02:00
trent.earl
f89ca4423a Updated to 2.0.0 2016-08-26 17:31:35 -05:00
Trent Earl
548c7475d6 Merge pull request #51 from juanpicado/master
update readme,  sinopia renamed to verdaccio
2016-08-24 16:12:06 -05:00
Juan Carlos Picado
fea001efcf update readme, sinopia renamed to verdaccio 2016-08-24 23:06:50 +02:00
trent.earl
4050e063c0 Revert "Start version off as 1.0.0"
It appears that user lonelyclick has already published this to npm.
I have contacted him about getting added as a collaborator

This reverts commit 564b91fba9.
2016-08-22 15:45:25 -05:00
trent.earl
564b91fba9 Start version off as 1.0.0 2016-08-22 15:37:56 -05:00
trent.earl
9fe9e38786 Remove shrinkwrap 2016-08-21 09:34:42 -05:00
trent.earl
05fde696c7 Update dependencies 2016-08-21 08:58:12 -05:00
trent.earl
b31198f685 Tests should check for presence of title with "Verdaccio" not "Sinopia" 2016-08-20 12:07:52 -05:00
trent.earl
1efd94dfe6 HTML title should default to verdaccio 2016-08-20 11:57:36 -05:00
trent.earl
3b95710f27 Remove references to sinopia in Documentation and configuration 2016-08-20 11:46:54 -05:00
trent.earl
8083df1361 bin/* should be executable 2016-08-13 10:11:15 -05:00
trent.earl
6de559c020 Rename config path from sinopia to verdaccio 2016-08-13 10:04:12 -05:00
Trent Earl
7579bb21c0 Merge pull request #49 from juanpicado/master
Fix test node6
2016-08-13 09:36:34 -05:00
Juan Carlos Picado
5cdadbd7fa Remove sync write file 2016-08-13 08:21:55 +02:00
Juan Carlos Picado
115a02b0eb restore binary cli command 2016-08-13 08:03:16 +02:00
Miguel Mejias
7b4c105046 Register entry partial even if custom template is provided 2016-08-10 11:52:21 +02:00
trent.earl
d8f2d95f92 Rename binary to verdaccio 2016-07-30 19:37:30 -05:00
trent.earl
dd406da3e2 Fix tests for node 6
Node 6 introduced two breaking changes to verdaccio/sinopia
Path functions now throw on null/undefined arguments
Buffer defaults to binary now A lot of test code explicitly converted data to utf8 which broke on checksum
2016-07-30 19:37:04 -05:00
Trent Earl
cafbb5f76b Merge pull request #24 from aledbf/docker-image
Add Dockerfile to build docker image
2016-05-15 19:31:34 -05:00
Manuel de Brito Fontes
cca5196752 Add Dockerfile to build docker image 2016-05-09 14:59:34 -03:00
Trent Earl
86b9f512a5 Update README.md 2016-05-01 10:46:23 -05:00
Trent Earl
06980e0cc1 Merge pull request #18 from steve-p-com/master
Remove platform specific deps. Introduce bundled-in plugins.
2016-05-01 09:23:05 -05:00
steve-p-com
e45fe466ee Remove optional dependencies that are not truly cross-platform 2016-05-01 10:02:01 +01:00
Trent Earl
2c76a5f8ac Merge pull request #14 from steve-p-com/master
Fix missing version numbers
2016-04-26 12:21:07 -05:00
steve-p-com
3cbbb281a5 Fix missing version numbers 2016-04-22 13:36:29 +01:00
Trent Earl
5fe64d41ec Merge pull request #13 from steve-p-com/master
Replace YAML package definitions with standard package.json, fix dependencies
2016-04-21 17:44:31 -05:00
steve-p-com
6301c3f169 Replace YAML package definitions with standard package.json, fix dependencies 2016-04-21 21:13:49 +01:00
Trent Earl
1ccf645638 Merge pull request #8 from steve-p-com/master
Sort distribution tags in a conisistent way with npmjs.org
2016-04-19 11:15:21 -05:00
steve-p-com
dfdcaa893e Change the way package distribution tags are processed and stored 2016-04-18 20:53:00 +01:00
Trent Earl
d260231737 Merge pull request #2 from jmwilkinson/master
Update README.md to say that this project is a fork
2016-04-15 12:43:24 -05:00
jmwilkinson
ecded4a440 Update README.md
Identifies that verdaccio is a fork of sinopia.
2016-04-15 10:34:05 -07:00
Alex Kocharin
3f55fb4c0c update dependencies 2015-10-03 20:01:46 +03:00
Alex Kocharin
b5d40b083a req.param -> req.query 2015-10-03 20:01:02 +03:00
Alex Kocharin
602f17c8b2 fix "unimplemented" error when uplink is offline 2015-10-03 19:22:45 +03:00
Alex Kocharin
74e89e94e9 Merge pull request #280 from jameslnewell/master
only encode the / character to fix issue installing scoped packages f…
2015-09-27 02:19:03 +03:00
Alex Kocharin
4be7a2028e Merge pull request #308 from 7eggs/ui-sort-packages
Sort packages before rendering in UI
2015-09-27 01:31:48 +03:00
Alexander Makarenko
4379821787 Sort packages before rendering in UI 2015-09-24 11:24:23 +03:00
Alex Kocharin
6b3617754c bump eslint to 1.x 2015-08-09 00:35:13 +03:00
James Newell
ee6cf0eb9f use encodeURIComponent and replace encoded '@' value with un-encoded value 2015-07-13 12:15:18 +10:00
Jakub Jirutka
fde2321222 Add workaround to handle URLs of scoped packages with unencoded /
Fixes https://github.com/rlidwka/sinopia/issues/104#issuecomment-66790574.
2015-07-12 01:26:18 +03:00
James Newell
a9c749995a only encode the / character to fix issue installing scoped packages from an upstream registry. @see #278. 2015-07-08 09:59:35 +10:00
Alex Kocharin
93245c0179 1.4.0 2015-06-07 08:04:01 +03:00
Alex Kocharin
a1843ffd34 update travis.yml 2015-06-07 07:54:38 +03:00
Alex Kocharin
0d266be965 up-storage: don't send X-Forwarded-For for proxies
It's not that important a feature to have, and it could break
some proxies.

ref https://github.com/rlidwka/sinopia/issues/254
2015-05-30 18:39:47 +03:00
Alex Kocharin
7c822d06f6 web: delay cb invocation to the next tick
ref #258
2015-05-30 18:27:18 +03:00
Alex Kocharin
d370e5a6a9 Merge pull request #253 from rlidwka/search
complete search rewrite
2015-05-30 18:17:49 +03:00
Alex Kocharin
3dd6442b94 update dependencies 2015-05-30 18:16:55 +03:00
Alex Kocharin
cac6e89870 Add readable-stream and JSONStream to shrinkwrap 2015-05-17 01:56:42 +03:00
Alex Kocharin
45edca2218 search: stream results from npmjs instead of buffering them 2015-05-17 01:29:16 +03:00
Alex Kocharin
46d710e079 1.3.1 2015-05-17 00:50:39 +03:00
Alex Kocharin
f1bb9f83e6 up-storage: make streaming requests without buffering 2015-05-16 19:33:06 +03:00
Alex Kocharin
6b6247b009 update dependencies 2015-05-16 17:40:08 +03:00
Alex Kocharin
8a68666096 1.3.0 2015-05-10 19:03:49 +03:00
Alex Kocharin
6d01bffc79 update dependencies 2015-05-10 18:39:53 +03:00
Alex Kocharin
c09d03b20d add dist-tags endpoints 2015-05-10 18:39:53 +03:00
Alex Kocharin
0da30ca089 test io.js 1.8 on travis 2015-05-10 18:39:53 +03:00
Alex Kocharin
b5c7895bb5 1.2.2 2015-04-22 02:46:05 +03:00
Alex Kocharin
97386397c2 add a code to bind on unix sockets
use "listen: 'unix:sinopia.sock'" for this
2015-04-22 02:38:25 +03:00
Alex Kocharin
137fd5978f fix access control
ref #238
2015-04-21 19:43:12 +03:00
Alex Kocharin
e8593c47cc 1.2.1 2015-04-11 23:21:03 +03:00
Alex Kocharin
74bb946a91 fix freeze in web interface on acl check 2015-04-11 23:19:45 +03:00
Alex Kocharin
82756c3968 1.2.0 2015-04-11 23:04:05 +03:00
Alex Kocharin
faaf1f537a add dotfiles to npmignore 2015-04-11 22:49:41 +03:00
Alex Kocharin
5383b2fccb update dependencies 2015-04-11 22:47:10 +03:00
Alex Kocharin
9294981d71 fix tests for 0.10 2015-04-11 20:14:49 +03:00
Alex Kocharin
17bdfd904a test: use promisified supertest-like asserts 2015-04-11 20:11:04 +03:00
Alex Kocharin
6cb257e51f add tests for auth plugins 2015-04-11 16:09:19 +03:00
Alex Kocharin
3c16e59a5c Refactor authorization plugins 2015-04-09 01:51:34 +03:00
Alex Kocharin
37f6591563 Merge branch 'feature/package-provider' of https://github.com/zipscene/sinopia into package-provider 2015-04-08 23:26:43 +03:00
Alex Kocharin
3e9932d866 update mocha to 2.2.3+, + options file 2015-04-07 22:51:05 +03:00
Chris Breneman
6954898da0 Merge remote-tracking branch 'upstream/master'
Conflicts:
	lib/auth.js
	lib/index.js
	lib/middleware.js
2015-03-31 09:47:20 -04:00
Alex Kocharin
a55dc65775 1.1.0 2015-03-30 23:55:25 +03:00
Alex Kocharin
66324d718a fix shrinkwrap formatting
workaround 'cause npm reformats everything as usual
2015-03-30 23:54:45 +03:00
Alex Kocharin
553e463b7e fix history + add missed item 2015-03-30 23:52:43 +03:00
Alex Kocharin
d7c95d6cd6 fix custom logo and url_prefix issues
use config.web.logo instead of config.web['logo-sm']
2015-03-29 23:01:34 +03:00
Kody J. Peterson
bf40ceb064 Fix custom logo
Custom logos are not loading as /-/static/-/logo-sm is not the endpoint it is /-/logo-sm
2015-03-29 23:01:18 +03:00
Alex Kocharin
554d31d119 should add via header for all requests 2015-03-28 22:26:36 +03:00
Alex Kocharin
8a3a03805e fix travis errors 2015-03-28 22:07:17 +03:00
Alex Kocharin
9047e28074 set up some linting (obvious errors only) 2015-03-28 21:25:53 +03:00
Alex Kocharin
2ee12c7293 update dependencies 2015-03-28 20:15:37 +03:00
Alex Kocharin
dc6b2f184a write a script to clean out shrinkwraps 2015-03-28 19:01:48 +03:00
Alex Kocharin
1a9596737e add test for parsing listen address 2015-03-28 18:03:36 +03:00
Alex Kocharin
89353f9312 add some docs for specifying listen addresses 2015-03-28 17:43:52 +03:00
Alex Kocharin
6d58d5920e add listening on ipv6 addresses 2015-03-28 17:43:50 +03:00
Alex Kocharin
dfef2b862f add a possibility to listen on multiple ports 2015-03-28 17:20:58 +03:00
Thomas Cort
61fff273fc cli.js: add https support. Issue #71. 2015-03-28 16:32:37 +03:00
Alex Kocharin
97c7c6814f Remove mentioning of 'always-auth'
It should be solved by using npm@2 anyway.
2015-03-28 15:14:01 +03:00
Rafael Cesar
025e23627f Added option to use a custom template for web UI 2015-03-28 14:15:07 +03:00
Alex Kocharin
0a38a704fe remove "from" and "resolved" from shrinkwrap
We should lock versions, but we shouldn't hardcode urls in it,
so people will be able to install this from private networks.

See #204 for details.
2015-03-08 05:01:02 +03:00
Alex Kocharin
798ba0d262 update dependencies 2015-03-08 04:58:12 +03:00
Alex Kocharin
24e3b5efba Merge pull request #210 from einfallstoll/patch-1
Add a comment how to listen on INADDR_ANY
2015-03-07 22:54:32 +03:00
Fabio Poloni
c00cde0aa3 added comment for INADDR_ANY 2015-03-05 11:14:54 +01:00
Chris Breneman
0af72f0c68 Pass allow_access calls that don't use the can() middleware through the plugin interface 2015-02-24 22:21:57 -05:00
Chris Breneman
82539add26 Change how package provider plugins are configured 2015-02-24 16:11:14 -05:00
Chris Breneman
76a1e8df80 Add package settings and authorization plugin system 2015-02-24 14:28:16 -05:00
Alex Kocharin
3fe188df21 travis: use container infrastructure 2015-02-18 17:59:19 +03:00
Alex Kocharin
4ed27c6eda travis: enable testing for io.js 2015-02-18 17:52:46 +03:00
Alex Kocharin
6ec76aa61f fix crash when using sinopia as a library 2015-02-18 17:52:17 +03:00
Alex Kocharin
4a46ffe3a0 update dependencies 2015-02-18 17:46:45 +03:00
Alex Kocharin
e47862be71 1.0.1 2015-02-12 14:59:58 +03:00
Alex Kocharin
04a9f14b3c fix test broken in 79e2ff2ee 2015-02-12 14:28:19 +03:00
Alex Kocharin
0aed9ee9f4 Merge pull request #200 from maxlaverse/master
Fixes NPE on POST _session when npm tries to authenticate
2015-02-12 14:26:15 +03:00
Alex Kocharin
79e2ff2ee8 change 403 error with 409 in adduser
Because npm does only accept 409, see #184.
2015-02-12 14:18:47 +03:00
maxlaverse
e5880841f3 Added missing argument
Added missing 'next' argument to the '/_session' route callback
2015-02-06 19:59:18 +01:00
Robin Persson
c49b0699c2 Fixed issue with not being able to disable the web interface 2015-01-26 14:27:32 +03:00
Alex Kocharin
bc91a05dd2 1.0.0 2015-01-26 14:06:06 +03:00
Alex Kocharin
5b5f56f51c fix test noise
TypeError: Cannot read property 'name' of undefined
    at log (/home/travis/build/rlidwka/sinopia/lib/middleware.js:185:32)
2015-01-26 14:00:37 +03:00
Alex Kocharin
f558c78d32 update dependencies 2015-01-26 13:55:34 +03:00
Alex Kocharin
ed3eb37c4f download packages using https
Or, in general, the same protocol as the registry;
this is what npm seem to be doing.

See issue #166 for details.
2014-12-23 00:29:26 +03:00
Alex Kocharin
09318d1943 fixed current folder reference in tests 2014-12-22 23:52:08 +03:00
Alex Kocharin
fad4f457ae move logger setup to index.js + tests 2014-12-22 20:58:25 +03:00
Alex Kocharin
fc3668885d 1.0.0-beta.2 2014-12-22 04:09:00 +03:00
Alex Kocharin
c385404e23 update dependencies 2014-12-22 03:57:36 +03:00
Tarun Garg
a0ff6dbc9e Checks whether process.env.HOME exists
Checks whether process.env.HOME exists before calling Path.join
Was not able to start sinopia on my fresh windows install due to this error.
2014-12-21 22:07:22 +03:00
Alex Kocharin
484ba9dc25 1.0.0-beta 2014-12-15 00:09:37 +03:00
Alex Kocharin
848d591f0a update dependencies 2014-12-15 00:03:42 +03:00
Alex Kocharin
c07d819ce9 add tests for scoped packages 2014-12-15 00:03:42 +03:00
Yannick Galatol
ea50f3d3ed Add a query parameter "local" to the search method of storage to allow listing only local packages 2014-12-15 00:03:19 +03:00
Alex Kocharin
76bdc74670 web: change header position from fixed to static
Mainly because anchors (`<a name=...>`) need to be offsetted to
account for the fixed header, and it ain't worth the hassle.
2014-12-10 09:36:54 +03:00
Alex Kocharin
4a4502967e disable source maps & rebuild 2014-12-10 09:30:02 +03:00
Alex Kocharin
5358d2b81b update dependencies 2014-12-10 09:29:52 +03:00
Alex Kocharin
0f6404f4ea fix path to helpers.less 2014-12-10 09:25:42 +03:00
Alex Kocharin
2b9bfcc0d9 marked -> render-readme 2014-12-10 09:14:31 +03:00
Alex Kocharin
950cfb2945 1.0.0-alpha.3 2014-12-05 09:23:57 +03:00
Alex Kocharin
06bb301bab fix dist.tarball replacement logic 2014-12-05 09:16:16 +03:00
Alex Kocharin
bad7aee4ec use /-/whoami endpoint instead of /whoami
Allows to get rid of referer magic, so it's a nice change to have.

See this issue for details:
https://github.com/npm/npm-registry-client/issues/88
2014-12-05 05:04:37 +03:00
Alex Kocharin
400288bb69 1.0.0-alpha.2 2014-11-30 12:05:51 +03:00
Alex Kocharin
c549466737 Add npm-shrinkwrap.json 2014-11-30 11:39:56 +03:00
Alex Kocharin
841f77d36a sort out dependencies needed to build static stuff 2014-11-30 11:22:24 +03:00
Alex Kocharin
e281b4e389 remove node_modules
Because of issues with native packages. Use shrinkwrap instead.
2014-11-30 11:12:53 +03:00
Alex Kocharin
64adb19b85 fs-ext@0.4.1 2014-11-25 04:25:42 +03:00
Alex Kocharin
b84bb568cd s/self/this/ in error message 2014-11-25 04:24:18 +03:00
Alex Kocharin
ecc5e9bfaf 1.0.0-alpha 2014-11-25 04:05:55 +03:00
Alex Kocharin
133bceb43f remove rimraf from bundled deps
added in bulk by mistake
2014-11-25 03:50:38 +03:00
Alex Kocharin
b338aefe45 bugfix: forgot "next" 2014-11-25 03:22:05 +03:00
Alex Kocharin
feae33499e make path to local-db if it doesn't exist 2014-11-25 03:16:58 +03:00
Alex Kocharin
40baedaa78 semver@4.1.0 2014-11-25 03:12:03 +03:00
Alex Kocharin
2b99b23eec fix es-shim dependency 2014-11-25 03:08:19 +03:00
Alex Kocharin
4592ec3657 bundle all the deps 2014-11-25 03:08:06 +03:00
Alex Kocharin
cf71b9dc9e encrypt user+pass instead of tokens for now 2014-11-24 22:53:05 +03:00
Alex Kocharin
691bdb3a92 web: encode version strings in urls 2014-11-17 21:18:07 +03:00
Alex Kocharin
ae1f67d31f reformat config file and http address messages 2014-11-16 21:44:32 +03:00
Alex Kocharin
a425c5e2ff add scoped packages draft 2014-11-16 20:46:01 +03:00
Alex Kocharin
972551e838 nitpick 2014-11-16 16:38:01 +03:00
Alex Kocharin
637d51cba0 create config in xdg_config_home by default 2014-11-16 16:33:03 +03:00
Alex Kocharin
c71e8dc829 enable web interface by default 2014-11-16 16:32:46 +03:00
Alex Kocharin
2f541130ab auth tokens draft 2014-11-16 15:37:50 +03:00
Alex Kocharin
322f64d517 install crypt3 from npm registry 2014-11-15 04:43:21 +03:00
Alex Kocharin
ca3cb6487d refactor log and etagify middlewares 2014-11-13 22:01:20 +03:00
Alex Kocharin
76ebb24b77 fix config file comment 2014-11-13 21:32:01 +03:00
Alex Kocharin
4c11a42d21 separate web and api routers to different files 2014-11-13 20:14:21 +03:00
Alex Kocharin
8259455ac5 switch to express 5
It's needed for the better separation between rest api and web interface.
2014-11-13 20:14:14 +03:00
Alex Kocharin
1fe0cedbd0 add access control for web ui 2014-11-13 18:52:13 +03:00
Alex Kocharin
09485451f7 fix res.sendfile callback 2014-11-13 18:38:49 +03:00
Alex Kocharin
c78390752a fix tests 2014-11-12 19:45:40 +03:00
Alex Kocharin
7687965219 handle 404 errors better
+ get rid of fs.exists
2014-11-12 19:26:27 +03:00
Alex Kocharin
100430227c display favicon properly 2014-11-12 19:26:24 +03:00
Alex Kocharin
148795918f move config file to separate folder
Make default config smaller, allow all users by default there.
2014-11-12 18:49:37 +03:00
Alex Kocharin
31bd3c9db7 warn about outdated npm in adduser
close #93
2014-11-12 18:01:59 +03:00
Alex Kocharin
037b3aea6a make use of es6-shim
It's mainly because of Object.setPrototypeOf()
2014-11-12 17:37:43 +03:00
Alex Kocharin
6a778e8c17 change code style to jshttp
close #155, see reasons there

This is a huge commit, so let me know if it will cause
any trouble, I might consider reverting it if it's the case.
2014-11-12 17:37:43 +03:00
Alex Kocharin
bac62f6969 Merge pull request #157 from vernak2539/webui-login-btn-placement
web-gui/placing login/logout btns. responsive
2014-11-11 03:54:04 +03:00
Alex Vernacchia
6a14a277b2 web-gui/placing login/logout btns. responsive 2014-11-05 14:04:13 +00:00
Alex Kocharin
67b4528643 add authentication to web interface 2014-11-04 17:51:45 +03:00
Alex Kocharin
7b34bb63c9 0.13.2 2014-11-01 23:50:49 +03:00
Alex Kocharin
a854d07a66 add a workaround for EPERM issue on windows
Derived from @korto's fix:
https://github.com/rlidwka/sinopia/issues/67#issuecomment-44782521
2014-11-01 23:48:40 +03:00
Alex Kocharin
7a7d794207 fix double on_open call 2014-11-01 22:57:36 +03:00
Alex Kocharin
4fb5acad48 0.13.0 2014-10-22 18:16:18 +04:00
Alex Kocharin
2e396e4d65 fix comment about users_file
ref #148
2014-10-20 22:40:33 +04:00
Alex Kocharin
55ddeb7aaa Merge pull request #145 from neuquino/master
added url_prefix to static resources
2014-10-20 09:57:53 +04:00
Facundo Chambó
907e1a8c43 use relative urls on browser side (ajax requests and image urls) 2014-10-19 22:44:02 -03:00
Facundo Chambó
8628c34b25 fixed npm image url 2014-10-19 22:34:57 -03:00
Facundo Chambó
9938a6bf4b removed trailing slash to avoid duplicate slashes 2014-10-19 22:03:40 -03:00
Facundo Chambó
f308bfb4bf added url_prefix to static resources 2014-10-17 12:25:55 -03:00
Alex Kocharin
c0793c575d Merge pull request #132 from vStone/patch-2
Fix max_users in auto generated config.yaml
2014-10-17 11:43:23 +04:00
Alex Kocharin
3c00c96b6a Merge pull request #144 from jondlm/patch-1
Wording changes in the test/README.md
2014-10-17 11:36:59 +04:00
Alex Kocharin
a1010be87a Merge pull request #143 from vernak2539/web-gui-proper-index-versions
web-gui/updating entries shown on index page
2014-10-17 11:30:04 +04:00
Jon de la Motte
4b20afbd15 Fix a typo in the test/README.md
Also made a couple wording changes and fixed a typo.
2014-10-13 12:51:35 -07:00
Alex Vernacchia
dc9859cd83 web-gui/updating entries shown on index page 2014-10-13 14:39:04 -04:00
Alex Kocharin
08f218724b Merge pull request #141 from vernak2539/web-gui
Web GUI update
2014-10-10 11:36:32 +04:00
Alex Vernacchia
daeb1eb2a3 web-gui/moving to bootstrap and finishing responsive layout 2014-10-07 14:46:16 -04:00
Alex Vernacchia
326c7355ed web-gui/updating display, layout, and styling 2014-10-06 17:37:23 -04:00
Alex Kocharin
d38606f409 0.12.1 2014-10-03 08:00:08 +04:00
Alex Kocharin
29c45e3ebc 0.12.1 2014-10-03 07:59:59 +04:00
Alex Kocharin
20f748be12 fix "offset out of bounds" issue 2014-10-03 07:51:56 +04:00
Alex Kocharin
1cb1e91ca1 update deps 2014-10-02 18:07:01 +04:00
Alex Kocharin
7fb119c9f3 Merge pull request #137 from vernak2539/update-readme-css
Updating Markdown CSS to be similar to github.com's
2014-10-02 11:44:08 +04:00
Alex Kocharin
eda8dfe9ca Validate package name when doing search
+ tests

fix #122
2014-10-02 11:14:59 +04:00
Romain Lai-King
4b3939ef4e Remove CDN dependencies
Use case: developers behind corporate firewall

close #133
2014-10-02 10:27:40 +04:00
Alex Vernacchia
cb0c79e79f Updating Markdown CSS to be similar to github.com's 2014-10-01 16:56:52 -04:00
Jan Vansteenkiste
e36638973f Fix wrongly documented max_users in auto generated config.yaml
See rlidwka/sinopia-htpasswd#3 and rlidwka/sinopia-htpasswd#6
2014-09-30 09:53:22 +02:00
Alex Kocharin
aef982d6e6 0.12.0 2014-09-25 08:08:23 +04:00
Alex Kocharin
4a588f6512 0.12.0 2014-09-25 08:07:42 +04:00
Alex Kocharin
b34cfb1fe0 remove tar.gz module
totally not needed, ref #100
2014-09-25 08:00:11 +04:00
Alex Kocharin
4f028a107b Save readme data that npm provides on publish
fix #100, fix #128
2014-09-25 07:56:31 +04:00
Alex Kocharin
91ee928f06 fix hostname for travis 2014-09-25 05:25:48 +04:00
Alex Kocharin
862b1eeed4 automated tests against fd leaks 2014-09-25 05:21:59 +04:00
Alex Kocharin
0786ec6108 set process.title 2014-09-25 05:13:03 +04:00
Alex Kocharin
2dca3114e9 update deps 2014-09-25 05:10:00 +04:00
Kalman Speier
3bf26bd89e config.logo -> config.web.logo 2014-09-24 23:52:39 +04:00
Alex Kocharin
ef074f8d6c 0.11.3 2014-09-18 03:17:46 +04:00
Alex Kocharin
4b46bff72f update to sinopia-htpasswd@0.4.3
fix possible fd leak, close #116
2014-09-18 03:16:58 +04:00
Alex Kocharin
765d3b47a7 0.11.2 2014-09-18 01:46:11 +04:00
Alex Kocharin
20c97527fb 0.11.2 2014-09-18 01:46:03 +04:00
Alex Kocharin
35b3efb058 sinopia-htpasswd@0.4.2
fix #121
2014-09-18 01:44:30 +04:00
Alex Kocharin
8d1781489b tag_version should return if tag is fresh 2014-09-18 00:04:15 +04:00
Alex Kocharin
92a33acf45 0.11.1 2014-09-15 18:55:11 +04:00
Alex Kocharin
48a35b6a01 mark crypt3 as optional
fix #119
2014-09-15 18:54:46 +04:00
Alex Kocharin
8db7c4355e fix history 2014-09-15 17:00:00 +04:00
Alex Kocharin
d0a1013131 0.11.0 2014-09-15 01:27:41 +04:00
Alex Kocharin
936c0b607b 0.11.0 2014-09-15 01:27:32 +04:00
Alex Kocharin
1123a440bc "users_file" -> "file" in config 2014-09-14 19:57:39 +04:00
Alex Kocharin
8f0039de92 '@all' -> '$all' (avoid yaml identifiers) 2014-09-14 19:49:15 +04:00
Alex Kocharin
f8b0ae6c6f 0.10.3 2014-09-14 19:28:57 +04:00
Alex Kocharin
188ab10871 0.10.3 2014-09-14 19:28:50 +04:00
Alex Kocharin
a016077bf3 fix auth system 2014-09-14 19:22:24 +04:00
Alex Kocharin
834c155da4 0.10.2 2014-09-14 19:06:39 +04:00
Alex Kocharin
19b1d76e98 hotfix: auth groups didn't work correctly 2014-09-14 19:06:27 +04:00
Alex Kocharin
c43846f14e 0.10.1 2014-09-14 18:49:36 +04:00
Alex Kocharin
fd8d481be4 added missing dependency - rimraf 2014-09-14 18:49:22 +04:00
Alex Kocharin
8576201cc1 0.10.0 2014-09-14 18:41:54 +04:00
Alex Kocharin
0837025a74 added nan dep for crypt3 2014-09-14 18:37:21 +04:00
Alex Kocharin
5468c4e767 0.10.0 2014-09-14 18:35:34 +04:00
Alex Kocharin
34c12de81c importing all bundled deps to git 2014-09-14 18:28:17 +04:00
Alex Kocharin
a5cd498f92 use http-errors package instead of custom stuff 2014-09-10 21:55:26 +04:00
Alex Kocharin
dbb588f031 Merge branch '0.9.x' of github.com:rlidwka/sinopia 2014-09-07 01:25:08 +04:00
Alex Kocharin
720b98b715 0.9.3 2014-09-07 01:23:35 +04:00
Alex Kocharin
efd921d876 0.9.3 2014-09-07 01:23:24 +04:00
Alex Kocharin
1e28c2d949 fix double fs.closing + EBADF error 2014-09-07 01:20:28 +04:00
Alex Kocharin
a0c861ec5a forgot to resolve path to storage 2014-09-07 00:57:40 +04:00
Alex Kocharin
8d841ea8e3 hide local-list.json to storage/.sinopia-db.json
It was always in the current folder, which is a bad thing.
2014-09-07 00:50:34 +04:00
Alex Kocharin
504430dcdd temporarily disable web interface in config
I want to release 0.10 soon, and web doesn't have auth system yet.

So we'll probably disable it for now, and re-enable when its ready.
2014-09-06 23:53:28 +04:00
Alex Kocharin
435ff1beeb Merge branch 'auth' 2014-09-06 13:07:52 +04:00
Alex Kocharin
6e247829a3 auth refactoring: part 2
auth plugins
2014-09-06 13:07:10 +04:00
Alex Kocharin
99795b747c undefined variable fix 2014-09-06 13:07:10 +04:00
Alex Kocharin
3a325a1e04 auth refactoring, part 1
moving stuff to auth.js basically + allowing usergroups
2014-09-06 13:07:10 +04:00
Alex Kocharin
734565dc05 auth refactoring: part 3
moving htpasswd out
2014-09-06 13:03:22 +04:00
Alex Kocharin
697d5f0892 Merge branch '0.9.x' of github.com:rlidwka/sinopia 2014-09-03 16:20:05 +04:00
Alex Kocharin
409d25739e fix "can't set headers" exception
see discussion in #113
2014-09-03 16:18:27 +04:00
Alex Kocharin
65a792ba53 Merge branch '0.9.x' of github.com:rlidwka/sinopia 2014-09-03 15:44:24 +04:00
Alex Kocharin
4239107ed2 0.9.2 2014-09-03 15:40:48 +04:00
Alex Kocharin
f512925fd4 0.9.2 2014-09-03 15:40:42 +04:00
Alex Kocharin
b740dd11cf remove outdated user existence check
doesn't work with htpasswd, and doesn't make sense with
future auth plugins

ref #115
2014-09-03 15:31:57 +04:00
Alex Kocharin
430a479113 auth refactoring: part 2
auth plugins
2014-09-02 04:27:04 +04:00
Alex Kocharin
86394b25ee undefined variable fix 2014-09-02 04:26:54 +04:00
Alex Kocharin
8086c6f0bf auth refactoring, part 1
moving stuff to auth.js basically + allowing usergroups
2014-09-02 03:09:08 +04:00
Alex Kocharin
7742e11cde Merge pull request #111 from jeremymoritz/master
fixed typo in README.md
2014-08-29 10:41:19 +04:00
Jeremy Moritz
2597fcae80 fixed typo in README.md 2014-08-28 14:40:14 -05:00
Alex Kocharin
5dd720cc21 add stuff for testing against fd leaks and memory leaks 2014-08-15 01:37:46 +04:00
Alex Kocharin
fdbde9eb87 add .editorconfig to fix indentation issues 2014-08-13 10:23:17 +04:00
Alex Kocharin
7e5227e4a1 allow "pretty" format for logging into files
ref #88
2014-08-11 08:46:20 +04:00
Alex Kocharin
60ae815c09 make tests more verbose for travis 2014-08-11 08:09:18 +04:00
Alex Kocharin
adecd99866 ignore errors for 0.11 branch (native modules are failing) 2014-08-11 07:16:15 +04:00
Alex Kocharin
932fa34edc travis + badges 2014-08-11 06:09:25 +04:00
Alex Kocharin
75fc0ae472 Merge remote-tracking branch 'origin/0.9.x'
Conflicts:
	package.yaml
2014-08-11 03:57:13 +04:00
Alex Kocharin
4bc965b45b WIP: review all dependency versions, add bundledDependencies 2014-08-11 03:52:09 +04:00
Alex Kocharin
6704abf988 bugfixes for webui 2014-08-08 06:17:05 +04:00
Alex Kocharin
d9f84677f8 fix tests broken by webui 2014-08-08 05:58:25 +04:00
Alex Kocharin
e1880ce19e Merge remote-tracking branch 'origin/0.9.x' 2014-08-08 05:26:05 +04:00
Alex Kocharin
77700e72b1 Merge remote-tracking branch 'origin/0.9.x' 2014-08-08 05:15:22 +04:00
Alex Kocharin
57d6fe7150 Merge remote-tracking branch 'origin/0.9.x'
Conflicts:
	lib/local-storage.js
2014-08-08 05:12:42 +04:00
Alex Kocharin
4660dd3b7f Merge pull request #95 from jgoz/null-npmUser
Filter falsey _npmUser values
2014-08-02 00:36:30 +04:00
John Gozde
58046a2ec7 Filter falsey _npmUser values. 2014-08-01 14:08:44 -06:00
Alex Kocharin
008423d49b Merge pull request #94 from keyvanfatehi/patch-2
Point to the new docker image
2014-08-01 17:45:36 +04:00
Keyvan Fatehi
3eb09b8b07 Point to the new docker image 2014-07-31 22:29:21 -05:00
Alex Kocharin
888cfe3f1e don't receive future updates to express.js
... until this gets resolved:
https://github.com/strongloop/express/issues/2264

ref #92
2014-07-31 18:12:26 +04:00
Alex Kocharin
4545076b0f ignore anything in bin/ folder 2014-07-26 21:27:32 +04:00
Alex Kocharin
854fd796ae auto-compile package.json on "npm install" 2014-07-26 21:27:10 +04:00
Alex Kocharin
77af6d4c17 remove package.json from git index on recompile 2014-07-26 21:00:43 +04:00
Alex Kocharin
21704c9f84 removing unused code 2014-07-26 20:46:17 +04:00
Alex Kocharin
4f913f2468 Merge https://github.com/bpeacock/sinopia.git
Conflicts:
	lib/config.js
	lib/config_def.yaml
	lib/index.js
	lib/local-storage.js
	lib/storage.js
	package.json
2014-07-26 20:36:22 +04:00
Brian Peacock
96126e5a2f Added back in package.json so that it can be installed from git repo 2014-05-13 17:14:25 -05:00
Brian Peacock
490b04f298 Removed 'root' config parameter 2014-05-13 17:12:21 -05:00
Brian Peacock
abacb64479 formatting 2014-05-12 10:49:45 -05:00
Brian Peacock
2a299c9201 Switched some tabs to spaces 2014-05-12 10:43:18 -05:00
Brian Peacock
39083b819f Switched back to package.yaml 2014-05-12 10:42:04 -05:00
Brian Peacock
228f1512d7 Typo 2014-05-12 09:37:18 -05:00
Brian Peacock
f5b9e0e0d5 Added default logo to the page 2014-05-12 09:35:53 -05:00
Brian Peacock
daaee2b971 Updated README to reflect changes 2014-05-12 09:29:29 -05:00
Brian Peacock
a38cf312b2 Updated the config 2014-05-12 09:21:07 -05:00
Brian Peacock
ab44907dac Fixed bug with creating users with hashed passwords 2014-05-09 13:26:47 -05:00
Brian Peacock
1246f12f5a Added CSS for no logo 2014-05-09 09:19:42 -05:00
Brian Peacock
99b8c31d3a Added the ability to add users 2014-05-08 19:24:41 -05:00
Brian Peacock
dbf3301ff9 Added favicon 2014-05-08 18:03:14 -05:00
Brian Peacock
a6fe4a1516 Added logo support 2014-05-08 17:58:13 -05:00
Brian Peacock
277f1023c9 Fixed unpublish 2014-05-08 16:48:15 -05:00
Brian Peacock
820ae3f27c Tabs to spaces 2014-05-08 16:35:06 -05:00
Brian Peacock
d52cfe8bac Fixed issue publishing unpublished modules 2014-05-08 16:34:16 -05:00
Brian Peacock
f74d7cbd3e Added fixed header 2014-05-08 15:41:59 -05:00
Brian Peacock
7e9b5944fd Removed logging 2014-05-08 14:47:54 -05:00
Brian Peacock
6fb0be9cc0 Fixed search UI bugs 2014-05-08 14:47:24 -05:00
Brian Peacock
1ddc1c68dc Added icons, smoother animations, search readme's 2014-05-08 11:13:39 -05:00
Brian Peacock
8b3dc9072f Added nifty transitions 2014-05-07 16:51:03 -05:00
Brian Peacock
112e551240 Fixed issue with no packages and the template 2014-05-07 15:53:24 -05:00
Brian Peacock
7b4bac1874 Added url config option 2014-05-07 15:43:22 -05:00
Brian Peacock
baa7f78e83 Nicer formamtting 2014-05-07 15:36:03 -05:00
Brian Peacock
45e4208218 Added cases for no local packages 2014-05-07 15:31:25 -05:00
Brian Peacock
1e48eacbf8 Changed the name back 2014-05-07 15:10:06 -05:00
Brian Peacock
9e062994fe Modified the search box 2014-05-07 15:00:36 -05:00
Brian Peacock
4f155f5004 Added highligting CSS 2014-05-07 14:56:48 -05:00
Brian Peacock
c0ee2db8a4 Added readme API with markdown support 2014-05-07 14:28:10 -05:00
Brian Peacock
5464b449ce Formatted entries 2014-05-07 13:36:48 -05:00
Brian Peacock
f2e433d52b Formatting 2014-05-07 13:26:44 -05:00
Brian Peacock
11fdc9340e Search works 2014-05-07 13:08:29 -05:00
Brian Peacock
1e71e2faa0 Fixed grunt build location 2014-05-07 11:29:04 -05:00
Brian Peacock
2806de2a5d Added static resources 2014-05-07 11:27:51 -05:00
Brian Peacock
27c032d53f Added a search class 2014-05-07 10:29:47 -05:00
Brian Peacock
c47f73f799 Added pack in user put 2014-05-07 10:11:48 -05:00
Brian Peacock
2901e619cb Fixed refresh issue 2014-05-07 10:10:59 -05:00
Brian Peacock
5a98db9589 Added Setup instructions 2014-05-06 17:48:15 -05:00
Brian Peacock
34b631fa12 Added listings 2014-05-06 17:40:21 -05:00
Brian Peacock
bb129c1151 Got handlebars templates working right 2014-05-06 17:04:03 -05:00
Brian Peacock
37afd429ec Added basic GUI 2014-05-06 16:34:48 -05:00
Brian Peacock
edee08a778 Fixed some things 2014-05-06 14:57:50 -05:00
Brian Peacock
0395d958cf Made it run... 2014-05-06 14:01:13 -05:00
Brian Peacock
9e51798295 Made it a regular npm module 2014-05-06 12:06:10 -05:00
Brian Peacock
cb6e2cd7f6 More specific express version to try to get old node working. 2014-05-06 11:34:09 -05:00
617 changed files with 54403 additions and 5868 deletions

50
.babelrc Normal file
View File

@@ -0,0 +1,50 @@
{
"env": {
"ui": {
"presets": [
"react",
["env",{
"targets": {
"browsers": [
"last 5 versions",
"FireFox >= 44",
"Safari >= 7",
"Explorer 11",
"last 4 Edge versions"
],
"loose": true
}
}],
"stage-2",
"stage-3"
],
"plugins": [
"react-hot-loader/babel",
"transform-runtime",
"transform-object-rest-spread",
"transform-decorators-legacy"
]
},
"test": {
"presets": [ "es2015-node4", "stage-2", "stage-3", "flow", "react"],
"plugins": [
"transform-class-properties",
"transform-object-rest-spread"
]
},
"registry": {
"presets": [
"es2015-node4", "flow"
],
"plugins": [
"transform-object-rest-spread"
]
},
"development": {
"presets": ["flow"],
"plugins": [
"flow-runtime"
]
}
}
}

32
.dockerignore Normal file
View File

@@ -0,0 +1,32 @@
# we try to aoid adding files to the docker images that change often
# or that are not needed for running the docker image
# tis greatly reduces the amount of times we need to rerun `npm install` when building image locally
# https://codefresh.io/blog/not-ignore-dockerignore/
# https://docs.docker.com/engine/reference/builder/#dockerignore-file
# consider them hidden
.*
# you can add exceptions like in .gitignore to maintain a whitelist:
# e.g.
!.babelrc
!.eslintrc
!.eslintignore
!.stylelintrc
!.flowconfig
!.jest.config.js
!.jestEnvironment.js
# do not copy over node_modules we will run `npm install` anyway
node_modules
# output from test runs and similar things
*.log
coverage/
# IDE config files
jsconfig.json
*.iml
# let's not get to recursive ;)
Dockerfile*
docker-compose*.yaml

12
.editorconfig Normal file
View File

@@ -0,0 +1,12 @@
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
# 2 space indentation
[{.,}*.{js,jsx,yml,yaml}]
indent_style = space
indent_size = 2

2
.env Normal file
View File

@@ -0,0 +1,2 @@
# default values for docker-compose
PORT=4873

View File

@@ -1,275 +0,0 @@
env:
node: true
#
# 0 - disable
# Rules that more harmful than useful, or just buggy.
#
# 1 - warning
# Rules that we didn't encounter yet. You can safely ignore them,
# but I'd like to know any interesting use-cases they forbid.
#
# 2 - error
# Rules that have proven to be useful, please follow them.
#
rules:
# didn't understand what it does, but it fails a good code
block-scoped-var: 0
# fails where newlines are used to format pretty big "if":
# if (
# name.charAt(0) === "." ||
# name.match(/[\/@\s\+%:]/) ||
# name !== encodeURIComponent(name) ||
# name.toLowerCase() === "node_modules"
# ) {
brace-style: 1
# snake_case is more readable, what's up with you guys?
camelcase: 0
# if some functions are complex, they are for a good reason,
# ain't worth it
complexity: [0, 10]
# never saw it, but self is preferred
consistent-this: [1, self]
# fails good code
curly: [0, multi]
# fails good code, where this notation is used for consistency:
# something['foo-bar'] = 123
# something['blahblah'] = 234
dot-notation: 0
# pointless in many cases (like indexOf() == -1), harmful in a few
# cases (when you do want to ignore types), fails good code
eqeqeq: 0
# if someone is changing prototype and makes properties enumerable,
# it's their own fault
guard-for-in: 0
# if some functions are complex, they are for a good reason,
# ain't worth it
max-depth: [0, 4]
max-nested-callbacks: [0, 2]
# should it really throw for every long URL?
max-len: [0, 80, 4]
# that's obvious by just looking at the code, you don't need lint for that
max-params: [0, 3]
# if some functions are complex, they are for a good reason,
# ain't worth it
max-statements: [0, 10]
# that one makes sense
new-cap: 2
# I'm writing javascript, not some weird reduced version of it
no-bitwise: 0
# not working around IE bugs, sorry
no-catch-shadow: 0
# see above, IE is useful for downloading other browsers only
no-comma-dangle: 0
# good for removing debugging code
no-console: 2
# good for removing debugging code
no-debugger: 2
# why would anyone need to check against that?
no-else-return: 0
# sometimes empty statement contains useful comment
no-empty: 0
# stupid rule
# "x == null" is "x === null || x === undefined"
no-eq-null: 0
# fails good code, when parens are used for grouping:
# (req && req.headers['via']) ? req.headers['via'] + ', ' : ''
# not everyone remembers priority tables, you know
no-extra-parens: 0
# fails defensive semicolons:
# ;['foo', 'bar'].forEach(function(x) {})
no-extra-semi: 0
# fails good code:
# var fs = require('fs'),
# , open = fs.open
no-mixed-requires: [0, false]
# new Array(12) is used to pre-allocate arrays
no-new-array: 0
# fails good code:
# fs.open('/file', 0666, function(){})
no-octal: 0
# fails good code:
# console.log('\033[31m' + str + '\033[39m')
# also fails \0 which is not octal escape
no-octal-escape: 0
# I'm writing javascript, not some weird reduced version of it
no-plusplus: 0
# fails good code:
# if (a) {
# var x = 'foo'
# } else {
# var x = bar
# }
no-redeclare: 0
# sometimes useful, often isn't
# probably worth enforcing
no-shadow: 2
no-sync: 2
# I'm writing javascript, not some weird reduced version of it
no-ternary: 0
# the single most important rule in the entire ruleset
no-undef: 2
# it is failing our own underscores
no-underscore-dangle: 0
# fails function hoisting
no-unreachable: 0
# fails npm-style code, it's good once you get used to it:
# if (typeof(options) === 'function') callback = options, options = {}
no-unused-expressions: 0
# fails (function(_err) {}) where named argument is used to show what
# nth function argument means
no-unused-vars: [0, local]
# fails function hoisting
no-use-before-define: 0
# fails foobar( (function(){}).bind(this) )
# parens are added for readability
no-wrap-func: 0
# fails good code:
# var x
# if (something) {
# var y
one-var: 0
quote-props: 0
# fails situation when different quotes are used to avoid escaping
quotes: [2, single, avoid-escape]
# http:#blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
semi: [2, never]
# fails good code where spaces are used for grouping:
# (x+y * y+z)
space-infix-ops: 0
# typeof(something) should have braces to look like a function
# a matter of taste I suppose
space-unary-word-ops: 0
# strict mode is just harmful,
# can I have a check to enforce not using it?
strict: 0
sort-vars: 0
no-path-concat: 0
func-names: 0
# how can you set a return code without process.exit?
no-process-exit: 0
# both styles are useful
func-style: [0, declaration]
# fails while(1) {...}
no-constant-condition: 0
# fails good code:
# https://github.com/rlidwka/jju/blob/eb52ee72e5f21d48963798f9bda8ac8d68082148/lib/parse.js#L732
no-ex-assign: 0
wrap-iife: [2, inside]
# doesn't always make sense
consistent-return: 0
no-sequences: 0
# fails defensive semicolons
no-space-before-semi: 0
new-parens: 1
no-alert: 1
no-array-constructor: 1
no-caller: 1
no-cond-assign: 1
no-control-regex: 1
no-delete-var: 1
no-div-regex: 1
no-dupe-keys: 1
no-empty-class: 1
no-empty-label: 1
no-eval: 1
no-extend-native: 1
no-extra-boolean-cast: 1
no-extra-strict: 1
no-fallthrough: 1
no-floating-decimal: 1
no-func-assign: 1
no-global-strict: 1
no-implied-eval: 1
no-invalid-regexp: 1
no-iterator: 1
no-labels: 1
no-label-var: 1
no-lone-blocks: 1
no-loop-func: 1
no-multi-str: 1
no-native-reassign: 1
no-negated-in-lhs: 1
no-nested-ternary: 1
no-new: 1
no-new-func: 1
no-new-object: 1
no-new-wrappers: 1
no-obj-calls: 1
no-octal: 1
no-proto: 1
no-regex-spaces: 1
no-return-assign: 1
no-script-url: 1
no-self-compare: 1
no-shadow: 1
no-shadow-restricted-names: 1
no-spaced-func: 1
no-sparse-arrays: 1
no-sync: 1
no-undef: 1
no-undef-init: 1
no-unreachable: 1
no-with: 1
no-yoda: 1
radix: 1
space-return-throw-case: 1
use-isnan: 1
valid-jsdoc: 1
wrap-regex: 1

7
.eslintignore Normal file
View File

@@ -0,0 +1,7 @@
node_modules
coverage/
wiki/
static/
flow-typed/
website/
build/

87
.eslintrc Normal file
View File

@@ -0,0 +1,87 @@
{
"plugins": [
"react",
"flowtype",
"jest"
],
"extends": [
"eslint:recommended",
"google",
"plugin:react/recommended",
"plugin:flowtype/recommended",
"plugin:jest/recommended"
],
"parser": "babel-eslint",
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 7,
"ecmaFeatures": {
"impliedStrict": true,
"jsx": true
}
},
"env": {
"browser": true,
"node": true,
"es6": true,
"jest": true
},
"globals": {
"__APP_VERSION__": true
},
"rules": {
"no-tabs": 0,
"keyword-spacing": 0,
"padded-blocks": 0,
"no-useless-escape": 0,
"handle-callback-err": 2,
"no-debugger": 2,
"no-fallthrough": 2,
"curly": 2,
"eol-last": 1,
"no-irregular-whitespace": 1,
"no-mixed-spaces-and-tabs": [
1,
"smart-tabs"
],
"no-trailing-spaces": 1,
"no-new-require": 2,
"no-undef": 2,
"no-unreachable": 2,
"no-unused-vars": [
2,
{
"vars": "all",
"args": "none"
}
],
"max-len": [
1,
160
],
"semi": [
2,
"always"
],
"camelcase": 0,
"require-jsdoc": 0,
"valid-jsdoc": 0,
"prefer-spread": 1,
"prefer-rest-params": 1,
"no-var": 2,
"no-constant-condition": 2,
"no-empty": 2,
"guard-for-in": 2,
"no-invalid-this": 2,
"new-cap": 2,
"one-var": 2,
"no-console": [
2,
{
"allow": [
"warn"
]
}
]
}
}

19
.flowconfig Normal file
View File

@@ -0,0 +1,19 @@
[ignore]
.*/node_modules/.*
.*/test/**/*.json
.*/static/.*
.*/test/unit/partials/.*
.*/.nyc_output/.*
.*/coverage/.*
.*/.vscode/.*
.*/build/.*
[include]
[libs]
node_modules/@verdaccio/types/lib/
[lints]
[options]
suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe

41
.github/issue_template.md vendored Normal file
View File

@@ -0,0 +1,41 @@
#### My reason:
<!--
a brief explanation of the issue, suggestion, feature
-->
#### Steps to reproduce:
<!--
(if it applies)
how can I do in order to reproduce it? environment?
-->
#### App Version:
<!--
Define which version the issue happens and whether previous version the behaviour is correct
-->
#### Config file:
<!--
Provide your config file might be really helpful. Please be aware to hide sensisive data before post.
-->
#### Additional information:
<!--
provide the following information would be helpful
-->
- `$ set DEBUG=express:* verdaccio` enable extreme verdaccio debug mode
- `$ npm --verbose` prints:
- `$ npm config get registry` prints:
- Verdaccio terminal output
- Windows, OS X/macOS, or Linux?:
- Verdaccio configuration file, eg: `cat ~/.config/verdaccio/config.yaml`
<!-- Remove those does not apply for you -->
- Container:
- I use local environment
- I develop / deploy using Docker.
- I deploy to a PaaS.
#### Additional verbose log:

29
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,29 @@
<!-- Before Pull Request check whether your commits follow this convention
https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#git-commit-guidelines
-->
<!--
If your Pull Request fix an issue don't forget to update the unit test and documentation in /docs folder
If your Pull Request delivers a new feature, please, provide examples and why such feature should be considered, this information is important to document the Github changelog. Also, try to increase documentation and create new unit/functional test.
-->
<!-- Pick only one type, whether none apply, please suggest one, we might be included it by default -->
**Type:** bug / feature / documentation / unit test / build
The following has been addressed in the PR:
<!-- Remove the sections that your PR does not apply -->
* There is a related issue
* Unit or Functional tests are included in the PR
<!--
Our bots should ensure:
* The PR passes CI testing
-->
<!-- If there is no issue related to this PR just remove the following section -->
**Description:**
Resolves #???
<!-- We are glad your code is part of this community, thanks for your valuable time !! -->

38
.gitignore vendored
View File

@@ -1,10 +1,36 @@
node_modules
package.json
npm-debug.log
sinopia-*.tgz
verdaccio-*.tgz
.DS_Store
build/
###
bin/storage*
bin/htpasswd
bin/*.yaml
!bin/verdaccio
test-storage*
.verdaccio_test_env
node_modules
package-lock.json
build/
npm_test-fails-add-tarball*
# Istanbul
coverage/
.nyc*
# Visual Studio Code
.vscode/*
.idea/
# React
bundle.js
bundle.js.map
__tests__
# Compiled script
static/index.html
static/style.*
static/*.js
static/logo.*

View File

@@ -1,12 +1,12 @@
node_modules
package.json
npm-debug.log
sinopia-*.tgz
###
bin/storage*
bin/htpasswd
bin/*.yaml
coverage/
verdaccio-*.tgz
test-storage*
/.eslint*
scripts/
docs/
src/webui
tools/
/.*
website/
assets/

8
.stylelintrc Normal file
View File

@@ -0,0 +1,8 @@
{
"extends": "stylelint-config-recommended-scss",
"rules": {
"selector-pseudo-class-no-unknown": [true, {
"ignorePseudoClasses": ["/global/"]
}]
}
}

11
.travis.yml Normal file
View File

@@ -0,0 +1,11 @@
language: node_js
sudo: false
node_js:
- 'lts/boron'
- 'lts/carbon'
- 'lts/*'
script:
- npm install
- commitlint-travis
- npm run pre:ci
- npm run test

2
.yarnrc Normal file
View File

@@ -0,0 +1,2 @@
save-prefix ""
registry "http://registry.npmjs.org/"

74
AUTHORS Normal file
View File

@@ -0,0 +1,74 @@
030 <chocolatey030@gmail.com>
Alex Kocharin <alex@kocharin.ru>
Alex Kocharin <rlidwka@kocharin.ru>
Alex Vernacchia <avernacchia@exacttarget.com>
Alexander Makarenko <estliberitas@gmail.com>
Alexandre-io <Alexandre-io@users.noreply.github.com>
Aram Drevekenin <grimsniffer@gmail.com>
Bart Dubois <dubcio@o2.pl>
Barthélemy Vessemont <bvessemont@gmail.com>
Brandon Nicholls <brandon.nicholls@gmail.com>
Bren Norris <bnorris@enterrasolutions.com>
Brett Trotter <brett.trotter@webfilings.com>
Brian Peacock <bpeacock@fastfig.com>
Cedric Darne <cdarne@hibernum.com>
Chad Killingsworth <chad.killingsworth@banno.com>
Chris Breneman <crispy@cluenet.org>
Cody Droz <cody-geest@uiowa.edu>
Daniel Rodríguez Rivero <rdanielo@gmail.com>
Denis Babineau <denis.babineau@gmail.com>
Emmanuel Narh <narhe@advisory.com>
Fabio Poloni <fabio@APP-roved.com>
Facundo Chambó <fchambo@despegar.com>
Guilherme Bernal <dev@lbguilherme.com>
Jakub Jirutka <jakub@jirutka.cz>
James Newell <j.newell@nib.com.au>
Jan Vansteenkiste <jan@vstone.eu>
Jannis Achstetter <jannis.achstetter@schneider-electric.com>
Jeremy Moritz <jeremy@jeremymoritz.com>
John Gozde <johng@pandell.com>
Jon de la Motte <jondlm@gmail.com>
Joseph Gentle <me@josephg.com>
José De Paz <josedepaz@users.noreply.github.com>
Juan Carlos Picado <juan@encuestame.org>
Juan Carlos Picado <juanpicado19@gmail.com>
Juan Picado <juanpicado19@gmail.com>
Juan Picado @jotadeveloper <juanpicado19@gmail.com>
Kalman Speier <kalman.speier@gmail.com>
Keyvan Fatehi <keyvanfatehi@gmail.com>
Kody J. Peterson <kodypeterson@users.noreply.github.com>
Madison Grubb <madison.grubb@itential.com>
Manuel de Brito Fontes <aledbf@gmail.com>
Mark Doeswijk <mark.doeswijk@marviq.com>
Meeeeow <i@aka.mn>
Meeeeow <me@async.sh>
Michael Arnel <michael.arnel@gmail.com>
Michael Crowe <michael@developrise.com>
Miguel Mejias <miguelangelmejias@dorna.com>
Miroslav Bajtoš <miroslav@strongloop.com>
Nate Ziarek <natez@OSX12-L-NATEZ.local>
Nick <nick.edelenbos@trimm.nl>
Piotr Synowiec <psynowiec@gmail.com>
Rafael Cesar <rafa.cesar@gmail.com>
Robert Ewald <r3wald@gmail.com>
Robert Groh <robert.groh@medesso.de>
Robin Persson <rprssn@gmail.com>
Romain Lai-King <romain.laiking@opentrust.com>
Ryan Graham <r.m.graham@gmail.com>
Ryan Graham <ryan@codingintrigue.co.uk>
Sam Day <sday@atlassian.com>
Tarun Garg <tarun1793@users.noreply.github.com>
Thomas Cort <thomasc@ssimicro.com>
Tom Vincent <git@tlvince.com>
Trent Earl <trent@trentearl.com>
Yannick Croissant <yannick.croissant@gmail.com>
Yannick Galatol <ygalatol@teads.tv>
cklein <trancesilken@gmail.com>
danielo515 <rdanielo@gmail.com>
jmwilkinson <j.wilkinson@f5.com>
jotadeveloper <juanpicado19@gmail.com>
jotadeveloper <juanpicado@users.noreply.github.com>
maxlaverse <max@laverse.net>
saheba <saheba@users.noreply.github.com>
steve-p-com <github@steve-p.com>
trent.earl <trent.earl@malauzai.com>

643
CHANGELOG.md Normal file
View File

@@ -0,0 +1,643 @@
# Change Log
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
<a name="3.0.0-alpha.0"></a>
# [3.0.0-alpha.0](https://github.com/verdaccio/verdaccio/compare/v3.0.0-0...v3.0.0-alpha.0) (2018-01-07)
<a name="2.7.2"></a>
## [2.7.2](https://github.com/verdaccio/verdaccio/compare/v2.7.1...v2.7.2) (2018-01-05)
### Bug Fixes
* marked dependency to latest ([75bf2a8](https://github.com/verdaccio/verdaccio/commit/75bf2a8))
<a name="2.7.1"></a>
## [2.7.1](https://github.com/verdaccio/verdaccio/compare/v2.7.0...v2.7.1) (2017-12-20)
### Bug Fixes
* notification for multiple endpoints ([b605d1e](https://github.com/verdaccio/verdaccio/commit/b605d1e))
<a name="2.7.0"></a>
# [2.7.0](https://github.com/verdaccio/verdaccio/compare/v2.6.6...v2.7.0) (2017-12-05)
### Features
* Add middleware plugins from fl4re/sinopia ([374a5e8](https://github.com/verdaccio/verdaccio/commit/374a5e8))
* Log-rotation used to require a full restart of the application ([baa4763](https://github.com/verdaccio/verdaccio/commit/baa4763)
* Add Kubernetes instructions ([ef1bd34](https://github.com/verdaccio/verdaccio/commit/ef1bd34)
* Match shell title with web title ([ddcc493](https://github.com/verdaccio/verdaccio/commit/ddcc493)
<a name="2.6.6"></a>
## [2.6.6](https://github.com/verdaccio/verdaccio/compare/v2.6.5...v2.6.6) (2017-11-08)
### Bug Fixes
* :bug: incorrect logo url with slash at the end of `url_prefix` ([859eccb](https://github.com/verdaccio/verdaccio/commit/859eccb))
<a name="2.6.5"></a>
## [2.6.5](https://github.com/verdaccio/verdaccio/compare/v2.6.4...v2.6.5) (2017-11-05)
### Bug Fixes
* upgrade node to fix long standing socket timeout issue ([bcc13ac](https://github.com/verdaccio/verdaccio/commit/bcc13ac))
<a name="2.6.4"></a>
## [2.6.4](https://github.com/verdaccio/verdaccio/compare/v2.6.3...v2.6.4) (2017-10-31)
### Bug Fixes
* :bug: incorrect resource and registry url while install on sub directory ([67e97a1](https://github.com/verdaccio/verdaccio/commit/67e97a1))
<a name="2.6.3"></a>
## [2.6.3](https://github.com/verdaccio/verdaccio/compare/v2.6.2...v2.6.3) (2017-10-21)
### Bug Fixes
* Check if socket exists before removing ([e916a0f](https://github.com/verdaccio/verdaccio/commit/e916a0f))
<a name="2.6.2"></a>
## [2.6.2](https://github.com/verdaccio/verdaccio/compare/v2.6.1...v2.6.2) (2017-10-21)
### Bug Fixes
* Remove unix socket before listen ([d42a41e](https://github.com/verdaccio/verdaccio/commit/d42a41e))
<a name="2.6.1"></a>
## [2.6.1](https://github.com/verdaccio/verdaccio/compare/v2.6.0...v2.6.1) (2017-10-19)
<a name="2.6.0"></a>
# [2.6.0](https://github.com/verdaccio/verdaccio/compare/v2.5.1...v2.6.0) (2017-10-18)
### Bug Fixes
* plugin loader with logs ([d6ed202](https://github.com/verdaccio/verdaccio/commit/d6ed202))
### Features
* add pfx support for https ([c84d567](https://github.com/verdaccio/verdaccio/commit/c84d567))
<a name="2.5.1"></a>
## [2.5.1](https://github.com/verdaccio/verdaccio/compare/v2.5.0...v2.5.1) (2017-10-01)
### Bug Fixes
* fix docker build failure due breaking changes in yarn ([c62e90f](https://github.com/verdaccio/verdaccio/commit/c62e90f))
<a name="2.5.0"></a>
# [2.5.0](https://github.com/verdaccio/verdaccio/compare/v2.3.6...v2.5.0) (2017-10-01)
### Bug Fixes
* :bug: check error code to prevent data loss ([5d73dca](https://github.com/verdaccio/verdaccio/commit/5d73dca)) fix [#329](https://github.com/verdaccio/verdaccio/issues/329)
* Fix [#334](https://github.com/verdaccio/verdaccio/issues/334) UI failure on IE 11, add suppor for old browsers. ([f1f15be](https://github.com/verdaccio/verdaccio/commit/f1f15be))
### Features
* header authorization uplink ([7baf7cb](https://github.com/verdaccio/verdaccio/commit/7baf7cb))
<a name="2.4.0"></a>
# [2.4.0](https://github.com/verdaccio/verdaccio/compare/v2.3.6...v2.4.0) (2017-09-23)
### Bug Fixes
* :bug: check error code to prevent data loss ([5d73dca](https://github.com/verdaccio/verdaccio/commit/5d73dca))
* :bug: check error code to prevent data loss ([93aae05](https://github.com/verdaccio/verdaccio/commit/93aae05))
* :bug: Package metadata cache not work ([4d6a447](https://github.com/verdaccio/verdaccio/commit/4d6a447))
* Fixed bug with Maximum call stack size exceeded on packages web API ([#326](https://github.com/verdaccio/verdaccio/pull/326))
* fix: :bug: Package metadata cache does not work ([#317](https://github.com/verdaccio/verdaccio/pull/317))
* Debug log color in terminal is too dark ([#311](https://github.com/verdaccio/verdaccio/pull/311))
* docs: Add new sections to documentation ([#308](https://github.com/verdaccio/verdaccio/pull/308))
* Remove from web section not longer valid properties ([#307](https://github.com/verdaccio/verdaccio/pull/307)) ([#309](https://github.com/verdaccio/verdaccio/pull/309))
* Fix possible data loss upstream ([#306](https://github.com/verdaccio/verdaccio/pull/306)) ([#300](https://github.com/verdaccio/verdaccio/pull/300))
### Features
* Update node alpine version to 8.4.0 ([3f96ce3](https://github.com/verdaccio/verdaccio/commit/3f96ce3))
<a name="2.3.6"></a>
## [2.3.6](https://github.com/verdaccio/verdaccio/compare/v2.3.5...v2.3.6) (2017-08-17)
### Bug Fixes
* link was broken ([a9481cc](https://github.com/verdaccio/verdaccio/commit/a9481cc))
* Correct accept header set for registry requests ([#295](https://github.com/verdaccio/verdaccio/pull/295))
* Update SSL documentation ([#296](https://github.com/verdaccio/verdaccio/pull/296))
* Fix auth process to check against username also and not just groups ([#293](https://github.com/verdaccio/verdaccio/pull/293))
<a name="2.3.5"></a>
## [2.3.5](https://github.com/verdaccio/verdaccio/compare/v2.3.4...v2.3.5) (2017-08-14)
### Bug Fixes
* configuration files inconsistencies, add unit test ([644c098](https://github.com/verdaccio/verdaccio/commit/644c098))
* Remove accept header that seems cause issues [#285](https://github.com/verdaccio/verdaccio/issues/285) [#289](https://github.com/verdaccio/verdaccio/issues/289) and npm search fails ([fab8391](https://github.com/verdaccio/verdaccio/commit/fab8391))
<a name="2.3.4"></a>
## [2.3.4](https://github.com/verdaccio/verdaccio/compare/v2.3.3...v2.3.4) (2017-07-29)
### Bug Fixes
* Docker image fails due lock file localhost references ([901a7be](https://github.com/verdaccio/verdaccio/commit/901a7be))
<a name="2.3.3"></a>
## [2.3.3](https://github.com/verdaccio/verdaccio/compare/v2.3.2...v2.3.3) (2017-07-29)
### Bug Fixes
* refactor [#268](https://github.com/verdaccio/verdaccio/issues/268) in a better way, amended to elegant way ([94fb6ad](https://github.com/verdaccio/verdaccio/commit/94fb6ad))
<a name="2.3.2"></a>
## [2.3.2](https://github.com/verdaccio/verdaccio/compare/v2.3.0...v2.3.2) (2017-07-28)
### Bug Fixes
* :bug: detail page can't handle scoped package ([1c9fbfc](https://github.com/verdaccio/verdaccio/commit/1c9fbfc))
* [#268](https://github.com/verdaccio/verdaccio/issues/268) remove the accept header that avoids request with some regiestries ([e7dcf3c](https://github.com/verdaccio/verdaccio/commit/e7dcf3c))
* [#78](https://github.com/verdaccio/verdaccio/issues/78) add new setting to allow publish when uplinks are offline ([430425c](https://github.com/verdaccio/verdaccio/commit/430425c))
* broken link ([9fb0e14](https://github.com/verdaccio/verdaccio/commit/9fb0e14))
* lint warning ([d0afe78](https://github.com/verdaccio/verdaccio/commit/d0afe78))
* Param web.title from config.yaml does not work on docker image [#265](https://github.com/verdaccio/verdaccio/issues/265) ([b1a396d](https://github.com/verdaccio/verdaccio/commit/b1a396d))
* undefined check ([ff96d2e](https://github.com/verdaccio/verdaccio/commit/ff96d2e))
## 2.3.1 (July 25, 2017)
- bug: Detail page can't handle scoped package - [#261](https://github.com/verdaccio/verdaccio/pull/261)
- bug: can't publish a private package to verdaccio while offline - [#223](https://github.com/verdaccio/verdaccio/pull/223)
- refactor: use light version of syntax highlighter - [#260](https://github.com/verdaccio/verdaccio/pull/260)
## 2.3.0 (July 22, 2017)
- feature: Refactor User Interface - [#220](https://github.com/verdaccio/verdaccio/pull/220)
## 2.2.7 (July 18, 2017)
- bug: fix running behind of loadbalancer with TLS termination - [#254](https://github.com/verdaccio/verdaccio/pull/254)
## 2.2.6 (July 13, 2017)
- build: update node version due security update announcement - [#251](https://github.com/verdaccio/verdaccio/pull/251)
## 2.2.5 (July 4, 2017)
- Fixed adding the verdaccio user into the group - [#241](https://github.com/verdaccio/verdaccio/pull/241)
## 2.2.3 (July 4, 2017)
- Updated Dockerfile & added proper signal handling - [#239](https://github.com/verdaccio/verdaccio/pull/239)
## 2.2.2 (July 2, 2017)
- Improve Docker Build - [#181](https://github.com/verdaccio/verdaccio/pull/181)
- Bugfix #73 `npm-latest` support - [#228](https://github.com/verdaccio/verdaccio/pull/228)
- Add [documentation](https://github.com/verdaccio/verdaccio/tree/master/wiki) - [#229](https://github.com/verdaccio/verdaccio/pull/229)
## 2.2.1 (June 17, 2017)
- config section moved up, some keywords added - [#211](https://github.com/verdaccio/verdaccio/pull/211)
- docs: update docs with behind reverse proxy - [#214](https://github.com/verdaccio/verdaccio/pull/214)
- Add remote ip to request log - [#216](https://github.com/verdaccio/verdaccio/pull/216)
## 2.2.0 (June 8, 2017)
- Allow url_prefix to be only the path - ([@BartDubois ]((https://github.com/BartDubois))) in [#197](https://github.com/verdaccio/verdaccio/pull/197)
- Apache reverse proxy configuration - ([@mysiar ]((https://github.com/mysiar))) in [#198](https://github.com/verdaccio/verdaccio/pull/198)
- don't blindly clobber local dist-tags - ([@rmg ]((https://github.com/rmg))) in [#206](https://github.com/verdaccio/verdaccio/pull/206)
- Adds cache option to uplinks - ([@silkentrance ]((https://github.com/silkentrance))) in [#132](https://github.com/verdaccio/verdaccio/pull/132)
## 2.1.7 (May 14, 2017)
- Fixed publish fail in YARN - ([@W1U02]((https://github.com/W1U02)) in [#183](https://github.com/verdaccio/verdaccio/pull/183)
## 2.1.6 (May 12, 2017)
- Fix https certificates safety check - ([@juanpicado]((https://github.com/juanpicado))) in [#189](https://github.com/verdaccio/verdaccio/pull/189)
- Fix upstream search not work with gzip - ([@Meeeeow](https://github.com/Meeeeow) in [#170](https://github.com/verdaccio/verdaccio/pull/170))
- Add additional requirement to output message - ([@marnel ](https://github.com/marnel) in [#184](https://github.com/verdaccio/verdaccio/pull/184))
- Implement npm ping endpoint - ([@juanpicado]((https://github.com/juanpicado))) in [#179](https://github.com/verdaccio/verdaccio/pull/179)
- Add support for multiple notification endpoints to existing webhook - ([@ryan-codingintrigue]((https://github.com/ryan-codingintrigue)))
in [#108](https://github.com/verdaccio/verdaccio/pull/108)
## 2.1.5 (April 22, 2017)
- fix upstream search - ([@Meeeeow](https://github.com/Meeeeow) in [#166](https://github.com/verdaccio/verdaccio/pull/166))
- Fix search feature - ([@Meeeeow](https://github.com/Meeeeow) in [#163](https://github.com/verdaccio/verdaccio/pull/163))
- add docs about run behind proxy - ([@Meeeeow](https://github.com/Meeeeow) in [#160](https://github.com/verdaccio/verdaccio/pull/160))
## 2.1.4 (April 13, 2017)
- Added Nexus Repository OSS as similar existing software - ([@nedelenbos030](https://github.com/nedelenbos) in [#147](https://github.com/verdaccio/verdaccio/pull/147))
- Increase verbose on notify request - ([@juanpicado](https://github.com/juanpicado) in [#153](https://github.com/verdaccio/verdaccio/pull/153))
- Add fallback support to previous config files - ([@juanpicado](https://github.com/juanpicado) in [#155](https://github.com/verdaccio/verdaccio/pull/155))
- Allows retrieval of all local package contents via http://server/-/search/* - ([@Verikon](https://github.com/Verikon) in [#152](https://github.com/verdaccio/verdaccio/pull/155))
## 2.1.3 (March 29, 2017)
- [GH-83] create systemd service - ([@030](https://github.com/030) in [#89](https://github.com/verdaccio/verdaccio/pull/89))
- optional scope in the readme package name. - ([@psychocode](https://github.com/psychocode) in [#136](https://github.com/verdaccio/verdaccio/pull/136))
- Added docker image for rpi - ([@danielo515](https://github.com/danielo515) in [#137](https://github.com/verdaccio/verdaccio/pull/137))
- Allow configuring a tagline that is displayed on the webpage between. ([@jachstet-sea](https://github.com/jachstet-sea) in [#143](https://github.com/verdaccio/verdaccio/pull/143))
## 2.1.2 (March 9, 2017)
- Contribute guidelines - ([@juanpicado](https://github.com/juanpicado) in [#133](https://github.com/verdaccio/verdaccio/pull/133))
- fix(plugin-loader): plugins verdaccio-* overwrite by sinopia- ([@Alexandre-io](https://github.com/Alexandre-io) in [#129](https://github.com/verdaccio/verdaccio/pull/129))
## 2.1.1 (February 7, 2017)
- [GH-86] updated readme to point to new chef cookbook ([@kgrubb](https://github.com/kgrubb) in [#117](https://github.com/verdaccio/verdaccio/pull/117))
- [GH-88] rename to Verdaccio instead of Sinopia ([@kgrubb](https://github.com/kgrubb) in [#93](https://github.com/verdaccio/verdaccio/pull/93))
- Unit testing coverage ([@juanpicado](https://github.com/juanpicado) in [#116](https://github.com/verdaccio/verdaccio/issues/116))
- Allow htpasswd-created users to log in [@imsnif](https://github.com/imsnif) in [#112](https://github.com/verdaccio/verdaccio/issues/112))
- remove travis io.js support ([@juanpicado](https://github.com/juanpicado) in [#115](https://github.com/verdaccio/verdaccio/issues/115))
- rename clean up ([@juanpicado](https://github.com/juanpicado) in [#114](https://github.com/verdaccio/verdaccio/issues/114))
- _npmUser / author not showing up ([@juanpicado](https://github.com/juanpicado) in [#65](https://github.com/verdaccio/verdaccio/issues/65))
- Docs: correct config attribute `proxy_access` ([@robertgroh](https://github.com/robertgroh) in [#96](https://github.com/verdaccio/verdaccio/pull/96))
- Problem with docker.yaml ([@josedepaz](https://github.com/josedepaz) in [#72](https://github.com/verdaccio/verdaccio/pull/72))
- Prevent logging of user and password ([@tlvince](https://github.com/tlvince) in [#94](https://github.com/verdaccio/verdaccio/pull/94))
- Updated README.md to reflect the availability of the docker image ([@jmwilkinson](https://github.com/jmwilkinson)) in [#71](https://github.com/verdaccio/verdaccio/pull/71))
## 2.1.0 (October 11, 2016)
- Use __dirname to resolve local plugins ([@aledbf](https://github.com/aledbf) in [#25](https://github.com/verdaccio/verdaccio/pull/25))
- Fix npm cli logout ([@plitex](https://github.com/plitex) in [#47](https://github.com/verdaccio/verdaccio/pull/47))
- Add log format: pretty-timestamped ([@jachstet-sea](https://github.com/jachstet-sea) in [#68](https://github.com/verdaccio/verdaccio/pull/68))
- Allow adding/overriding HTTP headers of uplinks via config ([@jachstet-sea](https://github.com/jachstet-sea) in [#67](https://github.com/verdaccio/verdaccio/pull/67))
- Update Dockerfile to fix failed start ([@denisbabineau](https://github.com/denisbabineau) in [#62](https://github.com/verdaccio/verdaccio/pull/62))
- Update the configs to fully support proxying scoped packages ([@ChadKillingsworth](https://github.com/ChadKillingsworth) in [#60](https://github.com/verdaccio/verdaccio/pull/60))
- Prevent the server from crashing if a repo is accessed that the user does not have access to ([@crowebird](https://github.com/crowebird) in [#58](https://github.com/verdaccio/verdaccio/pull/58))
- Hook system, for integration into things like slack
- Register entry partial even if custom template is provided ([@plitex](https://github.com/plitex) in [#46](https://github.com/verdaccio/verdaccio/pull/46))
- Rename process to verdaccio ([@juanpicado](https://github.com/juanpicado) in [#57](https://github.com/verdaccio/verdaccio/pull/57))
## 7 Jun 2015, version 1.4.0
- avoid sending X-Forwarded-For through proxies (issues [#19](https://github.com/rlidwka/sinopia/issues/19), [#254](https://github.com/rlidwka/sinopia/issues/254))
- fix multiple issues in search (issues [#239](https://github.com/rlidwka/sinopia/issues/239), [#253](https://github.com/rlidwka/sinopia/pull/253))
- fix "maximum stack trace exceeded" errors in auth (issue [#258](https://github.com/rlidwka/sinopia/issues/258))
## 10 May 2015, version 1.3.0
- add dist-tags endpoints (issue [#211](https://github.com/rlidwka/sinopia/issues/211))
## 22 Apr 2015, version 1.2.2
- fix access control regression in `1.2.1` (issue [#238](https://github.com/rlidwka/sinopia/issues/238))
- add a possibility to bind on unix sockets (issue [#237](https://github.com/rlidwka/sinopia/issues/237))
## 11 Apr 2015, version 1.2.1
- added more precise authorization control to auth plugins (issue [#207](https://github.com/rlidwka/sinopia/pull/207))
## 29 Mar 2015, version 1.1.0
- add a possibility to listen on multiple ports (issue [#172](https://github.com/rlidwka/sinopia/issues/172))
- added https support (issues [#71](https://github.com/rlidwka/sinopia/issues/71), [#166](https://github.com/rlidwka/sinopia/issues/166))
- added an option to use a custom template for web UI (issue [#208](https://github.com/rlidwka/sinopia/pull/208))
- remove "from" and "resolved" fields from shrinkwrap (issue [#204](https://github.com/rlidwka/sinopia/issues/204))
- fix hanging when rendering readme (issue [#206](https://github.com/rlidwka/sinopia/issues/206))
- fix logger-related crash when using sinopia as a library
- all requests to uplinks should now have proper headers
## 12 Feb 2015, version 1.0.1
- fixed issue with `max_users` option (issue [#184](https://github.com/rlidwka/sinopia/issues/184))
- fixed issue with not being able to disable the web interface (issue [#195](https://github.com/rlidwka/sinopia/pull/195))
- fixed 500 error while logging in with npm (issue [#200](https://github.com/rlidwka/sinopia/pull/200))
## 26 Jan 2015, version 1.0.0
- switch markdown parser from `remarkable` to `markdown-it`
- update `npm-shrinkwrap.json`
- now downloading tarballs from upstream using the same protocol as for metadata (issue [#166](https://github.com/rlidwka/sinopia/issues/166))
## 22 Dec 2014, version 1.0.0-beta.2
- fix windows behavior when `$HOME` isn't set (issue [#177](https://github.com/rlidwka/sinopia/issues/177))
- fix sanitization for highlighted code blocks in readme (issue [render-readme/#1](https://github.com/rlidwka/render-readme/issues/1))
## 15 Dec 2014, version 1.0.0-beta
- Markdown rendering is now a lot safer (switched to remarkable+sanitizer).
- Header in web interface is now static instead of fixed.
- `GET /-/all?local` now returns list of all local packages (issue [#179](https://github.com/rlidwka/sinopia/pull/179))
## 5 Dec 2014, version 1.0.0-alpha.3
- Fixed an issue with scoped packages in tarballs
## 25 Nov 2014, version 1.0.0-alpha
- Config file is now created in `$XDG_CONFIG_HOME` instead of current directory.
It is printed to stdout each time sinopia starts, so you hopefully won't have any trouble locating it.
The change is made so sinopia will pick up the same config no matter which directory it is started from.
- Default config file is now a lot shorter, and it is very permissive by default. You could use sinopia without modifying it on your own computer, but definitely should change it on production.
- Added auth tokens. For now, auth token is just a username+password encrypted for security reasons, so it isn't much different from basic auth, but allows to avoid "always-auth" npm setting.
- Added scoped packages.
Please note that default `*` mask won't apply to them. You have to use masks like `@scope/*` to match scoped packages, or `**` to match everything.
- Enabled web interface by default. Wow, it looks almost ready now!
- All dependencies are bundled now, so uncompatible changes in 3rd party stuff in the future won't ruin the day.
## 1 Nov 2014, version 0.13.2
- fix `EPERM`-related crashes on windows (issue [#67](https://github.com/rlidwka/sinopia/issues/67))
## 22 Oct 2014, version 0.13.0
- web interface:
- web page layout improved (issue [#141](https://github.com/rlidwka/sinopia/pull/141))
- latest version is now displayed correctly (issues [#120](https://github.com/rlidwka/sinopia/issues/120), [#123](https://github.com/rlidwka/sinopia/issues/123), [#143](https://github.com/rlidwka/sinopia/pull/143))
- fixed web interface working behind reverse proxy (issues [#145](https://github.com/rlidwka/sinopia/issues/145), [#147](https://github.com/rlidwka/sinopia/issues/147))
## 2 Oct 2014, version 0.12.1
- web interface:
- update markdown CSS (issue [#137](https://github.com/rlidwka/sinopia/pull/137))
- jquery is now served locally (issue [#133](https://github.com/rlidwka/sinopia/pull/133))
- bugfixes:
- fix "offset out of bounds" issues (issue [sinopia-htpasswd/#2](https://github.com/rlidwka/sinopia-htpasswd/issues/2))
- "max_users" in htpasswd plugin now work correctly (issue [sinopia-htpasswd/#3](https://github.com/rlidwka/sinopia-htpasswd/issues/3))
- fix `ENOTDIR, open '.sinopia-db.json'` error in npm search (issue [#122](https://github.com/rlidwka/sinopia/issues/122))
## 25 Sep 2014, version 0.12.0
- set process title to `sinopia`
- web interface bugfixes:
- save README data for each package (issue [#100](https://github.com/rlidwka/sinopia/issues/100))
- fix crashes related to READMEs (issue [#128](https://github.com/rlidwka/sinopia/issues/128))
## 18 Sep 2014, version 0.11.3
- fix 500 error in adduser function in sinopia-htpasswd (issue [#121](https://github.com/rlidwka/sinopia/issues/121))
- fix fd leak in authenticate function in sinopia-htpasswd (issue [#116](https://github.com/rlidwka/sinopia/issues/116))
## 15 Sep 2014, version 0.11.1
- mark crypt3 as optional (issue [#119](https://github.com/rlidwka/sinopia/issues/119))
## 15 Sep 2014, version 0.11.0
- Added auth plugins (issue [#99](https://github.com/rlidwka/sinopia/pull/99))
Now you can create your own auth plugin based on [sinopia-htpasswd](https://github.com/rlidwka/sinopia-htpasswd) package.
- WIP: web interface (issue [#73](https://github.com/rlidwka/sinopia/pull/73))
It is disabled by default, and not ready for production yet. Use at your own risk. We will enable it in the next major release.
- Some modules are now bundled by default, so users won't have to install stuff from git. We'll see what issues it causes, maybe all modules will be bundled in the future like in npm.
## 14 Sep 2014, version 0.10.x
*A bunch of development releases that are broken in various ways. Please use 0.11.x instead.*
## 7 Sep 2014, version 0.9.3
- fix several bugs that could cause "can't set headers" exception
## 3 Sep 2014, version 0.9.2
- allow "pretty" format for logging into files (issue [#88](https://github.com/rlidwka/sinopia/pull/88))
- remove outdated user existence check (issue [#115](https://github.com/rlidwka/sinopia/pull/115))
## 11 Aug 2014, version 0.9.1
- filter falsey _npmUser values (issue [#95](https://github.com/rlidwka/sinopia/pull/95))
- option not to cache third-party files (issue [#85](https://github.com/rlidwka/sinopia/issues/85))
## 26 Jul 2014, version 0.9.0
- new features:
- add search functionality (issue [#65](https://github.com/rlidwka/sinopia/pull/65))
- allow users to authenticate using .htpasswd (issue [#44](https://github.com/rlidwka/sinopia/issues/44))
- allow user registration with "npm adduser" (issue [#44](https://github.com/rlidwka/sinopia/issues/44))
- bugfixes:
- avoid crashing when res.socket is null (issue [#89](https://github.com/rlidwka/sinopia/issues/89))
## 20 Jun 2014, version 0.8.2
- allow '@' in package/tarball names (issue [#75](https://github.com/rlidwka/sinopia/issues/75))
- other minor fixes (issues [#77](https://github.com/rlidwka/sinopia/issues/77), [#80](https://github.com/rlidwka/sinopia/issues/80))
## 14 Apr 2014, version 0.8.1
- "latest" tag is now always present in any package (issue [#63](https://github.com/rlidwka/sinopia/issues/63))
- tags created with new npm versions (>= 1.3.19) can now be published correctly
## 1 Apr 2014, version 0.8.0
- use gzip compression whenever possible (issue [#54](https://github.com/rlidwka/sinopia/issues/54))
- set `ignore_latest_tag` to false, it should now be more compatible with npm registry
- make `fs-ext` optional (issue [#61](https://github.com/rlidwka/sinopia/issues/61))
## 29 Mar 2014, version 0.7.1
- added `ignore_latest_tag` config param (issues [#55](https://github.com/rlidwka/sinopia/issues/55), [#59](https://github.com/rlidwka/sinopia/issues/59))
- reverted PR [#56](https://github.com/rlidwka/sinopia/issues/56) (see discussion in [#57](https://github.com/rlidwka/sinopia/issues/57))
## 13 Mar 2014, version 0.7.0
- config changes:
- breaking change: all time intervals are now specified in *seconds* instead of *milliseconds* for the sake of consistency. Change `timeout` if you have one!
- all time intervals now can be specified in [nginx notation](http://wiki.nginx.org/ConfigNotation), for example `1m 30s` will specify a 90 seconds timeout
- added `maxage` option to avoid asking public registry for the same data too often (issue [#47](https://github.com/rlidwka/sinopia/issues/47))
- added `max_fails` and `fail_timeout` options to reduce amount of requests to public registry when it's down (issue [#7](https://github.com/rlidwka/sinopia/issues/7))
- bug fixes:
- fix crash when headers are sent twice (issue [#52](https://github.com/rlidwka/sinopia/issues/52))
- all tarballs are returned with `Content-Length`, which allows [yapm](https://github.com/rlidwka/yapm) to estimate download time
- when connection to public registry is interrupted when downloading a tarball, we no longer save incomplete tarball to the disk
- other changes:
- 404 errors are returned in couchdb-like manner (issue [#56](https://github.com/rlidwka/sinopia/issues/56))
## 5 Mar 2014, version 0.6.7
- pin down express@3 version, since sinopia doesn't yet work with express@4
## 28 Feb 2014, version 0.6.5
- old SSL keys for npm are removed, solves `SELF_SIGNED_CERT_IN_CHAIN` error
## 3 Feb 2014, version 0.6.3
- validate tags and versions (issue [#40](https://github.com/rlidwka/sinopia/issues/40))
- don't crash when process.getuid doesn't exist (issue [#41](https://github.com/rlidwka/sinopia/issues/41))
## 18 Jan 2014, version 0.6.2
- adding config param to specify upload limits (issue [#39](https://github.com/rlidwka/sinopia/issues/39))
- making loose semver versions work (issue [#38](https://github.com/rlidwka/sinopia/issues/38))
## 13 Jan 2014, version 0.6.1
- support setting different storage paths for different packages (issue [#35](https://github.com/rlidwka/sinopia/issues/35))
## 30 Dec 2013, version 0.6.0
- tag support (issue [#8](https://github.com/rlidwka/sinopia/issues/8))
- adding support for npm 1.3.19+ behaviour (issue [#31](https://github.com/rlidwka/sinopia/issues/31))
- removing all support for proxying publish requests to uplink (too complex)
## 26 Dec 2013, version 0.5.9
- fixing bug with bad Accept header (issue [#32](https://github.com/rlidwka/sinopia/issues/32))
## 20 Dec 2013, version 0.5.8
- fixed a warning from js-yaml
- don't color multiline strings in logs output
- better error messages in various cases
- test format changed
## 15 Dec 2013, version 0.5.7
- try to fetch package from uplinks if user requested a tarball we don't know about (issue [#29](https://github.com/rlidwka/sinopia/issues/29))
- security fix: set express.js to production mode so we won't return stack traces to the user in case of errors
## 11 Dec 2013, version 0.5.6
- fixing a few crashes related to tags
## 8 Dec 2013, version 0.5.4
- latest tag always shows highest version available (issue [#8](https://github.com/rlidwka/sinopia/issues/8))
- added a configurable timeout for requests to uplinks (issue [#18](https://github.com/rlidwka/sinopia/issues/18))
- users with bad authentication header are considered not logged in (issue [#17](https://github.com/rlidwka/sinopia/issues/17))
## 24 Nov 2013, version 0.5.3
- added proxy support for requests to uplinks (issue [#13](https://github.com/rlidwka/sinopia/issues/13))
- changed license from default BSD to WTFPL
## 26 Oct 2013, version 0.5.2
- server now supports unpublishing local packages
- added fs-ext dependency (flock)
- fixed a few face conditions
## 20 Oct 2013, version 0.5.1
- fixed a few errors related to logging
## 12 Oct 2013, version 0.5.0
- using bunyan as a log engine
- pretty-formatting colored logs to stdout by default
- ask user before creating any config files
## 5 Oct 2013, version 0.4.3
- basic tags support for npm (read-only)
- npm star/unstar calls now return proper error
## 29 Sep 2013, version 0.4.2
## 28 Sep 2013, version 0.4.1
- using mocha for tests now
- making use of streams2 api, doesn't work on 0.8 anymore
- basic support for uploading packages to other registries
## 27 Sep 2013, version 0.4.0
- basic test suite
- storage path in config is now relative to config file location, not cwd
- proper cleanup for temporary files
## 12 Jul 2013, version 0.3.2
## 4 Jul 2013, version 0.3.1
- using ETag header for all json output, based on md5
## 20 Jun 2013, version 0.3.0
- compression for http responses
- requests for files to uplinks are now streams (no buffering)
- tarballs are now cached locally
## 19 Jun 2013, version 0.2.0
- config file changed, packages is now specified with minimatch
- ability to retrieve all packages from another registry (i.e. npmjs)
## 14 Jun 2013, version 0.1.1
- config is now autogenerated
- tarballs are now read/written from fs using streams (no buffering)
## 9 Jun 2013, version 0.1.0
- first npm version
- ability to publish packages and retrieve them locally
- basic authentication/access control
## 22 May 2013, version 0.0.0
- first commits

46
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at verdaccio.npm@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

234
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,234 @@
# Contributing to Verdaccio
We are happy you wish to contribute this project, for that reason we want to board you with this guide.
## How I contribute?
### Ways to contribute
There are many ways to contribute to the Verdaccio Project. Heres a list of technical contributions with increasing levels of involvement and required knowledge of Verdaccio's code and operations.
* [Reporting a Bug](CONTRIBUTING.md#reporting-a-bug)
* [Request Features](CONTRIBUTING.md#request-features)
* [Plugins](CONTRIBUTING.md#plugins)
* [Improve the Documentation](wiki/README.md)
Please read carefully this document. It will guide you to provide maintainers and readers valuable information to boots the process solve the issue or evaluate your proposal.
## Reporting a Bug
We welcome clear bug reports. If you've found a bug in Verdaccio that isn't a security risk, please file a report in our [issue tracker](https://github.com/verdaccio/verdaccio/issues). Before you file your issue, search to see if it has already been reported. If so, up-vote (using GitHub reactions) or add additional helpful details to the existing issue to show that it's affecting multiple people.
### Check if there's a simple solution in the wiki.
Some of the most popular topics can be found in our [wiki](https://github.com/verdaccio/verdaccio/wiki), that would be the first place to look at the topic you are interested.
### Questions & Chat
We have tagged questions for easy follow up under the tag [questions](https://github.com/verdaccio/verdaccio/labels/question). Additionaly, I'd recommend to deliver questions in the new chat as **#questions/#development** channels at [gitter](https://gitter.im/verdaccio/).
### Look at the past
* Verdaccio is a fork of `sinopia@1.4.0`, thereforce, there is a huge [database of tickets](https://github.com/rlidwka/sinopia/issues) in the original projet. It's a good place to find answers.
* Questions under the tag of [sinopia](http://stackoverflow.com/questions/tagged/sinopia) or [verdaccio](http://stackoverflow.com/search?q=verdaccio) at Stackoverflow might be helpful.
### Using the issue tracker
The issue tracker is a channel were mostly users/developers post.
#### I want to report a bug
We considere a bug a feature that is not working as is described in the documentation. Before reporting a bug follow the next steps:
1. Use the GitHub issue search — check if the issue has already been reported.
2. Check if the issue has been fixed — try to reproduce it using the latest master or development branch in the repository.
Verdaccio still does not support all npm commands due either in the initial design were not considered important or nobody has request it yet.
## Request Features
A new feature is always welcome, thus, analyse whether your idea fits in the scope of the project and elaborate your request providing enough context, for instance:
* A wide description the advantages of your request.
* It's compatible with `npm` and `yarn`?
* You might implement your feature and provide a forked repository as example.
* Whatever you have on mind 🤓.
### Submitting a Pull Request
The following are the general steps you should follow in creating a pull request. Subsequent pull requests only need
to follow step 3 and beyond:
1. Fork the repository on GitHub
2. Clone the forked repository to your machine
3. Create a "feature" branch in your local repository
4. Make your changes and commit them to your local repository
5. Rebase and push your commits to your GitHub remote fork/repository
6. Issue a Pull Request to the official repository
7. Your Pull Request is reviewed by a committer and merged into the repository
*Note*: While there are other ways to accomplish the steps using other tools, the examples here will assume the most
actions will be performed via the `git` command line.
### 1. Fork the Repository
When logged in to your GitHub account, and you are viewing one of the main repositories, you will see the *Fork* button.
Clicking this button will show you which repositories you can fork to. Choose your own account. Once the process
finishes, you will have your own repository that is "forked" from the official one.
Forking is a GitHub term and not a git term. Git is a wholly distributed source control system and simply worries
about local and remote repositories and allows you to manage your code against them. GitHub then adds this additional
layer of structure of how repositories can relate to each other.
### 2. Clone the Forked Repository
Once you have successfully forked your repository, you will need to clone it locally to your machine:
```bash
$ git clone --recursive git@github.com:username/verdaccio.git verdaccio
```
This will clone your fork to your current path in a directory named `verdaccio`.
You should also set up the `upstream` repository. This will allow you to take changes from the "master" repository
and merge them into your local clone and then push them to your GitHub fork:
```bash
$ cd verdaccio
$ git remote add upstream git@github.com:verdaccio/verdaccio.git
$ git fetch upstream
```
Then you can retrieve upstream changes and rebase on them into your code like this:
```bash
$ git pull --rebase upstream master
```
For more information on maintaining a fork, please see the GitHub Help article [Fork a Repo](https://help.github.com/articles/fork-a-repo/) and information on
[rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) from git.
### 3. Create a Branch
The easiest workflow is to keep your master branch in sync with the upstream branch and do not locate any of your own
commits in that branch. When you want to work on a new feature, you then ensure you are on the master branch and create
a new branch from there. While the name of the branch can be anything, it can often be easy to use the issue number
you might be working on (if an issue was opened prior to opening a pull request). For example:
```bash
$ git checkout -b issue-12345 master
Switched to a new branch 'issue-12345'
```
You will then be on the feature branch. You can verify what branch you are on like this:
```bash
$ git status
# On branch issue-12345
nothing to commit, working directory clean
```
### 4. Make Changes and Commit
#### Before commit
At this point you have ready your changes, your new feature it's ready to be shipped, but, to avoid delays to merge, please be aware the build must past.
Before commit, run the test command:
```bash
npm test
```
It won't have **eslint** errors and **all test must past**. Then, and only then, you should push and ship your **PR**.
*At the moment of this writing, there are plenty of warning to clean, but please warnings are not fails, but try to don't commit code with warnings*
#### After testing your changes
Now you just need to make your changes. Once you have finished your changes (and tested them) you need to commit them
to your local repository (assuming you have staged your changes for committing):
```bash
$ git status
# On branch issue-12345
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: somefile.js
#
$ git commit -m "fix: correct some defect, fixes #12345, refs #12346"
[t12345 0000000] fix: correct some defect, fixes #12345, refs #12346
1 file changed, 2 insertions(+), 2 deletions(-)
```
#### Git Commit Guidelines
We follow the [conventional commit messages](https://conventionalcommits.org/) convention in order to automate Changelog generation and auto semantic versioning based on commit messages.
* feat: A new feature
* fix: A bug fix
A commit of the type feat introduces a new feature to the codebase (this correlates with MINOR in semantic versioning).
eg:
```
feat: xxxxxxxxxx
````
A commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
eg:
```
fix: xxxxxxxxxx
````
Commits types as `docs:`,`style:`,`refactor:`,`perf:`,`test:` and `chore:` are valid but has no effect on versioning, but, it would be great if you use them.
Use `npm run commitmsg` to check your commit message.
### 5. Rebase and Push Changes
If you have been working on your contribution for a while, the upstream repository may have changed. You may want to
ensure your work is on top of the latest changes so your pull request can be applied cleanly:
```bash
$ git pull --rebase upstream master
```
When you are ready to push your commit to your GitHub repository for the first time on this branch you would do the
following:
```bash
$ git push -u origin issue-12345
```
After the first time, you simply need to do:
```bash
$ git push
```
### 6. Issue a Pull Request
In order to have your commits merged into the main repository, you need to create a pull request. The instructions for
this can be found in the GitHub Help Article [Creating a Pull Request](https://help.github.com/articles/creating-a-pull-request/). Essentially you do the following:
1. Go to the site for your repository.
2. Click the Pull Request button.
3. Select the feature branch from your repository.
4. Enter a title and description of your pull request in the description.
5. Review the commit and files changed tabs.
6. Click `Send Pull Request`
You will get notified about the status of your pull request based on your GitHub settings.
## Plugins
Plugins are Add-ons that extend the functionality of the application. Whether you want develop your own plugin I'd suggest do the following:
1. Check whether there is a legacy sinopia plugin for the feature that you need at [npmjs](https://www.npmjs.com/search?q=sinopia).
2. There is a [life-cycle to load a plugin](https://github.com/verdaccio/verdaccio/blob/master/lib/plugin-loader.js#L22) you should keep on mind.
3. You are free to host your plugin in your repository, whether you want to host within in our organization, feel free to ask, we'll happy to host it.
4. Try a describe widely your plugin to provide a deeply understanding to your users.

50
Dockerfile Normal file
View File

@@ -0,0 +1,50 @@
FROM node:9.5.0-alpine@sha256:bda0e2513f077b9b3898c504f5ef5c2b4357f631cc05c5882d5935496a01df2a
LABEL maintainer="https://github.com/verdaccio/verdaccio"
RUN apk --no-cache add openssl && \
wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.0/dumb-init_1.2.0_amd64 && \
chmod +x /usr/local/bin/dumb-init && \
apk del openssl && \
apk --no-cache add ca-certificates wget && \
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://raw.githubusercontent.com/sgerrand/alpine-pkg-glibc/master/sgerrand.rsa.pub && \
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \
apk add glibc-2.25-r0.apk
ENV APPDIR /usr/local/app
WORKDIR $APPDIR
ADD . $APPDIR
ENV NODE_ENV=production
RUN npm config set registry http://registry.npmjs.org/ && \
yarn global add -s flow-bin@0.52.0 && \
yarn install --production=false && \
yarn run lint && \
yarn run code:build && \
yarn run build:webui && \
yarn run test:unit -- --silent true --coverage false --bail && \
yarn cache clean && \
yarn install --production=true --pure-lockfile
RUN mkdir -p /verdaccio/storage /verdaccio/conf
ADD conf/docker.yaml /verdaccio/conf/config.yaml
RUN addgroup -S verdaccio && adduser -S -G verdaccio verdaccio && \
chown -R verdaccio:verdaccio "$APPDIR" && \
chown -R verdaccio:verdaccio /verdaccio
USER verdaccio
ENV PORT 4873
ENV PROTOCOL http
EXPOSE $PORT
VOLUME ["/verdaccio"]
ENTRYPOINT ["/usr/local/bin/dumb-init", "--"]
CMD $APPDIR/bin/verdaccio --config /verdaccio/conf/config.yaml --listen $PROTOCOL://0.0.0.0:${PORT}

13
Dockerfile.rpi Normal file
View File

@@ -0,0 +1,13 @@
FROM hypriot/rpi-node:6-onbuild
RUN mkdir -p /verdaccio/storage /verdaccio/conf
WORKDIR /verdaccio
ADD conf/docker.yaml /verdaccio/conf/config.yaml
EXPOSE 4873
VOLUME ["/verdaccio/conf", "/verdaccio/storage"]
CMD ["/usr/src/app/bin/verdaccio", "--config", "/verdaccio/conf/config.yaml", "--listen", "0.0.0.0:4873"]

View File

@@ -1,179 +0,0 @@
11 Aug 2014, version 0.9.1
- filter falsey _npmUser values (issue [#95](https://github.com/rlidwka/sinopia/pull/95))
- option not to cache third-party files (issue [#85](https://github.com/rlidwka/sinopia/issues/85))
26 Jul 2014, version 0.9.0
- new features:
- add search functionality (issue [#65](https://github.com/rlidwka/sinopia/pull/65))
- allow users to authenticate using .htpasswd (issue [#44](https://github.com/rlidwka/sinopia/issues/44))
- allow user registration with "npm adduser" (issue [#44](https://github.com/rlidwka/sinopia/issues/44))
- bugfixes:
- avoid crashing when res.socket is null (issue [#89](https://github.com/rlidwka/sinopia/issues/89))
20 Jun 2014, version 0.8.2
- allow '@' in package/tarball names (issue [#75](https://github.com/rlidwka/sinopia/issues/75))
- other minor fixes (issues [#77](https://github.com/rlidwka/sinopia/issues/77), [#80](https://github.com/rlidwka/sinopia/issues/80))
14 Apr 2014, version 0.8.1
- "latest" tag is now always present in any package (issue [#63](https://github.com/rlidwka/sinopia/issues/63))
- tags created with new npm versions (>= 1.3.19) can now be published correctly
1 Apr 2014, version 0.8.0
- use gzip compression whenever possible (issue [#54](https://github.com/rlidwka/sinopia/issues/54))
- set `ignore_latest_tag` to false, it should now be more compatible with npm registry
- make `fs-ext` optional (issue [#61](https://github.com/rlidwka/sinopia/issues/61))
29 Mar 2014, version 0.7.1
- added `ignore_latest_tag` config param (issues [#55](https://github.com/rlidwka/sinopia/issues/55), [#59](https://github.com/rlidwka/sinopia/issues/59))
- reverted PR [#56](https://github.com/rlidwka/sinopia/issues/56) (see discussion in [#57](https://github.com/rlidwka/sinopia/issues/57))
13 Mar 2014, version 0.7.0
- config changes:
- breaking change: all time intervals are now specified in *seconds* instead of *milliseconds* for the sake of consistency. Change `timeout` if you have one!
- all time intervals now can be specified in [nginx notation](http://wiki.nginx.org/ConfigNotation), for example `1m 30s` will specify a 90 seconds timeout
- added `maxage` option to avoid asking public registry for the same data too often (issue [#47](https://github.com/rlidwka/sinopia/issues/47))
- added `max_fails` and `fail_timeout` options to reduce amount of requests to public registry when it's down (issue [#7](https://github.com/rlidwka/sinopia/issues/7))
- bug fixes:
- fix crash when headers are sent twice (issue [#52](https://github.com/rlidwka/sinopia/issues/52))
- all tarballs are returned with `Content-Length`, which allows [yapm](https://github.com/rlidwka/yapm) to estimate download time
- when connection to public registry is interrupted when downloading a tarball, we no longer save incomplete tarball to the disk
- other changes:
- 404 errors are returned in couchdb-like manner (issue [#56](https://github.com/rlidwka/sinopia/issues/56))
5 Mar 2014, version 0.6.7
- pin down express@3 version, since sinopia doesn't yet work with express@4
28 Feb 2014, version 0.6.5
- old SSL keys for npm are removed, solves `SELF_SIGNED_CERT_IN_CHAIN` error
3 Feb 2014, version 0.6.3
- validate tags and versions (issue [#40](https://github.com/rlidwka/sinopia/issues/40))
- don't crash when process.getuid doesn't exist (issue [#41](https://github.com/rlidwka/sinopia/issues/41))
18 Jan 2014, version 0.6.2
- adding config param to specify upload limits (issue [#39](https://github.com/rlidwka/sinopia/issues/39))
- making loose semver versions work (issue [#38](https://github.com/rlidwka/sinopia/issues/38))
13 Jan 2014, version 0.6.1
- support setting different storage paths for different packages (issue [#35](https://github.com/rlidwka/sinopia/issues/35))
30 Dec 2013, version 0.6.0
- tag support (issue [#8](https://github.com/rlidwka/sinopia/issues/8))
- adding support for npm 1.3.19+ behaviour (issue [#31](https://github.com/rlidwka/sinopia/issues/31))
- removing all support for proxying publish requests to uplink (too complex)
26 Dec 2013, version 0.5.9
- fixing bug with bad Accept header (issue [#32](https://github.com/rlidwka/sinopia/issues/32))
20 Dec 2013, version 0.5.8
- fixed a warning from js-yaml
- don't color multiline strings in logs output
- better error messages in various cases
- test format changed
15 Dec 2013, version 0.5.7
- try to fetch package from uplinks if user requested a tarball we don't know about (issue [#29](https://github.com/rlidwka/sinopia/issues/29))
- security fix: set express.js to production mode so we won't return stack traces to the user in case of errors
11 Dec 2013, version 0.5.6
- fixing a few crashes related to tags
8 Dec 2013, version 0.5.4
- latest tag always shows highest version available (issue [#8](https://github.com/rlidwka/sinopia/issues/8))
- added a configurable timeout for requests to uplinks (issue [#18](https://github.com/rlidwka/sinopia/issues/18))
- users with bad authentication header are considered not logged in (issue [#17](https://github.com/rlidwka/sinopia/issues/17))
24 Nov 2013, version 0.5.3
- added proxy support for requests to uplinks (issue [#13](https://github.com/rlidwka/sinopia/issues/13))
- changed license from default BSD to WTFPL
26 Oct 2013, version 0.5.2
- server now supports unpublishing local packages
- added fs-ext dependency (flock)
- fixed a few face conditions
20 Oct 2013, version 0.5.1
- fixed a few errors related to logging
12 Oct 2013, version 0.5.0
- using bunyan as a log engine
- pretty-formatting colored logs to stdout by default
- ask user before creating any config files
5 Oct 2013, version 0.4.3
- basic tags support for npm (read-only)
- npm star/unstar calls now return proper error
29 Sep 2013, version 0.4.2
28 Sep 2013, version 0.4.1
- using mocha for tests now
- making use of streams2 api, doesn't work on 0.8 anymore
- basic support for uploading packages to other registries
27 Sep 2013, version 0.4.0
- basic test suite
- storage path in config is now relative to config file location, not cwd
- proper cleanup for temporary files
12 Jul 2013, version 0.3.2
4 Jul 2013, version 0.3.1
- using ETag header for all json output, based on md5
20 Jun 2013, version 0.3.0
- compression for http responses
- requests for files to uplinks are now streams (no buffering)
- tarballs are now cached locally
19 Jun 2013, version 0.2.0
- config file changed, packages is now specified with minimatch
- ability to retrieve all packages from another registry (i.e. npmjs)
14 Jun 2013, version 0.1.1
- config is now autogenerated
- tarballs are now read/written from fs using streams (no buffering)
9 Jun 2013, version 0.1.0
- first npm version
- ability to publish packages and retrieve them locally
- basic authentication/access control
22 May 2013, version 0.0.0
- first commits

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018 Verdaccio community
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

384
LICENSE-docs Normal file
View File

@@ -0,0 +1,384 @@
Attribution 4.0 International
=======================================================================
Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are
intended for use by those authorized to give the public
permission to use material in ways otherwise restricted by
copyright and certain other rights. Our licenses are
irrevocable. Licensors should read and understand the terms
and conditions of the license they choose before applying it.
Licensors should also secure all rights necessary before
applying our licenses so that the public can reuse the
material as expected. Licensors should clearly mark any
material not subject to the license. This includes other CC-
licensed material, or material used under an exception or
limitation to copyright. More considerations for licensors:
wiki.creativecommons.org/Considerations_for_licensors
Considerations for the public: By using one of our public
licenses, a licensor grants the public permission to use the
licensed material under specified terms and conditions. If
the licensor's permission is not necessary for any reason--for
example, because of any applicable exception or limitation to
copyright--then that use is not regulated by the license. Our
licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of
the licensed material may still be restricted for other
reasons, including because others have copyright or other
rights in the material. A licensor may make special requests,
such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to
respect those requests where reasonable. More_considerations
for the public:
wiki.creativecommons.org/Considerations_for_licensees
=======================================================================
Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution 4.0 International Public License ("Public License"). To the
extent this Public License may be interpreted as a contract, You are
granted the Licensed Rights in consideration of Your acceptance of
these terms and conditions, and the Licensor grants You such rights in
consideration of benefits the Licensor receives from making the
Licensed Material available under these terms and conditions.
Section 1 -- Definitions.
a. Adapted Material means material subject to Copyright and Similar
Rights that is derived from or based upon the Licensed Material
and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring
permission under the Copyright and Similar Rights held by the
Licensor. For purposes of this Public License, where the Licensed
Material is a musical work, performance, or sound recording,
Adapted Material is always produced where the Licensed Material is
synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright
and Similar Rights in Your contributions to Adapted Material in
accordance with the terms and conditions of this Public License.
c. Copyright and Similar Rights means copyright and/or similar rights
closely related to copyright including, without limitation,
performance, broadcast, sound recording, and Sui Generis Database
Rights, without regard to how the rights are labeled or
categorized. For purposes of this Public License, the rights
specified in Section 2(b)(1)-(2) are not Copyright and Similar
Rights.
d. Effective Technological Measures means those measures that, in the
absence of proper authority, may not be circumvented under laws
fulfilling obligations under Article 11 of the WIPO Copyright
Treaty adopted on December 20, 1996, and/or similar international
agreements.
e. Exceptions and Limitations means fair use, fair dealing, and/or
any other exception or limitation to Copyright and Similar Rights
that applies to Your use of the Licensed Material.
f. Licensed Material means the artistic or literary work, database,
or other material to which the Licensor applied this Public
License.
g. Licensed Rights means the rights granted to You subject to the
terms and conditions of this Public License, which are limited to
all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
h. Licensor means the individual(s) or entity(ies) granting rights
under this Public License.
i. Share means to provide material to the public by any means or
process that requires permission under the Licensed Rights, such
as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material
available to the public including in ways that members of the
public may access the material from a place and at a time
individually chosen by them.
j. Sui Generis Database Rights means rights other than copyright
resulting from Directive 96/9/EC of the European Parliament and of
the Council of 11 March 1996 on the legal protection of databases,
as amended and/or succeeded, as well as other essentially
equivalent rights anywhere in the world.
k. You means the individual or entity exercising the Licensed Rights
under this Public License. Your has a corresponding meaning.
Section 2 -- Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License,
the Licensor hereby grants You a worldwide, royalty-free,
non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
a. reproduce and Share the Licensed Material, in whole or
in part; and
b. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where
Exceptions and Limitations apply to Your use, this Public
License does not apply, and You do not need to comply with
its terms and conditions.
3. Term. The term of this Public License is specified in Section
6(a).
4. Media and formats; technical modifications allowed. The
Licensor authorizes You to exercise the Licensed Rights in
all media and formats whether now known or hereafter created,
and to make technical modifications necessary to do so. The
Licensor waives and/or agrees not to assert any right or
authority to forbid You from making technical modifications
necessary to exercise the Licensed Rights, including
technical modifications necessary to circumvent Effective
Technological Measures. For purposes of this Public License,
simply making modifications authorized by this Section 2(a)
(4) never produces Adapted Material.
5. Downstream recipients.
a. Offer from the Licensor -- Licensed Material. Every
recipient of the Licensed Material automatically
receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this
Public License.
b. No downstream restrictions. You may not offer or impose
any additional or different terms or conditions on, or
apply any Effective Technological Measures to, the
Licensed Material if doing so restricts exercise of the
Licensed Rights by any recipient of the Licensed
Material.
6. No endorsement. Nothing in this Public License constitutes or
may be construed as permission to assert or imply that You
are, or that Your use of the Licensed Material is, connected
with, or sponsored, endorsed, or granted official status by,
the Licensor or others designated to receive attribution as
provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not
licensed under this Public License, nor are publicity,
privacy, and/or other similar personality rights; however, to
the extent possible, the Licensor waives and/or agrees not to
assert any such rights held by the Licensor to the limited
extent necessary to allow You to exercise the Licensed
Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this
Public License.
3. To the extent possible, the Licensor waives any right to
collect royalties from You for the exercise of the Licensed
Rights, whether directly or through a collecting society
under any voluntary or waivable statutory or compulsory
licensing scheme. In all other cases the Licensor expressly
reserves any right to collect such royalties.
Section 3 -- License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the
following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified
form), You must:
a. retain the following if it is supplied by the Licensor
with the Licensed Material:
i. identification of the creator(s) of the Licensed
Material and any others designated to receive
attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if
designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of
warranties;
v. a URI or hyperlink to the Licensed Material to the
extent reasonably practicable;
b. indicate if You modified the Licensed Material and
retain an indication of any previous modifications; and
c. indicate the Licensed Material is licensed under this
Public License, and include the text of, or the URI or
hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any
reasonable manner based on the medium, means, and context in
which You Share the Licensed Material. For example, it may be
reasonable to satisfy the conditions by providing a URI or
hyperlink to a resource that includes the required
information.
3. If requested by the Licensor, You must remove any of the
information required by Section 3(a)(1)(A) to the extent
reasonably practicable.
4. If You Share Adapted Material You produce, the Adapter's
License You apply must not prevent recipients of the Adapted
Material from complying with this Public License.
Section 4 -- Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
to extract, reuse, reproduce, and Share all or a substantial
portion of the contents of the database;
b. if You include all or a substantial portion of the database
contents in a database in which You have Sui Generis Database
Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share
all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
c. The disclaimer of warranties and limitation of liability provided
above shall be interpreted in a manner that, to the extent
possible, most closely approximates an absolute disclaimer and
waiver of all liability.
Section 6 -- Term and Termination.
a. This Public License applies for the term of the Copyright and
Similar Rights licensed here. However, if You fail to comply with
this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under
Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided
it is cured within 30 days of Your discovery of the
violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any
right the Licensor may have to seek remedies for Your violations
of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the
Licensed Material under separate terms or conditions or stop
distributing the Licensed Material at any time; however, doing so
will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
License.
Section 7 -- Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different
terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the
Licensed Material not stated herein are separate from and
independent of the terms and conditions of this Public License.
Section 8 -- Interpretation.
a. For the avoidance of doubt, this Public License does not, and
shall not be interpreted to, reduce, limit, restrict, or impose
conditions on any use of the Licensed Material that could lawfully
be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is
deemed unenforceable, it shall be automatically reformed to the
minimum extent necessary to make it enforceable. If the provision
cannot be reformed, it shall be severed from this Public License
without affecting the enforceability of the remaining terms and
conditions.
c. No term or condition of this Public License will be waived and no
failure to comply consented to unless expressly agreed to by the
Licensor.
d. Nothing in this Public License constitutes or may be interpreted
as a limitation upon, or waiver of, any privileges and immunities
that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
=======================================================================
Creative Commons is not a party to its public licenses.
Notwithstanding, Creative Commons may elect to apply one of its public
licenses to material it publishes and in those instances will be
considered the "Licensor." Except for the limited purpose of indicating
that material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the public
licenses.
Creative Commons may be contacted at creativecommons.org.

195
README.md
View File

@@ -1,143 +1,180 @@
Sinopia is a private/caching npm repository server.
<p align="center"><img src="https://github.com/verdaccio/verdaccio/raw/master/assets/bitmap/verdaccio%402x.png"></p>
It allows you to have a local npm registry with zero configuration. You don't have to install and replicate an entire CouchDB database. Sinopia keeps its own small database and, if a package doesn't exist there, it asks npmjs.org for it keeping only those packages you use.
### A lightweight private npm proxy registry
<p align="center"><img src="https://f.cloud.github.com/assets/999113/1795553/680177b2-6a1d-11e3-82e1-02193aa4e32e.png"></p>
## Use cases
1. Use private packages.
`verdaccio` is a fork of `sinopia`. It aims to keep backwards compatibility with `sinopia`, while keeping up with npm changes.
[![CircleCI](https://circleci.com/gh/verdaccio/verdaccio/tree/master.svg?style=svg)](https://circleci.com/gh/verdaccio/verdaccio/tree/master)
[![npm version badge](https://img.shields.io/npm/v/verdaccio.svg)](https://www.npmjs.org/package/verdaccio)
[![downloads badge](http://img.shields.io/npm/dm/verdaccio.svg)](https://www.npmjs.org/package/verdaccio)
[![Gitter chat](https://badges.gitter.im/verdaccio/questions.png)](https://gitter.im/verdaccio/)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/verdaccio/localized.svg)](https://crowdin.com/project/verdaccio)
[![dependencies Status](https://david-dm.org/verdaccio/verdaccio/status.svg)](https://david-dm.org/verdaccio/verdaccio)
[![Known Vulnerabilities](https://snyk.io/test/github/verdaccio/verdaccio/badge.svg?targetFile=package.json)](https://snyk.io/test/github/verdaccio/verdaccio?targetFile=package.json)
[![codecov](https://codecov.io/gh/verdaccio/verdaccio/branch/master/graph/badge.svg)](https://codecov.io/gh/verdaccio/verdaccio)
<p align="center"><img src="https://firebasestorage.googleapis.com/v0/b/jotadeveloper-website.appspot.com/o/verdaccio_long_video2.gif?alt=media&token=4d20cad1-f700-4803-be14-4b641c651b41"></p>
It allows you to have a **local npm private registry with zero configuration**. You don't have to install and replicate an entire database. Verdaccio keeps its own small database and, if a package doesn't exist there, **it asks any other registry** (npmjs.org) for it keeping only those packages you use.
## Quick Links
* [Documentation](http://www.verdaccio.org/docs/en/installation.html)
* [Chat](https://gitter.im/verdaccio/questions)
* [Roadmap](https://github.com/verdaccio/verdaccio/wiki)
## Introduction
### Use private packages
If you want to use all benefits of npm package system in your company without sending all code to the public, and use your private packages just as easy as public ones.
See [using private packages](#using-private-packages) section for details.
2. Cache npmjs.org registry.
### Cache npmjs.org registry
If you have more than one server you want to install packages on, you might want to use this to decrease latency
(presumably "slow" npmjs.org will be connected to only once per package/version) and provide limited failover (if npmjs.org is down, we might still find something useful in the cache).
(presumably "slow" npmjs.org will be connected to only once per package/version) and provide limited failover (if npmjs.org is down, we might still find something useful in the cache) or avoid issues like *[How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/)*.
See [using public packages](#using-public-packages-from-npmjsorg) section for details.
3. Override public packages.
### Override public packages
If you want to use a modified version of some 3rd-party package (for example, you found a bug, but maintainer didn't accepted pull request yet), you can publish your version locally under the same name.
If you want to use a modified version of some 3rd-party package (for example, you found a bug, but maintainer didn't accept pull request yet), you can publish your version locally under the same name.
See [override public packages](#override-public-packages) section for details.
See in detail each of these [use cases](https://github.com/verdaccio/verdaccio/tree/master/docs/use-cases.md).
## Installation
## Get Started
Installation and starting (application will create default config in config.yaml you can edit later)
```bash
# installation and starting (application will create default
# config in config.yaml you can edit later)
$ npm install -g sinopia
$ sinopia
npm install --global verdaccio
```
# npm configuration
Run in your terminal
```bash
verdaccio
```
You would need set some npm configuration, this is optional.
```bash
$ npm set registry http://localhost:4873/
# if you have any restricted packages, you should add this:
$ npm set always-auth true
# if you use HTTPS, add an appropriate CA information
# ("null" means get CA list from OS)
$ npm set ca null
```
### Docker
Now you can navigate to [http://localhost:4873/](http://localhost:4873/) where your local packages will be listed and can be searched.
A Sinopia docker image [is available](https://registry.hub.docker.com/u/keyvanfatehi/sinopia/)
> Warning: Verdaccio does not currently support PM2's cluster mode, running it with cluster mode may cause unknown behavior.
### Chef
#### Alpha
A Sinopia Chef cookbook [is available at Opscode community](http://community.opscode.com/cookbooks/sinopia) source: https://github.com/BarthV/sinopia-cookbook
⚠️⚠️ **Please, help us to test the version 3.x in order to release a stable version soon. Do never test with your original storage folder, do always a backup** ⚠️⚠️
### Puppet
If you are an adventurous developer you can use and install the latest beta version, this is a non stable version, I'd recommend only use for testing purporses.
A Sinopia puppet module [is available at puppet forge](http://forge.puppetlabs.com/saheba/sinopia) source: https://github.com/saheba/puppet-sinopia
## Configuration
When you start a server, it auto-creates a config file that adds one user (password is printed to stdout only once).
## Adding a new user
There is no utility to add a new user but you can at least use node on the command-line to generate a password. You will need to edit the config and add the user manually.
Start node and enter the following code replacing 'newpass' with the password you want to get the hash for.
```bash
$ node
> crypto.createHash('sha1').update('newpass').digest('hex')
'6c55803d6f1d7a177a0db3eb4b343b0d50f9c111'
> [CTRL-D]
$ npm install -g verdaccio@alpha
```
or using docker
```bash
$ docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio:alpha
```
## Publishing Private Packages
## Using private packages
#### Create an user and log in
You can add users and manage which users can access which packages.
```bash
npm adduser --registry http://localhost:4873
```
It is recommended that you define a prefix for your private packages, for example "local", so all your private things will look like this: `local-foo`. This way you can clearly separate public packages from private ones.
#### Publish your package
## Using public packages from npmjs.org
```bash
npm publish --registry http://localhost:4873
```
If some package doesn't exist in the storage, server will try to fetch it from npmjs.org. If npmjs.org is down, it serves packages from cache pretending that no other packages exist. Sinopia will download only what's needed (= requested by clients), and this information will be cached, so if client will ask the same thing second time, it can be served without asking npmjs.org for it.
This will prompt you for user credentials which will be saved on the `verdaccio` server.
Example: if you successfully request express@3.0.1 from this server once, you'll able to do that again (with all it's dependencies) anytime even if npmjs.org is down. But say express@3.0.0 will not be downloaded until it's actually needed by somebody. And if npmjs.org is offline, this server would say that only express@3.0.1 (= only what's in the cache) is published, but nothing else.
## Docker
## Override public packages
Below are the most commony needed informations,
every aspect of Docker and verdaccio is [documented separately](http://www.verdaccio.org/docs/en/docker.html)
If you want to use a modified version of some public package `foo`, you can just publish it to your local server, so when your type `npm install foo`, it'll consider installing your version.
### Prebuilt images
There's two options here:
To pull the latest pre-built [docker image](https://hub.docker.com/r/verdaccio/verdaccio/):
1. You want to create a separate fork and stop synchronizing with public version.
```bash
docker pull verdaccio/verdaccio
```
If you want to do that, you should modify your configuration file so sinopia won't make requests regarding this package to npmjs anymore. Add a separate entry for this package to *config.yaml* and remove `npmjs` from `proxy_access` list and restart the server.
Since version 2 images for every version are available as [tags](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
When you publish your package locally, you should probably start with version string higher than existing one, so it won't conflict with existing package in the cache.
### Running verdaccio using Docker
2. You want to temporarily use your version, but return to public one as soon as it's updated.
To run the docker container:
In order to avoid version conflicts, you should use a custom pre-release suffix of the next patch version. For example, if a public package has version 0.1.2, you can upload 0.1.3-my-temp-fix. This way your package will be used until its original maintainer updates his public package to 0.1.3.
```bash
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
```
### Using docker-compose
1. Get the latest version of [docker-compose](https://github.com/docker/compose).
2. Build and run the container:
```bash
$ docker-compose up --build
```
Docker examples are available [in this repository](https://github.com/verdaccio/docker-examples).
## Compatibility
Sinopia aims to support all features of a standard npm client that make sense to support in private repository. Unfortunately, it isn't always possible.
Verdaccio aims to support all features of a standard npm client that make sense to support in private repository. Unfortunately, it isn't always possible.
Basic features:
### Basic features
- Installing packages (npm install, npm upgrade, etc.) - supported
- Publishing packages (npm publish) - supported
- Installing packages (npm install, npm upgrade, etc.) - **supported**
- Publishing packages (npm publish) - **supported**
Advanced package control:
### Advanced package control
- Unpublishing packages (npm unpublish) - not yet supported, should be soon
- Tagging (npm tag) - not yet supported, should be soon
- Unpublishing packages (npm unpublish) - **supported**
- Tagging (npm tag) - **supported**
- Deprecation (npm deprecate) - not supported
User management:
### User management
- Registering new users (npm adduser {newuser}) - not supported, sinopia uses its own acl management system
- Transferring ownership (npm owner add {user} {pkg}) - not supported, sinopia uses its own acl management system
- Registering new users (npm adduser {newuser}) - **supported**
- Transferring ownership (npm owner add {user} {pkg}) - not supported, verdaccio uses its own acl management system
Misc stuff:
### Misc stuff
- Searching (npm search) - not supported
- Searching (npm search) - **supported** (cli / browser)
- Starring (npm star, npm unstar) - not supported, doesn't make sense in private registry
- Ping (npm ping) - **supported**
## Storage
## FAQ / Contact / Troubleshoot
No CouchDB here. This application is supposed to work with zero configuration, so filesystem is used as a storage.
If you have any issue you can try the following options, do no desist to ask or check our issues database, perhaps someone has asked already what you are looking for.
If you want to use a database instead, ask for it, we'll come up with some kind of a plugin system.
* [Roadmap](https://github.com/verdaccio/verdaccio/wiki)
* [Most common questions](https://github.com/verdaccio/verdaccio/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20)
* [Reporting a bug](https://github.com/verdaccio/verdaccio/blob/master/CONTRIBUTING.md#reporting-a-bug)
* [Running discussions](https://github.com/verdaccio/verdaccio/issues?q=is%3Aissue+is%3Aopen+label%3Adiscuss)
* [Chat Room](https://gitter.im/verdaccio/)
* [Logos](https://github.com/verdaccio/verdaccio/tree/master/assets)
## Similar existing things
## License
Verdaccio is [MIT licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE).
- npm + git (I mean, using git+ssh:// dependencies) - most people seem to use this, but it's a terrible idea... *npm update* doesn't work, can't use git subdirectories this way, etc.
- [reggie](https://github.com/mbrevoort/node-reggie) - this looks very interesting indeed... I might borrow some code there.
- [shadow-npm](https://github.com/dominictarr/shadow-npm), [public service](http://shadow-npm.net/) - it uses the same code as npmjs.org + service is dead
- [gemfury](http://www.gemfury.com/l/npm-registry) and others - those are closed-source cloud services, and I'm not in a mood to trust my private code to somebody (security through obscurity yeah!)
- npm-registry-proxy, npm-delegate, npm-proxy - those are just proxies...
- Is there something else?
The Verdaccio documentation and logos (e.g., .md, .png, .sketch) files in the /wiki and /assets folder) is [Creative Commons licensed](https://github.com/verdaccio/verdaccio/blob/master/LICENSE-docs).

View File

@@ -1,58 +0,0 @@
This is mostly basic linux server configuration stuff but I felt it important to document and share the steps I took to get sinopia running permanently on my server. You will need root (or sudo) permissions for the following.
## Running as a separate user
First create the sinopia user:
```bash
$ sudo adduser --disabled-login --gecos 'Sinopia NPM mirror' sinopia
```
You create a shell as the sinopia user using the following command:
```bash
$ sudo su sinopia
$ cd ~
```
The 'cd ~' command send you to the home directory of the sinopia user. Make sure you run sinopia at least once to generate the config file. Edit it according to your needs.
## Listening on all addresses
If you want to listen to every external address set the listen directive in the config to:
```
# you can specify listen address (or simply a port)
listen: 0.0.0.0:4873
```
## Keeping sinopia running forever
We can use the node package called 'forever' to keep sinopia running all the time.
https://github.com/nodejitsu/forever
First install forever globally:
```bash
$ sudo npm install -g forever
```
Make sure you've started sinopia at least once to generate the config file and write down the created admin user. You can then use the following command to start sinopia:
```bash
$ forever start `which sinopia`
```
You can check the documentation for more information on how to use forever.
## Surviving server restarts
We can use crontab and forever together to restart sinopia after a server reboot.
When you're logged in as the sinopia user do the following:
```bash
$ crontab -e
```
This might ask you to choose an editor. Pick your favorite and proceed.
Add the following entry to the file:
```
@reboot /usr/bin/forever start /usr/lib/node_modules/sinopia/bin/sinopia
```
The locations may vary depending on your server setup. If you want to know where your files are you can use the 'which' command:
```bash
$ which forever
$ which sinopia
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
assets/bitmap/verdaccio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="301px" height="100px" viewBox="0 0 301 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->
<title>Logo-Full</title>
<desc>Created with Sketch.</desc>
<defs>
<polygon id="path-1" points="48 17.6 32.8 48 24 48 0.4 0.8 15.6 0.8 28.4 26.4 32.8 17.6 48 17.6"></polygon>
<filter x="-20.0%" y="-11.7%" width="139.9%" height="140.3%" filterUnits="objectBoundingBox" id="filter-2">
<feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906646286 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<polygon id="path-3" points="50.8 12 35.6 12 41.2 0.8 56.4 0.8 50.8 12"></polygon>
<filter x="-45.7%" y="-49.1%" width="191.3%" height="269.6%" filterUnits="objectBoundingBox" id="filter-4">
<feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906646286 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<polygon id="path-5" points="32.8 48 24 48 0.4 0.8 15.6 0.8 35.9772662 41.6908081"></polygon>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Verdaccio">
<rect id="BG" fill="#F7F8F6" x="0" y="0" width="301" height="100" rx="37"></rect>
<g id="Group-2" transform="translate(27.000000, 22.000000)">
<g id="Group-2-Copy" transform="translate(65.200000, 0.400000)" font-weight="300" font-size="42.4" font-family="OpenSans-LightItalic, Open Sans" fill="#405236" font-style="italic">
<text id="Verdaccio">
<tspan x="16" y="45">Verdaccio</tspan>
</text>
</g>
<path d="M66,27 L66,33.596969" id="Line-2" stroke="#0F5200" stroke-width="1.6" opacity="0.101109601" stroke-linecap="square"></path>
<g id="Group" transform="translate(0.000000, 5.500000)">
<g id="Combined-Shape">
<use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
<use fill="#405236" fill-rule="evenodd" xlink:href="#path-1"></use>
<path stroke="#405236" stroke-width="2.4" d="M46.0583592,18.8 L33.5416408,18.8 L28.4,29.0832816 L14.8583592,2 L2.34164079,2 L24.7416408,46.8 L32.0583592,46.8 L46.0583592,18.8 Z"></path>
</g>
<g id="Path">
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
<use fill="#CD4000" fill-rule="evenodd" xlink:href="#path-3"></use>
<path stroke="#CD4000" stroke-width="2.4" d="M50.0583592,10.8 L54.4583592,2 L41.9416408,2 L37.5416408,10.8 L50.0583592,10.8 Z"></path>
</g>
<g id="Combined-Shape">
<use fill="#4A5E3F" fill-rule="evenodd" xlink:href="#path-5"></use>
<path stroke="#405236" stroke-width="2.4" d="M32.0607372,46.8 L34.6351125,41.6879866 L14.8572527,2 L2.34164079,2 L24.7416408,46.8 L32.0607372,46.8 Z"></path>
</g>
<path d="M37.6,2 L52.8210381,2" id="Line-3" stroke="#CD4000" stroke-width="2.4" stroke-linecap="square"></path>
<path d="M33.6,6 L48.8210381,6" id="Line-3" stroke="#CD4000" stroke-width="2.4" stroke-linecap="square"></path>
<path d="M29.6,10.8 L44.8210381,10.8" id="Line-3" stroke="#CD4000" stroke-width="2.4" stroke-linecap="square"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->
<title>Logo-Black</title>
<desc>Created with Sketch.</desc>
<defs>
<polygon id="path-1" points="48 17.6 32.8 48 24 48 0.4 0.8 15.6 0.8 28.4 26.4 32.8 17.6 48 17.6"></polygon>
<filter x="-20.0%" y="-11.7%" width="139.9%" height="140.3%" filterUnits="objectBoundingBox" id="filter-2">
<feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906646286 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<path d="M40.810519,12 L50.8,12 L50.8,12 L56.4,0.8 L47.610519,0.8 L36.4,0.8 L36.4,3.2 L40,3.2 L39.2,4.8 L32.4,4.8 L32.4,7.2 L38,7.2 L36.8,9.6 L28.4,9.6 L28.4,12 L40.810519,12 Z" id="path-3"></path>
<filter x="-33.9%" y="-49.1%" width="167.9%" height="269.6%" filterUnits="objectBoundingBox" id="filter-4">
<feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906646286 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Verdaccio-BlackWhite">
<rect id="BG" fill="#000000" x="0" y="0" width="100" height="100" rx="37"></rect>
<g id="Group" transform="translate(22.000000, 29.000000)">
<g id="Combined-Shape">
<use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
<use fill-opacity="0.6" fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-1"></use>
</g>
<g id="Combined-Shape">
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
<use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-3"></use>
</g>
<polygon id="Combined-Shape" fill="#FFFFFF" points="32.8 48 24 48 0.4 0.8 15.6 0.8 35.9772662 41.6908081"></polygon>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

47
assets/verdaccio.svg Normal file
View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->
<title>Logo</title>
<desc>Created with Sketch.</desc>
<defs>
<polygon id="path-1" points="48 17.6 32.8 48 24 48 0.4 0.8 15.6 0.8 28.4 26.4 32.8 17.6 48 17.6"></polygon>
<filter x="-20.0%" y="-11.7%" width="139.9%" height="140.3%" filterUnits="objectBoundingBox" id="filter-2">
<feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906646286 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<polygon id="path-3" points="50.8 12 35.6 12 41.2 0.8 56.4 0.8 50.8 12"></polygon>
<filter x="-45.7%" y="-49.1%" width="191.3%" height="269.6%" filterUnits="objectBoundingBox" id="filter-4">
<feOffset dx="0" dy="4" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2.5" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0906646286 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<polygon id="path-5" points="32.8 48 24 48 0.4 0.8 15.6 0.8 35.9772662 41.6908081"></polygon>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Verdaccio-Copy">
<rect id="BG" fill="#F7F8F6" x="0" y="0" width="100" height="100" rx="37"></rect>
<g id="Group" transform="translate(22.000000, 29.000000)">
<g id="Combined-Shape">
<use fill="black" fill-opacity="1" filter="url(#filter-2)" xlink:href="#path-1"></use>
<use fill="#405236" fill-rule="evenodd" xlink:href="#path-1"></use>
<path stroke="#405236" stroke-width="2.4" d="M46.0583592,18.8 L33.5416408,18.8 L28.4,29.0832816 L14.8583592,2 L2.34164079,2 L24.7416408,46.8 L32.0583592,46.8 L46.0583592,18.8 Z"></path>
</g>
<g id="Path">
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-3"></use>
<use fill="#CD4000" fill-rule="evenodd" xlink:href="#path-3"></use>
<path stroke="#CD4000" stroke-width="2.4" d="M50.0583592,10.8 L54.4583592,2 L41.9416408,2 L37.5416408,10.8 L50.0583592,10.8 Z"></path>
</g>
<g id="Combined-Shape">
<use fill="#4A5E3F" fill-rule="evenodd" xlink:href="#path-5"></use>
<path stroke="#405236" stroke-width="2.4" d="M32.0607372,46.8 L34.6351125,41.6879866 L14.8572527,2 L2.34164079,2 L24.7416408,46.8 L32.0607372,46.8 Z"></path>
</g>
<path d="M37.6,2 L52.8210381,2" id="Line-3" stroke="#CD4000" stroke-width="2.4" stroke-linecap="square"></path>
<path d="M33.6,6 L48.8210381,6" id="Line-3" stroke="#CD4000" stroke-width="2.4" stroke-linecap="square"></path>
<path d="M29.6,10.8 L44.8210381,10.8" id="Line-3" stroke="#CD4000" stroke-width="2.4" stroke-linecap="square"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env node
require('../lib/cli')

3
bin/verdaccio Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env node
require('../build/lib/cli');

56
circle.yml Normal file
View File

@@ -0,0 +1,56 @@
machine:
environment:
YARN_VERSION: 1.3.2
PATH: "${PATH}:${HOME}/.yarn/bin:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
node:
version: 9
dependencies:
pre:
- git config --global user.email "verdacciobot@users.noreply.github.com"
- git config --global user.name "Verdaccio bot 🤖 for Deployments"
- 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc'
- |
if [[ ! -e ~/.yarn/bin/yarn || $(yarn --version) != "${YARN_VERSION}" ]]; then
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION
fi
- nvm install 6
- nvm install 8
cache_directories:
- ~/.yarn
- ~/.cache/yarn
- "node_modules"
override:
- yarn install --no-progress
test:
override:
- yarn run pre:ci
- nvm alias default 6
- yarn run test
- nvm alias default 8
- yarn run test
- nvm alias default 9
- yarn run test
- yarn run test:e2e
- yarn run coverage:publish
- echo "machine github.com login verdacciobot password $GITHUB_TOKEN" > ~/.netrc
- cd website && yarn install && GIT_USER=verdacciobot USE_SSH=false yarn run publish-gh-pages
deployment:
production:
tag: /(v)?[0-9]+(\.[0-9]+)*/
commands:
- ./scripts/publish.sh
alpha-release:
tag: /.*-alpha.*/
commands:
- ./scripts/alpha-publish.sh
beta-release:
tag: /.*-beta.*/
commands:
- ./scripts/beta-publish.sh
general:
branches:
ignore:
- gh-pages
- l10n_master
- /release\/.*/

1
conf/README.md Normal file
View File

@@ -0,0 +1 @@
This directory is for config examples.

50
conf/default.yaml Normal file
View File

@@ -0,0 +1,50 @@
#
# This is the default config file. It allows all users to do anything,
# so don't use it on production systems.
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/master/conf
#
# path to a directory with all packages
storage: ./storage
auth:
htpasswd:
file: ./htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
#max_users: 1000
# a list of other known repositories we can talk to
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
proxy: npmjs
'**':
# allow all users (including non-authenticated users) to read and
# publish all packages
#
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish packages
# (anyone can register by default, remember?)
publish: $authenticated
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
# log settings
logs:
- {type: stdout, format: pretty, level: http}
#- {type: file, path: verdaccio.log, level: info}

53
conf/docker.yaml Normal file
View File

@@ -0,0 +1,53 @@
#
# This is the config file used for the docker images.
# It allows all users to do anything, so don't use it on production systems.
#
# Do not configure host and port under `listen` in this file
# as it will be ignored when using docker.
# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/master/conf
#
# path to a directory with all packages
storage: /verdaccio/storage
auth:
htpasswd:
file: /verdaccio/conf/htpasswd
# Maximum amount of users allowed to register, defaults to "+infinity".
# You can set this to -1 to disable registration.
#max_users: 1000
# a list of other known repositories we can talk to
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
proxy: npmjs
'**':
# allow all users (including non-authenticated users) to read and
# publish all packages
#
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish packages
# (anyone can register by default, remember?)
publish: $authenticated
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
# log settings
logs:
- {type: stdout, format: pretty, level: http}
#- {type: file, path: verdaccio.log, level: info}

185
conf/full.yaml Normal file
View File

@@ -0,0 +1,185 @@
# path to a directory with all packages
storage: ./storage
web:
# WebUI is enabled as default, if you want disable it, just uncomment this line
#enable: false
title: Verdaccio
# logo: logo.png
auth:
htpasswd:
file: ./htpasswd
# Maximum amount of users allowed to register, defaults to "+infinity".
# You can set this to -1 to disable registration.
#max_users: 1000
# a list of other known repositories we can talk to
uplinks:
npmjs:
url: https://registry.npmjs.org/
# amount of time to wait for repository to respond
# before giving up and use the local cached copy
#timeout: 30s
# maximum time in which data is considered up to date
#
# default is 2 minutes, so server won't request the same data from
# uplink if a similar request was made less than 2 minutes ago
#maxage: 2m
# if two subsequent requests fail, no further requests will be sent to
# this uplink for five minutes
#max_fails: 2
#fail_timeout: 5m
# timeouts are defined in the same way as nginx, see:
# http://wiki.nginx.org/ConfigNotation
# add/override HTTP headers sent to the uplink server
# this allows for HTTP Basic auth for example:
#headers:
# authorization: "Basic YourBase64EncodedCredentials=="
# set this to false to prevent tarballs from this upstream
# to be stored in the local storage (defaults to true)
#cache: false
packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
proxy: npmjs
# uncomment this for packages with "local-" prefix to be available
# for admin only, it's a recommended way of handling private packages
#'local-*':
# access: admin
# publish: admin
# # you can override storage directory for a group of packages this way:
# storage: 'local_storage'
'**':
# allow all users to read packages (including non-authenticated users)
#
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow 'admin' to publish packages
publish: $authenticated
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
#####################################################################
# Advanced settings
#####################################################################
## Special packages publish configurations
#publish:
## This will allow the publisher to publish packages even if any uplink is down.
# allow_offline: true
# if you use nginx with custom path, use this to override links
#url_prefix: https://dev.company.local/verdaccio/
# You can specify listen address (or simply a port).
# If you add multiple values, verdaccio will listen on all of them.
#
# Examples:
#
#listen:
# - localhost:4873 # default value
# - http://localhost:4873 # same thing
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
# - https://example.org:4873 # if you want to use https
# - [::1]:4873 # ipv6
# - unix:/tmp/verdaccio.sock # unix socket
# Configure HTTPS, it is required if you use "https" protocol above.
#https:
# key: path/to/server.key
# cert: path/to/server.crt
# ca: path/to/server.pem
# type: file | stdout | stderr
# level: trace | debug | info | http (default) | warn | error | fatal
#
# parameters for file: name is filename
# {type: 'file', path: 'verdaccio.log', level: 'debug'},
#
# parameters for stdout and stderr: format: json | pretty | pretty-timestamped
# {type: 'stdout', format: 'pretty', level: 'debug'},
logs:
- {type: stdout, format: pretty, level: http}
#- {type: file, path: verdaccio.log, level: info}
# you can specify proxy used with all requests in wget-like manner here
# (or set up ENV variables with the same name)
#http_proxy: http://something.local/
#https_proxy: https://something.local/
#no_proxy: localhost,127.0.0.1
# maximum size of uploaded json document
# increase it if you have "request entity too large" errors
#max_body_size: 1mb
# Notify Settings
# Notify was built primarily to use with Slack's Incoming
# webhooks, but will also deliver a simple payload to
# any endpoint. Currently only active for publish / create
# commands.
notify:
# Choose a method. Technically this will accept any HTTP
# request method, but probably stick to GET or POST
method: POST
# Only run this notification if the package name matches the regular
# expression
packagePattern: ^example-package$
# Any flags to be used with the regular expression
packagePatternFlags: i
# If this endpoint requires specific headers, set them here
# as an array of key: value objects.
headers: [{'Content-type': 'application/x-www-form-urlencoded'}]
# set the URL endpoint for this call
endpoint: https://hooks.slack.com/...
# Finally, the content you will be sending in the body.
# This data will first be run through Handlebars to parse
# any Handlebar expressions. All data housed in the metadata object
# is available for use within the expressions.
content: ' {{ handlebar-expression }}'
# For Slack, follow the following format:
# content: '{ "text": "Package *{{ name }}* published to version *{{ dist-tags.latest }}*", "username": "Verdaccio", "icon_emoji": ":package:" }'
# Multiple notification endpoints can be created by specifying a collection
'example-package-1':
method: POST
# Only run this notification if the package name matches the regular
# expression
packagePattern: ^example-package-regex$
# Any flags to be used with the regular expression
# since verdaccio 2.2.2 this property has been disabled read #108
# it will be re-enabled after 2.5.0
# packagePatternFlags: i
# If this endpoint requires specific headers, set them here
# as an array of key: value objects.
# headers supports as well a literal object
headers: {'Content-type': 'application/x-www-form-urlencoded'}
# set the URL endpoint for this call
endpoint: https://hooks.slack.com/...
# Finally, the content you will be sending in the body.
# This data will first be run through Handlebars to parse
# any Handlebar expressions. All data housed in the metadata object
# is available for use within the expressions.
content: ' {{ handlebar-expression }}'
# For Slack, follow the following format:
# content: '{ "text": "Package *{{ name }}* published to version *{{ dist-tags.latest }}*", "username": "Verdaccio", "icon_emoji": ":package:" }'
# Configure plugins that can register custom middlewares
#middlewares:
# plugin-name:
# setting: true

50
crowdin.yaml Normal file
View File

@@ -0,0 +1,50 @@
project_identifier_env: CROWDIN_VERDACCIO_PROJECT_ID
api_key_env: CROWDIN_VERDACCIO_API_KEY
base_path: "./"
preserve_hierarchy: true
commit_message: 'docs(website): new translations'
files:
-
source: '/docs/*.md'
translation: '/website/translated_docs/%locale%/%original_file_name%'
languages_mapping: &anchor
locale:
'af': 'af'
'ar': 'ar'
'bs-BA': 'bs-BA'
'ca': 'ca'
'cs': 'cs'
'da': 'da'
'de': 'de'
'el': 'el'
'es-ES': 'es-ES'
'fa': 'fa-IR'
'fi': 'fi'
'fr': 'fr'
'he': 'he'
'hu': 'hu'
'id': 'id-ID'
'it': 'it'
'ja': 'ja'
'ko': 'ko'
'mr': 'mr-IN'
'nl': 'nl'
'no': 'no-NO'
'pl': 'pl'
'pt-BR': 'pt-BR'
'pt-PT': 'pt-PT'
'ro': 'ro'
'ru': 'ru'
'sk': 'sk-SK'
'sr': 'sr'
'sv-SE': 'sv-SE'
'tr': 'tr'
'uk': 'uk'
'vi': 'vi'
'zh-CN': 'zh-Hans'
'zh-TW': 'zh-Hant'
-
source: '/website/i18n/en.json'
translation: '/website/i18n/%locale%.json'
languages_mapping: *anchor

14
docker-compose.yaml Normal file
View File

@@ -0,0 +1,14 @@
version: '2.1'
services:
verdaccio:
build: .
container_name: verdaccio
environment:
- PORT
ports:
- $PORT:$PORT
volumes:
- verdaccio:/verdaccio
volumes:
verdaccio:
driver: local

14
docs/ansible.md Normal file
View File

@@ -0,0 +1,14 @@
---
id: ansible
title: "Installing with Ansible"
---
We have a customised solution for `verdaccio` in our organization.
[https://github.com/verdaccio/ansible-verdaccio](https://github.com/verdaccio/ansible-verdaccio)
#### Other options
* Ansible role for Gentoo users: [jirutka/ansible-role-sinopia](https://github.com/jirutka/ansible-role-sinopia).
* Ansible role for Ubuntu users: [jagregory/sinopia-ansible](https://github.com/jagregory/sinopia-ansible).
* ansible-verdaccio-role [https://github.com/refinery29/ansible-verdaccio-role](https://github.com/refinery29/ansible-verdaccio-role)

56
docs/auth.md Normal file
View File

@@ -0,0 +1,56 @@
---
id: authentification
title: "Authentification"
---
The authentification is tied to the auth [plugin](plugins.md) you are using. The package restrictions also is handled by the [Package Access](packages.md).
The client authentification is handled by `npm` client itself. Once you login to the application:
```bash
npm adduser --registry http://localhost:4873
```
A token is generated in the `npm` configuration file hosted in your user home folder. For more information about `.npmrc` read the [official documentation](https://docs.npmjs.com/files/npmrc).
```bash
cat .npmrc
registry=http://localhost:5555/
//localhost:5555/:_authToken="secretVerdaccioToken"
//registry.npmjs.org/:_authToken=secretNpmjsToken
```
#### Anonymous publish
`verdaccio`allows you to enable anonymous publish, to achieve that you will need to set up correctly your [packages acces](packages.md).
Eg:
```yaml
'my-company-*':
access: $anonymous
publish: $anonymous
proxy: npmjs
```
As is described [on issue #212](https://github.com/verdaccio/verdaccio/issues/212#issuecomment-308578500) until `npm@5.3.0` and all minor releases **won't allow you publish without a token**. However `yarn` has not such limitation.
## Default htpasswd
In order to simplify the setup, `verdaccio` use a build-in plugin based on `htpasswd`.
```yaml
auth:
htpasswd:
file: ./htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
#max_users: 1000
```
Property | Type | Required | Example | Support | Description
--- | --- | --- | --- | --- | ---
file | string | Yes | ./htpasswd | all | file that host the encrypted credentials
max_users | number | No | 1000 | all | set limit of users
In case to decide do not allow user to login, you can set `max_users: -1`.

73
docs/build.md Normal file
View File

@@ -0,0 +1,73 @@
---
id: build
title: "Build the source code"
---
Verdaccio relies on `yarn` instead `npm` to download depenedencies.
*Note: the current build only will build with `➜ yarn` latest.*
```bash
yarn install
```
## Scripts
We have a list of scripts that you will use for diferent kind of tasks, in the following section
we describe all posible task based on branches.
### Branch (2.x)
On branch `2.x` the unique part we have to build is the UI which is based on React.js, webpack and CSS Modules.
#### Scripts
script | Description
--- | --- |
release | this script is used to generate changelog and raise up the version according the commits messages
prepublish | it ensures before publish the new ui is being generated
test | run all the test
pre:ci | specific task for CI, build the UI required for test
test:ci | run test generating coverage
test:only | run only test
test:coverage | run `nyc` as a wrapper to generate coverage with mocha test
coverage:html | run `nyc` to generate coverage reports
coverage:publish | publish on `codecov` the coverage (don't use it)
lint | run the linting for javascript code.
lint:css | run the linter for `css`
dev:webui | run a `webpack` server with hot reloading enabled `http://localhost:4872/#/` it requires a `verdaccio` server running in port `4873`.
pre:webpack | prepare the field for webpack (it a substask of `build:webui`)
build:webui | create the static assets for the UI with `webpack`
build:docker | create a local docker image with `verdaccio`
build:rpi | create a local docker for raspberry pi image with `verdaccio` **(experimental with no support)**
#### Master branch (3.x)
The current major version is based on `babel` and `flow`. If you switch from master ensure to run `yarn install` again.
*Note: Only new scripts in bold*
### Scripts
script | Description
--- | --- |
**flow** | run flow check
**dev:start** | run `babel-node` and transpile code on memory
**code:build** | transpile `verdaccio` with `babel` and copy transpiled code to `build/`
release | this script is used to generate changelog and raise up the version according the commits messages
prepublish | it ensures before publish the new ui is being generated
test | run all the test `jest`
test:unit | run the unit test
test:func | run the funtional test
pre:ci | specific task for CI, build the UI required for test
pretest | A shorcut for transpile the code
test:ci | run test generating coverage
coverage:publish | publish on `codecov` the coverage (CI task specific, do not use it)
lint | run the linting for javascript code.
lint:css | run the linter for `css`
dev:webui | run a `webpack` server with hot reloading enabled `http://localhost:4872/#/` it requires a `verdaccio` server running in port `4873`.
pre:webpack | prepare the field for webpack (it a substask of `build:webui`)
build:webui | create the static assets for the UI with `webpack`
build:docker | create a local docker image with `verdaccio`
build:rpi | create a local docker for raspberry pi image with `verdaccio` **(experimental with no support)**

26
docs/cli.md Normal file
View File

@@ -0,0 +1,26 @@
---
id: cli
title: "Command Line Tool"
---
The verdaccio CLI is your go start the application.
## Commands
```bash
$ verdaccio --listen 4000 --config ~./config.yaml
```
Command | Default | Example | Description
--- | --- | --- | ---
--listen \ **-l** | 4873 | -p 7000 | http port
--config \ **-c** | ~/.local/verdaccio/config.yaml | ~./config.yaml | the configuration file
## Default config file location
To locate the home directory, we rely on **$XDG_DATA_HOME** as a first choice and Windows environment we look for [APPDATA environment variable](https://www.howtogeek.com/318177/what-is-the-appdata-folder-in-windows/).
## Default storage location
We use **$XDG_DATA_HOME** environment variable as default to locate the storage by default which [should be the same](https://askubuntu.com/questions/538526/is-home-local-share-the-default-value-for-xdg-data-home-in-ubuntu-14-04) as $HOME/.local/share.
If you are using a custom storage, this location is irrelevant.

189
docs/config.md Normal file
View File

@@ -0,0 +1,189 @@
---
id: configuration
title: "Configuration File"
---
This file is the cornerstone of verdaccio where you can modify the default behaviour, enable plugins and extend features.
A default configuration file is created the very first time you run `verdaccio`.
## Default Configuration
The default configuration has support for **scoped** packages and allow any user to access all packages but only **authenticated users to publish**.
```yaml
storage: ./storage
auth:
htpasswd:
file: ./htpasswd
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
access: $all
publish: $authenticated
proxy: npmjs
'**':
proxy: npmjs
logs:
- {type: stdout, format: pretty, level: http}
```
## Sections
The following sections explain what means each property and the different options.
### Storage
Is the location of the default storage. **Verdaccio is by default based on local file system**.
```yaml
storage: ./storage
```
### Authentification
The authentification set up is done here, the default auth is based on `htpasswd` and is built-in. You can modify this behaviour via [plugins](plugins.md). For more information about this section read the [auth page](auth.md).
```yaml
auth:
htpasswd:
file: ./htpasswd
max_users: 1000
```
### Web UI
This properties allow you to modify the look and feel of the web UI. For more information about this section read the [web ui page](web.md).
```yaml
web:
enable: true
title: Verdaccio
logo: logo.png
```
### Uplinks
Uplinks is the ability of the system to fetch packages from remote registries when those packages are not available locally. For more information about this section read the [uplinks page](uplinks.md).
```yaml
uplinks:
npmjs:
url: https://registry.npmjs.org/
```
### Packages
Packages allow the user how the packages are gonna be accessed. For more information about this section read the [packages page](packages.md).
```yaml
packages:
'@*/*':
access: $all
publish: $authenticated
proxy: npmjs
```
## Advanced Settings
### Offline Publish
By default `verdaccio` does not allow to publish when the client is offline, that behavior can be overridden set it in to *true*.
```yaml
publish:
allow_offline: false
```
<small>Since: `verdaccio@2.3.6` due [#223](https://github.com/verdaccio/verdaccio/pull/223)</small>
### URL Prefix
```yaml
url_prefix: https://dev.company.local/verdaccio/
```
Since: `verdaccio@2.3.6` due [#197](https://github.com/verdaccio/verdaccio/pull/197)
### Max Body Size
By default the maximum body size for a JSON document is `1mb`, if you run in errors as `"request entity too large"` you may increase this value.
```yaml
max_body_size: 1mb
```
### Listen Port
`verdaccio` runs by default in the port `4873`. Change the port can be done via [cli](cli.md) or in the configuration file, the following options are valid.
```yaml
listen:
# - localhost:4873 # default value
# - http://localhost:4873 # same thing
# - 0.0.0.0:4873 # listen on all addresses (INADDR_ANY)
# - https://example.org:4873 # if you want to use https
# - "[::1]:4873" # ipv6
# - unix:/tmp/verdaccio.sock # unix socket
```
### HTTPS
To enable `https` in `verdaccio` enough with set your `listen` domain with the protocol *https://*. For more information about this section read the [ssl page](ssl.md).
```yaml
https:
key: ./path/verdaccio-key.pem
cert: ./path/verdaccio-cert.pem
ca: ./path/verdaccio-csr.pem
```
### Proxy
Proxies are special-purpose HTTP servers designed to transfer data from remote servers to local clients.
#### http_proxy and https_proxy
If you have a proxy in your network you can set a `X-Forwarded-For` header using the following properties.
```yaml
http_proxy: http://something.local/
https_proxy: https://something.local/
```
#### no_proxy
This variable should contain a comma-separated list of domain extensions proxy should not be used for.
```yaml
http_proxy: http://something.local/
https_proxy: https://something.local/
```
### Notifications
Enable notifications to three party tools is fairly easy via web hooks. For more information about this section read the [notifications page](notifications.md).
```yaml
notify:
method: POST
headers: [{'Content-Type': 'application/json'}]
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
```
> For more detailed configuration settings, please [check the source code](https://github.com/verdaccio/verdaccio/tree/master/conf).

160
docs/contributing.md Normal file
View File

@@ -0,0 +1,160 @@
---
id: contributing
title: "Contributing Verdaccio"
---
First of all 👏👏 thanks for visiting this page, for us means you are willing contribute to `verdaccio` and we are happy for that. Jumping into an unfamiliar code base is not easy but we are here to help you.
## Comunication Channels
If you are willing for asking, we use two channels for discussions:
* [Public Gitter channel](https://gitter.im/verdaccio/)
* [Contributors Slack channel](https://verdaccio-npm.slack.com) (unfortunately only by email invitation, you might ask in **Gitter** to be included)
## Getting started
As a first glance verdaccio is a single repository, but there are many ways you might contribute and a variety of technologies to practice.
### Finding my spot
All we have different skills, so, let's see where you might feel comfortable.
### I know or I want to learn Node.js
Node.js is the base of `verdaccio`, we use libraries as `express`, `commander`, `request` or `async`. Verdaccio is basically a Rest API that create a communication with `npm` clients compatible, as `yarn`.
We have a long [list of plugins](plugins.md) ready to be used and improved but at the same time [you might create your own](dev-plugins.md).
### I would prefer to work in the User Interface
Recently we have moved to modern techonologies as `React` and `element-react`. We are looking forward to see new ideas how to improve the UI.
### I feel more confortable improving the stack
Of course, we will be happy to help us improving the stack, you can upgrade dependencies as `eslint`, `stylelint`, `webpack`. You migt merely improve the `webpack` configuration would be great. Any suggestion is very welcome. Furthermore whether you have experience with **Yeoman** you might help us with the [verdaccio generator](https://github.com/verdaccio/generator-verdaccio-plugin).
Here some ideas:
* Create a common eslint rules to be used across all dependencies or plugins
* Improve Flow types definitions delivery
* Moving to Webpack 4
* Improve hot reload with Webpack
* We use babel and webpack across all dependencies, why not a common preset?
* Improve continous integration delivery
### I do great Documentation
Many contributors find typos and grammar issues, that also helps to improve the overall experience for troubleshooting.
### I am a Designer
We have a frontend website [http://www.verdaccio.org/](http://www.verdaccio.org/) that will be happy to see your ideas.
Our website is based on [Docusaurus](https://docusaurus.io/).
### I am a DevOps
We have a widely popular Docker image [https://hub.docker.com/r/verdaccio/verdaccio/](https://hub.docker.com/r/verdaccio/verdaccio/) that need maintenance and pretty likely huge improvements, we need your knowledge for the benefits of all users.
We have support for **Kubernetes**, **Puppet**, **Ansible** and **Chef** and we need help in those fields, feel free to see all repositories.
### I can do translations
Verdaccio aims to be multilingual, in order to achieve it **we have the awesome support** of [Crowdin](https://crowdin.com) that is an amazing platform for translations.
<img src="https://d3n8a8pro7vhmx.cloudfront.net/uridu/pages/144/attachments/original/1485948891/Crowdin.png" width="400px"/>
We have setup a project where you can choose your favourite language, if you do not find your language feel free to request one [creating a ticket](https://github.com/verdaccio/verdaccio/issues/new).
[Go to Crowdin Verdaccio](https://crowdin.com/project/verdaccio)
## I'm ready to contribute
If you are thinking *"I've seen already the [repositories](repositories.md) and I'm willing to start right away"* then I have good news for you, that's the next step.
You will need learn how to build, [we have prepared a guide just for that](build.md).
Once you have played around with all scripts and you know how to use them, we are ready to go to the next step, run the [**Unit Test**](test.md).
## Full list of contributors. We want to see your face here !
[<img alt="juanpicado" src="https://avatars0.githubusercontent.com/u/558752?v=4&s=117" width="117">](https://github.com/juanpicado) |[<img alt="rlidwka" src="https://avatars0.githubusercontent.com/u/999113?v=4&s=117" width="117">](https://github.com/rlidwka) |[<img alt="Meeeeow" src="https://avatars3.githubusercontent.com/u/19658647?v=4&s=117" width="117">](https://github.com/Meeeeow) |[<img alt="trentearl" src="https://avatars2.githubusercontent.com/u/802857?v=4&s=117" width="117">](https://github.com/trentearl) |[<img alt="ayusharma" src="https://avatars0.githubusercontent.com/u/6918450?v=4&s=117" width="117">](https://github.com/ayusharma) |
:---: |:---: |:---: |:---: |:---: |
[juanpicado](https://github.com/juanpicado) |[rlidwka](https://github.com/rlidwka) |[Meeeeow](https://github.com/Meeeeow) |[trentearl](https://github.com/trentearl) |[ayusharma](https://github.com/ayusharma) |
[<img alt="verdacciobot" src="https://avatars0.githubusercontent.com/u/35213902?v=4&s=117" width="117">](https://github.com/verdacciobot) |[<img alt="jmwilkinson" src="https://avatars0.githubusercontent.com/u/17836030?v=4&s=117" width="117">](https://github.com/jmwilkinson) |[<img alt="UnitedMarsupials" src="https://avatars1.githubusercontent.com/u/1486340?v=4&s=117" width="117">](https://github.com/UnitedMarsupials) |[<img alt="ryan-codingintrigue" src="https://avatars0.githubusercontent.com/u/9048902?v=4&s=117" width="117">](https://github.com/ryan-codingintrigue) |[<img alt="ramonornela" src="https://avatars1.githubusercontent.com/u/187946?v=4&s=117" width="117">](https://github.com/ramonornela) |
:---: |:---: |:---: |:---: |:---: |
[verdacciobot](https://github.com/verdacciobot) |[jmwilkinson](https://github.com/jmwilkinson) |[UnitedMarsupials](https://github.com/UnitedMarsupials) |[ryan-codingintrigue](https://github.com/ryan-codingintrigue) |[ramonornela](https://github.com/ramonornela) |
[<img alt="renovate-bot" src="https://avatars0.githubusercontent.com/u/25180681?v=4&s=117" width="117">](https://github.com/renovate-bot) |[<img alt="rodriguesbreno" src="https://avatars2.githubusercontent.com/u/19731692?v=4&s=117" width="117">](https://github.com/rodriguesbreno) |[<img alt="vernak2539" src="https://avatars2.githubusercontent.com/u/521270?v=4&s=117" width="117">](https://github.com/vernak2539) |[<img alt="jachstet-sea" src="https://avatars0.githubusercontent.com/u/7993508?v=4&s=117" width="117">](https://github.com/jachstet-sea) |[<img alt="lgaitan" src="https://avatars0.githubusercontent.com/u/5970350?v=4&s=117" width="117">](https://github.com/lgaitan) |
:---: |:---: |:---: |:---: |:---: |
[renovate-bot](https://github.com/renovate-bot) |[rodriguesbreno](https://github.com/rodriguesbreno) |[vernak2539](https://github.com/vernak2539) |[jachstet-sea](https://github.com/jachstet-sea) |[lgaitan](https://github.com/lgaitan) |
[<img alt="crispy1989" src="https://avatars1.githubusercontent.com/u/2132722?v=4&s=117" width="117">](https://github.com/crispy1989) |[<img alt="neuquino" src="https://avatars1.githubusercontent.com/u/1971027?v=4&s=117" width="117">](https://github.com/neuquino) |[<img alt="markpeterfejes" src="https://avatars3.githubusercontent.com/u/7912231?v=4&s=117" width="117">](https://github.com/markpeterfejes) |[<img alt="steve-p-com" src="https://avatars3.githubusercontent.com/u/5180548?v=4&s=117" width="117">](https://github.com/steve-p-com) |[<img alt="BartDubois" src="https://avatars0.githubusercontent.com/u/1180931?v=4&s=117" width="117">](https://github.com/BartDubois) |
:---: |:---: |:---: |:---: |:---: |
[crispy1989](https://github.com/crispy1989) |[neuquino](https://github.com/neuquino) |[markpeterfejes](https://github.com/markpeterfejes) |[steve-p-com](https://github.com/steve-p-com) |[BartDubois](https://github.com/BartDubois) |
[<img alt="karfau" src="https://avatars1.githubusercontent.com/u/135657?v=4&s=117" width="117">](https://github.com/karfau) |[<img alt="030" src="https://avatars1.githubusercontent.com/u/7524528?v=4&s=117" width="117">](https://github.com/030) |[<img alt="Qwerios" src="https://avatars2.githubusercontent.com/u/254447?v=4&s=117" width="117">](https://github.com/Qwerios) |[<img alt="wiggisser" src="https://avatars3.githubusercontent.com/u/3647678?v=4&s=117" width="117">](https://github.com/wiggisser) |[<img alt="kfatehi" src="https://avatars1.githubusercontent.com/u/175305?v=4&s=117" width="117">](https://github.com/kfatehi) |
:---: |:---: |:---: |:---: |:---: |
[karfau](https://github.com/karfau) |[030](https://github.com/030) |[Qwerios](https://github.com/Qwerios) |[wiggisser](https://github.com/wiggisser) |[kfatehi](https://github.com/kfatehi) |
[<img alt="imsnif" src="https://avatars3.githubusercontent.com/u/795598?v=4&s=117" width="117">](https://github.com/imsnif) |[<img alt="denisbabineau" src="https://avatars2.githubusercontent.com/u/12616025?v=4&s=117" width="117">](https://github.com/denisbabineau) |[<img alt="HCanber" src="https://avatars2.githubusercontent.com/u/800302?v=4&s=117" width="117">](https://github.com/HCanber) |[<img alt="jgoz" src="https://avatars2.githubusercontent.com/u/132233?v=4&s=117" width="117">](https://github.com/jgoz) |[<img alt="josephg" src="https://avatars1.githubusercontent.com/u/47413?v=4&s=117" width="117">](https://github.com/josephg) |
:---: |:---: |:---: |:---: |:---: |
[imsnif](https://github.com/imsnif) |[denisbabineau](https://github.com/denisbabineau) |[HCanber](https://github.com/HCanber) |[jgoz](https://github.com/jgoz) |[josephg](https://github.com/josephg) |
[<img alt="kba" src="https://avatars0.githubusercontent.com/u/273367?v=4&s=117" width="117">](https://github.com/kba) |[<img alt="aledbf" src="https://avatars2.githubusercontent.com/u/161571?v=4&s=117" width="117">](https://github.com/aledbf) |[<img alt="drubin" src="https://avatars0.githubusercontent.com/u/237513?v=4&s=117" width="117">](https://github.com/drubin) |[<img alt="plitex" src="https://avatars3.githubusercontent.com/u/2946823?v=4&s=117" width="117">](https://github.com/plitex) |[<img alt="nedelenbos" src="https://avatars2.githubusercontent.com/u/6542243?v=4&s=117" width="117">](https://github.com/nedelenbos) |
:---: |:---: |:---: |:---: |:---: |
[kba](https://github.com/kba) |[aledbf](https://github.com/aledbf) |[drubin](https://github.com/drubin) |[plitex](https://github.com/plitex) |[nedelenbos](https://github.com/nedelenbos) |
[<img alt="mysiar" src="https://avatars3.githubusercontent.com/u/13708162?v=4&s=117" width="117">](https://github.com/mysiar) |[<img alt="bufferoverflow" src="https://avatars2.githubusercontent.com/u/378909?v=4&s=117" width="117">](https://github.com/bufferoverflow) |[<img alt="osher" src="https://avatars0.githubusercontent.com/u/803101?v=4&s=117" width="117">](https://github.com/osher) |[<img alt="danielo515" src="https://avatars2.githubusercontent.com/u/2270425?v=4&s=117" width="117">](https://github.com/danielo515) |[<img alt="marnel" src="https://avatars3.githubusercontent.com/u/3189424?v=4&s=117" width="117">](https://github.com/marnel) |
:---: |:---: |:---: |:---: |:---: |
[mysiar](https://github.com/mysiar) |[bufferoverflow](https://github.com/bufferoverflow) |[osher](https://github.com/osher) |[danielo515](https://github.com/danielo515) |[marnel](https://github.com/marnel) |
[<img alt="aszmyd" src="https://avatars2.githubusercontent.com/u/3050805?v=4&s=117" width="117">](https://github.com/aszmyd) |[<img alt="estliberitas" src="https://avatars2.githubusercontent.com/u/568962?v=4&s=117" width="117">](https://github.com/estliberitas) |[<img alt="Alexandre-io" src="https://avatars0.githubusercontent.com/u/8135542?v=4&s=117" width="117">](https://github.com/Alexandre-io) |[<img alt="amirmohsen" src="https://avatars1.githubusercontent.com/u/7075106?v=4&s=117" width="117">](https://github.com/amirmohsen) |[<img alt="BarthV" src="https://avatars3.githubusercontent.com/u/1901955?v=4&s=117" width="117">](https://github.com/BarthV) |
:---: |:---: |:---: |:---: |:---: |
[aszmyd](https://github.com/aszmyd) |[estliberitas](https://github.com/estliberitas) |[Alexandre-io](https://github.com/Alexandre-io) |[amirmohsen](https://github.com/amirmohsen) |[BarthV](https://github.com/BarthV) |
[<img alt="BogdanAlexandru" src="https://avatars2.githubusercontent.com/u/5050074?v=4&s=117" width="117">](https://github.com/BogdanAlexandru) |[<img alt="iambrandonn" src="https://avatars2.githubusercontent.com/u/1644549?v=4&s=117" width="117">](https://github.com/iambrandonn) |[<img alt="robi-wan" src="https://avatars3.githubusercontent.com/u/30210?v=4&s=117" width="117">](https://github.com/robi-wan) |[<img alt="crohrer" src="https://avatars3.githubusercontent.com/u/1255222?v=4&s=117" width="117">](https://github.com/crohrer) |[<img alt="psychocode" src="https://avatars3.githubusercontent.com/u/4641709?v=4&s=117" width="117">](https://github.com/psychocode) |
:---: |:---: |:---: |:---: |:---: |
[BogdanAlexandru](https://github.com/BogdanAlexandru) |[iambrandonn](https://github.com/iambrandonn) |[robi-wan](https://github.com/robi-wan) |[crohrer](https://github.com/crohrer) |[psychocode](https://github.com/psychocode) |
[<img alt="conorhastings" src="https://avatars2.githubusercontent.com/u/8263298?v=4&s=117" width="117">](https://github.com/conorhastings) |[<img alt="coreyjewett" src="https://avatars3.githubusercontent.com/u/12782?v=4&s=117" width="117">](https://github.com/coreyjewett) |[<img alt="dbroadhurst" src="https://avatars1.githubusercontent.com/u/5667105?v=4&s=117" width="117">](https://github.com/dbroadhurst) |[<img alt="etiennetremel" src="https://avatars1.githubusercontent.com/u/995474?v=4&s=117" width="117">](https://github.com/etiennetremel) |[<img alt="einfallstoll" src="https://avatars3.githubusercontent.com/u/619048?v=4&s=117" width="117">](https://github.com/einfallstoll) |
:---: |:---: |:---: |:---: |:---: |
[conorhastings](https://github.com/conorhastings) |[coreyjewett](https://github.com/coreyjewett) |[dbroadhurst](https://github.com/dbroadhurst) |[etiennetremel](https://github.com/etiennetremel) |[einfallstoll](https://github.com/einfallstoll) |
[<img alt="gempain" src="https://avatars2.githubusercontent.com/u/13135149?v=4&s=117" width="117">](https://github.com/gempain) |[<img alt="lbguilherme" src="https://avatars0.githubusercontent.com/u/546954?v=4&s=117" width="117">](https://github.com/lbguilherme) |[<img alt="gecruz" src="https://avatars1.githubusercontent.com/u/29457476?v=4&s=117" width="117">](https://github.com/gecruz) |[<img alt="idangozlan" src="https://avatars3.githubusercontent.com/u/1991021?v=4&s=117" width="117">](https://github.com/idangozlan) |[<img alt="jrussellsmyth" src="https://avatars3.githubusercontent.com/u/2998207?v=4&s=117" width="117">](https://github.com/jrussellsmyth) |
:---: |:---: |:---: |:---: |:---: |
[gempain](https://github.com/gempain) |[lbguilherme](https://github.com/lbguilherme) |[gecruz](https://github.com/gecruz) |[idangozlan](https://github.com/idangozlan) |[jrussellsmyth](https://github.com/jrussellsmyth) |
[<img alt="jirutka" src="https://avatars1.githubusercontent.com/u/949228?v=4&s=117" width="117">](https://github.com/jirutka) |[<img alt="kingjan1999" src="https://avatars3.githubusercontent.com/u/3208269?v=4&s=117" width="117">](https://github.com/kingjan1999) |[<img alt="vStone" src="https://avatars2.githubusercontent.com/u/356719?v=4&s=117" width="117">](https://github.com/vStone) |[<img alt="zaventh" src="https://avatars1.githubusercontent.com/u/669283?v=4&s=117" width="117">](https://github.com/zaventh) |[<img alt="jeremymoritz" src="https://avatars3.githubusercontent.com/u/2779583?v=4&s=117" width="117">](https://github.com/jeremymoritz) |
:---: |:---: |:---: |:---: |:---: |
[jirutka](https://github.com/jirutka) |[kingjan1999](https://github.com/kingjan1999) |[vStone](https://github.com/vStone) |[zaventh](https://github.com/zaventh) |[jeremymoritz](https://github.com/jeremymoritz) |
[<img alt="jondlm" src="https://avatars2.githubusercontent.com/u/3290587?v=4&s=117" width="117">](https://github.com/jondlm) |[<img alt="speier" src="https://avatars3.githubusercontent.com/u/415836?v=4&s=117" width="117">](https://github.com/speier) |[<img alt="kodypeterson" src="https://avatars1.githubusercontent.com/u/1934708?v=4&s=117" width="117">](https://github.com/kodypeterson) |[<img alt="mrblackus" src="https://avatars3.githubusercontent.com/u/2353980?v=4&s=117" width="117">](https://github.com/mrblackus) |[<img alt="metaa" src="https://avatars3.githubusercontent.com/u/5056880?v=4&s=117" width="117">](https://github.com/metaa) |
:---: |:---: |:---: |:---: |:---: |
[jondlm](https://github.com/jondlm) |[speier](https://github.com/speier) |[kodypeterson](https://github.com/kodypeterson) |[mrblackus](https://github.com/mrblackus) |[metaa](https://github.com/metaa) |
[<img alt="bajtos" src="https://avatars1.githubusercontent.com/u/1140553?v=4&s=117" width="117">](https://github.com/bajtos) |[<img alt="okv" src="https://avatars3.githubusercontent.com/u/465522?v=4&s=117" width="117">](https://github.com/okv) |[<img alt="Vrtak-CZ" src="https://avatars1.githubusercontent.com/u/112567?v=4&s=117" width="117">](https://github.com/Vrtak-CZ) |[<img alt="rafacesar" src="https://avatars3.githubusercontent.com/u/71136?v=4&s=117" width="117">](https://github.com/rafacesar) |[<img alt="rbpinheiro" src="https://avatars2.githubusercontent.com/u/1257483?v=4&s=117" width="117">](https://github.com/rbpinheiro) |
:---: |:---: |:---: |:---: |:---: |
[bajtos](https://github.com/bajtos) |[okv](https://github.com/okv) |[Vrtak-CZ](https://github.com/Vrtak-CZ) |[rafacesar](https://github.com/rafacesar) |[rbpinheiro](https://github.com/rbpinheiro) |
[<img alt="r3wald" src="https://avatars3.githubusercontent.com/u/190202?v=4&s=117" width="117">](https://github.com/r3wald) |[<img alt="robertgroh" src="https://avatars3.githubusercontent.com/u/5773739?v=4&s=117" width="117">](https://github.com/robertgroh) |[<img alt="prssn" src="https://avatars1.githubusercontent.com/u/951218?v=4&s=117" width="117">](https://github.com/prssn) |[<img alt="RodrigoBalest" src="https://avatars0.githubusercontent.com/u/4810463?v=4&s=117" width="117">](https://github.com/RodrigoBalest) |[<img alt="RomainLK" src="https://avatars3.githubusercontent.com/u/1440514?v=4&s=117" width="117">](https://github.com/RomainLK) |
:---: |:---: |:---: |:---: |:---: |
[r3wald](https://github.com/r3wald) |[robertgroh](https://github.com/robertgroh) |[prssn](https://github.com/prssn) |[RodrigoBalest](https://github.com/RodrigoBalest) |[RomainLK](https://github.com/RomainLK) |
[<img alt="rmg" src="https://avatars2.githubusercontent.com/u/17978?v=4&s=117" width="117">](https://github.com/rmg) |[<img alt="samcday" src="https://avatars0.githubusercontent.com/u/531550?v=4&s=117" width="117">](https://github.com/samcday) |[<img alt="tarun1793" src="https://avatars0.githubusercontent.com/u/1783440?v=4&s=117" width="117">](https://github.com/tarun1793) |[<img alt="tcort" src="https://avatars3.githubusercontent.com/u/216720?v=4&s=117" width="117">](https://github.com/tcort) |[<img alt="grrowl" src="https://avatars2.githubusercontent.com/u/907140?v=4&s=117" width="117">](https://github.com/grrowl) |
:---: |:---: |:---: |:---: |:---: |
[rmg](https://github.com/rmg) |[samcday](https://github.com/samcday) |[tarun1793](https://github.com/tarun1793) |[tcort](https://github.com/tcort) |[grrowl](https://github.com/grrowl) |
[<img alt="tlvince" src="https://avatars2.githubusercontent.com/u/323761?v=4&s=117" width="117">](https://github.com/tlvince) |[<img alt="lordvlad" src="https://avatars2.githubusercontent.com/u/1217769?v=4&s=117" width="117">](https://github.com/lordvlad) |[<img alt="wpasternak" src="https://avatars3.githubusercontent.com/u/958449?v=4&s=117" width="117">](https://github.com/wpasternak) |[<img alt="yannickcr" src="https://avatars2.githubusercontent.com/u/13209?v=4&s=117" width="117">](https://github.com/yannickcr) |[<img alt="yannickglt" src="https://avatars0.githubusercontent.com/u/1006426?v=4&s=117" width="117">](https://github.com/yannickglt) |
:---: |:---: |:---: |:---: |:---: |
[tlvince](https://github.com/tlvince) |[lordvlad](https://github.com/lordvlad) |[wpasternak](https://github.com/wpasternak) |[yannickcr](https://github.com/yannickcr) |[yannickglt](https://github.com/yannickglt) |
[<img alt="silkentrance" src="https://avatars3.githubusercontent.com/u/6068824?v=4&s=117" width="117">](https://github.com/silkentrance) |[<img alt="jjaakola" src="https://avatars3.githubusercontent.com/u/3587824?v=4&s=117" width="117">](https://github.com/jjaakola) |[<img alt="maxlaverse" src="https://avatars0.githubusercontent.com/u/3045354?v=4&s=117" width="117">](https://github.com/maxlaverse) |[<img alt="ChadKillingsworth" src="https://avatars2.githubusercontent.com/u/1247639?v=4&s=117" width="117">](https://github.com/ChadKillingsworth) |
:---: |:---: |:---: |:---: |
[silkentrance](https://github.com/silkentrance) |[jjaakola](https://github.com/jjaakola) |[maxlaverse](https://github.com/maxlaverse) |[ChadKillingsworth](https://github.com/ChadKillingsworth) |

147
docs/dev-plugins.md Normal file
View File

@@ -0,0 +1,147 @@
---
id: dev-plugins
title: "Developing Plugins"
---
There are many ways to extend `verdaccio`, currently we support `authentication plugins`, `middleware plugins` (since `v2.7.0`) and `storage plugins` since (`v3.x`).
## Authentication Plugins
This section will describe how it looks like a Verdaccio plugin in a ES5 way. Basically we have to return an object with a single method called `authenticate` that will recieve 3 arguments (`user, password, callback`). Once the authentication has been executed there is 2 options to give a response to `verdaccio`.
### API
```js
function authenticate (user, password, callback) {
...more stuff
}
```
##### OnError
Either something bad happened or auth was unsuccessful.
```
callback(null, false)
```
##### OnSuccess
The auth was successful.
`groups` is an array of strings where the user is part of.
```
callback(null, groups);
```
### Example
```javascript
function Auth(config, stuff) {
var self = Object.create(Auth.prototype);
self._users = {};
// config for this module
self._config = config;
// verdaccio logger
self._logger = stuff.logger;
// pass verdaccio logger to ldapauth
self._config.client_options.log = stuff.logger;
return self;
}
Auth.prototype.authenticate = function (user, password, callback) {
var LdapClient = new LdapAuth(self._config.client_options);
....
LdapClient.authenticate(user, password, function (err, ldapUser) {
...
var groups;
...
callback(null, groups);
});
};
module.exports = Auth;
```
And the setup
```yaml
auth:
htpasswd:
file: ./htpasswd
```
Where `htpasswd` is the sufix of the plugin name. eg: `verdaccio-htpasswd` and the rest of the body would be the plugin configuration params.
## Middleware Integration
Middleware plugins have the capability to modify the API layer, either adding new endpoints or intercepting requests. A pretty good example
of middleware plugin is the (sinopia-github-oauth)[https://github.com/soundtrackyourbrand/sinopia-github-oauth]) compatible with `verdaccio`.
### API
```js
function register_middlewares(expressApp, auth, storage) {
...more stuff
}
```
To register a middleware we need an object with a single method called `register_middlewares` that will recieve 3 arguments (`expressApp, auth, storage`).
*Auth* is the authentification instance and *storage* is also the main Storage instance that will give you have access to all to the storage actions.
## Storage Plugins
Since `verdaccio@3.x` we also can plug a custom storage.
### API
The storage API is a bit more complex, you will need to create a class that return a `ILocalData` implementation. Please see details bellow.
```js
class LocalDatabase<ILocalData>{
constructor(config: Config, logger: Logger): ILocalData;
}
interface ILocalData {
add(name: string): SyncReturn;
remove(name: string): SyncReturn;
get(): StorageList;
getPackageStorage(packageInfo: string): IPackageStorage;
sync(): ?SyncReturn;
}
interface ILocalPackageManager {
writeTarball(name: string): IUploadTarball;
readTarball(name: string): IReadTarball;
readPackage(fileName: string, callback: Callback): void;
createPackage(name: string, value: any, cb: Callback): void;
deletePackage(fileName: string, callback: Callback): void;
removePackage(callback: Callback): void;
updatePackage(pkgFileName: string,
updateHandler: Callback,
onWrite: Callback,
transformPackage: Function,
onEnd: Callback): void;
savePackage(fileName: string, json: Package, callback: Callback): void;
}
interface IUploadTarball extends stream$PassThrough {
abort(): void;
done(): void;
}
interface IReadTarball extends stream$PassThrough {
abort(): void;
done(): void;
}
```
> This API still is experimental and might change next minor versions. The default [LocalStorage plugin](https://github.com/verdaccio/local-storage) it comes built-in in `verdaccio` and it is being
loaded if any storage plugin has been defined.

162
docs/docker.md Normal file
View File

@@ -0,0 +1,162 @@
---
id: docker
title: Docker
---
To pull the latest pre-built [docker image](https://hub.docker.com/r/verdaccio/verdaccio/):
```bash
docker pull verdaccio/verdaccio
```
## Tagged Versions
Since version `v2.x` you can pull docker images by [tag](https://hub.docker.com/r/verdaccio/verdaccio/tags/), as follows:
For a major version:
```bash
docker pull verdaccio/verdaccio:2
```
For a minor version:
```bash
docker pull verdaccio/verdaccio:2.1
```
For a specific (patch) version:
```bash
docker pull verdaccio/verdaccio:2.1.7
```
For the next major release using the `beta` version.
```bash
docker pull verdaccio/verdaccio:beta
```
The Canary version (master branch) is tagged as `alpha`
```bash
docker pull verdaccio/verdaccio:alpha
```
> If you are interested on a list of tags, [please visit the Docker Hub website](https://hub.docker.com/r/verdaccio/verdaccio/tags/).
## Running verdaccio using Docker
To run the docker container:
```bash
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
```
The last argument defines which image to use.
The above line will pull the latest prebuilt image from dockerhub, if you haven't done that already.
If you have [build an image locally](#build-your-own-docker-image) use `verdaccio` as the last argument.
You can use `-v` to mount `conf` and `storage` to the hosts filesystem:
```bash
V_PATH=/path/for/verdaccio; docker run -it --rm --name verdaccio -p 4873:4873 \
-v $V_PATH/conf:/verdaccio/conf \
-v $V_PATH/storage:/verdaccio/storage \
verdaccio/verdaccio
```
### Docker and custom port configuration
Any `host:port` configured in `conf/config.yaml` under `listen` is currently ignored when using docker.
If you want to reach verdaccio docker instance under different port, lets say `5000`
in your `docker run` command replace `-p 4873:4873` with `-p 5000:4873`.
In case you need to specify which port to listen to **in the docker container**,
since version 2.?.? you can do so by providing additional arguments to `docker run`: `--env PORT=5000`
This changes which port the docker container exposes and the port verdaccio listens to.
Of course the numbers you give to `-p` paremeter need to match,
so assuming you want them to all be the same this is what you could copy, paste and adopt:
```bash
PORT=5000; docker run -it --rm --name verdaccio \
--env PORT -p $PORT:$PORT
verdaccio/verdaccio
```
### Using HTTPS with Docker
You can configure the protocol verdaccio is going to listen on, similarly to the port configuration.
You have to overwrite the default value("http") of the `PROTOCOL` environment variable to "https", after you specified the certificates in the config.yaml.
```bash
PROTOCOL=https; docker run -it --rm --name verdaccio \
--env PROTOCOL -p 4873:4873
verdaccio/verdaccio
```
### Using docker-compose
1. Get the latest version of [docker-compose](https://github.com/docker/compose).
2. Build and run the container:
```bash
$ docker-compose up --build
```
You can set the port to use (for both container and host) by prefixing the above command with `PORT=5000 `.
Docker will generate a named volume in which to store persistent application data. You can use `docker inspect` or `docker volume inspect` to reveal the physical location of the volume and edit the configuration, such as:
```
$ docker volume inspect verdaccio_verdaccio
[
{
"Name": "verdaccio_verdaccio",
"Driver": "local",
"Mountpoint": "/var/lib/docker/volumes/verdaccio_verdaccio/_data",
"Labels": null,
"Scope": "local"
}
]
```
## Build your own Docker image
```bash
docker build -t verdaccio .
```
There is also an npm script for building the docker image, so you can also do:
```bash
npm run build:docker
```
Note: The first build takes some minutes to build because it needs to run `npm install`,
and it will take that long again whenever you change any file that is not listed in `.dockerignore`.
If you want to use the docker image on a rpi or a compatible device there is also a dockerfile available.
To build the docker image for raspberry pi execute:
```bash
npm run build:docker:rpi
```
Please note that for any of the above docker commands you need to have docker installed on your machine and the docker executable should be available on your `$PATH`.
## Docker Examples
There is a separate repository that hosts multiple configurations to compose Docker images with `verdaccio`, for instance, as reverse proxy:
https://github.com/verdaccio/docker-examples
## Docker Custom Builds
* [docker-verdaccio-gitlab](https://github.com/snics/docker-verdaccio-gitlab)
* [docker-verdaccio](https://github.com/deployable/docker-verdaccio)
* [docker-verdaccio-s3](https://github.com/asynchrony/docker-verdaccio-s3) Private NPM container that can backup to s3
* [docker-verdaccio-ldap](https://github.com/snadn/docker-verdaccio-ldap)
* [verdaccio-ldap](https://github.com/nathantreid/verdaccio-ldap)
* [verdaccio-compose-local-bridge](https://github.com/shingtoli/verdaccio-compose-local-bridge)
* [docker-verdaccio](https://github.com/Global-Solutions/docker-verdaccio)
* [verdaccio-docker](https://github.com/idahobean/verdaccio-docker)
* [verdaccio-server](https://github.com/andru255/verdaccio-server)
* [coldrye-debian-verdaccio](https://github.com/coldrye-docker/coldrye-debian-verdaccio) docker image providing verdaccio from coldrye-debian-nodejs.

104
docs/home.md Normal file
View File

@@ -0,0 +1,104 @@
---
id: home
title: "Verdaccio npm proxy private registry"
---
<div class="top-section-home">
<div class="logo-section"></div>
<div class="title-section">
site.title
</div>
<div class="subtitle-section">
site.description
</div>
<div class="badges">
<span>
<a href="https://github.com/verdaccio/verdaccio">
<img src="https://img.shields.io/github/stars/verdaccio/verdaccio.svg?style=social&label=Star&maxAge=3600" style="max-width:100%;">
</a>
</span>
<span>
<a href="https://www.npmjs.org/package/verdaccio">
<img src="https://img.shields.io/npm/v/verdaccio.svg" alt="npm version badge">
</a>
</span>
<span>
<a href="https://www.npmjs.org/package/verdaccio">
<img src="https://camo.githubusercontent.com/81e53cc0a99c3ae97709fa66232a5807c346c61e/687474703a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f76657264616363696f2e737667" alt="downloads badge" data-canonical-src="http://img.shields.io/npm/dm/verdaccio.svg" style="max-width:100%;">
</a>
</span>
</div>
<div class="link-section">
<a href="https://github.com/verdaccio" title="Github verdaccio page">GitHub</a>
<a href="https://github.com/verdaccio/verdaccio/tree/master/wiki" title="Documentation">Documentation</a>
</div>
</div>
## Easy to Install
One single command to install the application
```sh
$> npm install --global verdaccio
# or
$> yarn global add verdaccio
```
## Easy to Set Up
Set your verdaccio registry as default
```sh
$> npm set registry http://localhost:4873
$> npm adduser --registry http://localhost:4873
```
## Easy to Use
Run it in your terminal
```sh
$> verdaccio
warn --- config file - /home/.config/verdaccio/config.yaml
warn --- http address - http://localhost:5555/ - verdaccio/2.2.0
```
#### That's it ! Enjoy your **private package manager**.
##### and all the most popular npm clients are supported.
<div class="client-support">
<div class="client">
<img src="css/icon/npm-logo.svg" alt="Docker Support" width="200"/>
</div>
<div class="client">
<img src="css/icon/yarn-logo.svg" alt="Docker Support" width="200"/>
</div>
</div>
<div class="section">
<h1>
Docker Ready
</h1>
<a href="https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md" target="_blank">
<img src="css/icon/docker.jpeg" alt="Docker Support" width="200"/>
</a>
</div>

109
docs/iis-server.md Normal file
View File

@@ -0,0 +1,109 @@
---
id: iss-server
title: "Installing on IIS server"
---
These instructions were written for Windows Server 2012, IIS 8, [Node.js 0.12.3](https://nodejs.org/), [iisnode 0.2.16](https://github.com/tjanczuk/iisnode) and [verdaccio 2.1.0](https://github.com/verdaccio/verdaccio).
* Install IIS Install [iisnode](https://github.com/tjanczuk/iisnode).
Make sure you install prerequisites (Url Rewrite Module & node) as explained in the instructions for iisnode.
* Create a new folder in Explorer where you want to host verdaccio.
For example `C:\verdaccio`.
Save [package.json](https://github.com/verdaccio/verdaccio/wiki/Installing-on-IIS-server#packagejson),
[start.js](https://github.com/verdaccio/verdaccio/wiki/Installing-on-IIS-server#startjs)
and [web.config](https://github.com/verdaccio/verdaccio/wiki/Installing-on-IIS-server#webconfig) in this folder.
* Create a new site in Internet Information Services Manager. You can name it whatever you want.
I'll call it verdaccio in these [instructions](http://www.iis.net/learn/manage/configuring-security/application-pool-identities). Specify the path to where you saved all files and a port number.
* Go back to Explorer and give the user that runs the application pool modify rights to the folder you just created. If you've named the new site verdaccio and did not change the app pool, it's running under an ApplicationPoolIdentity and you should give the user IIS AppPool\verdaccio modify rights see instructions if you need help. (You can restrict access later if you want so that it only has modify rights on the iisnode and verdaccio\storage)
* Start a command prompt and execute the commands below to download verdaccio:
````
cd c:\verdaccio
npm install
````
* Make sure you have an inbound rule accepting TCP traffic to the port in Windows Firewall
* Thats it! Now you can navigate to the host and port that you specified
I wanted the `verdaccio` site to be the default site in IIS so I did the following:
* I made sure the .npmrc file in `c:\users{yourname}\` had the registry set to `"registry=http://localhost/"`
* I stopped the "Default Web Site" and only start the site "verdaccio" site in IIS
* I set the bindings to "http", ip address "All Unassigned" on port 80, ok any warning or prompts
These instructions are based on [Host Sinopia in IIS
on Windows](https://gist.github.com/HCanber/4dd8409f79991a09ac75). I had to tweak my web config as per below but you may find the original from the
for mentioned link works better
A default configuration file will be created `c:\verdaccio\verdaccio\config.yaml`
### package.json
````json
{
"name": "iisnode-verdaccio",
"version": "1.0.0",
"description": "Hosts verdaccio in iisnode",
"main": "start.js",
"dependencies": {
"verdaccio": "^2.1.0"
}
}
````
### start.js
````bash
process.argv.push('-l', 'unix:' + process.env.PORT);
require('./node_modules/verdaccio/src/lib/cli.js');
````
### web.config
````xml
<configuration>
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<!-- indicates that the start.js file is a node.js application
to be handled by the iisnode module -->
<handlers>
<remove name="WebDAV" />
<add name="iisnode" path="start.js" verb="*" modules="iisnode" resourceType="Unspecified" requireAccess="Execute" />
<add name="WebDAV" path="*" verb="*" modules="WebDAVModule" resourceType="Unspecified" requireAccess="Execute" />
</handlers>
<rewrite>
<rules>
<!-- iisnode folder is where iisnode stores it's logs. These should
never be rewritten -->
<rule name="iisnode" stopProcessing="true">
<match url="iisnode*" />
<action type="None" />
</rule>
<!-- Rewrite all other urls in order for verdaccio to handle these -->
<rule name="verdaccio">
<match url="/*" />
<action type="Rewrite" url="start.js" />
</rule>
</rules>
</rewrite>
<!-- exclude node_modules directory and subdirectories from serving
by IIS since these are implementation details of node.js applications -->
<security>
<requestFiltering>
<hiddenSegments>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
````

47
docs/install.md Normal file
View File

@@ -0,0 +1,47 @@
---
id: installation
title: "Installation"
---
Verdaccio is a multiplatform web application, to install you need at least some prerequisites.
#### Prerequisites
1. Node higher than
- For version `verdaccio@2.x` we support from Node `v4.6.1`.
- For version `verdaccio@3.x` we support as minimum Node `6.12.0`
2. npm `>=3.x` or `yarn`
3. The web interface support browsers `Chrome, Firefox, Edge, and IE9`
## Installing the CLI
`verdaccio` must be install globaly using any of the most modern
Using `npm`
```bash
npm install -g verdaccio
```
or using `yarn`
```bash
yarn global add verdaccio
```
## Basic Usage
Once has been installed you only need to execute the CLI command.
```bash
$> verdaccio
warn --- config file - /home/.config/verdaccio/config.yaml
warn --- http address - http://localhost:5555/ - verdaccio/3.0.0
```
![](https://cdn-images-1.medium.com/max/720/1*jDHnZ7_68u5s1lFK2cygnA.gif)
For more information about CLI please [read the cli section](cli.md).
## Docker Image
`verdaccio` has a official docker image you can use, in the most of cases is good enough just the default configuration, for more information about how to install the official image [read the docker section](docker.md).

99
docs/kubernetes.md Normal file
View File

@@ -0,0 +1,99 @@
---
id: kubernetes
title: "Kubernetes"
---
You can find instructions to deploy Verdaccio on a Kubernetes cluster on the
[verdaccio/docker-example](https://github.com/verdaccio/docker-examples/tree/master/kubernetes-example)
repository. However, the recommended method to install Verdaccio on a Kubernetes
cluster is to use [Helm](https://helm.sh). Helm is a
[Kubernetes](https://kubernetes.io) package manager which bring multiple
advantages.
## Helm
### Setup Helm
If you haven't used Helm before, you need to setup the Helm controller called
Tiller:
```bash
helm init
```
### Install
Deploy the Helm [stable/verdaccio](https://github.com/kubernetes/charts/tree/master/stable/verdaccio)
chart. In this example we use `npm` as release name:
```bash
helm install --name npm stable/verdaccio
```
### Deploy a specific version
```bash
helm install --name npm --set image.tag=2.6.5 stable/verdaccio
```
### Upgrading Verdaccio
```bash
helm upgrade npm stable/verdaccio
```
### Uninstalling
```bash
helm del --purge npm
```
**Note:** this command delete all the resources, including packages that you may
have previously published to the registry.
### Custom Verdaccio configuration
You can customize the Verdaccio configuration using a Kubernetes *configMap*.
#### Prepare
Copy the [existing configuration](https://github.com/verdaccio/verdaccio/blob/master/conf/full.yaml)
and adapt it for your use case:
```bash
wget https://github.com/verdaccio/verdaccio/blob/master/conf/full.yaml -O config.yaml
```
**Note:** Make sure you are using the right path for the storage that is used for
persistency:
```yaml
storage: /verdaccio/storage/data
auth:
htpasswd:
file: /verdaccio/storage/htpasswd
```
#### Deploy the configMap
Deploy the `configMap` to the cluster
```bash
kubectl create configmap verdaccio-config --from-file ./config.yaml
```
#### Deploy Verdaccio
Now you can deploy the Verdaccio Helm chart and specify which configuration to
use:
```bash
helm install --name npm --set customConfigMap=verdaccio-config stable/verdaccio
```
## Rancher Support
[Rancher](http://rancher.com/) is a complete container management platform that makes managing and using containers in production really easy.
* [verdaccio-rancher](https://github.com/lgaticaq/verdaccio-rancher)

25
docs/logger.md Normal file
View File

@@ -0,0 +1,25 @@
---
id: logger
title: "Logger"
---
As any web application, verdaccio has a customisable built-in logger. You can define multiple types of outputs.
```yaml
logs:
# console output
- {type: stdout, format: pretty, level: http}
# file output
- {type: file, path: verdaccio.log, level: info}
```
Use `SIGUSR2` to notify the application, the log-file was rotated and it needs to reopen it.
### Configuration
Property | Type | Required | Example | Support | Description
--- | --- | --- | --- | --- | ---
type | string | No | [stdout, file] | all | define the output
path | string | No | verdaccio.log | all | if type is file, define the location of that file
format | string | No | [pretty, pretty-timestamped] | all | output format
level | string | No | [fatal, error, warn, http, info, debug, trace] | all | verbose level

42
docs/node-api.md Normal file
View File

@@ -0,0 +1,42 @@
---
id: node-api
title: "Node API"
---
Verdaccio can be invoqued programmatically. The node API was introduced after version `verdaccio@3.0.0-alpha.10`.
## Usage
#### Programmatically
```js
import startServer from 'verdaccio';
startServer(configJsonFormat, 6000, store, '1.0.0', 'verdaccio',
(webServer, addrs, pkgName, pkgVersion) => {
webServer.listen(addr.port || addr.path, addr.host, () => {
console.log('verdaccio running');
});
});
```
## Other implementations
* [verdaccio-server](https://github.com/boringame/verdaccio-server) local npm registry proxy server
```js
// js
import * as verdaccioServer from "verdaccio-server";
verdaccioServer.start();
verdaccioServer.stop();
verdaccioServer.list();
verdaccioServer.stopAll();
verdaccioServer.show();
verdaccioServer.cli();
// windows .net2
verdaccioServer.serviceInstall();
verdaccioServer.serviceUninstall();
verdaccioServer.serviceStart();
verdaccioServer.serviceStop();
verdaccioServer.serviceRestart();
```

58
docs/notifications.md Normal file
View File

@@ -0,0 +1,58 @@
---
id: notifications
title: "Notifications"
---
Notify was built primarily to use with Slack's Incoming
webhooks, but will also deliver a simple payload to
any endpoint. Currently only active for `publish` / `create`
commands.
## Usage
An example with a **hipchat** hook:
#### Single notification
```yaml
notify:
method: POST
headers: [{'Content-Type': 'application/json'}]
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
```
#### Multiple notification
```yaml
notify:
'example-package-1'
method: POST
headers: [{'Content-Type': 'application/json'}]
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
'example-package-2'
method: POST
headers: [{'Content-Type': 'application/json'}]
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
'example-package-3'
method: POST
headers: [{'Content-Type': 'application/json'}]
endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
```
## Configuration
Property | Type | Required | Support | Default | Description
--- | --- | --- | --- | --- | ---
method| string | No | all | | HTTP verb
packagePattern| string | No | all | | Only run this notification if the package name matches the regular expression
packagePatternFlags| string | No | all | | Any flags to be used with the regular expression
headers| array/object | Yes | all | | If this endpoint requires specific headers, set them here as an array of key: value objects.
endpoint| string | Yes | all | | set the URL endpoint for this call
content| string | Yes | all | | any Handlebar expressions

118
docs/packages.md Normal file
View File

@@ -0,0 +1,118 @@
---
id: packages
title: "Package Access"
---
It's a series of contrains that allow or restrict access to the local storage based in specific criteria.
The security constraints remains on shoulders of the plugin being used, by default `verdaccio` uses the `htpasswd` plugin. If you use a different plugin the behaviour might be different. The default plugin `htpasswd` does not handles by itself `allow_access` and `allow_publish`, it's use an internal fallback in case the plugin is not ready for it. For more information about permissions visit [the authentification section in the wiki](auth.md).
### Usage
```yalm
packages:
# scoped packages
'@scope/*':
allow_access: all
allow_publish: all
proxy: server2
'private-*':
access: all
publish: all
proxy_access: uplink1
'**':
# allow all users (including non-authenticated users) to read and
# publish all packages
allow_access: all
allow_publish: all
proxy_access: uplink2
```
if none is specified, the default one remains
```yaml
packages:
'**':
access: all
publish: $authenticated
```
The list of valid groups according the default plugins are
```js
'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous'
```
All users recieves all those set of permissions independently of is anonymous or not plus the groups provided by the plugin, in case of `htpasswd` return the username as a group. For instance, if you are logged as `npmUser` the list of groups will be.
```js
// groups without '$' are going to be deprecated eventually
'$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous', 'npmUser'
```
If you want to protect specific set packages under your group, you need todo something like this. Let's use a `Regex` that covers all prefixed `npmuser-` packages. We recomend use a prefix for your packages, in that way it'd be easier to protect them.
```yaml
packages:
'npmuser-*':
access: npmuser
publish: npmuser
```
Restart `verdaccio` and in your console try to install `npmuser-core`.
```bash
$ npm install npmuser-core
npm install npmuser-core
npm ERR! code E403
npm ERR! 403 Forbidden: npmuser-core@latest
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/user/.npm/_logs/2017-07-02T12_20_14_834Z-debug.log
```
You can change the existing behaviour using a different plugin authentication. `verdaccio` just check whether the user that try to access or publish specific package belongs to the right group.
#### Set multiple groups
Define multiple access groups is fairly easy, just define them with a white space between them.
```yaml
'company-*':
allow_access: admin internal
allow_publish: admin
proxy_access: server1
'supersecret-*':
allow_access: secret super-secret-area ultra-secret-area
allow_publish: secret ultra-secret-area
proxy_access: server1
```
#### Blocking access to set of packages
If you want to block the acccess/publish to a specific group of packages. Just, do not define `access` and `publish`.
```yaml
packages:
'old-*':
'**':
access: all
publish: $authenticated
```
### Configuration
You can define mutiple `packages` and each of them must have an unique `Regex`.
Property | Type | Required | Example | Support | Description
--- | --- | --- | --- | --- | ---
allow_access/access | string | No | $all | all | define groups allowed to access the package
allow_publish/publish | string | No | $authenticated | all | define groups allowed to publish
proxy_access/proxy | string | No |npmjs | all | limit look ups for specific uplink
storage | boolean | No | [true,false] | all | TODO
We higlight recommend do not use **allow_access**/**allow_publish** and **proxy_access** anymore, those are deprecated, please use the short version of each of those (**access**/**publish**/**proxy**

93
docs/plugins.md Normal file
View File

@@ -0,0 +1,93 @@
---
id: plugins
title: "Plugins"
---
Verdaccio is an plugabble aplication. Currently supports multiple plugins only for [Authentication](auth.md) but there are plans to [improve the plugin system](https://github.com/verdaccio/verdaccio/issues/169). If you are interested to develop your own plugin, read the [development](development.md) section.
## Usage
### Installation
```bash
$> npm install --global verdaccio-activedirectory
```
`verdaccio` as a sinopia fork it has backward compability with plugins that are compatible with `sinopia@1.4.0`. In such case the installation is the same.
```
&> npm install --global sinopia-memory
```
### Configuration
Open the `config.yaml` file and update the `auth` section as follows:
The default configuration looks like this, due we use a build-in `htpasswd` plugin by default that you can disable just commenting out the following lines.
```yaml
htpasswd:
file: ./htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
#max_users: 1000
```
and replacing them with (in case you decide to use a `ldap` plugin.
```yaml
auth:
activedirectory:
url: "ldap://10.0.100.1"
baseDN: 'dc=sample,dc=local'
domainSuffix: 'sample.local'
```
### Multiple Auth plugins
This is tecnically possible, the plugins order becames important, the the credentials will resolved in order.
```yaml
auth:
htpasswd:
file: ./htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
#max_users: 1000
activedirectory:
url: "ldap://10.0.100.1"
baseDN: 'dc=sample,dc=local'
domainSuffix: 'sample.local'
```
This is a list of plugins compatible with **Verdaccio**.
## Sinopia Legacy Plugins
* [sinopia-npm](https://www.npmjs.com/package/sinopia-npm): auth plugin for sinopia supporting an npm registry.
* [sinopia-memory](https://www.npmjs.com/package/sinopia-memory): auth plugin for sinopia that keeps users in memory.
* [sinopia-github-oauth-cli](https://www.npmjs.com/package/sinopia-github-oauth-cli).
* [sinopia-crowd](https://www.npmjs.com/package/sinopia-crowd): auth plugin for sinopia supporting atlassian crowd.
* [sinopia-activedirectory](https://www.npmjs.com/package/sinopia-activedirectory): Active Directory authentication plugin for sinopia.
* [sinopia-github-oauth](https://www.npmjs.com/package/sinopia-github-oauth): authentication plugin for sinopia2, supporting github oauth web flow.
* [sinopia-delegated-auth](https://www.npmjs.com/package/sinopia-delegated-auth): Sinopia authentication plugin that delegates authentication to another HTTP URL
* [sinopia-altldap](https://www.npmjs.com/package/sinopia-altldap): Alternate LDAP Auth plugin for Sinopia
* [sinopia-request](https://www.npmjs.com/package/sinopia-request): An easy and fully auth-plugin with configuration to use an external API.
* [sinopia-htaccess-gpg-email](https://www.npmjs.com/package/sinopia-htaccess-gpg-email): Generate password in htaccess format, encrypt with GPG and send via MailGun API to users.
* [sinopia-mongodb](https://www.npmjs.com/package/sinopia-mongodb): An easy and fully auth-plugin with configuration to use a mongodb database.
* [sinopia-htpasswd](https://www.npmjs.com/package/sinopia-htpasswd): auth plugin for sinopia supporting htpasswd format.
* [sinopia-leveldb](https://www.npmjs.com/package/sinopia-leveldb): a leveldb backed auth plugin for sinopia private npm.
* [sinopia-gitlabheres](https://www.npmjs.com/package/sinopia-gitlabheres): Gitlab authentication plugin for sinopia.
* [sinopia-gitlab](https://www.npmjs.com/package/sinopia-gitlab): Gitlab authentication plugin for sinopia
* [sinopia-ldap](https://www.npmjs.com/package/sinopia-ldap): LDAP auth plugin for sinopia.
* [sinopia-github-oauth-env](https://www.npmjs.com/package/sinopia-github-oauth-env) Sinopia authentication plugin with github oauth web flow.
## Verdaccio Plugins (since 2.1.x)
* [verdaccio-bitbucket](https://github.com/idangozlan/verdaccio-bitbucket): Bitbucket authentication plugin for verdaccio.
* [verdaccio-ldap](https://www.npmjs.com/package/verdaccio-ldap): LDAP auth plugin for verdaccio.
* [verdaccio-active-directory](https://github.com/nowhammies/verdaccio-activedirectory): Active Directory authentication plugin for verdaccio
* [verdaccio-gitlab](https://github.com/bufferoverflow/verdaccio-gitlab): use GitLab Personal Access Token to authenticate
## Caveats
Not all these plugins are been tested continuously, some of them might not work at all. Please if you found any issue feel free to notify the owner of each plugin.

View File

@@ -0,0 +1,44 @@
---
id: protect-your-dependencies
title: "Protecting packages"
---
`verdaccio` allows you protect publish, to achieve that you will need to set up correctly your [packages acces](packages).
### Package configuration
Let's see for instance the following set up. You have a set of dependencies what are prefixed with `my-company-*` and you need to protect them from anonymous or another logged user without right credentials.
```yaml
'my-company-*':
access: admin teamA teamB teamC
publish: admin teamA
proxy: npmjs
```
With this configuration, basically we allow to groups **admin** and **teamA** to * publish* and **teamA** **teamB** **teamC** *access* to such dependencies.
### Use case: teamD try to access the dependency
So, if I am logged as **teamD**. I shouldn't be able to access all dependencies that match with `my-company-*` pattern.
```bash
➜ npm whoami
teamD
```
I won't have access to such dependencies and also won't be visible via web for user **teamD**. If I try to access the following will happen.
```bash
➜ npm install my-company-core
npm ERR! code E403
npm ERR! 403 Forbidden: webpack-1@latest
```
or with `yarn`
```bash
➜ yarn add my-company-core
yarn add v0.24.6
info No lockfile found.
[1/4] 🔍 Resolving packages...
error An unexpected error occurred: "http://localhost:5555/webpack-1: unregistered users are not allowed to access package my-company-core".
```

30
docs/repositories.md Normal file
View File

@@ -0,0 +1,30 @@
---
id: source-code
title: "Source Code"
---
`verdaccio` is composed or multiple repositories you might contribute. Look into the **issues** tab whether there is a ticket waiting for you 🤠.
Repository | Usage | Stack
--- | ---| ---|
[https://github.com/verdaccio/verdaccio](https://github.com/verdaccio/verdaccio) | The main repository | Node, Express, async, React, Babel, ES6, Mocha, Markdown, HTML, Sass
[https://github.com/verdaccio/streams](https://github.com/verdaccio/streams) | Small library to handle streams | ES6, Babel, *Soon: Flow*
[https://github.com/verdaccio/file-locking](https://github.com/verdaccio/file-locking) | Small library to handle locked files | ES6, Babel, *Soon: Flow*
[https://github.com/verdaccio/local-storage](https://github.com/verdaccio/local-storage) | Default dependency for verdaccio to handle local file system storage (since `v3.x`) | ES6, Babel, Flow
[https://github.com/verdaccio/flow-types](https://github.com/verdaccio/flow-types) | `flow` type definitions for verdaccio and sub dependencies. | Flow, flow-typed
[https://github.com/verdaccio/verdaccio.github.io](https://github.com/verdaccio/verdaccio.github.io) | Public `verdaccio` website and future documentation page. | Markdown, HTML, Sass, Github Pages
[https://github.com/verdaccio/docker-examples](https://github.com/verdaccio/docker-examples) | Docker examples with `docker-compose` to play around with integrations, (nginx, kubernetes, apache, ldap, etc..) | Docker Compose, Docker
[https://github.com/verdaccio/puppet-verdaccio](https://github.com/verdaccio/puppet-verdaccio) | Puppet support | Puppet
[https://github.com/verdaccio/ansible-verdaccio](https://github.com/verdaccio/ansible-verdaccio) | Ansible support | Ansible
[https://github.com/verdaccio/verdaccio-cookbook](https://github.com/verdaccio/verdaccio-cookbook) | Chef support | Chef
[https://github.com/chainlink/charts/tree/master/stable/verdaccio](https://github.com/chainlink/charts/tree/master/stable/verdaccio) | Kubernetes support | Kubernetes
## Experimental Repos
The following repositories aims to be part of the future infraestructure of `verdaccio` and are just PoC looking for active colaborators.
Repository | Usage | Stack
--- | ---| ---|
[https://github.com/verdaccio/verdaccio-memory](https://github.com/verdaccio/verdaccio-memory) | An experimental storage in memory | ES6, Babel, Flow
[https://github.com/verdaccio/generator-verdaccio-plugin](https://github.com/verdaccio/generator-verdaccio-plugin) | Yeoman generators for future verdaccio plugins | ES6, Babel, Yeoman

90
docs/reverse-proxy.md Normal file
View File

@@ -0,0 +1,90 @@
---
id: reverse-proxy
title: "Reverse Proxy Setup"
---
## Apache
Apache and mod_proxy should not decode/encode slashes and leave them as they are:
````
<VirtualHost *:80>
AllowEncodedSlashes NoDecode
ProxyPass /npm http://127.0.0.1:4873 nocanon
ProxyPassReverse /npm http://127.0.0.1:4873
</VirtualHost>
````
### Configuration with SSL
config.yaml
```yaml
url_prefix: https://npm.your.domain.com
```
Apache virtual server configuration
````
apacheconfig
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName npm.your.domain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/npm.your.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/npm.your.domain.com/privkey.pem
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
ProxyPass / http://127.0.0.1:4873 nocanon
ProxyPassReverse / http://127.0.0.1:4873
</VirtualHost>
</IfModule>
````
## Nginx
````
server {
listen 80 default_server;
location / {
proxy_pass http://127.0.0.1:4873/;
proxy_set_header Host $host;
}
}
````
## Run behind reverse proxy with different domain and port
If you run verdaccio behind reverse proxy, you may noticed all resource file served as relaticve path, like `http://127.0.0.1:4873/-/static`
To resolve this issue, you should send real domain and port to verdaccio with `Host` heade
Nginx configure should look like this:
```nginx
location / {
proxy_pass http://127.0.0.1:4873/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
```
For this case, `url_prefix` should NOT set in verdaccio config
---
or a sub-directory installation:
```nginx
location ~ ^/verdaccio/(.*)$ {
proxy_pass http://127.0.0.1:4873/$1;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
```
For this case, `url_prefix` should set to `/verdaccio/`
> Note: There is a Slash after install path (`https://your-domain:port/vardaccio/`)!

75
docs/server.md Normal file
View File

@@ -0,0 +1,75 @@
---
id: server-configuration
title: "Server Configuration"
---
This is mostly basic linux server configuration stuff but I felt it important to document and share the steps I took to get verdaccio running permanently on my server. You will need root (or sudo) permissions for the following.
## Running as a separate user
First create the verdaccio user:
```bash
$ sudo adduser --disabled-login --gecos 'Verdaccio NPM mirror' verdaccio
```
You create a shell as the verdaccio user using the following command:
```bash
$ sudo su verdaccio
$ cd ~
```
The 'cd ~' command send you to the home directory of the verdaccio user. Make sure you run verdaccio at least once to generate the config file. Edit it according to your needs.
## Listening on all addresses
If you want to listen to every external address set the listen directive in the config to:
```yaml
# you can specify listen address (or simply a port)
listen: 0.0.0.0:4873
```
If you are running `verdaccio` in a Amazon EC2 Instance, [you will need set the listen in change your config file](https://github.com/verdaccio/verdaccio/issues/314#issuecomment-327852203) as is described above.
> Apache configure? Please check out the [Reverse Proxy Setup](reverse-proxy.md)
## Keeping verdaccio running forever
We can use the node package called 'forever' to keep verdaccio running all the time.
https://github.com/nodejitsu/forever
First install forever globally:
```bash
$ sudo npm install -g forever
```
Make sure you've started verdaccio at least once to generate the config file and write down the created admin user. You can then use the following command to start verdaccio:
```bash
$ forever start `which verdaccio`
```
You can check the documentation for more information on how to use forever.
## Surviving server restarts
We can use crontab and forever together to restart verdaccio after a server reboot.
When you're logged in as the verdaccio user do the following:
```bash
$ crontab -e
```
This might ask you to choose an editor. Pick your favorite and proceed.
Add the following entry to the file:
```
@reboot /usr/bin/forever start /usr/lib/node_modules/verdaccio/bin/verdaccio
```
The locations may vary depending on your server setup. If you want to know where your files are you can use the 'which' command:
```bash
$ which forever
$ which verdaccio
```

52
docs/ssl.md Normal file
View File

@@ -0,0 +1,52 @@
---
id: ssl
title: "Set up the SSL Certificates"
---
Follow this instructions to configure a SSL certificate to serve NPM registry under HTTPS.
* Update the listen property in your `~/.config/verdaccio/config.yaml`:
````
listen: 'https://your.domain.com/'
````
Once you update the listen and try to run verdaccio again will ask for certificates.
* Generate your certificates
````
$ openssl genrsa -out /Users/user/.config/verdaccio/verdaccio-key.pem 2048
$ openssl req -new -sha256 -key /Users/user/.config/verdaccio/verdaccio-key.pem -out /Users/user/.config/verdaccio/verdaccio-csr.pem
$ openssl x509 -req -in /Users/user/.config/verdaccio/verdaccio-csr.pem -signkey /Users/user/.config/verdaccio/verdaccio-key.pem -out /Users/user/.config/verdaccio/verdaccio-cert.pem
````
* Edit your config file `/Users/user/.config/verdaccio/config.yaml` and add the following section
````
https:
key: /Users/user/.config/verdaccio/verdaccio-key.pem
cert: /Users/user/.config/verdaccio/verdaccio-cert.pem
ca: /Users/user/.config/verdaccio/verdaccio-csr.pem
````
Alternatively, if you have a certificate as `server.pfx` format, you can add the following configuration section. The passphrase is optional and only needed, if your certificate is encrypted.
````
https:
pfx: /Users/user/.config/verdaccio/server.pfx
passphrase: 'secret'
````
More info on the `key`, `cert`, `ca`, `pfx` and `passphrase` arguments on the [Node documentation](https://nodejs.org/api/tls.html#tls_tls_createsecurecontext_options)
* Run `verdaccio` in your command line.
* Open the browser and load `https://your.domain.com:port/`
This instructions are mostly valid under OSX and Linux, on Windows the paths will vary but, the steps are the same.
## Docker
If you are using the Docker image, you have to set the `PROTOCOL` environment variable to `https` as the `listen` argument is provided on the [Dockerfile](https://github.com/verdaccio/verdaccio/blob/master/Dockerfile#L43), and thus ignored from your config file.
You can also set the `PORT` environment variable if you are using a different port than `4873`.

145
docs/test.md Normal file
View File

@@ -0,0 +1,145 @@
---
id: unit-testing
title: "Unit Testing"
---
All tests are split in three folders:
- `test/unit` - Tests that cover functions that transform data in an non-trivial way. These tests simply `require()` a few files and run code in there, so they are very fast.
- `test/functional` - Tests that launch a verdaccio instance and perform a series of requests to it over http. They are slower than unit tests.
- `test/integration` - Tests that launch a verdaccio instance and do requests to it using npm. They are really slow and can hit a real npm registry. **unmaintained test**
Unit and functional tests are executed automatically by running `npm test` from the project's root directory. Integration tests are supposed to be executed manually from time to time.
We use `jest` for all test.
## The npm Script
To run the test script you can use either `npm` or `yarn`.
```
yarn run test
```
That will trigger only two first groups of test, unit and functional.
### Using test/unit
The following is just an example how a unit test should looks like. Basically follow the `jest` standard.
Try to describe what exactly does the unit test in a single sentence in the header of the `test` section.
```javacript
const verdaccio = require('../../src/api/index');
const config = require('./partials/config');
describe('basic system test', () => {
beforeAll(function(done) {
// something important
});
afterAll((done) => {
// undo something important
});
test('server should respond on /', done => {
// your test
done();
});
});
```
### Using test/functional
Funtional testing in verdaccio has a bit more of complextity that needs a deep explanation in order to success in your experience.
All starts in the `index.js` file. Let's dive in into it.
```javascript
// we create 3 server instances
const config1 = new VerdaccioConfig(
'./store/test-storage',
'./store/config-1.yaml',
'http://localhost:55551/');
const config2 = new VerdaccioConfig(
'./store/test-storage2',
'./store/config-2.yaml',
'http://localhost:55552/');
const config3 = new VerdaccioConfig(
'./store/test-storage3',
'./store/config-3.yaml',
'http://localhost:55553/');
const server1: IServerBridge = new Server(config1.domainPath);
const server2: IServerBridge = new Server(config2.domainPath);
const server3: IServerBridge = new Server(config3.domainPath);
const process1: IServerProcess = new VerdaccioProcess(config1, server1, SILENCE_LOG);
const process2: IServerProcess = new VerdaccioProcess(config2, server2, SILENCE_LOG);
const process3: IServerProcess = new VerdaccioProcess(config3, server3, SILENCE_LOG);
const express: any = new ExpressServer();
...
// we check whether all instances has been started, since run in independent processes
beforeAll((done) => {
Promise.all([
process1.init(),
process2.init(),
process3.init()]).then((forks) => {
_.map(forks, (fork) => {
processRunning.push(fork[0]);
});
express.start(EXPRESS_PORT).then((app) =>{
done();
}, (err) => {
done(err);
});
}).catch((error) => {
done(error);
});
});
// after finish all, we ensure are been stoped
afterAll(() => {
_.map(processRunning, (fork) => {
fork.stop();
});
express.server.close();
});
```
### Usage
Here we are gonna describe how it looks like an usual functional test, check inline for more detail information.
#### The lib/server.js
The server class is just a wrapper that simulates a `npm` client and provides a simple API for the funtional test.
As we mention in the previous section, we are creating 3 process servers that are accessible in each process as `server1`, `server2` and ``server3`.
Using such reference you will be able to send request to any of the 3 instance running.
```javascript
export default function(server) {
// we recieve any server instance via arguments
test('add tag - 404', () => {
// we interact with the server instance.
return server.addTag('testpkg-tag', 'tagtagtag', '0.0.1').status(404).body_error(/no such package/);
});
});
```
### Test/integration
These section never has been used, but we are looking for help to make it run properly. **All new ideas are very welcome.**

46
docs/uplinks.md Normal file
View File

@@ -0,0 +1,46 @@
---
id: uplinks
title: "Uplinks"
---
An *uplink* is a link with an external registry that provides acccess to external packages.
![Uplinks](/img/uplinks.png)
### Usage
```yaml
uplinks:
npmjs:
url: https://registry.npmjs.org/
server2:
url: http://mirror.local.net/
timeout: 100ms
server3:
url: http://mirror2.local.net:9000/
baduplink:
url: http://localhost:55666/
```
### Configuration
You can define mutiple uplinks and each of them must have an unique name (key). They can have two properties:
Property | Type | Required | Example | Support | Description | Default
--- | --- | --- | --- | --- | --- | ---
url | string | Yes | https://registry.npmjs.org/ | all | The registry url | npmjs
ca | string | No | ~./ssl/client.crt' | all | SSL path certificate | No default
timeout | string | No | 100ms | all | set new timeout for the request | 30s
maxage | string | No |10m | all | limit maximun failure request | 2m
fail_timeout | string | No |10m | all | defines max time when a request becomes a failure | 5m
max_fails | number | No |2 | all | limit maximun failure request | 2
cache | boolean | No |[true,false] | >= 2.1 | avoid cache tarballs | true
auth | list | No | type: [bearer,basic], [token: "token",token_env: [true,\<get name process.env\>]] | >= 2.5 | assigns the header 'Authorization' see: http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules | disabled
headers | list | No | authorization: "Basic YourBase64EncodedCredentials==" | all | list of custom headers for the uplink | disabled
### You Must know
* Uplinks must be registries compatible with the `npm` endpoints. Eg: *verdaccio*, `sinopia@1.4.0`, *npmjs registry*, *yarn registry*, *JFrog*, *Nexus* and more.
* Setting `cache` to false will help to save space in your hard drive. This will avoid store `tarballs` but [it will keep metadata in folders](https://github.com/verdaccio/verdaccio/issues/391).
* Exceed with multiple uplinks might slow down the lookup of your packages due for each request a npm client does, verdaccio does 1 call for each uplink.
* The (timeout, maxage and fail_timeout) format follow the [NGINX measurement units](http://nginx.org/en/docs/syntax.html)

32
docs/use-cases.md Normal file
View File

@@ -0,0 +1,32 @@
---
id: use-cases
title: "Use Cases"
---
## Using private packages
You can add users and manage which users can access which packages.
It is recommended that you define a prefix for your private packages, for example "local", so all your private things will look like this: `local-foo`. This way you can clearly separate public packages from private ones.
## Using public packages from npmjs.org
If some package doesn't exist in the storage, server will try to fetch it from npmjs.org. If npmjs.org is down, it serves packages from cache pretending that no other packages exist. Verdaccio will download only what's needed (= requested by clients), and this information will be cached, so if client will ask the same thing second time, it can be served without asking npmjs.org for it.
Example: if you successfully request express@3.0.1 from this server once, you'll able to do that again (with all it's dependencies) anytime even if npmjs.org is down. But say express@3.0.0 will not be downloaded until it's actually needed by somebody. And if npmjs.org is offline, this server would say that only express@3.0.1 (= only what's in the cache) is published, but nothing else.
## Override public packages
If you want to use a modified version of some public package `foo`, you can just publish it to your local server, so when your type `npm install foo`, it'll consider installing your version.
There's two options here:
1. You want to create a separate fork and stop synchronizing with public version.
If you want to do that, you should modify your configuration file so verdaccio won't make requests regarding this package to npmjs anymore. Add a separate entry for this package to *config.yaml* and remove `npmjs` from `proxy` list and restart the server.
When you publish your package locally, you should probably start with version string higher than existing one, so it won't conflict with existing package in the cache.
2. You want to temporarily use your version, but return to public one as soon as it's updated.
In order to avoid version conflicts, you should use a custom pre-release suffix of the next patch version. For example, if a public package has version 0.1.2, you can upload 0.1.3-my-temp-fix. This way your package will be used until its original maintainer updates his public package to 0.1.3.

24
docs/web.md Normal file
View File

@@ -0,0 +1,24 @@
---
id: webui
title: "Web User Interface"
---
<p align="center"><img src="https://firebasestorage.googleapis.com/v0/b/jotadeveloper-website.appspot.com/o/verdaccio_long_video2.gif?alt=media&token=4d20cad1-f700-4803-be14-4b641c651b41"></p>
Verdaccio has a web user interface to display only the private packges and can be customisable.
```yaml
web:
enable: true
title: Verdaccio
logo: logo.png
```
### Configuration
Property | Type | Required | Example | Support | Description
--- | --- | --- | --- | --- | ---
enable | boolean | No | true/false | all | allow to display the web interface
title | string | No | $authenticated | all | HTML head title description
logo | string | No | http://my.logo.domain/logo.png | all | a URI where logo is located

35
docs/what-is-verdaccio.md Normal file
View File

@@ -0,0 +1,35 @@
---
id: what-is-verdaccio
title: "What is Verdaccio?"
---
## In a nutshell
* It's a web app based on Node.js
* It's a private npm registry
* It's a local network proxy
* It's a Pluggable application
* It's a fairly easy install and use
* We offer Docker and Kubernetes support
* It is 100% compatible with yarn, npm and pnpm
* It was born based on `sinopia@1.4.0` fork and *backward compatible*
* Verdaccio means **A green color popular in late medieval Italy for fresco painting**.
## What's a registry
* A repository for packages that implements the CommonJS Compliant Package Registry specification for reading package info
* Store npm packages
* Provide an API compatible with npm clients
* Semantic Versioning (semver) compatible
```bash
curl -v https://registry.npmjs.org/aaa
* Connected to registry.npmjs.org (151.101.12.162) port 443 (#0)
* Connection #0 to host registry.npmjs.org left intact
{"_id":"aaa","_rev":"6-ad86dfc8720569871753b5bf561f2741","name":"aaa","description":"aaa...","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"aaa","version":"0.0.1","description":"aaa...","main":"index.js","scripts":{"test":"test.js"},"repository":{"type":"git","url":"http:/www.google.git"},"keywords":["math"],"author":{"name":"peter"},"license":"BSD","_id":"aaa@0.0.1","dist":
{"shasum":"a04fa88ad887a70dd5429652ce23823619dfd7c3","tarball":"https://registry.npmjs.org/aaa/-/aaa-0.0.1.tgz"},"_npmVersion":"1.1.62","_npmUser":{"name":"erhu65","email":"erhu65@gmail.com"},"maintainers":[{"name":"erhu65","email":"erhu65@gmail.com"}],"directories":{}},"0.0.2":{"name":"aaa","version":"0.0.2","description":"aaa...","main":"index.js","scripts":{"test":"test.js"},"repository":{"type":"git","url":"http:/www.google.git"},"keywords":["math"],"author":{"name":"peter"},"license":"BSD","_id":"aaa@0.0.2","dist":
{"shasum":"acd2f632b94b0f89765e75bb7b7549ce5b01caa2","tarball":"https://registry.npmjs.org/aaa/-/aaa-0.0.2.tgz"},"_npmVersion":"1.1.62","_npmUser":{"name":"erhu65","email":"erhu65@gmail.com"},"maintainers":[{"name":"erhu65","email":"erhu65@gmail.com"}],"directories":{}}},"readme":"ERROR: No README.md file found!","maintainers":[{"name":"erhu65","email":"erhu65@gmail.com"}],"timmacbook-j:verdaccio.mmacbookmacbook-j:verdaccio.master.git jpicmacbook-j:verdaccio.master.git jpicmacbookmacbookmacbookmacbookmacbook
````

57
docs/windows.md Normal file
View File

@@ -0,0 +1,57 @@
---
id: windows
title: "Installing As a Windows Service"
---
Loosely based upon the instructions found [here](http://asysadmin.tumblr.com/post/32941224574/running-nginx-on-windows-as-a-service). I crafted the following and it provided me with a fully working verdaccio service installation:
1. Create a directory for verdaccio
* mkdir `c:\verdaccio`
* cd `c:\verdaccio`
2. Install verdaccio locally (I ran into npm issues with global installs)
* npm install verdaccio
3. Create your `config.yaml` file in this location `(c:\verdaccio\config.yaml)`
4. Windows Service Setup
## Using NSSM
ALTERNATIVE METHOD: (WinSW package was missing when I tried to download it)
* Download [NSSM](https://www.nssm.cc/download/) and extract
* Add the path that contains nssm.exe to the PATH
* Open an administrative command
* Run nssm install verdaccio At a minimum you must fill in the Application tab Path,
Startup directory and Arguments fields. Assuming an install with node in the system path and a
location of c:\verdaccio the below values will work:
* Path: `node`
* Startup directory: `c:\verdaccio`
* Arguments: `c:\verdaccio\node_modules\verdaccio\src\lib\cli.js -c c:\verdaccio\config.yaml`
You can adjust other service settings under other tabs as desired. When you are done, click Install service button
* Start the service sc start verdaccio
## Using WinSW
* As of 2015-10-27, WinSW is no longer available at the below location. Please follow the Using NSSM instructions above.
* Download [WinSW](http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/)
* Place the executable (e.g. `winsw-1.9-bin.exe`) into this folder (`c:\verdaccio`) and rename it to `verdaccio-winsw.exe`
* Create a configuration file in `c:\verdaccio`, named `verdaccio-winsw.xml`
with the following configuration `xml verdaccio verdaccio verdaccio node c:\verdaccio\node_modules\verdaccio\src\lib\cli.js -c c:\verdaccio\config.yaml roll c:\verdaccio\ `.
* Install your service
* `cd c:\verdaccio`
* `verdaccio-winsw.exe install`
* Start your service
* `verdaccio-winsw.exe start`
Some of the above config is more verbose than I had expected, it appears as though 'workingdirectory'
is ignored, but other than that, this works for me and allows my verdaccio instance to
persist between restarts of the server, and also restart itself should there be any crashes of the verdaccio process.
## Repositories
* [verdaccio-deamon-windows](https://github.com/davidenke/verdaccio-deamon-windows)

199
flow-typed/npm/JSONStream_vx.x.x.js vendored Normal file
View File

@@ -0,0 +1,199 @@
// flow-typed signature: 12a8262920099086254f18882b49d862
// flow-typed version: <<STUB>>/JSONStream_v1.3.2/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'JSONStream'
*
* Fill this stub out by replacing all the `any` types.
*
* Once filled out, we encourage you to share your work with the
* community by sending a pull request to:
* https://github.com/flowtype/flow-typed
*/
declare module 'JSONStream' {
declare module.exports: any;
}
/**
* We include stubs for each file inside this npm package in case you need to
* require those files directly. Feel free to delete any files that aren't
* needed.
*/
declare module 'JSONStream/bin' {
declare module.exports: any;
}
declare module 'JSONStream/examples/all_docs' {
declare module.exports: any;
}
declare module 'JSONStream/test/bool' {
declare module.exports: any;
}
declare module 'JSONStream/test/browser' {
declare module.exports: any;
}
declare module 'JSONStream/test/destroy_missing' {
declare module.exports: any;
}
declare module 'JSONStream/test/disabled/doubledot1' {
declare module.exports: any;
}
declare module 'JSONStream/test/disabled/doubledot2' {
declare module.exports: any;
}
declare module 'JSONStream/test/empty' {
declare module.exports: any;
}
declare module 'JSONStream/test/error_contents' {
declare module.exports: any;
}
declare module 'JSONStream/test/fn' {
declare module.exports: any;
}
declare module 'JSONStream/test/gen' {
declare module.exports: any;
}
declare module 'JSONStream/test/header_footer' {
declare module.exports: any;
}
declare module 'JSONStream/test/issues' {
declare module.exports: any;
}
declare module 'JSONStream/test/keys' {
declare module.exports: any;
}
declare module 'JSONStream/test/map' {
declare module.exports: any;
}
declare module 'JSONStream/test/multiple_objects_error' {
declare module.exports: any;
}
declare module 'JSONStream/test/multiple_objects' {
declare module.exports: any;
}
declare module 'JSONStream/test/null' {
declare module.exports: any;
}
declare module 'JSONStream/test/parsejson' {
declare module.exports: any;
}
declare module 'JSONStream/test/stringify_object' {
declare module.exports: any;
}
declare module 'JSONStream/test/stringify' {
declare module.exports: any;
}
declare module 'JSONStream/test/test' {
declare module.exports: any;
}
declare module 'JSONStream/test/test2' {
declare module.exports: any;
}
declare module 'JSONStream/test/two-ways' {
declare module.exports: any;
}
// Filename aliases
declare module 'JSONStream/bin.js' {
declare module.exports: $Exports<'JSONStream/bin'>;
}
declare module 'JSONStream/examples/all_docs.js' {
declare module.exports: $Exports<'JSONStream/examples/all_docs'>;
}
declare module 'JSONStream/index' {
declare module.exports: $Exports<'JSONStream'>;
}
declare module 'JSONStream/index.js' {
declare module.exports: $Exports<'JSONStream'>;
}
declare module 'JSONStream/test/bool.js' {
declare module.exports: $Exports<'JSONStream/test/bool'>;
}
declare module 'JSONStream/test/browser.js' {
declare module.exports: $Exports<'JSONStream/test/browser'>;
}
declare module 'JSONStream/test/destroy_missing.js' {
declare module.exports: $Exports<'JSONStream/test/destroy_missing'>;
}
declare module 'JSONStream/test/disabled/doubledot1.js' {
declare module.exports: $Exports<'JSONStream/test/disabled/doubledot1'>;
}
declare module 'JSONStream/test/disabled/doubledot2.js' {
declare module.exports: $Exports<'JSONStream/test/disabled/doubledot2'>;
}
declare module 'JSONStream/test/empty.js' {
declare module.exports: $Exports<'JSONStream/test/empty'>;
}
declare module 'JSONStream/test/error_contents.js' {
declare module.exports: $Exports<'JSONStream/test/error_contents'>;
}
declare module 'JSONStream/test/fn.js' {
declare module.exports: $Exports<'JSONStream/test/fn'>;
}
declare module 'JSONStream/test/gen.js' {
declare module.exports: $Exports<'JSONStream/test/gen'>;
}
declare module 'JSONStream/test/header_footer.js' {
declare module.exports: $Exports<'JSONStream/test/header_footer'>;
}
declare module 'JSONStream/test/issues.js' {
declare module.exports: $Exports<'JSONStream/test/issues'>;
}
declare module 'JSONStream/test/keys.js' {
declare module.exports: $Exports<'JSONStream/test/keys'>;
}
declare module 'JSONStream/test/map.js' {
declare module.exports: $Exports<'JSONStream/test/map'>;
}
declare module 'JSONStream/test/multiple_objects_error.js' {
declare module.exports: $Exports<'JSONStream/test/multiple_objects_error'>;
}
declare module 'JSONStream/test/multiple_objects.js' {
declare module.exports: $Exports<'JSONStream/test/multiple_objects'>;
}
declare module 'JSONStream/test/null.js' {
declare module.exports: $Exports<'JSONStream/test/null'>;
}
declare module 'JSONStream/test/parsejson.js' {
declare module.exports: $Exports<'JSONStream/test/parsejson'>;
}
declare module 'JSONStream/test/stringify_object.js' {
declare module.exports: $Exports<'JSONStream/test/stringify_object'>;
}
declare module 'JSONStream/test/stringify.js' {
declare module.exports: $Exports<'JSONStream/test/stringify'>;
}
declare module 'JSONStream/test/test.js' {
declare module.exports: $Exports<'JSONStream/test/test'>;
}
declare module 'JSONStream/test/test2.js' {
declare module.exports: $Exports<'JSONStream/test/test2'>;
}
declare module 'JSONStream/test/two-ways.js' {
declare module.exports: $Exports<'JSONStream/test/two-ways'>;
}

913
flow-typed/npm/async_vx.x.x.js vendored Normal file
View File

@@ -0,0 +1,913 @@
// flow-typed signature: 9f4aa70155d93ad082ea38137cded473
// flow-typed version: <<STUB>>/async_v2.6.0/flow_v0.64.0
/**
* This is an autogenerated libdef stub for:
*
* 'async'
*
* Fill this stub out by replacing all the `any` types.
*
* Once filled out, we encourage you to share your work with the
* community by sending a pull request to:
* https://github.com/flowtype/flow-typed
*/
declare module 'async' {
declare module.exports: any;
}
/**
* We include stubs for each file inside this npm package in case you need to
* require those files directly. Feel free to delete any files that aren't
* needed.
*/
declare module 'async/all' {
declare module.exports: any;
}
declare module 'async/allLimit' {
declare module.exports: any;
}
declare module 'async/allSeries' {
declare module.exports: any;
}
declare module 'async/any' {
declare module.exports: any;
}
declare module 'async/anyLimit' {
declare module.exports: any;
}
declare module 'async/anySeries' {
declare module.exports: any;
}
declare module 'async/apply' {
declare module.exports: any;
}
declare module 'async/applyEach' {
declare module.exports: any;
}
declare module 'async/applyEachSeries' {
declare module.exports: any;
}
declare module 'async/asyncify' {
declare module.exports: any;
}
declare module 'async/auto' {
declare module.exports: any;
}
declare module 'async/autoInject' {
declare module.exports: any;
}
declare module 'async/cargo' {
declare module.exports: any;
}
declare module 'async/compose' {
declare module.exports: any;
}
declare module 'async/concat' {
declare module.exports: any;
}
declare module 'async/concatLimit' {
declare module.exports: any;
}
declare module 'async/concatSeries' {
declare module.exports: any;
}
declare module 'async/constant' {
declare module.exports: any;
}
declare module 'async/detect' {
declare module.exports: any;
}
declare module 'async/detectLimit' {
declare module.exports: any;
}
declare module 'async/detectSeries' {
declare module.exports: any;
}
declare module 'async/dir' {
declare module.exports: any;
}
declare module 'async/dist/async' {
declare module.exports: any;
}
declare module 'async/dist/async.min' {
declare module.exports: any;
}
declare module 'async/doDuring' {
declare module.exports: any;
}
declare module 'async/doUntil' {
declare module.exports: any;
}
declare module 'async/doWhilst' {
declare module.exports: any;
}
declare module 'async/during' {
declare module.exports: any;
}
declare module 'async/each' {
declare module.exports: any;
}
declare module 'async/eachLimit' {
declare module.exports: any;
}
declare module 'async/eachOf' {
declare module.exports: any;
}
declare module 'async/eachOfLimit' {
declare module.exports: any;
}
declare module 'async/eachOfSeries' {
declare module.exports: any;
}
declare module 'async/eachSeries' {
declare module.exports: any;
}
declare module 'async/ensureAsync' {
declare module.exports: any;
}
declare module 'async/every' {
declare module.exports: any;
}
declare module 'async/everyLimit' {
declare module.exports: any;
}
declare module 'async/everySeries' {
declare module.exports: any;
}
declare module 'async/filter' {
declare module.exports: any;
}
declare module 'async/filterLimit' {
declare module.exports: any;
}
declare module 'async/filterSeries' {
declare module.exports: any;
}
declare module 'async/find' {
declare module.exports: any;
}
declare module 'async/findLimit' {
declare module.exports: any;
}
declare module 'async/findSeries' {
declare module.exports: any;
}
declare module 'async/foldl' {
declare module.exports: any;
}
declare module 'async/foldr' {
declare module.exports: any;
}
declare module 'async/forEach' {
declare module.exports: any;
}
declare module 'async/forEachLimit' {
declare module.exports: any;
}
declare module 'async/forEachOf' {
declare module.exports: any;
}
declare module 'async/forEachOfLimit' {
declare module.exports: any;
}
declare module 'async/forEachOfSeries' {
declare module.exports: any;
}
declare module 'async/forEachSeries' {
declare module.exports: any;
}
declare module 'async/forever' {
declare module.exports: any;
}
declare module 'async/groupBy' {
declare module.exports: any;
}
declare module 'async/groupByLimit' {
declare module.exports: any;
}
declare module 'async/groupBySeries' {
declare module.exports: any;
}
declare module 'async/inject' {
declare module.exports: any;
}
declare module 'async/internal/applyEach' {
declare module.exports: any;
}
declare module 'async/internal/breakLoop' {
declare module.exports: any;
}
declare module 'async/internal/consoleFunc' {
declare module.exports: any;
}
declare module 'async/internal/createTester' {
declare module.exports: any;
}
declare module 'async/internal/doLimit' {
declare module.exports: any;
}
declare module 'async/internal/doParallel' {
declare module.exports: any;
}
declare module 'async/internal/doParallelLimit' {
declare module.exports: any;
}
declare module 'async/internal/DoublyLinkedList' {
declare module.exports: any;
}
declare module 'async/internal/eachOfLimit' {
declare module.exports: any;
}
declare module 'async/internal/filter' {
declare module.exports: any;
}
declare module 'async/internal/findGetResult' {
declare module.exports: any;
}
declare module 'async/internal/getIterator' {
declare module.exports: any;
}
declare module 'async/internal/initialParams' {
declare module.exports: any;
}
declare module 'async/internal/iterator' {
declare module.exports: any;
}
declare module 'async/internal/map' {
declare module.exports: any;
}
declare module 'async/internal/notId' {
declare module.exports: any;
}
declare module 'async/internal/once' {
declare module.exports: any;
}
declare module 'async/internal/onlyOnce' {
declare module.exports: any;
}
declare module 'async/internal/parallel' {
declare module.exports: any;
}
declare module 'async/internal/queue' {
declare module.exports: any;
}
declare module 'async/internal/reject' {
declare module.exports: any;
}
declare module 'async/internal/setImmediate' {
declare module.exports: any;
}
declare module 'async/internal/slice' {
declare module.exports: any;
}
declare module 'async/internal/withoutIndex' {
declare module.exports: any;
}
declare module 'async/internal/wrapAsync' {
declare module.exports: any;
}
declare module 'async/log' {
declare module.exports: any;
}
declare module 'async/map' {
declare module.exports: any;
}
declare module 'async/mapLimit' {
declare module.exports: any;
}
declare module 'async/mapSeries' {
declare module.exports: any;
}
declare module 'async/mapValues' {
declare module.exports: any;
}
declare module 'async/mapValuesLimit' {
declare module.exports: any;
}
declare module 'async/mapValuesSeries' {
declare module.exports: any;
}
declare module 'async/memoize' {
declare module.exports: any;
}
declare module 'async/nextTick' {
declare module.exports: any;
}
declare module 'async/parallel' {
declare module.exports: any;
}
declare module 'async/parallelLimit' {
declare module.exports: any;
}
declare module 'async/priorityQueue' {
declare module.exports: any;
}
declare module 'async/queue' {
declare module.exports: any;
}
declare module 'async/race' {
declare module.exports: any;
}
declare module 'async/reduce' {
declare module.exports: any;
}
declare module 'async/reduceRight' {
declare module.exports: any;
}
declare module 'async/reflect' {
declare module.exports: any;
}
declare module 'async/reflectAll' {
declare module.exports: any;
}
declare module 'async/reject' {
declare module.exports: any;
}
declare module 'async/rejectLimit' {
declare module.exports: any;
}
declare module 'async/rejectSeries' {
declare module.exports: any;
}
declare module 'async/retry' {
declare module.exports: any;
}
declare module 'async/retryable' {
declare module.exports: any;
}
declare module 'async/select' {
declare module.exports: any;
}
declare module 'async/selectLimit' {
declare module.exports: any;
}
declare module 'async/selectSeries' {
declare module.exports: any;
}
declare module 'async/seq' {
declare module.exports: any;
}
declare module 'async/series' {
declare module.exports: any;
}
declare module 'async/setImmediate' {
declare module.exports: any;
}
declare module 'async/some' {
declare module.exports: any;
}
declare module 'async/someLimit' {
declare module.exports: any;
}
declare module 'async/someSeries' {
declare module.exports: any;
}
declare module 'async/sortBy' {
declare module.exports: any;
}
declare module 'async/timeout' {
declare module.exports: any;
}
declare module 'async/times' {
declare module.exports: any;
}
declare module 'async/timesLimit' {
declare module.exports: any;
}
declare module 'async/timesSeries' {
declare module.exports: any;
}
declare module 'async/transform' {
declare module.exports: any;
}
declare module 'async/tryEach' {
declare module.exports: any;
}
declare module 'async/unmemoize' {
declare module.exports: any;
}
declare module 'async/until' {
declare module.exports: any;
}
declare module 'async/waterfall' {
declare module.exports: any;
}
declare module 'async/whilst' {
declare module.exports: any;
}
declare module 'async/wrapSync' {
declare module.exports: any;
}
// Filename aliases
declare module 'async/all.js' {
declare module.exports: $Exports<'async/all'>;
}
declare module 'async/allLimit.js' {
declare module.exports: $Exports<'async/allLimit'>;
}
declare module 'async/allSeries.js' {
declare module.exports: $Exports<'async/allSeries'>;
}
declare module 'async/any.js' {
declare module.exports: $Exports<'async/any'>;
}
declare module 'async/anyLimit.js' {
declare module.exports: $Exports<'async/anyLimit'>;
}
declare module 'async/anySeries.js' {
declare module.exports: $Exports<'async/anySeries'>;
}
declare module 'async/apply.js' {
declare module.exports: $Exports<'async/apply'>;
}
declare module 'async/applyEach.js' {
declare module.exports: $Exports<'async/applyEach'>;
}
declare module 'async/applyEachSeries.js' {
declare module.exports: $Exports<'async/applyEachSeries'>;
}
declare module 'async/asyncify.js' {
declare module.exports: $Exports<'async/asyncify'>;
}
declare module 'async/auto.js' {
declare module.exports: $Exports<'async/auto'>;
}
declare module 'async/autoInject.js' {
declare module.exports: $Exports<'async/autoInject'>;
}
declare module 'async/cargo.js' {
declare module.exports: $Exports<'async/cargo'>;
}
declare module 'async/compose.js' {
declare module.exports: $Exports<'async/compose'>;
}
declare module 'async/concat.js' {
declare module.exports: $Exports<'async/concat'>;
}
declare module 'async/concatLimit.js' {
declare module.exports: $Exports<'async/concatLimit'>;
}
declare module 'async/concatSeries.js' {
declare module.exports: $Exports<'async/concatSeries'>;
}
declare module 'async/constant.js' {
declare module.exports: $Exports<'async/constant'>;
}
declare module 'async/detect.js' {
declare module.exports: $Exports<'async/detect'>;
}
declare module 'async/detectLimit.js' {
declare module.exports: $Exports<'async/detectLimit'>;
}
declare module 'async/detectSeries.js' {
declare module.exports: $Exports<'async/detectSeries'>;
}
declare module 'async/dir.js' {
declare module.exports: $Exports<'async/dir'>;
}
declare module 'async/dist/async.js' {
declare module.exports: $Exports<'async/dist/async'>;
}
declare module 'async/dist/async.min.js' {
declare module.exports: $Exports<'async/dist/async.min'>;
}
declare module 'async/doDuring.js' {
declare module.exports: $Exports<'async/doDuring'>;
}
declare module 'async/doUntil.js' {
declare module.exports: $Exports<'async/doUntil'>;
}
declare module 'async/doWhilst.js' {
declare module.exports: $Exports<'async/doWhilst'>;
}
declare module 'async/during.js' {
declare module.exports: $Exports<'async/during'>;
}
declare module 'async/each.js' {
declare module.exports: $Exports<'async/each'>;
}
declare module 'async/eachLimit.js' {
declare module.exports: $Exports<'async/eachLimit'>;
}
declare module 'async/eachOf.js' {
declare module.exports: $Exports<'async/eachOf'>;
}
declare module 'async/eachOfLimit.js' {
declare module.exports: $Exports<'async/eachOfLimit'>;
}
declare module 'async/eachOfSeries.js' {
declare module.exports: $Exports<'async/eachOfSeries'>;
}
declare module 'async/eachSeries.js' {
declare module.exports: $Exports<'async/eachSeries'>;
}
declare module 'async/ensureAsync.js' {
declare module.exports: $Exports<'async/ensureAsync'>;
}
declare module 'async/every.js' {
declare module.exports: $Exports<'async/every'>;
}
declare module 'async/everyLimit.js' {
declare module.exports: $Exports<'async/everyLimit'>;
}
declare module 'async/everySeries.js' {
declare module.exports: $Exports<'async/everySeries'>;
}
declare module 'async/filter.js' {
declare module.exports: $Exports<'async/filter'>;
}
declare module 'async/filterLimit.js' {
declare module.exports: $Exports<'async/filterLimit'>;
}
declare module 'async/filterSeries.js' {
declare module.exports: $Exports<'async/filterSeries'>;
}
declare module 'async/find.js' {
declare module.exports: $Exports<'async/find'>;
}
declare module 'async/findLimit.js' {
declare module.exports: $Exports<'async/findLimit'>;
}
declare module 'async/findSeries.js' {
declare module.exports: $Exports<'async/findSeries'>;
}
declare module 'async/foldl.js' {
declare module.exports: $Exports<'async/foldl'>;
}
declare module 'async/foldr.js' {
declare module.exports: $Exports<'async/foldr'>;
}
declare module 'async/forEach.js' {
declare module.exports: $Exports<'async/forEach'>;
}
declare module 'async/forEachLimit.js' {
declare module.exports: $Exports<'async/forEachLimit'>;
}
declare module 'async/forEachOf.js' {
declare module.exports: $Exports<'async/forEachOf'>;
}
declare module 'async/forEachOfLimit.js' {
declare module.exports: $Exports<'async/forEachOfLimit'>;
}
declare module 'async/forEachOfSeries.js' {
declare module.exports: $Exports<'async/forEachOfSeries'>;
}
declare module 'async/forEachSeries.js' {
declare module.exports: $Exports<'async/forEachSeries'>;
}
declare module 'async/forever.js' {
declare module.exports: $Exports<'async/forever'>;
}
declare module 'async/groupBy.js' {
declare module.exports: $Exports<'async/groupBy'>;
}
declare module 'async/groupByLimit.js' {
declare module.exports: $Exports<'async/groupByLimit'>;
}
declare module 'async/groupBySeries.js' {
declare module.exports: $Exports<'async/groupBySeries'>;
}
declare module 'async/index' {
declare module.exports: $Exports<'async'>;
}
declare module 'async/index.js' {
declare module.exports: $Exports<'async'>;
}
declare module 'async/inject.js' {
declare module.exports: $Exports<'async/inject'>;
}
declare module 'async/internal/applyEach.js' {
declare module.exports: $Exports<'async/internal/applyEach'>;
}
declare module 'async/internal/breakLoop.js' {
declare module.exports: $Exports<'async/internal/breakLoop'>;
}
declare module 'async/internal/consoleFunc.js' {
declare module.exports: $Exports<'async/internal/consoleFunc'>;
}
declare module 'async/internal/createTester.js' {
declare module.exports: $Exports<'async/internal/createTester'>;
}
declare module 'async/internal/doLimit.js' {
declare module.exports: $Exports<'async/internal/doLimit'>;
}
declare module 'async/internal/doParallel.js' {
declare module.exports: $Exports<'async/internal/doParallel'>;
}
declare module 'async/internal/doParallelLimit.js' {
declare module.exports: $Exports<'async/internal/doParallelLimit'>;
}
declare module 'async/internal/DoublyLinkedList.js' {
declare module.exports: $Exports<'async/internal/DoublyLinkedList'>;
}
declare module 'async/internal/eachOfLimit.js' {
declare module.exports: $Exports<'async/internal/eachOfLimit'>;
}
declare module 'async/internal/filter.js' {
declare module.exports: $Exports<'async/internal/filter'>;
}
declare module 'async/internal/findGetResult.js' {
declare module.exports: $Exports<'async/internal/findGetResult'>;
}
declare module 'async/internal/getIterator.js' {
declare module.exports: $Exports<'async/internal/getIterator'>;
}
declare module 'async/internal/initialParams.js' {
declare module.exports: $Exports<'async/internal/initialParams'>;
}
declare module 'async/internal/iterator.js' {
declare module.exports: $Exports<'async/internal/iterator'>;
}
declare module 'async/internal/map.js' {
declare module.exports: $Exports<'async/internal/map'>;
}
declare module 'async/internal/notId.js' {
declare module.exports: $Exports<'async/internal/notId'>;
}
declare module 'async/internal/once.js' {
declare module.exports: $Exports<'async/internal/once'>;
}
declare module 'async/internal/onlyOnce.js' {
declare module.exports: $Exports<'async/internal/onlyOnce'>;
}
declare module 'async/internal/parallel.js' {
declare module.exports: $Exports<'async/internal/parallel'>;
}
declare module 'async/internal/queue.js' {
declare module.exports: $Exports<'async/internal/queue'>;
}
declare module 'async/internal/reject.js' {
declare module.exports: $Exports<'async/internal/reject'>;
}
declare module 'async/internal/setImmediate.js' {
declare module.exports: $Exports<'async/internal/setImmediate'>;
}
declare module 'async/internal/slice.js' {
declare module.exports: $Exports<'async/internal/slice'>;
}
declare module 'async/internal/withoutIndex.js' {
declare module.exports: $Exports<'async/internal/withoutIndex'>;
}
declare module 'async/internal/wrapAsync.js' {
declare module.exports: $Exports<'async/internal/wrapAsync'>;
}
declare module 'async/log.js' {
declare module.exports: $Exports<'async/log'>;
}
declare module 'async/map.js' {
declare module.exports: $Exports<'async/map'>;
}
declare module 'async/mapLimit.js' {
declare module.exports: $Exports<'async/mapLimit'>;
}
declare module 'async/mapSeries.js' {
declare module.exports: $Exports<'async/mapSeries'>;
}
declare module 'async/mapValues.js' {
declare module.exports: $Exports<'async/mapValues'>;
}
declare module 'async/mapValuesLimit.js' {
declare module.exports: $Exports<'async/mapValuesLimit'>;
}
declare module 'async/mapValuesSeries.js' {
declare module.exports: $Exports<'async/mapValuesSeries'>;
}
declare module 'async/memoize.js' {
declare module.exports: $Exports<'async/memoize'>;
}
declare module 'async/nextTick.js' {
declare module.exports: $Exports<'async/nextTick'>;
}
declare module 'async/parallel.js' {
declare module.exports: $Exports<'async/parallel'>;
}
declare module 'async/parallelLimit.js' {
declare module.exports: $Exports<'async/parallelLimit'>;
}
declare module 'async/priorityQueue.js' {
declare module.exports: $Exports<'async/priorityQueue'>;
}
declare module 'async/queue.js' {
declare module.exports: $Exports<'async/queue'>;
}
declare module 'async/race.js' {
declare module.exports: $Exports<'async/race'>;
}
declare module 'async/reduce.js' {
declare module.exports: $Exports<'async/reduce'>;
}
declare module 'async/reduceRight.js' {
declare module.exports: $Exports<'async/reduceRight'>;
}
declare module 'async/reflect.js' {
declare module.exports: $Exports<'async/reflect'>;
}
declare module 'async/reflectAll.js' {
declare module.exports: $Exports<'async/reflectAll'>;
}
declare module 'async/reject.js' {
declare module.exports: $Exports<'async/reject'>;
}
declare module 'async/rejectLimit.js' {
declare module.exports: $Exports<'async/rejectLimit'>;
}
declare module 'async/rejectSeries.js' {
declare module.exports: $Exports<'async/rejectSeries'>;
}
declare module 'async/retry.js' {
declare module.exports: $Exports<'async/retry'>;
}
declare module 'async/retryable.js' {
declare module.exports: $Exports<'async/retryable'>;
}
declare module 'async/select.js' {
declare module.exports: $Exports<'async/select'>;
}
declare module 'async/selectLimit.js' {
declare module.exports: $Exports<'async/selectLimit'>;
}
declare module 'async/selectSeries.js' {
declare module.exports: $Exports<'async/selectSeries'>;
}
declare module 'async/seq.js' {
declare module.exports: $Exports<'async/seq'>;
}
declare module 'async/series.js' {
declare module.exports: $Exports<'async/series'>;
}
declare module 'async/setImmediate.js' {
declare module.exports: $Exports<'async/setImmediate'>;
}
declare module 'async/some.js' {
declare module.exports: $Exports<'async/some'>;
}
declare module 'async/someLimit.js' {
declare module.exports: $Exports<'async/someLimit'>;
}
declare module 'async/someSeries.js' {
declare module.exports: $Exports<'async/someSeries'>;
}
declare module 'async/sortBy.js' {
declare module.exports: $Exports<'async/sortBy'>;
}
declare module 'async/timeout.js' {
declare module.exports: $Exports<'async/timeout'>;
}
declare module 'async/times.js' {
declare module.exports: $Exports<'async/times'>;
}
declare module 'async/timesLimit.js' {
declare module.exports: $Exports<'async/timesLimit'>;
}
declare module 'async/timesSeries.js' {
declare module.exports: $Exports<'async/timesSeries'>;
}
declare module 'async/transform.js' {
declare module.exports: $Exports<'async/transform'>;
}
declare module 'async/tryEach.js' {
declare module.exports: $Exports<'async/tryEach'>;
}
declare module 'async/unmemoize.js' {
declare module.exports: $Exports<'async/unmemoize'>;
}
declare module 'async/until.js' {
declare module.exports: $Exports<'async/until'>;
}
declare module 'async/waterfall.js' {
declare module.exports: $Exports<'async/waterfall'>;
}
declare module 'async/whilst.js' {
declare module.exports: $Exports<'async/whilst'>;
}
declare module 'async/wrapSync.js' {
declare module.exports: $Exports<'async/wrapSync'>;
}

143
flow-typed/npm/axios_v0.17.x.js vendored Normal file
View File

@@ -0,0 +1,143 @@
// flow-typed signature: 9fd7b9287df55ee8cfa980889d107499
// flow-typed version: a8b5058d19/axios_v0.17.x/flow_>=v0.25.x
declare module "axios" {
declare interface ProxyConfig {
host: string;
port: number;
}
declare interface Cancel {
constructor(message?: string): Cancel;
message: string;
}
declare interface Canceler {
(message?: string): void;
}
declare interface CancelTokenSource {
token: CancelToken;
cancel: Canceler;
}
declare class CancelToken {
constructor(executor: (cancel: Canceler) => void): CancelToken;
static source(): CancelTokenSource;
promise: Promise<Cancel>;
reason?: Cancel;
throwIfRequested(): void;
}
declare interface AxiosXHRConfigBase<T> {
adapter?: <T>(config: AxiosXHRConfig<T>) => Promise<AxiosXHR<T>>;
auth?: {
username: string,
password: string
};
baseURL?: string;
cancelToken?: CancelToken;
headers?: Object;
httpAgent?: mixed; // Missing the type in the core flow node libdef
httpsAgent?: mixed; // Missing the type in the core flow node libdef
maxContentLength?: number;
maxRedirects?: 5;
params?: Object;
paramsSerializer?: (params: Object) => string;
progress?: (progressEvent: Event) => void | mixed;
proxy?: ProxyConfig | false;
responseType?:
| "arraybuffer"
| "blob"
| "document"
| "json"
| "text"
| "stream";
timeout?: number;
transformRequest?: Array<<U>(data: T) => U | Array<<U>(data: T) => U>>;
transformResponse?: Array<<U>(data: T) => U>;
validateStatus?: (status: number) => boolean;
withCredentials?: boolean;
xsrfCookieName?: string;
xsrfHeaderName?: string;
}
declare type $AxiosXHRConfigBase<T> = AxiosXHRConfigBase<T>;
declare interface AxiosXHRConfig<T> extends AxiosXHRConfigBase<T> {
data?: T;
method?: string;
url: string;
}
declare type $AxiosXHRConfig<T> = AxiosXHRConfig<T>;
declare class AxiosXHR<T> {
config: AxiosXHRConfig<T>;
data: T;
headers?: Object;
status: number;
statusText: string;
request: http$ClientRequest | XMLHttpRequest;
}
declare type $AxiosXHR<T> = AxiosXHR<T>;
declare class AxiosInterceptorIdent extends String {}
declare class AxiosRequestInterceptor<T> {
use(
successHandler: ?(
response: AxiosXHRConfig<T>
) => Promise<AxiosXHRConfig<*>> | AxiosXHRConfig<*>,
errorHandler: ?(error: mixed) => mixed
): AxiosInterceptorIdent;
eject(ident: AxiosInterceptorIdent): void;
}
declare class AxiosResponseInterceptor<T> {
use(
successHandler: ?(response: AxiosXHR<T>) => mixed,
errorHandler: ?(error: $AxiosError<any>) => mixed
): AxiosInterceptorIdent;
eject(ident: AxiosInterceptorIdent): void;
}
declare type AxiosPromise<T> = Promise<AxiosXHR<T>>;
declare class Axios {
constructor<T>(config?: AxiosXHRConfigBase<T>): void;
$call: <T>(
config: AxiosXHRConfig<T> | string,
config?: AxiosXHRConfig<T>
) => AxiosPromise<T>;
request<T>(config: AxiosXHRConfig<T>): AxiosPromise<T>;
delete<T>(url: string, config?: AxiosXHRConfigBase<T>): AxiosPromise<T>;
get<T>(url: string, config?: AxiosXHRConfigBase<T>): AxiosPromise<T>;
head<T>(url: string, config?: AxiosXHRConfigBase<T>): AxiosPromise<T>;
post<T>(
url: string,
data?: mixed,
config?: AxiosXHRConfigBase<T>
): AxiosPromise<T>;
put<T>(
url: string,
data?: mixed,
config?: AxiosXHRConfigBase<T>
): AxiosPromise<T>;
patch<T>(
url: string,
data?: mixed,
config?: AxiosXHRConfigBase<T>
): AxiosPromise<T>;
interceptors: {
request: AxiosRequestInterceptor<mixed>,
response: AxiosResponseInterceptor<mixed>
};
defaults: { headers: Object } & AxiosXHRConfig<*>;
}
declare class AxiosError<T> extends Error {
config: AxiosXHRConfig<T>;
response: AxiosXHR<T>;
code?: string;
}
declare type $AxiosError<T> = AxiosError<T>;
declare interface AxiosExport extends Axios {
Axios: typeof Axios;
Cancel: Class<Cancel>;
CancelToken: Class<CancelToken>;
isCancel(value: any): boolean;
create(config?: AxiosXHRConfigBase<any>): Axios;
all: typeof Promise.all;
spread(callback: Function): (arr: Array<any>) => Function;
}
declare module.exports: AxiosExport;
}

46
flow-typed/npm/body-parser_v1.x.x.js vendored Normal file
View File

@@ -0,0 +1,46 @@
// flow-typed signature: bac0ee66e0653772d037dc47b51a5e1f
// flow-typed version: da30fe6876/body-parser_v1.x.x/flow_>=v0.25.x
import type { Middleware, $Request, $Response } from "express";
declare type bodyParser$Options = {
inflate?: boolean,
limit?: number | string,
type?: string | string[] | ((req: $Request) => any),
verify?: (
req: $Request,
res: $Response,
buf: Buffer,
encoding: string
) => void
};
declare type bodyParser$OptionsText = bodyParser$Options & {
reviver?: (key: string, value: any) => any,
strict?: boolean
};
declare type bodyParser$OptionsJson = bodyParser$Options & {
reviver?: (key: string, value: any) => any,
strict?: boolean
};
declare type bodyParser$OptionsUrlencoded = bodyParser$Options & {
extended?: boolean,
parameterLimit?: number
};
declare module "body-parser" {
declare type Options = bodyParser$Options;
declare type OptionsText = bodyParser$OptionsText;
declare type OptionsJson = bodyParser$OptionsJson;
declare type OptionsUrlencoded = bodyParser$OptionsUrlencoded;
declare function json(options?: OptionsJson): Middleware;
declare function raw(options?: Options): Middleware;
declare function text(options?: OptionsText): Middleware;
declare function urlencoded(options?: OptionsUrlencoded): Middleware;
}

156
flow-typed/npm/bunyan_v1.x.x.js vendored Normal file
View File

@@ -0,0 +1,156 @@
// flow-typed signature: b3827b7e37fa457f58d7a6656d830369
// flow-typed version: da30fe6876/bunyan_v1.x.x/flow_>=v0.25.x
declare module "bunyan" {
declare var TRACE: 10;
declare var DEBUG: 20;
declare var INFO: 30;
declare var WARN: 40;
declare var ERROR: 50;
declare var FATAL: 60;
declare type BunyanLogLevels =
| 60 // fatal
| 50 // error
| 40 // warn
| 30 // info
| 20 // debug
| 10; // info
declare type BunyanRecord = {
v: number,
level: BunyanLogLevels,
name: string,
hostname: string,
pid: string,
time: Date,
msg: string,
src: string,
err?: {
message: string,
name: string,
code: any,
signal: any,
stack: string
},
[key: string]: any
};
declare type Writable = {
write(rec: BunyanRecord): void
};
declare class Logger extends events$EventEmitter {
constructor(options: LoggerOptions): any;
addStream(stream: Stream): void;
addSerializers(serializers: Serializers): void;
child(opts?: LoggerOptions, simple?: boolean): Logger;
reopenFileStreams(): void;
level(): string | number;
level(value: number | string): void;
levels(name: number | string, value: number | string): void;
trace(...params: Array<void>): boolean;
trace(error: Error, format?: any, ...params: Array<any>): void;
trace(buffer: Buffer, format?: any, ...params: Array<any>): void;
trace(obj: Object, format?: any, ...params: Array<any>): void;
trace(format: string, ...params: Array<any>): void;
debug(...params: Array<void>): boolean;
debug(error: Error, format?: any, ...params: Array<any>): void;
debug(buffer: Buffer, format?: any, ...params: Array<any>): void;
debug(obj: Object, format?: any, ...params: Array<any>): void;
debug(format: string, ...params: Array<any>): void;
info(...params: Array<void>): boolean;
info(error: Error, format?: any, ...params: Array<any>): void;
info(buffer: Buffer, format?: any, ...params: Array<any>): void;
info(obj: Object, format?: any, ...params: Array<any>): void;
info(format: string, ...params: Array<any>): void;
warn(...params: Array<void>): boolean;
warn(error: Error, format?: any, ...params: Array<any>): void;
warn(buffer: Buffer, format?: any, ...params: Array<any>): void;
warn(obj: Object, format?: any, ...params: Array<any>): void;
warn(format: string, ...params: Array<any>): void;
error(...params: Array<void>): boolean;
error(error: Error, format?: any, ...params: Array<any>): void;
error(buffer: Buffer, format?: any, ...params: Array<any>): void;
error(obj: Object, format?: any, ...params: Array<any>): void;
error(format: string, ...params: Array<any>): void;
fatal(...params: Array<void>): boolean;
fatal(error: Error, format?: any, ...params: Array<any>): void;
fatal(buffer: Buffer, format?: any, ...params: Array<any>): void;
fatal(obj: Object, format?: any, ...params: Array<any>): void;
fatal(format: string, ...params: Array<any>): void;
static stdSerializers: {
req: (
req: http$ClientRequest
) => {
method: string,
url: string,
headers: mixed,
remoteAddress: string,
remotePort: number
},
res: (
res: http$IncomingMessage
) => { statusCode: number, header: string },
err: (
err: Error
) => {
message: string,
name: string,
stack: string,
code: string,
signal: string
}
};
}
declare interface LoggerOptions {
streams?: Array<Stream>;
level?: BunyanLogLevels | string;
stream?: stream$Writable;
serializers?: Serializers;
src?: boolean;
}
declare type Serializers = {
[key: string]: (input: any) => mixed
};
declare type Stream = {
type?: string,
level?: number | string,
path?: string,
stream?: stream$Writable | tty$WriteStream | Stream | Writable,
closeOnExit?: boolean,
period?: string,
count?: number
};
declare var stdSerializers: Serializers;
declare function resolveLevel(value: number | string): number;
declare function createLogger(
options: LoggerOptions & { name: string }
): Logger;
declare class RingBuffer extends events$EventEmitter {
constructor(options: RingBufferOptions): any;
writable: boolean;
records: Array<any>;
write(record: BunyanRecord): void;
end(record?: any): void;
destroy(): void;
destroySoon(): void;
}
declare interface RingBufferOptions {
limit: number;
}
declare function safeCycles(): (key: string, value: any) => any;
declare class ConsoleRawStream {
write(rec: BunyanRecord): void;
}
declare var levelFromName: {
trace: typeof TRACE,
debug: typeof DEBUG,
info: typeof INFO,
warn: typeof WARN,
error: typeof ERROR,
fatal: typeof FATAL
};
declare var nameFromLevel: {
[key: BunyanLogLevels]: string
};
declare var VERSION: string;
declare var LOG_VERSION: string;
}

108
flow-typed/npm/chalk_v2.x.x.js vendored Normal file
View File

@@ -0,0 +1,108 @@
// flow-typed signature: fa51178772ad1f35158cb4238bc3f1eb
// flow-typed version: da30fe6876/chalk_v2.x.x/flow_>=v0.25.x
type $npm$chalk$StyleElement = {
open: string,
close: string
};
type $npm$chalk$Chain = $npm$chalk$Style & ((...text: any[]) => string);
type $npm$chalk$Style = {
// General
reset: $npm$chalk$Chain,
bold: $npm$chalk$Chain,
dim: $npm$chalk$Chain,
italic: $npm$chalk$Chain,
underline: $npm$chalk$Chain,
inverse: $npm$chalk$Chain,
strikethrough: $npm$chalk$Chain,
// Text colors
black: $npm$chalk$Chain,
red: $npm$chalk$Chain,
redBright: $npm$chalk$Chain,
green: $npm$chalk$Chain,
greenBright: $npm$chalk$Chain,
yellow: $npm$chalk$Chain,
yellowBright: $npm$chalk$Chain,
blue: $npm$chalk$Chain,
blueBright: $npm$chalk$Chain,
magenta: $npm$chalk$Chain,
magentaBright: $npm$chalk$Chain,
cyan: $npm$chalk$Chain,
cyanBright: $npm$chalk$Chain,
white: $npm$chalk$Chain,
whiteBright: $npm$chalk$Chain,
gray: $npm$chalk$Chain,
grey: $npm$chalk$Chain,
// Background colors
bgBlack: $npm$chalk$Chain,
bgBlackBright: $npm$chalk$Chain,
bgRed: $npm$chalk$Chain,
bgRedBright: $npm$chalk$Chain,
bgGreen: $npm$chalk$Chain,
bgGreenBright: $npm$chalk$Chain,
bgYellow: $npm$chalk$Chain,
bgYellowBright: $npm$chalk$Chain,
bgBlue: $npm$chalk$Chain,
bgBlueBright: $npm$chalk$Chain,
bgMagenta: $npm$chalk$Chain,
bgMagentaBright: $npm$chalk$Chain,
bgCyan: $npm$chalk$Chain,
bgCyanBright: $npm$chalk$Chain,
bgWhite: $npm$chalk$Chain,
bgWhiteBright: $npm$chalk$Chain
};
declare module "chalk" {
declare var enabled: boolean;
declare var supportsColor: boolean;
// General
declare var reset: $npm$chalk$Chain;
declare var bold: $npm$chalk$Chain;
declare var dim: $npm$chalk$Chain;
declare var italic: $npm$chalk$Chain;
declare var underline: $npm$chalk$Chain;
declare var inverse: $npm$chalk$Chain;
declare var strikethrough: $npm$chalk$Chain;
// Text colors
declare var black: $npm$chalk$Chain;
declare var red: $npm$chalk$Chain;
declare var redBright: $npm$chalk$Chain;
declare var green: $npm$chalk$Chain;
declare var greenBright: $npm$chalk$Chain;
declare var yellow: $npm$chalk$Chain;
declare var yellowBright: $npm$chalk$Chain;
declare var blue: $npm$chalk$Chain;
declare var blueBright: $npm$chalk$Chain;
declare var magenta: $npm$chalk$Chain;
declare var magentaBright: $npm$chalk$Chain;
declare var cyan: $npm$chalk$Chain;
declare var cyanBright: $npm$chalk$Chain;
declare var white: $npm$chalk$Chain;
declare var whiteBright: $npm$chalk$Chain;
declare var gray: $npm$chalk$Chain;
declare var grey: $npm$chalk$Chain;
// Background colors
declare var bgBlack: $npm$chalk$Chain;
declare var bgBlackBright: $npm$chalk$Chain;
declare var bgRed: $npm$chalk$Chain;
declare var bgRedBright: $npm$chalk$Chain;
declare var bgGreen: $npm$chalk$Chain;
declare var bgGreenBright: $npm$chalk$Chain;
declare var bgYellow: $npm$chalk$Chain;
declare var bgYellowBright: $npm$chalk$Chain;
declare var bgBlue: $npm$chalk$Chain;
declare var bgBlueBright: $npm$chalk$Chain;
declare var bgMagenta: $npm$chalk$Chain;
declare var bgMagentaBright: $npm$chalk$Chain;
declare var bgCyan: $npm$chalk$Chain;
declare var bgCyanBright: $npm$chalk$Chain;
declare var bgWhite: $npm$chalk$Chain;
declare var bgWhiteBright: $npm$chalk$Chain;
}

281
flow-typed/npm/commander_v2.x.x.js vendored Normal file
View File

@@ -0,0 +1,281 @@
// flow-typed signature: 9a1fb3feac221b50aab621209bf8ca9c
// flow-typed version: 94e9f7e0a4/commander_v2.x.x/flow_>=v0.28.x
declare module "commander" {
declare class Command extends events$EventEmitter {
/**
* Initialize a new `Command`.
*
* @param {String} name
* @api public
*/
constructor(name?: string): Command;
/**
* Add command `name`.
*
* The `.action()` callback is invoked when the
* command `name` is specified via __ARGV__,
* and the remaining arguments are applied to the
* function for access.
*
* When the `name` is "*" an un-matched command
* will be passed as the first arg, followed by
* the rest of __ARGV__ remaining.
*
* Examples:
*
* program
* .version('0.0.1')
* .option('-C, --chdir <path>', 'change the working directory')
* .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
* .option('-T, --no-tests', 'ignore test hook')
*
* program
* .command('setup')
* .description('run remote setup commands')
* .action(function(){
* console.log('setup');
* });
*
* program
* .command('exec <cmd>')
* .description('run the given remote command')
* .action(function(cmd){
* console.log('exec "%s"', cmd);
* });
*
* program
* .command('*')
* .description('deploy the given env')
* .action(function(env){
* console.log('deploying "%s"', env);
* });
*
* program.parse(process.argv);
*
* @param {String} name
* @param {String} [desc]
* @param {Mixed} [opts]
* @return {Command} the new command
* @api public
*/
command(
name: string,
desc?: string,
opts?: { isDefault: boolean, noHelp: boolean }
): Command;
/**
* Parse expected `args`.
*
* For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
*
* @param {Array} args
* @return {Command} for chaining
* @api public
*/
parseExpectedArgs(args: Array<string>): this;
/**
* Register callback `fn` for the command.
*
* Examples:
*
* program
* .command('help')
* .description('display verbose help')
* .action(function(){
* // output help here
* });
*
* @param {Function} fn
* @return {Command} for chaining
* @api public
*/
action(fn: (...args: Array<any>) => mixed): this;
/**
* Define option with `flags`, `description` and optional
* coercion `fn`.
*
* The `flags` string should contain both the short and long flags,
* separated by comma, a pipe or space. The following are all valid
* all will output this way when `--help` is used.
*
* "-p, --pepper"
* "-p|--pepper"
* "-p --pepper"
*
* Examples:
*
* // simple boolean defaulting to false
* program.option('-p, --pepper', 'add pepper');
*
* --pepper
* program.pepper
* // => Boolean
*
* // simple boolean defaulting to true
* program.option('-C, --no-cheese', 'remove cheese');
*
* program.cheese
* // => true
*
* --no-cheese
* program.cheese
* // => false
*
* // required argument
* program.option('-C, --chdir <path>', 'change the working directory');
*
* --chdir /tmp
* program.chdir
* // => "/tmp"
*
* // optional argument
* program.option('-c, --cheese [type]', 'add cheese [marble]');
*
* @param {String} flags
* @param {String} description
* @param {Function|Mixed} fn or default
* @param {Mixed} defaultValue
* @return {Command} for chaining
* @api public
*/
option(flags: string, description?: string, fn?: ((val: any, memo: any) => mixed) | RegExp, defaultValue?: mixed): this;
option(flags: string, description?: string, defaultValue?: mixed): this;
/**
* Allow unknown options on the command line.
*
* @param {Boolean} arg if `true` or omitted, no error will be thrown
* for unknown options.
* @api public
*/
allowUnknownOption(arg?: boolean): this;
/**
* Parse `argv`, settings options and invoking commands when defined.
*
* @param {Array} argv
* @return {Command} for chaining
* @api public
*/
parse(argv: Array<string>): this;
/**
* Parse options from `argv` returning `argv`
* void of these options.
*
* @param {Array} argv
* @return {Array}
* @api public
*/
parseOptions(argv: Array<string>): { args: Array<string>, unknown: Array<string> };
/**
* Define argument syntax for the top-level command.
*
* @api public
*/
arguments(desc: string): this;
/**
* Return an object containing options as key-value pairs
*
* @return {Object}
* @api public
*/
opts(): { [key: string]: any };
/**
* Set the program version to `str`.
*
* This method auto-registers the "-V, --version" flag
* which will print the version number when passed.
*
* @param {String} str
* @param {String} flags
* @return {Command} for chaining
* @api public
*/
version(str: string, flags?: string): this;
/**
* Set the description to `str`.
*
* @param {String} str
* @return {String|Command}
* @api public
*/
description(str: string): this;
description(): string;
/**
* Set an alias for the command
*
* @param {String} alias
* @return {String|Command}
* @api public
*/
alias(alias: string): this;
alias(): string;
/**
* Set / get the command usage `str`.
*
* @param {String} str
* @return {String|Command}
* @api public
*/
usage(str: string): this;
usage(): string;
/**
* Get the name of the command
*
* @param {String} name
* @return {String|Command}
* @api public
*/
name(): string;
/**
* Output help information for this command
*
* @api public
*/
outputHelp(): void;
/**
* Output help information and exit.
*
* @api public
*/
help(): void;
}
declare class Option {
/**
* Initialize a new `Option` with the given `flags` and `description`.
*
* @param {String} flags
* @param {String} description
* @api public
*/
constructor(flags: string, description?: string): Option;
flags: string;
required: boolean;
optional: boolean;
bool: boolean;
short?: string;
long: string;
description: string;
}
declare module.exports: Command & {
Command: Command,
Option: Option
};
}

127
flow-typed/npm/enzyme_v3.x.x.js vendored Normal file
View File

@@ -0,0 +1,127 @@
// flow-typed signature: 02db3523747059d89e87d4dec6873edf
// flow-typed version: 62a0c60689/enzyme_v3.x.x/flow_>=v0.53.x
import * as React from "react";
declare module "enzyme" {
declare type PredicateFunction<T: Wrapper> = (
wrapper: T,
index: number
) => boolean;
declare type NodeOrNodes = React.Node | Array<React.Node>;
declare type EnzymeSelector = string | Class<React.Component<*, *>> | Object;
// CheerioWrapper is a type alias for an actual cheerio instance
// TODO: Reference correct type from cheerio's type declarations
declare type CheerioWrapper = any;
declare class Wrapper {
find(selector: EnzymeSelector): this,
findWhere(predicate: PredicateFunction<this>): this,
filter(selector: EnzymeSelector): this,
filterWhere(predicate: PredicateFunction<this>): this,
hostNodes(): this,
contains(nodeOrNodes: NodeOrNodes): boolean,
containsMatchingElement(node: React.Node): boolean,
containsAllMatchingElements(nodes: NodeOrNodes): boolean,
containsAnyMatchingElements(nodes: NodeOrNodes): boolean,
dive(option?: { context?: Object }): this,
exists(): boolean,
isEmptyRender(): boolean,
matchesElement(node: React.Node): boolean,
hasClass(className: string): boolean,
is(selector: EnzymeSelector): boolean,
isEmpty(): boolean,
not(selector: EnzymeSelector): this,
children(selector?: EnzymeSelector): this,
childAt(index: number): this,
parents(selector?: EnzymeSelector): this,
parent(): this,
closest(selector: EnzymeSelector): this,
render(): CheerioWrapper,
unmount(): this,
text(): string,
html(): string,
get(index: number): React.Node,
getNodes(): Array<React.Node>,
getDOMNode(): HTMLElement | HTMLInputElement,
at(index: number): this,
first(): this,
last(): this,
state(key?: string): any,
context(key?: string): any,
props(): Object,
prop(key: string): any,
key(): string,
simulate(event: string, ...args: Array<any>): this,
setState(state: {}, callback?: Function): this,
setProps(props: {}): this,
setContext(context: Object): this,
instance(): React.Component<*, *>,
update(): this,
debug(): string,
type(): string | Function | null,
name(): string,
forEach(fn: (node: this, index: number) => mixed): this,
map<T>(fn: (node: this, index: number) => T): Array<T>,
reduce<T>(
fn: (value: T, node: this, index: number) => T,
initialValue?: T
): Array<T>,
reduceRight<T>(
fn: (value: T, node: this, index: number) => T,
initialValue?: T
): Array<T>,
some(selector: EnzymeSelector): boolean,
someWhere(predicate: PredicateFunction<this>): boolean,
every(selector: EnzymeSelector): boolean,
everyWhere(predicate: PredicateFunction<this>): boolean,
length: number
}
declare class ReactWrapper extends Wrapper {
constructor(nodes: NodeOrNodes, root: any, options?: ?Object): ReactWrapper,
mount(): this,
ref(refName: string): this,
detach(): void
}
declare class ShallowWrapper extends Wrapper {
constructor(
nodes: NodeOrNodes,
root: any,
options?: ?Object
): ShallowWrapper,
equals(node: React.Node): boolean,
shallow(options?: { context?: Object }): ShallowWrapper
}
declare function shallow(
node: React.Node,
options?: { context?: Object, disableLifecycleMethods?: boolean }
): ShallowWrapper;
declare function mount(
node: React.Node,
options?: {
context?: Object,
attachTo?: HTMLElement,
childContextTypes?: Object
}
): ReactWrapper;
declare function render(
node: React.Node,
options?: { context?: Object }
): CheerioWrapper;
declare module.exports: {
configure(options: {
Adapter?: any,
disableLifecycleMethods?: boolean
}): void,
render: typeof render,
mount: typeof mount,
shallow: typeof shallow,
ShallowWrapper: typeof ShallowWrapper,
ReactWrapper: typeof ReactWrapper
};
}

285
flow-typed/npm/express_v4.16.x.js vendored Normal file
View File

@@ -0,0 +1,285 @@
// flow-typed signature: 41a220e96fcef89a09244ac3797039e8
// flow-typed version: 9f7cf2ab0c/express_v4.16.x/flow_>=v0.32.x
import type { Server } from "http";
import type { Socket } from "net";
declare type express$RouterOptions = {
caseSensitive?: boolean,
mergeParams?: boolean,
strict?: boolean
};
declare class express$RequestResponseBase {
app: express$Application;
get(field: string): string | void;
}
declare type express$RequestParams = {
[param: string]: string
};
declare class express$Request extends http$IncomingMessage mixins express$RequestResponseBase {
baseUrl: string;
body: mixed;
cookies: { [cookie: string]: string };
connection: Socket;
fresh: boolean;
hostname: string;
ip: string;
ips: Array<string>;
method: string;
originalUrl: string;
params: express$RequestParams;
path: string;
protocol: "https" | "http";
query: { [name: string]: string | Array<string> };
route: string;
secure: boolean;
signedCookies: { [signedCookie: string]: string };
stale: boolean;
subdomains: Array<string>;
xhr: boolean;
accepts(types: string): string | false;
accepts(types: Array<string>): string | false;
acceptsCharsets(...charsets: Array<string>): string | false;
acceptsEncodings(...encoding: Array<string>): string | false;
acceptsLanguages(...lang: Array<string>): string | false;
header(field: string): string | void;
is(type: string): boolean;
param(name: string, defaultValue?: string): string | void;
}
declare type express$CookieOptions = {
domain?: string,
encode?: (value: string) => string,
expires?: Date,
httpOnly?: boolean,
maxAge?: number,
path?: string,
secure?: boolean,
signed?: boolean
};
declare type express$Path = string | RegExp;
declare type express$RenderCallback = (
err: Error | null,
html?: string
) => mixed;
declare type express$SendFileOptions = {
maxAge?: number,
root?: string,
lastModified?: boolean,
headers?: { [name: string]: string },
dotfiles?: "allow" | "deny" | "ignore"
};
declare class express$Response extends http$ServerResponse mixins express$RequestResponseBase {
headersSent: boolean;
locals: { [name: string]: mixed };
append(field: string, value?: string): this;
attachment(filename?: string): this;
cookie(name: string, value: string, options?: express$CookieOptions): this;
clearCookie(name: string, options?: express$CookieOptions): this;
download(
path: string,
filename?: string,
callback?: (err?: ?Error) => void
): this;
format(typesObject: { [type: string]: Function }): this;
json(body?: mixed): this;
jsonp(body?: mixed): this;
links(links: { [name: string]: string }): this;
location(path: string): this;
redirect(url: string, ...args: Array<void>): this;
redirect(status: number, url: string, ...args: Array<void>): this;
render(
view: string,
locals?: { [name: string]: mixed },
callback?: express$RenderCallback
): this;
send(body?: mixed): this;
sendFile(
path: string,
options?: express$SendFileOptions,
callback?: (err?: ?Error) => mixed
): this;
sendStatus(statusCode: number): this;
header(field: string, value?: string): this;
header(headers: { [name: string]: string }): this;
set(field: string, value?: string | string[]): this;
set(headers: { [name: string]: string }): this;
status(statusCode: number): this;
type(type: string): this;
vary(field: string): this;
req: express$Request;
}
declare type express$NextFunction = (err?: ?Error | "route") => mixed;
declare type express$Middleware =
| ((
req: $Subtype<express$Request>,
res: express$Response,
next: express$NextFunction
) => mixed)
| ((
error: Error,
req: $Subtype<express$Request>,
res: express$Response,
next: express$NextFunction
) => mixed);
declare interface express$RouteMethodType<T> {
(middleware: express$Middleware): T;
(...middleware: Array<express$Middleware>): T;
(
path: express$Path | express$Path[],
...middleware: Array<express$Middleware>
): T;
}
declare class express$Route {
all: express$RouteMethodType<this>;
get: express$RouteMethodType<this>;
post: express$RouteMethodType<this>;
put: express$RouteMethodType<this>;
head: express$RouteMethodType<this>;
delete: express$RouteMethodType<this>;
options: express$RouteMethodType<this>;
trace: express$RouteMethodType<this>;
copy: express$RouteMethodType<this>;
lock: express$RouteMethodType<this>;
mkcol: express$RouteMethodType<this>;
move: express$RouteMethodType<this>;
purge: express$RouteMethodType<this>;
propfind: express$RouteMethodType<this>;
proppatch: express$RouteMethodType<this>;
unlock: express$RouteMethodType<this>;
report: express$RouteMethodType<this>;
mkactivity: express$RouteMethodType<this>;
checkout: express$RouteMethodType<this>;
merge: express$RouteMethodType<this>;
// @TODO Missing 'm-search' but get flow illegal name error.
notify: express$RouteMethodType<this>;
subscribe: express$RouteMethodType<this>;
unsubscribe: express$RouteMethodType<this>;
patch: express$RouteMethodType<this>;
search: express$RouteMethodType<this>;
connect: express$RouteMethodType<this>;
}
declare class express$Router extends express$Route {
constructor(options?: express$RouterOptions): void;
route(path: string): express$Route;
static (options?: express$RouterOptions): express$Router;
use(middleware: express$Middleware): this;
use(...middleware: Array<express$Middleware>): this;
use(
path: express$Path | express$Path[],
...middleware: Array<express$Middleware>
): this;
use(path: string, router: express$Router): this;
handle(
req: http$IncomingMessage,
res: http$ServerResponse,
next: express$NextFunction
): void;
param(
param: string,
callback: (
req: $Subtype<express$Request>,
res: express$Response,
next: express$NextFunction,
id: string
) => mixed
): void;
// Can't use regular callable signature syntax due to https://github.com/facebook/flow/issues/3084
$call: (
req: http$IncomingMessage,
res: http$ServerResponse,
next?: ?express$NextFunction
) => void;
}
/*
With flow-bin ^0.59, express app.listen() is deemed to return any and fails flow type coverage.
Which is ironic because https://github.com/facebook/flow/blob/master/Changelog.md#misc-2 (release notes for 0.59)
says "Improves typings for Node.js HTTP server listen() function." See that? IMPROVES!
To work around this issue, we changed Server to ?Server here, so that our invocations of express.listen() will
not be deemed to lack type coverage.
*/
declare class express$Application extends express$Router mixins events$EventEmitter {
constructor(): void;
locals: { [name: string]: mixed };
mountpath: string;
listen(
port: number,
hostname?: string,
backlog?: number,
callback?: (err?: ?Error) => mixed
): ?Server;
listen(
port: number,
hostname?: string,
callback?: (err?: ?Error) => mixed
): ?Server;
listen(port: number, callback?: (err?: ?Error) => mixed): ?Server;
listen(path: string, callback?: (err?: ?Error) => mixed): ?Server;
listen(handle: Object, callback?: (err?: ?Error) => mixed): ?Server;
disable(name: string): void;
disabled(name: string): boolean;
enable(name: string): express$Application;
enabled(name: string): boolean;
engine(name: string, callback: Function): void;
/**
* Mixed will not be taken as a value option. Issue around using the GET http method name and the get for settings.
*/
// get(name: string): mixed;
set(name: string, value: mixed): mixed;
render(
name: string,
optionsOrFunction: { [name: string]: mixed },
callback: express$RenderCallback
): void;
handle(
req: http$IncomingMessage,
res: http$ServerResponse,
next?: ?express$NextFunction
): void;
}
declare type JsonOptions = {
inflate?: boolean,
limit?: string | number,
reviver?: (key: string, value: mixed) => mixed,
strict?: boolean,
type?: string | Array<string> | ((req: express$Request) => boolean),
verify?: (
req: express$Request,
res: express$Response,
buf: Buffer,
encoding: string
) => mixed
};
declare module "express" {
declare export type RouterOptions = express$RouterOptions;
declare export type CookieOptions = express$CookieOptions;
declare export type Middleware = express$Middleware;
declare export type NextFunction = express$NextFunction;
declare export type RequestParams = express$RequestParams;
declare export type $Response = express$Response;
declare export type $Request = express$Request;
declare export type $Application = express$Application;
declare module.exports: {
(): express$Application, // If you try to call like a function, it will use this signature
json: (opts: ?JsonOptions) => express$Middleware,
static: (root: string, options?: Object) => express$Middleware, // `static` property on the function
Router: typeof express$Router // `Router` property on the function
};
}

6
flow-typed/npm/flow-bin_v0.x.x.js vendored Normal file
View File

@@ -0,0 +1,6 @@
// flow-typed signature: 6a5610678d4b01e13bbfbbc62bdaf583
// flow-typed version: 3817bc6980/flow-bin_v0.x.x/flow_>=v0.25.x
declare module "flow-bin" {
declare module.exports: string;
}

59
flow-typed/npm/http-errors_v1.x.x.js vendored Normal file
View File

@@ -0,0 +1,59 @@
// flow-typed signature: 573c576fe34eb3c3c65dd7a9c90a46d2
// flow-typed version: b43dff3e0e/http-errors_v1.x.x/flow_>=v0.25.x
declare module 'http-errors' {
declare class SpecialHttpError extends HttpError {
constructor(): SpecialHttpError;
}
declare class HttpError extends Error {
expose: bool;
message: string;
status: number;
statusCode: number;
}
declare module.exports: {
(status?: number, message?: string, props?: Object): HttpError;
HttpError: typeof HttpError;
BadRequest: typeof SpecialHttpError;
Unauthorized: typeof SpecialHttpError;
PaymentRequired: typeof SpecialHttpError;
Forbidden: typeof SpecialHttpError;
NotFound: typeof SpecialHttpError;
MethodNotAllowed: typeof SpecialHttpError;
NotAcceptable: typeof SpecialHttpError;
ProxyAuthenticationRequired: typeof SpecialHttpError;
RequestTimeout: typeof SpecialHttpError;
Conflict: typeof SpecialHttpError;
Gone: typeof SpecialHttpError;
LengthRequired: typeof SpecialHttpError;
PreconditionFailed: typeof SpecialHttpError;
PayloadTooLarge: typeof SpecialHttpError;
URITooLong: typeof SpecialHttpError;
UnsupportedMediaType: typeof SpecialHttpError;
RangeNotStatisfiable: typeof SpecialHttpError;
ExpectationFailed: typeof SpecialHttpError;
ImATeapot: typeof SpecialHttpError;
MisdirectedRequest: typeof SpecialHttpError;
UnprocessableEntity: typeof SpecialHttpError;
Locked: typeof SpecialHttpError;
FailedDependency: typeof SpecialHttpError;
UnorderedCollection: typeof SpecialHttpError;
UpgradeRequired: typeof SpecialHttpError;
PreconditionRequired: typeof SpecialHttpError;
TooManyRequests: typeof SpecialHttpError;
RequestHeaderFieldsTooLarge: typeof SpecialHttpError;
UnavailableForLegalReasons: typeof SpecialHttpError;
InternalServerError: typeof SpecialHttpError;
NotImplemented: typeof SpecialHttpError;
BadGateway: typeof SpecialHttpError;
ServiceUnavailable: typeof SpecialHttpError;
GatewayTimeout: typeof SpecialHttpError;
HTTPVersionNotSupported: typeof SpecialHttpError;
VariantAlsoNegotiates: typeof SpecialHttpError;
InsufficientStorage: typeof SpecialHttpError;
LoopDetected: typeof SpecialHttpError;
BandwidthLimitExceeded: typeof SpecialHttpError;
NotExtended: typeof SpecialHttpError;
NetworkAuthenticationRequired: typeof SpecialHttpError;
}
}

588
flow-typed/npm/jest_v22.x.x.js vendored Normal file
View File

@@ -0,0 +1,588 @@
// flow-typed signature: 6e1fc0a644aa956f79029fec0709e597
// flow-typed version: 07ebad4796/jest_v22.x.x/flow_>=v0.39.x
type JestMockFn<TArguments: $ReadOnlyArray<*>, TReturn> = {
(...args: TArguments): TReturn,
/**
* An object for introspecting mock calls
*/
mock: {
/**
* An array that represents all calls that have been made into this mock
* function. Each call is represented by an array of arguments that were
* passed during the call.
*/
calls: Array<TArguments>,
/**
* An array that contains all the object instances that have been
* instantiated from this mock function.
*/
instances: Array<TReturn>
},
/**
* Resets all information stored in the mockFn.mock.calls and
* mockFn.mock.instances arrays. Often this is useful when you want to clean
* up a mock's usage data between two assertions.
*/
mockClear(): void,
/**
* Resets all information stored in the mock. This is useful when you want to
* completely restore a mock back to its initial state.
*/
mockReset(): void,
/**
* Removes the mock and restores the initial implementation. This is useful
* when you want to mock functions in certain test cases and restore the
* original implementation in others. Beware that mockFn.mockRestore only
* works when mock was created with jest.spyOn. Thus you have to take care of
* restoration yourself when manually assigning jest.fn().
*/
mockRestore(): void,
/**
* Accepts a function that should be used as the implementation of the mock.
* The mock itself will still record all calls that go into and instances
* that come from itself -- the only difference is that the implementation
* will also be executed when the mock is called.
*/
mockImplementation(
fn: (...args: TArguments) => TReturn
): JestMockFn<TArguments, TReturn>,
/**
* Accepts a function that will be used as an implementation of the mock for
* one call to the mocked function. Can be chained so that multiple function
* calls produce different results.
*/
mockImplementationOnce(
fn: (...args: TArguments) => TReturn
): JestMockFn<TArguments, TReturn>,
/**
* Just a simple sugar function for returning `this`
*/
mockReturnThis(): void,
/**
* Deprecated: use jest.fn(() => value) instead
*/
mockReturnValue(value: TReturn): JestMockFn<TArguments, TReturn>,
/**
* Sugar for only returning a value once inside your mock
*/
mockReturnValueOnce(value: TReturn): JestMockFn<TArguments, TReturn>
};
type JestAsymmetricEqualityType = {
/**
* A custom Jasmine equality tester
*/
asymmetricMatch(value: mixed): boolean
};
type JestCallsType = {
allArgs(): mixed,
all(): mixed,
any(): boolean,
count(): number,
first(): mixed,
mostRecent(): mixed,
reset(): void
};
type JestClockType = {
install(): void,
mockDate(date: Date): void,
tick(milliseconds?: number): void,
uninstall(): void
};
type JestMatcherResult = {
message?: string | (() => string),
pass: boolean
};
type JestMatcher = (actual: any, expected: any) => JestMatcherResult;
type JestPromiseType = {
/**
* Use rejects to unwrap the reason of a rejected promise so any other
* matcher can be chained. If the promise is fulfilled the assertion fails.
*/
rejects: JestExpectType,
/**
* Use resolves to unwrap the value of a fulfilled promise so any other
* matcher can be chained. If the promise is rejected the assertion fails.
*/
resolves: JestExpectType
};
/**
* Plugin: jest-enzyme
*/
type EnzymeMatchersType = {
toBeChecked(): void,
toBeDisabled(): void,
toBeEmpty(): void,
toBePresent(): void,
toContainReact(element: React$Element<any>): void,
toHaveClassName(className: string): void,
toHaveHTML(html: string): void,
toHaveProp(propKey: string, propValue?: any): void,
toHaveRef(refName: string): void,
toHaveState(stateKey: string, stateValue?: any): void,
toHaveStyle(styleKey: string, styleValue?: any): void,
toHaveTagName(tagName: string): void,
toHaveText(text: string): void,
toIncludeText(text: string): void,
toHaveValue(value: any): void,
toMatchElement(element: React$Element<any>): void,
toMatchSelector(selector: string): void
};
type JestExpectType = {
not: JestExpectType & EnzymeMatchersType,
/**
* If you have a mock function, you can use .lastCalledWith to test what
* arguments it was last called with.
*/
lastCalledWith(...args: Array<any>): void,
/**
* toBe just checks that a value is what you expect. It uses === to check
* strict equality.
*/
toBe(value: any): void,
/**
* Use .toHaveBeenCalled to ensure that a mock function got called.
*/
toBeCalled(): void,
/**
* Use .toBeCalledWith to ensure that a mock function was called with
* specific arguments.
*/
toBeCalledWith(...args: Array<any>): void,
/**
* Using exact equality with floating point numbers is a bad idea. Rounding
* means that intuitive things fail.
*/
toBeCloseTo(num: number, delta: any): void,
/**
* Use .toBeDefined to check that a variable is not undefined.
*/
toBeDefined(): void,
/**
* Use .toBeFalsy when you don't care what a value is, you just want to
* ensure a value is false in a boolean context.
*/
toBeFalsy(): void,
/**
* To compare floating point numbers, you can use toBeGreaterThan.
*/
toBeGreaterThan(number: number): void,
/**
* To compare floating point numbers, you can use toBeGreaterThanOrEqual.
*/
toBeGreaterThanOrEqual(number: number): void,
/**
* To compare floating point numbers, you can use toBeLessThan.
*/
toBeLessThan(number: number): void,
/**
* To compare floating point numbers, you can use toBeLessThanOrEqual.
*/
toBeLessThanOrEqual(number: number): void,
/**
* Use .toBeInstanceOf(Class) to check that an object is an instance of a
* class.
*/
toBeInstanceOf(cls: Class<*>): void,
/**
* .toBeNull() is the same as .toBe(null) but the error messages are a bit
* nicer.
*/
toBeNull(): void,
/**
* Use .toBeTruthy when you don't care what a value is, you just want to
* ensure a value is true in a boolean context.
*/
toBeTruthy(): void,
/**
* Use .toBeUndefined to check that a variable is undefined.
*/
toBeUndefined(): void,
/**
* Use .toContain when you want to check that an item is in a list. For
* testing the items in the list, this uses ===, a strict equality check.
*/
toContain(item: any): void,
/**
* Use .toContainEqual when you want to check that an item is in a list. For
* testing the items in the list, this matcher recursively checks the
* equality of all fields, rather than checking for object identity.
*/
toContainEqual(item: any): void,
/**
* Use .toEqual when you want to check that two objects have the same value.
* This matcher recursively checks the equality of all fields, rather than
* checking for object identity.
*/
toEqual(value: any): void,
/**
* Use .toHaveBeenCalled to ensure that a mock function got called.
*/
toHaveBeenCalled(): void,
/**
* Use .toHaveBeenCalledTimes to ensure that a mock function got called exact
* number of times.
*/
toHaveBeenCalledTimes(number: number): void,
/**
* Use .toHaveBeenCalledWith to ensure that a mock function was called with
* specific arguments.
*/
toHaveBeenCalledWith(...args: Array<any>): void,
/**
* Use .toHaveBeenLastCalledWith to ensure that a mock function was last called
* with specific arguments.
*/
toHaveBeenLastCalledWith(...args: Array<any>): void,
/**
* Check that an object has a .length property and it is set to a certain
* numeric value.
*/
toHaveLength(number: number): void,
/**
*
*/
toHaveProperty(propPath: string, value?: any): void,
/**
* Use .toMatch to check that a string matches a regular expression or string.
*/
toMatch(regexpOrString: RegExp | string): void,
/**
* Use .toMatchObject to check that a javascript object matches a subset of the properties of an object.
*/
toMatchObject(object: Object | Array<Object>): void,
/**
* This ensures that a React component matches the most recent snapshot.
*/
toMatchSnapshot(name?: string): void,
/**
* Use .toThrow to test that a function throws when it is called.
* If you want to test that a specific error gets thrown, you can provide an
* argument to toThrow. The argument can be a string for the error message,
* a class for the error, or a regex that should match the error.
*
* Alias: .toThrowError
*/
toThrow(message?: string | Error | Class<Error> | RegExp): void,
toThrowError(message?: string | Error | Class<Error> | RegExp): void,
/**
* Use .toThrowErrorMatchingSnapshot to test that a function throws a error
* matching the most recent snapshot when it is called.
*/
toThrowErrorMatchingSnapshot(): void
};
type JestObjectType = {
/**
* Disables automatic mocking in the module loader.
*
* After this method is called, all `require()`s will return the real
* versions of each module (rather than a mocked version).
*/
disableAutomock(): JestObjectType,
/**
* An un-hoisted version of disableAutomock
*/
autoMockOff(): JestObjectType,
/**
* Enables automatic mocking in the module loader.
*/
enableAutomock(): JestObjectType,
/**
* An un-hoisted version of enableAutomock
*/
autoMockOn(): JestObjectType,
/**
* Clears the mock.calls and mock.instances properties of all mocks.
* Equivalent to calling .mockClear() on every mocked function.
*/
clearAllMocks(): JestObjectType,
/**
* Resets the state of all mocks. Equivalent to calling .mockReset() on every
* mocked function.
*/
resetAllMocks(): JestObjectType,
/**
* Restores all mocks back to their original value.
*/
restoreAllMocks(): JestObjectType,
/**
* Removes any pending timers from the timer system.
*/
clearAllTimers(): void,
/**
* The same as `mock` but not moved to the top of the expectation by
* babel-jest.
*/
doMock(moduleName: string, moduleFactory?: any): JestObjectType,
/**
* The same as `unmock` but not moved to the top of the expectation by
* babel-jest.
*/
dontMock(moduleName: string): JestObjectType,
/**
* Returns a new, unused mock function. Optionally takes a mock
* implementation.
*/
fn<TArguments: $ReadOnlyArray<*>, TReturn>(
implementation?: (...args: TArguments) => TReturn
): JestMockFn<TArguments, TReturn>,
/**
* Determines if the given function is a mocked function.
*/
isMockFunction(fn: Function): boolean,
/**
* Given the name of a module, use the automatic mocking system to generate a
* mocked version of the module for you.
*/
genMockFromModule(moduleName: string): any,
/**
* Mocks a module with an auto-mocked version when it is being required.
*
* The second argument can be used to specify an explicit module factory that
* is being run instead of using Jest's automocking feature.
*
* The third argument can be used to create virtual mocks -- mocks of modules
* that don't exist anywhere in the system.
*/
mock(
moduleName: string,
moduleFactory?: any,
options?: Object
): JestObjectType,
/**
* Returns the actual module instead of a mock, bypassing all checks on
* whether the module should receive a mock implementation or not.
*/
requireActual(moduleName: string): any,
/**
* Returns a mock module instead of the actual module, bypassing all checks
* on whether the module should be required normally or not.
*/
requireMock(moduleName: string): any,
/**
* Resets the module registry - the cache of all required modules. This is
* useful to isolate modules where local state might conflict between tests.
*/
resetModules(): JestObjectType,
/**
* Exhausts the micro-task queue (usually interfaced in node via
* process.nextTick).
*/
runAllTicks(): void,
/**
* Exhausts the macro-task queue (i.e., all tasks queued by setTimeout(),
* setInterval(), and setImmediate()).
*/
runAllTimers(): void,
/**
* Exhausts all tasks queued by setImmediate().
*/
runAllImmediates(): void,
/**
* Executes only the macro task queue (i.e. all tasks queued by setTimeout()
* or setInterval() and setImmediate()).
*/
runTimersToTime(msToRun: number): void,
/**
* Executes only the macro-tasks that are currently pending (i.e., only the
* tasks that have been queued by setTimeout() or setInterval() up to this
* point)
*/
runOnlyPendingTimers(): void,
/**
* Explicitly supplies the mock object that the module system should return
* for the specified module. Note: It is recommended to use jest.mock()
* instead.
*/
setMock(moduleName: string, moduleExports: any): JestObjectType,
/**
* Indicates that the module system should never return a mocked version of
* the specified module from require() (e.g. that it should always return the
* real module).
*/
unmock(moduleName: string): JestObjectType,
/**
* Instructs Jest to use fake versions of the standard timer functions
* (setTimeout, setInterval, clearTimeout, clearInterval, nextTick,
* setImmediate and clearImmediate).
*/
useFakeTimers(): JestObjectType,
/**
* Instructs Jest to use the real versions of the standard timer functions.
*/
useRealTimers(): JestObjectType,
/**
* Creates a mock function similar to jest.fn but also tracks calls to
* object[methodName].
*/
spyOn(object: Object, methodName: string): JestMockFn<any, any>,
/**
* Set the default timeout interval for tests and before/after hooks in milliseconds.
* Note: The default timeout interval is 5 seconds if this method is not called.
*/
setTimeout(timeout: number): JestObjectType
};
type JestSpyType = {
calls: JestCallsType
};
/** Runs this function after every test inside this context */
declare function afterEach(
fn: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void;
/** Runs this function before every test inside this context */
declare function beforeEach(
fn: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void;
/** Runs this function after all tests have finished inside this context */
declare function afterAll(
fn: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void;
/** Runs this function before any tests have started inside this context */
declare function beforeAll(
fn: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void;
/** A context for grouping tests together */
declare var describe: {
/**
* Creates a block that groups together several related tests in one "test suite"
*/
(name: string, fn: () => void): void,
/**
* Only run this describe block
*/
only(name: string, fn: () => void): void,
/**
* Skip running this describe block
*/
skip(name: string, fn: () => void): void
};
/** An individual test unit */
declare var it: {
/**
* An individual test unit
*
* @param {string} Name of Test
* @param {Function} Test
* @param {number} Timeout for the test, in milliseconds.
*/
(
name: string,
fn?: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void,
/**
* Only run this test
*
* @param {string} Name of Test
* @param {Function} Test
* @param {number} Timeout for the test, in milliseconds.
*/
only(
name: string,
fn?: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void,
/**
* Skip running this test
*
* @param {string} Name of Test
* @param {Function} Test
* @param {number} Timeout for the test, in milliseconds.
*/
skip(
name: string,
fn?: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void,
/**
* Run the test concurrently
*
* @param {string} Name of Test
* @param {Function} Test
* @param {number} Timeout for the test, in milliseconds.
*/
concurrent(
name: string,
fn?: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void
};
declare function fit(
name: string,
fn: (done: () => void) => ?Promise<mixed>,
timeout?: number
): void;
/** An individual test unit */
declare var test: typeof it;
/** A disabled group of tests */
declare var xdescribe: typeof describe;
/** A focused group of tests */
declare var fdescribe: typeof describe;
/** A disabled individual test */
declare var xit: typeof it;
/** A disabled individual test */
declare var xtest: typeof it;
/** The expect function is used every time you want to test a value */
declare var expect: {
/** The object that you want to make assertions against */
(value: any): JestExpectType & JestPromiseType & EnzymeMatchersType,
/** Add additional Jasmine matchers to Jest's roster */
extend(matchers: { [name: string]: JestMatcher }): void,
/** Add a module that formats application-specific data structures. */
addSnapshotSerializer(serializer: (input: Object) => string): void,
assertions(expectedAssertions: number): void,
hasAssertions(): void,
any(value: mixed): JestAsymmetricEqualityType,
anything(): void,
arrayContaining(value: Array<mixed>): void,
objectContaining(value: Object): void,
/** Matches any received string that contains the exact expected string. */
stringContaining(value: string): void,
stringMatching(value: string | RegExp): void
};
// TODO handle return type
// http://jasmine.github.io/2.4/introduction.html#section-Spies
declare function spyOn(value: mixed, method: string): Object;
/** Holds all functions related to manipulating test runner */
declare var jest: JestObjectType;
/**
* The global Jasmine object, this is generally not exposed as the public API,
* using features inside here could break in later versions of Jest.
*/
declare var jasmine: {
DEFAULT_TIMEOUT_INTERVAL: number,
any(value: mixed): JestAsymmetricEqualityType,
anything(): void,
arrayContaining(value: Array<mixed>): void,
clock(): JestClockType,
createSpy(name: string): JestSpyType,
createSpyObj(
baseName: string,
methodNames: Array<string>
): { [methodName: string]: JestSpyType },
objectContaining(value: Object): void,
stringMatching(value: string): void
};

18
flow-typed/npm/lockfile_v1.x.x.js vendored Normal file
View File

@@ -0,0 +1,18 @@
// flow-typed signature: 20e87b8d51bb8f98aaf129f4b0bdaf81
// flow-typed version: c5395b57b9/lockfile_v1.x.x/flow_>=v0.47.x
declare module "lockfile" {
declare type Callback = (err: ?Error) => void | mixed;
declare type LockOptions = {
wait?: number,
pollPeriod?: number,
stale?: number,
retries?: number,
retryWait?: number
};
declare interface LockFileExport {
lock(fileName: string, opts: LockOptions, cb: Callback): void,
unlock(fileName: string, cb: Callback): void
}
declare module.exports: LockFileExport;
}

5976
flow-typed/npm/lodash_v4.x.x.js vendored Normal file

File diff suppressed because it is too large Load Diff

163
flow-typed/npm/marked_v0.3.x.js vendored Normal file
View File

@@ -0,0 +1,163 @@
// flow-typed signature: 85ea5a515c42c00188d893614f410655
// flow-typed version: 72fe9c1b53/marked_v0.3.x/flow_>=v0.28.x
type marked$AlignFlag = 'left' | 'right' | 'center'
type marked$NodeCallback<T> = (e: ?Error, d: ?T) => void
class marked$Renderer {
options: marked$MarkedOptions;
code: (c: string, l: string) => string;
blockquote: (q: string) => string;
html: (h: string) => string;
heading: (t: string, l: number) => string;
hr: () => string;
list: (b: string, o: boolean) => string;
listitem: (t: string) => string;
paragraph: (t: string) => string;
table: (h: string, b: string) => string;
tablerow: (c: string) => string;
tablecell: (c: string, f: ?marked$AlignFlag) => string;
heading: (t: string, l: number) => string;
strong: (t: string) => string;
em: (t: string) => string;
codespan: (c: string) => string;
br: () => string;
del: (t: string) => string;
link: (h: string, ti: string, te: string) => string;
image: (h: string, ti: string, te: string) => string;
text: (t: string) => string;
constructor(o?: marked$MarkedOptions): marked$Renderer {
return this;
}
}
type marked$HighlightFunction =
((c: string, l: string, cb: marked$NodeCallback<string>) => void)
| ((c: string, cb: marked$NodeCallback<string>) => void)
| ((c: string, l?: string) => string)
type marked$MarkedOptions = {
highlight?: marked$HighlightFunction;
renderer?: marked$Renderer;
gfm?: boolean;
tables?: boolean;
breaks?: boolean;
pedantic?: boolean;
sanitize?: boolean;
smartLists?: boolean;
smartypants?: boolean;
}
/*
* marked$Tokens
*/
type marked$Space = { type: 'space'; }
type marked$Code = { type: 'code'; text: string; lang?: string; }
type marked$Heading = { type: 'heading'; depth: number; text: string; }
type marked$Table = { type: 'table'; header: string; align: Array<marked$AlignFlag> ; cells: Array<Array<string>> }
type marked$Hr = { type: 'hr'; }
type marked$BlockquoteStart = { type: 'blockquote_start' }
type marked$BlockquoteEnd = { type: 'blockquote_end' }
type marked$ListStart = { type: 'list_start' }
type marked$ListEnd = { type: 'list_end' }
type marked$Paragraph = { type: 'paragraph'; pre: boolean; text: string; }
type marked$Html = { type: 'paragraph'; pre: boolean; text: string; }
type marked$Text = { type: 'text'; text: string; }
type marked$Token =
marked$Space
| marked$Code
| marked$Heading
| marked$Table
| marked$Hr
| marked$BlockquoteStart
| marked$BlockquoteEnd
| marked$ListStart
| marked$ListEnd
| marked$Paragraph
| marked$Html
| marked$Text
type marked$Link = {
title: ?string;
href: string;
}
type marked$Tokens = { links: Array<marked$Link> } & Array<marked$Token>;
type marked$NoopRule = {
(i: mixed): void;
exec: (i: mixed) => void;
}
type marked$Rule = RegExp | marked$NoopRule
type marked$lex = (t: string) => marked$Tokens;
class marked$Lexer {
static lexer: (t: string, o?: marked$MarkedOptions) => marked$Tokens;
static rules: { [key: string]: marked$Rule };
rules: { [key: string]: marked$Rule };
lex: marked$lex;
tokens: marked$Tokens;
options: marked$MarkedOptions;
constructor(o?: marked$MarkedOptions): marked$Lexer {
return this;
}
}
class marked$Parser {
static parse: (t: marked$Tokens, o?: marked$MarkedOptions) => string;
parse: (t: marked$Tokens) => string;
next: () => marked$Token;
peek: () => marked$Token;
parsemarked$Text: () => string;
tok: () => string;
tokens: marked$Tokens;
token: ?marked$Token;
options: marked$MarkedOptions;
renderer: marked$Renderer;
constructor(o?: marked$MarkedOptions): marked$Parser {
return this;
}
}
class marked$InlineLexer {
static rules: Array<marked$Rule>;
static output: (s: string, l: Array<marked$Link>, o?: marked$MarkedOptions) => string;
output: (s: string) => string;
outputmarked$Link: (c: Array<string>, l: marked$Link) => string;
smartypants: (t: string) => string;
mangle: (t: string) => string;
options: marked$MarkedOptions;
links: Array<marked$Link>;
rules: Array<marked$Rule>;
renderer: marked$Renderer;
constructor(l: Array<marked$Link>, o?: marked$MarkedOptions): marked$InlineLexer {
return this;
}
}
type marked$Marked = {
(md: string, o: marked$MarkedOptions, cb: marked$NodeCallback<string>): void;
(md: string, cb: marked$NodeCallback<string>): void;
(md: string, o?: marked$MarkedOptions): string;
setOptions: (o: marked$MarkedOptions) => void;
defaults: marked$MarkedOptions;
Parser: typeof marked$Parser;
parser: typeof marked$Parser.parse;
Lexer: typeof marked$Lexer;
lexer: typeof marked$Lexer.lexer;
InlineLexer: typeof marked$InlineLexer;
inlinelexer: marked$InlineLexer.output;
Renderer: typeof marked$Renderer;
parse: marked$Marked;
}
declare module marked {
declare export default marked$Marked;
}

53
flow-typed/npm/minimatch_v3.x.x.js vendored Normal file
View File

@@ -0,0 +1,53 @@
// flow-typed signature: bc0af4a44bb8631039f713b1afba6988
// flow-typed version: d42cbef63c/minimatch_v3.x.x/flow_>=v0.25.x
type $npm$minimatch$Options = {
debug?: boolean,
nobrace?: boolean,
noglobstar?: boolean,
dot?: boolean,
noext?: boolean,
nocase?: boolean,
nonull?: boolean,
matchBase?: boolean,
nocomment?: boolean,
nonegate?: boolean,
flipNegate?: boolean
};
declare module "minimatch" {
declare class Minimatch {
constructor(pattern: string, options?: $npm$minimatch$Options): Minimatch,
set: Array<Array<string | RegExp>>,
regexp: null | RegExp, // null until .makeRe() is called
negate: boolean,
comment: boolean,
empty: boolean,
makeRe(): RegExp | false,
match(name: string): boolean,
matchOne(
fileArray: Array<string>,
patternArray: Array<string>,
partial?: boolean
): boolean
}
declare class MinimatchModule {
Minimatch: Class<Minimatch>,
(name: string, pattern: string, options?: $npm$minimatch$Options): boolean,
filter(
pattern: string,
options?: $npm$minimatch$Options
): (value: string) => boolean,
match(
list: Array<string>,
pattern: string,
options?: $npm$minimatch$Options
): Array<string>
}
declare module.exports: MinimatchModule;
}

13
flow-typed/npm/mkdirp_v0.5.x.js vendored Normal file
View File

@@ -0,0 +1,13 @@
// flow-typed signature: 82aa0feffc2bbd64dce3bec492f5d601
// flow-typed version: 3315d89a00/mkdirp_v0.5.x/flow_>=v0.25.0
declare module 'mkdirp' {
declare type Options = number | { mode?: number; fs?: mixed };
declare type Callback = (err: ?Error, path: ?string) => void;
declare module.exports: {
(path: string, options?: Options | Callback, callback?: Callback): void;
sync(path: string, options?: Options): void;
};
}

View File

@@ -0,0 +1,9 @@
// flow-typed signature: b0a8c8851219a1c2a933509d842e0bc8
// flow-typed version: 4a2d036a51/normalize.css_v7.x.x/flow_>=v0.34.x
// normalize.css may be imported for side-effects,
// e.g. to force webpack to bundle it alongside CSS modules
declare module "normalize.css" {
declare export default empty
}

34
flow-typed/npm/prop-types_v15.x.x.js vendored Normal file
View File

@@ -0,0 +1,34 @@
// flow-typed signature: 3eaa1f24c7397b78a7481992d2cddcb2
// flow-typed version: a1a20d4928/prop-types_v15.x.x/flow_>=v0.41.x
type $npm$propTypes$ReactPropsCheckType = (
props: any,
propName: string,
componentName: string,
href?: string) => ?Error;
declare module 'prop-types' {
declare var array: React$PropType$Primitive<Array<any>>;
declare var bool: React$PropType$Primitive<boolean>;
declare var func: React$PropType$Primitive<Function>;
declare var number: React$PropType$Primitive<number>;
declare var object: React$PropType$Primitive<Object>;
declare var string: React$PropType$Primitive<string>;
declare var any: React$PropType$Primitive<any>;
declare var arrayOf: React$PropType$ArrayOf;
declare var element: React$PropType$Primitive<any>; /* TODO */
declare var instanceOf: React$PropType$InstanceOf;
declare var node: React$PropType$Primitive<any>; /* TODO */
declare var objectOf: React$PropType$ObjectOf;
declare var oneOf: React$PropType$OneOf;
declare var oneOfType: React$PropType$OneOfType;
declare var shape: React$PropType$Shape;
declare function checkPropTypes<V>(
propTypes: $Subtype<{[_: $Keys<V>]: $npm$propTypes$ReactPropsCheckType}>,
values: V,
location: string,
componentName: string,
getStack: ?(() => ?string)
) : void;
}

Some files were not shown because too many files have changed in this diff Show More