mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 09:36:44 +00:00
ci: Enable Playwright tests in PRs (#17238)
This commit is contained in:
42
.github/actions/setup-nodejs-blacksmith/action.yml
vendored
Normal file
42
.github/actions/setup-nodejs-blacksmith/action.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
name: 'Blacksmith Node.js Build Setup'
|
||||||
|
description: 'Configures Node.js with pnpm, installs dependencies, enables Turborepo caching, (optional) sets up Docker layer caching, and builds the project or an optional command.'
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
node-version:
|
||||||
|
description: 'Node.js version to use. Uses latest 22.x by default.'
|
||||||
|
required: false
|
||||||
|
default: '22.x'
|
||||||
|
enable-docker-cache:
|
||||||
|
description: 'Whether to set up Blacksmith Buildx for Docker layer caching.'
|
||||||
|
required: false
|
||||||
|
default: 'false'
|
||||||
|
type: boolean
|
||||||
|
build-command:
|
||||||
|
description: 'Command to execute for building the project or an optional command. Leave empty to skip build step.'
|
||||||
|
required: false
|
||||||
|
default: 'pnpm build'
|
||||||
|
type: string
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: 'composite'
|
||||||
|
steps:
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: useblacksmith/setup-node@65c6ca86fdeb0ab3d85e78f57e4f6a7e4780b391 # v5.0.4
|
||||||
|
with:
|
||||||
|
node-version: ${{ inputs.node-version }}
|
||||||
|
|
||||||
|
- name: Setup pnpm and Install Dependencies
|
||||||
|
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.0.0
|
||||||
|
with:
|
||||||
|
run_install: true
|
||||||
|
|
||||||
|
- name: Configure Turborepo Cache
|
||||||
|
uses: useblacksmith/caching-for-turbo@bafb57e7ebdbf1185762286ec94d24648cd3938a # v1
|
||||||
|
|
||||||
|
- name: Setup Blacksmith Buildx for Docker Cache
|
||||||
|
if: ${{ inputs.enable-docker-cache == 'true' }}
|
||||||
|
uses: useblacksmith/build-push-action@574eb0ee0b59c6a687ace24192f0727dfb65d6d7 # v1.2.0
|
||||||
|
|
||||||
|
- name: Build Project
|
||||||
|
run: ${{ inputs.build-command }}
|
||||||
|
shell: bash
|
||||||
167
.github/workflows/e2e-reusable.yml
vendored
167
.github/workflows/e2e-reusable.yml
vendored
@@ -40,81 +40,18 @@ on:
|
|||||||
CYPRESS_RECORD_KEY:
|
CYPRESS_RECORD_KEY:
|
||||||
description: 'Cypress record key.'
|
description: 'Cypress record key.'
|
||||||
required: true
|
required: true
|
||||||
outputs:
|
CURRENTS_RECORD_KEY:
|
||||||
tests_passed:
|
description: 'Currents record key.'
|
||||||
description: 'True if all E2E tests passed, otherwise false'
|
required: true
|
||||||
value: ${{ jobs.check_testing_matrix.outputs.all_tests_passed }}
|
|
||||||
|
env:
|
||||||
|
NODE_OPTIONS: --max-old-space-size=4096
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# single job that generates and outputs a common id
|
|
||||||
prepare:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
uuid: ${{ steps.uuid.outputs.value }}
|
|
||||||
steps:
|
|
||||||
- name: Generate unique ID 💎
|
|
||||||
id: uuid
|
|
||||||
# take the current commit + timestamp together
|
|
||||||
# the typical value would be something like
|
|
||||||
# "sha-5d3fe...35d3-time-1620841214"
|
|
||||||
run: echo "value=sha-$GITHUB_SHA-time-$(date +"%s")" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Calculate Git Ref 🤔
|
|
||||||
id: calculate_ref
|
|
||||||
run: |
|
|
||||||
if [ -n "${{ inputs.pr_number }}" ]; then
|
|
||||||
echo "value=refs/pull/${{ inputs.pr_number }}/head" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "value=${{ inputs.branch }}" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
install:
|
|
||||||
runs-on: blacksmith-4vcpu-ubuntu-2204
|
|
||||||
needs: ['prepare']
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
||||||
with:
|
|
||||||
ref: ${{ steps.calculate_ref.outputs.value }}
|
|
||||||
|
|
||||||
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.0.0
|
|
||||||
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
|
||||||
with:
|
|
||||||
node-version: 22.x
|
|
||||||
cache: 'pnpm'
|
|
||||||
|
|
||||||
- name: Cache build artifacts
|
|
||||||
id: cache-build-artifacts
|
|
||||||
uses: useblacksmith/cache@c5fe29eb0efdf1cf4186b9f7fcbbcbc0cf025662 # v5
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
/home/runner/.cache/Cypress
|
|
||||||
/github/home/.pnpm-store
|
|
||||||
./packages/**/dist
|
|
||||||
key: ${{ github.sha }}-ui
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
if: steps.cache-build-artifacts.outputs.cache-hit != 'true'
|
|
||||||
run: pnpm install --frozen-lockfile
|
|
||||||
|
|
||||||
- name: Cypress build
|
|
||||||
if: steps.cache-build-artifacts.outputs.cache-hit != 'true'
|
|
||||||
uses: cypress-io/github-action@be1bab96b388bbd9ce3887e397d373c8557e15af # v6.9.2
|
|
||||||
with:
|
|
||||||
# Disable running of tests within install job
|
|
||||||
runTests: false
|
|
||||||
install: false
|
|
||||||
build: pnpm build
|
|
||||||
|
|
||||||
- name: Cypress install
|
|
||||||
if: steps.cache-build-artifacts.outputs.cache-hit != 'true'
|
|
||||||
working-directory: cypress
|
|
||||||
run: pnpm cypress:install
|
|
||||||
|
|
||||||
testing:
|
testing:
|
||||||
runs-on: blacksmith-2vcpu-ubuntu-2204
|
runs-on: blacksmith-2vcpu-ubuntu-2204
|
||||||
needs: ['prepare', 'install']
|
outputs:
|
||||||
|
dashboardUrl: ${{ steps.cypress.outputs.dashboardUrl }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -123,31 +60,15 @@ jobs:
|
|||||||
containers: ${{ fromJSON( inputs.spec == 'e2e/*' && inputs.containers || '[1]' ) }}
|
containers: ${{ fromJSON( inputs.spec == 'e2e/*' && inputs.containers || '[1]' ) }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
- name: Set up and build
|
||||||
ref: ${{ steps.calculate_ref.outputs.value }}
|
uses: ./.github/actions/setup-nodejs-blacksmith
|
||||||
|
|
||||||
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.0.0
|
- name: Install Cypress
|
||||||
|
working-directory: cypress
|
||||||
- name: Setup Node.js
|
run: pnpm cypress:install
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
|
||||||
with:
|
|
||||||
node-version: 22.x
|
|
||||||
cache: 'pnpm'
|
|
||||||
|
|
||||||
- name: Restore cached pnpm modules
|
|
||||||
id: cache-build-artifacts
|
|
||||||
uses: useblacksmith/cache@c5fe29eb0efdf1cf4186b9f7fcbbcbc0cf025662 # v5
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
/home/runner/.cache/Cypress
|
|
||||||
/github/home/.pnpm-store
|
|
||||||
./packages/**/dist
|
|
||||||
key: ${{ github.sha }}-ui
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install --frozen-lockfile
|
|
||||||
|
|
||||||
- name: Cypress run
|
- name: Cypress run
|
||||||
|
id: cypress
|
||||||
uses: cypress-io/github-action@be1bab96b388bbd9ce3887e397d373c8557e15af # v6.9.2
|
uses: cypress-io/github-action@be1bab96b388bbd9ce3887e397d373c8557e15af # v6.9.2
|
||||||
with:
|
with:
|
||||||
working-directory: cypress
|
working-directory: cypress
|
||||||
@@ -159,7 +80,7 @@ jobs:
|
|||||||
parallel: ${{ fromJSON( inputs.spec == 'e2e/*' && inputs.parallel || false ) }}
|
parallel: ${{ fromJSON( inputs.spec == 'e2e/*' && inputs.parallel || false ) }}
|
||||||
# We have to provide custom ci-build-id key to make sure that this workflow could be run multiple times
|
# We have to provide custom ci-build-id key to make sure that this workflow could be run multiple times
|
||||||
# in the same parent workflow
|
# in the same parent workflow
|
||||||
ci-build-id: ${{ needs.prepare.outputs.uuid }}
|
ci-build-id: ${{ github.run_id }}-${{ github.run_attempt }}
|
||||||
spec: '${{ inputs.spec }}'
|
spec: '${{ inputs.spec }}'
|
||||||
env:
|
env:
|
||||||
NODE_OPTIONS: --dns-result-order=ipv4first
|
NODE_OPTIONS: --dns-result-order=ipv4first
|
||||||
@@ -169,21 +90,49 @@ jobs:
|
|||||||
COMMIT_INFO_MESSAGE: 🌳 ${{ inputs.branch }} 🤖 ${{ inputs.user }} 🗃️ ${{ inputs.spec }}
|
COMMIT_INFO_MESSAGE: 🌳 ${{ inputs.branch }} 🤖 ${{ inputs.user }} 🗃️ ${{ inputs.spec }}
|
||||||
SHELL: /bin/sh
|
SHELL: /bin/sh
|
||||||
|
|
||||||
# Check if all tests passed and set the output variable
|
- name: Upload test results artifact
|
||||||
check_testing_matrix:
|
if: always()
|
||||||
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||||
|
with:
|
||||||
|
name: test-results-${{ matrix.containers }}
|
||||||
|
path: cypress/test-results-*.xml
|
||||||
|
|
||||||
|
upload-to-currents:
|
||||||
|
needs: testing
|
||||||
|
if: always()
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [testing]
|
|
||||||
outputs:
|
|
||||||
all_tests_passed: ${{ steps.all_tests_passed.outputs.result }}
|
|
||||||
steps:
|
steps:
|
||||||
- name: Check all tests passed
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
id: all_tests_passed
|
|
||||||
|
- name: Download all test results
|
||||||
|
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||||
|
with:
|
||||||
|
path: test-results
|
||||||
|
|
||||||
|
- name: Merge and upload to Currents
|
||||||
run: |
|
run: |
|
||||||
success=true
|
npm install -g @currents/cmd junit-report-merger
|
||||||
for status in ${{ needs.testing.result }}; do
|
# Merge all XML files, so Currents can show a single view for Cypress
|
||||||
if [ $status != "success" ]; then
|
jrm combined-results.xml "test-results/**/test-results-*.xml"
|
||||||
success=false
|
|
||||||
break
|
- name: Upload merged XML as artifact
|
||||||
fi
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||||
done
|
with:
|
||||||
echo "::set-output name=result::$success"
|
name: merged-junit-results
|
||||||
|
path: combined-results.xml
|
||||||
|
|
||||||
|
- name: Convert and upload to Currents
|
||||||
|
run: |
|
||||||
|
currents convert \
|
||||||
|
--input-format=junit \
|
||||||
|
--input-file=combined-results.xml \
|
||||||
|
--output-dir=.currents \
|
||||||
|
--framework=node \
|
||||||
|
--framework-version=cypress-14.4.0
|
||||||
|
|
||||||
|
currents upload \
|
||||||
|
--project-id=I0yzoc \
|
||||||
|
--key=${{ secrets.CURRENTS_RECORD_KEY }} \
|
||||||
|
--ci-build-id=n8n-io/n8n-${{ github.run_id }}-${{ github.run_attempt }} \
|
||||||
|
--report-dir=.currents \
|
||||||
|
--tag=cypress
|
||||||
|
|||||||
59
.github/workflows/e2e-tests-pr.yml
vendored
59
.github/workflows/e2e-tests-pr.yml
vendored
@@ -24,56 +24,21 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
pr_number: ${{ github.event.pull_request.number }}
|
pr_number: ${{ github.event.pull_request.number }}
|
||||||
user: ${{ github.event.pull_request.user.login || 'PR User' }}
|
user: ${{ github.event.pull_request.user.login || 'PR User' }}
|
||||||
secrets:
|
secrets: inherit
|
||||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
|
||||||
|
run-playwright-tests:
|
||||||
|
name: Playwright
|
||||||
|
uses: ./.github/workflows/playwright-test-reusable.yml
|
||||||
|
needs: [eligibility_check]
|
||||||
|
if: needs.eligibility_check.outputs.should_run == 'true'
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
post-e2e-tests:
|
post-e2e-tests:
|
||||||
name: E2E - Checks
|
name: E2E - Checks
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [eligibility_check, run-e2e-tests]
|
needs: [eligibility_check, run-e2e-tests, run-playwright-tests]
|
||||||
if: always() && needs.eligibility_check.result != 'skipped'
|
if: always() && needs.eligibility_check.result != 'skipped'
|
||||||
steps:
|
steps:
|
||||||
- name: Determine Outcome and Comment Message
|
- name: Fail if tests failed
|
||||||
id: determine_outcome
|
if: needs.run-e2e-tests.result == 'failure' || needs.run-playwright-tests.result == 'failure'
|
||||||
run: |
|
run: exit 1
|
||||||
JOB_OUTCOME="success"
|
|
||||||
COMMENT_BODY=""
|
|
||||||
SHOULD_POST_COMMENT="false"
|
|
||||||
|
|
||||||
if [[ "${{ needs.eligibility_check.outputs.should_run }}" == "false" ]]; then
|
|
||||||
COMMENT_BODY="ℹ️ E2E tests were not run for this PR based on the eligibility criteria."
|
|
||||||
SHOULD_POST_COMMENT="true"
|
|
||||||
JOB_OUTCOME="success"
|
|
||||||
elif [[ "${{ needs.run-e2e-tests.result }}" == "success" ]]; then
|
|
||||||
COMMENT_BODY=":white_check_mark: All Cypress E2E specs passed"
|
|
||||||
SHOULD_POST_COMMENT="true"
|
|
||||||
JOB_OUTCOME="success"
|
|
||||||
elif [[ "${{ needs.run-e2e-tests.result }}" == "failure" ]]; then
|
|
||||||
COMMENT_BODY=":warning: Some Cypress E2E specs are failing, please fix them before merging"
|
|
||||||
SHOULD_POST_COMMENT="true"
|
|
||||||
JOB_OUTCOME="failure"
|
|
||||||
else
|
|
||||||
COMMENT_BODY="ℹ️ E2E tests were scheduled but did not complete as expected (Result: ${{ needs.run-e2e-tests.result }})."
|
|
||||||
SHOULD_POST_COMMENT="true"
|
|
||||||
JOB_OUTCOME="failure"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "comment_body=$COMMENT_BODY" >> $GITHUB_OUTPUT
|
|
||||||
echo "should_post_comment=$SHOULD_POST_COMMENT" >> $GITHUB_OUTPUT
|
|
||||||
echo "job_outcome=$JOB_OUTCOME" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Create or Update PR Comment
|
|
||||||
if: steps.determine_outcome.outputs.should_post_comment == 'true' && needs.eligibility_check.outputs.should_run == 'true'
|
|
||||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043
|
|
||||||
with:
|
|
||||||
issue-number: ${{ github.event.pull_request.number }}
|
|
||||||
body: ${{ steps.determine_outcome.outputs.comment_body }}
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Finalize Job Status
|
|
||||||
run: |
|
|
||||||
if [[ "${{ steps.determine_outcome.outputs.job_outcome }}" == "failure" ]]; then
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|||||||
10
.github/workflows/e2e-tests.yml
vendored
10
.github/workflows/e2e-tests.yml
vendored
@@ -48,13 +48,17 @@ jobs:
|
|||||||
branch: ${{ github.event.inputs.branch || 'master' }}
|
branch: ${{ github.event.inputs.branch || 'master' }}
|
||||||
user: ${{ github.event.inputs.user || 'PR User' }}
|
user: ${{ github.event.inputs.user || 'PR User' }}
|
||||||
spec: ${{ github.event.inputs.spec || 'e2e/*' }}
|
spec: ${{ github.event.inputs.spec || 'e2e/*' }}
|
||||||
secrets:
|
secrets: inherit
|
||||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
|
||||||
|
run-playwright-tests:
|
||||||
|
name: Playwright
|
||||||
|
uses: ./.github/workflows/playwright-test-reusable.yml
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
calls-success-url-notify:
|
calls-success-url-notify:
|
||||||
name: Calls success URL and notifies
|
name: Calls success URL and notifies
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [run-e2e-tests]
|
needs: [run-e2e-tests, run-playwright-tests]
|
||||||
if: ${{ github.event.inputs.success-url != '' }}
|
if: ${{ github.event.inputs.success-url != '' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Notify Slack on failure
|
- name: Notify Slack on failure
|
||||||
|
|||||||
13
.github/workflows/playwright-test-docker-build.yml
vendored
Normal file
13
.github/workflows/playwright-test-docker-build.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
name: Run Playwright Tests (Docker Build)
|
||||||
|
# This workflow is used to run Playwright tests in a Docker container built from the current branch
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-test:
|
||||||
|
uses: ./.github/workflows/playwright-test-reusable.yml
|
||||||
|
with:
|
||||||
|
test-mode: docker-build
|
||||||
|
secrets: inherit
|
||||||
37
.github/workflows/playwright-test-docker-pull.yml
vendored
Normal file
37
.github/workflows/playwright-test-docker-pull.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
name: Run Playwright Tests (Docker Pull)
|
||||||
|
# This workflow is used to run Playwright tests in a Docker container pulled from the registry
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
shards:
|
||||||
|
description: 'Shards for parallel execution'
|
||||||
|
required: false
|
||||||
|
default: '[1]'
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
description: 'Image to use'
|
||||||
|
required: false
|
||||||
|
default: 'n8nio/n8n:nightly'
|
||||||
|
type: string
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
shards:
|
||||||
|
description: 'Shards for parallel execution'
|
||||||
|
required: false
|
||||||
|
default: '[1]'
|
||||||
|
type: string
|
||||||
|
image:
|
||||||
|
description: 'Image to use'
|
||||||
|
required: false
|
||||||
|
default: 'n8nio/n8n:nightly'
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-test:
|
||||||
|
uses: ./.github/workflows/playwright-test-reusable.yml
|
||||||
|
with:
|
||||||
|
test-mode: docker-pull
|
||||||
|
shards: ${{ inputs.shards }}
|
||||||
|
docker-image: ${{ inputs.image }}
|
||||||
|
secrets: inherit
|
||||||
84
.github/workflows/playwright-test-reusable.yml
vendored
Normal file
84
.github/workflows/playwright-test-reusable.yml
vendored
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
name: Playwright Tests - Reusable
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
test-mode:
|
||||||
|
description: 'Test mode: local (pnpm start from local), docker-build, or docker-pull'
|
||||||
|
required: false
|
||||||
|
default: 'local'
|
||||||
|
type: string
|
||||||
|
shards:
|
||||||
|
description: 'Shards for parallel execution'
|
||||||
|
required: false
|
||||||
|
default: '[1]'
|
||||||
|
type: string
|
||||||
|
docker-image:
|
||||||
|
description: 'Docker image to use (for docker-pull mode)'
|
||||||
|
required: false
|
||||||
|
default: 'n8nio/n8n:nightly'
|
||||||
|
type: string
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
CURRENTS_RECORD_KEY:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
PLAYWRIGHT_BROWSERS_PATH: packages/testing/playwright/ms-playwright-cache
|
||||||
|
NODE_OPTIONS: --max-old-space-size=4096
|
||||||
|
# Disable Ryuk to avoid issues with Docker since it needs privileged access, containers are cleaned on teardown anyway
|
||||||
|
TESTCONTAINERS_RYUK_DISABLED: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: blacksmith-2vcpu-ubuntu-2204
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
shard: ${{ fromJSON(inputs.shards || '[1]') }}
|
||||||
|
name: Test (Shard ${{ matrix.shard }}/${{ strategy.job-total }})
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
|
||||||
|
- name: Setup Environment
|
||||||
|
uses: ./.github/actions/setup-nodejs-blacksmith
|
||||||
|
with:
|
||||||
|
build-command: ${{ inputs.test-mode == 'docker-build' && 'pnpm build:docker' || 'pnpm turbo build:playwright' }}
|
||||||
|
enable-docker-cache: ${{ inputs.test-mode != 'local' }}
|
||||||
|
|
||||||
|
- name: Install Browsers (Docker Build)
|
||||||
|
if: inputs.test-mode == 'docker-build'
|
||||||
|
run: pnpm turbo install-browsers:ci
|
||||||
|
|
||||||
|
- name: Start Local Server
|
||||||
|
if: inputs.test-mode == 'local'
|
||||||
|
env:
|
||||||
|
E2E_TESTS: true
|
||||||
|
run: |
|
||||||
|
pnpm start &
|
||||||
|
npx wait-on http://localhost:5678 --timeout 15000
|
||||||
|
|
||||||
|
- name: Run Tests (Local)
|
||||||
|
if: inputs.test-mode == 'local'
|
||||||
|
run: |
|
||||||
|
pnpm --filter=n8n-playwright test \
|
||||||
|
--shard=${{ matrix.shard }}/${{ strategy.job-total }} \
|
||||||
|
--workers=2
|
||||||
|
env:
|
||||||
|
N8N_BASE_URL: http://localhost:5678
|
||||||
|
RESET_E2E_DB: true
|
||||||
|
CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }}
|
||||||
|
|
||||||
|
- name: Run Tests (Docker)
|
||||||
|
if: inputs.test-mode != 'local'
|
||||||
|
run: |
|
||||||
|
pnpm --filter=n8n-playwright run test:standard \
|
||||||
|
--shard=${{ matrix.shard }}/${{ strategy.job-total }} \
|
||||||
|
--workers=2
|
||||||
|
env:
|
||||||
|
N8N_DOCKER_IMAGE: ${{ inputs.test-mode == 'docker-build' && 'n8nio/n8n:local' || inputs.docker-image }}
|
||||||
|
CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }}
|
||||||
@@ -31,4 +31,8 @@ module.exports = defineConfig({
|
|||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
reporter: 'mocha-junit-reporter',
|
||||||
|
reporterOptions: {
|
||||||
|
mochaFile: 'test-results-[hash].xml',
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
"@n8n/api-types": "workspace:*",
|
"@n8n/api-types": "workspace:*",
|
||||||
"@types/lodash": "catalog:",
|
"@types/lodash": "catalog:",
|
||||||
"eslint-plugin-cypress": "^4.3.0",
|
"eslint-plugin-cypress": "^4.3.0",
|
||||||
|
"mocha-junit-reporter": "^2.2.1",
|
||||||
"n8n-workflow": "workspace:*"
|
"n8n-workflow": "workspace:*"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import type { CurrentsConfig } from '@currents/playwright';
|
import type { CurrentsConfig } from '@currents/playwright';
|
||||||
|
|
||||||
export const config: CurrentsConfig = {
|
const config: CurrentsConfig = {
|
||||||
recordKey: process.env.CURRENTS_RECORD_KEY ?? '',
|
recordKey: process.env.CURRENTS_RECORD_KEY ?? '',
|
||||||
projectId: process.env.CURRENTS_PROJECT_ID ?? 'I0yzoc',
|
projectId: process.env.CURRENTS_PROJECT_ID ?? 'I0yzoc',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// eslint-disable-next-line import-x/no-default-export
|
||||||
|
export default config;
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
import { request } from '@playwright/test';
|
import { request } from '@playwright/test';
|
||||||
|
|
||||||
import { ApiHelpers } from './services/api-helper';
|
import { ApiHelpers } from './services/api-helper';
|
||||||
|
import { createN8NStack } from 'n8n-containers/n8n-test-container-creation';
|
||||||
|
|
||||||
|
async function pullImagesForCI() {
|
||||||
|
console.log(`🔄 Pulling images for ${process.env.N8N_DOCKER_IMAGE}...`);
|
||||||
|
const stack = await createN8NStack({
|
||||||
|
postgres: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(`🔄 Images pulled for ${process.env.N8N_DOCKER_IMAGE}...`);
|
||||||
|
|
||||||
|
await stack.stop();
|
||||||
|
}
|
||||||
|
|
||||||
async function globalSetup() {
|
async function globalSetup() {
|
||||||
console.log('🚀 Starting global setup...');
|
console.log('🚀 Starting global setup...');
|
||||||
@@ -9,6 +21,9 @@ async function globalSetup() {
|
|||||||
const n8nBaseUrl = process.env.N8N_BASE_URL;
|
const n8nBaseUrl = process.env.N8N_BASE_URL;
|
||||||
if (!n8nBaseUrl) {
|
if (!n8nBaseUrl) {
|
||||||
console.log('⚠️ N8N_BASE_URL environment variable is not set, skipping database reset');
|
console.log('⚠️ N8N_BASE_URL environment variable is not set, skipping database reset');
|
||||||
|
if (process.env.CI) {
|
||||||
|
await pullImagesForCI();
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
/* eslint-disable import-x/no-default-export */
|
/* eslint-disable import-x/no-default-export */
|
||||||
|
import { currentsReporter } from '@currents/playwright';
|
||||||
import type { Project } from '@playwright/test';
|
import type { Project } from '@playwright/test';
|
||||||
import { defineConfig } from '@playwright/test';
|
import { defineConfig } from '@playwright/test';
|
||||||
|
|
||||||
|
import currentsConfig from './currents.config';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mode-based Test Configuration
|
* Mode-based Test Configuration
|
||||||
*
|
*
|
||||||
@@ -105,6 +108,7 @@ export default defineConfig({
|
|||||||
['html', { open: 'never' }],
|
['html', { open: 'never' }],
|
||||||
['json', { outputFile: 'test-results.json' }],
|
['json', { outputFile: 'test-results.json' }],
|
||||||
['blob'],
|
['blob'],
|
||||||
|
currentsReporter(currentsConfig),
|
||||||
]
|
]
|
||||||
: [['html']],
|
: [['html']],
|
||||||
|
|
||||||
|
|||||||
255
pnpm-lock.yaml
generated
255
pnpm-lock.yaml
generated
@@ -375,6 +375,9 @@ importers:
|
|||||||
eslint-plugin-cypress:
|
eslint-plugin-cypress:
|
||||||
specifier: ^4.3.0
|
specifier: ^4.3.0
|
||||||
version: 4.3.0(eslint@9.29.0(jiti@1.21.7))
|
version: 4.3.0(eslint@9.29.0(jiti@1.21.7))
|
||||||
|
mocha-junit-reporter:
|
||||||
|
specifier: ^2.2.1
|
||||||
|
version: 2.2.1(mocha@11.7.1)
|
||||||
n8n-workflow:
|
n8n-workflow:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../packages/workflow
|
version: link:../packages/workflow
|
||||||
@@ -4328,12 +4331,6 @@ packages:
|
|||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.4.0':
|
|
||||||
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
peerDependencies:
|
|
||||||
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
|
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.7.0':
|
'@eslint-community/eslint-utils@4.7.0':
|
||||||
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
|
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
@@ -6889,9 +6886,6 @@ packages:
|
|||||||
'@types/eslint@9.6.1':
|
'@types/eslint@9.6.1':
|
||||||
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
|
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
|
||||||
|
|
||||||
'@types/estree@1.0.6':
|
|
||||||
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
|
|
||||||
|
|
||||||
'@types/estree@1.0.8':
|
'@types/estree@1.0.8':
|
||||||
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
|
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
|
||||||
|
|
||||||
@@ -8228,6 +8222,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==}
|
resolution: {integrity: sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==}
|
||||||
engines: {'0': node}
|
engines: {'0': node}
|
||||||
|
|
||||||
|
browser-stdout@1.3.1:
|
||||||
|
resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==}
|
||||||
|
|
||||||
browserslist-to-esbuild@2.1.1:
|
browserslist-to-esbuild@2.1.1:
|
||||||
resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==}
|
resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==}
|
||||||
engines: {node: '>=18'}
|
engines: {node: '>=18'}
|
||||||
@@ -9097,6 +9094,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
decamelize@4.0.0:
|
||||||
|
resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
decimal.js@10.4.3:
|
decimal.js@10.4.3:
|
||||||
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
|
resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
|
||||||
|
|
||||||
@@ -9199,6 +9200,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
||||||
engines: {node: '>=0.3.1'}
|
engines: {node: '>=0.3.1'}
|
||||||
|
|
||||||
|
diff@7.0.0:
|
||||||
|
resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==}
|
||||||
|
engines: {node: '>=0.3.1'}
|
||||||
|
|
||||||
dingbat-to-unicode@1.0.1:
|
dingbat-to-unicode@1.0.1:
|
||||||
resolution: {integrity: sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==}
|
resolution: {integrity: sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==}
|
||||||
|
|
||||||
@@ -9667,10 +9672,6 @@ packages:
|
|||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
esquery@1.5.0:
|
|
||||||
resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
|
|
||||||
engines: {node: '>=0.10'}
|
|
||||||
|
|
||||||
esquery@1.6.0:
|
esquery@1.6.0:
|
||||||
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
|
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
|
||||||
engines: {node: '>=0.10'}
|
engines: {node: '>=0.10'}
|
||||||
@@ -10475,10 +10476,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
|
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
|
||||||
http-proxy-agent@7.0.0:
|
|
||||||
resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
|
|
||||||
engines: {node: '>= 14'}
|
|
||||||
|
|
||||||
http-proxy-agent@7.0.2:
|
http-proxy-agent@7.0.2:
|
||||||
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
|
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
|
||||||
engines: {node: '>= 14'}
|
engines: {node: '>= 14'}
|
||||||
@@ -10805,6 +10802,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
|
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
is-plain-obj@2.1.0:
|
||||||
|
resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
is-plain-obj@4.1.0:
|
is-plain-obj@4.1.0:
|
||||||
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
|
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
@@ -12098,8 +12099,10 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
mlly@1.7.1:
|
mkdirp@3.0.1:
|
||||||
resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
|
resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
mlly@1.7.4:
|
mlly@1.7.4:
|
||||||
resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
|
resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
|
||||||
@@ -12133,6 +12136,16 @@ packages:
|
|||||||
mobx@6.12.0:
|
mobx@6.12.0:
|
||||||
resolution: {integrity: sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ==}
|
resolution: {integrity: sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ==}
|
||||||
|
|
||||||
|
mocha-junit-reporter@2.2.1:
|
||||||
|
resolution: {integrity: sha512-iDn2tlKHn8Vh8o4nCzcUVW4q7iXp7cC4EB78N0cDHIobLymyHNwe0XG8HEHHjc3hJlXm0Vy6zcrxaIhnI2fWmw==}
|
||||||
|
peerDependencies:
|
||||||
|
mocha: '>=2.2.5'
|
||||||
|
|
||||||
|
mocha@11.7.1:
|
||||||
|
resolution: {integrity: sha512-5EK+Cty6KheMS/YLPPMJC64g5V61gIR25KsRItHw6x4hEKT6Njp1n9LOlH4gpevuwMVS66SXaBBpg+RWZkza4A==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
module-details-from-path@1.0.3:
|
module-details-from-path@1.0.3:
|
||||||
resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==}
|
resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==}
|
||||||
|
|
||||||
@@ -12931,9 +12944,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
|
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
pkg-types@1.1.3:
|
|
||||||
resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==}
|
|
||||||
|
|
||||||
pkg-types@1.3.1:
|
pkg-types@1.3.1:
|
||||||
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
|
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
|
||||||
|
|
||||||
@@ -14779,9 +14789,6 @@ packages:
|
|||||||
uc.micro@2.1.0:
|
uc.micro@2.1.0:
|
||||||
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
|
resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
|
||||||
|
|
||||||
ufo@1.5.4:
|
|
||||||
resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
|
|
||||||
|
|
||||||
ufo@1.6.1:
|
ufo@1.6.1:
|
||||||
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
|
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
|
||||||
|
|
||||||
@@ -15455,6 +15462,9 @@ packages:
|
|||||||
worker-timers@7.1.8:
|
worker-timers@7.1.8:
|
||||||
resolution: {integrity: sha512-R54psRKYVLuzff7c1OTFcq/4Hue5Vlz4bFtNEIarpSiCYhpifHU3aIQI29S84o1j87ePCYqbmEJPqwBTf+3sfw==}
|
resolution: {integrity: sha512-R54psRKYVLuzff7c1OTFcq/4Hue5Vlz4bFtNEIarpSiCYhpifHU3aIQI29S84o1j87ePCYqbmEJPqwBTf+3sfw==}
|
||||||
|
|
||||||
|
workerpool@9.3.3:
|
||||||
|
resolution: {integrity: sha512-slxCaKbYjEdFT/o2rH9xS1hf4uRDch1w7Uo+apxhZ+sf/1d9e0ZVkn42kPNGP2dgjIx6YFvSevj0zHvbWe2jdw==}
|
||||||
|
|
||||||
wrap-ansi@6.2.0:
|
wrap-ansi@6.2.0:
|
||||||
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
|
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -15602,6 +15612,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
|
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
yargs-unparser@2.0.0:
|
||||||
|
resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
yargs@16.2.0:
|
yargs@16.2.0:
|
||||||
resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
|
resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -16591,7 +16605,7 @@ snapshots:
|
|||||||
|
|
||||||
'@azure/abort-controller@1.1.0':
|
'@azure/abort-controller@1.1.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.6.2
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@azure/abort-controller@2.0.0':
|
'@azure/abort-controller@2.0.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -16611,7 +16625,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@azure/abort-controller': 2.1.2
|
'@azure/abort-controller': 2.1.2
|
||||||
'@azure/core-util': 1.12.0
|
'@azure/core-util': 1.12.0
|
||||||
tslib: 2.6.2
|
tslib: 2.8.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -16623,7 +16637,7 @@ snapshots:
|
|||||||
'@azure/core-tracing': 1.0.1
|
'@azure/core-tracing': 1.0.1
|
||||||
'@azure/core-util': 1.7.0
|
'@azure/core-util': 1.7.0
|
||||||
'@azure/logger': 1.0.3
|
'@azure/logger': 1.0.3
|
||||||
tslib: 2.6.2
|
tslib: 2.8.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -16661,7 +16675,7 @@ snapshots:
|
|||||||
'@azure/core-util': 1.12.0
|
'@azure/core-util': 1.12.0
|
||||||
'@azure/logger': 1.0.3
|
'@azure/logger': 1.0.3
|
||||||
'@typespec/ts-http-runtime': 0.2.2
|
'@typespec/ts-http-runtime': 0.2.2
|
||||||
tslib: 2.6.2
|
tslib: 2.8.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -16686,13 +16700,13 @@ snapshots:
|
|||||||
|
|
||||||
'@azure/core-tracing@1.2.0':
|
'@azure/core-tracing@1.2.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.6.2
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@azure/core-util@1.12.0':
|
'@azure/core-util@1.12.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@azure/abort-controller': 2.1.2
|
'@azure/abort-controller': 2.1.2
|
||||||
'@typespec/ts-http-runtime': 0.2.2
|
'@typespec/ts-http-runtime': 0.2.2
|
||||||
tslib: 2.6.2
|
tslib: 2.8.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -16759,7 +16773,7 @@ snapshots:
|
|||||||
|
|
||||||
'@azure/logger@1.0.3':
|
'@azure/logger@1.0.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.6.2
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@azure/msal-browser@3.19.0':
|
'@azure/msal-browser@3.19.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -16810,15 +16824,15 @@ snapshots:
|
|||||||
'@babel/core@7.26.10':
|
'@babel/core@7.26.10':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@ampproject/remapping': 2.3.0
|
'@ampproject/remapping': 2.3.0
|
||||||
'@babel/code-frame': 7.26.2
|
'@babel/code-frame': 7.27.1
|
||||||
'@babel/generator': 7.26.10
|
'@babel/generator': 7.26.10
|
||||||
'@babel/helper-compilation-targets': 7.26.5
|
'@babel/helper-compilation-targets': 7.27.2
|
||||||
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
|
'@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10)
|
||||||
'@babel/helpers': 7.26.10
|
'@babel/helpers': 7.26.10
|
||||||
'@babel/parser': 7.26.10
|
'@babel/parser': 7.27.5
|
||||||
'@babel/template': 7.26.9
|
'@babel/template': 7.26.9
|
||||||
'@babel/traverse': 7.26.10
|
'@babel/traverse': 7.26.10
|
||||||
'@babel/types': 7.26.10
|
'@babel/types': 7.27.6
|
||||||
convert-source-map: 2.0.0
|
convert-source-map: 2.0.0
|
||||||
debug: 4.4.1(supports-color@8.1.1)
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
gensync: 1.0.0-beta.2
|
gensync: 1.0.0-beta.2
|
||||||
@@ -16851,7 +16865,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@babel/compat-data': 7.27.5
|
'@babel/compat-data': 7.27.5
|
||||||
'@babel/helper-validator-option': 7.27.1
|
'@babel/helper-validator-option': 7.27.1
|
||||||
browserslist: 4.24.4
|
browserslist: 4.25.0
|
||||||
lru-cache: 5.1.1
|
lru-cache: 5.1.1
|
||||||
semver: 7.7.2
|
semver: 7.7.2
|
||||||
|
|
||||||
@@ -17510,13 +17524,13 @@ snapshots:
|
|||||||
|
|
||||||
'@babel/template@7.26.9':
|
'@babel/template@7.26.9':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/code-frame': 7.26.2
|
'@babel/code-frame': 7.27.1
|
||||||
'@babel/parser': 7.26.10
|
'@babel/parser': 7.27.5
|
||||||
'@babel/types': 7.26.10
|
'@babel/types': 7.27.6
|
||||||
|
|
||||||
'@babel/traverse@7.26.10':
|
'@babel/traverse@7.26.10':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/code-frame': 7.26.2
|
'@babel/code-frame': 7.27.1
|
||||||
'@babel/generator': 7.26.10
|
'@babel/generator': 7.26.10
|
||||||
'@babel/parser': 7.27.5
|
'@babel/parser': 7.27.5
|
||||||
'@babel/template': 7.26.9
|
'@babel/template': 7.26.9
|
||||||
@@ -17756,7 +17770,7 @@ snapshots:
|
|||||||
'@currents/commit-info': 1.0.1-beta.0
|
'@currents/commit-info': 1.0.1-beta.0
|
||||||
async-retry: 1.3.3
|
async-retry: 1.3.3
|
||||||
axios: 1.10.0(debug@4.4.1)
|
axios: 1.10.0(debug@4.4.1)
|
||||||
axios-retry: 4.5.0(axios@1.10.0)
|
axios-retry: 4.5.0(axios@1.10.0(debug@4.4.1))
|
||||||
c12: 1.11.2(magicast@0.3.5)
|
c12: 1.11.2(magicast@0.3.5)
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
commander: 12.1.0
|
commander: 12.1.0
|
||||||
@@ -17945,11 +17959,6 @@ snapshots:
|
|||||||
'@esbuild/win32-x64@0.24.2':
|
'@esbuild/win32-x64@0.24.2':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.4.0(eslint@9.29.0(jiti@1.21.7))':
|
|
||||||
dependencies:
|
|
||||||
eslint: 9.29.0(jiti@1.21.7)
|
|
||||||
eslint-visitor-keys: 3.4.3
|
|
||||||
|
|
||||||
'@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@1.21.7))':
|
'@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@1.21.7))':
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.29.0(jiti@1.21.7)
|
eslint: 9.29.0(jiti@1.21.7)
|
||||||
@@ -18206,7 +18215,7 @@ snapshots:
|
|||||||
debug: 4.4.1(supports-color@8.1.1)
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
kolorist: 1.8.0
|
kolorist: 1.8.0
|
||||||
local-pkg: 0.5.0
|
local-pkg: 0.5.0
|
||||||
mlly: 1.7.1
|
mlly: 1.7.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -20798,7 +20807,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/asn1@0.2.0':
|
'@types/asn1@0.2.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
|
|
||||||
'@types/aws4@1.11.2':
|
'@types/aws4@1.11.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -20884,8 +20893,6 @@ snapshots:
|
|||||||
'@types/estree': 1.0.8
|
'@types/estree': 1.0.8
|
||||||
'@types/json-schema': 7.0.15
|
'@types/json-schema': 7.0.15
|
||||||
|
|
||||||
'@types/estree@1.0.6': {}
|
|
||||||
|
|
||||||
'@types/estree@1.0.8': {}
|
'@types/estree@1.0.8': {}
|
||||||
|
|
||||||
'@types/eventsource@1.1.9': {}
|
'@types/eventsource@1.1.9': {}
|
||||||
@@ -20919,12 +20926,12 @@ snapshots:
|
|||||||
|
|
||||||
'@types/ftp@0.3.33':
|
'@types/ftp@0.3.33':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
|
|
||||||
'@types/glob@8.0.0':
|
'@types/glob@8.0.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/minimatch': 5.1.2
|
'@types/minimatch': 5.1.2
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
|
|
||||||
'@types/gm@1.25.0':
|
'@types/gm@1.25.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -20984,7 +20991,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/jsonfile@6.1.4':
|
'@types/jsonfile@6.1.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@types/jsonpath@0.2.0': {}
|
'@types/jsonpath@0.2.0': {}
|
||||||
@@ -21064,7 +21071,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/node-fetch@2.6.12':
|
'@types/node-fetch@2.6.12':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
form-data: 4.0.2
|
form-data: 4.0.2
|
||||||
|
|
||||||
'@types/node@20.17.57':
|
'@types/node@20.17.57':
|
||||||
@@ -21192,7 +21199,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/ssh2@1.11.6':
|
'@types/ssh2@1.11.6':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
|
|
||||||
'@types/sshpk@1.17.4':
|
'@types/sshpk@1.17.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -21230,7 +21237,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/tedious@4.0.9':
|
'@types/tedious@4.0.9':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
|
|
||||||
'@types/temp@0.9.4':
|
'@types/temp@0.9.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -21238,7 +21245,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/through@0.0.30':
|
'@types/through@0.0.30':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
|
|
||||||
'@types/tough-cookie@4.0.2': {}
|
'@types/tough-cookie@4.0.2': {}
|
||||||
|
|
||||||
@@ -22278,16 +22285,29 @@ snapshots:
|
|||||||
|
|
||||||
axe-core@4.7.2: {}
|
axe-core@4.7.2: {}
|
||||||
|
|
||||||
axios-retry@4.5.0(axios@1.10.0):
|
axios-retry@4.5.0(axios@1.10.0(debug@4.4.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.10.0(debug@4.4.1)
|
axios: 1.10.0(debug@4.4.1)
|
||||||
is-retry-allowed: 2.2.0
|
is-retry-allowed: 2.2.0
|
||||||
|
|
||||||
|
axios-retry@4.5.0(axios@1.10.0):
|
||||||
|
dependencies:
|
||||||
|
axios: 1.10.0
|
||||||
|
is-retry-allowed: 2.2.0
|
||||||
|
|
||||||
axios-retry@4.5.0(axios@1.8.3):
|
axios-retry@4.5.0(axios@1.8.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.8.3
|
axios: 1.8.3
|
||||||
is-retry-allowed: 2.2.0
|
is-retry-allowed: 2.2.0
|
||||||
|
|
||||||
|
axios@1.10.0:
|
||||||
|
dependencies:
|
||||||
|
follow-redirects: 1.15.9(debug@4.3.6)
|
||||||
|
form-data: 4.0.2
|
||||||
|
proxy-from-env: 1.1.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- debug
|
||||||
|
|
||||||
axios@1.10.0(debug@4.3.6):
|
axios@1.10.0(debug@4.3.6):
|
||||||
dependencies:
|
dependencies:
|
||||||
follow-redirects: 1.15.9(debug@4.3.6)
|
follow-redirects: 1.15.9(debug@4.3.6)
|
||||||
@@ -22509,6 +22529,8 @@ snapshots:
|
|||||||
|
|
||||||
browser-request@0.3.3: {}
|
browser-request@0.3.3: {}
|
||||||
|
|
||||||
|
browser-stdout@1.3.1: {}
|
||||||
|
|
||||||
browserslist-to-esbuild@2.1.1(browserslist@4.24.4):
|
browserslist-to-esbuild@2.1.1(browserslist@4.24.4):
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist: 4.24.4
|
browserslist: 4.24.4
|
||||||
@@ -22586,7 +22608,7 @@ snapshots:
|
|||||||
|
|
||||||
bundlemon@3.1.0(typescript@5.8.3):
|
bundlemon@3.1.0(typescript@5.8.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.10.0(debug@4.4.1)
|
axios: 1.10.0
|
||||||
axios-retry: 4.5.0(axios@1.10.0)
|
axios-retry: 4.5.0(axios@1.10.0)
|
||||||
brotli-size: 4.0.0
|
brotli-size: 4.0.0
|
||||||
bundlemon-utils: 2.0.1
|
bundlemon-utils: 2.0.1
|
||||||
@@ -23507,6 +23529,8 @@ snapshots:
|
|||||||
|
|
||||||
decamelize@1.2.0: {}
|
decamelize@1.2.0: {}
|
||||||
|
|
||||||
|
decamelize@4.0.0: {}
|
||||||
|
|
||||||
decimal.js@10.4.3: {}
|
decimal.js@10.4.3: {}
|
||||||
|
|
||||||
decko@1.2.0: {}
|
decko@1.2.0: {}
|
||||||
@@ -23596,6 +23620,8 @@ snapshots:
|
|||||||
diff@4.0.2:
|
diff@4.0.2:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
diff@7.0.0: {}
|
||||||
|
|
||||||
dingbat-to-unicode@1.0.1: {}
|
dingbat-to-unicode@1.0.1: {}
|
||||||
|
|
||||||
dir-glob@3.0.1:
|
dir-glob@3.0.1:
|
||||||
@@ -24074,7 +24100,7 @@ snapshots:
|
|||||||
|
|
||||||
eslint-import-resolver-node@0.3.9:
|
eslint-import-resolver-node@0.3.9:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7(supports-color@8.1.1)
|
debug: 3.2.7(supports-color@5.5.0)
|
||||||
is-core-module: 2.16.1
|
is-core-module: 2.16.1
|
||||||
resolve: 1.22.10
|
resolve: 1.22.10
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -24098,7 +24124,7 @@ snapshots:
|
|||||||
|
|
||||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.35.0(eslint@9.29.0(jiti@1.21.7))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.7)):
|
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.35.0(eslint@9.29.0(jiti@1.21.7))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.3)(eslint@9.29.0(jiti@1.21.7)):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7(supports-color@8.1.1)
|
debug: 3.2.7(supports-color@5.5.0)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@typescript-eslint/parser': 8.35.0(eslint@9.29.0(jiti@1.21.7))(typescript@5.8.3)
|
'@typescript-eslint/parser': 8.35.0(eslint@9.29.0(jiti@1.21.7))(typescript@5.8.3)
|
||||||
eslint: 9.29.0(jiti@1.21.7)
|
eslint: 9.29.0(jiti@1.21.7)
|
||||||
@@ -24137,7 +24163,7 @@ snapshots:
|
|||||||
array.prototype.findlastindex: 1.2.6
|
array.prototype.findlastindex: 1.2.6
|
||||||
array.prototype.flat: 1.3.3
|
array.prototype.flat: 1.3.3
|
||||||
array.prototype.flatmap: 1.3.3
|
array.prototype.flatmap: 1.3.3
|
||||||
debug: 3.2.7(supports-color@8.1.1)
|
debug: 3.2.7(supports-color@5.5.0)
|
||||||
doctrine: 2.1.0
|
doctrine: 2.1.0
|
||||||
eslint: 9.29.0(jiti@1.21.7)
|
eslint: 9.29.0(jiti@1.21.7)
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
@@ -24235,7 +24261,7 @@ snapshots:
|
|||||||
|
|
||||||
eslint@9.29.0(jiti@1.21.7):
|
eslint@9.29.0(jiti@1.21.7):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.0(eslint@9.29.0(jiti@1.21.7))
|
'@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@1.21.7))
|
||||||
'@eslint-community/regexpp': 4.12.1
|
'@eslint-community/regexpp': 4.12.1
|
||||||
'@eslint/config-array': 0.20.1
|
'@eslint/config-array': 0.20.1
|
||||||
'@eslint/config-helpers': 0.2.3
|
'@eslint/config-helpers': 0.2.3
|
||||||
@@ -24246,7 +24272,7 @@ snapshots:
|
|||||||
'@humanfs/node': 0.16.6
|
'@humanfs/node': 0.16.6
|
||||||
'@humanwhocodes/module-importer': 1.0.1
|
'@humanwhocodes/module-importer': 1.0.1
|
||||||
'@humanwhocodes/retry': 0.4.3
|
'@humanwhocodes/retry': 0.4.3
|
||||||
'@types/estree': 1.0.6
|
'@types/estree': 1.0.8
|
||||||
'@types/json-schema': 7.0.15
|
'@types/json-schema': 7.0.15
|
||||||
ajv: 6.12.6
|
ajv: 6.12.6
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
@@ -24256,7 +24282,7 @@ snapshots:
|
|||||||
eslint-scope: 8.4.0
|
eslint-scope: 8.4.0
|
||||||
eslint-visitor-keys: 4.2.1
|
eslint-visitor-keys: 4.2.1
|
||||||
espree: 10.4.0
|
espree: 10.4.0
|
||||||
esquery: 1.5.0
|
esquery: 1.6.0
|
||||||
esutils: 2.0.3
|
esutils: 2.0.3
|
||||||
fast-deep-equal: 3.1.3
|
fast-deep-equal: 3.1.3
|
||||||
file-entry-cache: 8.0.0
|
file-entry-cache: 8.0.0
|
||||||
@@ -24289,10 +24315,6 @@ snapshots:
|
|||||||
|
|
||||||
esprima@4.0.1: {}
|
esprima@4.0.1: {}
|
||||||
|
|
||||||
esquery@1.5.0:
|
|
||||||
dependencies:
|
|
||||||
estraverse: 5.3.0
|
|
||||||
|
|
||||||
esquery@1.6.0:
|
esquery@1.6.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
estraverse: 5.3.0
|
estraverse: 5.3.0
|
||||||
@@ -25067,7 +25089,7 @@ snapshots:
|
|||||||
array-parallel: 0.1.3
|
array-parallel: 0.1.3
|
||||||
array-series: 0.1.5
|
array-series: 0.1.5
|
||||||
cross-spawn: 7.0.6
|
cross-spawn: 7.0.6
|
||||||
debug: 3.2.7(supports-color@8.1.1)
|
debug: 3.2.7(supports-color@5.5.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -25133,7 +25155,7 @@ snapshots:
|
|||||||
|
|
||||||
groq-sdk@0.19.0(encoding@0.1.13):
|
groq-sdk@0.19.0(encoding@0.1.13):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
'@types/node-fetch': 2.6.12
|
'@types/node-fetch': 2.6.12
|
||||||
abort-controller: 3.0.0
|
abort-controller: 3.0.0
|
||||||
agentkeepalive: 4.6.0
|
agentkeepalive: 4.6.0
|
||||||
@@ -25309,13 +25331,6 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
http-proxy-agent@7.0.0:
|
|
||||||
dependencies:
|
|
||||||
agent-base: 7.1.3
|
|
||||||
debug: 4.4.1(supports-color@8.1.1)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
|
|
||||||
http-proxy-agent@7.0.2:
|
http-proxy-agent@7.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base: 7.1.3
|
agent-base: 7.1.3
|
||||||
@@ -25448,7 +25463,7 @@ snapshots:
|
|||||||
|
|
||||||
infisical-node@1.3.0:
|
infisical-node@1.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.10.0(debug@4.4.1)
|
axios: 1.10.0
|
||||||
dotenv: 16.3.1
|
dotenv: 16.3.1
|
||||||
tweetnacl: 1.0.3
|
tweetnacl: 1.0.3
|
||||||
tweetnacl-util: 0.15.1
|
tweetnacl-util: 0.15.1
|
||||||
@@ -25681,6 +25696,8 @@ snapshots:
|
|||||||
|
|
||||||
is-path-inside@3.0.3: {}
|
is-path-inside@3.0.3: {}
|
||||||
|
|
||||||
|
is-plain-obj@2.1.0: {}
|
||||||
|
|
||||||
is-plain-obj@4.1.0: {}
|
is-plain-obj@4.1.0: {}
|
||||||
|
|
||||||
is-plain-object@5.0.0: {}
|
is-plain-object@5.0.0: {}
|
||||||
@@ -26434,7 +26451,7 @@ snapshots:
|
|||||||
decimal.js: 10.4.3
|
decimal.js: 10.4.3
|
||||||
form-data: 4.0.2
|
form-data: 4.0.2
|
||||||
html-encoding-sniffer: 4.0.0
|
html-encoding-sniffer: 4.0.0
|
||||||
http-proxy-agent: 7.0.0
|
http-proxy-agent: 7.0.2
|
||||||
https-proxy-agent: 7.0.6
|
https-proxy-agent: 7.0.6
|
||||||
is-potential-custom-element-name: 1.0.1
|
is-potential-custom-element-name: 1.0.1
|
||||||
nwsapi: 2.2.7
|
nwsapi: 2.2.7
|
||||||
@@ -26610,7 +26627,7 @@ snapshots:
|
|||||||
'@langchain/groq': 0.2.3(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))(encoding@0.1.13)
|
'@langchain/groq': 0.2.3(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))(encoding@0.1.13)
|
||||||
'@langchain/mistralai': 0.2.1(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))(zod@3.25.67)
|
'@langchain/mistralai': 0.2.1(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))(zod@3.25.67)
|
||||||
'@langchain/ollama': 0.2.3(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))
|
'@langchain/ollama': 0.2.3(@langchain/core@0.3.61(openai@5.8.1(ws@8.18.2)(zod@3.25.67)))
|
||||||
axios: 1.10.0(debug@4.4.1)
|
axios: 1.10.0
|
||||||
cheerio: 1.0.0
|
cheerio: 1.0.0
|
||||||
handlebars: 4.7.8
|
handlebars: 4.7.8
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -27466,12 +27483,7 @@ snapshots:
|
|||||||
|
|
||||||
mkdirp@2.1.3: {}
|
mkdirp@2.1.3: {}
|
||||||
|
|
||||||
mlly@1.7.1:
|
mkdirp@3.0.1: {}
|
||||||
dependencies:
|
|
||||||
acorn: 8.14.0
|
|
||||||
pathe: 1.1.2
|
|
||||||
pkg-types: 1.1.3
|
|
||||||
ufo: 1.5.4
|
|
||||||
|
|
||||||
mlly@1.7.4:
|
mlly@1.7.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -27498,6 +27510,40 @@ snapshots:
|
|||||||
|
|
||||||
mobx@6.12.0: {}
|
mobx@6.12.0: {}
|
||||||
|
|
||||||
|
mocha-junit-reporter@2.2.1(mocha@11.7.1):
|
||||||
|
dependencies:
|
||||||
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
|
md5: 2.3.0
|
||||||
|
mkdirp: 3.0.1
|
||||||
|
mocha: 11.7.1
|
||||||
|
strip-ansi: 6.0.1
|
||||||
|
xml: 1.0.1
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
mocha@11.7.1:
|
||||||
|
dependencies:
|
||||||
|
browser-stdout: 1.3.1
|
||||||
|
chokidar: 4.0.3
|
||||||
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
|
diff: 7.0.0
|
||||||
|
escape-string-regexp: 4.0.0
|
||||||
|
find-up: 5.0.0
|
||||||
|
glob: 10.4.5
|
||||||
|
he: 1.2.0
|
||||||
|
js-yaml: 4.1.0
|
||||||
|
log-symbols: 4.1.0
|
||||||
|
minimatch: 9.0.5
|
||||||
|
ms: 2.1.3
|
||||||
|
picocolors: 1.1.1
|
||||||
|
serialize-javascript: 6.0.2
|
||||||
|
strip-json-comments: 3.1.1
|
||||||
|
supports-color: 8.1.1
|
||||||
|
workerpool: 9.3.3
|
||||||
|
yargs: 17.7.2
|
||||||
|
yargs-parser: 21.1.1
|
||||||
|
yargs-unparser: 2.0.0
|
||||||
|
|
||||||
module-details-from-path@1.0.3: {}
|
module-details-from-path@1.0.3: {}
|
||||||
|
|
||||||
moment-timezone@0.5.37:
|
moment-timezone@0.5.37:
|
||||||
@@ -28210,7 +28256,7 @@ snapshots:
|
|||||||
|
|
||||||
pdf-parse@1.1.1:
|
pdf-parse@1.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7(supports-color@8.1.1)
|
debug: 3.2.7(supports-color@5.5.0)
|
||||||
node-ensure: 0.0.0
|
node-ensure: 0.0.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
@@ -28337,12 +28383,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
find-up: 4.1.0
|
find-up: 4.1.0
|
||||||
|
|
||||||
pkg-types@1.1.3:
|
|
||||||
dependencies:
|
|
||||||
confbox: 0.1.8
|
|
||||||
mlly: 1.7.4
|
|
||||||
pathe: 1.1.2
|
|
||||||
|
|
||||||
pkg-types@1.3.1:
|
pkg-types@1.3.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
confbox: 0.1.8
|
confbox: 0.1.8
|
||||||
@@ -28464,7 +28504,7 @@ snapshots:
|
|||||||
|
|
||||||
posthog-node@3.2.1:
|
posthog-node@3.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.10.0(debug@4.4.1)
|
axios: 1.10.0
|
||||||
rusha: 0.8.14
|
rusha: 0.8.14
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- debug
|
- debug
|
||||||
@@ -28599,7 +28639,7 @@ snapshots:
|
|||||||
'@protobufjs/path': 1.1.2
|
'@protobufjs/path': 1.1.2
|
||||||
'@protobufjs/pool': 1.1.0
|
'@protobufjs/pool': 1.1.0
|
||||||
'@protobufjs/utf8': 1.1.0
|
'@protobufjs/utf8': 1.1.0
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
long: 5.3.2
|
long: 5.3.2
|
||||||
|
|
||||||
proxy-addr@2.0.7:
|
proxy-addr@2.0.7:
|
||||||
@@ -29091,7 +29131,7 @@ snapshots:
|
|||||||
|
|
||||||
retry-axios@2.6.0(axios@1.10.0(debug@4.4.1)):
|
retry-axios@2.6.0(axios@1.10.0(debug@4.4.1)):
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 1.10.0(debug@4.4.1)
|
axios: 1.10.0
|
||||||
|
|
||||||
retry-request@7.0.2(encoding@0.1.13):
|
retry-request@7.0.2(encoding@0.1.13):
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -29116,7 +29156,7 @@ snapshots:
|
|||||||
|
|
||||||
rhea@1.0.24:
|
rhea@1.0.24:
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7(supports-color@8.1.1)
|
debug: 3.2.7(supports-color@5.5.0)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -29579,7 +29619,7 @@ snapshots:
|
|||||||
asn1.js: 5.4.1
|
asn1.js: 5.4.1
|
||||||
asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1)
|
asn1.js-rfc2560: 5.0.1(asn1.js@5.4.1)
|
||||||
asn1.js-rfc5280: 3.0.0
|
asn1.js-rfc5280: 3.0.0
|
||||||
axios: 1.10.0(debug@4.4.1)
|
axios: 1.10.0
|
||||||
big-integer: 1.6.52
|
big-integer: 1.6.52
|
||||||
bignumber.js: 9.1.2
|
bignumber.js: 9.1.2
|
||||||
binascii: 0.0.2
|
binascii: 0.0.2
|
||||||
@@ -30375,7 +30415,7 @@ snapshots:
|
|||||||
|
|
||||||
ts-type@3.0.1(ts-toolbelt@9.6.0):
|
ts-type@3.0.1(ts-toolbelt@9.6.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 20.17.57
|
'@types/node': 20.19.1
|
||||||
ts-toolbelt: 9.6.0
|
ts-toolbelt: 9.6.0
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
typedarray-dts: 1.0.0
|
typedarray-dts: 1.0.0
|
||||||
@@ -30600,8 +30640,6 @@ snapshots:
|
|||||||
|
|
||||||
uc.micro@2.1.0: {}
|
uc.micro@2.1.0: {}
|
||||||
|
|
||||||
ufo@1.5.4: {}
|
|
||||||
|
|
||||||
ufo@1.6.1: {}
|
ufo@1.6.1: {}
|
||||||
|
|
||||||
uglify-js@3.17.4: {}
|
uglify-js@3.17.4: {}
|
||||||
@@ -30672,7 +30710,7 @@ snapshots:
|
|||||||
'@antfu/install-pkg': 0.3.3
|
'@antfu/install-pkg': 0.3.3
|
||||||
'@antfu/utils': 0.7.10
|
'@antfu/utils': 0.7.10
|
||||||
'@iconify/utils': 2.1.25
|
'@iconify/utils': 2.1.25
|
||||||
debug: 4.4.0
|
debug: 4.4.1(supports-color@8.1.1)
|
||||||
kolorist: 1.8.0
|
kolorist: 1.8.0
|
||||||
local-pkg: 0.5.0
|
local-pkg: 0.5.0
|
||||||
unplugin: 1.11.0
|
unplugin: 1.11.0
|
||||||
@@ -31342,6 +31380,8 @@ snapshots:
|
|||||||
worker-timers-broker: 6.1.8
|
worker-timers-broker: 6.1.8
|
||||||
worker-timers-worker: 7.0.71
|
worker-timers-worker: 7.0.71
|
||||||
|
|
||||||
|
workerpool@9.3.3: {}
|
||||||
|
|
||||||
wrap-ansi@6.2.0:
|
wrap-ansi@6.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-styles: 4.3.0
|
ansi-styles: 4.3.0
|
||||||
@@ -31441,6 +31481,13 @@ snapshots:
|
|||||||
|
|
||||||
yargs-parser@21.1.1: {}
|
yargs-parser@21.1.1: {}
|
||||||
|
|
||||||
|
yargs-unparser@2.0.0:
|
||||||
|
dependencies:
|
||||||
|
camelcase: 6.3.0
|
||||||
|
decamelize: 4.0.0
|
||||||
|
flat: 5.0.2
|
||||||
|
is-plain-obj: 2.1.0
|
||||||
|
|
||||||
yargs@16.2.0:
|
yargs@16.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
cliui: 7.0.4
|
cliui: 7.0.4
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import path from 'path';
|
|||||||
// Disable verbose mode for cleaner output
|
// Disable verbose mode for cleaner output
|
||||||
$.verbose = false;
|
$.verbose = false;
|
||||||
process.env.FORCE_COLOR = '1';
|
process.env.FORCE_COLOR = '1';
|
||||||
process.env.DOCKER_BUILDKIT = '1';
|
|
||||||
|
|
||||||
// #region ===== Helper Functions =====
|
// #region ===== Helper Functions =====
|
||||||
|
|
||||||
@@ -136,10 +135,12 @@ async function buildDockerImage() {
|
|||||||
echo(chalk.yellow('INFO: Building Docker image...'));
|
echo(chalk.yellow('INFO: Building Docker image...'));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { stdout } = await $`DOCKER_BUILDKIT=1 docker build \
|
const { stdout } = await $`docker build \
|
||||||
--platform ${platform} \
|
--platform ${platform} \
|
||||||
|
--build-arg TARGETPLATFORM=${platform} \
|
||||||
-t ${config.fullImageName} \
|
-t ${config.fullImageName} \
|
||||||
-f ${config.dockerfilePath} \
|
-f ${config.dockerfilePath} \
|
||||||
|
--load \
|
||||||
${config.buildContext}`;
|
${config.buildContext}`;
|
||||||
|
|
||||||
echo(stdout);
|
echo(stdout);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"cache": false
|
"cache": false
|
||||||
},
|
},
|
||||||
"build:playwright": {
|
"build:playwright": {
|
||||||
"dependsOn": ["install-browsers", "build"]
|
"dependsOn": ["install-browsers:ci", "build"]
|
||||||
},
|
},
|
||||||
"build:backend": {
|
"build:backend": {
|
||||||
"dependsOn": ["n8n#build"]
|
"dependsOn": ["n8n#build"]
|
||||||
|
|||||||
Reference in New Issue
Block a user