mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	feat(server): Use Testcontainers for e2e tests (#3202)
* Add testcontainers to e2e * Run e2e tests in github without docker * Run lint on e2e * Cleaner setup ordering * Rename setup file
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							c86b2ae500
						
					
				
				
					commit
					ea64fdd7b4
				
			
							
								
								
									
										11
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							@@ -13,13 +13,20 @@ jobs:
 | 
				
			|||||||
  e2e-tests:
 | 
					  e2e-tests:
 | 
				
			||||||
    name: Run end-to-end test suites
 | 
					    name: Run end-to-end test suites
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    defaults:
 | 
				
			||||||
 | 
					      run:
 | 
				
			||||||
 | 
					        working-directory: ./server
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout code
 | 
					      - name: Checkout code
 | 
				
			||||||
        uses: actions/checkout@v3
 | 
					        uses: actions/checkout@v3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Run Immich Server E2E Test
 | 
					      - name: Run npm install
 | 
				
			||||||
        run: docker-compose -f ./docker/docker-compose.test.yml --env-file ./docker/.env.test up --abort-on-container-exit --exit-code-from immich-server-test
 | 
					        run: npm ci
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Run e2e tests
 | 
				
			||||||
 | 
					        run: npm run test:e2e
 | 
				
			||||||
 | 
					        if: ${{ !cancelled() }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  doc-tests:
 | 
					  doc-tests:
 | 
				
			||||||
    name: Run documentation checks
 | 
					    name: Run documentation checks
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										24
									
								
								server/e2e/setup.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								server/e2e/setup.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					import { GenericContainer, PostgreSqlContainer } from 'testcontainers';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default async () => {
 | 
				
			||||||
 | 
					  process.env.NODE_ENV = 'development';
 | 
				
			||||||
 | 
					  process.env.TYPESENSE_API_KEY = 'abc123';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const pg = await new PostgreSqlContainer('postgres')
 | 
				
			||||||
 | 
					    .withExposedPorts(5432)
 | 
				
			||||||
 | 
					    .withDatabase('immich')
 | 
				
			||||||
 | 
					    .withUsername('postgres')
 | 
				
			||||||
 | 
					    .withPassword('postgres')
 | 
				
			||||||
 | 
					    .start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  process.env.DB_PORT = String(pg.getMappedPort(5432));
 | 
				
			||||||
 | 
					  process.env.DB_HOSTNAME = pg.getHost();
 | 
				
			||||||
 | 
					  process.env.DB_USERNAME = pg.getUsername();
 | 
				
			||||||
 | 
					  process.env.DB_PASSWORD = pg.getPassword();
 | 
				
			||||||
 | 
					  process.env.DB_DATABASE_NAME = pg.getDatabase();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const redis = await new GenericContainer('redis').withExposedPorts(6379).start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  process.env.REDIS_PORT = String(redis.getMappedPort(6379));
 | 
				
			||||||
 | 
					  process.env.REDIS_HOSTNAME = redis.getHost();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -2,6 +2,7 @@
 | 
				
			|||||||
  "moduleFileExtensions": ["js", "json", "ts"],
 | 
					  "moduleFileExtensions": ["js", "json", "ts"],
 | 
				
			||||||
  "modulePaths": ["<rootDir>"],
 | 
					  "modulePaths": ["<rootDir>"],
 | 
				
			||||||
  "rootDir": ".",
 | 
					  "rootDir": ".",
 | 
				
			||||||
 | 
					  "globalSetup": "<rootDir>/e2e/setup.ts",
 | 
				
			||||||
  "testEnvironment": "node",
 | 
					  "testEnvironment": "node",
 | 
				
			||||||
  "testRegex": ".e2e-spec.ts$",
 | 
					  "testRegex": ".e2e-spec.ts$",
 | 
				
			||||||
  "transform": {
 | 
					  "transform": {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										552
									
								
								server/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										552
									
								
								server/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -90,6 +90,7 @@
 | 
				
			|||||||
        "rimraf": "^3.0.2",
 | 
					        "rimraf": "^3.0.2",
 | 
				
			||||||
        "source-map-support": "^0.5.20",
 | 
					        "source-map-support": "^0.5.20",
 | 
				
			||||||
        "supertest": "^6.1.3",
 | 
					        "supertest": "^6.1.3",
 | 
				
			||||||
 | 
					        "testcontainers": "^9.9.1",
 | 
				
			||||||
        "ts-jest": "^27.0.3",
 | 
					        "ts-jest": "^27.0.3",
 | 
				
			||||||
        "ts-loader": "^9.2.3",
 | 
					        "ts-loader": "^9.2.3",
 | 
				
			||||||
        "ts-node": "^10.0.0",
 | 
					        "ts-node": "^10.0.0",
 | 
				
			||||||
@@ -798,6 +799,12 @@
 | 
				
			|||||||
        "node": ">=6.9.0"
 | 
					        "node": ">=6.9.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@balena/dockerignore": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@bcoe/v8-coverage": {
 | 
					    "node_modules/@bcoe/v8-coverage": {
 | 
				
			||||||
      "version": "0.2.3",
 | 
					      "version": "0.2.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
 | 
				
			||||||
@@ -2861,6 +2868,26 @@
 | 
				
			|||||||
        "@types/node": "*"
 | 
					        "@types/node": "*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@types/docker-modem": {
 | 
				
			||||||
 | 
					      "version": "3.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/docker-modem/-/docker-modem-3.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-qC7prjoEYR2QEe6SmCVfB1x3rfcQtUr1n4x89+3e0wSTMQ/KYCyf+/RAA9n2tllkkNc6//JMUZePdFRiGIWfaQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@types/node": "*",
 | 
				
			||||||
 | 
					        "@types/ssh2": "*"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@types/dockerode": {
 | 
				
			||||||
 | 
					      "version": "3.3.19",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.19.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-7CC5yIpQi+bHXwDK43b/deYXteP3Lem9gdocVVHJPSRJJLMfbiOchQV3rDmAPkMw+n3GIVj7m1six3JW+VcwwA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@types/docker-modem": "*",
 | 
				
			||||||
 | 
					        "@types/node": "*"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/eslint": {
 | 
					    "node_modules/@types/eslint": {
 | 
				
			||||||
      "version": "8.37.0",
 | 
					      "version": "8.37.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz",
 | 
				
			||||||
@@ -3108,6 +3135,24 @@
 | 
				
			|||||||
        "@types/node": "*"
 | 
					        "@types/node": "*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@types/ssh2": {
 | 
				
			||||||
 | 
					      "version": "1.11.12",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-1.11.12.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-uvrvY6oN+3LiFiQmDCnuP65Qlryqvw5sbpKP7oce5cI/Ib3u3yY/DIkxIegT87MaVpnchUfSkEo2g9HeC7mUng==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@types/node": "^18.11.18"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@types/ssh2-streams": {
 | 
				
			||||||
 | 
					      "version": "0.1.9",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.9.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-I2J9jKqfmvXLR5GomDiCoHrEJ58hAOmFrekfFqmCFd+A6gaEStvWnPykoWUwld1PNg4G5ag1LwdA+Lz1doRJqg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@types/node": "*"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/stack-utils": {
 | 
					    "node_modules/@types/stack-utils": {
 | 
				
			||||||
      "version": "2.0.1",
 | 
					      "version": "2.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
 | 
				
			||||||
@@ -3862,6 +3907,12 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
 | 
					      "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/async-lock": {
 | 
				
			||||||
 | 
					      "version": "1.4.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/asynckit": {
 | 
					    "node_modules/asynckit": {
 | 
				
			||||||
      "version": "0.4.0",
 | 
					      "version": "0.4.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
 | 
				
			||||||
@@ -4236,6 +4287,16 @@
 | 
				
			|||||||
        "node": ">=0.2.0"
 | 
					        "node": ">=0.2.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/buildcheck": {
 | 
				
			||||||
 | 
					      "version": "0.0.6",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=10.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/bullmq": {
 | 
					    "node_modules/bullmq": {
 | 
				
			||||||
      "version": "3.15.4",
 | 
					      "version": "3.15.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-3.15.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-3.15.4.tgz",
 | 
				
			||||||
@@ -4299,6 +4360,15 @@
 | 
				
			|||||||
        "node": ">=10.16.0"
 | 
					        "node": ">=10.16.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/byline": {
 | 
				
			||||||
 | 
					      "version": "5.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=0.10.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/bytes": {
 | 
					    "node_modules/bytes": {
 | 
				
			||||||
      "version": "3.1.2",
 | 
					      "version": "3.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
 | 
				
			||||||
@@ -4907,6 +4977,21 @@
 | 
				
			|||||||
        "node": ">=10"
 | 
					        "node": ">=10"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/cpu-features": {
 | 
				
			||||||
 | 
					      "version": "0.0.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "hasInstallScript": true,
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "buildcheck": "~0.0.6",
 | 
				
			||||||
 | 
					        "nan": "^2.17.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=10.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/crc-32": {
 | 
					    "node_modules/crc-32": {
 | 
				
			||||||
      "version": "1.2.2",
 | 
					      "version": "1.2.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
 | 
				
			||||||
@@ -5214,6 +5299,74 @@
 | 
				
			|||||||
        "node": ">=8"
 | 
					        "node": ">=8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/docker-compose": {
 | 
				
			||||||
 | 
					      "version": "0.24.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-CVphzCi0Hmw/0CHlAzgiwhLsJjFRqnvpBYMYbf63bz6MON69ElgrfrgQTmgPtEjbifjgaptu3+Gea62vI+9jiA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "yaml": "^2.2.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 6.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/docker-compose/node_modules/yaml": {
 | 
				
			||||||
 | 
					      "version": "2.3.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 14"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/docker-modem": {
 | 
				
			||||||
 | 
					      "version": "3.0.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "debug": "^4.1.1",
 | 
				
			||||||
 | 
					        "readable-stream": "^3.5.0",
 | 
				
			||||||
 | 
					        "split-ca": "^1.0.1",
 | 
				
			||||||
 | 
					        "ssh2": "^1.11.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 8.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/dockerode": {
 | 
				
			||||||
 | 
					      "version": "3.3.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@balena/dockerignore": "^1.0.2",
 | 
				
			||||||
 | 
					        "docker-modem": "^3.0.0",
 | 
				
			||||||
 | 
					        "tar-fs": "~2.0.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 8.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/dockerode/node_modules/chownr": {
 | 
				
			||||||
 | 
					      "version": "1.1.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/dockerode/node_modules/tar-fs": {
 | 
				
			||||||
 | 
					      "version": "2.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "chownr": "^1.1.1",
 | 
				
			||||||
 | 
					        "mkdirp-classic": "^0.5.2",
 | 
				
			||||||
 | 
					        "pump": "^3.0.0",
 | 
				
			||||||
 | 
					        "tar-stream": "^2.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/doctrine": {
 | 
					    "node_modules/doctrine": {
 | 
				
			||||||
      "version": "3.0.0",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
 | 
				
			||||||
@@ -6468,6 +6621,18 @@
 | 
				
			|||||||
        "node": ">=8.0.0"
 | 
					        "node": ">=8.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/get-port": {
 | 
				
			||||||
 | 
					      "version": "5.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=8"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/sindresorhus"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/get-stream": {
 | 
					    "node_modules/get-stream": {
 | 
				
			||||||
      "version": "6.0.1",
 | 
					      "version": "6.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
 | 
				
			||||||
@@ -8667,6 +8832,13 @@
 | 
				
			|||||||
        "thenify-all": "^1.0.0"
 | 
					        "thenify-all": "^1.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/nan": {
 | 
				
			||||||
 | 
					      "version": "2.17.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/napi-build-utils": {
 | 
					    "node_modules/napi-build-utils": {
 | 
				
			||||||
      "version": "1.0.2",
 | 
					      "version": "1.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
 | 
				
			||||||
@@ -9569,6 +9741,30 @@
 | 
				
			|||||||
        "node": ">= 6"
 | 
					        "node": ">= 6"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/properties-reader": {
 | 
				
			||||||
 | 
					      "version": "2.2.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/properties-reader/-/properties-reader-2.2.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-CgVcr8MwGoBKK24r9TwHfZkLLaNFHQ6y4wgT9w/XzdpacOOi5ciH4hcuLechSDAwXsfrGQtI2JTutY2djOx2Ow==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "mkdirp": "^1.0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/properties-reader/node_modules/mkdirp": {
 | 
				
			||||||
 | 
					      "version": "1.0.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "bin": {
 | 
				
			||||||
 | 
					        "mkdirp": "bin/cmd.js"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=10"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/proxy-addr": {
 | 
					    "node_modules/proxy-addr": {
 | 
				
			||||||
      "version": "2.0.7",
 | 
					      "version": "2.0.7",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
 | 
				
			||||||
@@ -10469,6 +10665,12 @@
 | 
				
			|||||||
      "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==",
 | 
					      "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/split-ca": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/split2": {
 | 
					    "node_modules/split2": {
 | 
				
			||||||
      "version": "4.2.0",
 | 
					      "version": "4.2.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
 | 
				
			||||||
@@ -10483,6 +10685,44 @@
 | 
				
			|||||||
      "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
 | 
					      "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/ssh-remote-port-forward": {
 | 
				
			||||||
 | 
					      "version": "1.0.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/ssh-remote-port-forward/-/ssh-remote-port-forward-1.0.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-x0LV1eVDwjf1gmG7TTnfqIzf+3VPRz7vrNIjX6oYLbeCrf/PeVY6hkT68Mg+q02qXxQhrLjB0jfgvhevoCRmLQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@types/ssh2": "^0.5.48",
 | 
				
			||||||
 | 
					        "ssh2": "^1.4.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/ssh-remote-port-forward/node_modules/@types/ssh2": {
 | 
				
			||||||
 | 
					      "version": "0.5.52",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.52.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-lbLLlXxdCZOSJMCInKH2+9V/77ET2J6NPQHpFI0kda61Dd1KglJs+fPQBchizmzYSOJBgdTajhPqBO1xxLywvg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@types/node": "*",
 | 
				
			||||||
 | 
					        "@types/ssh2-streams": "*"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/ssh2": {
 | 
				
			||||||
 | 
					      "version": "1.14.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.14.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-AqzD1UCqit8tbOKoj6ztDDi1ffJZ2rV2SwlgrVVrHPkV5vWqGJOVp5pmtj18PunkPJAuKQsnInyKV+/Nb2bUnA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "hasInstallScript": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "asn1": "^0.2.6",
 | 
				
			||||||
 | 
					        "bcrypt-pbkdf": "^1.0.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=10.16.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "optionalDependencies": {
 | 
				
			||||||
 | 
					        "cpu-features": "~0.0.8",
 | 
				
			||||||
 | 
					        "nan": "^2.17.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/sshpk": {
 | 
					    "node_modules/sshpk": {
 | 
				
			||||||
      "version": "1.17.0",
 | 
					      "version": "1.17.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
 | 
				
			||||||
@@ -10925,6 +11165,64 @@
 | 
				
			|||||||
        "node": ">=8"
 | 
					        "node": ">=8"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/test-exclude/node_modules/glob": {
 | 
				
			||||||
 | 
					      "version": "7.2.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "fs.realpath": "^1.0.0",
 | 
				
			||||||
 | 
					        "inflight": "^1.0.4",
 | 
				
			||||||
 | 
					        "inherits": "2",
 | 
				
			||||||
 | 
					        "minimatch": "^3.1.1",
 | 
				
			||||||
 | 
					        "once": "^1.3.0",
 | 
				
			||||||
 | 
					        "path-is-absolute": "^1.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": "*"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "url": "https://github.com/sponsors/isaacs"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/testcontainers": {
 | 
				
			||||||
 | 
					      "version": "9.9.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/testcontainers/-/testcontainers-9.9.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-44iDiyK0JzK5FbqdrKjmE/8QSZhvCFxh0d/OfG+R9fkznU5KVCYeeUsPULkVRIi210X4FAitSXra1ZU591Zlqw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@balena/dockerignore": "^1.0.2",
 | 
				
			||||||
 | 
					        "@types/archiver": "^5.3.2",
 | 
				
			||||||
 | 
					        "@types/dockerode": "^3.3.19",
 | 
				
			||||||
 | 
					        "archiver": "^5.3.1",
 | 
				
			||||||
 | 
					        "async-lock": "^1.4.0",
 | 
				
			||||||
 | 
					        "byline": "^5.0.0",
 | 
				
			||||||
 | 
					        "debug": "^4.3.4",
 | 
				
			||||||
 | 
					        "docker-compose": "^0.24.1",
 | 
				
			||||||
 | 
					        "dockerode": "^3.3.5",
 | 
				
			||||||
 | 
					        "get-port": "^5.1.1",
 | 
				
			||||||
 | 
					        "node-fetch": "^2.6.11",
 | 
				
			||||||
 | 
					        "properties-reader": "^2.2.0",
 | 
				
			||||||
 | 
					        "ssh-remote-port-forward": "^1.0.4",
 | 
				
			||||||
 | 
					        "tar-fs": "^2.1.1",
 | 
				
			||||||
 | 
					        "tmp": "^0.2.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 10.16"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/testcontainers/node_modules/tmp": {
 | 
				
			||||||
 | 
					      "version": "0.2.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "rimraf": "^3.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=8.17.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/text-table": {
 | 
					    "node_modules/text-table": {
 | 
				
			||||||
      "version": "0.2.0",
 | 
					      "version": "0.2.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
 | 
				
			||||||
@@ -12756,6 +13054,12 @@
 | 
				
			|||||||
        "to-fast-properties": "^2.0.0"
 | 
					        "to-fast-properties": "^2.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "@balena/dockerignore": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "@bcoe/v8-coverage": {
 | 
					    "@bcoe/v8-coverage": {
 | 
				
			||||||
      "version": "0.2.3",
 | 
					      "version": "0.2.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
 | 
				
			||||||
@@ -14290,6 +14594,26 @@
 | 
				
			|||||||
        "@types/node": "*"
 | 
					        "@types/node": "*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "@types/docker-modem": {
 | 
				
			||||||
 | 
					      "version": "3.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/docker-modem/-/docker-modem-3.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-qC7prjoEYR2QEe6SmCVfB1x3rfcQtUr1n4x89+3e0wSTMQ/KYCyf+/RAA9n2tllkkNc6//JMUZePdFRiGIWfaQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@types/node": "*",
 | 
				
			||||||
 | 
					        "@types/ssh2": "*"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "@types/dockerode": {
 | 
				
			||||||
 | 
					      "version": "3.3.19",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.19.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-7CC5yIpQi+bHXwDK43b/deYXteP3Lem9gdocVVHJPSRJJLMfbiOchQV3rDmAPkMw+n3GIVj7m1six3JW+VcwwA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@types/docker-modem": "*",
 | 
				
			||||||
 | 
					        "@types/node": "*"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "@types/eslint": {
 | 
					    "@types/eslint": {
 | 
				
			||||||
      "version": "8.37.0",
 | 
					      "version": "8.37.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.37.0.tgz",
 | 
				
			||||||
@@ -14537,6 +14861,24 @@
 | 
				
			|||||||
        "@types/node": "*"
 | 
					        "@types/node": "*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "@types/ssh2": {
 | 
				
			||||||
 | 
					      "version": "1.11.12",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-1.11.12.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-uvrvY6oN+3LiFiQmDCnuP65Qlryqvw5sbpKP7oce5cI/Ib3u3yY/DIkxIegT87MaVpnchUfSkEo2g9HeC7mUng==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@types/node": "^18.11.18"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "@types/ssh2-streams": {
 | 
				
			||||||
 | 
					      "version": "0.1.9",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.9.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-I2J9jKqfmvXLR5GomDiCoHrEJ58hAOmFrekfFqmCFd+A6gaEStvWnPykoWUwld1PNg4G5ag1LwdA+Lz1doRJqg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@types/node": "*"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "@types/stack-utils": {
 | 
					    "@types/stack-utils": {
 | 
				
			||||||
      "version": "2.0.1",
 | 
					      "version": "2.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
 | 
				
			||||||
@@ -15126,6 +15468,12 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
 | 
					      "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "async-lock": {
 | 
				
			||||||
 | 
					      "version": "1.4.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "asynckit": {
 | 
					    "asynckit": {
 | 
				
			||||||
      "version": "0.4.0",
 | 
					      "version": "0.4.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
 | 
				
			||||||
@@ -15399,6 +15747,13 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ=="
 | 
					      "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "buildcheck": {
 | 
				
			||||||
 | 
					      "version": "0.0.6",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "bullmq": {
 | 
					    "bullmq": {
 | 
				
			||||||
      "version": "3.15.4",
 | 
					      "version": "3.15.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-3.15.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-3.15.4.tgz",
 | 
				
			||||||
@@ -15452,6 +15807,12 @@
 | 
				
			|||||||
        "streamsearch": "^1.1.0"
 | 
					        "streamsearch": "^1.1.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "byline": {
 | 
				
			||||||
 | 
					      "version": "5.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "bytes": {
 | 
					    "bytes": {
 | 
				
			||||||
      "version": "3.1.2",
 | 
					      "version": "3.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
 | 
				
			||||||
@@ -15908,6 +16269,17 @@
 | 
				
			|||||||
        "yaml": "^1.10.0"
 | 
					        "yaml": "^1.10.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "cpu-features": {
 | 
				
			||||||
 | 
					      "version": "0.0.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-BbHBvtYhUhksqTjr6bhNOjGgMnhwhGTQmOoZGD+K7BCaQDCuZl/Ve1ZxUSMRwVC4D/rkCPQ2MAIeYzrWyK7eEg==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "buildcheck": "~0.0.6",
 | 
				
			||||||
 | 
					        "nan": "^2.17.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "crc-32": {
 | 
					    "crc-32": {
 | 
				
			||||||
      "version": "1.2.2",
 | 
					      "version": "1.2.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
 | 
				
			||||||
@@ -16135,6 +16507,66 @@
 | 
				
			|||||||
        "path-type": "^4.0.0"
 | 
					        "path-type": "^4.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "docker-compose": {
 | 
				
			||||||
 | 
					      "version": "0.24.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/docker-compose/-/docker-compose-0.24.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-CVphzCi0Hmw/0CHlAzgiwhLsJjFRqnvpBYMYbf63bz6MON69ElgrfrgQTmgPtEjbifjgaptu3+Gea62vI+9jiA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "yaml": "^2.2.2"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "yaml": {
 | 
				
			||||||
 | 
					          "version": "2.3.1",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
 | 
				
			||||||
 | 
					          "dev": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "docker-modem": {
 | 
				
			||||||
 | 
					      "version": "3.0.8",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.8.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "debug": "^4.1.1",
 | 
				
			||||||
 | 
					        "readable-stream": "^3.5.0",
 | 
				
			||||||
 | 
					        "split-ca": "^1.0.1",
 | 
				
			||||||
 | 
					        "ssh2": "^1.11.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "dockerode": {
 | 
				
			||||||
 | 
					      "version": "3.3.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@balena/dockerignore": "^1.0.2",
 | 
				
			||||||
 | 
					        "docker-modem": "^3.0.0",
 | 
				
			||||||
 | 
					        "tar-fs": "~2.0.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "chownr": {
 | 
				
			||||||
 | 
					          "version": "1.1.4",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
 | 
				
			||||||
 | 
					          "dev": true
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "tar-fs": {
 | 
				
			||||||
 | 
					          "version": "2.0.1",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==",
 | 
				
			||||||
 | 
					          "dev": true,
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "chownr": "^1.1.1",
 | 
				
			||||||
 | 
					            "mkdirp-classic": "^0.5.2",
 | 
				
			||||||
 | 
					            "pump": "^3.0.0",
 | 
				
			||||||
 | 
					            "tar-stream": "^2.0.0"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "doctrine": {
 | 
					    "doctrine": {
 | 
				
			||||||
      "version": "3.0.0",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
 | 
				
			||||||
@@ -17086,6 +17518,12 @@
 | 
				
			|||||||
      "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
 | 
					      "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "get-port": {
 | 
				
			||||||
 | 
					      "version": "5.1.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "get-stream": {
 | 
					    "get-stream": {
 | 
				
			||||||
      "version": "6.0.1",
 | 
					      "version": "6.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
 | 
				
			||||||
@@ -18765,6 +19203,13 @@
 | 
				
			|||||||
        "thenify-all": "^1.0.0"
 | 
					        "thenify-all": "^1.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "nan": {
 | 
				
			||||||
 | 
					      "version": "2.17.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "napi-build-utils": {
 | 
					    "napi-build-utils": {
 | 
				
			||||||
      "version": "1.0.2",
 | 
					      "version": "1.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
 | 
				
			||||||
@@ -19422,6 +19867,23 @@
 | 
				
			|||||||
        "sisteransi": "^1.0.5"
 | 
					        "sisteransi": "^1.0.5"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "properties-reader": {
 | 
				
			||||||
 | 
					      "version": "2.2.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/properties-reader/-/properties-reader-2.2.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-CgVcr8MwGoBKK24r9TwHfZkLLaNFHQ6y4wgT9w/XzdpacOOi5ciH4hcuLechSDAwXsfrGQtI2JTutY2djOx2Ow==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "mkdirp": "^1.0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "mkdirp": {
 | 
				
			||||||
 | 
					          "version": "1.0.4",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
 | 
				
			||||||
 | 
					          "dev": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "proxy-addr": {
 | 
					    "proxy-addr": {
 | 
				
			||||||
      "version": "2.0.7",
 | 
					      "version": "2.0.7",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
 | 
				
			||||||
@@ -20090,6 +20552,12 @@
 | 
				
			|||||||
      "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==",
 | 
					      "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "split-ca": {
 | 
				
			||||||
 | 
					      "version": "1.0.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "split2": {
 | 
					    "split2": {
 | 
				
			||||||
      "version": "4.2.0",
 | 
					      "version": "4.2.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
 | 
				
			||||||
@@ -20101,6 +20569,40 @@
 | 
				
			|||||||
      "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
 | 
					      "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "ssh-remote-port-forward": {
 | 
				
			||||||
 | 
					      "version": "1.0.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/ssh-remote-port-forward/-/ssh-remote-port-forward-1.0.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-x0LV1eVDwjf1gmG7TTnfqIzf+3VPRz7vrNIjX6oYLbeCrf/PeVY6hkT68Mg+q02qXxQhrLjB0jfgvhevoCRmLQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@types/ssh2": "^0.5.48",
 | 
				
			||||||
 | 
					        "ssh2": "^1.4.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@types/ssh2": {
 | 
				
			||||||
 | 
					          "version": "0.5.52",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.52.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-lbLLlXxdCZOSJMCInKH2+9V/77ET2J6NPQHpFI0kda61Dd1KglJs+fPQBchizmzYSOJBgdTajhPqBO1xxLywvg==",
 | 
				
			||||||
 | 
					          "dev": true,
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "@types/node": "*",
 | 
				
			||||||
 | 
					            "@types/ssh2-streams": "*"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "ssh2": {
 | 
				
			||||||
 | 
					      "version": "1.14.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.14.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-AqzD1UCqit8tbOKoj6ztDDi1ffJZ2rV2SwlgrVVrHPkV5vWqGJOVp5pmtj18PunkPJAuKQsnInyKV+/Nb2bUnA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "asn1": "^0.2.6",
 | 
				
			||||||
 | 
					        "bcrypt-pbkdf": "^1.0.2",
 | 
				
			||||||
 | 
					        "cpu-features": "~0.0.8",
 | 
				
			||||||
 | 
					        "nan": "^2.17.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "sshpk": {
 | 
					    "sshpk": {
 | 
				
			||||||
      "version": "1.17.0",
 | 
					      "version": "1.17.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
 | 
				
			||||||
@@ -20409,6 +20911,56 @@
 | 
				
			|||||||
        "@istanbuljs/schema": "^0.1.2",
 | 
					        "@istanbuljs/schema": "^0.1.2",
 | 
				
			||||||
        "glob": "^7.1.4",
 | 
					        "glob": "^7.1.4",
 | 
				
			||||||
        "minimatch": "^3.0.4"
 | 
					        "minimatch": "^3.0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "glob": {
 | 
				
			||||||
 | 
					          "version": "7.2.3",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
 | 
				
			||||||
 | 
					          "dev": true,
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "fs.realpath": "^1.0.0",
 | 
				
			||||||
 | 
					            "inflight": "^1.0.4",
 | 
				
			||||||
 | 
					            "inherits": "2",
 | 
				
			||||||
 | 
					            "minimatch": "^3.1.1",
 | 
				
			||||||
 | 
					            "once": "^1.3.0",
 | 
				
			||||||
 | 
					            "path-is-absolute": "^1.0.0"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "testcontainers": {
 | 
				
			||||||
 | 
					      "version": "9.9.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/testcontainers/-/testcontainers-9.9.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-44iDiyK0JzK5FbqdrKjmE/8QSZhvCFxh0d/OfG+R9fkznU5KVCYeeUsPULkVRIi210X4FAitSXra1ZU591Zlqw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@balena/dockerignore": "^1.0.2",
 | 
				
			||||||
 | 
					        "@types/archiver": "^5.3.2",
 | 
				
			||||||
 | 
					        "@types/dockerode": "^3.3.19",
 | 
				
			||||||
 | 
					        "archiver": "^5.3.1",
 | 
				
			||||||
 | 
					        "async-lock": "^1.4.0",
 | 
				
			||||||
 | 
					        "byline": "^5.0.0",
 | 
				
			||||||
 | 
					        "debug": "^4.3.4",
 | 
				
			||||||
 | 
					        "docker-compose": "^0.24.1",
 | 
				
			||||||
 | 
					        "dockerode": "^3.3.5",
 | 
				
			||||||
 | 
					        "get-port": "^5.1.1",
 | 
				
			||||||
 | 
					        "node-fetch": "^2.6.11",
 | 
				
			||||||
 | 
					        "properties-reader": "^2.2.0",
 | 
				
			||||||
 | 
					        "ssh-remote-port-forward": "^1.0.4",
 | 
				
			||||||
 | 
					        "tar-fs": "^2.1.1",
 | 
				
			||||||
 | 
					        "tmp": "^0.2.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "tmp": {
 | 
				
			||||||
 | 
					          "version": "0.2.1",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
 | 
				
			||||||
 | 
					          "dev": true,
 | 
				
			||||||
 | 
					          "requires": {
 | 
				
			||||||
 | 
					            "rimraf": "^3.0.0"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "text-table": {
 | 
					    "text-table": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,7 @@
 | 
				
			|||||||
    "nest": "nest",
 | 
					    "nest": "nest",
 | 
				
			||||||
    "start:dev": "nest start --watch --",
 | 
					    "start:dev": "nest start --watch --",
 | 
				
			||||||
    "start:debug": "nest start --debug 0.0.0.0:9230 --watch --",
 | 
					    "start:debug": "nest start --debug 0.0.0.0:9230 --watch --",
 | 
				
			||||||
    "lint": "eslint \"src/**/*.ts\" --max-warnings 0",
 | 
					    "lint": "eslint \"src/**/*.ts\" \"e2e/**/*.ts\" --max-warnings 0",
 | 
				
			||||||
    "lint:fix": "npm run lint -- --fix",
 | 
					    "lint:fix": "npm run lint -- --fix",
 | 
				
			||||||
    "check": "tsc --noEmit",
 | 
					    "check": "tsc --noEmit",
 | 
				
			||||||
    "check:code": "npm run format && npm run lint && npm run check",
 | 
					    "check:code": "npm run format && npm run lint && npm run check",
 | 
				
			||||||
@@ -116,6 +116,7 @@
 | 
				
			|||||||
    "rimraf": "^3.0.2",
 | 
					    "rimraf": "^3.0.2",
 | 
				
			||||||
    "source-map-support": "^0.5.20",
 | 
					    "source-map-support": "^0.5.20",
 | 
				
			||||||
    "supertest": "^6.1.3",
 | 
					    "supertest": "^6.1.3",
 | 
				
			||||||
 | 
					    "testcontainers": "^9.9.1",
 | 
				
			||||||
    "ts-jest": "^27.0.3",
 | 
					    "ts-jest": "^27.0.3",
 | 
				
			||||||
    "ts-loader": "^9.2.3",
 | 
					    "ts-loader": "^9.2.3",
 | 
				
			||||||
    "ts-node": "^10.0.0",
 | 
					    "ts-node": "^10.0.0",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user