diff --git a/.changeset/loud-students-battle.md b/.changeset/loud-students-battle.md new file mode 100644 index 0000000..b623fab --- /dev/null +++ b/.changeset/loud-students-battle.md @@ -0,0 +1,5 @@ +--- +"@astro-aws/constructs": patch +--- + +Use metadata file from adapter to configure constructs diff --git a/.changeset/poor-meals-film.md b/.changeset/poor-meals-film.md new file mode 100644 index 0000000..b371d3c --- /dev/null +++ b/.changeset/poor-meals-film.md @@ -0,0 +1,5 @@ +--- +"@astro-aws/adapter": patch +--- + +Write a metadata file for constructs package diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 29a0c96..9370b2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,7 @@ jobs: matrix: node_version: - 18 + - 20 cmd: - build - test diff --git a/.prettierrc.cjs b/.prettierrc.cjs deleted file mode 100644 index 157327d..0000000 --- a/.prettierrc.cjs +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("@lshay/prettier-config") diff --git a/apps/docs/package.json b/apps/docs/package.json index f79a8dc..a497216 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -30,17 +30,17 @@ "start": "astro dev" }, "dependencies": { - "@astrojs/starlight": "^0.10.1", - "astro": "^3.1.1", + "@astrojs/starlight": "^0.11.0", + "astro": "^3.2.3", "sharp": "^0.32.6" }, "devDependencies": { "@astro-aws/adapter": "workspace:^", - "eslint": "^8.49.0", + "eslint": "^8.51.0", "prettier": "^3.0.3", - "rimraf": "^5.0.1" + "rimraf": "^5.0.5" }, "engines": { - "node": "18.x" + "node": "18.x || 20.x" } } diff --git a/apps/docs/src/content/docs/guides/01-getting-started.md b/apps/docs/src/content/docs/guides/01-getting-started.md index 4f0e7e9..4684300 100644 --- a/apps/docs/src/content/docs/guides/01-getting-started.md +++ b/apps/docs/src/content/docs/guides/01-getting-started.md @@ -7,6 +7,8 @@ description: Getting started guide Astro AWS is an [Astro](https://astro.build/) SSR adapter and constructs for deploying your Astro application to AWS. +> **IMPORTANT NOTE:** These packages only provide the bare minimum AWS CDK configuration to get your application running. Everything that does not need to be configured uses the default values AWS provides. + ## Start your first Astro project Create a new Astro project using the `create-astro` CLI then add the Astro AWS adapter. diff --git a/apps/infra/package.json b/apps/infra/package.json index 67ea85f..ed53f6c 100644 --- a/apps/infra/package.json +++ b/apps/infra/package.json @@ -30,10 +30,10 @@ "dependencies": { "@astro-aws/constructs": "workspace:^", "@astro-aws/docs": "workspace:^", - "aws-cdk": "^2.96.2", - "aws-cdk-lib": "^2.96.2", - "constructs": "^10.2.70", - "eslint": "^8.49.0", + "aws-cdk": "^2.100.0", + "aws-cdk-lib": "^2.100.0", + "constructs": "^10.3.0", + "eslint": "^8.51.0", "prettier": "^3.0.3", "typescript": "^5.2.2", "workspace-tools": "^0.35.2" diff --git a/apps/infra/src/lib/constants/environments.ts b/apps/infra/src/lib/constants/environments.ts index 7f3fbee..89cd935 100644 --- a/apps/infra/src/lib/constants/environments.ts +++ b/apps/infra/src/lib/constants/environments.ts @@ -28,32 +28,29 @@ const ENVIRONMENT_PROPS: Record = { alias: "static.dev", environment: Environments.DEV, hostedZoneName: "astro-aws.org", - output: "static", package: "@astro-aws/docs", }, [Environments.EDGE]: { ...base, alias: "edge.dev", + edge: true, env: { ...base.env, region: "us-east-1", }, environment: Environments.EDGE, hostedZoneName: "astro-aws.org", - output: "edge", package: "@astro-aws/examples-base", }, [Environments.PROD]: { ...base, environment: Environments.PROD, hostedZoneName: "astro-aws.org", - output: "static", package: "@astro-aws/docs", }, [Environments.PERSONAL]: { ...base, environment: Environments.PERSONAL, - output: "static", package: "@astro-aws/docs", }, [Environments.SSR]: { @@ -61,7 +58,6 @@ const ENVIRONMENT_PROPS: Record = { alias: "ssr.dev", environment: Environments.SSR, hostedZoneName: "astro-aws.org", - output: "server", package: "@astro-aws/examples-base", }, } as const diff --git a/apps/infra/src/lib/stacks/website-stack.ts b/apps/infra/src/lib/stacks/website-stack.ts index a19307c..29d54aa 100644 --- a/apps/infra/src/lib/stacks/website-stack.ts +++ b/apps/infra/src/lib/stacks/website-stack.ts @@ -44,7 +44,7 @@ export class WebsiteStack extends Stack { alias, cloudwatchDashboard, environment, - output, + edge, certificate, hostedZone, } = props @@ -112,16 +112,15 @@ export class WebsiteStack extends Stack { : undefined, }, lambdaFunction: { - architecture: - output === "edge" ? Architecture.X86_64 : Architecture.ARM_64, + architecture: edge ? Architecture.X86_64 : Architecture.ARM_64, }, s3Bucket: { serverAccessLogsBucket: accessLogBucket, serverAccessLogsPrefix: "s3/", }, }, + edge, outDir: `${this.#getWorkspacePath(props.package)}/dist`, - output, }) if (hostedZone) { diff --git a/apps/infra/src/lib/types/astro-aws-stack-props.ts b/apps/infra/src/lib/types/astro-aws-stack-props.ts index 0019d72..9cbbbba 100644 --- a/apps/infra/src/lib/types/astro-aws-stack-props.ts +++ b/apps/infra/src/lib/types/astro-aws-stack-props.ts @@ -11,7 +11,7 @@ export type AstroAWSStackProps = Readonly< } environment: Environment hostedZoneName?: string - output: "edge" | "server" | "static" + edge?: boolean package: string skipDashboard?: boolean } diff --git a/examples/base/astro.config.ts b/examples/base/astro.config.ts index 7a5cb91..03cad8c 100644 --- a/examples/base/astro.config.ts +++ b/examples/base/astro.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from "astro/config" import aws from "@astro-aws/adapter" +import tailwind from "@astrojs/tailwind" // https://astro.build/config export default defineConfig({ @@ -7,5 +8,6 @@ export default defineConfig({ logFnRequest: true, logFnResponse: true, }), + integrations: [tailwind()], output: "hybrid", }) diff --git a/examples/base/package.json b/examples/base/package.json index 2169260..58bff2a 100644 --- a/examples/base/package.json +++ b/examples/base/package.json @@ -30,17 +30,21 @@ "start": "astro dev" }, "dependencies": { - "astro": "^3.1.1" + "@astrojs/tailwind": "^5.0.1", + "@faker-js/faker": "^8.1.0", + "astro": "^3.2.3", + "daisyui": "^3.9.2", + "tailwindcss": "^3.3.3" }, "devDependencies": { "@astro-aws/adapter": "workspace:^", "@astrojs/check": "^0.2.0", - "eslint": "^8.49.0", + "eslint": "^8.51.0", "prettier": "^3.0.3", - "rimraf": "^5.0.1", + "rimraf": "^5.0.5", "typescript": "^5.2.2" }, "engines": { - "node": "18.x" + "node": "18.x || 20.x" } } diff --git a/examples/base/src/components/Card.astro b/examples/base/src/components/Card.astro deleted file mode 100644 index bd6d597..0000000 --- a/examples/base/src/components/Card.astro +++ /dev/null @@ -1,61 +0,0 @@ ---- -interface Props { - title: string; - body: string; - href: string; -} - -const { href, title, body } = Astro.props; ---- - - - diff --git a/examples/base/src/components/home/PersonRow.astro b/examples/base/src/components/home/PersonRow.astro new file mode 100644 index 0000000..913bcdc --- /dev/null +++ b/examples/base/src/components/home/PersonRow.astro @@ -0,0 +1,18 @@ +--- +import { generateRandomPersonAsync } from "../../mocks/person"; + +export type Props = { + row: number; +} + +const { row } = Astro.props; + +const person = await generateRandomPersonAsync(); +--- + + + {row} + {person.name} + {person.email} + {person.phone} + \ No newline at end of file diff --git a/examples/base/src/env.d.ts b/examples/base/src/env.d.ts index f964fe0..9158844 100644 --- a/examples/base/src/env.d.ts +++ b/examples/base/src/env.d.ts @@ -1 +1,8 @@ /// +declare namespace App { + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions + interface Locals { + title: string + rows: number[] + } +} diff --git a/examples/base/src/layouts/Layout.astro b/examples/base/src/layouts/Layout.astro index 7b552be..425cde5 100644 --- a/examples/base/src/layouts/Layout.astro +++ b/examples/base/src/layouts/Layout.astro @@ -16,36 +16,14 @@ const { title } = Astro.props; {title} - - + +
+ + +
- diff --git a/examples/base/src/middleware.ts b/examples/base/src/middleware.ts new file mode 100644 index 0000000..fa6ff3d --- /dev/null +++ b/examples/base/src/middleware.ts @@ -0,0 +1,12 @@ +// eslint-disable-next-line import/no-unresolved +import { defineMiddleware } from "astro:middleware" + +export const onRequest = defineMiddleware(async ({ locals }, next) => { + // eslint-disable-next-line no-param-reassign + locals.title = "New title" + // eslint-disable-next-line no-param-reassign + locals.rows = Array.from({ length: 100 }).map((_, i) => i + 1) + + // return a Response or the result of calling `next()` + return next() +}) diff --git a/examples/base/src/mocks/person.ts b/examples/base/src/mocks/person.ts new file mode 100644 index 0000000..9fac515 --- /dev/null +++ b/examples/base/src/mocks/person.ts @@ -0,0 +1,13 @@ +import { faker } from "@faker-js/faker" + +const generateRandomPerson = () => ({ + address: faker.location.streetAddress(), + email: faker.internet.email(), + name: faker.person.fullName(), + phone: faker.phone.number(), +}) + +// eslint-disable-next-line @typescript-eslint/require-await +const generateRandomPersonAsync = async () => generateRandomPerson() + +export { generateRandomPerson, generateRandomPersonAsync } diff --git a/examples/base/src/pages/index.astro b/examples/base/src/pages/index.astro index fb62628..6ae3687 100644 --- a/examples/base/src/pages/index.astro +++ b/examples/base/src/pages/index.astro @@ -1,123 +1,29 @@ --- import Layout from '../layouts/Layout.astro'; -import Card from '../components/Card.astro'; +import PersonRow from "../components/home/PersonRow.astro" + --- - -
- -

Welcome to Astro

-

- To get started, open the directory src/pages in your project.
- Code Challenge: Tweak the "Welcome to Astro" message above. -

- + +
+
+ + + + + + + + + + + + {Astro.locals.rows.map((n) => ( + + ))} + +
NameEmailPhone
+
- diff --git a/examples/base/tailwind.config.js b/examples/base/tailwind.config.js new file mode 100644 index 0000000..e6c1af6 --- /dev/null +++ b/examples/base/tailwind.config.js @@ -0,0 +1,18 @@ +import daisyui from "daisyui" + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./src/**/*.astro", + "./src/**/*.js", + "./src/**/*.jsx", + "./src/**/*.ts", + "./src/**/*.tsx", + "./src/**/*.md", + "./src/**/*.mdx", + ], + plugins: [daisyui], + theme: { + extend: {}, + }, +} diff --git a/package.json b/package.json index 796075c..a6089c6 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "typescript": "^5.2.2" }, "engines": { - "node": "18.x" + "node": "18.x || 20.x" }, "pnpm": { "patchedDependencies": { diff --git a/packages/adapter/package.json b/packages/adapter/package.json index ffc1504..febd778 100644 --- a/packages/adapter/package.json +++ b/packages/adapter/package.json @@ -48,26 +48,26 @@ }, "dependencies": { "@astrojs/webapi": "^2.2.0", - "esbuild": "^0.19.3", + "esbuild": "^0.19.4", "merge-anything": "^5.1.7" }, "devDependencies": { "@astro-aws/scripts": "workspace:^", "@faker-js/faker": "^8.1.0", - "@types/aws-lambda": "^8.10.121", + "@types/aws-lambda": "^8.10.124", "@types/node": "^18.17.6", - "astro": "^3.1.1", + "astro": "^3.2.3", "aws-lambda": "^1.0.7", - "eslint": "^8.49.0", + "eslint": "^8.51.0", "prettier": "^3.0.3", "typescript": "^5.2.2", - "vitest": "^0.34.5" + "vitest": "^0.34.6" }, "peerDependencies": { "astro": ">=1" }, "engines": { - "node": "18.x" + "node": "18.x || 20.x" }, "publishConfig": { "access": "public" diff --git a/packages/adapter/src/args.ts b/packages/adapter/src/args.ts index 857f157..0479176 100644 --- a/packages/adapter/src/args.ts +++ b/packages/adapter/src/args.ts @@ -7,13 +7,13 @@ type EsBuildOptions = Omit< type Args = { /** Specifies what media types need to be base64 encoded. */ - binaryMediaTypes?: string[] + binaryMediaTypes: string[] /** Configures ESBuild options that are not configured automatically. */ - esBuildOptions?: EsBuildOptions + esBuildOptions: EsBuildOptions /** Enables a log message that prints the request the lambda receives. */ - logFnRequest?: boolean + logFnRequest: boolean /** Enables a log message that prints the response the lambda returns. */ - logFnResponse?: boolean + logFnResponse: boolean } export { type EsBuildOptions, type Args } diff --git a/packages/adapter/src/index.ts b/packages/adapter/src/index.ts index e8e9db5..cdf50f8 100644 --- a/packages/adapter/src/index.ts +++ b/packages/adapter/src/index.ts @@ -8,12 +8,22 @@ import { bundleEntry } from "./shared.js" import { ADAPTER_NAME } from "./constants.js" import { warn } from "./log.js" -const getAdapter = (args: Args = {}): AstroAdapter => ({ +const DEFAULT_ARGS: Args = { + binaryMediaTypes: [], + esBuildOptions: {}, + logFnRequest: false, + logFnResponse: false, +} + +const getAdapter = (args: Partial = {}): AstroAdapter => ({ adapterFeatures: { edgeMiddleware: false, functionPerRoute: false, }, - args, + args: { + ...DEFAULT_ARGS, + ...args, + }, exports: ["handler"], name: ADAPTER_NAME, serverEntrypoint: `${ADAPTER_NAME}/lambda/index.js`, @@ -25,13 +35,18 @@ const getAdapter = (args: Args = {}): AstroAdapter => ({ }, hybridOutput: "stable", serverOutput: "stable", - staticOutput: "unsupported", + staticOutput: "stable", }, }) -const astroAWSFunctions = (args: Args = {}): AstroIntegration => { +const astroAWSFunctions = (args: Partial = {}): AstroIntegration => { let astroConfig: AstroConfig + const argsWithDefault: Args = { + ...DEFAULT_ARGS, + ...args, + } + /* eslint-disable sort-keys */ return { name: ADAPTER_NAME, @@ -46,7 +61,7 @@ const astroAWSFunctions = (args: Args = {}): AstroIntegration => { }) }, "astro:config:done": ({ config, setAdapter }) => { - setAdapter(getAdapter(args)) + setAdapter(getAdapter(argsWithDefault)) astroConfig = config @@ -60,7 +75,11 @@ const astroAWSFunctions = (args: Args = {}): AstroIntegration => { "astro:build:done": async (options) => { await writeFile( fileURLToPath(new URL("metadata.json", astroConfig.outDir)), - JSON.stringify(options), + JSON.stringify({ + args: argsWithDefault, + options, + config: astroConfig, + }), ) await bundleEntry( @@ -68,7 +87,7 @@ const astroAWSFunctions = (args: Args = {}): AstroIntegration => { new URL(astroConfig.build.serverEntry, astroConfig.build.server), ), fileURLToPath(new URL("lambda", astroConfig.outDir)), - args, + argsWithDefault, ) }, }, diff --git a/packages/constructs/package.json b/packages/constructs/package.json index 2fad322..bd2a536 100644 --- a/packages/constructs/package.json +++ b/packages/constructs/package.json @@ -37,9 +37,9 @@ "devDependencies": { "@astro-aws/scripts": "workspace:^", "@types/node": "^18.17.6", - "aws-cdk-lib": "^2.96.2", - "constructs": "^10.2.70", - "eslint": "^8.49.0", + "aws-cdk-lib": "^2.100.0", + "constructs": "^10.3.0", + "eslint": "^8.51.0", "prettier": "^3.0.3", "typescript": "^5.2.2" }, @@ -48,7 +48,7 @@ "constructs": "^10.1.0" }, "engines": { - "node": "18.x" + "node": "18.x || 20.x" }, "publishConfig": { "access": "public" diff --git a/packages/constructs/src/constructs/astro-aws-cloudfront-distribution.ts b/packages/constructs/src/constructs/astro-aws-cloudfront-distribution.ts index 1832977..247baf2 100644 --- a/packages/constructs/src/constructs/astro-aws-cloudfront-distribution.ts +++ b/packages/constructs/src/constructs/astro-aws-cloudfront-distribution.ts @@ -17,8 +17,10 @@ import { ViewerProtocolPolicy, } from "aws-cdk-lib/aws-cloudfront" -import { AstroAWSBaseConstruct } from "../types/astro-aws-construct.js" -import { type Output } from "../types/output.js" +import { + AstroAWSBaseConstruct, + type AstroAWSBaseConstructProps, +} from "../types/astro-aws-construct.js" type AstroAWSCloudfrontDistributionCdkProps = { cloudfrontDistribution?: Omit< @@ -30,8 +32,8 @@ type AstroAWSCloudfrontDistributionCdkProps = { } } -type AstroAWSCloudfrontDistributionProps = { - output: Output +type AstroAWSCloudfrontDistributionProps = AstroAWSBaseConstructProps & { + edge?: boolean lambdaFunction?: Function origin: IOrigin lambdaFunctionOrigin?: IOrigin @@ -90,7 +92,7 @@ class AstroAWSCloudfrontDistribution extends AstroAWSBaseConstruct< const edgeLambdas: EdgeLambda[] = this.props.cdk?.cloudfrontDistribution?.defaultBehavior?.edgeLambdas ?? [] - if (this.props.output === "edge" && this.props.lambdaFunction) { + if (this.props.edge && this.props.lambdaFunction) { edgeLambdas.push({ eventType: LambdaEdgeEventType.ORIGIN_REQUEST, functionVersion: this.props.lambdaFunction.currentVersion, diff --git a/packages/constructs/src/constructs/astro-aws-origin.ts b/packages/constructs/src/constructs/astro-aws-origin.ts index eae1776..c7b1f97 100644 --- a/packages/constructs/src/constructs/astro-aws-origin.ts +++ b/packages/constructs/src/constructs/astro-aws-origin.ts @@ -17,8 +17,10 @@ import { } from "aws-cdk-lib/aws-cloudfront-origins" import { Fn } from "aws-cdk-lib/core" -import { AstroAWSBaseConstruct } from "../types/astro-aws-construct.js" -import { type Output } from "../types/output.js" +import { + AstroAWSBaseConstruct, + type AstroAWSBaseConstructProps, +} from "../types/astro-aws-construct.js" type AstroAWSOriginCdkProps = { lambdaFunctionOrigin?: HttpOriginProps @@ -27,8 +29,8 @@ type AstroAWSOriginCdkProps = { s3Origin?: S3OriginProps } -type AstroAWSOriginProps = { - output: Output +type AstroAWSOriginProps = AstroAWSBaseConstructProps & { + edge?: boolean lambdaFunction?: Function s3Bucket: Bucket cdk?: AstroAWSOriginCdkProps @@ -57,7 +59,7 @@ class AstroAWSOrigin extends AstroAWSBaseConstruct< this.#s3Origin = new S3Origin(this.props.s3Bucket, this.props.cdk?.s3Origin) - if (this.props.lambdaFunction && this.props.output !== "static") { + if (this.props.lambdaFunction && this.isSSR) { this.#lambdaFunctionUrl = this.props.lambdaFunction.addFunctionUrl({ authType: FunctionUrlAuthType.NONE, ...this.props.cdk?.lambdaFunctionUrl, @@ -68,7 +70,7 @@ class AstroAWSOrigin extends AstroAWSBaseConstruct< this.props.cdk?.lambdaFunctionOrigin, ) - if (this.props.output === "server") { + if (!this.props.edge) { this.#originGroup = new OriginGroup({ ...this.props.cdk?.originGroup, fallbackOrigin: this.#s3Origin, diff --git a/packages/constructs/src/constructs/astro-aws-s3-bucket-deployment.ts b/packages/constructs/src/constructs/astro-aws-s3-bucket-deployment.ts index ad03f4f..c7f7805 100644 --- a/packages/constructs/src/constructs/astro-aws-s3-bucket-deployment.ts +++ b/packages/constructs/src/constructs/astro-aws-s3-bucket-deployment.ts @@ -8,8 +8,10 @@ import { import { type Construct } from "constructs" import { type Distribution } from "aws-cdk-lib/aws-cloudfront" -import { type Output } from "../types/output.js" -import { AstroAWSBaseConstruct } from "../types/astro-aws-construct.js" +import { + AstroAWSBaseConstruct, + type AstroAWSBaseConstructProps, +} from "../types/astro-aws-construct.js" type AstroAWSS3BucketDeploymentCdkProps = { s3BucketDeployment?: Partial< @@ -17,12 +19,10 @@ type AstroAWSS3BucketDeploymentCdkProps = { > } -type AstroAWSS3BucketDeploymentProps = { - distDir: string - output: Output +type AstroAWSS3BucketDeploymentProps = AstroAWSBaseConstructProps & { bucket: BucketDeploymentProps["destinationBucket"] - distribution: Distribution cdk?: AstroAWSS3BucketDeploymentCdkProps + distribution: Distribution } type AstroAWSS3BucketDeploymentCdk = { @@ -42,11 +42,11 @@ class AstroAWSS3BucketDeployment extends AstroAWSBaseConstruct< ) { super(scope, id, props) - const { output, distDir, bucket, cdk = {}, distribution } = this.props + const { bucket, cdk = {}, distribution } = this.props - const source = ["server", "edge"].includes(output) - ? resolve(distDir, "client") - : resolve(distDir) + const source = this.metadata + ? resolve(this.distDir, "client") + : resolve(this.distDir) this.#s3BucketDeployment = new BucketDeployment(this, "BucketDeployment", { ...cdk.s3BucketDeployment, diff --git a/packages/constructs/src/constructs/astro-aws-s3-bucket.ts b/packages/constructs/src/constructs/astro-aws-s3-bucket.ts index 09c0efd..6ea4bac 100644 --- a/packages/constructs/src/constructs/astro-aws-s3-bucket.ts +++ b/packages/constructs/src/constructs/astro-aws-s3-bucket.ts @@ -8,13 +8,16 @@ import { type Construct } from "constructs" import { OriginAccessIdentity } from "aws-cdk-lib/aws-cloudfront" import { CanonicalUserPrincipal, PolicyStatement } from "aws-cdk-lib/aws-iam" -import { AstroAWSBaseConstruct } from "../types/astro-aws-construct.js" +import { + AstroAWSBaseConstruct, + type AstroAWSBaseConstructProps, +} from "../types/astro-aws-construct.js" type AstroAWSS3BucketCdkProps = { s3Bucket?: Partial } -type AstroAWSS3BucketProps = { +type AstroAWSS3BucketProps = AstroAWSBaseConstructProps & { cdk?: AstroAWSS3BucketCdkProps } diff --git a/packages/constructs/src/constructs/astro-aws.ts b/packages/constructs/src/constructs/astro-aws.ts index dc6c40d..b22e78c 100644 --- a/packages/constructs/src/constructs/astro-aws.ts +++ b/packages/constructs/src/constructs/astro-aws.ts @@ -1,4 +1,3 @@ -import { fileURLToPath } from "node:url" import { resolve } from "node:path" import { @@ -9,7 +8,6 @@ import { } from "aws-cdk-lib/aws-lambda" import { type Construct } from "constructs" -import { type Output } from "../types/output.js" import { AstroAWSBaseConstruct } from "../types/astro-aws-construct.js" import { @@ -33,8 +31,6 @@ import type { } from "./astro-aws-cloudfront-distribution.js" import { AstroAWSCloudfrontDistribution } from "./astro-aws-cloudfront-distribution.js" -const __dirname = fileURLToPath(new URL(".", import.meta.url)) - type AstroAWSCdkProps = { lambdaFunction?: Omit } @@ -43,7 +39,7 @@ type AstroAWSProps = { /** Passed through to the Bucket Origin. */ websiteDir?: string outDir?: string - output: Output + edge?: boolean cdk?: AstroAWSCdkProps & AstroAWSCloudfrontDistributionCdkProps & AstroAWSOriginCdkProps & @@ -70,8 +66,6 @@ type AstroAWSCdk = AstroAWSCloudfrontDistributionCdk & * a 404 response, the Cloudfront distribution falls back to the S3 bucket. */ class AstroAWS extends AstroAWSBaseConstruct { - public readonly distDir: string - #lambdaFunction?: Function #astroAWSS3BucketDeployment: AstroAWSS3BucketDeployment #astroAWSS3Bucket: AstroAWSS3Bucket @@ -81,22 +75,19 @@ class AstroAWS extends AstroAWSBaseConstruct { public constructor(scope: Construct, id: string, props: AstroAWSProps) { super(scope, id, props) - const { outDir, websiteDir = __dirname, output } = props - - this.#astroAWSS3Bucket = new AstroAWSS3Bucket(this, "AstroAWSS3Bucket", { - cdk: this.props.cdk, - }) - - this.distDir = outDir ? resolve(outDir) : resolve(websiteDir, "dist") + this.#astroAWSS3Bucket = new AstroAWSS3Bucket( + this, + "AstroAWSS3Bucket", + this.props, + ) - if (["server", "edge"].includes(output)) { + if (this.isSSR) { this.createSSROnlyResources() } this.#astroAWSOrigin = new AstroAWSOrigin(this, "AstroAWSOrigin", { - cdk: this.props.cdk, + ...this.props, lambdaFunction: this.#lambdaFunction, - output, s3Bucket: this.#astroAWSS3Bucket.cdk.s3Bucket, }) @@ -104,11 +95,10 @@ class AstroAWS extends AstroAWSBaseConstruct { this, "AstroAWSCloudfrontDistribution", { - cdk: this.props.cdk, + ...this.props, lambdaFunction: this.#lambdaFunction, lambdaFunctionOrigin: this.#astroAWSOrigin.cdk.lambdaFunctionOrigin, origin: this.#astroAWSOrigin.cdk.origin, - output, }, ) @@ -116,12 +106,10 @@ class AstroAWS extends AstroAWSBaseConstruct { this, "AstroAWSS3BucketDeployment", { + ...this.props, bucket: this.#astroAWSS3Bucket.cdk.s3Bucket, - cdk: this.props.cdk, - distDir: this.distDir, distribution: this.#astroAWSCloudfrontDistribution.cdk.cloudfrontDistribution, - output: this.props.output, }, ) } diff --git a/packages/constructs/src/types/astro-aws-construct.ts b/packages/constructs/src/types/astro-aws-construct.ts index 758af3a..2fc49d5 100644 --- a/packages/constructs/src/types/astro-aws-construct.ts +++ b/packages/constructs/src/types/astro-aws-construct.ts @@ -1,17 +1,74 @@ +import { existsSync, readFileSync } from "node:fs" +import { resolve } from "node:path" +import { URL, fileURLToPath } from "node:url" + import { Construct } from "constructs" -export abstract class AstroAWSBaseConstruct extends Construct { - #props: Props +const __dirname = fileURLToPath(new URL(".", import.meta.url)) + +type Config = { + output: "hybrid" | "server" | "static" +} + +type Args = { + /** Specifies what media types need to be base64 encoded. */ + binaryMediaTypes: string[] + /** Configures ESBuild options that are not configured automatically. */ + esBuildOptions: Record + /** Enables a log message that prints the request the lambda receives. */ + logFnRequest: boolean + /** Enables a log message that prints the response the lambda returns. */ + logFnResponse: boolean +} + +type Metadata = { + args: Args + config: Config +} + +type AstroAWSBaseConstructProps = { + outDir?: string + websiteDir?: string +} + +abstract class AstroAWSBaseConstruct< + Props extends AstroAWSBaseConstructProps, + Cdk, +> extends Construct { + public readonly distDir: string + public readonly props: Props + public readonly metadata?: Metadata public constructor(scope: Construct, id: string, props: Props) { super(scope, id) - this.#props = props + const { outDir, websiteDir = __dirname } = props + + this.props = props + + this.distDir = outDir ? resolve(outDir) : resolve(websiteDir, "dist") + + this.metadata = existsSync(resolve(this.distDir, "metadata.json")) + ? (JSON.parse( + readFileSync(resolve(this.distDir, "metadata.json")).toString("utf8"), + ) as Metadata) + : undefined } - public get props(): Props { - return this.#props + public get isStatic(): boolean { + return !this.metadata + } + + public get isSSR(): boolean { + return Boolean(this.metadata) } public abstract get cdk(): Cdk } + +export { + type Args, + type Metadata, + type AstroAWSBaseConstructProps, + AstroAWSBaseConstruct, +} diff --git a/packages/constructs/src/types/output.ts b/packages/constructs/src/types/output.ts deleted file mode 100644 index dd9b54f..0000000 --- a/packages/constructs/src/types/output.ts +++ /dev/null @@ -1 +0,0 @@ -export type Output = "edge" | "server" | "static" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c43c54b..daef5a9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,11 +52,11 @@ importers: apps/docs: dependencies: "@astrojs/starlight": - specifier: ^0.10.1 - version: 0.10.1(astro@3.1.1) + specifier: ^0.11.0 + version: 0.11.0(astro@3.2.3) astro: - specifier: ^3.1.1 - version: 3.1.1(@types/node@18.17.15) + specifier: ^3.2.3 + version: 3.2.3(@types/node@18.17.15) sharp: specifier: ^0.32.6 version: 0.32.6 @@ -65,14 +65,14 @@ importers: specifier: workspace:^ version: link:../../packages/adapter eslint: - specifier: ^8.49.0 - version: 8.49.0 + specifier: ^8.51.0 + version: 8.51.0 prettier: specifier: ^3.0.3 version: 3.0.3 rimraf: - specifier: ^5.0.1 - version: 5.0.1 + specifier: ^5.0.5 + version: 5.0.5 apps/infra: dependencies: @@ -83,17 +83,17 @@ importers: specifier: workspace:^ version: link:../docs aws-cdk: - specifier: ^2.96.2 - version: 2.96.2 + specifier: ^2.100.0 + version: 2.100.0 aws-cdk-lib: - specifier: ^2.96.2 - version: 2.96.2(constructs@10.2.70) + specifier: ^2.100.0 + version: 2.100.0(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: - specifier: ^8.49.0 - version: 8.49.0 + specifier: ^8.51.0 + version: 8.51.0 prettier: specifier: ^3.0.3 version: 3.0.3 @@ -112,13 +112,25 @@ importers: version: 18.17.15 eslint-config-get-off-my-lawn: specifier: ^7.2.0 - version: 7.2.0(eslint@8.49.0) + version: 7.2.0(eslint@8.51.0) examples/base: dependencies: + "@astrojs/tailwind": + specifier: ^5.0.1 + version: 5.0.1(astro@3.2.3)(tailwindcss@3.3.3) + "@faker-js/faker": + specifier: ^8.1.0 + version: 8.1.0 astro: - specifier: ^3.1.1 - version: 3.1.1(@types/node@18.17.15) + specifier: ^3.2.3 + version: 3.2.3(@types/node@18.17.15) + daisyui: + specifier: ^3.9.2 + version: 3.9.2 + tailwindcss: + specifier: ^3.3.3 + version: 3.3.3 devDependencies: "@astro-aws/adapter": specifier: workspace:^ @@ -127,14 +139,14 @@ importers: specifier: ^0.2.0 version: 0.2.0(prettier@3.0.3)(typescript@5.2.2) eslint: - specifier: ^8.49.0 - version: 8.49.0 + specifier: ^8.51.0 + version: 8.51.0 prettier: specifier: ^3.0.3 version: 3.0.3 rimraf: - specifier: ^5.0.1 - version: 5.0.1 + specifier: ^5.0.5 + version: 5.0.5 typescript: specifier: ^5.2.2 version: 5.2.2 @@ -145,8 +157,8 @@ importers: specifier: ^2.2.0 version: 2.2.0 esbuild: - specifier: ^0.19.3 - version: 0.19.3 + specifier: ^0.19.4 + version: 0.19.4 merge-anything: specifier: ^5.1.7 version: 5.1.7 @@ -158,20 +170,20 @@ importers: specifier: ^8.1.0 version: 8.1.0 "@types/aws-lambda": - specifier: ^8.10.121 - version: 8.10.121 + specifier: ^8.10.124 + version: 8.10.124 "@types/node": specifier: ^18.17.6 version: 18.17.15 astro: - specifier: ^3.1.1 - version: 3.1.1(@types/node@18.17.15) + specifier: ^3.2.3 + version: 3.2.3(@types/node@18.17.15) aws-lambda: specifier: ^1.0.7 version: 1.0.7 eslint: - specifier: ^8.49.0 - version: 8.49.0 + specifier: ^8.51.0 + version: 8.51.0 prettier: specifier: ^3.0.3 version: 3.0.3 @@ -179,8 +191,8 @@ importers: specifier: ^5.2.2 version: 5.2.2 vitest: - specifier: ^0.34.5 - version: 0.34.5 + specifier: ^0.34.6 + version: 0.34.6 packages/constructs: devDependencies: @@ -191,14 +203,14 @@ importers: specifier: ^18.17.6 version: 18.17.15 aws-cdk-lib: - specifier: ^2.96.2 - version: 2.96.2(constructs@10.2.70) + specifier: ^2.100.0 + version: 2.100.0(constructs@10.3.0) constructs: - specifier: ^10.2.70 - version: 10.2.70 + specifier: ^10.3.0 + version: 10.3.0 eslint: - specifier: ^8.49.0 - version: 8.49.0 + specifier: ^8.51.0 + version: 8.51.0 prettier: specifier: ^3.0.3 version: 3.0.3 @@ -215,8 +227,8 @@ importers: specifier: ^8.3.6 version: 8.3.6(typescript@5.2.2) esbuild: - specifier: ^0.19.3 - version: 0.19.3 + specifier: ^0.19.4 + version: 0.19.4 globby: specifier: ^13.2.2 version: 13.2.2 @@ -225,8 +237,8 @@ importers: specifier: ^18.17.6 version: 18.17.15 eslint: - specifier: ^8.49.0 - version: 8.49.0 + specifier: ^8.51.0 + version: 8.51.0 prettier: specifier: ^3.0.3 version: 3.0.3 @@ -245,6 +257,14 @@ packages: } engines: { node: ">=0.10.0" } + /@alloc/quick-lru@5.2.0: + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: ">=10" } + dev: false + /@ampproject/remapping@2.2.1: resolution: { @@ -295,10 +315,10 @@ packages: integrity: sha512-Mp+qrNhly+27bL/Zq8lGeUY+YrdoU0eDfIlAeGIPrzt0PnI/jGpvPUdCaugv4zbCrDkOUScFfcbeEiYumrdJnw==, } - /@astrojs/internal-helpers@0.2.0: + /@astrojs/internal-helpers@0.2.1: resolution: { - integrity: sha512-NQ4ppp1CM0HNkKbJNM4saVSfmUYzGlRalF6wx7F6T/MYHYSWGuojY89/oFTy4t8VlOGUCUijlsVNNeziWaUo5g==, + integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==, } /@astrojs/language-server@2.3.3(prettier@3.0.3)(typescript@5.2.2): @@ -339,42 +359,16 @@ packages: - typescript dev: true - /@astrojs/markdown-remark@3.1.0(astro@3.1.1): - resolution: - { - integrity: sha512-5UwamK0iFxN0n1Nw44vUk8AkQr4psKS63hM3D1/4bhhjs4ZFRyrYmg5NjScaMEXZcrd2KgGPsd+PEwNs4mlBOw==, - } - peerDependencies: - astro: ^3.0.11 - dependencies: - "@astrojs/prism": 3.0.0 - astro: 3.1.1(@types/node@18.17.15) - github-slugger: 2.0.0 - import-meta-resolve: 3.0.0 - rehype-raw: 6.1.1 - rehype-stringify: 9.0.4 - remark-gfm: 3.0.1 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 - remark-smartypants: 2.0.0 - shiki: 0.14.4 - unified: 10.1.2 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - transitivePeerDependencies: - - supports-color - dev: false - - /@astrojs/markdown-remark@3.2.0(astro@3.1.1): + /@astrojs/markdown-remark@3.2.1(astro@3.2.3): resolution: { - integrity: sha512-jigyLfefUZPKgVmmraCkVpdUuFH1R3SrpgQO13axsgwLDBgkggaQpNR5Ag4O9PDualeBtbdt30aYSfvnBKx9Hg==, + integrity: sha512-Z4YNMRtgFZeHhB29uCZl0B9MbMZddW9ZKCNucapoysbvygbDFF1gGtqpVnf+Lyv3rUBHwM/J5qWB2MSZuTuz1g==, } peerDependencies: - astro: ^3.1.0 + astro: ^3.2.3 dependencies: "@astrojs/prism": 3.0.0 - astro: 3.1.1(@types/node@18.17.15) + astro: 3.2.3(@types/node@18.17.15) github-slugger: 2.0.0 import-meta-resolve: 3.0.0 mdast-util-definitions: 6.0.0 @@ -391,19 +385,19 @@ packages: transitivePeerDependencies: - supports-color - /@astrojs/mdx@1.0.3(astro@3.1.1): + /@astrojs/mdx@1.1.1(astro@3.2.3): resolution: { - integrity: sha512-T+WnbBltX4COO3SZYPHLoRC8XrXSajgiKmXNtFWP5cCjIiofv86gkdSwsjqfLMCaLyGUEmd+vspoaCU0joSrOg==, + integrity: sha512-3dfL12ZqI6NCjx0iVOYVSyljlVgsxds5mOhe78xoCVjyqSpZZsxzz4Dt5WfGxDon2nc2bD6XGiZ2PIy8fmX6NQ==, } engines: { node: ">=18.14.1" } peerDependencies: - astro: ^3.0.11 + astro: ^3.2.3 dependencies: - "@astrojs/markdown-remark": 3.1.0(astro@3.1.1) + "@astrojs/markdown-remark": 3.2.1(astro@3.2.3) "@mdx-js/mdx": 2.3.0 acorn: 8.10.0 - astro: 3.1.1(@types/node@18.17.15) + astro: 3.2.3(@types/node@18.17.15) es-module-lexer: 1.3.1 estree-util-visit: 1.2.1 github-slugger: 2.0.0 @@ -439,19 +433,19 @@ packages: zod: 3.21.1 dev: false - /@astrojs/starlight@0.10.1(astro@3.1.1): + /@astrojs/starlight@0.11.0(astro@3.2.3): resolution: { - integrity: sha512-2Li88ysd2ZD5p6MzmhGuL8JDd5tEWylUNGgTIWFqWhov64KmBKB2JrS07GQ1zkpV3FXF6IXm34v+lKU3sxe/Rg==, + integrity: sha512-ZnYB1AHetRujy25fSW4uvJTn2ry8nFspMCySWkeB1VT7QzTTgol9y19o1HTWVessViJhlavayHAjd42Pru1rww==, } peerDependencies: - astro: ^3.0.0 + astro: ^3.2.0 dependencies: - "@astrojs/mdx": 1.0.3(astro@3.1.1) + "@astrojs/mdx": 1.1.1(astro@3.2.3) "@astrojs/sitemap": 3.0.0 "@pagefind/default-ui": 1.0.3 "@types/mdast": 3.0.12 - astro: 3.1.1(@types/node@18.17.15) + astro: 3.2.3(@types/node@18.17.15) bcp-47: 2.1.0 execa: 7.2.0 hast-util-select: 5.0.5 @@ -467,10 +461,28 @@ packages: - supports-color dev: false - /@astrojs/telemetry@3.0.1: + /@astrojs/tailwind@5.0.1(astro@3.2.3)(tailwindcss@3.3.3): + resolution: + { + integrity: sha512-HzguDH+q1v8NhZIu245UtXfz5tuy4IAd/TND92z5vyftYtGdjDLdBeHhMH4Wd91/0sIPPNRz9NUfToprI636YQ==, + } + peerDependencies: + astro: ^3.2.3 + tailwindcss: ^3.0.24 + dependencies: + astro: 3.2.3(@types/node@18.17.15) + autoprefixer: 10.4.16(postcss@8.4.29) + postcss: 8.4.29 + postcss-load-config: 4.0.1(postcss@8.4.29) + tailwindcss: 3.3.3 + transitivePeerDependencies: + - ts-node + dev: false + + /@astrojs/telemetry@3.0.3: resolution: { - integrity: sha512-7zJMuikRDQ0LLLivteu0+y4pqdgznrChFiRrY3qmKlOEkLWD1T3u1a5M970lvpErP7Vgh4P298JBPjv8LTj+sw==, + integrity: sha512-j19Cf5mfyLt9hxgJ9W/FMdAA5Lovfp7/CINNB/7V71GqvygnL7KXhRC3TzfB+PsVQcBtgWZzCXhUWRbmJ64Raw==, } engines: { node: ">=18.14.1" } dependencies: @@ -480,7 +492,6 @@ packages: dset: 3.1.2 is-docker: 3.0.0 is-wsl: 3.0.0 - undici: 5.24.0 which-pm-runs: 1.1.0 transitivePeerDependencies: - supports-color @@ -594,6 +605,24 @@ packages: eslint-scope: 5.1.1 eslint-visitor-keys: 2.1.0 semver: 6.3.1 + dev: false + + /@babel/eslint-parser@7.17.0(@babel/core@7.17.0)(eslint@8.51.0): + resolution: + { + integrity: sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==, + } + engines: { node: ^10.13.0 || ^12.13.0 || >=14.0.0 } + peerDependencies: + "@babel/core": ">=7.11.0" + eslint: ^7.5.0 || ^8.0.0 + dependencies: + "@babel/core": 7.17.0 + eslint: 8.51.0 + eslint-scope: 5.1.1 + eslint-visitor-keys: 2.1.0 + semver: 6.3.1 + dev: true /@babel/generator@7.22.15: resolution: @@ -947,12 +976,6 @@ packages: "@babel/helper-validator-identifier": 7.22.15 to-fast-properties: 2.0.0 - /@balena/dockerignore@1.0.2: - resolution: - { - integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==, - } - /@changesets/apply-release-plan@6.1.4: resolution: { @@ -1259,10 +1282,10 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm64@0.19.3: + /@esbuild/android-arm64@0.19.4: resolution: { - integrity: sha512-w+Akc0vv5leog550kjJV9Ru+MXMR2VuMrui3C61mnysim0gkFCPOUTAfzTP0qX+HpN9Syu3YA3p1hf3EPqObRw==, + integrity: sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==, } engines: { node: ">=12" } cpu: [arm64] @@ -1281,10 +1304,10 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm@0.19.3: + /@esbuild/android-arm@0.19.4: resolution: { - integrity: sha512-Lemgw4io4VZl9GHJmjiBGzQ7ONXRfRPHcUEerndjwiSkbxzrpq0Uggku5MxxrXdwJ+pTj1qyw4jwTu7hkPsgIA==, + integrity: sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==, } engines: { node: ">=12" } cpu: [arm] @@ -1303,10 +1326,10 @@ packages: requiresBuild: true optional: true - /@esbuild/android-x64@0.19.3: + /@esbuild/android-x64@0.19.4: resolution: { - integrity: sha512-FKQJKkK5MXcBHoNZMDNUAg1+WcZlV/cuXrWCoGF/TvdRiYS4znA0m5Il5idUwfxrE20bG/vU1Cr5e1AD6IEIjQ==, + integrity: sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==, } engines: { node: ">=12" } cpu: [x64] @@ -1325,10 +1348,10 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.19.3: + /@esbuild/darwin-arm64@0.19.4: resolution: { - integrity: sha512-kw7e3FXU+VsJSSSl2nMKvACYlwtvZB8RUIeVShIEY6PVnuZ3c9+L9lWB2nWeeKWNNYDdtL19foCQ0ZyUL7nqGw==, + integrity: sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==, } engines: { node: ">=12" } cpu: [arm64] @@ -1347,10 +1370,10 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-x64@0.19.3: + /@esbuild/darwin-x64@0.19.4: resolution: { - integrity: sha512-tPfZiwF9rO0jW6Jh9ipi58N5ZLoSjdxXeSrAYypy4psA2Yl1dAMhM71KxVfmjZhJmxRjSnb29YlRXXhh3GqzYw==, + integrity: sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==, } engines: { node: ">=12" } cpu: [x64] @@ -1369,10 +1392,10 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.19.3: + /@esbuild/freebsd-arm64@0.19.4: resolution: { - integrity: sha512-ERDyjOgYeKe0Vrlr1iLrqTByB026YLPzTytDTz1DRCYM+JI92Dw2dbpRHYmdqn6VBnQ9Bor6J8ZlNwdZdxjlSg==, + integrity: sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==, } engines: { node: ">=12" } cpu: [arm64] @@ -1391,10 +1414,10 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.19.3: + /@esbuild/freebsd-x64@0.19.4: resolution: { - integrity: sha512-nXesBZ2Ad1qL+Rm3crN7NmEVJ5uvfLFPLJev3x1j3feCQXfAhoYrojC681RhpdOph8NsvKBBwpYZHR7W0ifTTA==, + integrity: sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==, } engines: { node: ">=12" } cpu: [x64] @@ -1413,10 +1436,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm64@0.19.3: + /@esbuild/linux-arm64@0.19.4: resolution: { - integrity: sha512-qXvYKmXj8GcJgWq3aGvxL/JG1ZM3UR272SdPU4QSTzD0eymrM7leiZH77pvY3UetCy0k1xuXZ+VPvoJNdtrsWQ==, + integrity: sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==, } engines: { node: ">=12" } cpu: [arm64] @@ -1435,10 +1458,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm@0.19.3: + /@esbuild/linux-arm@0.19.4: resolution: { - integrity: sha512-zr48Cg/8zkzZCzDHNxXO/89bf9e+r4HtzNUPoz4GmgAkF1gFAFmfgOdCbR8zMbzFDGb1FqBBhdXUpcTQRYS1cQ==, + integrity: sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==, } engines: { node: ">=12" } cpu: [arm] @@ -1457,10 +1480,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ia32@0.19.3: + /@esbuild/linux-ia32@0.19.4: resolution: { - integrity: sha512-7XlCKCA0nWcbvYpusARWkFjRQNWNGlt45S+Q18UeS///K6Aw8bB2FKYe9mhVWy/XLShvCweOLZPrnMswIaDXQA==, + integrity: sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==, } engines: { node: ">=12" } cpu: [ia32] @@ -1479,10 +1502,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-loong64@0.19.3: + /@esbuild/linux-loong64@0.19.4: resolution: { - integrity: sha512-qGTgjweER5xqweiWtUIDl9OKz338EQqCwbS9c2Bh5jgEH19xQ1yhgGPNesugmDFq+UUSDtWgZ264st26b3de8A==, + integrity: sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==, } engines: { node: ">=12" } cpu: [loong64] @@ -1501,10 +1524,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.19.3: + /@esbuild/linux-mips64el@0.19.4: resolution: { - integrity: sha512-gy1bFskwEyxVMFRNYSvBauDIWNggD6pyxUksc0MV9UOBD138dKTzr8XnM2R4mBsHwVzeuIH8X5JhmNs2Pzrx+A==, + integrity: sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==, } engines: { node: ">=12" } cpu: [mips64el] @@ -1523,10 +1546,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.19.3: + /@esbuild/linux-ppc64@0.19.4: resolution: { - integrity: sha512-UrYLFu62x1MmmIe85rpR3qou92wB9lEXluwMB/STDzPF9k8mi/9UvNsG07Tt9AqwPQXluMQ6bZbTzYt01+Ue5g==, + integrity: sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==, } engines: { node: ">=12" } cpu: [ppc64] @@ -1545,10 +1568,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.19.3: + /@esbuild/linux-riscv64@0.19.4: resolution: { - integrity: sha512-9E73TfyMCbE+1AwFOg3glnzZ5fBAFK4aawssvuMgCRqCYzE0ylVxxzjEfut8xjmKkR320BEoMui4o/t9KA96gA==, + integrity: sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==, } engines: { node: ">=12" } cpu: [riscv64] @@ -1567,10 +1590,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-s390x@0.19.3: + /@esbuild/linux-s390x@0.19.4: resolution: { - integrity: sha512-LlmsbuBdm1/D66TJ3HW6URY8wO6IlYHf+ChOUz8SUAjVTuaisfuwCOAgcxo3Zsu3BZGxmI7yt//yGOxV+lHcEA==, + integrity: sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==, } engines: { node: ">=12" } cpu: [s390x] @@ -1589,10 +1612,10 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-x64@0.19.3: + /@esbuild/linux-x64@0.19.4: resolution: { - integrity: sha512-ogV0+GwEmvwg/8ZbsyfkYGaLACBQWDvO0Kkh8LKBGKj9Ru8VM39zssrnu9Sxn1wbapA2qNS6BiLdwJZGouyCwQ==, + integrity: sha512-Mi4aNA3rz1BNFtB7aGadMD0MavmzuuXNTaYL6/uiYIs08U7YMPETpgNn5oue3ICr+inKwItOwSsJDYkrE9ekVg==, } engines: { node: ">=12" } cpu: [x64] @@ -1611,10 +1634,10 @@ packages: requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.19.3: + /@esbuild/netbsd-x64@0.19.4: resolution: { - integrity: sha512-o1jLNe4uzQv2DKXMlmEzf66Wd8MoIhLNO2nlQBHLtWyh2MitDG7sMpfCO3NTcoTMuqHjfufgUQDFRI5C+xsXQw==, + integrity: sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==, } engines: { node: ">=12" } cpu: [x64] @@ -1633,10 +1656,10 @@ packages: requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.19.3: + /@esbuild/openbsd-x64@0.19.4: resolution: { - integrity: sha512-AZJCnr5CZgZOdhouLcfRdnk9Zv6HbaBxjcyhq0StNcvAdVZJSKIdOiPB9az2zc06ywl0ePYJz60CjdKsQacp5Q==, + integrity: sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==, } engines: { node: ">=12" } cpu: [x64] @@ -1655,10 +1678,10 @@ packages: requiresBuild: true optional: true - /@esbuild/sunos-x64@0.19.3: + /@esbuild/sunos-x64@0.19.4: resolution: { - integrity: sha512-Acsujgeqg9InR4glTRvLKGZ+1HMtDm94ehTIHKhJjFpgVzZG9/pIcWW/HA/DoMfEyXmANLDuDZ2sNrWcjq1lxw==, + integrity: sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==, } engines: { node: ">=12" } cpu: [x64] @@ -1677,10 +1700,10 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-arm64@0.19.3: + /@esbuild/win32-arm64@0.19.4: resolution: { - integrity: sha512-FSrAfjVVy7TifFgYgliiJOyYynhQmqgPj15pzLyJk8BUsnlWNwP/IAy6GAiB1LqtoivowRgidZsfpoYLZH586A==, + integrity: sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==, } engines: { node: ">=12" } cpu: [arm64] @@ -1699,10 +1722,10 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-ia32@0.19.3: + /@esbuild/win32-ia32@0.19.4: resolution: { - integrity: sha512-xTScXYi12xLOWZ/sc5RBmMN99BcXp/eEf7scUC0oeiRoiT5Vvo9AycuqCp+xdpDyAU+LkrCqEpUS9fCSZF8J3Q==, + integrity: sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==, } engines: { node: ">=12" } cpu: [ia32] @@ -1721,10 +1744,10 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-x64@0.19.3: + /@esbuild/win32-x64@0.19.4: resolution: { - integrity: sha512-FbUN+0ZRXsypPyWE2IwIkVjDkDnJoMJARWOcFZn4KPPli+QnKqF0z1anvfaYe3ev5HFCpRDLLBDHyOALLppWHw==, + integrity: sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==, } engines: { node: ">=12" } cpu: [x64] @@ -1744,6 +1767,18 @@ packages: eslint: 8.49.0 eslint-visitor-keys: 3.4.3 + /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): + resolution: + { + integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.51.0 + eslint-visitor-keys: 3.4.3 + /@eslint-community/regexpp@4.8.1: resolution: { @@ -1777,13 +1812,19 @@ packages: } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + /@eslint/js@8.51.0: + resolution: + { + integrity: sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + /@faker-js/faker@8.1.0: resolution: { integrity: sha512-38DT60rumHfBYynif3lmtxMqMqmsOQIxQgEuPZxCk2yUYN0eqWpTACgxi0VpidvsJB8CRxCpvP7B3anK85FjtQ==, } engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: ">=6.14.13" } - dev: true /@humanwhocodes/config-array@0.11.11: resolution: @@ -2185,10 +2226,10 @@ packages: "@types/estree": 1.0.1 dev: false - /@types/aws-lambda@8.10.121: + /@types/aws-lambda@8.10.124: resolution: { - integrity: sha512-Y/jsUwO18HuC0a39BuMQkSOd/kMGATh/h5LNksw8FlTafbQ3Ge3578ZoT8w8gSOsWl2qH1p/SS/R61vc0X5jIQ==, + integrity: sha512-PHqK0SuAkFS3tZjceqRXecxxrWIN3VqTicuialtK2wZmvBy7H9WGc3u3+wOgaZB7N8SpSXDpWk9qa7eorpTStg==, } dev: true @@ -2433,7 +2474,7 @@ packages: typescript: optional: true dependencies: - "@typescript-eslint/parser": 5.10.2(eslint@8.49.0)(typescript@5.2.2) + "@typescript-eslint/parser": 5.10.2(eslint@8.49.0)(typescript@4.5.5) "@typescript-eslint/scope-manager": 5.10.2 "@typescript-eslint/type-utils": 5.10.2(eslint@8.49.0)(typescript@4.5.5) "@typescript-eslint/utils": 5.10.2(eslint@8.49.0)(typescript@4.5.5) @@ -2447,6 +2488,37 @@ packages: typescript: 4.5.5 transitivePeerDependencies: - supports-color + dev: false + + /@typescript-eslint/eslint-plugin@5.10.2(@typescript-eslint/parser@5.10.2)(eslint@8.51.0)(typescript@4.5.5): + resolution: + { + integrity: sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + dependencies: + "@typescript-eslint/parser": 5.10.2(eslint@8.51.0)(typescript@5.2.2) + "@typescript-eslint/scope-manager": 5.10.2 + "@typescript-eslint/type-utils": 5.10.2(eslint@8.51.0)(typescript@4.5.5) + "@typescript-eslint/utils": 5.10.2(eslint@8.51.0)(typescript@4.5.5) + debug: 4.3.4 + eslint: 8.51.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.4 + regexpp: 3.2.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.5.5) + typescript: 4.5.5 + transitivePeerDependencies: + - supports-color + dev: true /@typescript-eslint/eslint-plugin@5.55.0(@typescript-eslint/parser@5.55.0)(eslint@8.49.0)(typescript@5.2.2): resolution: @@ -2479,7 +2551,7 @@ packages: - supports-color dev: false - /@typescript-eslint/parser@5.10.2(eslint@8.49.0)(typescript@5.2.2): + /@typescript-eslint/parser@5.10.2(eslint@8.49.0)(typescript@4.5.5): resolution: { integrity: sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==, @@ -2494,12 +2566,36 @@ packages: dependencies: "@typescript-eslint/scope-manager": 5.10.2 "@typescript-eslint/types": 5.10.2 - "@typescript-eslint/typescript-estree": 5.10.2(typescript@5.2.2) + "@typescript-eslint/typescript-estree": 5.10.2(typescript@4.5.5) debug: 4.3.4 eslint: 8.49.0 + typescript: 4.5.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/parser@5.10.2(eslint@8.51.0)(typescript@5.2.2): + resolution: + { + integrity: sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + dependencies: + "@typescript-eslint/scope-manager": 5.10.2 + "@typescript-eslint/types": 5.10.2 + "@typescript-eslint/typescript-estree": 5.10.2(typescript@5.2.2) + debug: 4.3.4 + eslint: 8.51.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color + dev: true /@typescript-eslint/parser@5.55.0(eslint@8.49.0)(typescript@5.2.2): resolution: @@ -2573,6 +2669,29 @@ packages: typescript: 4.5.5 transitivePeerDependencies: - supports-color + dev: false + + /@typescript-eslint/type-utils@5.10.2(eslint@8.51.0)(typescript@4.5.5): + resolution: + { + integrity: sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: "*" + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + dependencies: + "@typescript-eslint/utils": 5.10.2(eslint@8.51.0)(typescript@4.5.5) + debug: 4.3.4 + eslint: 8.51.0 + tsutils: 3.21.0(typescript@4.5.5) + typescript: 4.5.5 + transitivePeerDependencies: + - supports-color + dev: true /@typescript-eslint/type-utils@5.55.0(eslint@8.49.0)(typescript@5.2.2): resolution: @@ -2663,6 +2782,7 @@ packages: typescript: 5.2.2 transitivePeerDependencies: - supports-color + dev: true /@typescript-eslint/typescript-estree@5.55.0(typescript@5.2.2): resolution: @@ -2729,6 +2849,28 @@ packages: transitivePeerDependencies: - supports-color - typescript + dev: false + + /@typescript-eslint/utils@5.10.2(eslint@8.51.0)(typescript@4.5.5): + resolution: + { + integrity: sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + "@types/json-schema": 7.0.12 + "@typescript-eslint/scope-manager": 5.10.2 + "@typescript-eslint/types": 5.10.2 + "@typescript-eslint/typescript-estree": 5.10.2(typescript@4.5.5) + eslint: 8.51.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0(eslint@8.51.0) + transitivePeerDependencies: + - supports-color + - typescript + dev: true /@typescript-eslint/utils@5.55.0(eslint@8.49.0)(typescript@5.2.2): resolution: @@ -2774,6 +2916,30 @@ packages: transitivePeerDependencies: - supports-color - typescript + dev: false + + /@typescript-eslint/utils@5.62.0(eslint@8.51.0)(typescript@4.5.5): + resolution: + { + integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + "@eslint-community/eslint-utils": 4.4.0(eslint@8.51.0) + "@types/json-schema": 7.0.12 + "@types/semver": 7.5.1 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0(typescript@4.5.5) + eslint: 8.51.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true /@typescript-eslint/visitor-keys@5.10.2: resolution: @@ -2805,32 +2971,32 @@ packages: "@typescript-eslint/types": 5.62.0 eslint-visitor-keys: 3.4.3 - /@vitest/expect@0.34.5: + /@vitest/expect@0.34.6: resolution: { - integrity: sha512-/3RBIV9XEH+nRpRMqDJBufKIOQaYUH2X6bt0rKSCW0MfKhXFLYsR5ivHifeajRSTsln0FwJbitxLKHSQz/Xwkw==, + integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==, } dependencies: - "@vitest/spy": 0.34.5 - "@vitest/utils": 0.34.5 - chai: 4.3.8 + "@vitest/spy": 0.34.6 + "@vitest/utils": 0.34.6 + chai: 4.3.10 dev: true - /@vitest/runner@0.34.5: + /@vitest/runner@0.34.6: resolution: { - integrity: sha512-RDEE3ViVvl7jFSCbnBRyYuu23XxmvRTSZWW6W4M7eC5dOsK75d5LIf6uhE5Fqf809DQ1+9ICZZNxhIolWHU4og==, + integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==, } dependencies: - "@vitest/utils": 0.34.5 + "@vitest/utils": 0.34.6 p-limit: 4.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@0.34.5: + /@vitest/snapshot@0.34.6: resolution: { - integrity: sha512-+ikwSbhu6z2yOdtKmk/aeoDZ9QPm2g/ZO5rXT58RR9Vmu/kB2MamyDSx77dctqdZfP3Diqv4mbc/yw2kPT8rmA==, + integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==, } dependencies: magic-string: 0.30.3 @@ -2838,19 +3004,19 @@ packages: pretty-format: 29.7.0 dev: true - /@vitest/spy@0.34.5: + /@vitest/spy@0.34.6: resolution: { - integrity: sha512-epsicsfhvBjRjCMOC/3k00mP/TBGQy8/P0DxOFiWyLt55gnZ99dqCfCiAsKO17BWVjn4eZRIjKvcqNmSz8gvmg==, + integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==, } dependencies: tinyspy: 2.1.1 dev: true - /@vitest/utils@0.34.5: + /@vitest/utils@0.34.6: resolution: { - integrity: sha512-ur6CmmYQoeHMwmGb0v+qwkwN3yopZuZyf4xt1DBBSGBed8Hf9Gmbm/5dEWqgpLPdRx6Av6jcWXrjcKfkTzg/pw==, + integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==, } dependencies: diff-sequences: 29.6.3 @@ -3002,17 +3168,6 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv@8.12.0: - resolution: - { - integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, - } - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - /ansi-align@3.0.1: resolution: { @@ -3082,6 +3237,13 @@ packages: } engines: { node: ">=12" } + /any-promise@1.3.0: + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } + dev: false + /anymatch@3.1.3: resolution: { @@ -3238,13 +3400,6 @@ packages: integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==, } - /astral-regex@2.0.0: - resolution: - { - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, - } - engines: { node: ">=8" } - /astring@1.8.6: resolution: { @@ -3253,18 +3408,18 @@ packages: hasBin: true dev: false - /astro@3.1.1(@types/node@18.17.15): + /astro@3.2.3(@types/node@18.17.15): resolution: { - integrity: sha512-KLtzCcLiQEsoWHJO0vQ5QZ/9/80P3cUuBeIkl87YezRkzs3Am0kuzfeGLumb6OOcrR2W0AZGlVlS0ub+q/yiaA==, + integrity: sha512-1epnxQhTbfzgdmLP1yu51E8zjIOKYxZyA8hMTD4S2E+F5gMp/D81H4hekPbbq89GDxNJiHDRNZDHtS5vrU5E5w==, } engines: { node: ">=18.14.1", npm: ">=6.14.0" } hasBin: true dependencies: "@astrojs/compiler": 2.1.0 - "@astrojs/internal-helpers": 0.2.0 - "@astrojs/markdown-remark": 3.2.0(astro@3.1.1) - "@astrojs/telemetry": 3.0.1 + "@astrojs/internal-helpers": 0.2.1 + "@astrojs/markdown-remark": 3.2.1(astro@3.2.3) + "@astrojs/telemetry": 3.0.3 "@babel/core": 7.22.17 "@babel/generator": 7.22.15 "@babel/parser": 7.22.16 @@ -3283,7 +3438,7 @@ packages: devalue: 4.3.2 diff: 5.1.0 es-module-lexer: 1.3.1 - esbuild: 0.19.3 + esbuild: 0.19.4 estree-walker: 3.0.3 execa: 8.0.1 fast-glob: 3.3.1 @@ -3309,7 +3464,6 @@ packages: string-width: 6.1.0 strip-ansi: 7.1.0 tsconfig-resolver: 3.0.1 - undici: 5.24.0 unist-util-visit: 4.1.2 vfile: 5.3.7 vite: 4.4.9(@types/node@18.17.15) @@ -3329,6 +3483,25 @@ packages: - supports-color - terser + /autoprefixer@10.4.16(postcss@8.4.29): + resolution: + { + integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==, + } + engines: { node: ^10 || ^12 || >=14 } + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.10 + caniuse-lite: 1.0.30001540 + fraction.js: 4.3.6 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.29 + postcss-value-parser: 4.2.0 + dev: false + /available-typed-arrays@1.0.5: resolution: { @@ -3336,10 +3509,10 @@ packages: } engines: { node: ">= 0.4" } - /aws-cdk-lib@2.96.2(constructs@10.2.70): + /aws-cdk-lib@2.100.0(constructs@10.3.0): resolution: { - integrity: sha512-wDAdPUfNlteLQKrapd5c7hNYHWPzHmFfuMSrddFCajjoscsnd0LeUxM2yAzwJV7vLNp00q2SgUZqRQHcN98dmg==, + integrity: sha512-oWDPcbdqD69wDIUvcGdbDxmKcDfkCg515wf8JkiQLnhAI/AFyKAVTEWhbSUi00lvJQNUjX8Mal2lbKlCRA4hjQ==, } engines: { node: ">= 14.15.0" } peerDependencies: @@ -3348,17 +3521,7 @@ packages: "@aws-cdk/asset-awscli-v1": 2.2.200 "@aws-cdk/asset-kubectl-v20": 2.1.2 "@aws-cdk/asset-node-proxy-agent-v6": 2.0.1 - "@balena/dockerignore": 1.0.2 - case: 1.6.3 - constructs: 10.2.70 - fs-extra: 11.1.1 - ignore: 5.2.4 - jsonschema: 1.4.1 - minimatch: 3.1.2 - punycode: 2.3.0 - semver: 7.5.4 - table: 6.8.1 - yaml: 1.10.2 + constructs: 10.3.0 bundledDependencies: - "@balena/dockerignore" - case @@ -3371,10 +3534,10 @@ packages: - table - yaml - /aws-cdk@2.96.2: + /aws-cdk@2.100.0: resolution: { - integrity: sha512-13ERpPV99OFAD75PLOtl0rRMXTWn6bCrmUPwYKkLwIMkj2xWCBiwo2Y9Qg+UzEszm5NMHA1N4ichSvuZ0mt2IQ==, + integrity: sha512-Gt/4wPuEiBYw2tl0+cN0EbLxxJEvltcJxSQAcVHgNbqvDj49KUJ/oCbZ335dF0gK/hrVVb70xfNiYbBSPOsmvg==, } engines: { node: ">= 14.15.0" } hasBin: true @@ -3598,7 +3761,7 @@ packages: engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true dependencies: - caniuse-lite: 1.0.30001534 + caniuse-lite: 1.0.30001540 electron-to-chromium: 1.4.519 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) @@ -3657,6 +3820,7 @@ packages: engines: { node: ">=10.16.0" } dependencies: streamsearch: 1.1.0 + dev: false /cac@6.7.14: resolution: @@ -3682,6 +3846,14 @@ packages: } engines: { node: ">=6" } + /camelcase-css@2.0.1: + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, + } + engines: { node: ">= 6" } + dev: false + /camelcase-keys@6.2.2: resolution: { @@ -3709,18 +3881,11 @@ packages: } engines: { node: ">=14.16" } - /caniuse-lite@1.0.30001534: - resolution: - { - integrity: sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==, - } - - /case@1.6.3: + /caniuse-lite@1.0.30001540: resolution: { - integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==, + integrity: sha512-9JL38jscuTJBTcuETxm8QLsFr/F6v0CYYTEU6r5+qSM98P2Q0Hmu0eG1dTG5GBUmywU3UlcVOUSIJYY47rdFSw==, } - engines: { node: ">= 0.8.0" } /ccount@2.0.1: resolution: @@ -3728,17 +3893,17 @@ packages: integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, } - /chai@4.3.8: + /chai@4.3.10: resolution: { - integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==, + integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==, } engines: { node: ">=4" } dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 + get-func-name: 2.0.2 loupe: 2.3.6 pathval: 1.1.1 type-detect: 4.0.8 @@ -3804,11 +3969,13 @@ packages: } dev: false - /check-error@1.0.2: + /check-error@1.0.3: resolution: { - integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==, + integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==, } + dependencies: + get-func-name: 2.0.2 dev: true /chokidar@3.5.3: @@ -3958,6 +4125,13 @@ packages: color-convert: 2.0.1 color-string: 1.9.1 + /colord@2.9.3: + resolution: + { + integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, + } + dev: false + /comma-separated-tokens@2.0.3: resolution: { @@ -3979,7 +4153,15 @@ packages: } dev: true - /comment-parser@1.4.0: + /commander@4.1.1: + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: ">= 6" } + dev: false + + /comment-parser@1.4.0: resolution: { integrity: sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw==, @@ -4002,10 +4184,10 @@ packages: integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, } - /constructs@10.2.70: + /constructs@10.3.0: resolution: { - integrity: sha512-z6zr1E8K/9tzJbCQzY0UGX0/oVKPFKu9C/mzEnghCG6TAJINnvlq0CMKm63XqqeMleadZYm5T3sZGJKcxJS/Pg==, + integrity: sha512-vbK8i3rIb/xwZxSpTjz3SagHn1qq9BChLEfy5Hf6fB3/2eFbrwt2n9kHwQcS0CPTRBesreeAcsJfMq2229FnbQ==, } engines: { node: ">= 16.14.0" } @@ -4084,6 +4266,25 @@ packages: } dev: false + /css-selector-tokenizer@0.8.0: + resolution: + { + integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==, + } + dependencies: + cssesc: 3.0.0 + fastparse: 1.1.2 + dev: false + + /cssesc@3.0.0: + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: ">=4" } + hasBin: true + dev: false + /csv-generate@3.4.3: resolution: { @@ -4118,6 +4319,22 @@ packages: stream-transform: 2.1.3 dev: false + /daisyui@3.9.2: + resolution: + { + integrity: sha512-yJZ1QjHUaL+r9BkquTdzNHb7KIgAJVFh0zbOXql2Wu0r7zx5qZNLxclhjN0WLoIpY+o2h/8lqXg7ijj8oTigOw==, + } + engines: { node: ">=16.9.0" } + dependencies: + colord: 2.9.3 + css-selector-tokenizer: 0.8.0 + postcss: 8.4.29 + postcss-js: 4.0.1(postcss@8.4.29) + tailwindcss: 3.3.3 + transitivePeerDependencies: + - ts-node + dev: false + /damerau-levenshtein@1.0.8: resolution: { @@ -4337,6 +4554,13 @@ packages: integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==, } + /didyoumean@1.2.2: + resolution: + { + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, + } + dev: false + /diff-sequences@29.6.3: resolution: { @@ -4617,37 +4841,37 @@ packages: "@esbuild/win32-ia32": 0.18.20 "@esbuild/win32-x64": 0.18.20 - /esbuild@0.19.3: + /esbuild@0.19.4: resolution: { - integrity: sha512-UlJ1qUUA2jL2nNib1JTSkifQTcYTroFqRjwCFW4QYEKEsixXD5Tik9xML7zh2gTxkYTBKGHNH9y7txMwVyPbjw==, + integrity: sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==, } engines: { node: ">=12" } hasBin: true requiresBuild: true optionalDependencies: - "@esbuild/android-arm": 0.19.3 - "@esbuild/android-arm64": 0.19.3 - "@esbuild/android-x64": 0.19.3 - "@esbuild/darwin-arm64": 0.19.3 - "@esbuild/darwin-x64": 0.19.3 - "@esbuild/freebsd-arm64": 0.19.3 - "@esbuild/freebsd-x64": 0.19.3 - "@esbuild/linux-arm": 0.19.3 - "@esbuild/linux-arm64": 0.19.3 - "@esbuild/linux-ia32": 0.19.3 - "@esbuild/linux-loong64": 0.19.3 - "@esbuild/linux-mips64el": 0.19.3 - "@esbuild/linux-ppc64": 0.19.3 - "@esbuild/linux-riscv64": 0.19.3 - "@esbuild/linux-s390x": 0.19.3 - "@esbuild/linux-x64": 0.19.3 - "@esbuild/netbsd-x64": 0.19.3 - "@esbuild/openbsd-x64": 0.19.3 - "@esbuild/sunos-x64": 0.19.3 - "@esbuild/win32-arm64": 0.19.3 - "@esbuild/win32-ia32": 0.19.3 - "@esbuild/win32-x64": 0.19.3 + "@esbuild/android-arm": 0.19.4 + "@esbuild/android-arm64": 0.19.4 + "@esbuild/android-x64": 0.19.4 + "@esbuild/darwin-arm64": 0.19.4 + "@esbuild/darwin-x64": 0.19.4 + "@esbuild/freebsd-arm64": 0.19.4 + "@esbuild/freebsd-x64": 0.19.4 + "@esbuild/linux-arm": 0.19.4 + "@esbuild/linux-arm64": 0.19.4 + "@esbuild/linux-ia32": 0.19.4 + "@esbuild/linux-loong64": 0.19.4 + "@esbuild/linux-mips64el": 0.19.4 + "@esbuild/linux-ppc64": 0.19.4 + "@esbuild/linux-riscv64": 0.19.4 + "@esbuild/linux-s390x": 0.19.4 + "@esbuild/linux-x64": 0.19.4 + "@esbuild/netbsd-x64": 0.19.4 + "@esbuild/openbsd-x64": 0.19.4 + "@esbuild/sunos-x64": 0.19.4 + "@esbuild/win32-arm64": 0.19.4 + "@esbuild/win32-ia32": 0.19.4 + "@esbuild/win32-x64": 0.19.4 /escalade@3.1.1: resolution: @@ -4692,14 +4916,14 @@ packages: "@next/eslint-plugin-next": 12.0.10 "@rushstack/eslint-patch": 1.1.0 "@typescript-eslint/eslint-plugin": 5.10.2(@typescript-eslint/parser@5.10.2)(eslint@8.49.0)(typescript@4.5.5) - "@typescript-eslint/parser": 5.10.2(eslint@8.49.0)(typescript@5.2.2) + "@typescript-eslint/parser": 5.10.2(eslint@8.49.0)(typescript@4.5.5) confusing-browser-globals: 1.0.11 eslint: 8.49.0 eslint-config-prettier: 8.3.0(eslint@8.49.0) eslint-import-resolver-typescript: 2.5.0(eslint-plugin-import@2.25.4)(eslint@8.49.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.49.0) eslint-plugin-get-off-my-lawn: 3.0.0(eslint@8.49.0) - eslint-plugin-import: 2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-import: 2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@2.5.0)(eslint@8.49.0) eslint-plugin-jest: 26.0.0(@typescript-eslint/eslint-plugin@5.10.2)(eslint@8.49.0)(typescript@4.5.5) eslint-plugin-jest-formatting: 3.1.0(eslint@8.49.0) eslint-plugin-jsonc: 2.1.0(eslint@8.49.0) @@ -4719,6 +4943,51 @@ packages: - eslint-import-resolver-webpack - jest - supports-color + dev: false + + /eslint-config-get-off-my-lawn@7.2.0(eslint@8.51.0): + resolution: + { + integrity: sha512-bKY9toOU0Skw0OyVHJmMNB+XBW7ZG6PHZUe70Eqp5WuEIRe7HibR7UBTkjehdN+BjJXdmf6blJlTd5SoNiZ7Fg==, + } + engines: { node: ">=12.20.0" } + peerDependencies: + eslint: ">=8.7.0" + dependencies: + "@babel/core": 7.17.0 + "@babel/eslint-parser": 7.17.0(@babel/core@7.17.0)(eslint@8.51.0) + "@babel/preset-react": 7.16.7(@babel/core@7.17.0) + "@next/eslint-plugin-next": 12.0.10 + "@rushstack/eslint-patch": 1.1.0 + "@typescript-eslint/eslint-plugin": 5.10.2(@typescript-eslint/parser@5.10.2)(eslint@8.51.0)(typescript@4.5.5) + "@typescript-eslint/parser": 5.10.2(eslint@8.51.0)(typescript@5.2.2) + confusing-browser-globals: 1.0.11 + eslint: 8.51.0 + eslint-config-prettier: 8.3.0(eslint@8.51.0) + eslint-import-resolver-typescript: 2.5.0(eslint-plugin-import@2.25.4)(eslint@8.51.0) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.51.0) + eslint-plugin-get-off-my-lawn: 3.0.0(eslint@8.51.0) + eslint-plugin-import: 2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.51.0) + eslint-plugin-jest: 26.0.0(@typescript-eslint/eslint-plugin@5.10.2)(eslint@8.51.0)(typescript@4.5.5) + eslint-plugin-jest-formatting: 3.1.0(eslint@8.51.0) + eslint-plugin-jsonc: 2.1.0(eslint@8.51.0) + eslint-plugin-jsx-a11y: 6.5.1(eslint@8.51.0) + eslint-plugin-node: 11.1.0(eslint@8.51.0) + eslint-plugin-objects: 1.1.1(eslint@8.51.0) + eslint-plugin-react: 7.28.0(eslint@8.51.0) + eslint-plugin-react-hooks: 4.3.0(eslint@8.51.0) + eslint-plugin-react-native: 4.0.0(eslint@8.51.0) + eslint-plugin-security: 1.4.0 + eslint-plugin-unicorn: 40.1.0(eslint@8.51.0) + fs-extra: 10.0.0 + merge-anything: 4.0.5 + semver: 7.3.5 + typescript: 4.5.5 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - jest + - supports-color + dev: true /eslint-config-prettier@8.3.0(eslint@8.49.0): resolution: @@ -4730,6 +4999,19 @@ packages: eslint: ">=7.0.0" dependencies: eslint: 8.49.0 + dev: false + + /eslint-config-prettier@8.3.0(eslint@8.51.0): + resolution: + { + integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==, + } + hasBin: true + peerDependencies: + eslint: ">=7.0.0" + dependencies: + eslint: 8.51.0 + dev: true /eslint-import-resolver-node@0.3.9: resolution: @@ -4755,13 +5037,35 @@ packages: dependencies: debug: 4.3.4 eslint: 8.49.0 - eslint-plugin-import: 2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-plugin-import: 2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@2.5.0)(eslint@8.49.0) glob: 7.2.3 is-glob: 4.0.3 resolve: 1.22.4 tsconfig-paths: 3.14.2 transitivePeerDependencies: - supports-color + dev: false + + /eslint-import-resolver-typescript@2.5.0(eslint-plugin-import@2.25.4)(eslint@8.51.0): + resolution: + { + integrity: sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ==, + } + engines: { node: ">=4" } + peerDependencies: + eslint: "*" + eslint-plugin-import: "*" + dependencies: + debug: 4.3.4 + eslint: 8.51.0 + eslint-plugin-import: 2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.51.0) + glob: 7.2.3 + is-glob: 4.0.3 + resolve: 1.22.4 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - supports-color + dev: true /eslint-import-resolver-typescript@3.5.3(eslint-plugin-import@2.27.5)(eslint@8.49.0): resolution: @@ -4811,7 +5115,7 @@ packages: - eslint-import-resolver-webpack - supports-color - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.5.0)(eslint@8.49.0): resolution: { integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, @@ -4835,13 +5139,47 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - "@typescript-eslint/parser": 5.10.2(eslint@8.49.0)(typescript@5.2.2) + "@typescript-eslint/parser": 5.10.2(eslint@8.49.0)(typescript@4.5.5) debug: 3.2.7 eslint: 8.49.0 eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 2.5.0(eslint-plugin-import@2.25.4)(eslint@8.49.0) + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.51.0): + resolution: + { + integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, + } + engines: { node: ">=4" } + peerDependencies: + "@typescript-eslint/parser": "*" + eslint: "*" + eslint-import-resolver-node: "*" + eslint-import-resolver-typescript: "*" + eslint-import-resolver-webpack: "*" + peerDependenciesMeta: + "@typescript-eslint/parser": + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + "@typescript-eslint/parser": 5.10.2(eslint@8.51.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.51.0 + eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@5.55.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0) transitivePeerDependencies: - supports-color + dev: true /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.55.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.5.3)(eslint@8.49.0): resolution: @@ -4920,6 +5258,21 @@ packages: eslint: 8.49.0 eslint-utils: 2.1.0 regexpp: 3.2.0 + dev: false + + /eslint-plugin-es@3.0.1(eslint@8.51.0): + resolution: + { + integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==, + } + engines: { node: ">=8.10.0" } + peerDependencies: + eslint: ">=4.19.1" + dependencies: + eslint: 8.51.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true /eslint-plugin-eslint-comments@3.2.0(eslint@8.49.0): resolution: @@ -4933,6 +5286,21 @@ packages: escape-string-regexp: 1.0.5 eslint: 8.49.0 ignore: 5.2.4 + dev: false + + /eslint-plugin-eslint-comments@3.2.0(eslint@8.51.0): + resolution: + { + integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==, + } + engines: { node: ">=6.5.0" } + peerDependencies: + eslint: ">=4.19.1" + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.51.0 + ignore: 5.2.4 + dev: true /eslint-plugin-get-off-my-lawn@3.0.0(eslint@8.49.0): resolution: @@ -4946,8 +5314,23 @@ packages: dot-prop: 6.0.1 eslint: 8.49.0 import-modules: 2.1.0 + dev: false - /eslint-plugin-import@2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0): + /eslint-plugin-get-off-my-lawn@3.0.0(eslint@8.51.0): + resolution: + { + integrity: sha512-U3dt1cHDHyjY0b6KsvPm/LI59oR95XhYiviCmPpWnk7hgKftfY4TXYlD3XNS7veLfdbQRnQLDK5SgTnntaR6NQ==, + } + engines: { node: ">=12.20.0" } + peerDependencies: + eslint: ">=7.29.0" + dependencies: + dot-prop: 6.0.1 + eslint: 8.51.0 + import-modules: 2.1.0 + dev: true + + /eslint-plugin-import@2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@2.5.0)(eslint@8.49.0): resolution: { integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==, @@ -4960,14 +5343,14 @@ packages: "@typescript-eslint/parser": optional: true dependencies: - "@typescript-eslint/parser": 5.10.2(eslint@8.49.0)(typescript@5.2.2) + "@typescript-eslint/parser": 5.10.2(eslint@8.49.0)(typescript@4.5.5) array-includes: 3.1.7 array.prototype.flat: 1.3.2 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.49.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.49.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@2.5.0)(eslint@8.49.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -4979,6 +5362,41 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: false + + /eslint-plugin-import@2.25.4(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-typescript@3.6.0)(eslint@8.51.0): + resolution: + { + integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==, + } + engines: { node: ">=4" } + peerDependencies: + "@typescript-eslint/parser": "*" + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + "@typescript-eslint/parser": + optional: true + dependencies: + "@typescript-eslint/parser": 5.10.2(eslint@8.51.0)(typescript@5.2.2) + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.51.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.10.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.51.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.7 + resolve: 1.22.4 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.55.0)(eslint-import-resolver-typescript@3.5.3)(eslint@8.49.0): resolution: @@ -5063,6 +5481,19 @@ packages: eslint: ">=0.8.0" dependencies: eslint: 8.49.0 + dev: false + + /eslint-plugin-jest-formatting@3.1.0(eslint@8.51.0): + resolution: + { + integrity: sha512-XyysraZ1JSgGbLSDxjj5HzKKh0glgWf+7CkqxbTqb7zEhW7X2WHo5SBQ8cGhnszKN+2Lj3/oevBlHNbHezoc/A==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ">=0.8.0" + dependencies: + eslint: 8.51.0 + dev: true /eslint-plugin-jest@26.0.0(@typescript-eslint/eslint-plugin@5.10.2)(eslint@8.49.0)(typescript@4.5.5): resolution: @@ -5086,6 +5517,31 @@ packages: transitivePeerDependencies: - supports-color - typescript + dev: false + + /eslint-plugin-jest@26.0.0(@typescript-eslint/eslint-plugin@5.10.2)(eslint@8.51.0)(typescript@4.5.5): + resolution: + { + integrity: sha512-Fvs0YgJ/nw9FTrnqTuMGVrkozkd07jkQzWm0ajqyHlfcsdkxGfAuv30fgfWHOnHiCr9+1YQ365CcDX7vrNhqQg==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + peerDependencies: + "@typescript-eslint/eslint-plugin": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + jest: "*" + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + jest: + optional: true + dependencies: + "@typescript-eslint/eslint-plugin": 5.10.2(@typescript-eslint/parser@5.10.2)(eslint@8.51.0)(typescript@4.5.5) + "@typescript-eslint/utils": 5.62.0(eslint@8.51.0)(typescript@4.5.5) + eslint: 8.51.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true /eslint-plugin-jsonc@2.1.0(eslint@8.49.0): resolution: @@ -5100,6 +5556,22 @@ packages: eslint-utils: 3.0.0(eslint@8.49.0) jsonc-eslint-parser: 2.3.0 natural-compare: 1.4.0 + dev: false + + /eslint-plugin-jsonc@2.1.0(eslint@8.51.0): + resolution: + { + integrity: sha512-ueuFWW+u/hjU9+j5Ov+ZoWIukMlaWrB+MS/wfKYWqKkAVr7U9zYqUu4ZwLh2AHU3+FjvmS8+1Va5bP6J/ERVyg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + peerDependencies: + eslint: ">=6.0.0" + dependencies: + eslint: 8.51.0 + eslint-utils: 3.0.0(eslint@8.51.0) + jsonc-eslint-parser: 2.3.0 + natural-compare: 1.4.0 + dev: true /eslint-plugin-jsx-a11y@6.5.1(eslint@8.49.0): resolution: @@ -5123,6 +5595,31 @@ packages: jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 + dev: false + + /eslint-plugin-jsx-a11y@6.5.1(eslint@8.51.0): + resolution: + { + integrity: sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==, + } + engines: { node: ">=4.0" } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + "@babel/runtime": 7.22.15 + aria-query: 4.2.2 + array-includes: 3.1.7 + ast-types-flow: 0.0.7 + axe-core: 4.8.1 + axobject-query: 2.2.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.51.0 + has: 1.0.3 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + dev: true /eslint-plugin-node@11.1.0(eslint@8.49.0): resolution: @@ -5140,6 +5637,25 @@ packages: minimatch: 3.1.2 resolve: 1.22.4 semver: 6.3.1 + dev: false + + /eslint-plugin-node@11.1.0(eslint@8.51.0): + resolution: + { + integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==, + } + engines: { node: ">=8.10.0" } + peerDependencies: + eslint: ">=5.16.0" + dependencies: + eslint: 8.51.0 + eslint-plugin-es: 3.0.1(eslint@8.51.0) + eslint-utils: 2.1.0 + ignore: 5.2.4 + minimatch: 3.1.2 + resolve: 1.22.4 + semver: 6.3.1 + dev: true /eslint-plugin-objects@1.1.1(eslint@8.49.0): resolution: { integrity: sha1-EqZrUqo4PaoOEw06M+dQ/0Tqk5U= } @@ -5147,6 +5663,15 @@ packages: eslint: ">=0.8.1" dependencies: eslint: 8.49.0 + dev: false + + /eslint-plugin-objects@1.1.1(eslint@8.51.0): + resolution: { integrity: sha1-EqZrUqo4PaoOEw06M+dQ/0Tqk5U= } + peerDependencies: + eslint: ">=0.8.1" + dependencies: + eslint: 8.51.0 + dev: true /eslint-plugin-react-hooks@4.3.0(eslint@8.49.0): resolution: @@ -5158,6 +5683,19 @@ packages: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 8.49.0 + dev: false + + /eslint-plugin-react-hooks@4.3.0(eslint@8.51.0): + resolution: + { + integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==, + } + engines: { node: ">=10" } + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.51.0 + dev: true /eslint-plugin-react-native-globals@0.1.2: resolution: @@ -5178,6 +5716,22 @@ packages: eslint-plugin-react-native-globals: 0.1.2 transitivePeerDependencies: - supports-color + dev: false + + /eslint-plugin-react-native@4.0.0(eslint@8.51.0): + resolution: + { + integrity: sha512-kMmdxrSY7A1WgdqaGC+rY/28rh7kBGNBRsk48ovqkQmdg5j4K+DaFmegENDzMrdLkoufKGRNkKX6bgSwQTCAxQ==, + } + peerDependencies: + eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + "@babel/traverse": 7.22.17 + eslint: 8.51.0 + eslint-plugin-react-native-globals: 0.1.2 + transitivePeerDependencies: + - supports-color + dev: true /eslint-plugin-react@7.28.0(eslint@8.49.0): resolution: @@ -5203,6 +5757,33 @@ packages: resolve: 2.0.0-next.4 semver: 6.3.1 string.prototype.matchall: 4.0.10 + dev: false + + /eslint-plugin-react@7.28.0(eslint@8.51.0): + resolution: + { + integrity: sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==, + } + engines: { node: ">=4" } + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + doctrine: 2.1.0 + eslint: 8.51.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true /eslint-plugin-security@1.4.0: resolution: @@ -5236,6 +5817,33 @@ packages: safe-regex: 2.1.1 semver: 7.5.4 strip-indent: 3.0.0 + dev: false + + /eslint-plugin-unicorn@40.1.0(eslint@8.51.0): + resolution: + { + integrity: sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig==, + } + engines: { node: ">=12" } + peerDependencies: + eslint: ">=7.32.0" + dependencies: + "@babel/helper-validator-identifier": 7.22.15 + ci-info: 3.8.0 + clean-regexp: 1.0.0 + eslint: 8.51.0 + eslint-utils: 3.0.0(eslint@8.51.0) + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + safe-regex: 2.1.1 + semver: 7.5.4 + strip-indent: 3.0.0 + dev: true /eslint-scope@5.1.1: resolution: @@ -5264,9 +5872,22 @@ packages: } engines: { node: ">=6" } dependencies: - eslint-visitor-keys: 1.3.0 + eslint-visitor-keys: 1.3.0 + + /eslint-utils@3.0.0(eslint@8.49.0): + resolution: + { + integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, + } + engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 } + peerDependencies: + eslint: ">=5" + dependencies: + eslint: 8.49.0 + eslint-visitor-keys: 2.1.0 + dev: false - /eslint-utils@3.0.0(eslint@8.49.0): + /eslint-utils@3.0.0(eslint@8.51.0): resolution: { integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, @@ -5275,8 +5896,9 @@ packages: peerDependencies: eslint: ">=5" dependencies: - eslint: 8.49.0 + eslint: 8.51.0 eslint-visitor-keys: 2.1.0 + dev: true /eslint-visitor-keys@1.3.0: resolution: @@ -5347,6 +5969,54 @@ packages: transitivePeerDependencies: - supports-color + /eslint@8.51.0: + resolution: + { + integrity: sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + hasBin: true + dependencies: + "@eslint-community/eslint-utils": 4.4.0(eslint@8.51.0) + "@eslint-community/regexpp": 4.8.1 + "@eslint/eslintrc": 2.1.2 + "@eslint/js": 8.51.0 + "@humanwhocodes/config-array": 0.11.11 + "@humanwhocodes/module-importer": 1.0.1 + "@nodelib/fs.walk": 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.21.0 + graphemer: 1.4.0 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + /espree@9.6.1: resolution: { @@ -5600,6 +6270,13 @@ packages: integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, } + /fastparse@1.1.2: + resolution: + { + integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==, + } + dev: false + /fastq@1.15.0: resolution: { @@ -5691,6 +6368,13 @@ packages: signal-exit: 4.1.0 dev: true + /fraction.js@4.3.6: + resolution: + { + integrity: sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==, + } + dev: false + /fs-constants@1.0.0: resolution: { @@ -5708,17 +6392,6 @@ packages: jsonfile: 6.1.0 universalify: 2.0.0 - /fs-extra@11.1.1: - resolution: - { - integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, - } - engines: { node: ">=14.14" } - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - /fs-extra@7.0.1: resolution: { @@ -5814,10 +6487,10 @@ packages: } engines: { node: 6.* || 8.* || >= 10.* } - /get-func-name@2.0.0: + /get-func-name@2.0.2: resolution: { - integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, + integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==, } dev: true @@ -5936,21 +6609,35 @@ packages: } dev: true - /glob@10.3.4: + /glob@10.3.10: resolution: { - integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==, + integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, } engines: { node: ">=16 || 14 >=14.17" } hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.3.3 + jackspeak: 2.3.6 minimatch: 9.0.3 minipass: 7.0.3 path-scurry: 1.10.1 dev: true + /glob@7.1.6: + resolution: + { + integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, + } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + /glob@7.1.7: resolution: { @@ -6880,10 +7567,10 @@ packages: integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, } - /jackspeak@2.3.3: + /jackspeak@2.3.6: resolution: { - integrity: sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==, + integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, } engines: { node: ">=14" } dependencies: @@ -6892,6 +7579,14 @@ packages: "@pkgjs/parseargs": 0.11.0 dev: true + /jiti@1.20.0: + resolution: + { + integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==, + } + hasBin: true + dev: false + /jju@1.4.0: resolution: { @@ -6958,12 +7653,6 @@ packages: integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, } - /json-schema-traverse@1.0.0: - resolution: - { - integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, - } - /json-stable-stringify-without-jsonify@1.0.1: resolution: { @@ -7031,12 +7720,6 @@ packages: optionalDependencies: graceful-fs: 4.2.11 - /jsonschema@1.4.1: - resolution: - { - integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==, - } - /jsx-ast-utils@3.3.5: resolution: { @@ -7103,6 +7786,14 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 + /lilconfig@2.1.0: + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: ">=10" } + dev: false + /lines-and-columns@1.2.4: resolution: { @@ -7160,12 +7851,6 @@ packages: } dev: false - /lodash.truncate@4.4.2: - resolution: - { - integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, - } - /lodash@4.17.21: resolution: { @@ -7203,7 +7888,7 @@ packages: integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==, } dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: true /lru-cache@10.0.1: @@ -8171,6 +8856,17 @@ packages: } dev: false + /mz@2.7.0: + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: false + /nanoid@3.3.6: resolution: { @@ -8274,6 +8970,14 @@ packages: } engines: { node: ">=0.10.0" } + /normalize-range@0.1.2: + resolution: + { + integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, + } + engines: { node: ">=0.10.0" } + dev: false + /not@0.1.0: resolution: { @@ -8316,6 +9020,14 @@ packages: } engines: { node: ">=0.10.0" } + /object-hash@3.0.0: + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: ">= 6" } + dev: false + /object-inspect@1.12.3: resolution: { @@ -8730,6 +9442,14 @@ packages: } engines: { node: ">=8.6" } + /pify@2.3.0: + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: ">=0.10.0" } + dev: false + /pify@4.0.1: resolution: { @@ -8737,6 +9457,14 @@ packages: } engines: { node: ">=6" } + /pirates@4.0.6: + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: ">= 6" } + dev: false + /pkg-dir@4.2.0: resolution: { @@ -8764,6 +9492,85 @@ packages: } engines: { node: ">=4" } + /postcss-import@15.1.0(postcss@8.4.29): + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: ">=14.0.0" } + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.29 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.4 + dev: false + + /postcss-js@4.0.1(postcss@8.4.29): + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, + } + engines: { node: ^12 || ^14 || >= 16 } + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.29 + dev: false + + /postcss-load-config@4.0.1(postcss@8.4.29): + resolution: + { + integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==, + } + engines: { node: ">= 14" } + peerDependencies: + postcss: ">=8.0.9" + ts-node: ">=9.0.0" + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.29 + yaml: 2.3.2 + dev: false + + /postcss-nested@6.0.1(postcss@8.4.29): + resolution: + { + integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==, + } + engines: { node: ">=12.0" } + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.29 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-selector-parser@6.0.13: + resolution: + { + integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==, + } + engines: { node: ">=4" } + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + + /postcss-value-parser@4.2.0: + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } + dev: false + /postcss@8.4.29: resolution: { @@ -9112,6 +9919,15 @@ packages: } dev: true + /read-cache@1.0.0: + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } + dependencies: + pify: 2.3.0 + dev: false + /read-pkg-up@7.0.1: resolution: { @@ -9339,13 +10155,6 @@ packages: } engines: { node: ">=0.10.0" } - /require-from-string@2.0.2: - resolution: - { - integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, - } - engines: { node: ">=0.10.0" } - /require-main-filename@2.0.0: resolution: { @@ -9472,15 +10281,15 @@ packages: dependencies: glob: 7.2.3 - /rimraf@5.0.1: + /rimraf@5.0.5: resolution: { - integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==, + integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==, } engines: { node: ">=14" } hasBin: true dependencies: - glob: 10.3.4 + glob: 10.3.10 dev: true /rollup@3.29.1: @@ -9828,17 +10637,6 @@ packages: engines: { node: ">=12" } dev: false - /slice-ansi@4.0.0: - resolution: - { - integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, - } - engines: { node: ">=10" } - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - /smartwrap@2.0.2: resolution: { @@ -9993,6 +10791,7 @@ packages: integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, } engines: { node: ">=10.0.0" } + dev: false /streamx@2.15.1: resolution: @@ -10195,6 +10994,23 @@ packages: inline-style-parser: 0.1.1 dev: false + /sucrase@3.34.0: + resolution: + { + integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==, + } + engines: { node: ">=8" } + hasBin: true + dependencies: + "@jridgewell/gen-mapping": 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: false + /suf-log@2.5.3: resolution: { @@ -10240,18 +11056,39 @@ packages: tslib: 2.6.2 dev: false - /table@6.8.1: + /tailwindcss@3.3.3: resolution: { - integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==, + integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==, } - engines: { node: ">=10.0.0" } + engines: { node: ">=14.0.0" } + hasBin: true dependencies: - ajv: 8.12.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 + "@alloc/quick-lru": 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.20.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.29 + postcss-import: 15.1.0(postcss@8.4.29) + postcss-js: 4.0.1(postcss@8.4.29) + postcss-load-config: 4.0.1(postcss@8.4.29) + postcss-nested: 6.0.1(postcss@8.4.29) + postcss-selector-parser: 6.0.13 + resolve: 1.22.4 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + dev: false /tapable@2.2.1: resolution: @@ -10318,6 +11155,25 @@ packages: integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, } + /thenify-all@1.6.0: + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: ">=0.8" } + dependencies: + thenify: 3.3.1 + dev: false + + /thenify@3.3.1: + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } + dependencies: + any-promise: 1.3.0 + dev: false + /tinybench@2.5.1: resolution: { @@ -10402,6 +11258,13 @@ packages: integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==, } + /ts-interface-checker@0.1.13: + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } + dev: false + /ts-node@10.9.1(@types/node@18.17.15)(typescript@5.2.2): resolution: { @@ -10765,6 +11628,7 @@ packages: engines: { node: ">=14.0" } dependencies: busboy: 1.6.0 + dev: false /unherit@3.0.1: resolution: @@ -11048,10 +11912,10 @@ packages: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 - /vite-node@0.34.5(@types/node@18.17.15): + /vite-node@0.34.6(@types/node@18.17.15): resolution: { - integrity: sha512-RNZ+DwbCvDoI5CbCSQSyRyzDTfFvFauvMs6Yq4ObJROKlIKuat1KgSX/Ako5rlDMfVCyMcpMRMTkJBxd6z8YRA==, + integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==, } engines: { node: ">=v14.18.0" } hasBin: true @@ -11124,10 +11988,10 @@ packages: dependencies: vite: 4.4.9(@types/node@18.17.15) - /vitest@0.34.5: + /vitest@0.34.6: resolution: { - integrity: sha512-CPI68mmnr2DThSB3frSuE5RLm9wo5wU4fbDrDwWQQB1CWgq9jQVoQwnQSzYAjdoBOPoH2UtXpOgHVge/uScfZg==, + integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==, } engines: { node: ">=v14.18.0" } hasBin: true @@ -11161,15 +12025,15 @@ packages: "@types/chai": 4.3.6 "@types/chai-subset": 1.3.3 "@types/node": 18.17.15 - "@vitest/expect": 0.34.5 - "@vitest/runner": 0.34.5 - "@vitest/snapshot": 0.34.5 - "@vitest/spy": 0.34.5 - "@vitest/utils": 0.34.5 + "@vitest/expect": 0.34.6 + "@vitest/runner": 0.34.6 + "@vitest/snapshot": 0.34.6 + "@vitest/spy": 0.34.6 + "@vitest/utils": 0.34.6 acorn: 8.10.0 acorn-walk: 8.2.0 cac: 6.7.14 - chai: 4.3.8 + chai: 4.3.10 debug: 4.3.4 local-pkg: 0.4.3 magic-string: 0.30.3 @@ -11180,7 +12044,7 @@ packages: tinybench: 2.5.1 tinypool: 0.7.0 vite: 4.4.9(@types/node@18.17.15) - vite-node: 0.34.5(@types/node@18.17.15) + vite-node: 0.34.6(@types/node@18.17.15) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -11642,12 +12506,13 @@ packages: integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, } - /yaml@1.10.2: + /yaml@2.3.2: resolution: { - integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, + integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==, } - engines: { node: ">= 6" } + engines: { node: ">= 14" } + dev: false /yargs-parser@18.1.3: resolution: diff --git a/scripts/package.json b/scripts/package.json index 3acd194..35bd8fc 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -30,12 +30,12 @@ "dependencies": { "commander": "^11.0.0", "cosmiconfig": "^8.3.6", - "esbuild": "^0.19.3", + "esbuild": "^0.19.4", "globby": "^13.2.2" }, "devDependencies": { "@types/node": "^18.17.6", - "eslint": "^8.49.0", + "eslint": "^8.51.0", "prettier": "^3.0.3", "ts-node": "^10.9.1", "typescript": "^5.2.2" @@ -44,6 +44,6 @@ "typescript": "^5.2.2" }, "engines": { - "node": "18.x" + "node": "18.x || 20.x" } } diff --git a/turbo.json b/turbo.json index 2f63139..1dc9d1a 100644 --- a/turbo.json +++ b/turbo.json @@ -2,6 +2,7 @@ "$schema": "https://turbo.build/schema.json", "pipeline": { "build": { + "cache": false, "dependsOn": ["^build"], "outputs": ["dist/**", "cdk.out/**"] },