Move from NPM to PNPM (#19839)
This commit is contained in:
parent
e44464d3b8
commit
2a18bcb246
29 changed files with 7317 additions and 11318 deletions
4
.github/actions/build-keycloak/action.yml
vendored
4
.github/actions/build-keycloak/action.yml
vendored
|
@ -39,10 +39,6 @@ runs:
|
|||
name: PhantomJS cache
|
||||
uses: ./.github/actions/phantomjs-cache
|
||||
|
||||
- id: npm-cache
|
||||
name: NPM cache
|
||||
uses: ./.github/actions/npm-cache
|
||||
|
||||
- id: build-keycloak
|
||||
name: Build Keycloak
|
||||
shell: bash
|
||||
|
|
17
.github/actions/npm-cache/action.yml
vendored
17
.github/actions/npm-cache/action.yml
vendored
|
@ -1,17 +0,0 @@
|
|||
name: NPM Cache
|
||||
description: Caches NPM artifacts
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- id: weekly-cache-key
|
||||
name: Key for weekly rotation of cache
|
||||
shell: bash
|
||||
run: echo "key=npm-`date -u "+%Y-%U"`" >> $GITHUB_OUTPUT
|
||||
|
||||
- id: cache-npm-repository
|
||||
name: NPM cache
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ steps.weekly-cache-key.outputs.key }}
|
29
.github/actions/npm-setup/action.yml
vendored
29
.github/actions/npm-setup/action.yml
vendored
|
@ -1,29 +0,0 @@
|
|||
name: Setup NPM
|
||||
description: Sets up Node.js and runs NPM so dependencies are installed.
|
||||
|
||||
inputs:
|
||||
node-version:
|
||||
description: Node.js version
|
||||
required: false
|
||||
default: "18"
|
||||
|
||||
working-directory:
|
||||
description: The working directory where the `package-lock.json` is located.
|
||||
required: false
|
||||
default: ""
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ inputs.node-version }}
|
||||
check-latest: true
|
||||
cache: npm
|
||||
cache-dependency-path: ${{ inputs.working-directory }}/package-lock.json
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: ${{ inputs.working-directory }}
|
||||
shell: bash
|
||||
run: npm ci
|
48
.github/actions/pnpm-setup/action.yml
vendored
Normal file
48
.github/actions/pnpm-setup/action.yml
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
name: Setup PNPM
|
||||
description: Sets up Node.js and runs PNPM so dependencies are installed.
|
||||
|
||||
inputs:
|
||||
node-version:
|
||||
description: Node.js version
|
||||
required: false
|
||||
default: "18"
|
||||
|
||||
working-directory:
|
||||
description: The working directory where the `pnpm-lock.yaml` file is located.
|
||||
required: false
|
||||
default: ""
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ inputs.node-version }}
|
||||
check-latest: true
|
||||
|
||||
- name: Enable Corepack
|
||||
shell: bash
|
||||
run: corepack enable
|
||||
|
||||
- name: Get PNPM store directory
|
||||
id: pnpm-cache
|
||||
shell: bash
|
||||
run: |
|
||||
echo "store-path=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/cache@v3
|
||||
name: Setup PNPM cache
|
||||
with:
|
||||
# Also cache Cypress binary.
|
||||
path: |
|
||||
~/.cache/Cypress
|
||||
${{ steps.pnpm-cache.outputs.store-path }}
|
||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('${{ inputs.working-directory }}/pnpm-lock.yaml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pnpm-store-
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: ${{ inputs.working-directory }}
|
||||
shell: bash
|
||||
run: pnpm install --frozen-lockfile
|
25
.github/dependabot.yml
vendored
25
.github/dependabot.yml
vendored
|
@ -23,27 +23,4 @@ updates:
|
|||
- team/ui
|
||||
ignore:
|
||||
- dependency-name: bootstrap
|
||||
update-types: ["version-update:semver-major"]
|
||||
- package-ecosystem: npm
|
||||
directory: js
|
||||
open-pull-requests-limit: 999
|
||||
rebase-strategy: disabled
|
||||
versioning-strategy: increase
|
||||
schedule:
|
||||
interval: weekly
|
||||
labels:
|
||||
- area/dependencies
|
||||
- team/ui
|
||||
ignore:
|
||||
- dependency-name: react
|
||||
update-types: ["version-update:semver-major"]
|
||||
- dependency-name: react-dom
|
||||
update-types: ["version-update:semver-major"]
|
||||
- dependency-name: "@types/react"
|
||||
update-types: ["version-update:semver-major"]
|
||||
- dependency-name: "@types/react-dom"
|
||||
update-types: ["version-update:semver-major"]
|
||||
- dependency-name: vite
|
||||
update-types: ["version-update:semver-major"]
|
||||
- dependency-name: "@vitejs/plugin-react"
|
||||
update-types: ["version-update:semver-major"]
|
||||
update-types: ["version-update:semver-major"]
|
44
.github/workflows/js-ci.yml
vendored
44
.github/workflows/js-ci.yml
vendored
|
@ -69,14 +69,14 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: ./.github/actions/npm-setup
|
||||
- uses: ./.github/actions/pnpm-setup
|
||||
with:
|
||||
working-directory: js
|
||||
|
||||
- run: npm run lint --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run lint
|
||||
working-directory: js
|
||||
|
||||
- run: npm run build --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run build
|
||||
working-directory: js
|
||||
|
||||
keycloak-js:
|
||||
|
@ -89,11 +89,11 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: ./.github/actions/npm-setup
|
||||
- uses: ./.github/actions/pnpm-setup
|
||||
with:
|
||||
working-directory: js
|
||||
|
||||
- run: npm run build --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run build
|
||||
working-directory: js
|
||||
|
||||
keycloak-masthead:
|
||||
|
@ -106,14 +106,14 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: ./.github/actions/npm-setup
|
||||
- uses: ./.github/actions/pnpm-setup
|
||||
with:
|
||||
working-directory: js
|
||||
|
||||
- run: npm run lint --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run lint
|
||||
working-directory: js
|
||||
|
||||
- run: npm run build --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run build
|
||||
working-directory: js
|
||||
|
||||
ui-shared:
|
||||
|
@ -126,14 +126,14 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: ./.github/actions/npm-setup
|
||||
- uses: ./.github/actions/pnpm-setup
|
||||
with:
|
||||
working-directory: js
|
||||
|
||||
- run: npm run lint --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run lint
|
||||
working-directory: js
|
||||
|
||||
- run: npm run build --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run build
|
||||
working-directory: js
|
||||
|
||||
account-ui:
|
||||
|
@ -146,14 +146,14 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: ./.github/actions/npm-setup
|
||||
- uses: ./.github/actions/pnpm-setup
|
||||
with:
|
||||
working-directory: js
|
||||
|
||||
- run: npm run lint --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run lint
|
||||
working-directory: js
|
||||
|
||||
- run: npm run build --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run build
|
||||
working-directory: js
|
||||
|
||||
admin-ui:
|
||||
|
@ -166,20 +166,20 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: ./.github/actions/npm-setup
|
||||
- uses: ./.github/actions/pnpm-setup
|
||||
with:
|
||||
working-directory: js
|
||||
|
||||
- run: npm run lint --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run lint
|
||||
working-directory: js
|
||||
|
||||
- run: npm run test --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run test
|
||||
working-directory: js
|
||||
|
||||
- run: npm run build --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run build
|
||||
working-directory: js
|
||||
|
||||
- run: npm run cy:check-types --workspace=${{ env.WORKSPACE }}
|
||||
- run: pnpm --filter=${{ env.WORKSPACE }} run cy:check-types
|
||||
working-directory: js
|
||||
|
||||
admin-ui-e2e:
|
||||
|
@ -202,12 +202,12 @@ jobs:
|
|||
with:
|
||||
chrome-version: stable
|
||||
|
||||
- uses: ./.github/actions/npm-setup
|
||||
- uses: ./.github/actions/pnpm-setup
|
||||
with:
|
||||
working-directory: js
|
||||
|
||||
- name: Compile Admin Client
|
||||
run: npm run build --workspace=@keycloak/keycloak-admin-client
|
||||
run: pnpm --filter=@keycloak/keycloak-admin-client run build
|
||||
working-directory: js
|
||||
|
||||
- name: Download Keycloak server
|
||||
|
@ -224,7 +224,7 @@ jobs:
|
|||
KEYCLOAK_ADMIN_PASSWORD: admin
|
||||
|
||||
- name: Start LDAP server
|
||||
run: npm run cy:ldap-server --workspace=${{ env.WORKSPACE }} &
|
||||
run: pnpm --filter=${{ env.WORKSPACE }} run cy:ldap-server &
|
||||
working-directory: js
|
||||
|
||||
- name: Run Cypress
|
||||
|
|
|
@ -50,31 +50,33 @@
|
|||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>install-node-and-npm</goal>
|
||||
<goal>install-node-and-pnpm</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm-ci</id>
|
||||
<id>pnpm-install</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>ci --ignore-scripts</arguments>
|
||||
<arguments>install --frozen-lockfile --ignore-scripts</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm-build</id>
|
||||
<id>run-build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>run build --workspace=keycloak-js</arguments>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<nodeVersion>${node.version}</nodeVersion>
|
||||
<workingDirectory>${js.projectDir}</workingDirectory>
|
||||
<pnpmVersion>${pnpm.version}</pnpmVersion>
|
||||
<installDirectory>${js.projectDir}</installDirectory>
|
||||
<workingDirectory>${js.projectDir}/libs/keycloak-js</workingDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
|
|
@ -2,13 +2,15 @@
|
|||
|
||||
## Package managers
|
||||
|
||||
The default package manager for the Keycloak UI projects is NPM. There are several reasons why NPM is used over other package managers (such as Yarn and PNPM):
|
||||
The default package manager for the Keycloak UI projects is PNPM, we recommend installing it with [Corepack](https://nodejs.org/api/corepack.html) for the best compatibility.
|
||||
|
||||
- It comes included with NodeJS by default, meaning it does not have to be installed manually.
|
||||
- Most contributors are familiar with the NPM ecosystem and tooling.
|
||||
- We do not use any of the 'advanced' features of other package managers (such as [Yarn's PNP](https://yarnpkg.com/features/pnp)).
|
||||
There are several reasons why PNPM is used over other package managers (such as NPM and Yarn):
|
||||
|
||||
If you submit a pull request that changes the dependencies, make sure that you also update the `package-lock.json` as well.
|
||||
- The reasons mentioned in [pnpm vs npm](https://pnpm.io/pnpm-vs-npm), mostly it avoids [silly bugs](https://www.kochan.io/nodejs/pnpms-strictness-helps-to-avoid-silly-bugs.html).
|
||||
- Unlike [`npm ci`](https://docs.npmjs.com/cli/v9/commands/npm-ci) it preserves the `node_modules` directory between installs, allowing for faster install times (especially in Maven builds).
|
||||
- Unlike NPM it does not require workspace dependencies to be [explicitly versioned](https://pnpm.io/workspaces#publishing-workspace-packages), simplifying release versioning.
|
||||
|
||||
If you submit a pull request that changes the dependencies, make sure that you also update the `pnpm-lock.yaml` as well.
|
||||
|
||||
## Typescript
|
||||
|
|
@ -11,16 +11,17 @@
|
|||
"@patternfly/react-core": "^4.276.8",
|
||||
"@patternfly/react-icons": "^4.93.6",
|
||||
"i18next": "^22.4.15",
|
||||
"@patternfly/react-table": "^4.113.0",
|
||||
"i18next-http-backend": "^2.2.0",
|
||||
"keycloak-js": "999.0.0-SNAPSHOT",
|
||||
"keycloak-masthead": "999.0.0-SNAPSHOT",
|
||||
"keycloak-js": "workspace:*",
|
||||
"keycloak-masthead": "workspace:*",
|
||||
"lodash-es": "^4.17.21",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-hook-form": "^7.43.9",
|
||||
"react-i18next": "^12.2.2",
|
||||
"react-router-dom": "6.11.1",
|
||||
"ui-shared": "999.0.0-SNAPSHOT"
|
||||
"ui-shared": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/lodash-es": "^4.17.7",
|
||||
|
|
|
@ -34,17 +34,17 @@
|
|||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>npm-build</id>
|
||||
<id>run-build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>run build --workspace=account-ui</arguments>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<workingDirectory>../..</workingDirectory>
|
||||
<installDirectory>../..</installDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
|
|
|
@ -27,7 +27,7 @@ Now that the Keycloak sever is running it's time to run the development server f
|
|||
To start the development server run the following command:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
pnpm run dev
|
||||
```
|
||||
|
||||
Once the process of optimization is done your browser will automatically open your local host on port `8080`. From here you will be redirected to the Keycloak server to authenticate, which you can do with the default username and password (`admin`).
|
||||
|
@ -43,7 +43,7 @@ If you want to build the application using Maven and produce a JAR that can be i
|
|||
Every time you create a commit it should be automatically linted and formatted for you. It is also possible to trigger the linting manually:
|
||||
|
||||
```bash
|
||||
npm run lint
|
||||
pnpm run lint
|
||||
```
|
||||
|
||||
## Integration testing with Cypress
|
||||
|
@ -59,13 +59,13 @@ Ensure the Keycloak and development server are running as [outlined previously](
|
|||
You can run the tests using the interactive graphical user interface using the following command:
|
||||
|
||||
```bash
|
||||
npm run cy:open
|
||||
pnpm run cy:open
|
||||
```
|
||||
|
||||
Alternatively the tests can also run headless as follows:
|
||||
|
||||
```
|
||||
npm run cy:run
|
||||
pnpm run cy:run
|
||||
```
|
||||
|
||||
For more information about the Cypress command-line interface consult [the documentation](https://docs.cypress.io/guides/guides/command-line).
|
||||
|
|
|
@ -60,29 +60,33 @@
|
|||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@keycloak/keycloak-admin-client": "999.0.0-SNAPSHOT",
|
||||
"@keycloak/keycloak-admin-client": "workspace:*",
|
||||
"@patternfly/patternfly": "^4.224.2",
|
||||
"@patternfly/react-code-editor": "^4.82.115",
|
||||
"@patternfly/react-core": "^4.276.8",
|
||||
"@patternfly/react-icons": "^4.93.6",
|
||||
"@patternfly/react-styles": "^4.92.6",
|
||||
"@patternfly/react-table": "^4.113.0",
|
||||
"admin-ui": "file:",
|
||||
"dagre": "^0.8.5",
|
||||
"file-saver": "^2.0.5",
|
||||
"file-selector": "^0.6.0",
|
||||
"flat": "^5.0.2",
|
||||
"i18next": "^22.4.15",
|
||||
"i18next-http-backend": "^2.2.0",
|
||||
"keycloak-js": "999.0.0-SNAPSHOT",
|
||||
"keycloak-js": "workspace:*",
|
||||
"lodash-es": "^4.17.21",
|
||||
"monaco-editor": "^0.34.1",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-dropzone": "^14.2.3",
|
||||
"react-error-boundary": "^3.1.4",
|
||||
"react-hook-form": "^7.43.9",
|
||||
"react-i18next": "^12.2.2",
|
||||
"react-router": "^6.11.1",
|
||||
"react-router-dom": "6.11.1",
|
||||
"reactflow": "^11.7.0",
|
||||
"ui-shared": "999.0.0-SNAPSHOT",
|
||||
"ui-shared": "workspace:*",
|
||||
"use-react-router-breadcrumbs": "^4.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -78,17 +78,17 @@
|
|||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>npm-build</id>
|
||||
<id>run-build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>run build --workspace=admin-ui</arguments>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<workingDirectory>../..</workingDirectory>
|
||||
<installDirectory>../..</installDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
|
|
|
@ -4,16 +4,16 @@ This app allows you to run a local development version of the Keycloak server.
|
|||
|
||||
### Running the Keycloak server
|
||||
|
||||
First, ensure that all dependencies are installed locally using NPM by running:
|
||||
First, ensure that all dependencies are installed locally using PNPM by running:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
pnpm install
|
||||
```
|
||||
|
||||
After the dependencies are installed we can start the Keycloak server by running the following command:
|
||||
|
||||
```bash
|
||||
npm run start
|
||||
pnpm run start
|
||||
```
|
||||
|
||||
This will download the [Nightly version](https://github.com/keycloak/keycloak/releases/tag/nightly) of the Keycloak server and run it locally on port `8180`. If a previously downloaded version was found in the `server/` directory then that one will be used instead. If you want to download the latest Nightly version you can remove the server directory before running the command to start the server.
|
||||
|
@ -23,7 +23,7 @@ In order for the development version of the Admin UI to work you will have to im
|
|||
Wait for the Keycloak server to be up and running and run the following command in a new terminal:
|
||||
|
||||
```bash
|
||||
npm run import-client
|
||||
pnpm run import-client
|
||||
```
|
||||
|
||||
You'll only have to run this command once, unless you remove the server directory or Keycloak server data.
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@keycloak/keycloak-admin-client": "workspace:*",
|
||||
"@octokit/rest": "^19.0.7",
|
||||
"@types/gunzip-maybe": "^1.4.0",
|
||||
"@types/tar-fs": "^2.0.1",
|
||||
|
|
|
@ -107,20 +107,20 @@ setInterval(() => kcAdminClient.auth(credentials), 58 * 1000); // 58 seconds
|
|||
To build the source do a build:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
pnpm run build
|
||||
```
|
||||
|
||||
Start the Keycloak server:
|
||||
|
||||
```bash
|
||||
npm run server:start
|
||||
pnpm run server:start
|
||||
```
|
||||
|
||||
If you started your container manually make sure there is an admin user named 'admin' with password 'admin'.
|
||||
Then start the tests with:
|
||||
|
||||
```bash
|
||||
npm test
|
||||
pnpm test
|
||||
```
|
||||
|
||||
## Supported APIs
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"build": "wireit",
|
||||
"lint": "wireit",
|
||||
"test": "wireit",
|
||||
"prepublishOnly": "npm run build"
|
||||
"prepublishOnly": "pnpm run build"
|
||||
},
|
||||
"wireit": {
|
||||
"build": {
|
||||
|
|
|
@ -47,27 +47,27 @@
|
|||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>npm-prepublish</id>
|
||||
<id>run-build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>run prepublishOnly --workspace=@keycloak/keycloak-admin-client</arguments>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm-pack</id>
|
||||
<id>pack</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>pack --workspace=@keycloak/keycloak-admin-client --pack-destination=libs/keycloak-admin-client/target</arguments>
|
||||
<arguments>pack --pack-destination=target</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<workingDirectory>../..</workingDirectory>
|
||||
<installDirectory>../..</installDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
],
|
||||
"scripts": {
|
||||
"build": "wireit",
|
||||
"prepublishOnly": "npm run build"
|
||||
"prepublishOnly": "pnpm run build"
|
||||
},
|
||||
"wireit": {
|
||||
"build": {
|
||||
|
|
|
@ -47,27 +47,27 @@
|
|||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>npm-prepublish</id>
|
||||
<id>run-build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>run prepublishOnly --workspace=keycloak-js</arguments>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm-pack</id>
|
||||
<id>pack</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>pack --workspace=keycloak-js --pack-destination=libs/keycloak-js/target</arguments>
|
||||
<arguments>pack --pack-destination=target</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<workingDirectory>../..</workingDirectory>
|
||||
<installDirectory>../..</installDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"name": "keycloak-masthead",
|
||||
"version": "999.0.0-SNAPSHOT",
|
||||
"type": "module",
|
||||
"main": "./dist/keycloak-masthead.js",
|
||||
"types": "./dist/keycloak-masthead.d.ts",
|
||||
|
@ -42,7 +41,8 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@patternfly/react-core": "^4.276.8",
|
||||
"keycloak-js": "999.0.0-SNAPSHOT",
|
||||
"@patternfly/react-styles": "^4.11.8",
|
||||
"keycloak-js": "workspace:*",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0"
|
||||
},
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"name": "ui-shared",
|
||||
"version": "999.0.0-SNAPSHOT",
|
||||
"type": "module",
|
||||
"main": "./dist/ui-shared.js",
|
||||
"types": "./dist/ui-shared.d.ts",
|
||||
|
@ -36,9 +35,10 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@patternfly/react-core": "^4.276.8",
|
||||
"react-hook-form": "7.43.9",
|
||||
"@patternfly/react-icons": "^4.93.6",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0"
|
||||
"react-dom": "^18.2.0",
|
||||
"react-hook-form": "7.43.9"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "^18.2.4",
|
||||
|
@ -47,6 +47,7 @@
|
|||
"rollup-plugin-peer-deps-external": "^2.2.4",
|
||||
"vite": "^4.3.4",
|
||||
"vite-plugin-checker": "^0.6.0",
|
||||
"vite-plugin-dts": "^2.3.0"
|
||||
"vite-plugin-dts": "^2.3.0",
|
||||
"vitest": "^0.31.0"
|
||||
}
|
||||
}
|
||||
|
|
11141
js/package-lock.json
generated
11141
js/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,14 +1,5 @@
|
|||
{
|
||||
"name": "root",
|
||||
"workspaces": [
|
||||
"libs/ui-shared",
|
||||
"libs/keycloak-admin-client",
|
||||
"libs/keycloak-js",
|
||||
"libs/keycloak-masthead",
|
||||
"apps/account-ui",
|
||||
"apps/admin-ui",
|
||||
"apps/keycloak-server"
|
||||
],
|
||||
"scripts": {
|
||||
"prepare": "cd .. && husky install js/.husky"
|
||||
},
|
||||
|
@ -28,9 +19,11 @@
|
|||
"husky": "^8.0.3",
|
||||
"lint-staged": "^13.2.2",
|
||||
"prettier": "^2.8.8",
|
||||
"tslib": "^2.5.0",
|
||||
"typescript": "^5.0.4",
|
||||
"wireit": "^0.9.5"
|
||||
},
|
||||
"packageManager": "pnpm@8.4.0",
|
||||
"lint-staged": {
|
||||
"*.{js,jsx,mjs,ts,tsx}": "eslint --cache --fix"
|
||||
}
|
||||
|
|
7158
js/pnpm-lock.yaml
Normal file
7158
js/pnpm-lock.yaml
Normal file
File diff suppressed because it is too large
Load diff
3
js/pnpm-workspace.yaml
Normal file
3
js/pnpm-workspace.yaml
Normal file
|
@ -0,0 +1,3 @@
|
|||
packages:
|
||||
- 'apps/*'
|
||||
- 'libs/**'
|
11
js/pom.xml
11
js/pom.xml
|
@ -13,7 +13,7 @@
|
|||
<packaging>pom</packaging>
|
||||
|
||||
<name>Keycloak JavaScript Parent</name>
|
||||
<description>Parent of all JavaScript related code, sets up Node.js and NPM and installs dependencies for all projects in the workspace.</description>
|
||||
<description>Parent of all JavaScript related code, sets up Node.js and PNPM and installs dependencies for all projects in the workspace.</description>
|
||||
|
||||
<modules>
|
||||
<module>apps/account-ui</module>
|
||||
|
@ -30,21 +30,22 @@
|
|||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>install-node-and-npm</goal>
|
||||
<goal>install-node-and-pnpm</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm-ci</id>
|
||||
<id>pnpm-install</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
<goal>pnpm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>ci --ignore-scripts</arguments>
|
||||
<arguments>install --frozen-lockfile --ignore-scripts</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<nodeVersion>${node.version}</nodeVersion>
|
||||
<pnpmVersion>${pnpm.version}</pnpmVersion>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
|
1
pom.xml
1
pom.xml
|
@ -239,6 +239,7 @@
|
|||
|
||||
<!-- Frontend -->
|
||||
<node.version>v18.16.0</node.version>
|
||||
<pnpm.version>8.4.0</pnpm.version>
|
||||
</properties>
|
||||
|
||||
<url>http://keycloak.org</url>
|
||||
|
|
|
@ -8,13 +8,6 @@ mvn versions:set -DnewVersion=$NEW_VERSION -DgenerateBackupPoms=false -DgroupId=
|
|||
# Docker
|
||||
sed -i "s/ENV KEYCLOAK_VERSION .*/ENV KEYCLOAK_VERSION $NEW_VERSION/" quarkus/container/Dockerfile
|
||||
|
||||
# NPM
|
||||
cd js
|
||||
npm --workspace=admin-ui --workspace=account-ui --workspace=keycloak-masthead pkg set "dependencies.keycloak-js=$NEW_VERSION"
|
||||
npm --workspace=admin-ui pkg set "dependencies.@keycloak/keycloak-admin-client=$NEW_VERSION"
|
||||
npm --workspace=keycloak-js --workspace=@keycloak/keycloak-admin-client version $NEW_VERSION --allow-same-version --no-git-tag-version
|
||||
cd -
|
||||
|
||||
# Documentation
|
||||
cd docs/documentation
|
||||
SHORT_VERSION=`echo $NEW_VERSION | awk -F '.' '{ print $1"."$2 }'`
|
||||
|
@ -24,3 +17,8 @@ sed -i 's/:project_versionNpm: .*/:project_versionNpm: '$NEW_VERSION'/' topics/t
|
|||
sed -i 's/:project_versionDoc: .*/:project_versionDoc: '$SHORT_VERSION'/' topics/templates/document-attributes.adoc
|
||||
cd -
|
||||
|
||||
# Keycloak JS
|
||||
echo "$(jq '. += {"version": "'$NEW_VERSION'"}' js/libs/keycloak-js/package.json)" > js/libs/keycloak-js/package.json
|
||||
|
||||
# Keycloak Admin Client
|
||||
echo "$(jq '. += {"version": "'$NEW_VERSION'"}' js/libs/keycloak-admin-client/package.json)" > js/libs/keycloak-admin-client/package.json
|
||||
|
|
Loading…
Reference in a new issue