diff --git a/.github/actions/cached-node-modules/action.yml b/.github/actions/cached-node-modules/action.yml index 7d295916ed..fbc0f2a2af 100644 --- a/.github/actions/cached-node-modules/action.yml +++ b/.github/actions/cached-node-modules/action.yml @@ -15,22 +15,26 @@ 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') }} - 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..51fd432124 100644 --- a/.github/scripts/release_patch_package_json.js +++ b/.github/scripts/release_patch_package_json.js @@ -1,36 +1,29 @@ +/** + * 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'); -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 - * - 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 - 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 +36,19 @@ const betaPackages = [ bugs, keywords, dependencies, - devDependencies, + exports, + typesVersions, + main, + types, + files, + private, } = 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,21 +64,27 @@ const betaPackages = [ bugs, keywords, dependencies, - devDependencies, - main: './index.js', - types: './index.d.ts', + 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)) { - // 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)); + // 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; + } + if (typesVersions) { + newPkgJson.typesVersions = typesVersions; } + if (private) { + newPkgJson.private = private; + } + + // 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; } diff --git a/.github/workflows/make-release.yml b/.github/workflows/make-release.yml index 1b1cb46c08..72bc2ffe34 100644 --- a/.github/workflows/make-release.yml +++ b/.github/workflows/make-release.yml @@ -34,16 +34,15 @@ 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) - 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 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) 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..8fabead736 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", @@ -63,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", @@ -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,712 +6796,124 @@ "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": "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" - }, + "license": "ISC", "engines": { - "node": ">= 6" + "node": ">=10" } }, - "node_modules/cdk-assets/node_modules/archiver-utils/node_modules/readable-stream": { - "version": "2.3.8", + "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": { - "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" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/cdk-assets/node_modules/async": { - "version": "3.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/cdk-assets/node_modules/balanced-match": { + "node_modules/char-regex": { "version": "1.0.2", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=10" + } }, - "node_modules/cdk-assets/node_modules/base64-js": { - "version": "1.5.1", + "node_modules/chardet": { + "version": "0.7.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" }, - "node_modules/cdk-assets/node_modules/bl": { - "version": "4.1.0", + "node_modules/charenc": { + "version": "0.0.2", "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "license": "BSD-3-Clause", + "engines": { + "node": "*" } }, - "node_modules/cdk-assets/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/chownr": { + "version": "2.0.0", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "ISC", + "engines": { + "node": ">=10" } }, - "node_modules/cdk-assets/node_modules/buffer": { - "version": "5.7.1", + "node_modules/ci-info": { + "version": "3.7.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": ">=8" } }, - "node_modules/cdk-assets/node_modules/buffer-crc32": { - "version": "0.2.13", + "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": "*" - } - }, - "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": ">=6" } }, "node_modules/cli-cursor": { @@ -8114,6 +7648,21 @@ "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": { "version": "1.0.0", "dev": true, @@ -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, @@ -17635,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/package.json b/package.json index 36bbca7ea4..7d857cbd69 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,7 @@ "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" + "postpublish": "git restore ." }, "repository": { "type": "git", @@ -76,6 +73,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,10 +81,7 @@ "typescript": "^4.9.4", "uuid": "^9.0.0" }, - "files": [ - "lib/**/*" - ], "engines": { "node": ">=14" } -} +} \ No newline at end of file diff --git a/packages/commons/package.json b/packages/commons/package.json index 70d3222c0a..55a3b62f8f 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,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 .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh commons-bundle ./dist", - "prepare": "npm run build" + "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 9b00446ba7..d97c776bd9 100644 --- a/packages/idempotency/package.json +++ b/packages/idempotency/package.json @@ -1,29 +1,25 @@ { "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", + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix", @@ -82,7 +78,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" }, @@ -100,4 +96,4 @@ "aws-sdk-client-mock": "^2.0.1", "aws-sdk-client-mock-jest": "^2.0.1" } -} \ No newline at end of file +} diff --git a/packages/logger/package.json b/packages/logger/package.json index df95f61725..c4954e6bd1 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,16 +20,15 @@ "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", + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix", "*.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": { @@ -59,4 +57,4 @@ "serverless", "nodejs" ] -} +} \ No newline at end of file diff --git a/packages/metrics/package.json b/packages/metrics/package.json index c518112d47..5b8f30d1c0 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,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 .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh metrics-bundle ./dist", - "prepare": "npm run build" + "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 559cb18cca..fc9a75e71f 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,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 .", - "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 ." }, "lint-staged": { "*.ts": "npm run lint-fix", @@ -34,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": [ @@ -68,4 +122,4 @@ "@aws-lambda-powertools/commons": "^1.9.0", "@aws-sdk/util-base64-node": "^3.209.0" } -} +} \ No newline at end of file diff --git a/packages/tracer/package.json b/packages/tracer/package.json index 8f0b98f280..2d6621f4d1 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,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 .", - "package": "mkdir -p dist/ && npm pack && mv *.tgz dist/", - "package-bundle": "../../package-bundler.sh tracer-bundle ./dist", - "prepare": "npm run build" + "prebuild": "rimraf ./lib", + "prepack": "node ../../.github/scripts/release_patch_package_json.js ." }, "lint-staged": { "*.ts": "npm run lint-fix",