diff --git a/.github/CONTRIBUTING b/.github/CONTRIBUTING index 1fd93f8..5322818 100644 --- a/.github/CONTRIBUTING +++ b/.github/CONTRIBUTING @@ -21,15 +21,20 @@ Report issues on our [GitHub Issues page](https://github.com/AikidoSec/safe-chai ## Development +**Workspace Structure:** +- `packages/safe-chain/` - Main CLI package +- `test/e2e/` - End-to-end tests + **Setup:** ```bash -npm install +npm install # Installs dependencies for all workspaces ``` **Commands:** -- `npm test` - Run tests -- `npm run test:watch` - Watch mode +- `npm test` - Run unit tests +- `npm run test:e2e` - Run end-to-end tests - `npm run lint` - Check code style +- `npm run test --workspace=packages/safe-chain` - Test specific workspace **Requirements:** - Node.js 18+ diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 455ccd6..213d1f9 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -27,15 +27,24 @@ jobs: version="${{ github.ref_name }}" echo "tag=$version" >> $GITHUB_OUTPUT - - name: Set the version - run: npm --no-git-tag-version version ${{ steps.get_version.outputs.tag }} + - name: Set the version in safe-chain package + run: npm --no-git-tag-version version ${{ steps.get_version.outputs.tag }} --workspace=packages/safe-chain - name: Install dependencies run: npm ci + - name: Run tests + run: npm run test + + - name: Copy documentation files to package + run: | + cp README.md packages/safe-chain/ + cp LICENSE packages/safe-chain/ + cp -r docs packages/safe-chain/ + - name: Publish to npm run: | echo "Publishing version ${{ steps.get_version.outputs.tag }} to NPM" - npm publish --access public + npm publish --workspace=packages/safe-chain --access public env: NPM_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} diff --git a/.github/workflows/test-on-pr.yml b/.github/workflows/test-on-pr.yml index e291a50..6aa1d85 100644 --- a/.github/workflows/test-on-pr.yml +++ b/.github/workflows/test-on-pr.yml @@ -29,13 +29,19 @@ jobs: - name: Run ESLint run: npm run lint + - name: Create package tarball + run: npm pack --workspace=packages/safe-chain + + - name: Upload package tarball + uses: actions/upload-artifact@v4 + with: + name: safe-chain-package + path: aikidosec-safe-chain-*.tgz + e2e-tests: name: Run E2E tests runs-on: ubuntu-latest - defaults: - run: - working-directory: "test/e2e" steps: - name: Checkout code @@ -46,11 +52,11 @@ jobs: with: node-version: "lts/*" - - name: Install dependencies + - name: Install dependencies (root) run: npm ci - - name: Run unit tests - run: npm test + - name: Run E2E tests + run: npm run test:e2e - name: Clean up Docker resources if: always() diff --git a/.gitignore b/.gitignore index bcc75c6..acae695 100644 --- a/.gitignore +++ b/.gitignore @@ -138,4 +138,9 @@ dist # Vite logs files vite.config.js.timestamp-* -vite.config.ts.timestamp-* \ No newline at end of file +vite.config.ts.timestamp-* + +# AI +Claude.md +.claude +.reference \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js index b210b69..3db1b7f 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -22,5 +22,5 @@ export default defineConfig([ }, rules: {}, }, - globalIgnores(['test/e2e']), + globalIgnores(['test/e2e', 'node_modules']), ]); diff --git a/package-lock.json b/package-lock.json index a75c233..59057a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,29 +1,16 @@ { - "name": "@aikidosec/safe-chain", + "name": "aikido-safe-chain-workspace", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@aikidosec/safe-chain", - "version": "1.0.0", + "name": "aikido-safe-chain-workspace", "license": "AGPL-3.0-or-later", - "dependencies": { - "@inquirer/prompts": "^7.4.1", - "abbrev": "^3.0.1", - "chalk": "^5.4.1", - "npm-registry-fetch": "^18.0.2", - "ora": "^8.2.0", - "semver": "^7.7.2" - }, - "bin": { - "aikido-npm": "bin/aikido-npm.js", - "aikido-npx": "bin/aikido-npx.js", - "aikido-pnpm": "bin/aikido-pnpm.js", - "aikido-pnpx": "bin/aikido-pnpx.js", - "aikido-yarn": "bin/aikido-yarn.js", - "safe-chain": "bin/safe-chain.js" - }, + "workspaces": [ + "packages/*", + "test/e2e" + ], "devDependencies": { "@eslint/js": "^9.26.0", "eslint": "^9.26.0", @@ -32,6 +19,14 @@ "typescript-eslint": "^8.32.0" } }, + "node_modules/@aikidosec/safe-chain": { + "resolved": "packages/safe-chain", + "link": true + }, + "node_modules/@aikidosec/safe-chain-e2e-tests": { + "resolved": "test/e2e", + "link": true + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", @@ -3876,6 +3871,12 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/nan": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.0.tgz", + "integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==", + "license": "MIT" + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3892,6 +3893,16 @@ "node": ">= 0.6" } }, + "node_modules/node-pty": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-pty/-/node-pty-1.0.0.tgz", + "integrity": "sha512-wtBMWWS7dFZm/VgqElrTvtfMq4GzJ6+edFI0Y0zyzygUSZMgZdraDUMUhCIvkjhJjme15qWmbyJbtAx4ot4uZA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "nan": "^2.17.0" + } + }, "node_modules/npm-package-arg": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz", @@ -5764,6 +5775,35 @@ "peerDependencies": { "zod": "^3.24.1" } + }, + "packages/safe-chain": { + "name": "@aikidosec/safe-chain", + "version": "1.0.0", + "license": "AGPL-3.0-or-later", + "dependencies": { + "@inquirer/prompts": "^7.4.1", + "abbrev": "^3.0.1", + "chalk": "^5.4.1", + "npm-registry-fetch": "^18.0.2", + "ora": "^8.2.0", + "semver": "^7.7.2" + }, + "bin": { + "aikido-npm": "bin/aikido-npm.js", + "aikido-npx": "bin/aikido-npx.js", + "aikido-pnpm": "bin/aikido-pnpm.js", + "aikido-pnpx": "bin/aikido-pnpx.js", + "aikido-yarn": "bin/aikido-yarn.js", + "safe-chain": "bin/safe-chain.js" + } + }, + "test/e2e": { + "name": "@aikidosec/safe-chain-e2e-tests", + "version": "1.0.0", + "license": "AGPL-3.0-or-later", + "dependencies": { + "node-pty": "^1.0.0" + } } } } diff --git a/package.json b/package.json index 9c4dea9..d3ca8e1 100644 --- a/package.json +++ b/package.json @@ -1,36 +1,22 @@ { - "name": "@aikidosec/safe-chain", - "version": "1.0.0", + "name": "aikido-safe-chain-workspace", + "private": true, + "type": "module", + "workspaces": [ + "packages/*", + "test/e2e" + ], "scripts": { - "test": "node --test --experimental-test-module-mocks 'src/**/*.spec.js'", - "test:watch": "node --test --watch --experimental-test-module-mocks 'src/**/*.spec.js'", - "lint": "eslint ." + "test": "npm run test --workspace=packages/safe-chain", + "test:e2e": "npm run test --workspace=test/e2e", + "lint": "npm run lint --workspace=packages/safe-chain" }, "repository": { "type": "git", "url": "git+https://github.com/AikidoSec/safe-chain.git" }, - "bin": { - "aikido-npm": "bin/aikido-npm.js", - "aikido-npx": "bin/aikido-npx.js", - "aikido-yarn": "bin/aikido-yarn.js", - "aikido-pnpm": "bin/aikido-pnpm.js", - "aikido-pnpx": "bin/aikido-pnpx.js", - "safe-chain": "bin/safe-chain.js" - }, - "type": "module", - "keywords": [], "author": "Aikido Security", "license": "AGPL-3.0-or-later", - "description": "The Aikido Safe Chain wraps around the [npm cli](https://github.com/npm/cli), [npx](https://github.com/npm/cli/blob/latest/docs/content/commands/npx.md), [yarn](https://yarnpkg.com/), [pnpm](https://pnpm.io/), and [pnpx](https://pnpm.io/cli/dlx) to provide extra checks before installing new packages. This tool will detect when a package contains malware and prompt you to exit, preventing npm, npx, yarn, pnpm, or pnpx from downloading or running the malware.", - "dependencies": { - "@inquirer/prompts": "^7.4.1", - "abbrev": "^3.0.1", - "chalk": "^5.4.1", - "npm-registry-fetch": "^18.0.2", - "ora": "^8.2.0", - "semver": "^7.7.2" - }, "devDependencies": { "@eslint/js": "^9.26.0", "eslint": "^9.26.0", @@ -38,11 +24,6 @@ "globals": "^16.1.0", "typescript-eslint": "^8.32.0" }, - "main": "eslint.config.js", - "bugs": { - "url": "https://github.com/AikidoSec/safe-chain/issues" - }, - "homepage": "https://github.com/AikidoSec/safe-chain#readme", "overrides": { "brace-expansion@<=2.0.2": "2.0.2" } diff --git a/packages/safe-chain/.npmignore b/packages/safe-chain/.npmignore new file mode 100644 index 0000000..291e647 --- /dev/null +++ b/packages/safe-chain/.npmignore @@ -0,0 +1,5 @@ +# Test files +src/**/*.spec.js + +# Package files +*.tgz \ No newline at end of file diff --git a/bin/aikido-npm.js b/packages/safe-chain/bin/aikido-npm.js similarity index 100% rename from bin/aikido-npm.js rename to packages/safe-chain/bin/aikido-npm.js diff --git a/bin/aikido-npx.js b/packages/safe-chain/bin/aikido-npx.js similarity index 100% rename from bin/aikido-npx.js rename to packages/safe-chain/bin/aikido-npx.js diff --git a/bin/aikido-pnpm.js b/packages/safe-chain/bin/aikido-pnpm.js similarity index 100% rename from bin/aikido-pnpm.js rename to packages/safe-chain/bin/aikido-pnpm.js diff --git a/bin/aikido-pnpx.js b/packages/safe-chain/bin/aikido-pnpx.js similarity index 100% rename from bin/aikido-pnpx.js rename to packages/safe-chain/bin/aikido-pnpx.js diff --git a/bin/aikido-yarn.js b/packages/safe-chain/bin/aikido-yarn.js similarity index 100% rename from bin/aikido-yarn.js rename to packages/safe-chain/bin/aikido-yarn.js diff --git a/bin/safe-chain.js b/packages/safe-chain/bin/safe-chain.js similarity index 100% rename from bin/safe-chain.js rename to packages/safe-chain/bin/safe-chain.js diff --git a/packages/safe-chain/package.json b/packages/safe-chain/package.json new file mode 100644 index 0000000..a59d4ac --- /dev/null +++ b/packages/safe-chain/package.json @@ -0,0 +1,40 @@ +{ + "name": "@aikidosec/safe-chain", + "version": "1.0.0", + "scripts": { + "test": "node --test --experimental-test-module-mocks 'src/**/*.spec.js'", + "test:watch": "node --test --watch --experimental-test-module-mocks 'src/**/*.spec.js'", + "lint": "eslint ." + }, + "bin": { + "aikido-npm": "bin/aikido-npm.js", + "aikido-npx": "bin/aikido-npx.js", + "aikido-yarn": "bin/aikido-yarn.js", + "aikido-pnpm": "bin/aikido-pnpm.js", + "aikido-pnpx": "bin/aikido-pnpx.js", + "safe-chain": "bin/safe-chain.js" + }, + "type": "module", + "keywords": [], + "author": "Aikido Security", + "license": "AGPL-3.0-or-later", + "description": "The Aikido Safe Chain wraps around the [npm cli](https://github.com/npm/cli), [npx](https://github.com/npm/cli/blob/latest/docs/content/commands/npx.md), [yarn](https://yarnpkg.com/), [pnpm](https://pnpm.io/), and [pnpx](https://pnpm.io/cli/dlx) to provide extra checks before installing new packages. This tool will detect when a package contains malware and prompt you to exit, preventing npm, npx, yarn, pnpm, or pnpx from downloading or running the malware.", + "dependencies": { + "@inquirer/prompts": "^7.4.1", + "abbrev": "^3.0.1", + "chalk": "^5.4.1", + "npm-registry-fetch": "^18.0.2", + "ora": "^8.2.0", + "semver": "^7.7.2" + }, + "main": "src/main.js", + "bugs": { + "url": "https://github.com/AikidoSec/safe-chain/issues" + }, + "homepage": "https://github.com/AikidoSec/safe-chain#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/AikidoSec/safe-chain.git", + "directory": "packages/safe-chain" + } +} diff --git a/src/api/aikido.js b/packages/safe-chain/src/api/aikido.js similarity index 100% rename from src/api/aikido.js rename to packages/safe-chain/src/api/aikido.js diff --git a/src/api/npmApi.js b/packages/safe-chain/src/api/npmApi.js similarity index 100% rename from src/api/npmApi.js rename to packages/safe-chain/src/api/npmApi.js diff --git a/src/config/configFile.js b/packages/safe-chain/src/config/configFile.js similarity index 100% rename from src/config/configFile.js rename to packages/safe-chain/src/config/configFile.js diff --git a/src/environment/environment.js b/packages/safe-chain/src/environment/environment.js similarity index 100% rename from src/environment/environment.js rename to packages/safe-chain/src/environment/environment.js diff --git a/src/environment/userInteraction.js b/packages/safe-chain/src/environment/userInteraction.js similarity index 100% rename from src/environment/userInteraction.js rename to packages/safe-chain/src/environment/userInteraction.js diff --git a/src/main.js b/packages/safe-chain/src/main.js similarity index 100% rename from src/main.js rename to packages/safe-chain/src/main.js diff --git a/src/packagemanager/_shared/matchesCommand.js b/packages/safe-chain/src/packagemanager/_shared/matchesCommand.js similarity index 100% rename from src/packagemanager/_shared/matchesCommand.js rename to packages/safe-chain/src/packagemanager/_shared/matchesCommand.js diff --git a/src/packagemanager/currentPackageManager.js b/packages/safe-chain/src/packagemanager/currentPackageManager.js similarity index 100% rename from src/packagemanager/currentPackageManager.js rename to packages/safe-chain/src/packagemanager/currentPackageManager.js diff --git a/src/packagemanager/npm/createPackageManager.js b/packages/safe-chain/src/packagemanager/npm/createPackageManager.js similarity index 100% rename from src/packagemanager/npm/createPackageManager.js rename to packages/safe-chain/src/packagemanager/npm/createPackageManager.js diff --git a/src/packagemanager/npm/dependencyScanner/commandArgumentScanner.js b/packages/safe-chain/src/packagemanager/npm/dependencyScanner/commandArgumentScanner.js similarity index 100% rename from src/packagemanager/npm/dependencyScanner/commandArgumentScanner.js rename to packages/safe-chain/src/packagemanager/npm/dependencyScanner/commandArgumentScanner.js diff --git a/src/packagemanager/npm/dependencyScanner/dryRunScanner.js b/packages/safe-chain/src/packagemanager/npm/dependencyScanner/dryRunScanner.js similarity index 100% rename from src/packagemanager/npm/dependencyScanner/dryRunScanner.js rename to packages/safe-chain/src/packagemanager/npm/dependencyScanner/dryRunScanner.js diff --git a/src/packagemanager/npm/dependencyScanner/nullScanner.js b/packages/safe-chain/src/packagemanager/npm/dependencyScanner/nullScanner.js similarity index 100% rename from src/packagemanager/npm/dependencyScanner/nullScanner.js rename to packages/safe-chain/src/packagemanager/npm/dependencyScanner/nullScanner.js diff --git a/src/packagemanager/npm/parsing/parseNpmInstallDryRunOutput.js b/packages/safe-chain/src/packagemanager/npm/parsing/parseNpmInstallDryRunOutput.js similarity index 100% rename from src/packagemanager/npm/parsing/parseNpmInstallDryRunOutput.js rename to packages/safe-chain/src/packagemanager/npm/parsing/parseNpmInstallDryRunOutput.js diff --git a/src/packagemanager/npm/parsing/parseNpmInstallDryRunOutput.spec.js b/packages/safe-chain/src/packagemanager/npm/parsing/parseNpmInstallDryRunOutput.spec.js similarity index 100% rename from src/packagemanager/npm/parsing/parseNpmInstallDryRunOutput.spec.js rename to packages/safe-chain/src/packagemanager/npm/parsing/parseNpmInstallDryRunOutput.spec.js diff --git a/src/packagemanager/npm/parsing/parsePackagesFromInstallArgs.js b/packages/safe-chain/src/packagemanager/npm/parsing/parsePackagesFromInstallArgs.js similarity index 100% rename from src/packagemanager/npm/parsing/parsePackagesFromInstallArgs.js rename to packages/safe-chain/src/packagemanager/npm/parsing/parsePackagesFromInstallArgs.js diff --git a/src/packagemanager/npm/parsing/parsePackagesFromInstallArgs.spec.js b/packages/safe-chain/src/packagemanager/npm/parsing/parsePackagesFromInstallArgs.spec.js similarity index 100% rename from src/packagemanager/npm/parsing/parsePackagesFromInstallArgs.spec.js rename to packages/safe-chain/src/packagemanager/npm/parsing/parsePackagesFromInstallArgs.spec.js diff --git a/src/packagemanager/npm/runNpmCommand.js b/packages/safe-chain/src/packagemanager/npm/runNpmCommand.js similarity index 100% rename from src/packagemanager/npm/runNpmCommand.js rename to packages/safe-chain/src/packagemanager/npm/runNpmCommand.js diff --git a/src/packagemanager/npm/utils/cmd-list.js b/packages/safe-chain/src/packagemanager/npm/utils/cmd-list.js similarity index 100% rename from src/packagemanager/npm/utils/cmd-list.js rename to packages/safe-chain/src/packagemanager/npm/utils/cmd-list.js diff --git a/src/packagemanager/npm/utils/npmCommands.js b/packages/safe-chain/src/packagemanager/npm/utils/npmCommands.js similarity index 100% rename from src/packagemanager/npm/utils/npmCommands.js rename to packages/safe-chain/src/packagemanager/npm/utils/npmCommands.js diff --git a/src/packagemanager/npx/createPackageManager.js b/packages/safe-chain/src/packagemanager/npx/createPackageManager.js similarity index 100% rename from src/packagemanager/npx/createPackageManager.js rename to packages/safe-chain/src/packagemanager/npx/createPackageManager.js diff --git a/src/packagemanager/npx/dependencyScanner/commandArgumentScanner.js b/packages/safe-chain/src/packagemanager/npx/dependencyScanner/commandArgumentScanner.js similarity index 100% rename from src/packagemanager/npx/dependencyScanner/commandArgumentScanner.js rename to packages/safe-chain/src/packagemanager/npx/dependencyScanner/commandArgumentScanner.js diff --git a/src/packagemanager/npx/parsing/parsePackagesFromArguments.js b/packages/safe-chain/src/packagemanager/npx/parsing/parsePackagesFromArguments.js similarity index 100% rename from src/packagemanager/npx/parsing/parsePackagesFromArguments.js rename to packages/safe-chain/src/packagemanager/npx/parsing/parsePackagesFromArguments.js diff --git a/src/packagemanager/npx/parsing/parsePackagesFromArguments.spec.js b/packages/safe-chain/src/packagemanager/npx/parsing/parsePackagesFromArguments.spec.js similarity index 100% rename from src/packagemanager/npx/parsing/parsePackagesFromArguments.spec.js rename to packages/safe-chain/src/packagemanager/npx/parsing/parsePackagesFromArguments.spec.js diff --git a/src/packagemanager/npx/runNpxCommand.js b/packages/safe-chain/src/packagemanager/npx/runNpxCommand.js similarity index 100% rename from src/packagemanager/npx/runNpxCommand.js rename to packages/safe-chain/src/packagemanager/npx/runNpxCommand.js diff --git a/src/packagemanager/pnpm/createPackageManager.js b/packages/safe-chain/src/packagemanager/pnpm/createPackageManager.js similarity index 100% rename from src/packagemanager/pnpm/createPackageManager.js rename to packages/safe-chain/src/packagemanager/pnpm/createPackageManager.js diff --git a/src/packagemanager/pnpm/dependencyScanner/commandArgumentScanner.js b/packages/safe-chain/src/packagemanager/pnpm/dependencyScanner/commandArgumentScanner.js similarity index 100% rename from src/packagemanager/pnpm/dependencyScanner/commandArgumentScanner.js rename to packages/safe-chain/src/packagemanager/pnpm/dependencyScanner/commandArgumentScanner.js diff --git a/src/packagemanager/pnpm/parsing/parsePackagesFromArguments.js b/packages/safe-chain/src/packagemanager/pnpm/parsing/parsePackagesFromArguments.js similarity index 100% rename from src/packagemanager/pnpm/parsing/parsePackagesFromArguments.js rename to packages/safe-chain/src/packagemanager/pnpm/parsing/parsePackagesFromArguments.js diff --git a/src/packagemanager/pnpm/parsing/parsePackagesFromArguments.spec.js b/packages/safe-chain/src/packagemanager/pnpm/parsing/parsePackagesFromArguments.spec.js similarity index 100% rename from src/packagemanager/pnpm/parsing/parsePackagesFromArguments.spec.js rename to packages/safe-chain/src/packagemanager/pnpm/parsing/parsePackagesFromArguments.spec.js diff --git a/src/packagemanager/pnpm/runPnpmCommand.js b/packages/safe-chain/src/packagemanager/pnpm/runPnpmCommand.js similarity index 100% rename from src/packagemanager/pnpm/runPnpmCommand.js rename to packages/safe-chain/src/packagemanager/pnpm/runPnpmCommand.js diff --git a/src/packagemanager/yarn/createPackageManager.js b/packages/safe-chain/src/packagemanager/yarn/createPackageManager.js similarity index 100% rename from src/packagemanager/yarn/createPackageManager.js rename to packages/safe-chain/src/packagemanager/yarn/createPackageManager.js diff --git a/src/packagemanager/yarn/dependencyScanner/commandArgumentScanner.js b/packages/safe-chain/src/packagemanager/yarn/dependencyScanner/commandArgumentScanner.js similarity index 100% rename from src/packagemanager/yarn/dependencyScanner/commandArgumentScanner.js rename to packages/safe-chain/src/packagemanager/yarn/dependencyScanner/commandArgumentScanner.js diff --git a/src/packagemanager/yarn/parsing/parsePackagesFromArguments.js b/packages/safe-chain/src/packagemanager/yarn/parsing/parsePackagesFromArguments.js similarity index 100% rename from src/packagemanager/yarn/parsing/parsePackagesFromArguments.js rename to packages/safe-chain/src/packagemanager/yarn/parsing/parsePackagesFromArguments.js diff --git a/src/packagemanager/yarn/parsing/parsePackagesFromArguments.spec.js b/packages/safe-chain/src/packagemanager/yarn/parsing/parsePackagesFromArguments.spec.js similarity index 100% rename from src/packagemanager/yarn/parsing/parsePackagesFromArguments.spec.js rename to packages/safe-chain/src/packagemanager/yarn/parsing/parsePackagesFromArguments.spec.js diff --git a/src/packagemanager/yarn/runYarnCommand.js b/packages/safe-chain/src/packagemanager/yarn/runYarnCommand.js similarity index 100% rename from src/packagemanager/yarn/runYarnCommand.js rename to packages/safe-chain/src/packagemanager/yarn/runYarnCommand.js diff --git a/src/scanning/audit/index.js b/packages/safe-chain/src/scanning/audit/index.js similarity index 100% rename from src/scanning/audit/index.js rename to packages/safe-chain/src/scanning/audit/index.js diff --git a/src/scanning/index.js b/packages/safe-chain/src/scanning/index.js similarity index 100% rename from src/scanning/index.js rename to packages/safe-chain/src/scanning/index.js diff --git a/src/scanning/index.scanCommand.spec.js b/packages/safe-chain/src/scanning/index.scanCommand.spec.js similarity index 100% rename from src/scanning/index.scanCommand.spec.js rename to packages/safe-chain/src/scanning/index.scanCommand.spec.js diff --git a/src/scanning/index.shouldScanCommand.spec.js b/packages/safe-chain/src/scanning/index.shouldScanCommand.spec.js similarity index 100% rename from src/scanning/index.shouldScanCommand.spec.js rename to packages/safe-chain/src/scanning/index.shouldScanCommand.spec.js diff --git a/src/scanning/malwareDatabase.js b/packages/safe-chain/src/scanning/malwareDatabase.js similarity index 100% rename from src/scanning/malwareDatabase.js rename to packages/safe-chain/src/scanning/malwareDatabase.js diff --git a/src/shell-integration/helpers.js b/packages/safe-chain/src/shell-integration/helpers.js similarity index 100% rename from src/shell-integration/helpers.js rename to packages/safe-chain/src/shell-integration/helpers.js diff --git a/src/shell-integration/helpers.spec.js b/packages/safe-chain/src/shell-integration/helpers.spec.js similarity index 100% rename from src/shell-integration/helpers.spec.js rename to packages/safe-chain/src/shell-integration/helpers.spec.js diff --git a/src/shell-integration/setup.js b/packages/safe-chain/src/shell-integration/setup.js similarity index 100% rename from src/shell-integration/setup.js rename to packages/safe-chain/src/shell-integration/setup.js diff --git a/src/shell-integration/shellDetection.js b/packages/safe-chain/src/shell-integration/shellDetection.js similarity index 100% rename from src/shell-integration/shellDetection.js rename to packages/safe-chain/src/shell-integration/shellDetection.js diff --git a/src/shell-integration/startup-scripts/init-fish.fish b/packages/safe-chain/src/shell-integration/startup-scripts/init-fish.fish similarity index 100% rename from src/shell-integration/startup-scripts/init-fish.fish rename to packages/safe-chain/src/shell-integration/startup-scripts/init-fish.fish diff --git a/src/shell-integration/startup-scripts/init-posix.sh b/packages/safe-chain/src/shell-integration/startup-scripts/init-posix.sh similarity index 100% rename from src/shell-integration/startup-scripts/init-posix.sh rename to packages/safe-chain/src/shell-integration/startup-scripts/init-posix.sh diff --git a/src/shell-integration/startup-scripts/init-pwsh.ps1 b/packages/safe-chain/src/shell-integration/startup-scripts/init-pwsh.ps1 similarity index 100% rename from src/shell-integration/startup-scripts/init-pwsh.ps1 rename to packages/safe-chain/src/shell-integration/startup-scripts/init-pwsh.ps1 diff --git a/src/shell-integration/supported-shells/bash.js b/packages/safe-chain/src/shell-integration/supported-shells/bash.js similarity index 100% rename from src/shell-integration/supported-shells/bash.js rename to packages/safe-chain/src/shell-integration/supported-shells/bash.js diff --git a/src/shell-integration/supported-shells/bash.spec.js b/packages/safe-chain/src/shell-integration/supported-shells/bash.spec.js similarity index 100% rename from src/shell-integration/supported-shells/bash.spec.js rename to packages/safe-chain/src/shell-integration/supported-shells/bash.spec.js diff --git a/src/shell-integration/supported-shells/fish.js b/packages/safe-chain/src/shell-integration/supported-shells/fish.js similarity index 100% rename from src/shell-integration/supported-shells/fish.js rename to packages/safe-chain/src/shell-integration/supported-shells/fish.js diff --git a/src/shell-integration/supported-shells/fish.spec.js b/packages/safe-chain/src/shell-integration/supported-shells/fish.spec.js similarity index 100% rename from src/shell-integration/supported-shells/fish.spec.js rename to packages/safe-chain/src/shell-integration/supported-shells/fish.spec.js diff --git a/src/shell-integration/supported-shells/powershell.js b/packages/safe-chain/src/shell-integration/supported-shells/powershell.js similarity index 100% rename from src/shell-integration/supported-shells/powershell.js rename to packages/safe-chain/src/shell-integration/supported-shells/powershell.js diff --git a/src/shell-integration/supported-shells/powershell.spec.js b/packages/safe-chain/src/shell-integration/supported-shells/powershell.spec.js similarity index 100% rename from src/shell-integration/supported-shells/powershell.spec.js rename to packages/safe-chain/src/shell-integration/supported-shells/powershell.spec.js diff --git a/src/shell-integration/supported-shells/windowsPowershell.js b/packages/safe-chain/src/shell-integration/supported-shells/windowsPowershell.js similarity index 100% rename from src/shell-integration/supported-shells/windowsPowershell.js rename to packages/safe-chain/src/shell-integration/supported-shells/windowsPowershell.js diff --git a/src/shell-integration/supported-shells/windowsPowershell.spec.js b/packages/safe-chain/src/shell-integration/supported-shells/windowsPowershell.spec.js similarity index 100% rename from src/shell-integration/supported-shells/windowsPowershell.spec.js rename to packages/safe-chain/src/shell-integration/supported-shells/windowsPowershell.spec.js diff --git a/src/shell-integration/supported-shells/zsh.js b/packages/safe-chain/src/shell-integration/supported-shells/zsh.js similarity index 100% rename from src/shell-integration/supported-shells/zsh.js rename to packages/safe-chain/src/shell-integration/supported-shells/zsh.js diff --git a/src/shell-integration/supported-shells/zsh.spec.js b/packages/safe-chain/src/shell-integration/supported-shells/zsh.spec.js similarity index 100% rename from src/shell-integration/supported-shells/zsh.spec.js rename to packages/safe-chain/src/shell-integration/supported-shells/zsh.spec.js diff --git a/src/shell-integration/teardown.js b/packages/safe-chain/src/shell-integration/teardown.js similarity index 100% rename from src/shell-integration/teardown.js rename to packages/safe-chain/src/shell-integration/teardown.js diff --git a/test/e2e/Dockerfile b/test/e2e/Dockerfile index 4d919ef..be4249e 100644 --- a/test/e2e/Dockerfile +++ b/test/e2e/Dockerfile @@ -6,13 +6,13 @@ ENV CI=true WORKDIR /app # Copy package files first for better caching -COPY package*.json ./ +COPY packages/safe-chain/package*.json ./ # Install dependencies RUN npm install # Copy the rest of the application -COPY . . +COPY packages/safe-chain ./ # Build the application RUN npm --no-git-tag-version version 1.0.0 --allow-same-version diff --git a/test/e2e/package.json b/test/e2e/package.json index 4748762..1dc6e8a 100644 --- a/test/e2e/package.json +++ b/test/e2e/package.json @@ -1,5 +1,6 @@ { "name": "@aikidosec/safe-chain-e2e-tests", + "private": true, "version": "1.0.0", "description": "End-to-end tests for the Aikido Safe Chain", "scripts": {