Compare commits
78 Commits
generator-
...
@verdaccio
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce1c642312 | ||
|
|
93c53a4d5a | ||
|
|
a77074d0a8 | ||
|
|
71028d5ce4 | ||
|
|
e907171bfb | ||
|
|
7ef2ed6959 | ||
|
|
d573444910 | ||
|
|
829c908e45 | ||
|
|
ed6c794d2d | ||
|
|
b03e8b9dd6 | ||
|
|
b167f9d323 | ||
|
|
a05a7d8a13 | ||
|
|
3f46ff0107 | ||
|
|
7c9f3cf15e | ||
|
|
e8de53bcdf | ||
|
|
f48f19dfe9 | ||
|
|
4793270a3e | ||
|
|
b64c7d4660 | ||
|
|
c63655b6f2 | ||
|
|
97947ebb3d | ||
|
|
60b263f23d | ||
|
|
6576ea7a5b | ||
|
|
303c659bfc | ||
|
|
4769ddf1ba | ||
|
|
8b9f8a6f80 | ||
|
|
06f68eb0e7 | ||
|
|
1f75a416f2 | ||
|
|
477f9bcba4 | ||
|
|
0c7b19b192 | ||
|
|
79c1fedc1b | ||
|
|
29b1c39169 | ||
|
|
0ab8fd92bd | ||
|
|
07f5cf2799 | ||
|
|
f59268b225 | ||
|
|
5513e2f8a2 | ||
|
|
fb239e39c3 | ||
|
|
c7a7b1ded9 | ||
|
|
d3f4146bc7 | ||
|
|
5c561f7d1a | ||
|
|
0119daaba9 | ||
|
|
d7332e6122 | ||
|
|
02058672e6 | ||
|
|
a82be2d8a8 | ||
|
|
527f39988f | ||
|
|
4d3435001a | ||
|
|
8c10a3ec31 | ||
|
|
8ef7a285e5 | ||
|
|
45c6b70ebc | ||
|
|
fd7ed45064 | ||
|
|
79e76d9c72 | ||
|
|
947f43e7e6 | ||
|
|
591a699597 | ||
|
|
08c49460d5 | ||
|
|
489631bda9 | ||
|
|
112f1d60b8 | ||
|
|
e87b29885b | ||
|
|
ccc7bd1df5 | ||
|
|
3c6e6b9af7 | ||
|
|
096d634917 | ||
|
|
87fa9270a5 | ||
|
|
dc2cd48a78 | ||
|
|
4c54c0c67d | ||
|
|
6bed536f80 | ||
|
|
1f4fa441ae | ||
|
|
c5f5e75818 | ||
|
|
b3f52486f7 | ||
|
|
2274e483ac | ||
|
|
d0dacd75c5 | ||
|
|
5bcfd7e2e2 | ||
|
|
71fcd2de91 | ||
|
|
2ee690638d | ||
|
|
39f71f5d7d | ||
|
|
a985ddc246 | ||
|
|
919795c804 | ||
|
|
d60bf44c43 | ||
|
|
6626e77766 | ||
|
|
03a903d924 | ||
|
|
016812b12c |
5
.changeset/dry-mirrors-roll.md
Normal file
5
.changeset/dry-mirrors-roll.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
---
|
||||
|
||||
fix: enable irish language on ui
|
||||
6
.changeset/mighty-gorillas-fail.md
Normal file
6
.changeset/mighty-gorillas-fail.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/middleware': patch
|
||||
'@verdaccio/url': patch
|
||||
---
|
||||
|
||||
fix(middleware): link to favicon in template
|
||||
5
.changeset/moody-mugs-pay.md
Normal file
5
.changeset/moody-mugs-pay.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/config': patch
|
||||
---
|
||||
|
||||
chore: improve debug code and refactor code
|
||||
@@ -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",
|
||||
@@ -69,6 +69,7 @@
|
||||
"cuddly-camels-relax",
|
||||
"dirty-dolphins-try",
|
||||
"dirty-islands-push",
|
||||
"dry-mirrors-roll",
|
||||
"dry-shoes-report",
|
||||
"eight-icons-heal",
|
||||
"eight-squids-judge",
|
||||
@@ -81,6 +82,8 @@
|
||||
"long-jars-collect",
|
||||
"long-moles-attend",
|
||||
"many-bees-tickle",
|
||||
"mighty-gorillas-fail",
|
||||
"moody-mugs-pay",
|
||||
"nervous-fireants-design",
|
||||
"old-turkeys-heal",
|
||||
"olive-bananas-wink",
|
||||
@@ -100,7 +103,9 @@
|
||||
"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",
|
||||
|
||||
5
.changeset/swift-rabbits-vanish.md
Normal file
5
.changeset/swift-rabbits-vanish.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/config': patch
|
||||
---
|
||||
|
||||
fix(config): test runs on Windows
|
||||
13
.changeset/thick-avocados-provide.md
Normal file
13
.changeset/thick-avocados-provide.md
Normal 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
|
||||
@@ -22,7 +22,6 @@ jest
|
||||
docs
|
||||
contrib
|
||||
docker-examples
|
||||
website
|
||||
systemd
|
||||
|
||||
# output from test runs and similar things
|
||||
|
||||
4
.github/disabled/docker-plugins-e2e.yml
vendored
4
.github/disabled/docker-plugins-e2e.yml
vendored
@@ -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
|
||||
|
||||
4
.github/workflows/changesets.yml
vendored
4
.github/workflows/changesets.yml
vendored
@@ -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:
|
||||
|
||||
30
.github/workflows/ci.yml
vendored
30
.github/workflows/ci.yml
vendored
@@ -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') }}
|
||||
|
||||
12
.github/workflows/codeql-analysis.yml
vendored
12
.github/workflows/codeql-analysis.yml
vendored
@@ -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@b611370bb5703a7efb587f9d136a52ea24c5c38c # 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@b611370bb5703a7efb587f9d136a52ea24c5c38c # 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@b611370bb5703a7efb587f9d136a52ea24c5c38c # v2
|
||||
uses: github/codeql-action/analyze@be8b74c09c1778bcdbea38e1a45efea2cb73e18c # v2
|
||||
|
||||
14
.github/workflows/docker-proxy-apache-e2e.yml
vendored
14
.github/workflows/docker-proxy-apache-e2e.yml
vendored
@@ -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
|
||||
|
||||
15
.github/workflows/docker-proxy-nginx-e2e.yml
vendored
15
.github/workflows/docker-proxy-nginx-e2e.yml
vendored
@@ -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
|
||||
|
||||
4
.github/workflows/docker-publish.yml
vendored
4
.github/workflows/docker-publish.yml
vendored
@@ -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
|
||||
|
||||
38
.github/workflows/e2e-ci.yml
vendored
38
.github/workflows/e2e-ci.yml
vendored
@@ -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 }}
|
||||
|
||||
4
.github/workflows/e2e-ui.yml
vendored
4
.github/workflows/e2e-ui.yml
vendored
@@ -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
|
||||
|
||||
13
.github/workflows/plugin-generator-e2e.yaml
vendored
13
.github/workflows/plugin-generator-e2e.yaml
vendored
@@ -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') }}
|
||||
|
||||
4
.github/workflows/static-data.yml
vendored
4
.github/workflows/static-data.yml
vendored
@@ -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
|
||||
|
||||
6
.github/workflows/ui-components.yml
vendored
6
.github/workflows/ui-components.yml
vendored
@@ -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:
|
||||
|
||||
20
.github/workflows/website.yml
vendored
20
.github/workflows/website.yml
vendored
@@ -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
|
||||
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
"main": "./build/index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"devDependencies": {
|
||||
"@verdaccio/config": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/core": "workspace:7.0.0-next-7.19",
|
||||
"@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.19"
|
||||
"verdaccio": "workspace:7.0.0-next-8.21"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "jest",
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
"name": "@verdaccio/e2e-ui",
|
||||
"version": "2.0.0",
|
||||
"devDependencies": {
|
||||
"verdaccio": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/core": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-7.19",
|
||||
"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"
|
||||
},
|
||||
|
||||
88
package.json
88
package.json
@@ -17,8 +17,8 @@
|
||||
"devDependencies": {
|
||||
"@babel/cli": "7.24.8",
|
||||
"@babel/core": "7.24.9",
|
||||
"@babel/eslint-parser": "7.24.8",
|
||||
"@babel/node": "7.24.8",
|
||||
"@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",
|
||||
@@ -26,7 +26,7 @@
|
||||
"@babel/plugin-syntax-import-meta": "7.10.4",
|
||||
"@babel/plugin-transform-async-to-generator": "7.24.7",
|
||||
"@babel/plugin-transform-class-properties": "7.24.7",
|
||||
"@babel/plugin-transform-classes": "7.24.8",
|
||||
"@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",
|
||||
@@ -34,71 +34,71 @@
|
||||
"@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.24.8",
|
||||
"@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.24.8",
|
||||
"@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/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/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",
|
||||
@@ -114,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",
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
# @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
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
const config = require('../../jest/config');
|
||||
|
||||
module.exports = Object.assign({}, config, {});
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/api",
|
||||
"version": "7.0.0-next-7.19",
|
||||
"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.19",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/core": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/logger": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/middleware": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/store": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/utils": "workspace:7.0.0-next-7.19",
|
||||
"@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",
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import supertest from 'supertest';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import _ from 'lodash';
|
||||
import supertest from 'supertest';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import {
|
||||
API_ERROR,
|
||||
|
||||
@@ -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', () => {
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
# @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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/auth",
|
||||
"version": "7.0.0-next-7.19",
|
||||
"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.19",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/loaders": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/logger": "workspace:7.0.0-next-7.19",
|
||||
"@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.19",
|
||||
"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.19"
|
||||
"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.19",
|
||||
"@verdaccio/types": "workspace:12.0.0-next-7.5"
|
||||
"supertest": "7.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
# @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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/cli",
|
||||
"version": "7.0.0-next-7.19",
|
||||
"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.19",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/logger": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/node-api": "workspace:7.0.0-next-7.19",
|
||||
"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"
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @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
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
const config = require('../../jest/config');
|
||||
|
||||
module.exports = Object.assign({}, config, {
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
lines: 90,
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/config",
|
||||
"version": "7.0.0-next-7.19",
|
||||
"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.19",
|
||||
"@verdaccio/utils": "workspace:7.0.0-next-7.19",
|
||||
"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",
|
||||
|
||||
@@ -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',
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { getUserAgent } from '../src';
|
||||
|
||||
describe('getUserAgent', () => {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { ConfigBuilder } from '../src';
|
||||
|
||||
describe('Config builder', () => {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { fileUtils } from '@verdaccio/core';
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import path from 'path';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { fileExists, folderExists } from '../src/config-utils';
|
||||
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { expect, test } from 'vitest';
|
||||
|
||||
import { TOKEN_VALID_LENGTH, generateRandomSecretKey } from '../src/token';
|
||||
|
||||
test('token test valid length', () => {
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { ROLES, createAnonymousRemoteUser, createRemoteUser } from '../src';
|
||||
|
||||
describe('createRemoteUser and createAnonymousRemoteUser', () => {
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
# @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
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
const config = require('../../../jest/config');
|
||||
|
||||
module.exports = Object.assign({}, config, {});
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/core",
|
||||
"version": "7.0.0-next-7.19",
|
||||
"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",
|
||||
|
||||
@@ -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',
|
||||
};
|
||||
|
||||
@@ -24,6 +24,7 @@ export {
|
||||
DEFAULT_USER,
|
||||
USERS,
|
||||
MAINTAINERS,
|
||||
PLUGIN_CATEGORY,
|
||||
HtpasswdHashAlgorithm,
|
||||
} from './constants';
|
||||
const validationUtils = validatioUtils;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import _ from 'lodash';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { HTTP_STATUS } from '../src/constants';
|
||||
import {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { mergeVersions, semverSort } from '../src/pkg-utils';
|
||||
|
||||
describe('Storage._merge_versions versions', () => {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { Stream } from 'stream';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { readableToString } from '../src/stream-utils';
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { DIST_TAGS, pkgUtils } from '../src';
|
||||
|
||||
describe('pkg-utils', () => {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { stringUtils } from '../src';
|
||||
|
||||
describe('string-utils', () => {
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
# 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
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
const config = require('../../../jest/config');
|
||||
|
||||
module.exports = Object.assign({}, config, {});
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/tarball",
|
||||
"version": "12.0.0-next-7.19",
|
||||
"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.19",
|
||||
"@verdaccio/url": "workspace:12.0.0-next-7.19",
|
||||
"@verdaccio/utils": "workspace:7.0.0-next-7.19",
|
||||
"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",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import * as httpMocks from 'node-mocks-http';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { HEADERS } from '@verdaccio/core';
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { extractTarballFromUrl } from '../src';
|
||||
|
||||
describe('extractTarballFromUrl', () => {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { getTarballDetails } from '../src/getTarballDetails.ts';
|
||||
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
# Change Log
|
||||
|
||||
## 12.0.0-next-8.21
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [7c9f3cf]
|
||||
- @verdaccio/core@7.0.0-next-8.21
|
||||
|
||||
## 12.0.0-next-7.20
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- ccc7bd1: fix(middleware): link to favicon in template
|
||||
- @verdaccio/core@7.0.0-next-7.20
|
||||
|
||||
## 12.0.0-next-7.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
const config = require('../../../jest/config');
|
||||
|
||||
module.exports = Object.assign({}, config, {});
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/url",
|
||||
"version": "12.0.0-next-7.19",
|
||||
"version": "12.0.0-next-8.21",
|
||||
"description": "url utilities resolver",
|
||||
"keywords": [
|
||||
"private",
|
||||
@@ -33,10 +33,10 @@
|
||||
"access": "public"
|
||||
},
|
||||
"dependencies": {
|
||||
"@verdaccio/core": "workspace:7.0.0-next-7.19",
|
||||
"debug": "4.3.4",
|
||||
"@verdaccio/core": "workspace:7.0.0-next-8.21",
|
||||
"debug": "4.3.6",
|
||||
"lodash": "4.17.21",
|
||||
"validator": "13.11.0"
|
||||
"validator": "13.12.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@verdaccio/types": "workspace:12.0.0-next-7.5",
|
||||
@@ -44,7 +44,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",
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { combineBaseUrl } from '../src';
|
||||
|
||||
describe('combineBaseUrl', () => {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import * as httpMocks from 'node-mocks-http';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { HEADERS } from '@verdaccio/core';
|
||||
|
||||
@@ -102,7 +103,7 @@ describe('host', () => {
|
||||
});
|
||||
|
||||
expect(
|
||||
getPublicUrl(null, {
|
||||
getPublicUrl(undefined, {
|
||||
host: req.hostname,
|
||||
headers: req.headers as any,
|
||||
protocol: req.protocol,
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { getWebProtocol } from '../src';
|
||||
|
||||
describe('getWebProtocol', () => {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { expect, test } from 'vitest';
|
||||
|
||||
import { isURLhasValidProtocol } from '../src';
|
||||
|
||||
test('should be HTTP/HTTPS protocol', () => {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { expect, test } from 'vitest';
|
||||
|
||||
import { isHost } from '../src';
|
||||
|
||||
test('valid host', () => {
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @verdaccio/hooks
|
||||
|
||||
## 7.0.0-next-8.21
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [7c9f3cf]
|
||||
- @verdaccio/core@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/logger@7.0.0-next-7.20
|
||||
|
||||
## 7.0.0-next-7.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
const config = require('../../jest/config');
|
||||
|
||||
module.exports = Object.assign({}, config, {
|
||||
testEnvironment: 'node',
|
||||
});
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/hooks",
|
||||
"version": "7.0.0-next-7.19",
|
||||
"version": "7.0.0-next-8.21",
|
||||
"description": "loaders logic",
|
||||
"main": "./build/index.js",
|
||||
"types": "build/index.d.ts",
|
||||
@@ -29,22 +29,22 @@
|
||||
"node": ">=18"
|
||||
},
|
||||
"dependencies": {
|
||||
"@verdaccio/core": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/logger": "workspace:7.0.0-next-7.19",
|
||||
"core-js": "3.35.0",
|
||||
"debug": "4.3.4",
|
||||
"@verdaccio/core": "workspace:7.0.0-next-8.21",
|
||||
"@verdaccio/logger": "workspace:7.0.0-next-8.21",
|
||||
"core-js": "3.37.1",
|
||||
"debug": "4.3.6",
|
||||
"got-cjs": "12.5.4",
|
||||
"handlebars": "4.7.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@verdaccio/auth": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/auth": "workspace:7.0.0-next-8.21",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-8.21",
|
||||
"@verdaccio/types": "workspace:12.0.0-next-7.5",
|
||||
"nock": "13.5.1"
|
||||
},
|
||||
"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",
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import nock from 'nock';
|
||||
import { beforeEach, describe, expect, test } from 'vitest';
|
||||
|
||||
import { createRemoteUser, parseConfigFile } from '@verdaccio/config';
|
||||
import { setup } from '@verdaccio/logger';
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
# @verdaccio/loaders
|
||||
|
||||
## 7.0.0-next-8.21
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 7c9f3cf: chore: improve startup logging
|
||||
- @verdaccio/logger@7.0.0-next-8.21
|
||||
|
||||
## 7.0.0-next-7.20
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @verdaccio/logger@7.0.0-next-7.20
|
||||
|
||||
## 7.0.0-next-7.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
const config = require('../../jest/config');
|
||||
|
||||
module.exports = Object.assign({}, config, {
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
// FIXME: increase to 90
|
||||
lines: 68,
|
||||
},
|
||||
},
|
||||
});
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@verdaccio/loaders",
|
||||
"version": "7.0.0-next-7.19",
|
||||
"version": "7.0.0-next-8.21",
|
||||
"description": "loaders logic",
|
||||
"main": "./build/index.js",
|
||||
"types": "build/index.d.ts",
|
||||
@@ -13,13 +13,13 @@
|
||||
"url": "https://github.com/verdaccio/verdaccio"
|
||||
},
|
||||
"dependencies": {
|
||||
"@verdaccio/logger": "workspace:7.0.0-next-7.19",
|
||||
"debug": "4.3.4",
|
||||
"@verdaccio/logger": "workspace:7.0.0-next-8.21",
|
||||
"debug": "4.3.6",
|
||||
"lodash": "4.17.21"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@verdaccio/core": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-7.19",
|
||||
"@verdaccio/core": "workspace:7.0.0-next-8.21",
|
||||
"@verdaccio/config": "workspace:7.0.0-next-8.21",
|
||||
"@verdaccio/types": "workspace:12.0.0-next-7.5",
|
||||
"@verdaccio-scope/verdaccio-auth-foo": "0.0.2",
|
||||
"verdaccio-auth-memory": "workspace:*",
|
||||
@@ -43,7 +43,7 @@
|
||||
"license": "MIT",
|
||||
"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",
|
||||
|
||||
@@ -50,7 +50,8 @@ export async function asyncLoadPlugin<T extends pluginUtils.Plugin<T>>(
|
||||
pluginConfigs: any = {},
|
||||
params: Params,
|
||||
sanityCheck: (plugin: PluginType<T>) => boolean,
|
||||
prefix: string = 'verdaccio'
|
||||
prefix: string = 'verdaccio',
|
||||
pluginCategory: string = ''
|
||||
): Promise<PluginType<T>[]> {
|
||||
const pluginsIds = Object.keys(pluginConfigs);
|
||||
const { config } = params;
|
||||
@@ -75,7 +76,7 @@ export async function asyncLoadPlugin<T extends pluginUtils.Plugin<T>>(
|
||||
}
|
||||
|
||||
logger.debug({ path: pluginsPath }, 'plugins folder defined, loading plugins from @{path} ');
|
||||
// throws if is nto a directory
|
||||
// throws if is not a directory
|
||||
try {
|
||||
await isDirectory(pluginsPath);
|
||||
const pluginDir = pluginsPath;
|
||||
@@ -93,6 +94,10 @@ export async function asyncLoadPlugin<T extends pluginUtils.Plugin<T>>(
|
||||
continue;
|
||||
}
|
||||
plugins.push(plugin);
|
||||
logger.info(
|
||||
{ prefix, pluginId, pluginCategory },
|
||||
'plugin @{prefix}-@{pluginId} successfully loaded (@{pluginCategory})'
|
||||
);
|
||||
continue;
|
||||
}
|
||||
} catch (err: any) {
|
||||
@@ -118,6 +123,10 @@ export async function asyncLoadPlugin<T extends pluginUtils.Plugin<T>>(
|
||||
continue;
|
||||
}
|
||||
plugins.push(plugin);
|
||||
logger.info(
|
||||
{ prefix, pluginId, pluginCategory },
|
||||
'plugin @{prefix}-@{pluginId} successfully loaded (@{pluginCategory})'
|
||||
);
|
||||
continue;
|
||||
} else {
|
||||
logger.error(
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import path from 'path';
|
||||
import { describe, expect, test } from 'vitest';
|
||||
|
||||
import { Config, parseConfigFile } from '@verdaccio/config';
|
||||
import { pluginUtils } from '@verdaccio/core';
|
||||
|
||||
@@ -1,5 +1,17 @@
|
||||
# @verdaccio/logger-7
|
||||
|
||||
## 7.0.0-next-8.21
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @verdaccio/logger-commons@7.0.0-next-8.21
|
||||
|
||||
## 7.0.0-next-7.20
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- @verdaccio/logger-commons@7.0.0-next-7.20
|
||||
|
||||
## 7.0.0-next-7.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user