From 36c5dcd60c8764b54dfb5c47ed3ce872b4481f50 Mon Sep 17 00:00:00 2001 From: dakota002 Date: Mon, 2 Oct 2023 13:53:38 -0400 Subject: [PATCH 1/4] update the npm tests to be OS agnostic --- package.json | 2 +- setup-dynamodb-local.mjs | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 setup-dynamodb-local.mjs diff --git a/package.json b/package.json index e064b0c..aab07e1 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "prepare:husky": "husky install", "prepare:tsc": "tsc", "prepare": "run-p prepare:*", - "test": "(test -e dynamodb_local_latest || (mkdir -p dynamodb_local_latest && curl https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz | tar -C dynamodb_local_latest -xz)) && jest" + "test": "node setup-dynamodb-local.mjs && jest" }, "engines": { "node": ">=16" diff --git a/setup-dynamodb-local.mjs b/setup-dynamodb-local.mjs new file mode 100644 index 0000000..2426b6a --- /dev/null +++ b/setup-dynamodb-local.mjs @@ -0,0 +1,24 @@ +import { existsSync, mkdirSync } from 'fs' +import { execSync } from 'child_process' + +const dynamodbDir = 'dynamodb_local_latest' +const dynamodbArchiveURL = + 'https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz' + +// Check if the dynamodbDir directory exists +if (!existsSync(dynamodbDir)) { + // If it doesn't exist, create it + mkdirSync(dynamodbDir, { recursive: true }) + + // Download and extract DynamoDB Local + try { + console.log('Downloading DynamoDB Local...') + execSync(`curl -L ${dynamodbArchiveURL} | tar -xz -C ${dynamodbDir}`, { + stdio: 'inherit', + }) + console.log('DynamoDB Local setup completed successfully.') + } catch (error) { + console.error('Error setting up DynamoDB Local:', error.message) + process.exit(1) + } +} From 843e2aab77a0dd625266355602bc2ee824b19943 Mon Sep 17 00:00:00 2001 From: dakota002 Date: Wed, 4 Oct 2023 09:13:19 -0400 Subject: [PATCH 2/4] Async in the setup --- setup-dynamodb-local.mjs | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/setup-dynamodb-local.mjs b/setup-dynamodb-local.mjs index 2426b6a..df45fe2 100644 --- a/setup-dynamodb-local.mjs +++ b/setup-dynamodb-local.mjs @@ -1,4 +1,5 @@ -import { existsSync, mkdirSync } from 'fs' +import { mkdir } from 'fs/promises' +import { existsSync } from 'fs' import { execSync } from 'child_process' const dynamodbDir = 'dynamodb_local_latest' @@ -6,19 +7,23 @@ const dynamodbArchiveURL = 'https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz' // Check if the dynamodbDir directory exists -if (!existsSync(dynamodbDir)) { - // If it doesn't exist, create it - mkdirSync(dynamodbDir, { recursive: true }) +async function runSetup() { + if (!existsSync(dynamodbDir)) { + // If it doesn't exist, create it + await mkdir(dynamodbDir, { recursive: true }) - // Download and extract DynamoDB Local - try { - console.log('Downloading DynamoDB Local...') - execSync(`curl -L ${dynamodbArchiveURL} | tar -xz -C ${dynamodbDir}`, { - stdio: 'inherit', - }) - console.log('DynamoDB Local setup completed successfully.') - } catch (error) { - console.error('Error setting up DynamoDB Local:', error.message) - process.exit(1) + // Download and extract DynamoDB Local + try { + console.log('Downloading DynamoDB Local...') + execSync(`curl -L ${dynamodbArchiveURL} | tar -xz -C ${dynamodbDir}`, { + stdio: 'inherit', + }) + console.log('DynamoDB Local setup completed successfully.') + } catch (error) { + console.error('Error setting up DynamoDB Local:', error.message) + process.exit(1) + } } } + +runSetup() From 1145523ce0d31c7553d1092d066a753125bb4e0a Mon Sep 17 00:00:00 2001 From: dakota002 Date: Wed, 4 Oct 2023 16:16:15 -0400 Subject: [PATCH 3/4] Fetch and tar api --- package-lock.json | 174 +++++++++++++++++++++++++++++++-------- package.json | 3 +- setup-dynamodb-local.mjs | 17 ++-- 3 files changed, 147 insertions(+), 47 deletions(-) diff --git a/package-lock.json b/package-lock.json index e24c0c2..a59f4b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,8 @@ "dependencies": { "@aws-sdk/client-dynamodb": "^3.188.0", "@aws-sdk/lib-dynamodb": "^3.188.0", - "@aws-sdk/util-dynamodb": "^3.188.0" + "@aws-sdk/util-dynamodb": "^3.188.0", + "tar": "^6.2.0" }, "devDependencies": { "@nasa-gcn/eslint-config-gitignore": "^0.0.1", @@ -3435,10 +3436,12 @@ } }, "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 + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } }, "node_modules/ci-info": { "version": "3.7.1", @@ -3767,6 +3770,12 @@ "node": ">= 0.10.33" } }, + "node_modules/dynamodb-local/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/dynamodb-local/node_modules/debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -3777,6 +3786,52 @@ "ms": "^2.1.1" } }, + "node_modules/dynamodb-local/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/dynamodb-local/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/dynamodb-local/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/dynamodb-local/node_modules/tar": { + "version": "4.4.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", + "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -4542,14 +4597,32 @@ } }, "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dependencies": { - "minipass": "^2.6.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -7605,24 +7678,41 @@ } }, "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" } }, "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dependencies": { - "minipass": "^2.9.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" } }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -8801,23 +8891,37 @@ } }, "node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": ">=4.5" + "node": ">=10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", diff --git a/package.json b/package.json index aab07e1..fbed7d7 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,8 @@ "dependencies": { "@aws-sdk/client-dynamodb": "^3.188.0", "@aws-sdk/lib-dynamodb": "^3.188.0", - "@aws-sdk/util-dynamodb": "^3.188.0" + "@aws-sdk/util-dynamodb": "^3.188.0", + "tar": "^6.2.0" }, "devDependencies": { "@nasa-gcn/eslint-config-gitignore": "^0.0.1", diff --git a/setup-dynamodb-local.mjs b/setup-dynamodb-local.mjs index df45fe2..615ac0d 100644 --- a/setup-dynamodb-local.mjs +++ b/setup-dynamodb-local.mjs @@ -1,6 +1,7 @@ import { mkdir } from 'fs/promises' import { existsSync } from 'fs' -import { execSync } from 'child_process' +import stream from 'node:stream' +import tar from 'tar' const dynamodbDir = 'dynamodb_local_latest' const dynamodbArchiveURL = @@ -12,17 +13,11 @@ async function runSetup() { // If it doesn't exist, create it await mkdir(dynamodbDir, { recursive: true }) - // Download and extract DynamoDB Local - try { - console.log('Downloading DynamoDB Local...') - execSync(`curl -L ${dynamodbArchiveURL} | tar -xz -C ${dynamodbDir}`, { - stdio: 'inherit', + stream.Readable.fromWeb((await fetch(dynamodbArchiveURL)).body).pipe( + tar.x({ + C: dynamodbDir, }) - console.log('DynamoDB Local setup completed successfully.') - } catch (error) { - console.error('Error setting up DynamoDB Local:', error.message) - process.exit(1) - } + ) } } From 2a802fe1d118d674b30d7f1ae4c11cdc7ea0935b Mon Sep 17 00:00:00 2001 From: dakota002 Date: Thu, 5 Oct 2023 09:07:39 -0400 Subject: [PATCH 4/4] Dev deps --- package-lock.json | 21 ++++++++++++++++----- package.json | 4 ++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index a59f4b3..c874012 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,7 @@ "dependencies": { "@aws-sdk/client-dynamodb": "^3.188.0", "@aws-sdk/lib-dynamodb": "^3.188.0", - "@aws-sdk/util-dynamodb": "^3.188.0", - "tar": "^6.2.0" + "@aws-sdk/util-dynamodb": "^3.188.0" }, "devDependencies": { "@nasa-gcn/eslint-config-gitignore": "^0.0.1", @@ -30,6 +29,7 @@ "lint-staged": "^13.1.0", "npm-run-all": "^4.1.5", "prettier": "^3.0.0", + "tar": "^6.2.0", "ts-jest": "^29.0.3", "typescript": "^4.9.4" }, @@ -3439,6 +3439,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, "engines": { "node": ">=10" } @@ -4600,6 +4601,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, "dependencies": { "minipass": "^3.0.0" }, @@ -4611,6 +4613,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -4621,7 +4624,8 @@ "node_modules/fs-minipass/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -7681,6 +7685,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7689,6 +7694,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -7701,6 +7707,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -7711,7 +7718,8 @@ "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/mkdirp": { "version": "0.5.6", @@ -8894,6 +8902,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -8910,6 +8919,7 @@ "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" }, @@ -8920,7 +8930,8 @@ "node_modules/tar/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/test-exclude": { "version": "6.0.0", diff --git a/package.json b/package.json index fbed7d7..f5eec9d 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,7 @@ "dependencies": { "@aws-sdk/client-dynamodb": "^3.188.0", "@aws-sdk/lib-dynamodb": "^3.188.0", - "@aws-sdk/util-dynamodb": "^3.188.0", - "tar": "^6.2.0" + "@aws-sdk/util-dynamodb": "^3.188.0" }, "devDependencies": { "@nasa-gcn/eslint-config-gitignore": "^0.0.1", @@ -51,6 +50,7 @@ "lint-staged": "^13.1.0", "npm-run-all": "^4.1.5", "prettier": "^3.0.0", + "tar": "^6.2.0", "ts-jest": "^29.0.3", "typescript": "^4.9.4" },