Compare commits
34 Commits
Author | SHA1 | Date | |
---|---|---|---|
3cfc7d7fa9 | |||
b5d9055fcf | |||
63d644d95f | |||
e16192b416 | |||
505e018448 | |||
5ced0e2809 | |||
0e1d919f7e | |||
a009db998e | |||
d6c6bd933b | |||
859cc03f35 | |||
1a3b8ae3b8 | |||
863a08abf3 | |||
fd9c6afa5e | |||
8f3797407b | |||
7eedb23285 | |||
e4a2c95dd8 | |||
9429228b71 | |||
aafbc60f12 | |||
7170611791 | |||
59e57f3dd5 | |||
fd0d25b081 | |||
fa529c911a | |||
dc997b7ef4 | |||
0168d32f96 | |||
d6fc0c779c | |||
08be36edfa | |||
990d287953 | |||
a629d4ab45 | |||
78b48af886 | |||
72d267853c | |||
66a218c2ec | |||
d4f3ec2245 | |||
7bdc19bf4b | |||
103ef788fb |
164
.github/workflows/ci.yaml
vendored
164
.github/workflows/ci.yaml
vendored
@ -2,14 +2,14 @@ name: ci
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- develop
|
- main
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- develop
|
- main
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
test_node:
|
test:
|
||||||
runs-on: macos-10.15
|
runs-on: macos-10.15
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@ -17,72 +17,120 @@ jobs:
|
|||||||
name: Test with Node v${{ matrix.node }}
|
name: Test with Node v${{ matrix.node }}
|
||||||
steps:
|
steps:
|
||||||
- name: Tell if project is using npm or yarn
|
- name: Tell if project is using npm or yarn
|
||||||
id: _1
|
id: step1
|
||||||
uses: garronej/github_actions_toolkit@v1.11
|
uses: garronej/github_actions_toolkit@v2.2
|
||||||
with:
|
with:
|
||||||
action_name: tell_if_project_uses_npm_or_yarn
|
action_name: tell_if_project_uses_npm_or_yarn
|
||||||
owner: ${{github.repository_owner}}
|
- uses: actions/checkout@v2.3.4
|
||||||
repo: ${{github.event.repository.name}}
|
- uses: actions/setup-node@v2.1.3
|
||||||
branch: ${{github.ref}}
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node }}
|
node-version: ${{ matrix.node }}
|
||||||
- if: steps._1.outputs.npm_or_yarn == 'yarn'
|
- if: steps.step1.outputs.npm_or_yarn == 'yarn'
|
||||||
run: |
|
run: |
|
||||||
yarn install --frozen-lockfile
|
yarn install --frozen-lockfile
|
||||||
yarn run build
|
yarn build
|
||||||
yarn run test
|
yarn test
|
||||||
- if: steps._1.outputs.npm_or_yarn == 'npm'
|
- if: steps.step1.outputs.npm_or_yarn == 'npm'
|
||||||
run: |
|
run: |
|
||||||
npm ci
|
npm ci
|
||||||
npm run build
|
npm run build
|
||||||
npm run test
|
npm test
|
||||||
trigger_publish:
|
check_if_version_upgraded:
|
||||||
name: Trigger publish.yaml workflow if package.json version updated ( and secrets.PAT is set ).
|
name: Check if version upgrade
|
||||||
|
if: github.event_name == 'push'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
needs: test
|
||||||
PAT: ${{secrets.PAT}}
|
outputs:
|
||||||
if: github.event_name == 'push' && github.event.head_commit.author.name != 'ts_ci'
|
from_version: ${{ steps.step1.outputs.from_version }}
|
||||||
needs: test_node
|
to_version: ${{ steps.step1.outputs.to_version }}
|
||||||
|
is_upgraded_version: ${{steps.step1.outputs.is_upgraded_version }}
|
||||||
steps:
|
steps:
|
||||||
|
- uses: garronej/github_actions_toolkit@v2.2
|
||||||
- name: Get version on latest
|
id: step1
|
||||||
id: v_latest
|
|
||||||
uses: garronej/github_actions_toolkit@v1.11
|
|
||||||
with:
|
with:
|
||||||
action_name: get_package_json_version
|
action_name: is_package_json_version_upgraded
|
||||||
owner: ${{github.repository_owner}}
|
|
||||||
repo: ${{github.event.repository.name}}
|
|
||||||
branch: latest
|
|
||||||
compare_to_version: '0.0.0'
|
|
||||||
|
|
||||||
- name: Get version on develop
|
update_changelog:
|
||||||
id: v_develop
|
runs-on: ubuntu-latest
|
||||||
uses: garronej/github_actions_toolkit@v1.11
|
needs: check_if_version_upgraded
|
||||||
with:
|
if: needs.check_if_version_upgraded.outputs.is_upgraded_version == 'true'
|
||||||
action_name: get_package_json_version
|
steps:
|
||||||
owner: ${{github.repository_owner}}
|
- uses: garronej/github_actions_toolkit@v2.2
|
||||||
repo: ${{github.event.repository.name}}
|
|
||||||
branch: ${{ github.sha }}
|
|
||||||
compare_to_version: ${{steps.v_latest.outputs.version || '0.0.0'}}
|
|
||||||
|
|
||||||
- name: 'Trigger the ''publish'' workflow'
|
|
||||||
if: ${{ !!env.PAT && steps.v_develop.outputs.compare_result == '1' }}
|
|
||||||
uses: garronej/github_actions_toolkit@v1.11
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.PAT }}
|
|
||||||
with:
|
with:
|
||||||
action_name: dispatch_event
|
action_name: update_changelog
|
||||||
owner: ${{github.repository_owner}}
|
branch: ${{ github.ref }}
|
||||||
repo: ${{github.event.repository.name}}
|
commit_author_email: ts_ci@github.com
|
||||||
event_type: publish
|
|
||||||
client_payload_json: |
|
create_github_release:
|
||||||
${{
|
runs-on: ubuntu-latest
|
||||||
format(
|
needs:
|
||||||
'{{"from_version":"{0}","to_version":"{1}","repo":"{2}"}}',
|
- update_changelog
|
||||||
steps.v_latest.outputs.version,
|
- check_if_version_upgraded
|
||||||
steps.v_develop.outputs.version,
|
steps:
|
||||||
github.event.repository.name
|
- uses: actions/checkout@v2
|
||||||
)
|
with:
|
||||||
}}
|
ref: ${{ github.ref }}
|
||||||
|
- name: Build GitHub release body
|
||||||
|
id: step1
|
||||||
|
run: |
|
||||||
|
if [ "$FROM_VERSION" = "0.0.0" ]; then
|
||||||
|
echo "::set-output name=body::🚀"
|
||||||
|
else
|
||||||
|
echo "::set-output name=body::📋 [CHANGELOG](https://github.com/$GITHUB_REPOSITORY/blob/v$TO_VERSION/CHANGELOG.md)"
|
||||||
|
fi
|
||||||
|
env:
|
||||||
|
FROM_VERSION: ${{ needs.check_if_version_upgraded.outputs.from_version }}
|
||||||
|
TO_VERSION: ${{ needs.check_if_version_upgraded.outputs.to_version }}
|
||||||
|
- uses: garronej/action-gh-release@v0.2.0
|
||||||
|
with:
|
||||||
|
name: Release v${{ needs.check_if_version_upgraded.outputs.to_version }}
|
||||||
|
tag_name: v${{ needs.check_if_version_upgraded.outputs.to_version }}
|
||||||
|
target_commitish: ${{ github.ref }}
|
||||||
|
body: ${{ steps.step1.outputs.body }}
|
||||||
|
draft: false
|
||||||
|
prerelease: false
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
publish_on_npm:
|
||||||
|
runs-on: macos-10.15
|
||||||
|
needs:
|
||||||
|
- update_changelog
|
||||||
|
- check_if_version_upgraded
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2.3.4
|
||||||
|
with:
|
||||||
|
ref: ${{ github.ref }}
|
||||||
|
- uses: actions/setup-node@v2.1.3
|
||||||
|
with:
|
||||||
|
node-version: '15'
|
||||||
|
- run: |
|
||||||
|
PACKAGE_MANAGER=npm
|
||||||
|
if [ -f "./yarn.lock" ]; then
|
||||||
|
PACKAGE_MANAGER=yarn
|
||||||
|
fi
|
||||||
|
if [ "$PACKAGE_MANAGER" = "yarn" ]; then
|
||||||
|
yarn install --frozen-lockfile
|
||||||
|
else
|
||||||
|
npm ci
|
||||||
|
fi
|
||||||
|
$PACKAGE_MANAGER run build
|
||||||
|
- run: npx -y -p denoify@0.6.5 denoify_enable_short_npm_import_path
|
||||||
|
env:
|
||||||
|
DRY_RUN: "0"
|
||||||
|
- name: Publishing on NPM
|
||||||
|
run: |
|
||||||
|
if [ "$(npm show . version)" = "$VERSION" ]; then
|
||||||
|
echo "This version is already published"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if [ "$NPM_TOKEN" = "" ]; then
|
||||||
|
echo "Can't publish on NPM, You must first create a secret called NPM_TOKEN that contains your NPM auth token. https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets"
|
||||||
|
false
|
||||||
|
fi
|
||||||
|
echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > .npmrc
|
||||||
|
npm publish
|
||||||
|
rm .npmrc
|
||||||
|
env:
|
||||||
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
VERSION: ${{ needs.check_if_version_upgraded.outputs.to_version }}
|
116
.github/workflows/publish.yaml
vendored
116
.github/workflows/publish.yaml
vendored
@ -1,116 +0,0 @@
|
|||||||
on:
|
|
||||||
repository_dispatch:
|
|
||||||
types: publish
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update_changelog_and_sync_package_lock_version:
|
|
||||||
name: Update CHANGELOG.md and make sure package.json and package-lock.json versions matches.
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Synchronize package.json and package-lock.json version if needed.
|
|
||||||
uses: garronej/github_actions_toolkit@v1.11
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.PAT }}
|
|
||||||
with:
|
|
||||||
action_name: sync_package_and_package_lock_version
|
|
||||||
owner: ${{github.repository_owner}}
|
|
||||||
repo: ${{github.event.client_payload.repo}}
|
|
||||||
branch: develop
|
|
||||||
commit_author_email: ts_ci@github.com
|
|
||||||
- name: Update CHANGELOG.md
|
|
||||||
if: ${{ !!github.event.client_payload.from_version }}
|
|
||||||
uses: garronej/github_actions_toolkit@v1.11
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.PAT }}
|
|
||||||
with:
|
|
||||||
action_name: update_changelog
|
|
||||||
owner: ${{github.repository_owner}}
|
|
||||||
repo: ${{github.event.client_payload.repo}}
|
|
||||||
branch_behind: latest
|
|
||||||
branch_ahead: develop
|
|
||||||
commit_author_email: ts_ci@github.com
|
|
||||||
exclude_commit_from_author_names_json: '["ts_ci"]'
|
|
||||||
|
|
||||||
publish:
|
|
||||||
runs-on: macos-10.15
|
|
||||||
needs: update_changelog_and_sync_package_lock_version
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
ref: develop
|
|
||||||
- name: Remove .github directory, useless on 'latest' branch
|
|
||||||
run: rm -r .github
|
|
||||||
- name: Remove branch 'latest'
|
|
||||||
continue-on-error: true
|
|
||||||
run: |
|
|
||||||
git branch -d latest || true
|
|
||||||
git push origin :latest
|
|
||||||
- name: Create the new 'latest' branch
|
|
||||||
run: |
|
|
||||||
git branch latest
|
|
||||||
git checkout latest
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
- run: |
|
|
||||||
if [ -f "./yarn.lock" ]; then
|
|
||||||
yarn install --frozen-lockfile
|
|
||||||
else
|
|
||||||
npm ci
|
|
||||||
fi
|
|
||||||
- run: |
|
|
||||||
PACKAGE_MANAGER=npm
|
|
||||||
if [ -f "./yarn.lock" ]; then
|
|
||||||
PACKAGE_MANAGER=yarn
|
|
||||||
fi
|
|
||||||
$PACKAGE_MANAGER run enable_short_import_path
|
|
||||||
env:
|
|
||||||
DRY_RUN: "0"
|
|
||||||
- name: (DEBUG) Show how the files have been moved to enable short import
|
|
||||||
run: ls -lR
|
|
||||||
- name: Publishing on NPM
|
|
||||||
run: |
|
|
||||||
if [ "$(npm show . version)" = "$VERSION" ]; then
|
|
||||||
echo "This version is already published"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
if [ "$NPM_TOKEN" = "" ]; then
|
|
||||||
echo "Can't publish on NPM, You must first create a secret called NPM_TOKEN that contains your NPM auth token. https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets"
|
|
||||||
false
|
|
||||||
fi
|
|
||||||
echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > .npmrc
|
|
||||||
npm publish
|
|
||||||
rm .npmrc
|
|
||||||
env:
|
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
||||||
VERSION: ${{ github.event.client_payload.to_version }}
|
|
||||||
- name: Commit changes
|
|
||||||
run: |
|
|
||||||
git config --local user.email "ts_ci@github.com"
|
|
||||||
git config --local user.name "ts_ci"
|
|
||||||
git add -A
|
|
||||||
git commit -am "Enabling shorter import paths [automatic]"
|
|
||||||
- run: git push origin latest
|
|
||||||
- name: Release body
|
|
||||||
id: id_rb
|
|
||||||
run: |
|
|
||||||
if [ "$FROM_VERSION" = "" ]; then
|
|
||||||
echo "::set-output name=body::🚀"
|
|
||||||
else
|
|
||||||
echo "::set-output name=body::📋 [CHANGELOG](https://github.com/$OWNER/$REPO/blob/$REF/CHANGELOG.md)"
|
|
||||||
fi
|
|
||||||
env:
|
|
||||||
FROM_VERSION: ${{ github.event.client_payload.from_version }}
|
|
||||||
OWNER: ${{github.repository_owner}}
|
|
||||||
REPO: ${{github.event.client_payload.repo}}
|
|
||||||
REF: v${{github.event.client_payload.to_version}}
|
|
||||||
- name: Create Release
|
|
||||||
uses: garronej/create-release@master
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.PAT }}
|
|
||||||
with:
|
|
||||||
tag_name: v${{ github.event.client_payload.to_version }}
|
|
||||||
release_name: Release v${{ github.event.client_payload.to_version }}
|
|
||||||
branch: latest
|
|
||||||
draft: false
|
|
||||||
prerelease: false
|
|
||||||
body: ${{ steps.id_rb.outputs.body }}
|
|
38
CHANGELOG.md
38
CHANGELOG.md
@ -1,3 +1,41 @@
|
|||||||
|
### **0.2.9** (2021-03-19)
|
||||||
|
|
||||||
|
- Update deps and CI workflow
|
||||||
|
|
||||||
|
### **0.2.8** (2021-03-19)
|
||||||
|
|
||||||
|
- Bugfix: keycloak_build that grow and grow in size
|
||||||
|
- Add disclaimer about maitainment strategy
|
||||||
|
- Add a note for tested version support
|
||||||
|
|
||||||
|
### **0.2.7** (2021-03-13)
|
||||||
|
|
||||||
|
- Bump version
|
||||||
|
- Update README.md
|
||||||
|
- Update README.md
|
||||||
|
|
||||||
|
### **0.2.6** (2021-03-10)
|
||||||
|
|
||||||
|
- Fix generated gitignore
|
||||||
|
|
||||||
|
### **0.2.5** (2021-03-10)
|
||||||
|
|
||||||
|
- Fix generated .gitignore
|
||||||
|
|
||||||
|
### **0.2.4** (2021-03-10)
|
||||||
|
|
||||||
|
- Update README.md
|
||||||
|
|
||||||
|
### **0.2.3** (2021-03-09)
|
||||||
|
|
||||||
|
- fix gitignore generation
|
||||||
|
|
||||||
|
### **0.2.2** (2021-03-08)
|
||||||
|
|
||||||
|
- Add table of content
|
||||||
|
- Update README.md
|
||||||
|
- Update README.md
|
||||||
|
|
||||||
## **0.2.1** (2021-03-08)
|
## **0.2.1** (2021-03-08)
|
||||||
|
|
||||||
- Update ci.yaml
|
- Update ci.yaml
|
||||||
|
42
README.md
42
README.md
@ -11,9 +11,8 @@
|
|||||||
<img src="https://img.shields.io/npm/l/keycloakify">
|
<img src="https://img.shields.io/npm/l/keycloakify">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<i>Ultimately this build tool Generates a Keycloak theme</i>
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
<i>Ultimately this build tool Generates a Keycloak theme</i>
|
||||||
<img src="https://user-images.githubusercontent.com/6702424/110260457-a1c3d380-7fac-11eb-853a-80459b65626b.png">
|
<img src="https://user-images.githubusercontent.com/6702424/110260457-a1c3d380-7fac-11eb-853a-80459b65626b.png">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -31,6 +30,30 @@ Wouldn't it be great if we could just design the login and register pages as if
|
|||||||
Here is `yarn add keycloakify` for you 🍸
|
Here is `yarn add keycloakify` for you 🍸
|
||||||
|
|
||||||
TODO: Insert video after.
|
TODO: Insert video after.
|
||||||
|
|
||||||
|
Tested with the following Keycloak versions:
|
||||||
|
- [11.0.3](https://hub.docker.com/layers/jboss/keycloak/11.0.3/images/sha256-4438f1e51c1369371cb807dffa526e1208086b3ebb9cab009830a178de949782?context=explore)
|
||||||
|
- [12.0.4](https://hub.docker.com/layers/jboss/keycloak/12.0.4/images/sha256-67e0c88e69bd0c7aef972c40bdeb558a974013a28b3668ca790ed63a04d70584?context=explore)
|
||||||
|
|
||||||
|
**Disclaimer**: This tool will be maintained to stay compatible with Keycloak v11 and up, however, the default pages you will get
|
||||||
|
(before you customize it) will always be the ones of the Keycloak v11.
|
||||||
|
|
||||||
|
- [Motivations](#motivations)
|
||||||
|
- [How to use](#how-to-use)
|
||||||
|
- [Setting up the build tool](#setting-up-the-build-tool)
|
||||||
|
- [Developing your login and register pages in your React app](#developing-your-login-and-register-pages-in-your-react-app)
|
||||||
|
- [Just changing the look](#just-changing-the-look)
|
||||||
|
- [Changing the look **and** feel](#changing-the-look-and-feel)
|
||||||
|
- [Hot reload](#hot-reload)
|
||||||
|
- [How to implement context persistance](#how-to-implement-context-persistance)
|
||||||
|
- [If your keycloak is a subdomain of your app.](#if-your-keycloak-is-a-subdomain-of-your-app)
|
||||||
|
- [Else](#else)
|
||||||
|
- [GitHub Actions](#github-actions)
|
||||||
|
- [REQUIREMENTS](#requirements)
|
||||||
|
- [API Reference](#api-reference)
|
||||||
|
- [The build tool](#the-build-tool)
|
||||||
|
- [The fronted lib ( imported into your react app )](#the-fronted-lib--imported-into-your-react-app-)
|
||||||
|
|
||||||
# How to use
|
# How to use
|
||||||
## Setting up the build tool
|
## Setting up the build tool
|
||||||
|
|
||||||
@ -45,11 +68,11 @@ Typically you will get:
|
|||||||
"keycloakify": "^0.0.10"
|
"keycloakify": "^0.0.10"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "react-scripts build && build-keycloak-theme"
|
"keycloak": "yarn build && build-keycloak-theme",
|
||||||
},
|
},
|
||||||
```
|
```
|
||||||
|
|
||||||
Then build your app with `yarn run build` or `npm run build`, you will be provided with instructions
|
Then run `yarn keycloak` or `npm run keycloak`, you will be provided with instructions
|
||||||
about how to load the theme into Keycloak.
|
about how to load the theme into Keycloak.
|
||||||
|
|
||||||
## Developing your login and register pages in your React app
|
## Developing your login and register pages in your React app
|
||||||
@ -126,6 +149,8 @@ reactDom.render(
|
|||||||
|
|
||||||
then `yarn start` ...
|
then `yarn start` ...
|
||||||
|
|
||||||
|
Checkout [this concrete example](https://github.com/garronej/keycloakify-demo-app/blob/main/src/index.tsx)
|
||||||
|
|
||||||
|
|
||||||
*NOTE: keycloak-react-theming was renamed keycloakify since this video was recorded*
|
*NOTE: keycloak-react-theming was renamed keycloakify since this video was recorded*
|
||||||
[](https://youtu.be/xTz0Rj7i2v8)
|
[](https://youtu.be/xTz0Rj7i2v8)
|
||||||
@ -142,13 +167,20 @@ E.g: Your app url is `my-app.com` and your keycloak url is `auth.my-app.com`.
|
|||||||
In this case there is a very straightforward approach and it is to use [`powerhooks/useGlobalState`](https://github.com/garronej/powerhooks).
|
In this case there is a very straightforward approach and it is to use [`powerhooks/useGlobalState`](https://github.com/garronej/powerhooks).
|
||||||
Instead of `{ "persistance": "localStorage" }` use `{ "persistance": "cookie" }`.
|
Instead of `{ "persistance": "localStorage" }` use `{ "persistance": "cookie" }`.
|
||||||
|
|
||||||
## Else
|
## Else
|
||||||
|
|
||||||
You will have to use URL parameters to passes states when you redirect to
|
You will have to use URL parameters to passes states when you redirect to
|
||||||
the login page.
|
the login page.
|
||||||
|
|
||||||
TOTO: Provide a clean way, as abstracted as possible, way to do that.
|
TOTO: Provide a clean way, as abstracted as possible, way to do that.
|
||||||
|
|
||||||
|
# GitHub Actions
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
[Here is a demo repo](https://github.com/garronej/keycloakify-demo-app) to show how to automate
|
||||||
|
the building and publishing of the theme (the .jar file).
|
||||||
|
|
||||||
# REQUIREMENTS
|
# REQUIREMENTS
|
||||||
|
|
||||||
This tools assumes you are bundling your app with Webpack (tested with 4.44.2) .
|
This tools assumes you are bundling your app with Webpack (tested with 4.44.2) .
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "keycloakify",
|
"name": "keycloakify",
|
||||||
"version": "0.2.1",
|
"version": "0.2.9",
|
||||||
"description": "Keycloak theme generator for Reacts app",
|
"description": "Keycloak theme generator for Reacts app",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -49,14 +49,14 @@
|
|||||||
"properties-parser": "^0.3.1",
|
"properties-parser": "^0.3.1",
|
||||||
"react": "^17.0.1",
|
"react": "^17.0.1",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"typescript": "^4.1.5"
|
"typescript": "^4.2.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cheerio": "^1.0.0-rc.5",
|
"cheerio": "^1.0.0-rc.5",
|
||||||
"evt": "2.0.0-beta.15",
|
"evt": "2.0.0-beta.15",
|
||||||
"minimal-polyfills": "^2.1.6",
|
"minimal-polyfills": "^2.1.6",
|
||||||
"path": "^0.12.7",
|
"path": "^0.12.7",
|
||||||
"powerhooks": "^0.0.20",
|
"powerhooks": "^0.0.27",
|
||||||
"scripting-tools": "^0.19.13",
|
"scripting-tools": "^0.19.13",
|
||||||
"tss-react": "^0.0.11"
|
"tss-react": "^0.0.11"
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import { downloadAndUnzip } from "../tools/downloadAndUnzip";
|
|||||||
import * as child_process from "child_process";
|
import * as child_process from "child_process";
|
||||||
import { ftlValuesGlobalName } from "./ftlValuesGlobalName";
|
import { ftlValuesGlobalName } from "./ftlValuesGlobalName";
|
||||||
import { resourcesCommonPath, resourcesPath, subDirOfPublicDirBasename } from "../../lib/kcContextMocks/urlResourcesPath";
|
import { resourcesCommonPath, resourcesPath, subDirOfPublicDirBasename } from "../../lib/kcContextMocks/urlResourcesPath";
|
||||||
|
import { isInside } from "../tools/isInside";
|
||||||
|
|
||||||
export function generateKeycloakThemeResources(
|
export function generateKeycloakThemeResources(
|
||||||
params: {
|
params: {
|
||||||
@ -32,6 +33,17 @@ export function generateKeycloakThemeResources(
|
|||||||
"srcDirPath": reactAppBuildDirPath,
|
"srcDirPath": reactAppBuildDirPath,
|
||||||
"transformSourceCode": ({ filePath, sourceCode }) => {
|
"transformSourceCode": ({ filePath, sourceCode }) => {
|
||||||
|
|
||||||
|
//NOTE: Prevent cycles, excludes the folder we generated for debug in public/
|
||||||
|
if (
|
||||||
|
isInside({
|
||||||
|
"dirPath": pathJoin(reactAppBuildDirPath, subDirOfPublicDirBasename),
|
||||||
|
filePath
|
||||||
|
})
|
||||||
|
) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (/\.css?$/i.test(filePath)) {
|
if (/\.css?$/i.test(filePath)) {
|
||||||
|
|
||||||
const { cssGlobalsToDefine, fixedCssCode } = replaceImportFromStaticInCssCode(
|
const { cssGlobalsToDefine, fixedCssCode } = replaceImportFromStaticInCssCode(
|
||||||
@ -91,23 +103,19 @@ export function generateKeycloakThemeResources(
|
|||||||
"destDirPath": tmpDirPath
|
"destDirPath": tmpDirPath
|
||||||
});
|
});
|
||||||
|
|
||||||
const themeResourcesDirPath= pathJoin(themeDirPath, "resources");
|
const themeResourcesDirPath = pathJoin(themeDirPath, "resources");
|
||||||
|
|
||||||
transformCodebase({
|
transformCodebase({
|
||||||
"srcDirPath": pathJoin(tmpDirPath, "keycloak", "login", "resources"),
|
"srcDirPath": pathJoin(tmpDirPath, "keycloak", "login", "resources"),
|
||||||
"destDirPath": themeResourcesDirPath
|
"destDirPath": themeResourcesDirPath
|
||||||
});
|
});
|
||||||
|
|
||||||
//const keycloakResourcesWithinPublicDirPath = pathJoin(reactAppBuildDirPath, "..", "public", "keycloak_static");
|
|
||||||
|
|
||||||
const reactAppPublicDirPath = pathJoin(reactAppBuildDirPath, "..", "public");
|
const reactAppPublicDirPath = pathJoin(reactAppBuildDirPath, "..", "public");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
transformCodebase({
|
transformCodebase({
|
||||||
"srcDirPath": themeResourcesDirPath,
|
"srcDirPath": themeResourcesDirPath,
|
||||||
"destDirPath": pathJoin(
|
"destDirPath": pathJoin(
|
||||||
reactAppPublicDirPath,
|
reactAppPublicDirPath,
|
||||||
resourcesPath
|
resourcesPath
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
@ -120,16 +128,9 @@ export function generateKeycloakThemeResources(
|
|||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
const keycloakResourcesWithinPublicDirPath =
|
const keycloakResourcesWithinPublicDirPath =
|
||||||
pathJoin(reactAppPublicDirPath, subDirOfPublicDirBasename);
|
pathJoin(reactAppPublicDirPath, subDirOfPublicDirBasename);
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
pathJoin(keycloakResourcesWithinPublicDirPath, ".gitignore"),
|
|
||||||
Buffer.from([
|
|
||||||
resourcesPath,
|
|
||||||
resourcesCommonPath
|
|
||||||
].join("\n"))
|
|
||||||
);
|
|
||||||
|
|
||||||
fs.writeFileSync(
|
fs.writeFileSync(
|
||||||
pathJoin(keycloakResourcesWithinPublicDirPath, "README.txt"),
|
pathJoin(keycloakResourcesWithinPublicDirPath, "README.txt"),
|
||||||
@ -139,6 +140,11 @@ export function generateKeycloakThemeResources(
|
|||||||
].join(" "))
|
].join(" "))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
fs.writeFileSync(
|
||||||
|
pathJoin(keycloakResourcesWithinPublicDirPath, ".gitignore"),
|
||||||
|
Buffer.from("*", "utf8")
|
||||||
|
);
|
||||||
|
|
||||||
child_process.execSync(`rm -r ${tmpDirPath}`);
|
child_process.execSync(`rm -r ${tmpDirPath}`);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
14
src/bin/tools/isInside.ts
Normal file
14
src/bin/tools/isInside.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import { relative as pathRelative } from "path";
|
||||||
|
|
||||||
|
export function isInside(
|
||||||
|
params: {
|
||||||
|
dirPath: string;
|
||||||
|
filePath: string;
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
|
||||||
|
const { dirPath, filePath } = params;
|
||||||
|
|
||||||
|
return !pathRelative(dirPath, filePath).startsWith("..");
|
||||||
|
|
||||||
|
}
|
107
yarn.lock
107
yarn.lock
@ -27,9 +27,9 @@
|
|||||||
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
|
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
|
||||||
|
|
||||||
"@babel/highlight@^7.12.13":
|
"@babel/highlight@^7.12.13":
|
||||||
version "7.13.8"
|
version "7.13.10"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481"
|
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"
|
||||||
integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw==
|
integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-validator-identifier" "^7.12.11"
|
"@babel/helper-validator-identifier" "^7.12.11"
|
||||||
chalk "^2.0.0"
|
chalk "^2.0.0"
|
||||||
@ -43,9 +43,9 @@
|
|||||||
"@babel/helper-plugin-utils" "^7.12.13"
|
"@babel/helper-plugin-utils" "^7.12.13"
|
||||||
|
|
||||||
"@babel/runtime@^7.7.2":
|
"@babel/runtime@^7.7.2":
|
||||||
version "7.13.9"
|
version "7.13.10"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.9.tgz#97dbe2116e2630c489f22e0656decd60aaa1fcee"
|
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
|
||||||
integrity sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==
|
integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==
|
||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime "^0.13.4"
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
@ -147,15 +147,16 @@
|
|||||||
"@octokit/types" "^6.0.3"
|
"@octokit/types" "^6.0.3"
|
||||||
|
|
||||||
"@octokit/core@^3.2.3":
|
"@octokit/core@^3.2.3":
|
||||||
version "3.2.5"
|
version "3.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.2.5.tgz#57becbd5fd789b0592b915840855f3a5f233d554"
|
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.3.1.tgz#c6bb6ba171ad84a5f430853a98892cfe8f93d8cd"
|
||||||
integrity sha512-+DCtPykGnvXKWWQI0E1XD+CCeWSBhB6kwItXqfFmNBlIlhczuDPbg+P6BtLnVBaRJDAjv+1mrUJuRsFSjktopg==
|
integrity sha512-Dc5NNQOYjgZU5S1goN6A/E500yXOfDUFRGQB8/2Tl16AcfvS3H9PudyOe3ZNE/MaVyHPIfC0htReHMJb1tMrvw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/auth-token" "^2.4.4"
|
"@octokit/auth-token" "^2.4.4"
|
||||||
"@octokit/graphql" "^4.5.8"
|
"@octokit/graphql" "^4.5.8"
|
||||||
"@octokit/request" "^5.4.12"
|
"@octokit/request" "^5.4.12"
|
||||||
|
"@octokit/request-error" "^2.0.5"
|
||||||
"@octokit/types" "^6.0.3"
|
"@octokit/types" "^6.0.3"
|
||||||
before-after-hook "^2.1.0"
|
before-after-hook "^2.2.0"
|
||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/endpoint@^6.0.1":
|
"@octokit/endpoint@^6.0.1":
|
||||||
@ -168,23 +169,23 @@
|
|||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/graphql@^4.5.8":
|
"@octokit/graphql@^4.5.8":
|
||||||
version "4.6.0"
|
version "4.6.1"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.0.tgz#f9abca55f82183964a33439d5264674c701c3327"
|
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.6.1.tgz#f975486a46c94b7dbe58a0ca751935edc7e32cc9"
|
||||||
integrity sha512-CJ6n7izLFXLvPZaWzCQDjU/RP+vHiZmWdOunaCS87v+2jxMsW9FB5ktfIxybRBxZjxuJGRnxk7xJecWTVxFUYQ==
|
integrity sha512-2lYlvf4YTDgZCTXTW4+OX+9WTLFtEUc6hGm4qM1nlZjzxj+arizM4aHWzBVBCxY9glh7GIs0WEuiSgbVzv8cmA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/request" "^5.3.0"
|
"@octokit/request" "^5.3.0"
|
||||||
"@octokit/types" "^6.0.3"
|
"@octokit/types" "^6.0.3"
|
||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/openapi-types@^5.3.1":
|
"@octokit/openapi-types@^5.3.2":
|
||||||
version "5.3.1"
|
version "5.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-5.3.1.tgz#a49d119a1b9e47b7a9f5133ab14be2d8afaa183d"
|
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-5.3.2.tgz#b8ac43c5c3d00aef61a34cf744e315110c78deb4"
|
||||||
integrity sha512-TvVk2QuIA0lQZcIMd6xbdGaGDVeNYIOa3l1ZVagAIk5K3t/WMYbcg4BISNDhzdVhm/TgQB26frAgd/GV81aHJA==
|
integrity sha512-NxF1yfYOUO92rCx3dwvA2onF30Vdlg7YUkMVXkeptqpzA3tRLplThhFleV/UKWFgh7rpKu1yYRbvNDUtzSopKA==
|
||||||
|
|
||||||
"@octokit/plugin-paginate-rest@^2.6.2":
|
"@octokit/plugin-paginate-rest@^2.6.2":
|
||||||
version "2.11.0"
|
version "2.13.3"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.11.0.tgz#3568c43896a3355f4a0bbb3a64f443b2abdc760d"
|
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.13.3.tgz#f0f1792230805108762d87906fb02d573b9e070a"
|
||||||
integrity sha512-7L9xQank2G3r1dGqrVPo1z62V5utbykOUzlmNHPz87Pww/JpZQ9KyG5CHtUzgmB4n5iDRKYNK/86A8D98HP0yA==
|
integrity sha512-46lptzM9lTeSmIBt/sVP/FLSTPGx6DCzAdSX3PfeJ3mTf4h9sGC26WpaQzMEq/Z44cOcmx8VsOhO+uEgE3cjYg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/types" "^6.11.0"
|
"@octokit/types" "^6.11.0"
|
||||||
|
|
||||||
@ -193,15 +194,15 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz#70a62be213e1edc04bb8897ee48c311482f9700d"
|
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.3.tgz#70a62be213e1edc04bb8897ee48c311482f9700d"
|
||||||
integrity sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ==
|
integrity sha512-4RFU4li238jMJAzLgAwkBAw+4Loile5haQMQr+uhFq27BmyJXcXSKvoQKqh0agsZEiUlW6iSv3FAgvmGkur7OQ==
|
||||||
|
|
||||||
"@octokit/plugin-rest-endpoint-methods@4.13.4":
|
"@octokit/plugin-rest-endpoint-methods@4.13.5":
|
||||||
version "4.13.4"
|
version "4.13.5"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.13.4.tgz#093b130d558760f6bc912c6f622ce502522410af"
|
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.13.5.tgz#ad76285b82fe05fbb4adf2774a9c887f3534a880"
|
||||||
integrity sha512-MGxptzVfiP8O+aydC/riheYzS/yJ9P16M29OuvtZep/sF5sKuOCQP8Wf83YCKXRsQF+ZpYfke2snbPPSIMZKzg==
|
integrity sha512-kYKcWkFm4Ldk8bZai2RVEP1z97k1C/Ay2FN9FNTBg7JIyKoiiJjks4OtT6cuKeZX39tqa+C3J9xeYc6G+6g8uQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/types" "^6.12.0"
|
"@octokit/types" "^6.12.2"
|
||||||
deprecation "^2.3.1"
|
deprecation "^2.3.1"
|
||||||
|
|
||||||
"@octokit/request-error@^2.0.0":
|
"@octokit/request-error@^2.0.0", "@octokit/request-error@^2.0.5":
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.5.tgz#72cc91edc870281ad583a42619256b380c600143"
|
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.5.tgz#72cc91edc870281ad583a42619256b380c600143"
|
||||||
integrity sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==
|
integrity sha512-T/2wcCFyM7SkXzNoyVNWjyVlUwBvW3igM3Btr/eKYiPmucXTtkxt2RBsf6gn3LTzaLSLTQtNmvg+dGsOxQrjZg==
|
||||||
@ -225,21 +226,21 @@
|
|||||||
universal-user-agent "^6.0.0"
|
universal-user-agent "^6.0.0"
|
||||||
|
|
||||||
"@octokit/rest@^18.0.0":
|
"@octokit/rest@^18.0.0":
|
||||||
version "18.3.4"
|
version "18.3.5"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.3.4.tgz#8e7ab02cd509e2fe7e71917a54254a8f8b827f20"
|
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.3.5.tgz#a89903d46e0b4273bd3234674ec2777a651d68ab"
|
||||||
integrity sha512-NES0pHbwyFB1D0jrLkdnIXgEmze/gLE0JoSNgfAe4vwD77/qaQGO/lRWNuPPsoBVBjiW6mmA9CU5cYHujJTKQA==
|
integrity sha512-ZPeRms3WhWxQBEvoIh0zzf8xdU2FX0Capa7+lTca8YHmRsO3QNJzf1H3PcuKKsfgp91/xVDRtX91sTe1kexlbw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/core" "^3.2.3"
|
"@octokit/core" "^3.2.3"
|
||||||
"@octokit/plugin-paginate-rest" "^2.6.2"
|
"@octokit/plugin-paginate-rest" "^2.6.2"
|
||||||
"@octokit/plugin-request-log" "^1.0.2"
|
"@octokit/plugin-request-log" "^1.0.2"
|
||||||
"@octokit/plugin-rest-endpoint-methods" "4.13.4"
|
"@octokit/plugin-rest-endpoint-methods" "4.13.5"
|
||||||
|
|
||||||
"@octokit/types@^6.0.3", "@octokit/types@^6.11.0", "@octokit/types@^6.12.0", "@octokit/types@^6.7.1":
|
"@octokit/types@^6.0.3", "@octokit/types@^6.11.0", "@octokit/types@^6.12.2", "@octokit/types@^6.7.1":
|
||||||
version "6.12.1"
|
version "6.12.2"
|
||||||
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.12.1.tgz#74cc9240d84706d1f2f5970425c90af016b0a9ac"
|
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.12.2.tgz#5b44add079a478b8eb27d78cf384cc47e4411362"
|
||||||
integrity sha512-eZTTWJxGBon01Ra4EX86rvlMZGkU5SeJ8BtwQlsv2wEqZttpjtefLetJndZTVbJ25qFKoyKMWsRFnwlOx7ZaDQ==
|
integrity sha512-kCkiN8scbCmSq+gwdJV0iLgHc0O/GTPY1/cffo9kECu1MvatLPh9E+qFhfRIktKfHEA6ZYvv6S1B4Wnv3bi3pA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@octokit/openapi-types" "^5.3.1"
|
"@octokit/openapi-types" "^5.3.2"
|
||||||
|
|
||||||
"@types/comment-json@^1.1.1":
|
"@types/comment-json@^1.1.1":
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
@ -308,7 +309,7 @@ balanced-match@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||||
|
|
||||||
before-after-hook@^2.1.0:
|
before-after-hook@^2.2.0:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.0.tgz#09c40d92e936c64777aa385c4e9b904f8147eaf0"
|
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.0.tgz#09c40d92e936c64777aa385c4e9b904f8147eaf0"
|
||||||
integrity sha512-jH6rKQIfroBbhEXVmI7XmXe3ix5S/PgJqpzdDPnR8JGLHWNYLsYZ6tK5iWOF/Ra3oqEX0NobXGlzbiylIzVphQ==
|
integrity sha512-jH6rKQIfroBbhEXVmI7XmXe3ix5S/PgJqpzdDPnR8JGLHWNYLsYZ6tK5iWOF/Ra3oqEX0NobXGlzbiylIzVphQ==
|
||||||
@ -527,9 +528,9 @@ domhandler@^4.0.0:
|
|||||||
domelementtype "^2.1.0"
|
domelementtype "^2.1.0"
|
||||||
|
|
||||||
domutils@^2.4.3, domutils@^2.4.4:
|
domutils@^2.4.3, domutils@^2.4.4:
|
||||||
version "2.4.4"
|
version "2.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3"
|
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.5.0.tgz#42f49cffdabb92ad243278b331fd761c1c2d3039"
|
||||||
integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==
|
integrity sha512-Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==
|
||||||
dependencies:
|
dependencies:
|
||||||
dom-serializer "^1.0.1"
|
dom-serializer "^1.0.1"
|
||||||
domelementtype "^2.0.1"
|
domelementtype "^2.0.1"
|
||||||
@ -943,10 +944,10 @@ path@^0.12.7:
|
|||||||
process "^0.11.1"
|
process "^0.11.1"
|
||||||
util "^0.10.3"
|
util "^0.10.3"
|
||||||
|
|
||||||
powerhooks@^0.0.20:
|
powerhooks@^0.0.27:
|
||||||
version "0.0.20"
|
version "0.0.27"
|
||||||
resolved "https://registry.yarnpkg.com/powerhooks/-/powerhooks-0.0.20.tgz#c606499d66737395f922c52995cefeb1b66e25df"
|
resolved "https://registry.yarnpkg.com/powerhooks/-/powerhooks-0.0.27.tgz#e9dc29258860d2f6bf32b249d9cba07c6f53f393"
|
||||||
integrity sha512-eSmryhs6dpT0R9lYFgYvF5BifL2v/WYTkItwka9CZ/DPGSS8o+xhXNNIctdSmXsW449glf1525t6tr1s3KUaVQ==
|
integrity sha512-ohayWhtIEdLqiC2th/GEhaRfOhqekFg2uFo0JZ8Dn7oTnAZybs618QJeq5ag9oy3lFVzl+kbROpVa8Ch5zrkaA==
|
||||||
dependencies:
|
dependencies:
|
||||||
evt "2.0.0-beta.15"
|
evt "2.0.0-beta.15"
|
||||||
memoizee "^0.4.15"
|
memoizee "^0.4.15"
|
||||||
@ -1141,11 +1142,11 @@ type@^1.0.1:
|
|||||||
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
|
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
|
||||||
|
|
||||||
type@^2.0.0:
|
type@^2.0.0:
|
||||||
version "2.3.0"
|
version "2.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132"
|
resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d"
|
||||||
integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==
|
integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==
|
||||||
|
|
||||||
typescript@^4.1.5:
|
typescript@^4.2.3:
|
||||||
version "4.2.3"
|
version "4.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3"
|
||||||
integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==
|
integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==
|
||||||
@ -1202,14 +1203,14 @@ y18n@^5.0.5:
|
|||||||
integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==
|
integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==
|
||||||
|
|
||||||
yaml@^1.7.2:
|
yaml@^1.7.2:
|
||||||
version "1.10.0"
|
version "1.10.2"
|
||||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
|
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
|
||||||
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
|
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
|
||||||
|
|
||||||
yargs-parser@^20.2.2:
|
yargs-parser@^20.2.2:
|
||||||
version "20.2.6"
|
version "20.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20"
|
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
|
||||||
integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA==
|
integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
|
||||||
|
|
||||||
yargs@^16.1.0:
|
yargs@^16.1.0:
|
||||||
version "16.2.0"
|
version "16.2.0"
|
||||||
|
Reference in New Issue
Block a user