From d181fa57f02e6d0c155213b97c8f71990306078c Mon Sep 17 00:00:00 2001 From: Brijesh Bittu <717550+brijeshb42@users.noreply.github.com> Date: Wed, 22 Oct 2025 12:26:36 +0530 Subject: [PATCH] [code-infra] Use code-infra orb --- .circleci/config.yml | 200 ++++-------- dangerfile.js | 6 - package.json | 3 - pnpm-lock.yaml | 286 ------------------ scripts/dangerFileContent.ts | 111 ------- scripts/testBuiltTypes.mjs | 38 --- scripts/validateTypescriptDeclarations.mts | 28 -- .../bundle-size-checker.config.mjs | 2 +- 8 files changed, 62 insertions(+), 612 deletions(-) delete mode 100644 dangerfile.js delete mode 100644 scripts/dangerFileContent.ts delete mode 100644 scripts/testBuiltTypes.mjs delete mode 100644 scripts/validateTypescriptDeclarations.mts diff --git a/.circleci/config.yml b/.circleci/config.yml index 87719fdd8a5bee..61e140ace095a2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,6 +2,7 @@ version: 2.1 orbs: aws-cli: circleci/aws-cli@5.4.1 aws-s3: circleci/aws-s3@4.1.3 + code-infra: https://raw.githubusercontent.com/mui/mui-public/refs/heads/ci-orb/packages/code-infra/circleci/code-infra.yml parameters: browserstack-force: @@ -42,12 +43,9 @@ default-job: &default-job # expose it globally otherwise we have to thread it from each job to the install command BROWSERSTACK_FORCE: << pipeline.parameters.browserstack-force >> BROWSERSTACK_ENABLED: << parameters.browserstack-enabled >> - REACT_VERSION: << parameters.react-version >> - TYPESCRIPT_VERSION: << parameters.typescript-version >> TEST_GATE: << parameters.test-gate >> AWS_REGION_ARTIFACTS: eu-central-1 COREPACK_ENABLE_DOWNLOAD_PROMPT: '0' - DANGER_DISABLE_TRANSPILATION: 'true' working_directory: /tmp/material-ui docker: - image: cimg/node:22.18 @@ -66,60 +64,33 @@ default-context: &default-context # key: v1-repo-{{ .Branch }}-{{ .Revision }} commands: - setup_corepack: + install-deps: parameters: browsers: type: boolean default: false - description: 'Set to true if you intend to any browser (for example with playwright).' - steps: - - run: - name: Set npm registry public signing keys - command: | - echo "export COREPACK_INTEGRITY_KEYS='$(curl https://registry.npmjs.org/-/npm/v1/keys | jq -c '{npm: .keys}')'" >> $BASH_ENV - - when: - condition: << parameters.browsers >> - steps: - - run: - name: Install pnpm package manager - command: corepack enable - - when: - condition: - not: << parameters.browsers >> - steps: - - run: - name: Install pnpm package manager - command: sudo corepack enable - - run: - name: View install environment - command: | - which node - node --version - which pnpm - pnpm --version - install_js: - parameters: - browsers: + ignore-workspace: type: boolean default: false - description: 'Set to true if you intend to any browser (for example with playwright).' + react-version: + type: string + default: stable + typescript-version: + type: string + default: stable steps: - - setup_corepack: + - code-infra/install-deps: + package-overrides: react@<< parameters.react-version >> typescript@<< parameters.typescript-version >> browsers: << parameters.browsers >> - - run: - name: Install js dependencies - command: pnpm install - - run: - name: Set version overrides - command: | - pnpm code-infra set-version-overrides --pkg "react@$REACT_VERSION" --pkg "typescript@$TYPESCRIPT_VERSION" + ignore-workspace: << parameters.ignore-workspace >> jobs: test_unit: <<: *default-job steps: - checkout - - install_js + - install-deps: + react-version: << parameters.react-version >> - run: name: Tests fake browser command: pnpm test:coverage:ci @@ -155,7 +126,7 @@ jobs: <<: *default-job steps: - checkout - - install_js + - install-deps - run: name: ESLint command: pnpm eslint:ci @@ -172,7 +143,7 @@ jobs: <<: *default-job steps: - checkout - - install_js + - install-deps - run: name: '`pnpm dedupe` was run?' command: | @@ -226,7 +197,7 @@ jobs: resource_class: 'medium+' steps: - checkout - - install_js + - install-deps - run: name: Transpile TypeScript demos command: pnpm docs:typescript:formatted @@ -249,7 +220,8 @@ jobs: resource_class: 'medium+' steps: - checkout - - install_js + - install-deps: + typescript-version: << parameters.typescript-version >> - run: name: Tests TypeScript definitions command: pnpm typescript:ci @@ -266,7 +238,7 @@ jobs: - run: name: Log defect declaration files command: | - node scripts/testBuiltTypes.mjs + pnpm code-infra validate-built-types test_browser: <<: *default-job resource_class: 'medium+' @@ -274,24 +246,14 @@ jobs: - image: mcr.microsoft.com/playwright:v1.56.1-noble steps: - checkout - - install_js: + - install-deps: browsers: true + react-version: << parameters.react-version >> - run: name: Tests real browsers command: pnpm test:karma - - run: - name: Check coverage generated - command: | - if ! [[ -s coverage/lcov.info ]] - then - exit 1 - fi - - run: - name: Coverage - command: | - curl -Os https://uploader.codecov.io/latest/linux/codecov - chmod +x codecov - ./codecov -t ${CODECOV_TOKEN} -Z -F "$REACT_VERSION-browser" + - code-infra/upload-coverage: + key: << parameters.react-version >>-browser - store_artifacts: # hardcoded in karma-webpack path: /tmp/_karma_webpack_ @@ -302,8 +264,9 @@ jobs: - image: mcr.microsoft.com/playwright:v1.56.1-noble steps: - checkout - - install_js: + - install-deps: browsers: true + react-version: << parameters.react-version >> - run: name: pnpm test:e2e command: pnpm test:e2e @@ -314,7 +277,7 @@ jobs: - image: mcr.microsoft.com/playwright:v1.56.1-noble steps: - checkout - - install_js: + - install-deps: browsers: true - run: name: pnpm test:e2e-website @@ -327,7 +290,7 @@ jobs: - image: mcr.microsoft.com/playwright:v1.56.1-noble steps: - checkout - - install_js: + - install-deps: browsers: true - run: name: Tests real browsers @@ -352,8 +315,9 @@ jobs: - image: mcr.microsoft.com/playwright:v1.56.1-noble steps: - checkout - - install_js: + - install-deps: browsers: true + react-version: << parameters.react-version >> - run: name: Run visual regression tests command: xvfb-run pnpm test:regressions @@ -365,7 +329,7 @@ jobs: command: pnpm test:attw - run: name: Any defect declaration files? - command: node scripts/testBuiltTypes.mjs + command: pnpm code-infra validate-built-types - run: name: test exported typescript command: pnpm --filter @mui-internal/test-module-resolution typescript:all @@ -376,7 +340,7 @@ jobs: <<: *default-job steps: - checkout - - install_js + - install-deps - run: name: Build packages for fixtures command: pnpm lerna run --scope "@mui/*" build @@ -395,10 +359,8 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack - - run: - name: Install dependencies - command: pnpm install --ignore-workspace + - install-deps: + ignore-workspace: true - run: name: Test fixture command: pnpm start @@ -410,10 +372,8 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack - - run: - name: Install dependencies - command: pnpm install --ignore-workspace + - install-deps: + ignore-workspace: true - run: name: Test fixture # TODO: Known failure @@ -428,11 +388,9 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack: + - install-deps: + ignore-workspace: true browsers: true - - run: - name: Install dependencies - command: pnpm install --ignore-workspace - run: name: Test fixture command: pnpm start @@ -446,11 +404,9 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack: + - install-deps: + ignore-workspace: true browsers: true - - run: - name: Install dependencies - command: pnpm install --ignore-workspace - run: name: Test fixture command: pnpm start @@ -464,11 +420,9 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack: + - install-deps: + ignore-workspace: true browsers: true - - run: - name: Install dependencies - command: pnpm install --ignore-workspace - run: name: Test fixture command: pnpm start @@ -482,11 +436,9 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack: + - install-deps: + ignore-workspace: true browsers: true - - run: - name: Install dependencies - command: pnpm install --ignore-workspace - run: name: Test fixture command: pnpm start @@ -500,11 +452,9 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack: + - install-deps: + ignore-workspace: true browsers: true - - run: - name: Install dependencies - command: pnpm install --ignore-workspace - run: name: Test fixture command: pnpm start @@ -518,11 +468,9 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack: + - install-deps: + ignore-workspace: true browsers: true - - run: - name: Install dependencies - command: pnpm install --ignore-workspace - run: name: Test fixture command: pnpm start @@ -538,11 +486,9 @@ jobs: path: /tmp/material-ui - attach_workspace: at: /tmp/material-ui/packed - - setup_corepack: + - install-deps: + ignore-workspace: true browsers: true - - run: - name: Install dependencies - command: pnpm install --ignore-workspace - run: name: Test fixture command: pnpm start @@ -550,29 +496,16 @@ jobs: <<: *default-job steps: - checkout - - install_js - - run: - name: prepare danger on PRs - command: pnpm danger ci - environment: - DANGER_COMMAND: prepareBundleSizeReport - - setup_corepack - + - install-deps - run: name: build @mui packages command: pnpm lerna run --ignore @mui/icons-material --concurrency 6 --scope "@mui/*" build - - aws-cli/setup: - aws_access_key_id: $AWS_ACCESS_KEY_ID_ARTIFACTS - aws_secret_access_key: $AWS_SECRET_ACCESS_KEY_ARTIFACTS - region: ${AWS_REGION_ARTIFACTS} - - - run: - name: create and upload a size snapshot - command: | - export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID_ARTIFACTS - export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY_ARTIFACTS - export AWS_REGION=$AWS_REGION_ARTIFACTS - pnpm size:snapshot --concurrency 6 + # Keep the artifact storage as a CircleCI artifact + - store_artifacts: + name: persist size snapshot as pipeline artifact + path: size-snapshot.json + destination: size-snapshot.json + - code-infra/upload-size-snapshot # === LEGACY START === # remove once the UI can handle the new format @@ -591,17 +524,6 @@ jobs: to: s3://mui-org-ci/artifacts/$CIRCLE_BRANCH/$CIRCLE_SHA1/ # === LEGACY END === - # Keep the artifact storage as a CircleCI artifact - - store_artifacts: - name: persist size snapshot as pipeline artifact - path: size-snapshot.json - destination: size-snapshot.json - - - run: - name: Run danger on PRs - command: pnpm danger ci --fail-on-errors - environment: - DANGER_COMMAND: reportBundleSize workflows: version: 2 pipeline: @@ -740,19 +662,19 @@ workflows: jobs: - test_unit: <<: *default-context - react-version: ^18.0.0 + react-version: ^18 name: test_unit-react@18 - test_browser: <<: *default-context - react-version: ^18.0.0 + react-version: ^18 name: test_browser-react@18 - test_regressions: <<: *default-context - react-version: ^18.0.0 + react-version: ^18 name: test_regressions-react@18 - test_e2e: <<: *default-context - react-version: ^18.0.0 + react-version: ^18 name: test_e2e-react@18 # This workflow is identical to react-18, but scheduled diff --git a/dangerfile.js b/dangerfile.js deleted file mode 100644 index ac1c2c4bf612bb..00000000000000 --- a/dangerfile.js +++ /dev/null @@ -1,6 +0,0 @@ -const tsx = require('tsx/cjs/api'); - -// danger uses babelify under the hood. The implementation is buggy and fails on our -// custom plugins in our codebase. We'll just disable it and do our own compilation. -// Danger must always be run with envirnonent variable `DANGER_DISABLE_TRANSPILATION="true"`. -tsx.require('./scripts/dangerFileContent', __filename); diff --git a/package.json b/package.json index a8fe75ad42b1a5..9180b12d455111 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,6 @@ "typescript": "lerna run --no-bail typescript", "typescript:ci": "lerna run --concurrency 1 --no-bail typescript", "use-react-version": "node ./scripts/useReactVersion.mjs", - "validate-declarations": "tsx scripts/validateTypescriptDeclarations.mts", "generate-codeowners": "node scripts/generateCodeowners.mjs", "canary:release": "tsx ./scripts/canaryRelease.mts", "nx_test_tc": "node test/cli.js", @@ -117,7 +116,6 @@ "@next/eslint-plugin-next": "^15.5.6", "@octokit/rest": "^22.0.0", "@pigment-css/react": "0.0.30", - "@pnpm/find-workspace-dir": "^1000.1.3", "@playwright/test": "1.56.1", "@types/babel__core": "^7.20.5", "@types/babel__register": "^7.17.3", @@ -136,7 +134,6 @@ "concurrently": "^9.2.0", "cpy-cli": "^6.0.0", "cross-env": "^10.0.0", - "danger": "^13.0.4", "es-toolkit": "^1.39.10", "eslint": "^9.38.0", "eslint-import-resolver-webpack": "^0.13.10", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 888eb1ee426382..125e7b32708432 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,9 +106,6 @@ importers: '@playwright/test': specifier: 1.56.1 version: 1.56.1 - '@pnpm/find-workspace-dir': - specifier: ^1000.1.3 - version: 1000.1.3 '@types/babel__core': specifier: ^7.20.5 version: 7.20.5 @@ -160,9 +157,6 @@ importers: cross-env: specifier: ^10.0.0 version: 10.1.0 - danger: - specifier: ^13.0.4 - version: 13.0.4(encoding@0.1.13) es-toolkit: specifier: ^1.39.10 version: 1.40.0 @@ -3300,18 +3294,6 @@ packages: '@fortawesome/fontawesome-svg-core': ~1 || ~6 || ~7 react: ^16.3 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@gitbeaker/core@38.12.1': - resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==} - engines: {node: '>=18.0.0'} - - '@gitbeaker/requester-utils@38.12.1': - resolution: {integrity: sha512-Rc/DgngS0YPN+AY1s9UnexKSy4Lh0bkQVAq9p7PRbRpXb33SlTeCg8eg/8+A/mrMcHgYmP0XhH8lkizyA5tBUQ==} - engines: {node: '>=18.0.0'} - - '@gitbeaker/rest@38.12.1': - resolution: {integrity: sha512-9KMSDtJ/sIov+5pcH+CAfiJXSiuYgN0KLKQFg0HHWR2DwcjGYkcbmhoZcWsaOWOqq4kihN1l7wX91UoRxxKKTQ==} - engines: {node: '>=18.0.0'} - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -5246,10 +5228,6 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - '@tufjs/canonical-json@2.0.0': resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -5933,10 +5911,6 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -6082,9 +6056,6 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - async-retry@1.2.3: - resolution: {integrity: sha512-tfDb02Th6CE6pJUF2gjW5ZVjsgwlucVXOEQMvEX9JgSJMs9gAX+Nz3xRuJBKuUYjTSYORqvDBORdAQ3LU59g7Q==} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -6393,10 +6364,6 @@ packages: resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} engines: {node: '>=12'} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - chalk@4.1.0: resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} engines: {node: '>=10'} @@ -6555,16 +6522,10 @@ packages: resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -6927,11 +6888,6 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - danger@13.0.4: - resolution: {integrity: sha512-IAdQ5nSJyIs4zKj6AN35ixt2B0Ce3WZUm3IFe/CMnL/Op7wV7IGg4D348U0EKNaNPP58QgXbdSk9pM+IXP1QXg==} - engines: {node: '>=18'} - hasBin: true - dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} @@ -7648,9 +7604,6 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fast-json-patch@3.1.1: - resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} - fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -7914,10 +7867,6 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-stdin@6.0.0: - resolution: {integrity: sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==} - engines: {node: '>=4'} - get-stream@4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} @@ -8085,14 +8034,6 @@ packages: has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - has-flag@2.0.0: - resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} - engines: {node: '>=0.10.0'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -8202,10 +8143,6 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -8238,10 +8175,6 @@ packages: resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} engines: {node: '>=18.18.0'} - hyperlinker@1.0.0: - resolution: {integrity: sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==} - engines: {node: '>=4'} - hyphenate-style-name@1.1.0: resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} @@ -8313,10 +8246,6 @@ packages: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ini@5.0.0: - resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} - engines: {node: ^18.17.0 || >=20.5.0} - init-package-json@6.0.3: resolution: {integrity: sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==} engines: {node: ^16.14.0 || >=18.0.0} @@ -8832,10 +8761,6 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - jsonwebtoken@9.0.0: resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} engines: {node: '>=12', npm: '>=6'} @@ -9112,9 +9037,6 @@ packages: lodash.escaperegexp@4.1.2: resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} - lodash.find@4.6.0: - resolution: {integrity: sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==} - lodash.flatten@4.4.0: resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} @@ -9128,9 +9050,6 @@ packages: lodash.groupby@4.6.0: resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==} - lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - lodash.isboolean@3.0.3: resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} @@ -9147,21 +9066,12 @@ packages: lodash.isnil@4.0.0: resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} - lodash.isobject@3.0.2: - resolution: {integrity: sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==} - lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} lodash.isundefined@3.0.1: resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==} - lodash.keys@4.2.0: - resolution: {integrity: sha512-J79MkJcp7Df5mizHiVNpjoHXLi4HLjh9VLS/M7lQSGoQ+0oQ+lWEigREkqKyizPB1IawvQLLKY8mzEcm1tkyxQ==} - - lodash.mapvalues@4.6.0: - resolution: {integrity: sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==} - lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -9346,9 +9256,6 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs-or-file-map-to-github-branch@1.3.0: - resolution: {integrity: sha512-AzgIEodmt51dgwB3TmihTf1Fh2SmszdZskC6trFHy4v71R5shLmdjJSYI7ocVfFa7C/TE6ncb0OZ9eBg2rmkBQ==} - memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} @@ -9720,9 +9627,6 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-cleanup@2.1.2: - resolution: {integrity: sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==} - node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -9978,9 +9882,6 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} - override-require@1.1.1: - resolution: {integrity: sha512-eoJ9YWxFcXbrn2U8FKT6RV+/Kj7fiGAB1VvHzbYKt8xM5ZuKZgCGvnHzDxmreEjcBH28ejg5MiOH4iyY1mQnkg==} - own-keys@1.0.1: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} @@ -10103,17 +10004,9 @@ packages: resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - parse-diff@0.7.1: - resolution: {integrity: sha512-1j3l8IKcy4yRK2W4o9EYvJLSzpAVwz4DXqCewYyx2vEwk2gcf3DBPqc8Fj4XV3K33OYJ08A8fWwyu/ykD/HUSg==} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse-github-url@1.0.2: - resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} - engines: {node: '>=0.10.0'} - hasBin: true - parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} @@ -10122,9 +10015,6 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-link-header@2.0.0: - resolution: {integrity: sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==} - parse-ms@4.0.0: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} @@ -10262,9 +10152,6 @@ packages: resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} engines: {node: '>=10'} - pinpoint@1.1.0: - resolution: {integrity: sha512-+04FTD9x7Cls2rihLlo57QDCcHoLBGn5Dk51SwtFBWkUWLxZaBXyNVpCw1S+atvE7GmnFjeaRZ0WLq3UYuqAdg==} - pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} @@ -10413,10 +10300,6 @@ packages: peerDependencies: prettier: ^3.0.0 - prettyjson@1.2.5: - resolution: {integrity: sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==} - hasBin: true - prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} @@ -10728,10 +10611,6 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} - readline-sync@1.4.10: - resolution: {integrity: sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==} - engines: {node: '>= 0.8.0'} - recast@0.20.5: resolution: {integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==} engines: {node: '>= 4'} @@ -10763,9 +10642,6 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -11428,10 +11304,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -11440,10 +11312,6 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-hyperlinks@1.0.1: - resolution: {integrity: sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==} - engines: {node: '>=4'} - supports-hyperlinks@3.2.0: resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} engines: {node: '>=14.18'} @@ -12266,9 +12134,6 @@ packages: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} - xcase@2.0.1: - resolution: {integrity: sha512-UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==} - xml-js@1.6.11: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true @@ -14379,22 +14244,6 @@ snapshots: prop-types: 15.8.1 react: 19.2.0 - '@gitbeaker/core@38.12.1': - dependencies: - '@gitbeaker/requester-utils': 38.12.1 - qs: 6.13.0 - xcase: 2.0.1 - - '@gitbeaker/requester-utils@38.12.1': - dependencies: - qs: 6.13.0 - xcase: 2.0.1 - - '@gitbeaker/rest@38.12.1': - dependencies: - '@gitbeaker/core': 38.12.1 - '@gitbeaker/requester-utils': 38.12.1 - '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -16634,8 +16483,6 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 - '@tootallnate/once@2.0.0': {} - '@tufjs/canonical-json@2.0.0': {} '@tufjs/models@2.0.1': @@ -17406,10 +17253,6 @@ snapshots: ansi-regex@6.1.0: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -17587,10 +17430,6 @@ snapshots: astral-regex@2.0.0: {} - async-retry@1.2.3: - dependencies: - retry: 0.12.0 - async@3.2.6: {} asynckit@0.4.0: {} @@ -17975,12 +17814,6 @@ snapshots: dependencies: chalk: 4.1.2 - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - chalk@4.1.0: dependencies: ansi-styles: 4.3.0 @@ -18127,16 +17960,10 @@ snapshots: cmd-shim@6.0.3: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} color-support@1.1.3: {} @@ -18537,49 +18364,6 @@ snapshots: damerau-levenshtein@1.0.8: {} - danger@13.0.4(encoding@0.1.13): - dependencies: - '@gitbeaker/rest': 38.12.1 - '@octokit/rest': 20.1.2 - async-retry: 1.2.3 - chalk: 2.4.2 - commander: 2.20.3 - core-js: 3.32.1 - debug: 4.4.3(supports-color@8.1.1) - fast-json-patch: 3.1.1 - get-stdin: 6.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - hyperlinker: 1.0.0 - ini: 5.0.0 - json5: 2.2.3 - jsonpointer: 5.0.1 - jsonwebtoken: 9.0.0 - lodash.find: 4.6.0 - lodash.includes: 4.3.0 - lodash.isobject: 3.0.2 - lodash.keys: 4.2.0 - lodash.mapvalues: 4.6.0 - lodash.memoize: 4.1.2 - memfs-or-file-map-to-github-branch: 1.3.0 - micromatch: 4.0.8 - node-cleanup: 2.1.2 - node-fetch: 2.7.0(encoding@0.1.13) - override-require: 1.1.1 - p-limit: 2.3.0 - parse-diff: 0.7.1 - parse-github-url: 1.0.2 - parse-link-header: 2.0.0 - pinpoint: 1.1.0 - prettyjson: 1.2.5 - readline-sync: 1.4.10 - regenerator-runtime: 0.13.11 - require-from-string: 2.0.2 - supports-hyperlinks: 1.0.1 - transitivePeerDependencies: - - encoding - - supports-color - dargs@7.0.0: {} data-urls@5.0.0: @@ -19519,8 +19303,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-patch@3.1.1: {} - fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -19788,8 +19570,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-stdin@6.0.0: {} - get-stream@4.1.0: dependencies: pump: 3.0.0 @@ -19992,10 +19772,6 @@ snapshots: has-bigints@1.0.2: {} - has-flag@2.0.0: {} - - has-flag@3.0.0: {} - has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -20109,14 +19885,6 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-proxy-agent@5.0.0: - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.4.3(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 @@ -20159,8 +19927,6 @@ snapshots: human-signals@8.0.1: {} - hyperlinker@1.0.0: {} - hyphenate-style-name@1.1.0: {} iconv-lite@0.4.24: @@ -20218,8 +19984,6 @@ snapshots: ini@4.1.3: {} - ini@5.0.0: {} - init-package-json@6.0.3: dependencies: '@npmcli/package-json': 5.2.0 @@ -20739,8 +20503,6 @@ snapshots: jsonparse@1.3.1: {} - jsonpointer@5.0.1: {} - jsonwebtoken@9.0.0: dependencies: jws: 3.2.2 @@ -21168,8 +20930,6 @@ snapshots: lodash.escaperegexp@4.1.2: {} - lodash.find@4.6.0: {} - lodash.flatten@4.4.0: {} lodash.flattendeep@4.4.0: {} @@ -21178,8 +20938,6 @@ snapshots: lodash.groupby@4.6.0: {} - lodash.includes@4.3.0: {} - lodash.isboolean@3.0.3: {} lodash.isequal@4.5.0: {} @@ -21190,16 +20948,10 @@ snapshots: lodash.isnil@4.0.0: {} - lodash.isobject@3.0.2: {} - lodash.isplainobject@4.0.6: {} lodash.isundefined@3.0.1: {} - lodash.keys@4.2.0: {} - - lodash.mapvalues@4.6.0: {} - lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} @@ -21421,10 +21173,6 @@ snapshots: media-typer@1.1.0: {} - memfs-or-file-map-to-github-branch@1.3.0: - dependencies: - '@octokit/rest': 22.0.0 - memoize-one@5.2.1: {} memory-fs@0.2.0: {} @@ -21904,8 +21652,6 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - node-cleanup@2.1.2: {} - node-dir@0.1.17: dependencies: minimatch: 3.1.2 @@ -22284,8 +22030,6 @@ snapshots: outvariant@1.4.3: optional: true - override-require@1.1.1: {} - own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 @@ -22419,8 +22163,6 @@ snapshots: just-diff: 6.0.2 just-diff-apply: 5.5.0 - parse-diff@0.7.1: {} - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -22431,8 +22173,6 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-github-url@1.0.2: {} - parse-json@4.0.0: dependencies: error-ex: 1.3.2 @@ -22445,10 +22185,6 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-link-header@2.0.0: - dependencies: - xtend: 4.0.2 - parse-ms@4.0.0: {} parse-passwd@1.0.0: {} @@ -22553,8 +22289,6 @@ snapshots: pify@5.0.0: {} - pinpoint@1.1.0: {} - pirates@4.0.6: {} piscina@5.1.3: @@ -22708,11 +22442,6 @@ snapshots: tinyexec: 0.3.2 tslib: 2.8.1 - prettyjson@1.2.5: - dependencies: - colors: 1.4.0 - minimist: 1.2.8 - prismjs@1.30.0: {} proc-log@4.2.0: {} @@ -23030,8 +22759,6 @@ snapshots: readdirp@4.1.2: {} - readline-sync@1.4.10: {} - recast@0.20.5: dependencies: ast-types: 0.14.2 @@ -23077,8 +22804,6 @@ snapshots: regenerate@1.4.2: {} - regenerator-runtime@0.13.11: {} - regenerator-runtime@0.14.1: {} regexp.escape@2.0.1: @@ -23929,10 +23654,6 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -23941,11 +23662,6 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@1.0.1: - dependencies: - has-flag: 2.0.0 - supports-color: 5.5.0 - supports-hyperlinks@3.2.0: dependencies: has-flag: 4.0.0 @@ -24840,8 +24556,6 @@ snapshots: dependencies: is-wsl: 3.1.0 - xcase@2.0.1: {} - xml-js@1.6.11: dependencies: sax: 1.4.1 diff --git a/scripts/dangerFileContent.ts b/scripts/dangerFileContent.ts deleted file mode 100644 index ad6bb937e480da..00000000000000 --- a/scripts/dangerFileContent.ts +++ /dev/null @@ -1,111 +0,0 @@ -import type * as dangerModule from 'danger'; -import replaceUrl from '@mui-internal/api-docs-builder/utils/replaceUrl'; - -declare const danger: (typeof dangerModule)['danger']; -declare const markdown: (typeof dangerModule)['markdown']; - -const circleCIBuildNumber = process.env.CIRCLE_BUILD_NUM; -const circleCIBuildUrl = `https://app.circleci.com/pipelines/github/mui/material-ui/jobs/${circleCIBuildNumber}`; -const dangerCommand = process.env.DANGER_COMMAND; - -function prepareBundleSizeReport() { - markdown( - `## Bundle size report - -Bundle size will be reported once [CircleCI build #${circleCIBuildNumber}](${circleCIBuildUrl}) finishes.`, - ); -} - -// These functions are no longer needed as they've been moved to the prSizeDiff.js module - -async function reportBundleSize() { - let markdownContent = `## Bundle size report\n\n`; - - if (!process.env.CIRCLE_BUILD_NUM) { - throw new Error('CIRCLE_BUILD_NUM is not defined'); - } - - const circleciBuildNumber = process.env.CIRCLE_BUILD_NUM; - - const { renderMarkdownReport } = await import('@mui/internal-bundle-size-checker'); - markdownContent += await renderMarkdownReport(danger.github.pr, { - track: ['@mui/material', '@mui/lab', '@mui/system', '@mui/utils'], - circleciBuildNumber, - }); - - // Use the markdown function to publish the report - markdown(markdownContent); -} - -function addDeployPreviewUrls() { - /** - * The incoming path from danger does not start with `/` - * e.g. ['docs/data/joy/components/button/button.md'] - */ - function formatFileToLink(path: string) { - let url = path.replace('docs/data', '').replace(/\.md$/, ''); - - const fragments = url.split('/').reverse(); - if (fragments[0] === fragments[1]) { - // check if the end of pathname is the same as the one before - // for example `/data/material/getting-started/overview/overview.md - url = fragments.slice(1).reverse().join('/'); - } - - if (url.startsWith('/material')) { - // needs to convert to correct material legacy folder structure to the existing url. - url = replaceUrl(url.replace('/material', ''), '/material-ui').replace(/^\//, ''); - } else { - url = url - .replace(/^\//, '') // remove initial `/` - .replace('joy/', 'joy-ui/') - .replace('components/', 'react-'); - } - - return url; - } - - const netlifyPreview = `https://deploy-preview-${danger.github.pr.number}--material-ui.netlify.app/`; - - const files = [...danger.git.created_files, ...danger.git.modified_files]; - - // limit to the first 5 docs - const docs = files - .filter((file) => file.startsWith('docs/data') && file.endsWith('.md')) - .slice(0, 5); - - markdown(` -## Netlify deploy preview - -${ - docs.length - ? docs - .map((path) => { - const formattedUrl = formatFileToLink(path); - return `- [${path}](${netlifyPreview}${formattedUrl})`; - }) - .join('\n') - : netlifyPreview -} -`); -} - -async function run() { - addDeployPreviewUrls(); - - switch (dangerCommand) { - case 'prepareBundleSizeReport': - prepareBundleSizeReport(); - break; - case 'reportBundleSize': - await reportBundleSize(); - break; - default: - throw new TypeError(`Unrecognized danger command '${dangerCommand}'`); - } -} - -run().catch((error) => { - console.error(error); - process.exit(1); -}); diff --git a/scripts/testBuiltTypes.mjs b/scripts/testBuiltTypes.mjs deleted file mode 100644 index 3410350e5b5639..00000000000000 --- a/scripts/testBuiltTypes.mjs +++ /dev/null @@ -1,38 +0,0 @@ -import { globby } from 'globby'; -import fs from 'node:fs/promises'; -import path from 'path'; -import { findWorkspaceDir } from '@pnpm/find-workspace-dir'; - -async function main() { - const workspaceRoot = await findWorkspaceDir(process.cwd()); - - const declarationFiles = await globby('**/build/**/*.d.ts', { - absolute: true, - cwd: workspaceRoot, - ignore: ['node_modules'], - followSymbolicLinks: false, - }); - - await Promise.all( - declarationFiles.map(async (declarationFilePath) => { - const declarationFile = await fs.readFile(declarationFilePath, { encoding: 'utf8' }); - // find occurrences of e.g. `import("../../mui-*/src/...")` - const typeImportsRelativeToWorkspace = declarationFile.match(/import\(("|')(\.\.\/)+mui/g); - - if (typeImportsRelativeToWorkspace !== null) { - console.error( - // readable path for CI while making it clickable locally - `${path.relative(process.cwd(), declarationFilePath)} possibly imports types ${ - typeImportsRelativeToWorkspace.length - } times that are unreachable once published.`, - ); - process.exitCode = 1; - } - }), - ); -} - -main().catch((error) => { - console.error(error); - process.exit(1); -}); diff --git a/scripts/validateTypescriptDeclarations.mts b/scripts/validateTypescriptDeclarations.mts deleted file mode 100644 index d5f2f369e3fc5c..00000000000000 --- a/scripts/validateTypescriptDeclarations.mts +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable no-console */ -import { globbySync } from 'globby'; -import fs from 'fs'; - -/** - * Validates if there are no missing exports from TS files that would - * result in an import from a local file. - */ -function validateFiles() { - const declarationFiles = globbySync(['packages/*/build/**/*.d.ts'], { - followSymbolicLinks: false, - }); - const invalidFiles = declarationFiles.filter((file) => { - const content = fs.readFileSync(file, 'utf8'); - const regex = /import\(["']packages\//gm; - return regex.test(content); - }); - - if (invalidFiles.length > 0) { - console.error('Found invalid imports in the following files:'); - invalidFiles.forEach((file) => console.error(file)); - process.exit(1); - } - - console.log('Found no invalid import statements in built declaration files.'); -} - -validateFiles(); diff --git a/test/bundle-size/bundle-size-checker.config.mjs b/test/bundle-size/bundle-size-checker.config.mjs index 3d45ead3920f6c..f97531cc4e864b 100644 --- a/test/bundle-size/bundle-size-checker.config.mjs +++ b/test/bundle-size/bundle-size-checker.config.mjs @@ -48,6 +48,6 @@ export default defineConfig(async () => { '@mui/utils', ], upload: !!process.env.CI, - comment: false, + comment: true, }; });