From b7c88d48e9c02886dca812b685b348bece36725c Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Thu, 15 Jun 2023 22:50:02 +0200 Subject: [PATCH 01/14] chore: clean up package.json files --- .../actions/cached-node-modules/action.yml | 18 +- .github/scripts/release_patch_package_json.js | 45 +- docs/snippets/package.json | 6 +- examples/cdk/package.json | 8 +- examples/sam/package.json | 7 +- examples/sam/template.yaml | 1 - layers/package.json | 5 +- lerna.json | 1 + package-bundler.sh | 44 - package-lock.json | 1234 ++++++++--------- package.json | 12 +- packages/commons/package.json | 5 +- packages/idempotency/package.json | 15 +- packages/logger/package.json | 5 +- packages/metrics/package.json | 5 +- packages/parameters/package.json | 12 +- packages/tracer/package.json | 5 +- 17 files changed, 625 insertions(+), 803 deletions(-) delete mode 100755 package-bundler.sh diff --git a/.github/actions/cached-node-modules/action.yml b/.github/actions/cached-node-modules/action.yml index 7d295916ed..523266bad5 100644 --- a/.github/actions/cached-node-modules/action.yml +++ b/.github/actions/cached-node-modules/action.yml @@ -22,15 +22,19 @@ runs: - name: Install dependencies # We can skip the installation if there was a cache hit if: steps.cache-node-modules.outputs.cache-hit != 'true' - # See https://github.com/npm/cli/issues/4475 to see why --foreground-scripts - run: npm ci --foreground-scripts + run: npm ci shell: bash - name: Build packages - # If there's a cache hit we still need to manually build the packages - # this would otherwise have been done automatically as a part of the - # post-install npm hook - if: steps.cache-node-modules.outputs.cache-hit == 'true' + # Regardless of whether the cache was hit or not, we need to build the packages. + # + # We build the shared package first, then the others in parallel to speed up the process + # even though we could just run `npm run build` in the root folder and build them in + # sequence, but still in the correct order. run: | npm run build -w packages/commons - npm run build -w packages/logger & npm run build -w packages/tracer & npm run build -w packages/metrics & npm run build -w packages/parameters & npm run build -w packages/idempotency + npm run build -w packages/logger & \ + npm run build -w packages/tracer & \ + npm run build -w packages/metrics & \ + npm run build -w packages/parameters & \ + npm run build -w packages/idempotency shell: bash \ No newline at end of file diff --git a/.github/scripts/release_patch_package_json.js b/.github/scripts/release_patch_package_json.js index 7900a1a9a5..300a2fd564 100644 --- a/.github/scripts/release_patch_package_json.js +++ b/.github/scripts/release_patch_package_json.js @@ -1,13 +1,18 @@ const { readFileSync, writeFileSync } = require('node:fs'); +const { join, resolve } = require('node:path'); -const outDir = './lib'; -const betaPackages = [ - '@aws-lambda-powertools/parameters', -]; +if (process.argv.length < 3) { + console.error('Usage: node release_patch_package_json.js \n'); + process.exit(1); +} +const basePath = resolve(process.argv[2]); +const packageJsonPath = join(basePath, 'package.json'); +const alphaPackages = ['@aws-lambda-powertools/idempotency']; +const betaPackages = ['@aws-lambda-powertools/parameters']; /** * This script is used to create a new package.json file for the tarball that will be published to npm. - * + * * The original package.json file is read and the following fields are extracted: * - name * - version @@ -20,9 +25,9 @@ const betaPackages = [ * - keywords * - dependencies * - devDependencies - * + * * For beta packages, the version number is updated to include a beta suffix. - * + * * The new package.json file is written to the lib folder, which is the folder that will be packed and published to npm. * For beta packages, the original package.json file is also temporarily updated with the new beta version number so that * the version number in the registry is correct and matches the tarball. @@ -30,7 +35,7 @@ const betaPackages = [ (() => { try { // Read the original package.json file - const pkgJson = JSON.parse(readFileSync('./package.json', 'utf8')) + const pkgJson = JSON.parse(readFileSync(packageJsonPath, 'utf8')); // Extract the fields we want to keep const { name, @@ -43,12 +48,17 @@ const betaPackages = [ bugs, keywords, dependencies, - devDependencies, + exports, + typesVersions, + main, + types, } = pkgJson; let version = originalVersion; - // Add a beta suffix to the version - if (betaPackages.includes(name)) { + // If the package is an alpha or beta package, update the version number to include a suffix + if (alphaPackages.includes(name)) { + version = `${version}-alpha`; + } else if (betaPackages.includes(name)) { version = `${version}-beta`; } @@ -64,20 +74,23 @@ const betaPackages = [ bugs, keywords, dependencies, - devDependencies, - main: './index.js', - types: './index.d.ts', }; // Write the new package.json file inside the folder that will be packed - writeFileSync(`${outDir}/package.json`, JSON.stringify(newPkgJson, null, 2)); + writeFileSync( + `${outDir}/package.json`, + JSON.stringify(newPkgJson, null, 2) + ); if (betaPackages.includes(name)) { // Temporarily update the original package.json file with the new beta version. // This version number will be picked up during the `npm publish` step, so that // the version number in the registry is correct and matches the tarball. // The original package.json file will be restored by lerna after the publish step. - writeFileSync('package.json', JSON.stringify({ ...pkgJson, version }, null, 2)); + writeFileSync( + 'package.json', + JSON.stringify({ ...pkgJson, version }, null, 2) + ); } } catch (err) { throw err; diff --git a/docs/snippets/package.json b/docs/snippets/package.json index 1ec4ee035a..a693197a25 100644 --- a/docs/snippets/package.json +++ b/docs/snippets/package.json @@ -1,6 +1,6 @@ { "name": "docs", - "version": "0.0.1", + "version": "1.9.0", "description": "A collection code snippets for the Powertools for AWS Lambda (TypeScript) docs", "author": { "name": "Amazon Web Services", @@ -9,13 +9,13 @@ "scripts": { "test": "echo 'Not Applicable'", "test:e2e": "echo 'Not Applicable'", - "package": "echo 'Not applicable'", "build": "echo 'Not Applicable'", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern ." }, "lint-staged": { - "*.ts": "npm run lint-fix" + "*.ts": "npm run lint-fix", + "*.js": "npm run lint-fix" }, "license": "MIT-0", "repository": { diff --git a/examples/cdk/package.json b/examples/cdk/package.json index 964bd4d306..4361582896 100644 --- a/examples/cdk/package.json +++ b/examples/cdk/package.json @@ -12,19 +12,17 @@ "cdk-app": "bin/cdk-app.js" }, "scripts": { - "build": "tsc --skipLibCheck", - "watch": "tsc -w", + "build": "echo 'Not applicable, run `npx cdk synth` instead to build the stack'", "test": "npm run test:unit", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --fix --no-error-on-unmatched-pattern .", - "package": "echo 'Not applicable'", - "package-bundle": "echo 'Not applicable'", "test:unit": "export POWERTOOLS_DEV=true && npm run build && jest --silent", "test:e2e": "echo 'To be implemented ...'", "cdk": "cdk" }, "lint-staged": { - "*.ts": "npm run lint-fix" + "*.ts": "npm run lint-fix", + "*.js": "npm run lint-fix" }, "devDependencies": { "@aws-lambda-powertools/logger": "^1.9.0", diff --git a/examples/sam/package.json b/examples/sam/package.json index 44a4bccc4a..1ca30cb269 100644 --- a/examples/sam/package.json +++ b/examples/sam/package.json @@ -9,17 +9,16 @@ "description": "This project contains source code and supporting files for a serverless application that you can deploy with the [SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html). The Serverless Application Model Command Line Interface (SAM CLI) is an extension of the AWS CLI that adds functionality for building and testing Lambda applications. It uses Docker to run your functions in an Amazon Linux environment that matches Lambda. It can also emulate your application's build environment and API.", "license": "MIT-0", "scripts": { - "build": "sam build --beta-features", + "build": "echo 'Not applicable, run `sam build --beta-features` instead to build the stack'", "test": "npm run test:unit", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --fix --no-error-on-unmatched-pattern .", - "package": "echo 'Not applicable'", - "package-bundle": "echo 'Not applicable'", "test:unit": "export POWERTOOLS_DEV=true && npm run build && jest --silent", "test:e2e": "echo 'To be implemented ...'" }, "lint-staged": { - "*.ts": "npm run lint-fix" + "*.ts": "npm run lint-fix", + "*.js": "npm run lint-fix" }, "devDependencies": { "@types/aws-lambda": "^8.10.109", diff --git a/examples/sam/template.yaml b/examples/sam/template.yaml index 0168722fd4..e44c619096 100644 --- a/examples/sam/template.yaml +++ b/examples/sam/template.yaml @@ -98,7 +98,6 @@ Resources: BuildProperties: Minify: true Target: "ES2020" - ExperimentalDecorators: true Sourcemap: true External: - "@aws-sdk/lib-dynamodb" diff --git a/layers/package.json b/layers/package.json index 8948774672..5b126d6387 100644 --- a/layers/package.json +++ b/layers/package.json @@ -7,15 +7,14 @@ "private": true, "description": "This CDK app is meant to be used to publish Powertools for AWS Lambda (TypeScript) Lambda Layer. It is composed of a single stack deploying the Layer into the target account.", "scripts": { - "build": "tsc", - "watch": "tsc -w", + "build": "echo 'Not applicable, run `npx cdk synth` instead to build the stack'", "test": "echo 'Not applicable'", "cdk": "cdk", "package": "echo 'Not applicable'", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --fix --no-error-on-unmatched-pattern .", "test:unit": "jest --group=unit", - "test:e2e": "RUNTIME=nodejs14x jest --group=e2e" + "test:e2e": "jest --group=e2e" }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/lerna.json b/lerna.json index 40448d0f27..72aab7321d 100644 --- a/lerna.json +++ b/lerna.json @@ -5,6 +5,7 @@ "packages/logger", "packages/metrics", "packages/parameters", + "packages/idempotency", "examples/cdk", "examples/sam", "layers" diff --git a/package-bundler.sh b/package-bundler.sh deleted file mode 100755 index eea1fd37da..0000000000 --- a/package-bundler.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash -set -e - - -usage() { - echo "Uber package Builder" - echo "------------------------" - echo "./package-bundler.sh NAME LOCAL_NPM_PACKAGE_LOCATION" - echo "" -} - - -if [[ "$#" -lt 2 ]]; then - usage - exit 1 -fi - -name=$(basename ${1}) -dist_folder="${2}" - -echo "Will bundle $(ls ${dist_folder}) into ${dist_folder}/${name}.tgz" - -output_folder="$(mktemp -d)" - -docker_image="public.ecr.aws/sam/build-nodejs14.x:latest" -volume_params="-v $output_folder:/bundle" - -package_folder="nodejs/" -mkdir -p "$output_folder/$package_folder" - -cp -r "${2}" "$output_folder/$package_folder/" - -install_command="pushd $package_folder; npm install --save ./*.tgz; popd" -volume_params="$volume_params -v $HOME/.npmrc:/root/.npmrc" - -zip_command="zip -r bundle.zip * && rm -rf $package_folder" - -docker run --rm $volume_params -w "/bundle" "$docker_image" /bin/bash -c "$install_command && $zip_command" - -mv "$output_folder/bundle.zip" "$dist_folder/$name.zip" - -rm -rf $output_folder - -echo "All done" diff --git a/package-lock.json b/package-lock.json index 90d12ee7af..05c857ea53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,6 +50,7 @@ "prettier": "^2.8.8", "promptly": "^3.2.0", "proxy-agent": "^5.0.0", + "rimraf": "^5.0.1", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", "typedoc": "^0.24.7", @@ -2555,6 +2556,102 @@ "node": ">=6.9.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", "dev": true, @@ -4115,6 +4212,21 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@npmcli/name-from-folder": { "version": "2.0.0", "dev": true, @@ -4494,6 +4606,16 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pkgr/utils": { "version": "2.3.1", "dev": true, @@ -6674,721 +6796,133 @@ "inBundle": true, "license": "ISC" }, - "node_modules/cdk-assets/node_modules/ansi-regex": { - "version": "5.0.1", + "node_modules/cdk-assets/node_modules/cliui": { + "version": "7.0.4", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/cdk-assets/node_modules/ansi-styles": { - "version": "4.3.0", + "node_modules/cdk-assets/node_modules/mime": { + "version": "2.6.0", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" + "bin": { + "mime": "cli.js" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=4.0.0" } }, - "node_modules/cdk-assets/node_modules/archiver": { - "version": "5.3.1", + "node_modules/cdk-assets/node_modules/yargs": { + "version": "16.2.0", "dev": true, "license": "MIT", "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^3.2.3", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.0.0", - "tar-stream": "^2.2.0", - "zip-stream": "^4.1.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { - "node": ">= 10" + "node": ">=10" } }, - "node_modules/cdk-assets/node_modules/archiver-utils": { - "version": "2.1.0", + "node_modules/cdk-assets/node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/cdk-sample": { + "resolved": "examples/cdk", + "link": true + }, + "node_modules/centra": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/centra/-/centra-2.6.0.tgz", + "integrity": "sha512-dgh+YleemrT8u85QL11Z6tYhegAs3MMxsaWAq/oXeAmYJ7VxL3SI9TZtnfaEvNDMAPolj25FXIb3S+HCI4wQaQ==" + }, + "node_modules/chalk": { + "version": "4.1.2", "dev": true, "license": "MIT", "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/cdk-assets/node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", + "node_modules/char-regex": { + "version": "1.0.2", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=10" } }, - "node_modules/cdk-assets/node_modules/async": { - "version": "3.2.4", + "node_modules/chardet": { + "version": "0.7.0", "dev": true, "license": "MIT" }, - "node_modules/cdk-assets/node_modules/balanced-match": { - "version": "1.0.2", + "node_modules/charenc": { + "version": "0.0.2", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } }, - "node_modules/cdk-assets/node_modules/base64-js": { - "version": "1.5.1", + "node_modules/chownr": { + "version": "2.0.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "node_modules/cdk-assets/node_modules/bl": { - "version": "4.1.0", + "node_modules/ci-info": { + "version": "3.7.0", "dev": true, "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "engines": { + "node": ">=8" } }, - "node_modules/cdk-assets/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/cjs-module-lexer": { + "version": "1.2.2", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "license": "MIT" }, - "node_modules/cdk-assets/node_modules/buffer": { - "version": "5.7.1", + "node_modules/clean-stack": { + "version": "2.2.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "engines": { + "node": ">=6" } }, - "node_modules/cdk-assets/node_modules/buffer-crc32": { - "version": "0.2.13", + "node_modules/cli-cursor": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/cdk-assets/node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cdk-assets/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cdk-assets/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/compress-commons": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^4.0.2", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cdk-assets/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/core-util-is": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/crc-32": { - "version": "1.2.2", - "dev": true, - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cdk-assets/node_modules/crc32-stream": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cdk-assets/node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/end-of-stream": { - "version": "1.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/cdk-assets/node_modules/escalade": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cdk-assets/node_modules/fs-constants": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/cdk-assets/node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/cdk-assets/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "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/cdk-assets/node_modules/graceful-fs": { - "version": "4.2.10", - "dev": true, - "license": "ISC" - }, - "node_modules/cdk-assets/node_modules/ieee754": { - "version": "1.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/cdk-assets/node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/cdk-assets/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/cdk-assets/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cdk-assets/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/lazystream": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/cdk-assets/node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/cdk-assets/node_modules/lodash.defaults": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/lodash.difference": { - "version": "4.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/lodash.flatten": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/lodash.isplainobject": { - "version": "4.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/lodash.union": { - "version": "4.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/mime": { - "version": "2.6.0", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cdk-assets/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/cdk-assets/node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cdk-assets/node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/cdk-assets/node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cdk-assets/node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/readable-stream": { - "version": "3.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cdk-assets/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.2.1", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/cdk-assets/node_modules/readdir-glob": { - "version": "1.1.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/cdk-assets/node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cdk-assets/node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cdk-assets/node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cdk-assets/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/string_decoder": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/cdk-assets/node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cdk-assets/node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cdk-assets/node_modules/tar-stream": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cdk-assets/node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/cdk-assets/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/cdk-assets/node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/cdk-assets/node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cdk-assets/node_modules/yargs-parser": { - "version": "20.2.9", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/cdk-assets/node_modules/zip-stream": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^4.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cdk-sample": { - "resolved": "examples/cdk", - "link": true - }, - "node_modules/centra": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/centra/-/centra-2.6.0.tgz", - "integrity": "sha512-dgh+YleemrT8u85QL11Z6tYhegAs3MMxsaWAq/oXeAmYJ7VxL3SI9TZtnfaEvNDMAPolj25FXIb3S+HCI4wQaQ==" - }, - "node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/charenc": { - "version": "0.0.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.7.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, + "dependencies": { + "restore-cursor": "^3.1.0" + }, "engines": { "node": ">=8" } @@ -8111,7 +7645,22 @@ "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/delayed-stream": { @@ -9570,6 +9119,21 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/flatted": { "version": "3.2.7", "dev": true, @@ -9602,6 +9166,34 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "dev": true, @@ -11015,6 +10607,24 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jake": { "version": "10.8.5", "dev": true, @@ -12795,6 +12405,63 @@ "node": ">=8" } }, + "node_modules/make-fetch-happen/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/make-fetch-happen/node_modules/rimraf/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/make-fetch-happen/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { "version": "7.0.0", "dev": true, @@ -13493,6 +13160,21 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/node-gyp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/node-int64": { "version": "0.4.0", "dev": true, @@ -14768,6 +14450,63 @@ "node": ">=10" } }, + "node_modules/pacote/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/pacote/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/pacote/node_modules/rimraf/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/pacote/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/pacote/node_modules/unique-filename": { "version": "2.0.1", "dev": true, @@ -14885,12 +14624,13 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.6.3", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", + "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", "dev": true, - "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^7.14.1", - "minipass": "^4.0.2" + "lru-cache": "^9.1.1", + "minipass": "^5.0.0 || ^6.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -14899,6 +14639,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz", + "integrity": "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { "version": "1.8.0", "dev": true, @@ -15761,19 +15519,78 @@ "license": "MIT" }, "node_modules/rimraf": { - "version": "3.0.2", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.1.tgz", + "integrity": "sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==", "dev": true, - "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "glob": "^10.2.5" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.7.tgz", + "integrity": "sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minipass": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/run-async": { "version": "2.4.1", "dev": true, @@ -16326,6 +16143,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.trimend": { "version": "1.0.6", "dev": true, @@ -16363,6 +16195,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "dev": true, @@ -16639,6 +16484,21 @@ "node": ">=8.17.0" } }, + "node_modules/tmp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/tmpl": { "version": "1.0.5", "dev": true, @@ -17401,6 +17261,24 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "dev": true, diff --git a/package.json b/package.json index 36bbca7ea4..45f7241f13 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,6 @@ "name": "aws-lambda-powertools-typescript", "version": "0.0.1", "description": "A suite of utilities for AWS Lambda functions to ease adopting best practices such as tracing, structured logging, custom metrics, and more.", - "main": "lib/index.js", - "types": "lib/", "workspaces": [ "packages/commons", "packages/logger", @@ -21,7 +19,7 @@ "test": "npm t -ws", "commit": "commit", "package": "npm run package -ws", - "setup-local": "npm ci --foreground-scripts && npm run init-environment", + "setup-local": "npm ci && npm run build && npm run init-environment", "build": "npm run build -ws", "docs-website-build-run": "npm run docs-buildDockerImage && npm run docs-runLocalDocker", "docs-buildDockerImage": "docker build -t powertools-typescript/docs ./docs/", @@ -29,8 +27,8 @@ "docs-api-build-run": "npm run docs-generateApiDoc && npx live-server api", "docs-generateApiDoc": "typedoc .", "docs-runLocalApiDoc": "npx live-server api", - "version": "lerna version --conventional-commits --force-publish=packages/commons,packages/tracer,packages/logger,packages/metrics,packages/parameters --no-commit-hooks --yes", - "version:dry-run": "lerna version --conventional-commits --force-publish=packages/commons,packages/tracer,packages/logger,packages/metrics,packages/parameters --no-commit-hooks --no-git-tag-version --no-push" + "version": "lerna version --conventional-commits --force-publish --no-commit-hooks --yes", + "version:dry-run": "lerna version --conventional-commits --force-publish --no-commit-hooks --no-git-tag-version --no-push" }, "repository": { "type": "git", @@ -76,6 +74,7 @@ "prettier": "^2.8.8", "promptly": "^3.2.0", "proxy-agent": "^5.0.0", + "rimraf": "^5.0.1", "ts-jest": "^29.0.3", "ts-node": "^10.9.1", "typedoc": "^0.24.7", @@ -83,9 +82,6 @@ "typescript": "^4.9.4", "uuid": "^9.0.0" }, - "files": [ - "lib/**/*" - ], "engines": { "node": ">=14" } diff --git a/packages/commons/package.json b/packages/commons/package.json index 70d3222c0a..7c402ba030 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -10,7 +10,6 @@ "access": "public" }, "scripts": { - "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", "test:e2e": "echo 'Not Applicable'", @@ -18,9 +17,7 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh commons-bundle ./dist", - "prepare": "npm run build" + "prebuild": "rimraf ./lib" }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index 9b00446ba7..329e37b542 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -1,29 +1,24 @@ { "name": "@aws-lambda-powertools/idempotency", - "version": "1.8.0-alpha.1", + "version": "1.9.0", "description": "The idempotency package for the Powertools for AWS Lambda (TypeScript) library. It provides options to make your Lambda functions idempotent and safe to retry.", "author": { "name": "Amazon Web Services", "url": "https://aws.amazon.com" }, - "publishConfig": { - "access": "public" - }, + "private": true, "scripts": { - "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", "test:e2e:nodejs16x": "RUNTIME=nodejs16x jest --group=e2e", "test:e2e:nodejs18x": "RUNTIME=nodejs18x jest --group=e2e", - "test:e2e": "jest --group=e2e --detectOpenHandles", - "watch": "jest --watch --group=unit", + "test:e2e": "jest --group=e2e", + "watch": "jest --watch", "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh idempotency-bundle ./dist", - "prebuild": "rm -rf ./lib" + "prebuild": "rimraf ./lib" }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/logger/package.json b/packages/logger/package.json index df95f61725..185df14e18 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -10,7 +10,6 @@ "access": "public" }, "scripts": { - "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", @@ -21,9 +20,7 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh logger-bundle ./dist", - "prepare": "npm run build" + "prebuild": "rimraf ./lib" }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/metrics/package.json b/packages/metrics/package.json index c518112d47..9eacda6995 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -10,7 +10,6 @@ "access": "public" }, "scripts": { - "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", @@ -21,9 +20,7 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh metrics-bundle ./dist", - "prepare": "npm run build" + "prebuild": "rimraf ./lib" }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/parameters/package.json b/packages/parameters/package.json index 559cb18cca..d40cdd8b3a 100644 --- a/packages/parameters/package.json +++ b/packages/parameters/package.json @@ -7,11 +7,9 @@ "url": "https://aws.amazon.com" }, "publishConfig": { - "access": "public", - "directory": "lib" + "access": "public" }, "scripts": { - "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", @@ -22,11 +20,9 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh parameters-bundle ./dist", - "prepare": "npm run build", - "prepack": "cp ../../.github/scripts/release_patch_package_json.js . && node release_patch_package_json.js", - "postpack": "rm release_patch_package_json.js" + "prebuild": "rimraf ./lib", + "prepack": "node ../../.github/scripts/release_patch_package_json.js .", + "postpack": "git restore package.json" }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/tracer/package.json b/packages/tracer/package.json index 8f0b98f280..99851c681c 100644 --- a/packages/tracer/package.json +++ b/packages/tracer/package.json @@ -10,7 +10,6 @@ "access": "public" }, "scripts": { - "commit": "commit", "test": "npm run test:unit", "test:unit": "jest --group=unit --detectOpenHandles --coverage --verbose", "test:e2e:nodejs14x": "RUNTIME=nodejs14x jest --group=e2e", @@ -21,9 +20,7 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh tracer-bundle ./dist", - "prepare": "npm run build" + "prebuild": "rimraf ./lib" }, "lint-staged": { "*.ts": "npm run lint-fix", From 0db919bdb9b6d11927db953c187a5fa33765ceed Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Thu, 15 Jun 2023 22:54:44 +0200 Subject: [PATCH 02/14] chore: clean up package.json files --- .github/scripts/release_patch_package_json.js | 2 +- packages/idempotency/package.json | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/scripts/release_patch_package_json.js b/.github/scripts/release_patch_package_json.js index 300a2fd564..787b4538ec 100644 --- a/.github/scripts/release_patch_package_json.js +++ b/.github/scripts/release_patch_package_json.js @@ -82,7 +82,7 @@ const betaPackages = ['@aws-lambda-powertools/parameters']; JSON.stringify(newPkgJson, null, 2) ); - if (betaPackages.includes(name)) { + if (betaPackages.includes(name) || alphaPackages.includes(name)) { // Temporarily update the original package.json file with the new beta version. // This version number will be picked up during the `npm publish` step, so that // the version number in the registry is correct and matches the tarball. diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index 329e37b542..b00cbb9226 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -18,7 +18,9 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "prebuild": "rimraf ./lib" + "prebuild": "rimraf ./lib", + "prepack": "node ../../.github/scripts/release_patch_package_json.js .", + "postpack": "git restore package.json" }, "lint-staged": { "*.ts": "npm run lint-fix", From 4baca47850ceae19e57729aa393487d651288cb2 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Thu, 15 Jun 2023 23:07:00 +0200 Subject: [PATCH 03/14] chore: clean up package.json files --- .github/scripts/release_patch_package_json.js | 35 +++++++++++-------- package-lock.json | 6 ++-- packages/idempotency/package.json | 4 +-- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/.github/scripts/release_patch_package_json.js b/.github/scripts/release_patch_package_json.js index 787b4538ec..b371dd5165 100644 --- a/.github/scripts/release_patch_package_json.js +++ b/.github/scripts/release_patch_package_json.js @@ -7,6 +7,7 @@ if (process.argv.length < 3) { } const basePath = resolve(process.argv[2]); const packageJsonPath = join(basePath, 'package.json'); +const outDirPath = join(basePath, 'lib'); const alphaPackages = ['@aws-lambda-powertools/idempotency']; const betaPackages = ['@aws-lambda-powertools/parameters']; @@ -52,6 +53,8 @@ const betaPackages = ['@aws-lambda-powertools/parameters']; typesVersions, main, types, + files, + private, } = pkgJson; let version = originalVersion; @@ -74,24 +77,26 @@ const betaPackages = ['@aws-lambda-powertools/parameters']; bugs, keywords, dependencies, + main, + types, + files, }; - // Write the new package.json file inside the folder that will be packed - writeFileSync( - `${outDir}/package.json`, - JSON.stringify(newPkgJson, null, 2) - ); - - if (betaPackages.includes(name) || alphaPackages.includes(name)) { - // Temporarily update the original package.json file with the new beta version. - // This version number will be picked up during the `npm publish` step, so that - // the version number in the registry is correct and matches the tarball. - // The original package.json file will be restored by lerna after the publish step. - writeFileSync( - 'package.json', - JSON.stringify({ ...pkgJson, version }, null, 2) - ); + if (exports) { + newPkgJson.exports = exports; } + if (typesVersions) { + newPkgJson.typesVersions = typesVersions; + } + if (private) { + newPkgJson.private = private; + } + + // Temporarily update the original package.json file with the new beta version. + // This version number will be picked up during the `npm publish` step, so that + // the version number in the registry is correct and matches the tarball. + // The original package.json file will be restored by lerna after the publish step. + writeFileSync('package.json', JSON.stringify(newPkgJson, null, 2)); } catch (err) { throw err; } diff --git a/package-lock.json b/package-lock.json index 05c857ea53..8fabead736 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,7 +64,7 @@ }, "docs/snippets": { "name": "docs", - "version": "0.0.1", + "version": "1.9.0", "license": "MIT-0", "devDependencies": { "@aws-sdk/client-appconfigdata": "^3.245.0", @@ -17513,10 +17513,10 @@ }, "packages/idempotency": { "name": "@aws-lambda-powertools/idempotency", - "version": "1.8.0-alpha.1", + "version": "1.9.0", "license": "MIT-0", "dependencies": { - "@aws-lambda-powertools/commons": "^1.5.0", + "@aws-lambda-powertools/commons": "^1.9.0", "@aws-sdk/lib-dynamodb": "^3.231.0", "jmespath": "^0.16.0" }, diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index b00cbb9226..194680a3a9 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -79,7 +79,7 @@ "url": "https://github.com/awslabs/aws-lambda-powertools-typescript/issues" }, "dependencies": { - "@aws-lambda-powertools/commons": "^1.5.0", + "@aws-lambda-powertools/commons": "^1.9.0", "@aws-sdk/lib-dynamodb": "^3.231.0", "jmespath": "^0.16.0" }, @@ -97,4 +97,4 @@ "aws-sdk-client-mock": "^2.0.1", "aws-sdk-client-mock-jest": "^2.0.1" } -} \ No newline at end of file +} From 3ef1336f0c71e28c4aef1da9314c057fb0fc43d7 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Thu, 15 Jun 2023 23:10:13 +0200 Subject: [PATCH 04/14] chore: clean up package.json files --- package.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/package.json b/package.json index 45f7241f13..f4eb98b5b8 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,7 @@ "docs-runLocalDocker": "docker run --rm -it -p 8000:8000 -v ${PWD}:/docs powertools-typescript/docs", "docs-api-build-run": "npm run docs-generateApiDoc && npx live-server api", "docs-generateApiDoc": "typedoc .", - "docs-runLocalApiDoc": "npx live-server api", - "version": "lerna version --conventional-commits --force-publish --no-commit-hooks --yes", - "version:dry-run": "lerna version --conventional-commits --force-publish --no-commit-hooks --no-git-tag-version --no-push" + "docs-runLocalApiDoc": "npx live-server api" }, "repository": { "type": "git", From 2d3fed4cf8b98af00d4516d5a37052f834ef9c05 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Thu, 15 Jun 2023 23:17:27 +0200 Subject: [PATCH 05/14] chore: fixed pre/post pack scripts --- package.json | 3 ++- packages/commons/package.json | 3 ++- packages/idempotency/package.json | 3 +-- packages/logger/package.json | 3 ++- packages/metrics/package.json | 3 ++- packages/parameters/package.json | 3 +-- packages/tracer/package.json | 3 ++- 7 files changed, 12 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index f4eb98b5b8..ed4a8b8d90 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "docs-runLocalDocker": "docker run --rm -it -p 8000:8000 -v ${PWD}:/docs powertools-typescript/docs", "docs-api-build-run": "npm run docs-generateApiDoc && npx live-server api", "docs-generateApiDoc": "typedoc .", - "docs-runLocalApiDoc": "npx live-server api" + "docs-runLocalApiDoc": "npx live-server api", + "postversion": "git restore ." }, "repository": { "type": "git", diff --git a/packages/commons/package.json b/packages/commons/package.json index 7c402ba030..55a3b62f8f 100644 --- a/packages/commons/package.json +++ b/packages/commons/package.json @@ -17,7 +17,8 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "prebuild": "rimraf ./lib" + "prebuild": "rimraf ./lib", + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/idempotency/package.json b/packages/idempotency/package.json index 194680a3a9..d97c776bd9 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -19,8 +19,7 @@ "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", "prebuild": "rimraf ./lib", - "prepack": "node ../../.github/scripts/release_patch_package_json.js .", - "postpack": "git restore package.json" + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/logger/package.json b/packages/logger/package.json index 185df14e18..9fd98998ef 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -20,7 +20,8 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "prebuild": "rimraf ./lib" + "prebuild": "rimraf ./lib", + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/metrics/package.json b/packages/metrics/package.json index 9eacda6995..5b8f30d1c0 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -20,7 +20,8 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "prebuild": "rimraf ./lib" + "prebuild": "rimraf ./lib", + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/parameters/package.json b/packages/parameters/package.json index d40cdd8b3a..9ac1e58e99 100644 --- a/packages/parameters/package.json +++ b/packages/parameters/package.json @@ -21,8 +21,7 @@ "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", "prebuild": "rimraf ./lib", - "prepack": "node ../../.github/scripts/release_patch_package_json.js .", - "postpack": "git restore package.json" + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix", diff --git a/packages/tracer/package.json b/packages/tracer/package.json index 99851c681c..2d6621f4d1 100644 --- a/packages/tracer/package.json +++ b/packages/tracer/package.json @@ -20,7 +20,8 @@ "build": "tsc", "lint": "eslint --ext .ts,.js --no-error-on-unmatched-pattern .", "lint-fix": "eslint --fix --ext .ts,.js --no-error-on-unmatched-pattern .", - "prebuild": "rimraf ./lib" + "prebuild": "rimraf ./lib", + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix", From 86c6edade9e053f47484834a17b88806ba57146b Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Thu, 15 Jun 2023 23:18:56 +0200 Subject: [PATCH 06/14] chore: clean up package.json files --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ed4a8b8d90..7d857cbd69 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "docs-api-build-run": "npm run docs-generateApiDoc && npx live-server api", "docs-generateApiDoc": "typedoc .", "docs-runLocalApiDoc": "npx live-server api", - "postversion": "git restore ." + "postpublish": "git restore ." }, "repository": { "type": "git", @@ -84,4 +84,4 @@ "engines": { "node": ">=14" } -} +} \ No newline at end of file From 972cf3d6319cad183d3477abddcbb0ceb042e9a5 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Thu, 15 Jun 2023 23:30:14 +0200 Subject: [PATCH 07/14] chore: clean up package.json files --- packages/logger/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/logger/package.json b/packages/logger/package.json index 9fd98998ef..c4954e6bd1 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -28,7 +28,7 @@ "*.js": "npm run lint-fix" }, "homepage": "https://github.com/awslabs/aws-lambda-powertools-typescript/tree/main/packages/logger#readme", - "license": "MIT", + "license": "MIT-0", "main": "./lib/index.js", "types": "./lib/index.d.ts", "devDependencies": { @@ -57,4 +57,4 @@ "serverless", "nodejs" ] -} +} \ No newline at end of file From ae347318f1a1a870d73bfe0bbbd202c548941097 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Thu, 15 Jun 2023 23:57:26 +0200 Subject: [PATCH 08/14] chore: clean up package.json files --- packages/parameters/package.json | 61 +++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/packages/parameters/package.json b/packages/parameters/package.json index 9ac1e58e99..fc9a75e71f 100644 --- a/packages/parameters/package.json +++ b/packages/parameters/package.json @@ -29,6 +29,65 @@ }, "homepage": "https://github.com/awslabs/aws-lambda-powertools-typescript/tree/main/packages/parameters#readme", "license": "MIT-0", + "exports": { + ".": { + "import": "./lib/index.js", + "require": "./lib/index.js" + }, + "./base": { + "import": "./lib/base/index.js", + "require": "./lib/base/index.js" + }, + "./ssm": { + "import": "./lib/ssm/index.js", + "require": "./lib/ssm/index.js" + }, + "./secrets": { + "import": "./lib/secrets/index.js", + "require": "./lib/secrets/index.js" + }, + "./dynamodb": { + "import": "./lib/dynamodb/index.js", + "require": "./lib/dynamodb/index.js" + }, + "./appconfig": { + "import": "./lib/appconfig/index.js", + "require": "./lib/appconfig/index.js" + }, + "./errors": { + "import": "./lib/Exceptions.js", + "require": "./lib/Exceptions.js" + }, + "./types": { + "import": "./lib/types/index.d.ts", + "require": "./lib/types/index.d.ts" + } + }, + "typesVersions": { + "*": { + "base": [ + "lib/base/index.d.ts" + ], + "ssm": [ + "lib/ssm/index.d.ts" + ], + "secrets": [ + "lib/secrets/index.d.ts" + ], + "dynamodb": [ + "lib/dynamodb/index.d.ts" + ], + "appconfig": [ + "lib/appconfig/index.d.ts" + ], + "errors": [ + "lib/Exceptions.d.ts" + ], + "types": [ + "lib/types/index.d.ts" + ] + } + }, "main": "./lib/index.js", "types": "./lib/index.d.ts", "files": [ @@ -63,4 +122,4 @@ "@aws-lambda-powertools/commons": "^1.9.0", "@aws-sdk/util-base64-node": "^3.209.0" } -} +} \ No newline at end of file From b03ca6d8dcae3cfef35d4f2be5689c0b3940c417 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Fri, 16 Jun 2023 01:22:18 +0200 Subject: [PATCH 09/14] docs: documented script --- .github/scripts/release_patch_package_json.js | 42 +++++++------------ 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/.github/scripts/release_patch_package_json.js b/.github/scripts/release_patch_package_json.js index b371dd5165..51fd432124 100644 --- a/.github/scripts/release_patch_package_json.js +++ b/.github/scripts/release_patch_package_json.js @@ -1,3 +1,13 @@ +/** + * This script is used to update the package.json file of an utility to include pre-release suffixes + * and remove fields that are not needed in the tarball that will be published to npm. + * + * We read the original package.json file and extract all the fields. Then, if the is an + * alpha or beta package, we update the version number to include a suffix. Finally, we write the updated + * package.json file to disk that includes the patched version number and all the fields we want to keep. + * + * The file will be restored to its original state after the release is complete. + */ const { readFileSync, writeFileSync } = require('node:fs'); const { join, resolve } = require('node:path'); @@ -7,32 +17,9 @@ if (process.argv.length < 3) { } const basePath = resolve(process.argv[2]); const packageJsonPath = join(basePath, 'package.json'); -const outDirPath = join(basePath, 'lib'); const alphaPackages = ['@aws-lambda-powertools/idempotency']; const betaPackages = ['@aws-lambda-powertools/parameters']; -/** - * This script is used to create a new package.json file for the tarball that will be published to npm. - * - * The original package.json file is read and the following fields are extracted: - * - name - * - version - * - description - * - author - * - license - * - homepage - * - repository - * - bugs - * - keywords - * - dependencies - * - devDependencies - * - * For beta packages, the version number is updated to include a beta suffix. - * - * The new package.json file is written to the lib folder, which is the folder that will be packed and published to npm. - * For beta packages, the original package.json file is also temporarily updated with the new beta version number so that - * the version number in the registry is correct and matches the tarball. - */ (() => { try { // Read the original package.json file @@ -82,6 +69,8 @@ const betaPackages = ['@aws-lambda-powertools/parameters']; files, }; + // Not all utilities have these fields, so only add them if they exist to avoid + // having empty or undefined fields in the package.json file. if (exports) { newPkgJson.exports = exports; } @@ -92,10 +81,9 @@ const betaPackages = ['@aws-lambda-powertools/parameters']; newPkgJson.private = private; } - // Temporarily update the original package.json file with the new beta version. - // This version number will be picked up during the `npm publish` step, so that - // the version number in the registry is correct and matches the tarball. - // The original package.json file will be restored by lerna after the publish step. + // Temporarily update the original package.json file. + // This version will be picked up during the `npm publish` step, so that + // the version number and metadata in the registry are correct and match the tarball. writeFileSync('package.json', JSON.stringify(newPkgJson, null, 2)); } catch (err) { throw err; From 90fab2cae6893010be58e7638d000df3e115ee2e Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Fri, 16 Jun 2023 01:34:58 +0200 Subject: [PATCH 10/14] this is an empty commit to trigger the CI From c97f1224771b7fe01cc6003d92347cae7eab6af4 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Fri, 16 Jun 2023 01:41:11 +0200 Subject: [PATCH 11/14] chore: updated version command in make-release --- .github/workflows/make-release.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/make-release.yml b/.github/workflows/make-release.yml index 1b1cb46c08..15fb67c1b5 100644 --- a/.github/workflows/make-release.yml +++ b/.github/workflows/make-release.yml @@ -34,15 +34,14 @@ jobs: uses: ./.github/actions/cached-node-modules - name: Version run: | - npm run version - git push --tags + npx lerna version --conventional-commits --force-publish --no-commit-hooks --yes - name: Publish to npm run: | npx lerna publish from-git --yes - name: Set release version id: set-release-version run: | - RELEASE=$(npm view @aws-lambda-powertools/tracer version) + RELEASE=$(cat lerna.json | jq .version -r) echo RELEASE_VERSION="$RELEASE_VERSION" >> "$GITHUB_OUTPUT" # NOTE: Watch out for the depth limit of 4 nested workflow_calls. From f415929b84a3fcafffda5fab2e35dcf02b535346 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Fri, 16 Jun 2023 01:59:24 +0200 Subject: [PATCH 12/14] chore: updated cache --- .github/actions/cached-node-modules/action.yml | 2 +- README.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/actions/cached-node-modules/action.yml b/.github/actions/cached-node-modules/action.yml index 523266bad5..fbc0f2a2af 100644 --- a/.github/actions/cached-node-modules/action.yml +++ b/.github/actions/cached-node-modules/action.yml @@ -15,7 +15,7 @@ runs: id: cache-node-modules uses: actions/cache@69d9d449aced6a2ede0bc19182fadc3a0a42d2b0 # v3.2.6 with: - path: "./node_modules" + path: '**/node_modules' # Use the combo between node version, name, and SHA-256 hash of the lock file as cache key so that # if one of them changes the cache is invalidated/discarded key: ${{ inputs.nodeVersion }}-cache-utilities-node-modules-${{ hashFiles('./package-lock.json') }} diff --git a/README.md b/README.md index efc5844872..d4a3f258f0 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ You can use the library in both TypeScript and JavaScript code bases. * **[Logger](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/logger/)** - Structured logging made easier, and a middleware to enrich log items with key details of the Lambda context * **[Metrics](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF) * **[Parameters (beta)](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/utilities/parameters/)** - High-level functions to retrieve one or more parameters from AWS SSM Parameter Store, AWS Secrets Manager, AWS AppConfig, and Amazon DynamoDB +* **[Idempotency (beta)](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/utilities/idempotency/)** - Class method decorator, Middy middleware, and function wrapper to make your Lambda functions idempotent and prevent duplicate execution based on payload content ## Getting started @@ -73,6 +74,8 @@ Or refer to the installation guide of each utility: 👉 [Installation guide for the **Parameters** utility](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/utilities/parameters/#getting-started) +👉 [Installation guide for the **Idempotency** utility](https://awslabs.github.io/aws-lambda-powertools-typescript/latest/utilities/idempotency/#getting-started) + ### Examples * [CDK](https://github.com/awslabs/aws-lambda-powertools-typescript/tree/main/examples/cdk) From e00dcbfeaaee01198d037a18c1b95d2e771fd0a4 Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Fri, 16 Jun 2023 02:05:48 +0200 Subject: [PATCH 13/14] this is an empty commit to trigger the CI From 67741a4c5af707061d4285111204af57d3e0954c Mon Sep 17 00:00:00 2001 From: Andrea Amorosi Date: Fri, 16 Jun 2023 02:16:14 +0200 Subject: [PATCH 14/14] chore: updated version number in make-release --- .github/workflows/make-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/make-release.yml b/.github/workflows/make-release.yml index 15fb67c1b5..72bc2ffe34 100644 --- a/.github/workflows/make-release.yml +++ b/.github/workflows/make-release.yml @@ -41,8 +41,8 @@ jobs: - name: Set release version id: set-release-version run: | - RELEASE=$(cat lerna.json | jq .version -r) - echo RELEASE_VERSION="$RELEASE_VERSION" >> "$GITHUB_OUTPUT" + VERSION=$(cat lerna.json | jq .version -r) + echo RELEASE_VERSION="$VERSION" >> "$GITHUB_OUTPUT" # NOTE: Watch out for the depth limit of 4 nested workflow_calls. # publish_layer -> reusable_deploy_layer_stack -> reusable_update_layer_arn_docs