Compare commits

...

99 Commits

Author SHA1 Message Date
Juan Picado
ce1c642312 chore: update versions (next-8) (#4761)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-11 21:57:05 +02:00
Juan Picado
93c53a4d5a chore: switch packages to 8 2024-09-11 21:46:34 +02:00
verdacciobot
a77074d0a8 chore: updated static data 2024-09-09 00:16:02 +00:00
renovate[bot]
71028d5ce4 chore(deps): update github/codeql-action digest to be8b74c (#4806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 17:08:49 +02:00
verdacciobot
e907171bfb chore: updated static data 2024-09-05 00:14:57 +00:00
verdacciobot
7ef2ed6959 chore: updated static data 2024-09-02 00:15:37 +00:00
dependabot[bot]
d573444910 chore(deps): bump github/codeql-action from 3.25.15 to 3.26.6 (#4803) 2024-09-01 15:02:23 +02:00
renovate[bot]
829c908e45 chore(deps): update actions/upload-artifact digest to a8a3f3a (#4798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-01 09:18:42 +02:00
Gweesin Chan
ed6c794d2d chore: remove redundant config (#4797) 2024-08-30 09:39:30 +02:00
verdacciobot
b03e8b9dd6 chore: updated static data 2024-08-29 00:14:51 +00:00
verdacciobot
b167f9d323 chore: updated static data 2024-08-26 00:14:31 +00:00
Marc Bernard
a05a7d8a13 fix(config): test runs on Windows (#4786)
* fix(config): test runs on Windows

* Typo

* limit APPDATA test to win32

* limit APPDATA test to win32

* limit APPDATA test to win32

* Limit APPDATA test to Windows (w/ mocking)

* More realistic APPDATA value
2024-08-22 08:49:38 +02:00
verdacciobot
3f46ff0107 chore: updated static data 2024-08-22 00:14:26 +00:00
Marc Bernard
7c9f3cf15e chore: improve startup logging (#4788) 2024-08-20 21:17:33 +02:00
verdacciobot
e8de53bcdf chore: updated static data 2024-08-19 00:14:51 +00:00
verdacciobot
f48f19dfe9 chore: updated static data 2024-08-15 00:14:36 +00:00
verdacciobot
4793270a3e chore: updated static data 2024-08-12 00:14:50 +00:00
verdacciobot
b64c7d4660 chore: updated static data 2024-08-08 00:14:18 +00:00
Juan Picado
c63655b6f2 Update docusaurus.config.js 2024-08-06 19:49:23 +02:00
Juan Picado
97947ebb3d Update website.yml 2024-08-06 19:31:37 +02:00
Juan Picado
60b263f23d Update docusaurus.config.js 2024-08-06 19:30:44 +02:00
Juan Picado
6576ea7a5b Update docusaurus.config.js 2024-08-06 19:22:35 +02:00
Juan Picado
303c659bfc fix: enable Irish language on ui (#4781)
* fix: enable irish language on ui

* Update docusaurus.config.js
2024-08-05 23:23:53 +02:00
Juan Picado
4769ddf1ba website: enable iris translation
it reached 100% 🎉
2024-08-05 22:16:19 +02:00
verdacciobot
8b9f8a6f80 chore: updated static data 2024-08-05 00:14:32 +00:00
Juan Picado
06f68eb0e7 chore: migrate vitest packages (#4780)
* chore: migrate api package

* Update distTag.spec.ts

* fix storage test

* Update server.ts

* migrate search package

* chore: migrate plugin local-storage
2024-08-04 20:17:02 +02:00
renovate[bot]
1f75a416f2 chore(deps): update all linting dependencies (#4779)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-04 08:12:54 +02:00
Juan Picado
477f9bcba4 chore: migrate vitest more package (#4778)
* chore: migrate proxy package

* chore: migrate logger-prettier
2024-08-03 22:52:48 +02:00
Juan Picado
0c7b19b192 chore: migrate vitest packages (#4777)
* chore: migrate core to vitest

* chore: migrate url module

* chore: migrate tarball package

* chore: migrate loader package

* chore: migrate hook package

* chore: migrate signature package

* chore: migrate utils package
2024-08-03 19:39:22 +02:00
renovate[bot]
79c1fedc1b chore(deps): update actions/setup-node digest to 1a4442c (#4775)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-03 18:57:46 +02:00
renovate[bot]
29b1c39169 fix(deps): update all package managers (#4768) 2024-08-03 17:15:28 +02:00
renovate[bot]
0ab8fd92bd chore(deps): update dependency rimraf to v5.0.10 (#4765) 2024-08-03 16:46:56 +02:00
renovate[bot]
07f5cf2799 fix(deps): update dependency ajv to v8.17.1 (#4763) 2024-08-03 15:55:29 +02:00
renovate[bot]
f59268b225 fix(deps): update dependency js-base64 to v3.7.7 (#4766) 2024-08-03 15:29:08 +02:00
renovate[bot]
5513e2f8a2 fix(deps): update dependency usehooks-ts to v2.16.0 (#4767) 2024-08-03 15:28:42 +02:00
renovate[bot]
fb239e39c3 fix(deps): update dependency core-js to v3.37.1 (#4764) 2024-08-03 14:14:15 +02:00
renovate[bot]
c7a7b1ded9 fix(deps): update dependency @crowdin/crowdin-api-client to v1.35.0 (#4762) 2024-08-03 14:14:03 +02:00
Juan Picado
d3f4146bc7 Update docker-plugins-e2e.yml 2024-08-03 13:00:53 +02:00
Juan Picado
5c561f7d1a fix docker ci 2024-08-03 12:57:00 +02:00
Juan Picado
0119daaba9 improve ci 2024-08-03 10:35:46 +02:00
renovate[bot]
d7332e6122 chore(deps): update actions/cache digest to e12d46a (#4758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-03 10:32:21 +02:00
renovate[bot]
02058672e6 chore(deps): update actions/checkout digest to f43a0e5 (#4759)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-03 10:32:13 +02:00
Juan Picado
a82be2d8a8 fix docker test 2024-08-03 10:30:42 +02:00
Juan Picado
527f39988f Update docker-proxy-apache-e2e.yml 2024-08-03 09:59:21 +02:00
Juan Picado
4d3435001a Update docker-proxy-apache-e2e.yml 2024-08-03 09:56:36 +02:00
Juan Picado
8c10a3ec31 chore: migrate config package to vitest (#4760)
* chore: migrate config package to vitest

* Update pnpm-lock.yaml

* improve win32 test

* Create moody-mugs-pay.md
2024-08-03 09:52:18 +02:00
renovate[bot]
8ef7a285e5 chore(deps): update dependency yaml to v2.5.0 (#4757) 2024-08-02 17:52:17 +02:00
renovate[bot]
45c6b70ebc chore(deps): update dependency react-hook-form to v7.52.1 (#4756) 2024-08-02 17:51:52 +02:00
renovate[bot]
fd7ed45064 chore(deps): update dependency minimatch to v9.0.5 (#4755) 2024-08-02 17:51:12 +02:00
renovate[bot]
79e76d9c72 fix(deps): update dependency debug to v4.3.6 (#4754) 2024-08-02 14:58:37 +02:00
dependabot[bot]
947f43e7e6 chore(deps): bump actions/upload-artifact from 3.1.3 to 4.3.4 (#4748)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.3.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](a8a3f3ad30...0b2256b8c0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-02 08:00:14 +02:00
dependabot[bot]
591a699597 chore(deps): bump docker/setup-qemu-action from 3.0.0 to 3.2.0 (#4749) 2024-08-01 19:52:43 +02:00
dependabot[bot]
08c49460d5 chore(deps): bump actions/setup-node from 4.0.2 to 4.0.3 (#4750)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](60edb5dd54...1e60f620b9)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-01 18:50:33 +02:00
Juan Picado
489631bda9 chore: update versions (next-7) (#4746)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-01 18:36:08 +02:00
dependabot[bot]
112f1d60b8 chore(deps): bump github/codeql-action from 3.25.11 to 3.25.15 (#4751) 2024-08-01 18:02:15 +02:00
verdacciobot
e87b29885b chore: updated static data 2024-08-01 00:15:46 +00:00
Marc Bernard
ccc7bd1df5 fix(middleware): link to favicon in template (#4744) 2024-07-30 23:20:18 +02:00
Marc Bernard
3c6e6b9af7 chore: revert changes (#4745)
* chore: revert "Fix sidebar test"

This reverts commit 096d634917.

Sorry, this push should have gone to my fork only.

* chore: revert "Merge branch 'apm' into pr/mbtools/2"

This reverts commit 87fa9270a5, reversing
changes made to dc2cd48a78.

Sorry, this push should have gone to my fork only.
2024-07-30 23:15:34 +02:00
Marc Bernard
096d634917 Fix sidebar test 2024-07-29 11:12:30 -04:00
Marc Bernard
87fa9270a5 Merge branch 'apm' into pr/mbtools/2 2024-07-29 09:51:18 -04:00
verdacciobot
dc2cd48a78 chore: updated static data 2024-07-29 00:14:47 +00:00
Juan Picado
4c54c0c67d feat: update dependencies (#4738)
* udapte deps step1

* udpate 2

* update 3
2024-07-28 14:06:47 +02:00
renovate[bot]
6bed536f80 chore(deps): update typescript dependencies (master) (#4733)
* chore(deps): update typescript dependencies

* restore dep

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2024-07-28 08:41:50 +02:00
verdacciobot
1f4fa441ae chore: updated static data 2024-07-25 00:14:10 +00:00
Juan Picado
c5f5e75818 chore: remove node 22 from generator flow
npm sort of broken
2024-07-23 22:33:52 +02:00
verdacciobot
b3f52486f7 chore: updated static data 2024-07-22 00:14:48 +00:00
Juan Picado
bbfb4118bf chore: update versions (next-7) (#4711)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-21 18:06:35 +02:00
Marc Bernard
6c5f7a4fa0 fix(middleware): link to favicon in template (#4727) 2024-07-21 18:00:37 +02:00
Marc Bernard
2274e483ac apm: update action 2024-07-19 13:19:00 -04:00
Marc Bernard
d0dacd75c5 apm: update action 2024-07-19 13:18:02 -04:00
Marc Bernard
5bcfd7e2e2 apm: update docker 2024-07-19 13:02:49 -04:00
Marc Bernard
71fcd2de91 Merge branch 'verdaccio:master' into apm 2024-07-19 12:56:08 -04:00
Michael Ryan
39f7fd6057 docs: update logger level precedence stated in docs, moving http between info and debug (#4723)
Fixes #4654
2024-07-19 18:46:48 +02:00
Marc Bernard
96b28575a3 chore(ui): update babel dependencies (#4721) 2024-07-18 07:54:46 +02:00
verdacciobot
6249cbf562 chore: updated static data 2024-07-18 00:13:15 +00:00
Leo Wang(草鞋没号)
136e992bb9 feat: verdaccio-audit support timeout option (#4718)
* feat: verdaccio-audit support timeout option

* Create many-bees-tickle.md

* Update audit.ts

* update docs

* Update README.md

---------

Co-authored-by: Juan Picado <juanpicado19@gmail.com>
2024-07-17 21:59:36 +02:00
Marc Bernard
2ee690638d Merge branch 'verdaccio:master' into apm 2024-07-17 15:39:05 -04:00
Marc Bernard
c31aec8336 fix: typo in config docs regarding check_owners (#4720) 2024-07-17 15:14:44 -04:00
Marc Bernard
5a0c23f900 fix: Dockerfile error FromAsCasing (#4713) 2024-07-17 19:57:35 +02:00
Marc Bernard
19df355e3c chore(api): update comment about route parameters (#4719) 2024-07-17 19:57:03 +02:00
Marc Bernard
39f71f5d7d apm: remove chip from searchitem 2024-07-17 11:35:02 -04:00
Marc Bernard
a985ddc246 Docker, healthcheck, list hover 2024-07-16 19:19:00 -04:00
Marc Bernard
2a6ee33071 fix(middleware): custom favicon (#4716) 2024-07-16 13:28:45 -04:00
Marc Bernard
919795c804 Create docker-apm.yml 2024-07-16 10:12:05 -04:00
Marc Bernard
d60bf44c43 lockfile 2024-07-15 18:19:34 -04:00
Marc Bernard
6626e77766 config 2024-07-15 17:59:12 -04:00
Marc Bernard
03a903d924 fix favicon 2024-07-15 17:41:02 -04:00
verdacciobot
6ee0afb13a chore: updated static data 2024-07-15 00:14:05 +00:00
Marc Bernard
016812b12c Docker image for apm 2024-07-14 14:10:08 -04:00
Marc Bernard
3b3cf86b54 chore: sync dependency defs between ui-components and ui-theme (#4712) 2024-07-13 06:38:04 -04:00
Marc Bernard
5a77414eb6 chore: fix type for country flags and hover titles (#4709)
* chore: fix type for country flags

* add text for Canada, fix Australia flag

* add flag texts

* fix text keys

* update changeset

* Add lock file

* Add Austria
2024-07-12 09:20:22 +02:00
verdacciobot
da6d8e5f38 chore: updated static data 2024-07-11 00:14:23 +00:00
verdacciobot
c7ba6b95f6 chore: updated static data 2024-07-08 00:14:35 +00:00
dependabot[bot]
744a806411 chore(deps): bump docker/build-push-action from 4 to 6 (#4693)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-07 21:15:56 +02:00
dependabot[bot]
1deb734b3e chore(deps): bump github/codeql-action from 3.25.7 to 3.25.11 (#4695)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.7 to 3.25.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](f079b84933...b611370bb5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-07 20:17:29 +02:00
Juan Picado
9caca4b573 Update generator.yaml 2024-07-07 19:44:10 +02:00
Juan Picado
fec5a46b22 Update plugin-generator-e2e.yaml 2024-07-07 19:33:22 +02:00
Juan Picado
6aa850a8b4 chore: disable window ci 2024-07-07 19:32:18 +02:00
Juan Picado
85ef861cab Update plugin-generator-e2e.yaml 2024-07-07 19:22:55 +02:00
242 changed files with 8017 additions and 7246 deletions

View File

@@ -10,9 +10,5 @@
],
"@babel/typescript"
],
"ignore": ["**/*.d.ts"],
"plugins": [
"@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator"
]
"ignore": ["**/*.d.ts"]
}

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/middleware': patch
---
fix(middleware): custom favicon

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/ui-components': patch
'@verdaccio/ui-theme': patch
---
chore: fix type for country flags

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-theme': patch
---
fix: enable irish language on ui

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/middleware': patch
---
fix(middleware): link to favicon in template

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
chore: sync dependency defs between ui-components and ui-theme

View File

@@ -0,0 +1,5 @@
---
'verdaccio-audit': minor
---
feat: verdaccio-audit support timeout option

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/middleware': patch
'@verdaccio/url': patch
---
fix(middleware): link to favicon in template

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/config': patch
---
chore: improve debug code and refactor code

View File

@@ -1,6 +1,6 @@
{
"mode": "pre",
"tag": "next-7",
"tag": "next-8",
"initialVersions": {
"@verdaccio/test-cli-commons": "1.1.0",
"@verdaccio/e2e-cli-npm6": "1.0.1",
@@ -66,16 +66,24 @@
"breezy-mayflies-pull",
"chilled-carrots-guess",
"chilly-rivers-chew",
"cuddly-camels-relax",
"dirty-dolphins-try",
"dirty-islands-push",
"dry-mirrors-roll",
"dry-shoes-report",
"eight-icons-heal",
"eight-squids-judge",
"eighty-lobsters-study",
"fluffy-onions-act",
"good-cups-train",
"good-lions-rush",
"grumpy-pots-watch",
"itchy-mangos-wink",
"long-jars-collect",
"long-moles-attend",
"many-bees-tickle",
"mighty-gorillas-fail",
"moody-mugs-pay",
"nervous-fireants-design",
"old-turkeys-heal",
"olive-bananas-wink",
@@ -95,6 +103,10 @@
"spicy-birds-flow",
"strange-points-repair",
"stupid-dancers-relate",
"swift-rabbits-vanish",
"ten-kids-tan",
"thick-avocados-provide",
"thin-snails-flow",
"thirty-toes-swim",
"twenty-queens-protect",
"unlucky-cycles-sparkle",
@@ -103,6 +115,7 @@
"wicked-kiwis-check",
"wicked-worms-wash",
"wild-otters-talk",
"witty-meals-nail",
"young-donuts-own"
]
}

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/config': patch
---
fix(config): test runs on Windows

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/ui-components': patch
---
chore(ui): update babel dependencies

View File

@@ -0,0 +1,13 @@
---
'@verdaccio/local-storage': patch
'@verdaccio/server': patch
'@verdaccio/core': patch
'@verdaccio/node-api': patch
'@verdaccio/loaders': patch
'@verdaccio/store': patch
'@verdaccio/auth': patch
'@verdaccio/cli': patch
'@verdaccio/web': patch
---
chore: improve startup logging

View File

@@ -0,0 +1,6 @@
---
'@verdaccio/config': patch
'@verdaccio/website': patch
---
fix: typo in config docs regarding check_owners

View File

@@ -0,0 +1,5 @@
---
'@verdaccio/api': patch
---
chore(api): update comment about route parameters

View File

@@ -22,7 +22,6 @@ jest
docs
contrib
docker-examples
website
systemd
# output from test runs and similar things

View File

@@ -24,13 +24,15 @@ jobs:
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: npm i pnpm@latest-8 -g
run: |
corepack enable
corepack install
- name: set store
run: |
mkdir ~/.pnpm-store
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --registry http://localhost:4873
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
with:

View File

@@ -18,7 +18,7 @@ jobs:
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/docker-build-install-plugin/docker-compose.yaml" up -d --build
run: docker compose -f "./e2e/docker/docker-build-install-plugin/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
@@ -36,4 +36,4 @@ jobs:
- name: Stop containers
if: always()
run: docker-compose -f "./e2e/docker/docker-build-install-plugin/docker-compose.yaml" down
run: docker compose -f "./e2e/docker/docker-build-install-plugin/docker-compose.yaml" down

View File

@@ -20,12 +20,12 @@ jobs:
if: github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio'
steps:
- name: checkout code repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
env:

View File

@@ -30,9 +30,9 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
@@ -46,7 +46,7 @@ jobs:
- name: Install
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -57,16 +57,16 @@ jobs:
name: Lint
needs: prepare
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -82,16 +82,16 @@ jobs:
name: Format
needs: prepare
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -112,16 +112,16 @@ jobs:
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Use Node ${{ matrix.node_version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version: ${{ matrix.node_version }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -140,15 +140,15 @@ jobs:
name: synchronize translations
if: (github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio') || github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}

View File

@@ -11,6 +11,10 @@ on:
permissions:
contents: read
concurrency:
group: code-${{ github.ref }}
cancel-in-progress: true
jobs:
CodeQL-Build:
permissions:
@@ -21,7 +25,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
@@ -34,7 +38,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@f079b8493333aace61c81488f8bd40919487bd9f # v2
uses: github/codeql-action/init@be8b74c09c1778bcdbea38e1a45efea2cb73e18c # v2
# Override language selection by uncommenting this and choosing your languages
# with:
@@ -42,7 +46,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@f079b8493333aace61c81488f8bd40919487bd9f # v2
uses: github/codeql-action/autobuild@be8b74c09c1778bcdbea38e1a45efea2cb73e18c # v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -56,4 +60,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@f079b8493333aace61c81488f8bd40919487bd9f # v2
uses: github/codeql-action/analyze@be8b74c09c1778bcdbea38e1a45efea2cb73e18c # v2

View File

@@ -1,5 +1,9 @@
name: E2E Docker Proxy Apache Test
concurrency:
group: docker-apache-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
push:
@@ -11,18 +15,18 @@ on:
jobs:
docker:
timeout-minutes: 10
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" up -d --build
run: docker compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: npm setup
@@ -42,4 +46,4 @@ jobs:
- name: Stop containers
if: always()
run: docker-compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" down
run: docker compose -f "./e2e/docker/apache-verdaccio/docker-compose.yaml" down

View File

@@ -1,5 +1,10 @@
name: E2E Docker Proxy Nginx Test
concurrency:
group: docker-nginx-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
push:
@@ -8,18 +13,18 @@ on:
jobs:
docker:
timeout-minutes: 10
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Start containers
run: docker-compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" up -d --build
run: docker compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" up -d --build
- name: Install node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: npm setup
@@ -39,4 +44,4 @@ jobs:
- name: Stop containers
if: always()
run: docker-compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" down
run: docker compose -f "./e2e/docker/proxy-nginx/docker-compose.yaml" down

View File

@@ -24,8 +24,8 @@ jobs:
runs-on: ubuntu-latest
if: github.repository == 'verdaccio/verdaccio'
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # tag=v1
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # tag=v1
- uses: docker/setup-buildx-action@v1
with:
driver-opts: network=host
@@ -46,7 +46,7 @@ jobs:
{{major}}
{{major}}.{{minor}}
- name: Build & Push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile

View File

@@ -18,9 +18,9 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
@@ -34,7 +34,7 @@ jobs:
- name: Install
run: pnpm install --reporter=silence --ignore-scripts --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -44,16 +44,16 @@ jobs:
needs: [prepare]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Use Node 16
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -65,7 +65,7 @@ jobs:
- name: build
run: pnpm build
- name: Cache packages
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
id: cache-packages
with:
path: ./packages/
@@ -97,15 +97,15 @@ jobs:
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version: ${{ matrix.node }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -114,7 +114,7 @@ jobs:
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -141,15 +141,15 @@ jobs:
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version: ${{ matrix.node }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -158,7 +158,7 @@ jobs:
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --loglevel debug --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -186,15 +186,15 @@ jobs:
name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version: ${{ matrix.node }}
- name: Install pnpm
run: |
corepack enable
corepack prepare
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}
@@ -203,7 +203,7 @@ jobs:
pnpm config set store-dir ~/.pnpm-store
- name: Install
run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ./packages/
key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }}

View File

@@ -18,9 +18,9 @@ jobs:
env:
NODE_ENV: production
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm

View File

@@ -6,23 +6,28 @@ on:
push:
branches:
- 'master'
concurrency:
group: generator-plugin-${{ github.ref }}
cancel-in-progress: true
jobs:
e2e-plugin-generator:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18,20, 22]
node-version: [18,20, 21]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version: ${{ matrix.node-version }}
- name: Install pnpm
run: |
corepack enable
corepack install
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
- uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
@@ -41,7 +46,7 @@ jobs:
- name: publish
run: pnpm local:publish
- name: install yeoman
run: npm install -g yo@4
run: npm install -g yo@4 --loglevel=info
- name: install generator
run: npm install -g generator-verdaccio-plugin --registry http://localhost:4873
run: npm install -g generator-verdaccio-plugin --loglevel=info --registry http://localhost:4873
# Future: add a test to verify the plugin is working with prompt

View File

@@ -20,11 +20,11 @@ jobs:
runs-on: ubuntu-latest
if: github.repository == 'verdaccio/verdaccio'
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
with:
persist-credentials: false
fetch-depth: 0
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
- uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version: 18.x
- name: install pnpm

View File

@@ -23,15 +23,15 @@ jobs:
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Use Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Cache pnpm modules
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
env:
cache-name: cache-pnpm-modules
with:

View File

@@ -6,6 +6,10 @@ on:
permissions:
contents: read # to fetch code (actions/checkout)
concurrency:
group: website-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
permissions:
@@ -22,14 +26,14 @@ jobs:
ports:
- 4873:4873
env:
NODE_ENV: production
NODE_ENV: production
env:
NODE_OPTIONS: --max_old_space_size=4096
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v3
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3
- name: Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v3
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3
with:
node-version-file: '.nvmrc'
- name: Install pnpm
@@ -43,18 +47,18 @@ jobs:
- name: Install
run: pnpm install --registry http://localhost:4873
- name: Cache .pnpm-store
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
pnpm-
- name: Build
pnpm-
- name: Build
run: pnpm build
- name: Build Translations percentage
run: pnpm --filter @verdaccio/crowdin-translations build
- name: Cache Docusaurus Build
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v3
uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3
with:
path: website/node_modules/.cache/webpack
key: cache/webpack-${{github.ref}}-${{ hashFiles('**/pnpm-lock.yaml') }}
@@ -71,5 +75,5 @@ jobs:
env:
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
run: pnpm --filter ...@verdaccio/website netlify:deploy
run: pnpm --filter ...@verdaccio/website netlify:deploy

View File

@@ -1,4 +1,4 @@
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:21-alpine as builder
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:21-alpine AS builder
ENV NODE_ENV=development \
VERDACCIO_BUILD_REGISTRY=https://registry.npmjs.org

View File

@@ -1,7 +1,7 @@
# Docs based on https://github.com/xlts-dev/verdaccio-prometheus-middleware#installation
# Docker multi-stage build - https://docs.docker.com/develop/develop-images/multistage-build/
# Use an alpine node image to install the plugin
FROM node:lts-alpine as builder
FROM node:lts-alpine AS builder
RUN mkdir -p /verdaccio/plugins

View File

@@ -2,7 +2,7 @@
# Docker multi-stage build - https://docs.docker.com/develop/develop-images/multistage-build/
# Use an alpine node image to install the plugin
FROM node:lts-alpine as builder
FROM node:lts-alpine AS builder
# Install the metrics middleware plugin
# npm docs

View File

@@ -1,7 +1,7 @@
# Docs based on https://github.com/xlts-dev/verdaccio-prometheus-middleware#installation
# Docker multi-stage build - https://docs.docker.com/develop/develop-images/multistage-build/
# Use an alpine node image to install the plugin
FROM node:lts-alpine as builder
FROM node:lts-alpine AS builder
RUN mkdir -p /verdaccio/plugins

View File

@@ -5,16 +5,16 @@
"main": "./build/index.js",
"types": "./build/index.d.ts",
"devDependencies": {
"@verdaccio/config": "workspace:7.0.0-next-7.18",
"@verdaccio/core": "workspace:7.0.0-next-7.18",
"@verdaccio/config": "workspace:7.0.0-next-8.21",
"@verdaccio/core": "workspace:7.0.0-next-8.21",
"@verdaccio/types": "workspace:12.0.0-next-7.5",
"debug": "4.3.4",
"debug": "4.3.6",
"fs-extra": "11.2.0",
"get-port": "5.1.1",
"got": "11.8.6",
"js-yaml": "4.1.0",
"lodash": "4.17.21",
"verdaccio": "workspace:7.0.0-next-7.18"
"verdaccio": "workspace:7.0.0-next-8.21"
},
"scripts": {
"test": "jest",

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"npm": "10.5.0"
"npm": "10.8.2"
},
"scripts": {
"test": "jest"

View File

@@ -4,7 +4,7 @@
"version": "1.0.1",
"dependencies": {
"@verdaccio/test-cli-commons": "workspace:1.1.0",
"@yarnpkg/cli-dist": "3.8.1"
"@yarnpkg/cli-dist": "3.8.3"
},
"scripts": {
"test": "jest"

View File

@@ -3,7 +3,7 @@
"name": "@verdaccio/e2e-cli-yarn4",
"version": "1.0.1",
"dependencies": {
"@yarnpkg/cli-dist": "4.1.1",
"@yarnpkg/cli-dist": "4.4.0",
"@verdaccio/test-cli-commons": "workspace:1.1.0"
},
"scripts": {

View File

@@ -22,6 +22,10 @@ packages:
access: $all
publish: $all
unpublish: $all
'generator-verdaccio-plugin':
access: $all
publish: $all
unpublish: $all
'verdaccio':
access: $all
publish: $all

View File

@@ -3,11 +3,11 @@
"name": "@verdaccio/e2e-ui",
"version": "2.0.0",
"devDependencies": {
"verdaccio": "workspace:7.0.0-next-7.18",
"@verdaccio/core": "workspace:7.0.0-next-7.18",
"@verdaccio/config": "workspace:7.0.0-next-7.18",
"verdaccio": "workspace:7.0.0-next-8.21",
"@verdaccio/core": "workspace:7.0.0-next-8.21",
"@verdaccio/config": "workspace:7.0.0-next-8.21",
"@verdaccio/test-helper": "workspace:3.0.0-next-7.2",
"debug": "4.3.4",
"debug": "4.3.6",
"cypress": "^13.6.0",
"get-port": "5.1.1"
},

View File

@@ -15,92 +15,90 @@
"url": "https://opencollective.com/verdaccio"
},
"devDependencies": {
"@babel/cli": "7.23.9",
"@babel/core": "7.23.9",
"@babel/eslint-parser": "7.23.3",
"@babel/node": "7.23.9",
"@babel/plugin-proposal-class-properties": "7.18.6",
"@babel/plugin-proposal-decorators": "7.23.9",
"@babel/plugin-proposal-export-namespace-from": "7.18.9",
"@babel/plugin-proposal-function-sent": "7.23.3",
"@babel/plugin-proposal-json-strings": "7.18.6",
"@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
"@babel/plugin-proposal-numeric-separator": "7.18.6",
"@babel/plugin-proposal-object-rest-spread": "7.20.7",
"@babel/plugin-proposal-optional-chaining": "7.21.0",
"@babel/plugin-proposal-throw-expressions": "7.23.3",
"@babel/cli": "7.24.8",
"@babel/core": "7.24.9",
"@babel/eslint-parser": "7.25.1",
"@babel/node": "7.25.0",
"@babel/plugin-proposal-decorators": "7.24.7",
"@babel/plugin-proposal-function-sent": "7.24.7",
"@babel/plugin-proposal-throw-expressions": "7.24.7",
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/plugin-syntax-import-meta": "7.10.4",
"@babel/plugin-transform-async-to-generator": "7.23.3",
"@babel/plugin-transform-classes": "7.23.8",
"@babel/plugin-transform-runtime": "7.23.9",
"@babel/preset-env": "7.23.9",
"@babel/preset-react": "7.23.3",
"@babel/preset-typescript": "7.23.3",
"@babel/register": "7.23.7",
"@babel/runtime": "7.23.9",
"@babel/plugin-transform-async-to-generator": "7.24.7",
"@babel/plugin-transform-class-properties": "7.24.7",
"@babel/plugin-transform-classes": "7.25.0",
"@babel/plugin-transform-export-namespace-from": "7.24.7",
"@babel/plugin-transform-json-strings": "7.24.7",
"@babel/plugin-transform-nullish-coalescing-operator": "7.24.7",
"@babel/plugin-transform-numeric-separator": "7.24.7",
"@babel/plugin-transform-object-rest-spread": "7.24.7",
"@babel/plugin-transform-optional-chaining": "7.24.8",
"@babel/plugin-transform-runtime": "7.24.7",
"@babel/preset-env": "7.25.0",
"@babel/preset-react": "7.24.7",
"@babel/preset-typescript": "7.24.7",
"@babel/register": "7.24.6",
"@babel/runtime": "7.25.0",
"@changesets/changelog-github": "0.5.0",
"@changesets/cli": "2.27.1",
"@changesets/get-dependents-graph": "1.3.6",
"@crowdin/cli": "3.16.1",
"@changesets/cli": "2.27.7",
"@changesets/get-dependents-graph": "2.1.1",
"@crowdin/cli": "4.1.1",
"@dianmora/contributors": "5.0.0",
"@emotion/react": "11.10.6",
"@emotion/styled": "11.10.6",
"@testing-library/dom": "9.3.4",
"@testing-library/jest-dom": "6.4.2",
"@testing-library/dom": "10.4.0",
"@testing-library/jest-dom": "6.4.8",
"@testing-library/react": "16.0.0",
"@testing-library/user-event": "14.5.2",
"aria-query": "5.1.3",
"@testing-library/react": "14.2.1",
"@trivago/prettier-plugin-sort-imports": "4.3.0",
"@types/body-parser": "1.19.5",
"@types/connect": "3.4.38",
"@types/cookiejar": "2.1.5",
"@types/debug": "4.1.12",
"@types/express": "4.17.21",
"@types/express-serve-static-core": "4.17.42",
"@types/express-serve-static-core": "4.19.5",
"@types/http-errors": "2.0.4",
"@types/jest": "29.5.11",
"@types/jsonwebtoken": "9.0.5",
"@types/jest": "29.5.12",
"@types/jsonwebtoken": "9.0.6",
"@types/lodash": "4.17.7",
"@types/mime": "3.0.4",
"@types/minimatch": "5.1.2",
"@types/node": "20.14.12",
"@types/node-fetch": "2.6.11",
"@types/qs": "6.9.15",
"@types/range-parser": "1.2.7",
"@types/react": "18.3.3",
"@types/react-dom": "18.3.0",
"@types/react-router-dom": "5.3.3",
"@types/react-virtualized": "9.21.30",
"@types/semver": "7.5.8",
"@types/send": "0.17.4",
"@types/serve-static": "1.15.7",
"@types/superagent": "4.1.24",
"@types/supertest": "2.0.16",
"@types/validator": "13.12.0",
"@types/webpack": "5.28.5",
"@types/webpack-env": "1.18.5",
"@types/yeoman-environment": "2.10.11",
"@types/yeoman-generator": "5.2.14",
"@types/yeoman-test": "4.0.6",
"@types/lodash": "4.14.202",
"@types/mime": "3.0.4",
"@types/minimatch": "5.1.2",
"@types/node": "20.11.7",
"@types/node-fetch": "2.6.11",
"@types/qs": "6.9.11",
"@types/range-parser": "1.2.7",
"@types/react": "18.2.48",
"@types/react-dom": "18.2.18",
"@types/react-router-dom": "5.3.3",
"@types/react-virtualized": "9.21.29",
"@types/redux": "3.6.0",
"@types/semver": "7.5.6",
"@types/send": "0.17.4",
"@types/serve-static": "1.15.5",
"@types/superagent": "4.1.24",
"@types/supertest": "2.0.16",
"@types/testing-library__jest-dom": "6.0.0",
"@types/validator": "13.11.8",
"@types/webpack": "5.28.5",
"@types/webpack-env": "1.18.4",
"@typescript-eslint/eslint-plugin": "6.19.1",
"@typescript-eslint/parser": "6.19.1",
"@typescript-eslint/eslint-plugin": "6.21.0",
"@typescript-eslint/parser": "6.21.0",
"@verdaccio/crowdin-translations": "workspace:*",
"@verdaccio/eslint-config": "workspace:*",
"@verdaccio/types": "workspace:*",
"@verdaccio/ui-theme": "workspace:*",
"@vitest/coverage-v8": "0.34.6",
"@vitest/coverage-v8": "2.0.5",
"aria-query": "5.1.3",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "29.7.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"babel-plugin-emotion": "11.0.0",
"concurrently": "8.2.2",
"cross-env": "7.0.3",
"debug": "4.3.4",
"debug": "4.3.6",
"detect-secrets": "1.0.6",
"eslint": "8.56.0",
"eslint": "8.57.0",
"fs-extra": "11.2.0",
"got": "11.8.6",
"husky": "8.0.3",
@@ -116,21 +114,21 @@
"nock": "13.5.1",
"nodemon": "3.0.3",
"npm-run-all2": "5.0.2",
"prettier": "3.2.2",
"prettier": "3.3.3",
"react": "18.2.0",
"react-dom": "18.2.0",
"rimraf": "5.0.5",
"rimraf": "5.0.10",
"selfsigned": "2.4.1",
"supertest": "6.3.4",
"supertest": "7.0.0",
"ts-node": "10.9.2",
"typescript": "5.3.3",
"undici-types": "5.28.2",
"update-ts-references": "3.2.1",
"update-ts-references": "3.3.0",
"verdaccio-audit": "workspace:*",
"verdaccio-auth-memory": "workspace:*",
"verdaccio-htpasswd": "workspace:*",
"verdaccio-memory": "workspace:*",
"vitest": "1.6.0"
"vitest": "2.0.4"
},
"scripts": {
"prepare": "husky install",

View File

@@ -1,5 +1,49 @@
# @verdaccio/api
## 7.0.0-next-8.21
### Patch Changes
- Updated dependencies [8c10a3e]
- Updated dependencies [a05a7d8]
- Updated dependencies [7c9f3cf]
- @verdaccio/config@7.0.0-next-8.21
- @verdaccio/core@7.0.0-next-8.21
- @verdaccio/store@7.0.0-next-8.21
- @verdaccio/auth@7.0.0-next-8.21
- @verdaccio/middleware@7.0.0-next-8.21
- @verdaccio/utils@7.0.0-next-8.21
- @verdaccio/logger@7.0.0-next-8.21
## 7.0.0-next-7.20
### Patch Changes
- Updated dependencies [ccc7bd1]
- @verdaccio/middleware@7.0.0-next-7.20
- @verdaccio/auth@7.0.0-next-7.20
- @verdaccio/store@7.0.0-next-7.20
- @verdaccio/core@7.0.0-next-7.20
- @verdaccio/config@7.0.0-next-7.20
- @verdaccio/utils@7.0.0-next-7.20
- @verdaccio/logger@7.0.0-next-7.20
## 7.0.0-next-7.19
### Patch Changes
- 19df355: chore(api): update comment about route parameters
- Updated dependencies [2a6ee33]
- Updated dependencies [6c5f7a4]
- Updated dependencies [c31aec8]
- @verdaccio/middleware@7.0.0-next-7.19
- @verdaccio/config@7.0.0-next-7.19
- @verdaccio/auth@7.0.0-next-7.19
- @verdaccio/store@7.0.0-next-7.19
- @verdaccio/core@7.0.0-next-7.19
- @verdaccio/utils@7.0.0-next-7.19
- @verdaccio/logger@7.0.0-next-7.19
## 7.0.0-next-7.18
### Patch Changes

View File

@@ -1,3 +0,0 @@
const config = require('../../jest/config');
module.exports = Object.assign({}, config, {});

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/api",
"version": "7.0.0-next-7.18",
"version": "7.0.0-next-8.21",
"description": "loaders logic",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -29,7 +29,7 @@
},
"scripts": {
"clean": "rimraf ./build",
"test": "jest",
"test": "vitest run",
"type-check": "tsc --noEmit -p tsconfig.build.json",
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
"build:js": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps",
@@ -38,28 +38,28 @@
},
"license": "MIT",
"dependencies": {
"@verdaccio/auth": "workspace:7.0.0-next-7.18",
"@verdaccio/config": "workspace:7.0.0-next-7.18",
"@verdaccio/core": "workspace:7.0.0-next-7.18",
"@verdaccio/logger": "workspace:7.0.0-next-7.18",
"@verdaccio/middleware": "workspace:7.0.0-next-7.18",
"@verdaccio/store": "workspace:7.0.0-next-7.18",
"@verdaccio/utils": "workspace:7.0.0-next-7.18",
"@verdaccio/auth": "workspace:7.0.0-next-8.21",
"@verdaccio/config": "workspace:7.0.0-next-8.21",
"@verdaccio/core": "workspace:7.0.0-next-8.21",
"@verdaccio/logger": "workspace:7.0.0-next-8.21",
"@verdaccio/middleware": "workspace:7.0.0-next-8.21",
"@verdaccio/store": "workspace:7.0.0-next-8.21",
"@verdaccio/utils": "workspace:7.0.0-next-8.21",
"abortcontroller-polyfill": "1.7.5",
"body-parser": "1.20.2",
"cookies": "0.9.0",
"debug": "4.3.4",
"debug": "4.3.6",
"express": "4.19.2",
"lodash": "4.17.21",
"mime": "2.6.0",
"semver": "7.6.2"
"semver": "7.6.3"
},
"devDependencies": {
"@verdaccio/test-helper": "workspace:3.0.0-next-7.2",
"@verdaccio/types": "workspace:12.0.0-next-7.5",
"mockdate": "3.0.5",
"nock": "13.5.1",
"supertest": "6.3.4"
"supertest": "7.0.0"
},
"funding": {
"type": "opencollective",

View File

@@ -37,10 +37,11 @@ export default function (config: Config, auth: Auth, storage: Storage): Router {
app.param('revision', validateName);
app.param('token', validateName);
// these can't be safely put into express url for some reason
// TODO: For some reason? what reason?
// Express route parameter names must be valid JavaScript identifiers, which means
// they cannot start with a hyphen (-) or contain special characters like dots (.)
app.param('_rev', match(/^-rev$/));
app.param('org_couchdb_user', match(/^org\.couchdb\.user:/));
app.use(auth.apiJWTmiddleware());
app.use(express.json({ strict: false, limit: config.max_body_size || '10mb' }));
app.use(antiLoop(config));

View File

@@ -2,6 +2,7 @@ import { Application } from 'express';
import _ from 'lodash';
import path from 'path';
import supertest from 'supertest';
import { expect } from 'vitest';
import { parseConfigFile } from '@verdaccio/config';
import { HEADERS, HEADER_TYPE, HTTP_STATUS, TOKEN_BEARER } from '@verdaccio/core';

View File

@@ -1,4 +1,5 @@
import supertest from 'supertest';
import { beforeEach, describe, expect, test } from 'vitest';
import { API_MESSAGE, HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';

View File

@@ -1,5 +1,6 @@
/* eslint-disable jest/no-commented-out-tests */
import nock from 'nock';
import { describe, expect, test } from 'vitest';
import { HTTP_STATUS } from '@verdaccio/core';

View File

@@ -1,4 +1,5 @@
import supertest from 'supertest';
import { beforeEach, describe, expect, test } from 'vitest';
import { DIST_TAGS, HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';
import { Storage } from '@verdaccio/store';

View File

@@ -1,4 +1,5 @@
import supertest from 'supertest';
import { describe, expect, test } from 'vitest';
import { HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';

View File

@@ -1,4 +1,5 @@
import supertest from 'supertest';
import { describe, test } from 'vitest';
import { HEADERS, HEADER_TYPE, HTTP_STATUS, TOKEN_BEARER } from '@verdaccio/core';
import { buildToken } from '@verdaccio/utils';

View File

@@ -1,6 +1,7 @@
import nock from 'nock';
import { basename } from 'path';
import supertest from 'supertest';
import { describe, expect, test } from 'vitest';
import { HTTP_STATUS } from '@verdaccio/core';
import { API_ERROR, API_MESSAGE, HEADERS, HEADER_TYPE } from '@verdaccio/core';

View File

@@ -1,5 +1,6 @@
import MockDate from 'mockdate';
import supertest from 'supertest';
import { beforeEach, describe, expect, test } from 'vitest';
import { HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';

View File

@@ -1,5 +1,6 @@
import nock from 'nock';
import supertest from 'supertest';
import { describe, expect, test } from 'vitest';
import { HTTP_STATUS } from '@verdaccio/core';
import { HEADERS, HEADER_TYPE } from '@verdaccio/core';

View File

@@ -1,5 +1,6 @@
import _ from 'lodash';
import supertest from 'supertest';
import { describe, expect, test } from 'vitest';
import {
API_ERROR,

View File

@@ -1,4 +1,5 @@
import supertest from 'supertest';
import { describe, expect, test, vi } from 'vitest';
import { API_ERROR, HEADERS, HEADER_TYPE, HTTP_STATUS, TOKEN_BEARER } from '@verdaccio/core';
import { buildToken } from '@verdaccio/utils';
@@ -7,7 +8,7 @@ import { createUser, getPackage, initializeServer } from './_helper';
const FORBIDDEN_VUE = 'authorization required to access package vue';
jest.setTimeout(20000);
vi.setConfig({ testTimeout: 20000 });
describe('token', () => {
describe('basics', () => {

View File

@@ -1,4 +1,5 @@
import supertest from 'supertest';
import { describe, expect, test } from 'vitest';
import { HEADERS, HTTP_STATUS, TOKEN_BEARER } from '@verdaccio/core';
import { buildToken } from '@verdaccio/utils';

View File

@@ -2,6 +2,7 @@
// ensure that all arguments are validated
import fs from 'fs';
import path from 'path';
import { describe, expect, test } from 'vitest';
/**
* Validate.

View File

@@ -1,5 +1,46 @@
# @verdaccio/auth
## 7.0.0-next-8.21
### Patch Changes
- 7c9f3cf: chore: improve startup logging
- Updated dependencies [8c10a3e]
- Updated dependencies [a05a7d8]
- Updated dependencies [7c9f3cf]
- @verdaccio/config@7.0.0-next-8.21
- @verdaccio/core@7.0.0-next-8.21
- @verdaccio/loaders@7.0.0-next-8.21
- verdaccio-htpasswd@12.0.0-next-8.21
- @verdaccio/signature@7.0.0-next-7.5
- @verdaccio/utils@7.0.0-next-8.21
- @verdaccio/logger@7.0.0-next-8.21
## 7.0.0-next-7.20
### Patch Changes
- @verdaccio/core@7.0.0-next-7.20
- @verdaccio/config@7.0.0-next-7.20
- @verdaccio/loaders@7.0.0-next-7.20
- verdaccio-htpasswd@12.0.0-next-7.20
- @verdaccio/utils@7.0.0-next-7.20
- @verdaccio/signature@7.0.0-next-7.5
- @verdaccio/logger@7.0.0-next-7.20
## 7.0.0-next-7.19
### Patch Changes
- Updated dependencies [c31aec8]
- @verdaccio/config@7.0.0-next-7.19
- @verdaccio/loaders@7.0.0-next-7.19
- verdaccio-htpasswd@12.0.0-next-7.19
- @verdaccio/signature@7.0.0-next-7.5
- @verdaccio/core@7.0.0-next-7.19
- @verdaccio/utils@7.0.0-next-7.19
- @verdaccio/logger@7.0.0-next-7.19
## 7.0.0-next-7.18
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/auth",
"version": "7.0.0-next-7.18",
"version": "7.0.0-next-8.21",
"description": "logger",
"main": "./build/index.js",
"types": "./build/index.d.ts",
@@ -38,21 +38,21 @@
},
"license": "MIT",
"dependencies": {
"@verdaccio/core": "workspace:7.0.0-next-7.18",
"@verdaccio/config": "workspace:7.0.0-next-7.18",
"@verdaccio/loaders": "workspace:7.0.0-next-7.18",
"@verdaccio/logger": "workspace:7.0.0-next-7.18",
"@verdaccio/config": "workspace:7.0.0-next-8.21",
"@verdaccio/core": "workspace:7.0.0-next-8.21",
"@verdaccio/loaders": "workspace:7.0.0-next-8.21",
"@verdaccio/logger": "workspace:7.0.0-next-8.21",
"@verdaccio/signature": "workspace:7.0.0-next-7.5",
"@verdaccio/utils": "workspace:7.0.0-next-7.18",
"debug": "4.3.4",
"@verdaccio/utils": "workspace:7.0.0-next-8.21",
"debug": "4.3.6",
"lodash": "4.17.21",
"verdaccio-htpasswd": "workspace:12.0.0-next-7.18"
"verdaccio-htpasswd": "workspace:12.0.0-next-8.21"
},
"devDependencies": {
"@verdaccio/middleware": "workspace:7.0.0-next-8.21",
"@verdaccio/types": "workspace:12.0.0-next-7.5",
"express": "4.19.2",
"supertest": "6.3.4",
"@verdaccio/middleware": "workspace:7.0.0-next-7.18",
"@verdaccio/types": "workspace:12.0.0-next-7.5"
"supertest": "7.0.0"
},
"funding": {
"type": "opencollective",

View File

@@ -5,6 +5,7 @@ import { HTPasswd } from 'verdaccio-htpasswd';
import { createAnonymousRemoteUser, createRemoteUser } from '@verdaccio/config';
import {
API_ERROR,
PLUGIN_CATEGORY,
SUPPORT_ERRORS,
TOKEN_BASIC,
TOKEN_BEARER,
@@ -116,7 +117,8 @@ class Auth implements IAuthMiddleware, TokenEncryption, pluginUtils.IBasicAuth {
typeof allow_publish !== 'undefined'
);
},
this.config?.serverSettings?.pluginPrefix
this.config?.serverSettings?.pluginPrefix,
PLUGIN_CATEGORY.AUTHENTICATION
);
}

View File

@@ -1,5 +1,37 @@
# @verdaccio/cli
## 7.0.0-next-8.21
### Patch Changes
- 7c9f3cf: chore: improve startup logging
- Updated dependencies [8c10a3e]
- Updated dependencies [a05a7d8]
- Updated dependencies [7c9f3cf]
- @verdaccio/config@7.0.0-next-8.21
- @verdaccio/core@7.0.0-next-8.21
- @verdaccio/node-api@7.0.0-next-8.21
- @verdaccio/logger@7.0.0-next-8.21
## 7.0.0-next-7.20
### Patch Changes
- @verdaccio/node-api@7.0.0-next-7.20
- @verdaccio/core@7.0.0-next-7.20
- @verdaccio/config@7.0.0-next-7.20
- @verdaccio/logger@7.0.0-next-7.20
## 7.0.0-next-7.19
### Patch Changes
- Updated dependencies [c31aec8]
- @verdaccio/config@7.0.0-next-7.19
- @verdaccio/node-api@7.0.0-next-7.19
- @verdaccio/core@7.0.0-next-7.19
- @verdaccio/logger@7.0.0-next-7.19
## 7.0.0-next-7.18
### Patch Changes

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/cli",
"version": "7.0.0-next-7.18",
"version": "7.0.0-next-8.21",
"author": {
"name": "Juan Picado",
"email": "juanpicado19@gmail.com"
@@ -43,14 +43,14 @@
"start": "ts-node src/index.ts"
},
"dependencies": {
"@verdaccio/core": "workspace:7.0.0-next-7.18",
"@verdaccio/config": "workspace:7.0.0-next-7.18",
"@verdaccio/logger": "workspace:7.0.0-next-7.18",
"@verdaccio/node-api": "workspace:7.0.0-next-7.18",
"clipanion": "3.2.1",
"envinfo": "7.11.0",
"@verdaccio/config": "workspace:7.0.0-next-8.21",
"@verdaccio/core": "workspace:7.0.0-next-8.21",
"@verdaccio/logger": "workspace:7.0.0-next-8.21",
"@verdaccio/node-api": "workspace:7.0.0-next-8.21",
"clipanion": "4.0.0-rc.3",
"envinfo": "7.13.0",
"kleur": "4.1.5",
"semver": "7.6.2"
"semver": "7.6.3"
},
"devDependencies": {
"ts-node": "10.9.2"

View File

@@ -59,7 +59,6 @@ export class InitCommand extends Command {
const configParsed = parseConfigFile(configPathLocation);
this.initLogger(configParsed);
logger.info({ file: configPathLocation }, 'using config file: @{file}');
logger.info('log level: %s', configParsed.log?.level || 'default');
const { web } = configParsed;
process.title = web?.title || DEFAULT_PROCESS_NAME;
@@ -67,6 +66,9 @@ export class InitCommand extends Command {
const { version, name } = require('../../package.json');
await initServer(configParsed, this.port as string, version, name);
const logLevel = configParsed.log?.level || 'default';
logger.info({ logLevel }, 'log level: @{logLevel}');
logger.info('server started');
} catch (err: any) {
console.error(err);

View File

@@ -1,5 +1,30 @@
# @verdaccio/config
## 7.0.0-next-8.21
### Patch Changes
- 8c10a3e: chore: improve debug code and refactor code
- a05a7d8: fix(config): test runs on Windows
- Updated dependencies [7c9f3cf]
- @verdaccio/core@7.0.0-next-8.21
- @verdaccio/utils@7.0.0-next-8.21
## 7.0.0-next-7.20
### Patch Changes
- @verdaccio/core@7.0.0-next-7.20
- @verdaccio/utils@7.0.0-next-7.20
## 7.0.0-next-7.19
### Patch Changes
- c31aec8: fix: typo in config docs regarding check_owners
- @verdaccio/core@7.0.0-next-7.19
- @verdaccio/utils@7.0.0-next-7.19
## 7.0.0-next-7.18
### Patch Changes

View File

@@ -1,9 +0,0 @@
const config = require('../../jest/config');
module.exports = Object.assign({}, config, {
coverageThreshold: {
global: {
lines: 90,
},
},
});

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/config",
"version": "7.0.0-next-7.18",
"version": "7.0.0-next-8.21",
"description": "logger",
"main": "./build/index.js",
"types": "build/index.d.ts",
@@ -26,11 +26,11 @@
"verdaccio"
],
"engines": {
"node": ">=12"
"node": ">=14"
},
"scripts": {
"clean": "rimraf ./build",
"test": "jest",
"test": "vitest run",
"type-check": "tsc --noEmit -p tsconfig.build.json",
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
"build:js": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps",
@@ -38,17 +38,15 @@
"build": "pnpm run build:js && pnpm run build:types"
},
"dependencies": {
"@verdaccio/core": "workspace:7.0.0-next-7.18",
"@verdaccio/utils": "workspace:7.0.0-next-7.18",
"debug": "4.3.4",
"@verdaccio/core": "workspace:7.0.0-next-8.21",
"@verdaccio/utils": "workspace:7.0.0-next-8.21",
"debug": "4.3.6",
"js-yaml": "4.1.0",
"lodash": "4.17.21",
"minimatch": "7.4.6",
"yup": "0.32.11"
"minimatch": "7.4.6"
},
"devDependencies": {
"@types/minimatch": "5.1.2",
"@types/yup": "0.32.0"
"@types/minimatch": "5.1.2"
},
"funding": {
"type": "opencollective",

View File

@@ -120,7 +120,7 @@ server:
# https://verdaccio.org/docs/configuration#offline-publish
# publish:
# allow_offline: false
# check_owner: false
# check_owners: false
# https://verdaccio.org/docs/configuration#url-prefix
# url_prefix: /verdaccio/
@@ -187,6 +187,7 @@ server:
middlewares:
audit:
enabled: true
# timeout: 10000
# https://verdaccio.org/docs/logger
# log settings

View File

@@ -126,7 +126,7 @@ server:
# https://verdaccio.org/docs/configuration#offline-publish
# publish:
# allow_offline: false
# check_owner: false
# check_owners: false
# https://verdaccio.org/docs/configuration#url-prefix
# url_prefix: /verdaccio/
@@ -193,6 +193,7 @@ server:
middlewares:
audit:
enabled: true
# timeout: 10000
# https://verdaccio.org/docs/logger
# log settings

View File

@@ -1,16 +1,13 @@
import buildDebug from 'debug';
import fs from 'fs';
import _ from 'lodash';
import os from 'os';
import path from 'path';
import { CHARACTER_ENCODING } from '@verdaccio/core';
import { fileExists, folderExists } from './config-utils';
const CONFIG_FILE = 'config.yaml';
const XDG = 'xdg';
const WIN = 'win';
const WIN32 = 'win32';
// eslint-disable-next-line
const pkgJSON = {
name: 'verdaccio',
@@ -18,23 +15,27 @@ const pkgJSON = {
export type SetupDirectory = {
path: string;
type: string;
type: 'xdg' | 'win' | 'win32' | 'def' | 'old';
};
const debug = buildDebug('verdaccio:config');
const debug = buildDebug('verdaccio:config:config-path');
/**
* Find and get the first config file that match.
* @return {String} the config file path
*/
function findConfigFile(configPath?: string): string {
debug('searching for config file %o', configPath);
if (typeof configPath !== 'undefined') {
return path.resolve(configPath);
const configLocation = path.resolve(configPath);
debug('custom location %s', configLocation);
return configLocation;
}
const configPaths: SetupDirectory[] = getConfigPaths();
debug('%o posible locations found', configPaths.length);
if (_.isEmpty(configPaths)) {
if (configPaths.length === 0) {
debug('no configuration files can be processed');
// this should never happens
throw new Error('no configuration files can be processed');
}
@@ -45,12 +46,12 @@ function findConfigFile(configPath?: string): string {
);
if (typeof primaryConf !== 'undefined') {
debug('previous location exist already %s', primaryConf?.path);
debug('at least one primary location detected at %s', primaryConf?.path);
return primaryConf.path;
}
// @ts-ignore
return createConfigFile(_.head(configPaths)).path;
debug('no previous location found, creating a new one');
debug('generating the first match path location %s', configPaths[0].path);
return createConfigFile(configPaths[0]).path;
}
function createConfigFile(configLocation: SetupDirectory): SetupDirectory {
@@ -63,25 +64,37 @@ function createConfigFile(configLocation: SetupDirectory): SetupDirectory {
return configLocation;
}
export function readDefaultConfig(): Buffer {
export function readDefaultConfig(): string {
const pathDefaultConf: string = path.resolve(__dirname, 'conf/default.yaml');
try {
debug('default configuration file %s', pathDefaultConf);
debug('the path of default config used from %s', pathDefaultConf);
fs.accessSync(pathDefaultConf, fs.constants.R_OK);
debug('configuration file has enough permissions for reading');
} catch {
debug('configuration file does not have enough permissions for reading');
throw new TypeError('configuration file does not have enough permissions for reading');
}
// @ts-ignore
return fs.readFileSync(pathDefaultConf, CHARACTER_ENCODING.UTF8);
return fs.readFileSync(pathDefaultConf, 'utf8');
}
function createConfigFolder(configLocation): void {
fs.mkdirSync(path.dirname(configLocation.path), { recursive: true });
debug(`Creating default config file in %o`, configLocation?.path);
const folder = path.dirname(configLocation.path);
debug(`creating default config file folder at %o`, folder);
fs.mkdirSync(folder, { recursive: true });
debug(`folder %o created`, folder);
}
function updateStorageLinks(configLocation, defaultConfig): string {
/**
* Update the storage links to the new location if it is necessary.
* @param configLocation
* @param defaultConfig
* @returns
*/
function updateStorageLinks(configLocation: SetupDirectory, defaultConfig: string): string {
debug('checking storage links for %s and type %s', configLocation.path, configLocation.type);
if (configLocation.type !== XDG) {
debug(`skip storage override for %s`, configLocation.type);
return defaultConfig;
}
@@ -114,7 +127,11 @@ function getConfigPaths(): SetupDirectory[] {
return listPaths.reduce(function (acc, currentValue: SetupDirectory | void): SetupDirectory[] {
if (typeof currentValue !== 'undefined') {
debug('directory detected path %s for type %s', currentValue?.path, currentValue.type);
debug(
'posible directory path generated %s for type %s',
currentValue?.path,
currentValue.type
);
acc.push(currentValue);
}
return acc;
@@ -123,11 +140,22 @@ function getConfigPaths(): SetupDirectory[] {
/**
* Get XDG_CONFIG_HOME or HOME location (usually unix)
*
* The XDG_CONFIG_HOME environment variable is also part of the XDG Base Directory Specification,
* which aims to standardize the locations where applications store configuration files and other
* user-specific data on Unix-like operating systems.
*
*
*
* https://specifications.freedesktop.org/basedir-spec/latest/
*
*
* @returns
*/
const getXDGDirectory = (): SetupDirectory | void => {
const xDGConfigPath =
process.env.XDG_CONFIG_HOME || (process.env.HOME && path.join(process.env.HOME, '.config'));
debug('XDGConfig folder path %s', xDGConfigPath);
if (xDGConfigPath && folderExists(xDGConfigPath)) {
debug('XDGConfig folder path %s', xDGConfigPath);
return {
@@ -143,11 +171,11 @@ const getXDGDirectory = (): SetupDirectory | void => {
* @returns
*/
const getWindowsDirectory = (): SetupDirectory | void => {
if (process.platform === WIN32 && process.env.APPDATA && folderExists(process.env.APPDATA)) {
debug('is windows appdata: %s', process.env.APPDATA);
if (os.platform() === 'win32' && process.env.APPDATA && folderExists(process.env.APPDATA)) {
debug('windows appdata folder path %s', process.env.APPDATA);
return {
path: path.resolve(path.join(process.env.APPDATA, pkgJSON.name, CONFIG_FILE)),
type: WIN,
type: 'win',
};
}
};
@@ -158,8 +186,10 @@ const getWindowsDirectory = (): SetupDirectory | void => {
* @returns
*/
const getRelativeDefaultDirectory = (): SetupDirectory => {
const relativePath = path.resolve(path.join('.', pkgJSON.name, CONFIG_FILE));
debug('relative folder path %s', relativePath);
return {
path: path.resolve(path.join('.', pkgJSON.name, CONFIG_FILE)),
path: relativePath,
type: 'def',
};
};
@@ -169,8 +199,10 @@ const getRelativeDefaultDirectory = (): SetupDirectory => {
* @returns
*/
const getOldDirectory = (): SetupDirectory => {
const oldPath = path.resolve(path.join('.', CONFIG_FILE));
debug('old folder path %s', oldPath);
return {
path: path.resolve(path.join('.', CONFIG_FILE)),
path: oldPath,
type: 'old',
};
};

View File

@@ -1,5 +1,8 @@
import buildDebug from 'debug';
import fs from 'fs';
const debug = buildDebug('verdaccio:config:config-utils');
/**
* Check whether the path already exist.
* @param {String} path
@@ -7,9 +10,13 @@ import fs from 'fs';
*/
export function folderExists(path: string): boolean {
try {
debug('check folder exist', path);
const stat = fs.statSync(path);
return stat.isDirectory();
const isDirectory = stat.isDirectory();
debug('folder exist', isDirectory);
return isDirectory;
} catch (_: any) {
debug('folder %s does not exist', path);
return false;
}
}
@@ -21,9 +28,13 @@ export function folderExists(path: string): boolean {
*/
export function fileExists(path: string): boolean {
try {
debug('check file exist', path);
const stat = fs.statSync(path);
return stat.isFile();
const isFile = stat.isFile();
debug('file exist', isFile);
return isFile;
} catch (_: any) {
debug('file %s does not exist', path);
return false;
}
}

View File

@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`Config builder should create a configuration file as yaml 1`] = `
exports[`Config builder > should create a configuration file as yaml 1`] = `
"uplinks:
upstream:
url: https://registry.verdaccio.org

View File

@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`parse fromJStoYAML basic conversion roundtrip 1`] = `
exports[`parse > fromJStoYAML > basic conversion roundtrip 1`] = `
"storage: ./storage_default_storage
uplinks:
npmjs:

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { getUserAgent } from '../src';
describe('getUserAgent', () => {

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { ConfigBuilder } from '../src';
describe('Config builder', () => {

View File

@@ -1,5 +1,6 @@
import fs from 'fs';
import path from 'path';
import { describe, expect, test } from 'vitest';
import { fileUtils } from '@verdaccio/core';

View File

@@ -1,4 +1,5 @@
import path from 'path';
import { describe, expect, test } from 'vitest';
import { fileExists, folderExists } from '../src/config-utils';

View File

@@ -1,76 +1,105 @@
import fs from 'fs';
import os from 'os';
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest';
import { findConfigFile } from '../src/config-path';
const mockmkDir = jest.fn();
const mockaccessSync = jest.fn();
const mockwriteFile = jest.fn();
jest.mock('fs', () => {
const fsOri = jest.requireActual('fs');
return {
...fsOri,
statSync: (path) => ({
isDirectory: () => {
if (path.match(/fail/)) {
throw Error('file does not exist');
}
return true;
},
}),
accessSync: (a) => mockaccessSync(a),
mkdirSync: (a) => mockmkDir(a),
writeFileSync: (a) => mockwriteFile(a),
};
});
jest.mock('fs');
describe('config-path', () => {
let statSyncMock;
let mkdirSyncMock;
let writeFileSyncMock;
let accessSyncMock;
let fakeStats = {
isDirectory: vi.fn().mockReturnValue(true),
};
beforeEach(() => {
jest.clearAllMocks();
jest.resetAllMocks();
// Mock only statSync method
statSyncMock = vi.spyOn(fs, 'statSync');
mkdirSyncMock = vi.spyOn(fs, 'mkdirSync');
writeFileSyncMock = vi.spyOn(fs, 'writeFileSync');
accessSyncMock = vi.spyOn(fs, 'accessSync');
});
afterEach(() => {
// Restore the original implementation after each test
statSyncMock.mockRestore();
vi.unstubAllEnvs();
});
function platformPath(path: string): string {
return path.replace(/\//g, os.platform() === 'win32' ? '\\' : '/');
}
describe('findConfigFile', () => {
if (os.platform() !== 'win32') {
describe('using defiled location from arguments', () => {
test('with custom location', () => {
expect(findConfigFile('/home/user/custom/location/config.yaml')).toEqual(
'/home/user/custom/location/config.yaml'
);
expect(mockwriteFile).not.toHaveBeenCalled();
expect(mockmkDir).not.toHaveBeenCalled();
});
describe('using file location from arguments', () => {
test('with custom location', () => {
// mock
statSyncMock.mockReturnValue(fakeStats);
mkdirSyncMock.mockReturnValue(true);
writeFileSyncMock.mockReturnValue(undefined);
// Note: on Windows, path contains drive letter
expect(findConfigFile('/home/user/custom/location/config.yaml')).toMatch(
platformPath('/home/user/custom/location/config.yaml')
);
expect(writeFileSyncMock).not.toHaveBeenCalled();
expect(mkdirSyncMock).not.toHaveBeenCalled();
});
});
describe('with env variables', () => {
test('the env XDG_CONFIG_HOME is defined and the directory exist but config file is missing', async () => {
// mock
statSyncMock.mockReturnValue(fakeStats);
mkdirSyncMock.mockReturnValue(true);
writeFileSyncMock.mockReturnValue(undefined);
// node env variable
vi.stubEnv('XDG_CONFIG_HOME', '/home/user');
expect(findConfigFile()).toEqual(platformPath('/home/user/verdaccio/config.yaml'));
expect(writeFileSyncMock).toHaveBeenCalledWith(
platformPath('/home/user/verdaccio/config.yaml'),
expect.stringContaining('packages')
);
});
describe('whith env variables', () => {
test('with XDG_CONFIG_HOME if directory exist but config file is missing', () => {
process.env.XDG_CONFIG_HOME = '/home/user';
expect(findConfigFile()).toEqual('/home/user/verdaccio/config.yaml');
expect(mockwriteFile).toHaveBeenCalledWith('/home/user/verdaccio/config.yaml');
expect(mockmkDir).toHaveBeenCalledWith('/home/user/verdaccio');
});
test('with HOME if directory exist but config file is missing', () => {
// mock
statSyncMock.mockReturnValue(fakeStats);
mkdirSyncMock.mockReturnValue(true);
writeFileSyncMock.mockReturnValue(undefined);
vi.stubEnv('XDG_CONFIG_HOME', '');
vi.stubEnv('HOME', '/home/user');
expect(findConfigFile()).toEqual(platformPath('/home/user/.config/verdaccio/config.yaml'));
expect(writeFileSyncMock).toHaveBeenCalledWith(
platformPath('/home/user/.config/verdaccio/config.yaml'),
expect.stringContaining('packages')
);
expect(mkdirSyncMock).toHaveBeenCalledWith(
platformPath('/home/user/.config/verdaccio'),
expect.anything()
);
});
test('with HOME if directory exist but config file is missing', () => {
delete process.env.XDG_CONFIG_HOME;
process.env.HOME = '/home/user';
expect(findConfigFile()).toEqual('/home/user/.config/verdaccio/config.yaml');
expect(mockwriteFile).toHaveBeenCalledWith('/home/user/.config/verdaccio/config.yaml');
expect(mockmkDir).toHaveBeenCalledWith('/home/user/.config/verdaccio');
});
describe('error handling', () => {
test('XDG_CONFIG_HOME is not directory fallback to default', () => {
process.env.XDG_CONFIG_HOME = '/home/user/fail';
mockaccessSync.mockImplementation(() => {});
mockwriteFile.mockImplementation(() => {});
expect(findConfigFile()).toMatch('packages/config/verdaccio/config.yaml');
describe('error handling', () => {
test('XDG_CONFIG_HOME is not directory fallback to default', () => {
// mock
statSyncMock.mockReturnValue({
isDirectory: vi.fn().mockReturnValue(false),
});
mkdirSyncMock.mockReturnValue(true);
writeFileSyncMock.mockReturnValue(undefined);
// node env variable
vi.stubEnv('XDG_CONFIG_HOME', '/home/user/fail');
expect(findConfigFile()).toMatch(platformPath('packages/config/verdaccio/config.yaml'));
});
// Does not work on Windows
if (os.platform() !== 'win32') {
test('no permissions on read default config file', () => {
process.env.XDG_CONFIG_HOME = '/home/user';
mockaccessSync.mockImplementation(() => {
vi.stubEnv('XDG_CONFIG_HOME', '/home/user');
accessSyncMock.mockImplementation(() => {
throw new Error('error on write file');
});
@@ -78,29 +107,28 @@ describe('config-path', () => {
findConfigFile();
}).toThrow(/configuration file does not have enough permissions for reading/);
});
});
}
});
});
describe('with no env variables', () => {
// Note: Trying to mock Windows platform leads to different results (incorrect slashes)
if (os.platform() === 'win32') {
describe('with Windows env variables', () => {
test('with relative location', () => {
mockaccessSync.mockImplementation(() => {});
delete process.env.XDG_CONFIG_HOME;
delete process.env.HOME;
process.env.APPDATA = '/app/data/';
expect(findConfigFile()).toMatch('packages/config/verdaccio/config.yaml');
expect(mockwriteFile).toHaveBeenCalled();
expect(mockmkDir).toHaveBeenCalled();
// mock
statSyncMock.mockReturnValue(fakeStats);
mkdirSyncMock.mockReturnValue(true);
writeFileSyncMock.mockReturnValue(undefined);
accessSyncMock.mockImplementation(() => {});
// delete process.env.XDG_CONFIG_HOME;
vi.stubEnv('XDG_CONFIG_HOME', '');
vi.stubEnv('HOME', '');
vi.stubEnv('APPDATA', 'C:\\Users\\Tester\\AppData\\');
expect(findConfigFile()).toEqual('C:\\Users\\Tester\\AppData\\verdaccio\\config.yaml');
expect(writeFileSyncMock).toHaveBeenCalled();
expect(mkdirSyncMock).toHaveBeenCalled();
});
});
} else {
test('with windows as directory exist but config file is missing', () => {
delete process.env.XDG_CONFIG_HOME;
delete process.env.HOME;
process.env.APPDATA = '/app/data/';
expect(findConfigFile()).toMatch('\\app\\data\\verdaccio\\config.yaml');
expect(mockwriteFile).toHaveBeenCalled();
expect(mockmkDir).toHaveBeenCalled();
});
}
});
});

View File

@@ -1,5 +1,6 @@
import _ from 'lodash';
import path from 'path';
import { describe, expect, test } from 'vitest';
import {
Config,
@@ -22,7 +23,7 @@ const resolveConf = (conf) => {
return path.join(__dirname, `../src/conf/${name}${ext.startsWith('.') ? ext : '.yaml'}`);
};
const itif = (condition) => (condition ? it : it.skip);
const itif = (condition) => (condition ? test : test.skip);
const checkDefaultUplink = (config) => {
expect(_.isObject(config.uplinks[DEFAULT_UPLINK])).toBeTruthy();

View File

@@ -1,4 +1,5 @@
import _ from 'lodash';
import { describe, expect, test } from 'vitest';
import { parseConfigFile } from '../src';
import { PACKAGE_ACCESS, normalisePackageAccess, normalizeUserList } from '../src/package-access';

View File

@@ -1,3 +1,5 @@
import { expect, test } from 'vitest';
import { TOKEN_VALID_LENGTH, generateRandomSecretKey } from '../src/token';
test('token test valid length', () => {

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { normalisePackageAccess, parseConfigFile } from '../src';
import { hasProxyTo, sanityCheckUplinksProps, uplinkSanityCheck } from '../src/uplinks';
import { parseConfigurationFile } from './utils';

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { ROLES, createAnonymousRemoteUser, createRemoteUser } from '../src';
describe('createRemoteUser and createAnonymousRemoteUser', () => {

View File

@@ -1,5 +1,15 @@
# @verdaccio/core
## 7.0.0-next-8.21
### Patch Changes
- 7c9f3cf: chore: improve startup logging
## 7.0.0-next-7.20
## 7.0.0-next-7.19
## 7.0.0-next-7.18
## 7.0.0-next-7.17

View File

@@ -1,3 +0,0 @@
const config = require('../../../jest/config');
module.exports = Object.assign({}, config, {});

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/core",
"version": "7.0.0-next-7.18",
"version": "7.0.0-next-8.21",
"description": "core utilities",
"keywords": [
"private",
@@ -19,7 +19,7 @@
"license": "MIT",
"homepage": "https://verdaccio.org",
"engines": {
"node": ">=12"
"node": ">=14"
},
"repository": {
"type": "https",
@@ -33,22 +33,22 @@
"access": "public"
},
"dependencies": {
"ajv": "8.17.1",
"core-js": "3.37.1",
"http-errors": "2.0.0",
"http-status-codes": "2.3.0",
"semver": "7.6.2",
"ajv": "8.12.0",
"process-warning": "1.0.0",
"core-js": "3.35.0"
"semver": "7.6.3"
},
"devDependencies": {
"@verdaccio/types": "workspace:12.0.0-next-7.5",
"lodash": "4.17.21",
"typedoc": "0.23.25",
"typedoc-plugin-missing-exports": "latest",
"@verdaccio/types": "workspace:12.0.0-next-7.5"
"typedoc-plugin-missing-exports": "latest"
},
"scripts": {
"clean": "rimraf ./build",
"test": "jest",
"test": "vitest run",
"type-check": "tsc --noEmit -p tsconfig.build.json",
"build:docs": "typedoc --options ./typedoc.json --tsconfig tsconfig.build.json",
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",

View File

@@ -119,3 +119,11 @@ export enum HtpasswdHashAlgorithm {
crypt = 'crypt',
bcrypt = 'bcrypt',
}
export const PLUGIN_CATEGORY = {
AUTHENTICATION: 'authentication',
MIDDLEWARE: 'middleware',
STORAGE: 'storage',
FILTER: 'filter',
THEME: 'theme',
};

View File

@@ -24,6 +24,7 @@ export {
DEFAULT_USER,
USERS,
MAINTAINERS,
PLUGIN_CATEGORY,
HtpasswdHashAlgorithm,
} from './constants';
const validationUtils = validatioUtils;

View File

@@ -1,4 +1,5 @@
import _ from 'lodash';
import { describe, expect, test } from 'vitest';
import { HTTP_STATUS } from '../src/constants';
import {

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { mergeVersions, semverSort } from '../src/pkg-utils';
describe('Storage._merge_versions versions', () => {

View File

@@ -1,4 +1,5 @@
import { Stream } from 'stream';
import { describe, expect, test } from 'vitest';
import { readableToString } from '../src/stream-utils';

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { DIST_TAGS, pkgUtils } from '../src';
describe('pkg-utils', () => {

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { stringUtils } from '../src';
describe('string-utils', () => {

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { DEFAULT_PASSWORD_VALIDATION, DIST_TAGS } from '../src/constants';
import { validatePublishSingleVersion } from '../src/schemes/publish-manifest';
import {
@@ -62,10 +64,9 @@ describe('normalizeMetadata', () => {
test('should fails the assertions is name does not match', () => {
expect(function () {
// @ts-ignore
// @ts-expect-error
normalizeMetadata({}, 'no-name');
// @ts-ignore
}).toThrow(expect.hasAssertions());
}).toThrowError();
});
});

View File

@@ -1,5 +1,31 @@
# Change Log
## 12.0.0-next-8.21
### Patch Changes
- Updated dependencies [7c9f3cf]
- @verdaccio/core@7.0.0-next-8.21
- @verdaccio/url@12.0.0-next-8.21
- @verdaccio/utils@7.0.0-next-8.21
## 12.0.0-next-7.20
### Patch Changes
- Updated dependencies [ccc7bd1]
- @verdaccio/url@12.0.0-next-7.20
- @verdaccio/core@7.0.0-next-7.20
- @verdaccio/utils@7.0.0-next-7.20
## 12.0.0-next-7.19
### Patch Changes
- @verdaccio/core@7.0.0-next-7.19
- @verdaccio/url@12.0.0-next-7.19
- @verdaccio/utils@7.0.0-next-7.19
## 12.0.0-next-7.18
### Patch Changes

View File

@@ -1,3 +0,0 @@
const config = require('../../../jest/config');
module.exports = Object.assign({}, config, {});

View File

@@ -1,6 +1,6 @@
{
"name": "@verdaccio/tarball",
"version": "12.0.0-next-7.18",
"version": "12.0.0-next-8.21",
"description": "tarball utilities resolver",
"keywords": [
"private",
@@ -19,7 +19,7 @@
"license": "MIT",
"homepage": "https://verdaccio.org",
"engines": {
"node": ">=12"
"node": ">=14"
},
"repository": {
"type": "https",
@@ -33,10 +33,10 @@
"access": "public"
},
"dependencies": {
"@verdaccio/core": "workspace:7.0.0-next-7.18",
"@verdaccio/url": "workspace:12.0.0-next-7.18",
"@verdaccio/utils": "workspace:7.0.0-next-7.18",
"debug": "4.3.4",
"@verdaccio/core": "workspace:7.0.0-next-8.21",
"@verdaccio/url": "workspace:12.0.0-next-8.21",
"@verdaccio/utils": "workspace:7.0.0-next-8.21",
"debug": "4.3.6",
"gunzip-maybe": "^1.4.2",
"lodash": "4.17.21",
"tar-stream": "^3.1.7"
@@ -47,7 +47,7 @@
},
"scripts": {
"clean": "rimraf ./build",
"test": "jest",
"test": "vitest run",
"type-check": "tsc --noEmit -p tsconfig.build.json",
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
"build:js": "babel src/ --out-dir build/ --copy-files --extensions \".ts,.tsx\" --source-maps",

View File

@@ -1,4 +1,5 @@
import * as httpMocks from 'node-mocks-http';
import { describe, expect, test } from 'vitest';
import { HEADERS } from '@verdaccio/core';

View File

@@ -1,3 +1,5 @@
import { describe, expect, test } from 'vitest';
import { extractTarballFromUrl } from '../src';
describe('extractTarballFromUrl', () => {

View File

@@ -1,5 +1,6 @@
import fs from 'fs';
import path from 'path';
import { describe, expect, test } from 'vitest';
import { getTarballDetails } from '../src/getTarballDetails.ts';

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