diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68c11922..dc5bc8a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,30 +13,151 @@ on: - "alpha" - "beta" -env: - CYCLONE_REGISTRY_ACCESS_KEY: ${{ secrets.CYCLONE_REGISTRY_ACCESS_KEY }} - CYCLONE_REGISTRY_SECRET_KEY: ${{ secrets.CYCLONE_REGISTRY_SECRET_KEY }} - jobs: - release: - uses: storm-software/storm-ops/.github/workflows/ci-reusable.yml@main - with: - tag: ${{ inputs.TAG }} - stormBot: Stormie-Bot - secrets: - githubToken: ${{ secrets.STORM_BOT_GITHUB_TOKEN }} - npmToken: ${{ secrets.STORM_BOT_NPM_TOKEN }} - cargoToken: ${{ secrets.STORM_BOT_CARGO_TOKEN }} - slackToken: ${{ secrets.STORM_BOT_SLACK_TOKEN }} - discordWebhook: ${{ secrets.STORM_BOT_DISCORD_WEBHOOK }} - - registry: - name: Publish design components - needs: - - release - if: ${{ success() }} + ci: + name: "Continuous Integration" runs-on: ubuntu-latest + permissions: + contents: write + id-token: write + if: startsWith(github.repository, 'storm-software/') && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next' || github.ref == 'refs/heads/alpha' || github.ref == 'refs/heads/beta') steps: + - name: Send notification - Deployment started + uses: storm-software/action-notify@main + with: + title: "Deployment for ${{ github.repository }} has started (In Progress)" + subtitle: "Deployment for ${{ github.repository }} has started - #${{ github.run_number }}" + description: "Deployment for ${{ github.repository }} is currently in process - #${{ github.run_number }}. \nClick here to see the full workflow details: ${{ github.event.pull_request.html_url || github.event.head_commit.url }}." + color: 2077350 + status: "In Progress" + + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.githubToken }} + + - name: Setup workspace + uses: storm-software/action-setup@main + with: + packageManager: ${{ inputs.packageManager }} + packageManagerVersion: ${{ inputs.packageManagerVersion }} + stormBot: ${{ inputs.stormBot }} + + - name: Build Cyclone-UI Nx-Plugin packages + run: pnpm build-plugins + shell: bash + + - name: Configure git + run: | + git config user.name "${{ inputs.stormBot }}" + git config user.email "${{ inputs.stormBot }}@users.noreply.github.com" + git config lfs.allowincompletepush true + npm config set //registry.npmjs.org/:_authToken=$NPM_TOKEN + shell: bash + + - name: Get appropriate base and head commits for `nx affected` commands + uses: nrwl/nx-set-shas@v4 + with: + main-branch-name: "main" + + - name: Set appropriate base and head commits for `nx affected` commands + run: | + echo "BASE: ${{ env.NX_BASE }}" + echo "HEAD: ${{ env.NX_HEAD }}" + shell: bash + + - name: Add permissions to CLI tools + run: chmod a=rwx apps/cli/bin/run.js + + - name: Run build script + run: pnpm build-all + shell: bash + + - name: Run linters scripts + run: pnpm lint + shell: bash + + - name: Super-linter + uses: super-linter/super-linter@v6.5.1 + env: + GITHUB_TOKEN: ${{ secrets.githubToken }} + + - name: Markdown-linter + uses: DavidAnson/markdownlint-cli2-action@v16 + + - name: Run formatters scripts + run: pnpm nx format + shell: bash + + - name: Re-run build script + run: pnpm build-all + shell: bash + + - name: Release repository updates + run: pnpm release --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} + env: + GITHUB_ACTOR: ${{ github.actor }} + GITHUB_TOKEN: ${{ github.token }} + GH_TOKEN: ${{ github.token }} + NPM_TOKEN: ${{ secrets.npmToken }} + CARGO_REGISTRY_TOKEN: ${{ secrets.cargoToken }} + STORM_BOT: ${{ inputs.stormBot }} + STORM_WORKSPACE_ROOT: ${{ github.workspace }} + STORM_REPOSITORY: ${{ github.repositoryUrl }} + TAG: ${{ inputs.tag }} + - name: Publish design components to Storm CDN Registry run: pnpm nx run-many -t registry --projects=components/* --parallel=5 shell: bash + env: + CYCLONE_REGISTRY_ACCESS_KEY: ${{ secrets.CYCLONE_REGISTRY_ACCESS_KEY }} + CYCLONE_REGISTRY_SECRET_KEY: ${{ secrets.CYCLONE_REGISTRY_SECRET_KEY }} + + success: + needs: + - ci + if: ${{ success() }} + name: Send success notification + runs-on: ubuntu-latest + steps: + - name: Send notification - Deployment successful + uses: storm-software/action-notify@main + with: + title: "Deployment for ${{ github.repository }} has finished (Success)" + subtitle: "Deployment for ${{ github.repository }} has finished successfully - #${{ github.run_number }}" + description: "Deployment for ${{ github.repository }} has finished successfully - #${{ github.run_number }}. \nClick here to see the full workflow details: ${{ github.event.pull_request.html_url || github.event.head_commit.url }}." + color: 556891 + status: "Success" + + failure: + needs: + - ci + if: ${{ failure() }} + name: Send failure notification + runs-on: ubuntu-latest + steps: + - name: Send notification - Deployment successful + uses: storm-software/action-notify@main + with: + title: "Deployment for ${{ github.repository }} has finished (Failure)" + subtitle: "Deployment for ${{ github.repository }} finished with failures - #${{ github.run_number }}" + description: "Deployment for ${{ github.repository }} finished with failures - #${{ github.run_number }}. \nError: ${{ jobs.ci.result }} \nOutput: ${{ jobs.ci.output }} \nClick here to see the full workflow details: ${{ github.event.pull_request.html_url || github.event.head_commit.url }}." + color: 10027008 + status: "Failure" + + cancelled: + needs: + - ci + if: ${{ cancelled() }} + name: Send cancelled notification + runs-on: ubuntu-latest + steps: + - name: Send notification - Deployment cancelled + uses: storm-software/action-notify@main + with: + title: "Deployment for ${{ github.repository }} has finished (Cancelled)" + subtitle: "Deployment for ${{ github.repository }} was cancelled - #${{ github.run_number }}" + description: "Deployment for ${{ github.repository }} was stopped before it could complete - #${{ github.run_number }}. \nError: ${{ jobs.ci.result }} \nOutput: ${{ jobs.ci.output }} \nClick here to see the full workflow details: ${{ github.event.pull_request.html_url || github.event.head_commit.url }}." + color: 16565273 + status: "Cancelled" diff --git a/apps/cli/README.md b/apps/cli/README.md index 0d63d278..9c45496d 100644 --- a/apps/cli/README.md +++ b/apps/cli/README.md @@ -361,8 +361,8 @@ DESCRIPTION Links a plugin into the CLI for development. Installation of a linked plugin will override a user-installed or core plugin. - e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello' command will override the - user-installed or core plugin implementation. This is useful for development work. + e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello' command will override the user-installed or core + plugin implementation. This is useful for development work. EXAMPLES diff --git a/components/tabs/project.json b/components/tabs/project.json index ef24beb6..d1c2b728 100644 --- a/components/tabs/project.json +++ b/components/tabs/project.json @@ -38,9 +38,6 @@ "verbose": true } } - }, - "registry": { - "executor": "@cyclone-ui/tools-nx:registry" } } } diff --git a/nx.json b/nx.json index f4bbd583..c1f8492d 100644 --- a/nx.json +++ b/nx.json @@ -111,7 +111,8 @@ "targetName": "lint" } }, - "@storm-software/workspace-tools/plugins/typescript" + "@storm-software/workspace-tools/plugins/typescript", + "./dist/plugins/components/index.js" ], "generators": { "@nx/react": { diff --git a/package.json b/package.json index 18a3a07e..59e97273 100644 --- a/package.json +++ b/package.json @@ -43,10 +43,11 @@ "api-extractor": "pnpm storm-docs api-extractor --outputPath=\"docs/api-reference\" --clean", "prebuild": "pnpm clean", "build": "nx affected -t build --parallel=5", - "build-all": "nx run-many -t build --all --parallel=5 --exclude=\"components/*\"", + "build-all": "pnpm build-plugins && pnpm nx run-many -t build --all --parallel=5 --exclude=\"components/*\"", "build-apps": "nx run-many -t build --projects=apps/* --parallel=5", "build-docs": "nx run-many -t build --projects=docs/* --parallel=5", "build-libs": "nx run-many -t build --projects=libs/* --parallel=5", + "build-plugins": "node -r esbuild-register tools/scripts/build-plugins.ts", "build-prod": "nx run-many -t build --all --prod --parallel=5", "build-storybook": "storybook build -s public", "build-tools": "nx run-many -t build --projects=tools/* --parallel=5", @@ -169,6 +170,8 @@ "@swc/helpers": "~0.5.2", "@vitest/ui": "^1.3.1", "core-js": "^3.36.1", + "esbuild": "^0.20.2", + "esbuild-register": "^3.5.0", "eslint-config-next": "14.0.4", "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e07bba3f..6f5574fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,7 +58,7 @@ importers: version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3) '@storm-software/build-tools': specifier: latest - version: 0.8.1(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(postcss@8.4.38)(ts-node@10.9.1)(verdaccio@5.30.3) + version: 0.8.1(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(postcss@8.4.38)(ts-node@10.9.1)(verdaccio@5.30.3) '@storm-software/config': specifier: latest version: 1.18.1 @@ -82,7 +82,7 @@ importers: version: 0.3.6 '@storm-software/workspace-tools': specifier: latest - version: 1.76.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(postcss@8.4.38)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3) + version: 1.76.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(postcss@8.4.38)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3) '@storybook/icons': specifier: ^1.2.9 version: 1.2.9(react-dom@18.2.0)(react@18.2.0) @@ -199,7 +199,7 @@ importers: version: 5.30.4 ts-jest: specifier: ^29.1.1 - version: 29.1.2(@babel/core@7.24.4)(esbuild@0.19.12)(jest@29.7.0)(typescript@5.2.2) + version: 29.1.2(@babel/core@7.24.4)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: ^10.9.1 version: 10.9.1(@swc/core@1.3.107)(@types/node@20.9.0)(typescript@5.2.2) @@ -224,13 +224,13 @@ importers: version: 0.16.8(@react-native/babel-preset@0.73.19)(expo-modules-autolinking@1.10.3) '@nx/expo': specifier: 18.3.4 - version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) + version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) '@nx/jest': specifier: 18.3.4 version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3) '@nx/next': specifier: 18.3.4 - version: 18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) + version: 18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) '@nx/plugin': specifier: 18.3.4 version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3) @@ -254,7 +254,7 @@ importers: version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) '@nx/webpack': specifier: 18.3.4 - version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) + version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) '@nx/workspace': specifier: 18.3.4 version: 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107) @@ -312,6 +312,12 @@ importers: core-js: specifier: ^3.36.1 version: 3.36.1 + esbuild: + specifier: ^0.20.2 + version: 0.20.2 + esbuild-register: + specifier: ^3.5.0 + version: 3.5.0(esbuild@0.20.2) eslint-config-next: specifier: 14.0.4 version: 14.0.4(eslint@8.57.0)(typescript@5.2.2) @@ -1827,6 +1833,14 @@ packages: esbuild: 0.19.12 dev: false + /@anatine/esbuild-decorators@0.2.19(esbuild@0.20.2): + resolution: {integrity: sha512-pyj6ULyMacyzpDqlnbS2OCkOqxcVgk8IqiTMRJ5CrsF8Yl1azvlX/AM6xWR8UzHKUYDlWOw5mOpos3+7KKR0Lw==} + peerDependencies: + esbuild: ~0.14.29 + dependencies: + esbuild: 0.20.2 + dev: false + /@aw-web-design/x-default-browser@1.4.126: resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==} hasBin: true @@ -7300,7 +7314,7 @@ packages: optional: true dependencies: react-refresh: 0.8.3 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: false /@next/swc-darwin-arm64@14.0.4: @@ -7534,6 +7548,24 @@ packages: - verdaccio dev: false + /@nrwl/esbuild@18.3.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3): + resolution: {integrity: sha512-bbjgY4170UlnIgmOqMJ55JaCxjpllwJNi3z9EoyG1+8gj+QnVEX/HHRJB9iVpJDpLnte7LQmbOoDcjNy2rx2Sw==} + dependencies: + '@nx/esbuild': 18.3.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - esbuild + - nx + - supports-color + - typescript + - verdaccio + dev: false + /@nrwl/eslint-plugin-nx@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3): resolution: {integrity: sha512-IiBAxWgOZC4dIqnirpoRJ0YvDeR9HjlOyKna2CZoUj4Dr5uYOiNHbxVbfLPhsIenRLEbjttCxrA9Mm9k++bdjA==} dependencies: @@ -7554,10 +7586,10 @@ packages: - verdaccio dev: false - /@nrwl/expo@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0): + /@nrwl/expo@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0): resolution: {integrity: sha512-g+EUyvf6RS+EJtIxfinhj6OqNzwTOWIux9sMWSGVAYrNLS288XW+WakkNDx5e8mMyCE06Qn3pMKke99jIEZgmg==} dependencies: - '@nx/expo': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) + '@nx/expo': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) transitivePeerDependencies: - '@babel/traverse' - '@parcel/css' @@ -7678,10 +7710,10 @@ packages: - verdaccio dev: false - /@nrwl/next@18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0): + /@nrwl/next@18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0): resolution: {integrity: sha512-W9/6HDD4ewbW0pJ5wfjjGQRItD4YlI1A/AhzQkqrr1PzG2wmCqoLsM2AGoMDeTamCUmruKv7WDLdHKg0FZeg7A==} dependencies: - '@nx/next': 18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) + '@nx/next': 18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) transitivePeerDependencies: - '@babel/core' - '@babel/traverse' @@ -7911,10 +7943,10 @@ packages: - verdaccio dev: true - /@nrwl/webpack@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4): + /@nrwl/webpack@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4): resolution: {integrity: sha512-l4vWrum8nLBtDqeLM5BluKZScKSRegU3fvXmH4JJ+KY6ovVadZzcbM7SPiFKcBvIzzp034dajbp0iN/RJFSWlg==} dependencies: - '@nx/webpack': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) + '@nx/webpack': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) transitivePeerDependencies: - '@babel/traverse' - '@parcel/css' @@ -8131,6 +8163,36 @@ packages: - verdaccio dev: false + /@nx/esbuild@18.3.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3): + resolution: {integrity: sha512-qhvmLO4mXedBoLnAhuYNOOVJYTRSOp2MNxZH3bvZ3Fwa95XmRlY8pUV9FLxMp80h+kLAaHbuIYRbt2KdJoanmw==} + peerDependencies: + esbuild: ~0.19.2 + peerDependenciesMeta: + esbuild: + optional: true + dependencies: + '@nrwl/esbuild': 18.3.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) + '@nx/devkit': 18.3.3(nx@18.3.4) + '@nx/js': 18.3.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) + chalk: 4.1.2 + esbuild: 0.20.2 + fast-glob: 3.2.7 + fs-extra: 11.2.0 + tsconfig-paths: 4.2.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - nx + - supports-color + - typescript + - verdaccio + dev: false + /@nx/eslint-plugin@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3): resolution: {integrity: sha512-rGQX/w+qexGWOLjHECZeZ2RDgaKEUvQW+zGBNlw/5u7tZcTYUpG10VG1j+BrwBZ1gT9YV1b/0IUYdwdEo1NNwA==} peerDependencies: @@ -8190,17 +8252,17 @@ packages: - supports-color - verdaccio - /@nx/expo@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0): + /@nx/expo@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0): resolution: {integrity: sha512-CqS+Mnb1xDEZ5kpUtQpcvjbDVoDbajL7s4KUBCp23NJqlYFjEgxt17r026eAz9aT+pyGP7npiRsJd0w5M5jnvQ==} dependencies: - '@nrwl/expo': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) + '@nrwl/expo': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) '@nx/devkit': 18.3.4(nx@18.3.4) '@nx/eslint': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(verdaccio@5.30.3) '@nx/jest': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3) '@nx/js': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) '@nx/react': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack@5.91.0) '@nx/web': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) - '@nx/webpack': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) + '@nx/webpack': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) chalk: 4.1.2 enhanced-resolve: 5.16.0 fs-extra: 11.2.0 @@ -8495,19 +8557,19 @@ packages: - supports-color - verdaccio - /@nx/next@18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0): + /@nx/next@18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0): resolution: {integrity: sha512-aq3ueSXwkLKduOvqHjuDCSM3GJqDY4CQ+6qgGxI+jQX/Dy1uzQKKvCb9Qo1mTu5t+rg6kZN1X3HlyhVAeTaQfA==} peerDependencies: next: '>=14.0.0' dependencies: '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.4) - '@nrwl/next': 18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) + '@nrwl/next': 18.3.4(@babel/core@7.24.4)(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(next@14.0.4)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4)(webpack@5.91.0) '@nx/devkit': 18.3.4(nx@18.3.4) '@nx/eslint': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(verdaccio@5.30.3) '@nx/js': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) '@nx/react': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack@5.91.0) '@nx/web': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) - '@nx/webpack': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) + '@nx/webpack': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) '@nx/workspace': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107) '@svgr/webpack': 8.1.0(typescript@5.2.2) chalk: 4.1.2 @@ -9050,11 +9112,11 @@ packages: - verdaccio dev: true - /@nx/webpack@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4): + /@nx/webpack@18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4): resolution: {integrity: sha512-bufCGJJ+KvZ90OOCzcDh3hpYz6Zc6b6iNffzaPsJuL5YEOFVdwyn91lWfu761bzBOCqs2DPJenEmAGhSNK+muQ==} dependencies: '@babel/core': 7.24.4 - '@nrwl/webpack': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.19.12)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) + '@nrwl/webpack': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3)(webpack-cli@5.1.4) '@nx/devkit': 18.3.4(nx@18.3.4) '@nx/js': 18.3.4(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) ajv: 8.12.0 @@ -9064,7 +9126,7 @@ packages: chalk: 4.1.2 copy-webpack-plugin: 10.2.4(webpack@5.91.0) css-loader: 6.11.0(webpack@5.91.0) - css-minimizer-webpack-plugin: 5.0.1(esbuild@0.19.12)(webpack@5.91.0) + css-minimizer-webpack-plugin: 5.0.1(esbuild@0.20.2)(webpack@5.91.0) fork-ts-checker-webpack-plugin: 7.2.13(typescript@5.2.2)(webpack@5.91.0) less: 4.1.3 less-loader: 11.1.0(less@4.1.3)(webpack@5.91.0) @@ -9082,11 +9144,11 @@ packages: style-loader: 3.3.4(webpack@5.91.0) stylus: 0.59.0 stylus-loader: 7.1.3(stylus@0.59.0)(webpack@5.91.0) - terser-webpack-plugin: 5.3.10(@swc/core@1.3.107)(esbuild@0.19.12)(webpack@5.91.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.3.107)(esbuild@0.20.2)(webpack@5.91.0) ts-loader: 9.5.1(typescript@5.2.2)(webpack@5.91.0) tsconfig-paths-webpack-plugin: 4.0.0 tslib: 2.6.2 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-dev-server: 4.15.2(webpack-cli@5.1.4)(webpack@5.91.0) webpack-node-externals: 3.0.0 webpack-subresource-integrity: 5.1.0(webpack@5.91.0) @@ -9526,7 +9588,7 @@ packages: react-refresh: 0.10.0 schema-utils: 3.3.0 source-map: 0.7.4 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack@5.91.0): @@ -12339,6 +12401,52 @@ packages: - verdaccio dev: false + /@storm-software/build-tools@0.8.1(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(postcss@8.4.38)(ts-node@10.9.1)(verdaccio@5.30.3): + resolution: {integrity: sha512-1bUfF0POO6EXdSSaB1gkCpBMceJqeQkOE6+vJSOVEb7PMl3OXNjAPYlFFZwqrmfiTUtWeyXy58D80BWQq33bmA==} + hasBin: true + dependencies: + '@anatine/esbuild-decorators': 0.2.19(esbuild@0.20.2) + '@microsoft/api-extractor': 7.44.1(@types/node@20.9.0) + '@nx/devkit': 19.0.4(nx@18.3.4) + '@nx/js': 19.0.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(nx@18.3.4)(typescript@5.4.5)(verdaccio@5.30.3) + '@nx/workspace': 18.3.3(@swc-node/register@1.8.0)(@swc/core@1.3.107) + '@rollup/plugin-commonjs': 25.0.8(rollup@4.18.0) + '@rollup/plugin-image': 3.0.3(rollup@4.18.0) + '@rollup/plugin-json': 6.1.0(rollup@4.18.0) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.18.0) + autoprefixer: 10.4.19(postcss@8.4.38) + chalk: 5.3.0 + commander: 12.1.0 + deep-clone: 4.0.0 + deepmerge: 4.3.1 + esbuild-plugin-environment: 0.4.0(esbuild@0.20.2) + fs-extra: 11.2.0 + glob: 10.4.1 + rolldown: 0.10.2 + rollup: 4.18.0 + rollup-plugin-esbuild: 6.1.1(esbuild@0.20.2)(rollup@4.18.0) + rollup-plugin-peer-deps-external: 2.2.4(rollup@4.18.0) + rollup-plugin-postcss: 4.0.2(postcss@8.4.38)(ts-node@10.9.1) + rollup-plugin-typescript2: 0.36.0(rollup@4.18.0)(typescript@5.4.5) + sass: 1.77.2 + tsup: 8.0.0(@microsoft/api-extractor@7.44.1)(@swc/core@1.3.107)(postcss@8.4.38)(ts-node@10.9.1)(typescript@5.4.5) + typescript: 5.4.5 + unbuild: 2.0.0(sass@1.77.2)(typescript@5.4.5) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - esbuild + - nx + - postcss + - supports-color + - ts-node + - verdaccio + dev: false + /@storm-software/config-tools@1.47.1(typescript@5.2.2): resolution: {integrity: sha512-zed47PIP0RleNU23BMUcoqlkWfIb9IWNXCvMZkEOnAGlPt9lblKm8Mr45NuT5NJlc7x797y5ZPWLEmMxQSz+BQ==} dependencies: @@ -12533,6 +12641,50 @@ packages: - verdaccio dev: false + /@storm-software/workspace-tools@1.76.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(postcss@8.4.38)(ts-node@10.9.1)(typescript@5.2.2)(verdaccio@5.30.3): + resolution: {integrity: sha512-a2uyEiW95S4TSA9CHFPQjigOOcqdkYyroyXX5mSlZQEGiF3GJaPDmj0VfpKCPWcjCVhGHRST2e3PCjGvroPd7A==} + dependencies: + '@anatine/esbuild-decorators': 0.2.19(esbuild@0.20.2) + '@ltd/j-toml': 1.38.0 + '@microsoft/api-extractor': 7.44.1(@types/node@20.9.0) + '@nx/devkit': 19.0.4(nx@18.3.4) + '@nx/esbuild': 18.3.3(@swc-node/register@1.8.0)(@swc/core@1.3.107)(@types/node@20.9.0)(esbuild@0.20.2)(nx@18.3.4)(typescript@5.2.2)(verdaccio@5.30.3) + '@rollup/plugin-json': 6.1.0(rollup@4.18.0) + bundle-require: 4.1.0(esbuild@0.20.2) + decky: 1.1.1 + esbuild-plugin-environment: 0.4.0(esbuild@0.20.2) + esbuild-plugin-handlebars: 1.0.3 + esbuild-plugin-pino: 2.1.1(esbuild@0.20.2) + fs-extra: 11.2.0 + glob: 10.4.1 + npm-run-path: 5.3.0 + pkg-types: 1.1.1 + prettier: 3.2.5 + prettier-plugin-packagejson: 2.5.0(prettier@3.2.5) + rollup: 4.18.0 + rollup-plugin-dts: 6.1.1(rollup@4.18.0)(typescript@5.2.2) + semver: 7.6.2 + terser: 5.31.0 + tsup: 8.0.0(@microsoft/api-extractor@7.44.1)(@swc/core@1.3.107)(postcss@8.4.38)(ts-node@10.9.1)(typescript@5.2.2) + typia: 6.0.4(typescript@5.2.2) + zod: 3.23.8 + zod-to-json-schema: 3.23.0(zod@3.23.8) + transitivePeerDependencies: + - '@babel/traverse' + - '@swc-node/register' + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - debug + - esbuild + - nx + - postcss + - supports-color + - ts-node + - typescript + - verdaccio + dev: false + /@storybook/addon-actions@7.6.10: resolution: {integrity: sha512-pcKmf0H/caGzKDy8cz1adNSjv+KOBWLJ11RzGExrWm+Ad5ACifwlsQPykJ3TQ/21sTd9IXVrE9uuq4LldEnPbg==} dependencies: @@ -13495,7 +13647,7 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) resolve-url-loader: 5.0.0 - sass-loader: 12.6.0(webpack@5.91.0) + sass-loader: 12.6.0(sass@1.75.0)(webpack@5.91.0) semver: 7.6.0 sharp: 0.32.6 style-loader: 3.3.4(webpack@5.91.0) @@ -17899,7 +18051,7 @@ packages: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.91.0) /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.91.0): @@ -17909,7 +18061,7 @@ packages: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.91.0) /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack@5.91.0): @@ -17923,7 +18075,7 @@ packages: webpack-dev-server: optional: true dependencies: - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.91.0) /@whatwg-node/events@0.1.1: @@ -18800,7 +18952,7 @@ packages: '@babel/core': 7.24.4 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) /babel-plugin-add-react-displayname@0.0.5: resolution: {integrity: sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw==} @@ -19492,6 +19644,16 @@ packages: load-tsconfig: 0.2.5 dev: false + /bundle-require@4.1.0(esbuild@0.20.2): + resolution: {integrity: sha512-FeArRFM+ziGkRViKRnSTbHZc35dgmR9yNog05Kn0+ItI59pOAISGvnnIwW1WgFZQW59IxD9QpJnUPkdIPfZuXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.20.2 + load-tsconfig: 0.2.5 + dev: false + /bundlewatch@0.3.3: resolution: {integrity: sha512-qzSVWrZyyWXa546JpAPRPTFmnXms9YNVnfzB05DRJKmN6wRRa7SkxE4OgKQmbAY74Z6CM2mKAc6vwvd2R+1lUQ==} engines: {node: '>=10'} @@ -20543,7 +20705,7 @@ packages: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /copyfiles@2.4.1: @@ -20988,7 +21150,7 @@ packages: semver: 7.6.0 webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) - /css-minimizer-webpack-plugin@5.0.1(esbuild@0.19.12)(webpack@5.91.0): + /css-minimizer-webpack-plugin@5.0.1(esbuild@0.20.2)(webpack@5.91.0): resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -21015,12 +21177,12 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.25 cssnano: 6.1.2(postcss@8.4.38) - esbuild: 0.19.12 + esbuild: 0.20.2 jest-worker: 29.7.0 postcss: 8.4.38 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /css-select@1.2.0: @@ -22384,6 +22546,15 @@ packages: esbuild: 0.19.12 dev: false + /esbuild-plugin-define@0.5.0(esbuild@0.20.2): + resolution: {integrity: sha512-GNchZYjo8nQHLYbvTIi9w6MXj1lzi1yPEnfsHpeTRbTx2g0+g79ngoU0N5hS5EQwfpzTUzZKETx16UO8W8dW0g==} + engines: {node: '>=18.14.0'} + peerDependencies: + esbuild: '>=0.15' + dependencies: + esbuild: 0.20.2 + dev: false + /esbuild-plugin-environment@0.4.0(esbuild@0.19.12): resolution: {integrity: sha512-GtZCsiT/Fk9e7HWSwcE3HnpKD07yvpNh2jTJ0U0CsMc/I3wA3CSSO2eT1psxD3jgLCIWiSw4i1LY0BHH27VmBg==} engines: {node: '>=18.14.0'} @@ -22394,6 +22565,16 @@ packages: esbuild-plugin-define: 0.5.0(esbuild@0.19.12) dev: false + /esbuild-plugin-environment@0.4.0(esbuild@0.20.2): + resolution: {integrity: sha512-GtZCsiT/Fk9e7HWSwcE3HnpKD07yvpNh2jTJ0U0CsMc/I3wA3CSSO2eT1psxD3jgLCIWiSw4i1LY0BHH27VmBg==} + engines: {node: '>=18.14.0'} + peerDependencies: + esbuild: '>=0.15' + dependencies: + esbuild: 0.20.2 + esbuild-plugin-define: 0.5.0(esbuild@0.20.2) + dev: false + /esbuild-plugin-es5@2.1.0(esbuild@0.20.2): resolution: {integrity: sha512-V0rsjIHa/pswTvqM/N+jrhhBAiOdp+Ppwmhk9HQKfpvhYRUKsdeImiHeFP0oWkc+GX7pFxJzmceaPJT1RA7jyQ==} engines: {node: '>=12.0'} @@ -22419,6 +22600,14 @@ packages: esbuild: 0.19.12 dev: false + /esbuild-plugin-pino@2.1.1(esbuild@0.20.2): + resolution: {integrity: sha512-NdcTruRCq7tCv/vQENeGRmV0mK/54tvKWT5J2+tDaAdSX7TVUiykEbtZ0xDZA1rJfyzd5rx1G8TqwXv1zBlK5w==} + peerDependencies: + esbuild: ^0.17.1 || ^0.18.0 || ^0.19.0 || ^0.20.0 + dependencies: + esbuild: 0.20.2 + dev: false + /esbuild-register@3.5.0(esbuild@0.18.20): resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} peerDependencies: @@ -23963,7 +24152,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) /file-selector@0.6.0: resolution: {integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==} @@ -24282,7 +24471,7 @@ packages: semver: 7.6.0 tapable: 2.2.1 typescript: 5.2.2 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.3.3)(webpack@5.91.0): @@ -28243,7 +28432,7 @@ packages: dependencies: klona: 2.0.6 less: 4.1.3 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /less@4.1.3: @@ -28293,7 +28482,7 @@ packages: webpack-sources: optional: true dependencies: - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-sources: 3.2.3 dev: true @@ -30559,7 +30748,7 @@ packages: webpack: ^5.0.0 dependencies: schema-utils: 4.2.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /mini-svg-data-uri@1.4.4: @@ -32904,7 +33093,7 @@ packages: klona: 2.0.6 postcss: 8.4.38 semver: 7.6.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /postcss-loader@7.3.4(postcss@8.4.38)(typescript@5.3.3)(webpack@5.91.0): @@ -35347,6 +35536,23 @@ packages: - supports-color dev: false + /rollup-plugin-esbuild@6.1.1(esbuild@0.20.2)(rollup@4.18.0): + resolution: {integrity: sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw==} + engines: {node: '>=14.18.0'} + peerDependencies: + esbuild: '>=0.18.0' + rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + debug: 4.3.4(supports-color@8.1.1) + es-module-lexer: 1.5.0 + esbuild: 0.20.2 + get-tsconfig: 4.7.3 + rollup: 4.18.0 + transitivePeerDependencies: + - supports-color + dev: false + /rollup-plugin-peer-deps-external@2.2.4(rollup@2.79.1): resolution: {integrity: sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==} peerDependencies: @@ -35593,30 +35799,6 @@ packages: klona: 2.0.6 neo-async: 2.6.2 sass: 1.75.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) - dev: true - - /sass-loader@12.6.0(webpack@5.91.0): - resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - fibers: '>= 3.1.0' - node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - sass: ^1.3.0 - sass-embedded: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - sass-embedded: - optional: true - dependencies: - klona: 2.0.6 - neo-async: 2.6.2 webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true @@ -36246,7 +36428,7 @@ packages: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.2.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /source-map-support@0.5.13: @@ -36931,7 +37113,7 @@ packages: fast-glob: 3.3.2 normalize-path: 3.0.0 stylus: 0.59.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /stylus@0.59.0: @@ -37056,7 +37238,7 @@ packages: dependencies: '@swc/core': 1.3.107(@swc/helpers@0.5.9) loader-utils: 2.0.4 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /swc-loader@0.2.6(@swc/core@1.3.107)(webpack@5.91.0): @@ -37297,31 +37479,6 @@ packages: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - /terser-webpack-plugin@5.3.10(@swc/core@1.3.107)(esbuild@0.19.12)(webpack@5.91.0): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@swc/core': 1.3.107(@swc/helpers@0.5.9) - esbuild: 0.19.12 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.30.4 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) - /terser-webpack-plugin@5.3.10(@swc/core@1.3.107)(esbuild@0.20.2)(webpack@5.91.0): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -37644,7 +37801,7 @@ packages: /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - /ts-jest@29.1.2(@babel/core@7.24.4)(esbuild@0.19.12)(jest@29.7.0)(typescript@5.2.2): + /ts-jest@29.1.2(@babel/core@7.24.4)(esbuild@0.20.2)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true @@ -37667,7 +37824,7 @@ packages: dependencies: '@babel/core': 7.24.4 bs-logger: 0.2.6 - esbuild: 0.19.12 + esbuild: 0.20.2 fast-json-stable-stringify: 2.1.0 jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) jest-util: 29.7.0 @@ -37692,7 +37849,7 @@ packages: semver: 7.6.0 source-map: 0.7.4 typescript: 5.2.2 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /ts-morph@15.1.0: @@ -39637,7 +39794,7 @@ packages: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-merge: 5.10.0 /webpack-dev-middleware@5.3.4(webpack@5.91.0): @@ -39651,7 +39808,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /webpack-dev-middleware@6.1.3(webpack@5.91.0): @@ -39712,7 +39869,7 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.91.0) webpack-dev-middleware: 5.3.4(webpack@5.91.0) ws: 8.16.0 @@ -39766,7 +39923,7 @@ packages: optional: true dependencies: typed-assert: 1.0.9 - webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack: 5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4) dev: true /webpack-virtual-modules@0.5.0: @@ -39777,46 +39934,6 @@ packages: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} dev: true - /webpack@5.91.0(@swc/core@1.3.107)(esbuild@0.19.12)(webpack-cli@5.1.4): - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.23.0 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.16.0 - es-module-lexer: 1.5.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.3.107)(esbuild@0.19.12)(webpack@5.91.0) - watchpack: 2.4.1 - webpack-cli: 5.1.4(webpack@5.91.0) - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - /webpack@5.91.0(@swc/core@1.3.107)(esbuild@0.20.2)(webpack-cli@5.1.4): resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} engines: {node: '>=10.13.0'} diff --git a/tools/nx/project.json b/tools/nx/project.json index 376c4e30..e6463058 100644 --- a/tools/nx/project.json +++ b/tools/nx/project.json @@ -18,7 +18,8 @@ "main": "tools/nx/index.ts", "additionalEntryPoints": [ "tools/nx/src/index.ts", - "tools/nx/src/executors/registry/executor.ts" + "tools/nx/src/executors/registry/executor.ts", + "tools/nx/src/plugins/components/index.ts" ], "platform": "node", "deleteOutputPath": true, diff --git a/tools/nx/src/executors/registry/executor.ts b/tools/nx/src/executors/registry/executor.ts index 11c50768..7e3a15eb 100644 --- a/tools/nx/src/executors/registry/executor.ts +++ b/tools/nx/src/executors/registry/executor.ts @@ -148,7 +148,13 @@ export default async function runExecutor( description: projectPackageJson.description, dependencies: projectPackageJson.dependencies, devDependencies: projectPackageJson.devDependencies, - internalDependencies: internalDependencies.map(dep => dep.name) + internalDependencies: internalDependencies + .filter( + projectNode => + projectNode.data.tags && + projectNode.data.tags.some(tag => tag.toLowerCase() === "component") + ) + .map(dep => dep.name) }); writeInfo(`Generating component.json file: \n${componentJson}`); diff --git a/tools/nx/src/index.ts b/tools/nx/src/index.ts index 6d121965..a226b13b 100644 --- a/tools/nx/src/index.ts +++ b/tools/nx/src/index.ts @@ -1 +1,2 @@ export * from "./executors"; +export * from "./plugins"; diff --git a/tools/nx/src/plugins/components/components.ts b/tools/nx/src/plugins/components/components.ts new file mode 100644 index 00000000..b11a5409 --- /dev/null +++ b/tools/nx/src/plugins/components/components.ts @@ -0,0 +1,93 @@ +import { dirname, join } from "node:path"; +import { existsSync } from "node:fs"; +import type { ProjectConfiguration } from "nx/src/config/workspace-json-project-json"; +import { readJsonFile } from "nx/src/utils/fileutils"; +import { + type PackageJson, + readTargetsFromPackageJson +} from "nx/src/utils/package-json"; + +export const name = "storm-software/cyclone-ui/components"; + +export const createNodes = [ + "components/**/project.json", + (file, _, ctx) => { + const packageJson = createPackageJson(file, ctx.workspaceRoot); + if (!packageJson) { + return {}; + } + + const project = createProjectFromPackageJsonNextToProjectJson( + file, + packageJson + ); + const targets: ProjectConfiguration["targets"] = + readTargetsFromPackageJson(packageJson); + + if (!targets.lint) { + targets.lint = { + cache: true, + inputs: ["default"], + dependsOn: ["^lint"], + executor: "@nx/eslint:lint", + outputs: ["{options.outputFile}"], + options: { + format: "stylish", + fix: true, + cache: true, + errorOnUnmatchedPattern: false, + printConfig: true + } + }; + } + + targets.registry = { + executor: "@cyclone-ui/tools-nx:registry" + }; + + return project?.name + ? { + projects: { + [project.name]: { + tags: ["component"], + ...project, + targets + } + } + } + : {}; + } +]; + +function createProjectFromPackageJsonNextToProjectJson( + projectJsonPath: string, + packageJson: PackageJson +): ProjectConfiguration { + const { nx, name } = packageJson; + const root = dirname(projectJsonPath); + + return { + ...nx, + name, + root, + targets: {} + } as ProjectConfiguration; +} + +function createPackageJson( + projectJsonPath: string, + workspaceRoot: string +): PackageJson | null { + try { + const root = dirname(projectJsonPath); + const packageJsonPath = join(workspaceRoot, root, "package.json"); + if (!existsSync(packageJsonPath)) { + return null; + } + + return readJsonFile(packageJsonPath) as PackageJson; + } catch (e) { + console.log(e); + return null; + } +} diff --git a/tools/nx/src/plugins/components/index.ts b/tools/nx/src/plugins/components/index.ts new file mode 100644 index 00000000..40b494c5 --- /dev/null +++ b/tools/nx/src/plugins/components/index.ts @@ -0,0 +1 @@ +export * from "./components"; diff --git a/tools/nx/src/plugins/index.ts b/tools/nx/src/plugins/index.ts new file mode 100644 index 00000000..40b494c5 --- /dev/null +++ b/tools/nx/src/plugins/index.ts @@ -0,0 +1 @@ +export * from "./components"; diff --git a/tools/scripts/build-plugins.ts b/tools/scripts/build-plugins.ts new file mode 100644 index 00000000..212bf326 --- /dev/null +++ b/tools/scripts/build-plugins.ts @@ -0,0 +1,18 @@ +import { build } from "esbuild"; + +build({ + entryPoints: ["tools/nx/src/plugins/components/index.ts"], + outdir: "dist/plugins/components", + tsconfig: "tools/nx/tsconfig.lib.json", + packages: "external", + logLevel: "silent", + bundle: true, + minify: false, + outExtension: { + ".js": ".js" + }, + format: "cjs", + platform: "node" +}).then(() => { + console.log("Cyclone-UI plugins built successfully"); +});