diff --git a/apps/wing/package.json b/apps/wing/package.json index d8b76d6f86a..ab264dfdcce 100644 --- a/apps/wing/package.json +++ b/apps/wing/package.json @@ -21,7 +21,7 @@ }, "scripts": { "build": "tsc && pnpm copy-root-readme", - "eslint": "eslint --fix --ext .ts src", + "eslint": "eslint --ext .ts src", "compile": "tsc", "copy-root-readme": "cp ../../README.md ./README.md && pnpm copy-root-assets", "copy-root-assets": "cp ../../logo/demo.gif ./logo/demo.gif", @@ -41,7 +41,6 @@ "commander": "^10.0.1", "compare-versions": "^5.0.3", "debug": "^4.3.4", - "glob": "^10.3.10", "nanoid": "^3.3.6", "open": "^8.4.2", "ora": "^5.4.1", diff --git a/apps/wing/src/cli.ts b/apps/wing/src/cli.ts index 4a21c8e7dde..c56db763bfa 100644 --- a/apps/wing/src/cli.ts +++ b/apps/wing/src/cli.ts @@ -5,6 +5,7 @@ import { collectCommandAnalytics } from "./analytics/collect"; import { optionallyDisplayDisclaimer } from "./analytics/disclaimer"; import { exportAnalytics } from "./analytics/export"; import { currentPackage } from "./util"; + export const PACKAGE_VERSION = currentPackage.version; let analyticsExportFile: Promise; @@ -132,7 +133,7 @@ async function main() { program .command("compile") .description("Compiles a Wing program") - .argument("[entrypoint]", "program .w entrypoint") + .argument("", "program .w entrypoint") .addOption( new Option("-t, --target ", "Target platform") .choices(["tf-aws", "tf-azure", "tf-gcp", "sim", "awscdk"]) @@ -149,7 +150,7 @@ async function main() { .description( "Compiles a Wing program and runs all functions with the word 'test' or start with 'test:' in their resource identifiers" ) - .argument("[entrypoint...]", "all files to test (globs are supported)", ["*.test.w"]) + .argument("", "all entrypoints to test") .addOption( new Option("-t, --target ", "Target platform") .choices(["tf-aws", "tf-azure", "tf-gcp", "sim", "awscdk"]) diff --git a/apps/wing/src/commands/compile.test.ts b/apps/wing/src/commands/compile.test.ts index b136b1fe106..8c43647fa51 100644 --- a/apps/wing/src/commands/compile.test.ts +++ b/apps/wing/src/commands/compile.test.ts @@ -1,6 +1,4 @@ -import { writeFileSync } from "fs"; -import { readdir, stat, writeFile, mkdtemp } from "fs/promises"; -import { tmpdir } from "os"; +import { readdir, stat, writeFile } from "fs/promises"; import { join, resolve } from "path"; import { Target } from "@winglang/compiler"; import { describe, test, expect } from "vitest"; @@ -42,37 +40,6 @@ describe( expect(files).toEqual([".wing", "connections.json", "simulator.json", "tree.json"]); }); - test("should be able to compile to default target sim", async () => { - const outDir = await compile(exampleFilePath, { - targetDir: `${await generateTmpDir()}/target`, - }); - - const stats = await stat(outDir); - expect(stats.isDirectory()).toBeTruthy(); - const files = (await readdir(outDir)).sort(); - expect(files.length).toBeGreaterThan(0); - expect(files).toEqual([".wing", "connections.json", "simulator.json", "tree.json"]); - }); - - test("should be able to compile the only entrypoint file in current directory", async () => { - const outDir = await mkdtemp(join(tmpdir(), "-wing-compile-test")); - const prevdir = process.cwd(); - - try { - process.chdir(outDir); - writeFileSync("main.w", "bring cloud;"); - await compile(); - - const stats = await stat(outDir); - expect(stats.isDirectory()).toBeTruthy(); - const files = (await readdir(outDir)).sort(); - expect(files.length).toBeGreaterThan(0); - expect(files).toEqual(["main.w", "target"]); - } finally { - process.chdir(prevdir); - } - }); - test("should error if a nonexistent file is compiled", async () => { return expect(compile("non-existent-file.w", { target: Target.SIM })).rejects.toThrowError( /Source file cannot be found/ diff --git a/apps/wing/src/commands/compile.ts b/apps/wing/src/commands/compile.ts index 6a14dff184b..28e5f91f98f 100644 --- a/apps/wing/src/commands/compile.ts +++ b/apps/wing/src/commands/compile.ts @@ -5,7 +5,6 @@ import * as wingCompiler from "@winglang/compiler"; import chalk from "chalk"; import { CHARS_ASCII, emitDiagnostic, File, Label } from "codespan-wasm"; import debug from "debug"; -import { glob } from "glob"; // increase the stack trace limit to 50, useful for debugging Rust panics // (not setting the limit too high in case of infinite recursion) @@ -18,23 +17,19 @@ const log = debug("wing:compile"); * This is passed from Commander to the `compile` function. */ export interface CompileOptions { - readonly rootId?: string; + readonly target: wingCompiler.Target; readonly plugins?: string[]; + readonly rootId?: string; /** - * The target to compile to - * @default wingCompiler.Target.SIM + * Whether to run the compiler in `wing test` mode. This may create multiple + * copies of the application resources in order to run tests in parallel. */ - readonly target?: wingCompiler.Target; + readonly testing?: boolean; /** * The location to save the compilation output * @default "./target" */ readonly targetDir?: string; - /** - * Whether to run the compiler in `wing test` mode. This may create multiple - * copies of the application resources in order to run tests in parallel. - */ - readonly testing?: boolean; } /** @@ -43,22 +38,14 @@ export interface CompileOptions { * @param options Compile options. * @returns the output directory */ -export async function compile(entrypoint?: string, options?: CompileOptions): Promise { - if (!entrypoint) { - const wingFiles = await glob("{main,*.main}.w"); - if (wingFiles.length !== 1) { - throw new Error("Please specify which file you want to compile"); - } - entrypoint = wingFiles[0]; - } - +export async function compile(entrypoint: string, options: CompileOptions): Promise { const coloring = chalk.supportsColor ? chalk.supportsColor.hasBasic : false; try { return await wingCompiler.compile(entrypoint, { ...options, log, color: coloring, - target: options?.target || wingCompiler.Target.SIM, + targetDir: options.targetDir, }); } catch (error) { if (error instanceof wingCompiler.CompileError) { diff --git a/apps/wing/src/commands/run.test.ts b/apps/wing/src/commands/run.test.ts index 967b700109f..3a95e55c541 100644 --- a/apps/wing/src/commands/run.test.ts +++ b/apps/wing/src/commands/run.test.ts @@ -19,38 +19,17 @@ vi.mock("@wingconsole/app", () => { }; }); -test("wing it runs the only entrypoint file named main.w", async () => { +test("wing it runs the only .w file", async () => { const workdir = await mkdtemp(join(tmpdir(), "-wing-it-test")); const prevdir = process.cwd(); try { process.chdir(workdir); - writeFileSync("main.w", "bring cloud;"); - - await run(); - expect(createConsoleApp).toBeCalledWith({ - wingfile: resolve("main.w"), - requestedPort: 3000, - hostUtils: expect.anything(), - requireAcceptTerms: false, - }); - expect(open).toBeCalledWith("http://localhost:3000/"); - } finally { - process.chdir(prevdir); - } -}); - -test("wing it runs the only entrypoint file ending with .main.w", async () => { - const workdir = await mkdtemp(join(tmpdir(), "-wing-it-test")); - const prevdir = process.cwd(); - try { - process.chdir(workdir); - - writeFileSync("foo.main.w", "bring cloud;"); + writeFileSync("foo.w", "bring cloud;"); await run(); expect(createConsoleApp).toBeCalledWith({ - wingfile: resolve("foo.main.w"), + wingfile: resolve("foo.w"), requestedPort: 3000, hostUtils: expect.anything(), requireAcceptTerms: false, @@ -61,27 +40,14 @@ test("wing it runs the only entrypoint file ending with .main.w", async () => { } }); -test("wing it doesn't run the only entrypoint file ending with .test.w", async () => { - const workdir = await mkdtemp(join(tmpdir(), "-wing-it-test")); - const prevdir = process.cwd(); - try { - process.chdir(workdir); - - writeFileSync("foo.test.w", "bring cloud;"); - - await expect(run).rejects.toThrow("Please specify which file you want to run"); - } finally { - process.chdir(prevdir); - } -}); - -test("wing it throws error for a directory with a non-entrypoint file", async () => { +test("wing it with no file throws error for a directory with more than 1 .w file", async () => { const workdir = await mkdtemp(join(tmpdir(), "-wing-it-test")); const prevdir = process.cwd(); try { process.chdir(workdir); writeFileSync("foo.w", "bring cloud;"); + writeFileSync("bar.w", "bring cloud;"); await expect(run).rejects.toThrow("Please specify which file you want to run"); } finally { @@ -89,16 +55,22 @@ test("wing it throws error for a directory with a non-entrypoint file", async () } }); -test("wing it throws error for a directory with more than one entrypoint file", async () => { +test("wing it with a file runs", async () => { const workdir = await mkdtemp(join(tmpdir(), "-wing-it-test")); const prevdir = process.cwd(); try { process.chdir(workdir); - writeFileSync("main.w", "bring cloud;"); - writeFileSync("foo.main.w", "bring cloud;"); + writeFileSync("foo.w", "bring cloud;"); - await expect(run).rejects.toThrow("Please specify which file you want to run"); + await run("foo.w"); + expect(createConsoleApp).toBeCalledWith({ + wingfile: resolve("foo.w"), + requestedPort: 3000, + hostUtils: expect.anything(), + requireAcceptTerms: false, + }); + expect(open).toBeCalledWith("http://localhost:3000/"); } finally { process.chdir(prevdir); } @@ -107,7 +79,7 @@ test("wing it throws error for a directory with more than one entrypoint file", test("wing it with a nested file runs", async () => { const workdir = await mkdtemp(join(tmpdir(), "-wing-it-test")); const subdir = join(workdir, "subdir"); - const filePath = join(subdir, "foo.main.w"); + const filePath = join(subdir, "foo.w"); const prevdir = process.cwd(); try { process.chdir(workdir); @@ -134,9 +106,9 @@ test("wing it with an invalid file throws exception", async () => { try { process.chdir(workdir); - writeFileSync("foo.main.w", "bring cloud;"); + writeFileSync("foo.w", "bring cloud;"); - await expect(run("bar.main.w")).rejects.toThrow("bar.main.w doesn't exist"); + await expect(run("bar.w")).rejects.toThrow("bar.w doesn't exist"); } finally { process.chdir(prevdir); } @@ -148,11 +120,11 @@ test("wing it with a custom port runs", async () => { try { process.chdir(workdir); - writeFileSync("foo.main.w", "bring cloud;"); + writeFileSync("foo.w", "bring cloud;"); - await run("foo.main.w", { port: "5000" }); + await run("foo.w", { port: "5000" }); expect(createConsoleApp).toBeCalledWith({ - wingfile: resolve("foo.main.w"), + wingfile: resolve("foo.w"), requestedPort: 5000, hostUtils: expect.anything(), requireAcceptTerms: false, @@ -169,10 +141,10 @@ test("wing it throws when invalid port number is used", async () => { try { process.chdir(workdir); - writeFileSync("foo.main.w", "bring cloud;"); + writeFileSync("foo.w", "bring cloud;"); await expect(async () => { - await run("foo.main.w", { port: "not a number" }); + await run("foo.w", { port: "not a number" }); }).rejects.toThrowError('"not a number" is not a number'); } finally { process.chdir(prevdir); diff --git a/apps/wing/src/commands/run.ts b/apps/wing/src/commands/run.ts index 1100f13901c..60981a1e0b1 100644 --- a/apps/wing/src/commands/run.ts +++ b/apps/wing/src/commands/run.ts @@ -1,8 +1,7 @@ -import { existsSync } from "fs"; +import { readdirSync, existsSync } from "fs"; import { resolve } from "path"; import { createConsoleApp } from "@wingconsole/app"; import { debug } from "debug"; -import { glob } from "glob"; import open from "open"; import { parseNumericString } from "../util"; @@ -36,7 +35,7 @@ export async function run(entrypoint?: string, options?: RunOptions) { const openBrowser = options?.open ?? true; if (!entrypoint) { - const wingFiles = await glob("{main,*.main}.w"); + const wingFiles = readdirSync(".").filter((item) => item.endsWith(".w")); if (wingFiles.length !== 1) { throw new Error("Please specify which file you want to run"); } diff --git a/apps/wing/src/commands/test.ts b/apps/wing/src/commands/test.ts index c3854818d77..9418cbe5b51 100644 --- a/apps/wing/src/commands/test.ts +++ b/apps/wing/src/commands/test.ts @@ -6,7 +6,6 @@ import { Target } from "@winglang/compiler"; import { std, simulator } from "@winglang/sdk"; import chalk from "chalk"; import debug from "debug"; -import { glob } from "glob"; import { nanoid } from "nanoid"; import { compile, CompileOptions } from "./compile"; import { generateTmpDir, withSpinner } from "../util"; @@ -30,12 +29,6 @@ export interface TestOptions extends CompileOptions { } export async function test(entrypoints: string[], options: TestOptions): Promise { - const expandedEntrypoints = await glob(entrypoints); - - if (expandedEntrypoints.length === 0) { - throw new Error(`No matching files found in current directory. (${entrypoints.join(", ")})`); - } - const startTime = Date.now(); const results: { testName: string; results: std.TestResult[] }[] = []; const testFile = async (entrypoint: string) => { @@ -51,7 +44,7 @@ export async function test(entrypoints: string[], options: TestOptions): Promise }); } }; - await Promise.all(expandedEntrypoints.map(testFile)); + await Promise.all(entrypoints.map(testFile)); printResults(results, Date.now() - startTime); // if we have any failures, exit with 1 diff --git a/docs/docs/06-tools/01-cli.md b/docs/docs/06-tools/01-cli.md index c7c4b4b8010..393420c9a64 100644 --- a/docs/docs/06-tools/01-cli.md +++ b/docs/docs/06-tools/01-cli.md @@ -17,49 +17,43 @@ The CLI is distributed as an npm package which can be installed globally using: npm i -g winglang ``` -Usage: +The usage is: -```sh -$ wing [command] [options] +```bash +$ wing ``` -## Run: `wing run|it` +## Run: `wing run` / `wing it` You can use the `run` command (or `it`) when you want to interact with your Wing program in the [Wing Console](/docs/start-here/local). Usage: -```sh -$ wing run|it [entrypoint] +``` +$ wing run|it [ | ] ``` -`[entrypoint]` is a valid entrypoint for a Wing program. An entrypoint can be either source code or compiled. If it's source code, the entrypoint refers to a file named `main.w` or ending with `.main.w`/`.test.w`, whereas if it's compiled the entrypoint refers to a directory whose name ends with `.wsim`. - -:::note Default Entrypoint - -By default, `wing run|it` will look for exactly one file named `main.w` or ending with `.main.w` +The `run` command takes a single positional argument which can be one of: -::: +- `ENTRYPOINT.w` is an entrypoint for a Wing program (source code). In this case, Wing Console will + *watch for changes* and will automatically recompile your program when the source code change. + The entrypoint is optional if there's a single `.w` file in the working directory (in which case you + can just type `wing it` and it will run this file). +- `PROGRAM.wsim` is the output of `wing compile -t sim` ## Compile: `wing compile` You can use the `compile` command to compile a Wing program into a deployable artifact. -```sh -$ wing compile [entrypoint] --target +``` +$ wing compile --target ``` -`[entrypoint]` specifies the entrypoint file to compile. A file is considered a valid entrypoint if its name is `main.w` or if it ends with `.main.w`/`.test.w`. - -:::note Default Entrypoint - -By default, `wing compile` will look for exactly one file named `main.w` or ending with `.main.w` - -::: +The `ENTRYPOINT.w` specifies the entrypoint file to compile (e.g. `hello.w`). -The --target option specifies the target platform to compile for. The default target is `sim`. -The following targets are supported: +The `--target` option is **required**, and specifies the target platform to compile for. The +following targets are supported: * `sim` - [Wing Simulator](#sim-target) * `tf-aws` - Terraform/AWS @@ -72,13 +66,12 @@ The Wing program is going to be compiled for the Wing simulator (`.wsim`). Usage: ```sh -$ wing compile [entrypoint] --target sim +$ wing compile --target sim ENTRYPOINT.w ``` -The output will be found under `target/.wsim` and can be opened in two ways: +The output will be under `target/ENTRYPOINT.wsim` and can be opened in one two ways: -* Interactively through the [Wing Console](/docs/start-here/local) -* Using the `wing run|it target/.wsim` command through the Wing CLI. +* Interactively using [Wing Console](/docs/start-here/local) using `wing it target/hello.wsim`. ### `tf-aws` Target @@ -88,7 +81,7 @@ Compiles your program for Terraform and run on AWS. Usage: ```sh -$ wing compile [entrypoint] --target tf-aws +$ wing compile --target tf-aws ENTRYPOINT.w ``` The output includes both a Terraform configuration file (under `target/cdktf.out/stacks/root`) and @@ -102,11 +95,11 @@ You can deploy your stack to AWS using Terraform ([instructions](/docs/start-her Compiles your program for Terraform and run on Azure. -Usage: +For example: ```sh $ export AZURE_LOCATION="East US" -$ wing compile [entrypoint] --target tf-azure +$ wing compile --target tf-azure hello.w ``` The variable `AZURE_LOCATION` is required and indicates the [deployment @@ -121,12 +114,12 @@ Functions. Compiles your program for Terraform and run on Google Cloud Platform. -Usage: +For example: ```sh $ export GOOGLE_PROJECT_ID="my-project" $ export GOOGLE_STORAGE_LOCATION="US" -$ wing compile [entrypoint] --target tf-gcp +$ wing compile --target tf-gcp hello.w ``` The variable `GOOGLE_STORAGE_LOCATION` is required and indicates the [deployment @@ -146,10 +139,10 @@ Usage: ```sh $ export CDK_STACK_NAME="my-project" -$ wing compile [entrypoint] --target awscdk +$ wing compile --target awscdk app.w ``` -The output includes both a AWS-CDK configuration file (under `target/.awscdk`) and +The output includes both a AWS-CDK configuration file (under `target/.awscdk`) and JavaScript bundles that include inflight code that executes on compute platforms such as AWS Lambda. You can deploy your stack to AWS by installing the [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) and running: @@ -162,7 +155,7 @@ $ cdk deploy --app target/app.awscdk Additionally the `compile` command can be provided an optional list of plugins to use during the compilation process. ```sh -$ wing compile [entrypoint] --target tf-aws --plugins PLUGIN1 PLUGIN2 +$ wing compile --target tf-aws ENTRYPOINT.w --plugins PLUGIN1 PLUGIN2 ``` Each plugin can be an absolute paths or relative path to a JavaScript file. For more on how to create a plugin, see [Compiler Plugins](./compiler-plugins). @@ -174,18 +167,12 @@ The `wing test` command can be used to compile and execute tests in Wing applica Usage: ```sh -$ wing test [entrypoint...] +$ wing test ENTRYPOINT... ``` -`[entrypoint...]` specifies the entrypoint list of files that will be compiled and tested. A file is considered a valid entrypoint if its name ends with `.w`. - -For example ([test_bucket.test.w](https://github.com/winglang/wing/tree/main/examples/tests/valid/test_bucket.test.w)): - -:::note Default Entrypoint(s) - -It's possible to execute `wing test` without specifying any entrypoint, in which case the CLI looks for all files ending with `.test.w` in the current directory. If no files are found, the CLI throws an error. +This will compile each entrypoint, and for each entrypoint it will invoke all tests in the program. -::: +For example ([test_bucket.w](https://github.com/winglang/wing/tree/main/examples/tests/valid/test_bucket.w)): ```js bring cloud; @@ -207,9 +194,9 @@ test "get" { Now, if we run the following command: ```sh -$ wing test test_bucket.test.w -pass | test_bucket.test.w | root/test:get -pass | test_bucket.test.w | root/test:put +$ wing test test_bucket.w +pass | test_bucket.w | root/test:get +pass | test_bucket.w | root/test:put ``` We will see that both functions were invoked and that the tests passed. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 26629fe1bd2..4201fe258b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -300,9 +300,6 @@ importers: debug: specifier: ^4.3.4 version: 4.3.4 - glob: - specifier: ^10.3.10 - version: 10.3.10 nanoid: specifier: ^3.3.6 version: 3.3.6 @@ -488,7 +485,7 @@ importers: version: 4.0.4(vite@4.4.9) '@vitest/coverage-c8': specifier: ^0.31.4 - version: 0.31.4(vitest@0.32.4) + version: 0.31.4(vitest@0.34.5) '@wingconsole/eslint-plugin': specifier: workspace:^ version: link:../../tools/eslint-plugin @@ -1427,7 +1424,7 @@ importers: version: 9.8.1 octokit: specifier: ^3.1.0 - version: 3.1.1 + version: 3.1.0 tsx: specifier: ^3.12.8 version: 3.12.8 @@ -5092,6 +5089,7 @@ packages: strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -5731,65 +5729,65 @@ packages: - supports-color dev: true - /@octokit/app@14.0.1: - resolution: {integrity: sha512-4opdXcWBVhzd6FOxlaxDKXXqi9Vz2hsDSWQGNo49HbYFAX11UqMpksMjEdfvHy0x19Pse8Nvn+R6inNb/V398w==} + /@octokit/app@14.0.0: + resolution: {integrity: sha512-g/zDXttroZ9Se08shK0d0d/j0cgSA+h4WV7qGUevNEM0piNBkIlfb4Fm6bSwCNAZhNf72mBgERmYOoxicPkqdw==} engines: {node: '>= 18'} dependencies: - '@octokit/auth-app': 6.0.1 - '@octokit/auth-unauthenticated': 5.0.1 - '@octokit/core': 5.0.1 + '@octokit/auth-app': 6.0.0 + '@octokit/auth-unauthenticated': 5.0.0 + '@octokit/core': 5.0.0 '@octokit/oauth-app': 6.0.0 - '@octokit/plugin-paginate-rest': 9.0.0(@octokit/core@5.0.1) - '@octokit/types': 12.0.0 + '@octokit/plugin-paginate-rest': 8.0.0(@octokit/core@5.0.0) + '@octokit/types': 11.1.0 '@octokit/webhooks': 12.0.3 dev: true - /@octokit/auth-app@6.0.1: - resolution: {integrity: sha512-tjCD4nzQNZgmLH62+PSnTF6eGerisFgV4v6euhqJik6yWV96e1ZiiGj+NXIqbgnpjLmtnBqVUrNyGKu3DoGEGA==} + /@octokit/auth-app@6.0.0: + resolution: {integrity: sha512-OKct7Rukf3g9DjpzcpdacQsdmd6oPrJ7fZND22JkjzhDvfhttUOnmh+qPS4kHhaNNyTxqSThnfrUWvkqNLd1nw==} engines: {node: '>= 18'} dependencies: - '@octokit/auth-oauth-app': 7.0.1 - '@octokit/auth-oauth-user': 4.0.1 - '@octokit/request': 8.1.2 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.0.0 + '@octokit/auth-oauth-app': 7.0.0 + '@octokit/auth-oauth-user': 4.0.0 + '@octokit/request': 8.1.1 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 deprecation: 2.3.1 lru-cache: 10.0.1 universal-github-app-jwt: 1.1.1 universal-user-agent: 6.0.0 dev: true - /@octokit/auth-oauth-app@7.0.1: - resolution: {integrity: sha512-RE0KK0DCjCHXHlQBoubwlLijXEKfhMhKm9gO56xYvFmP1QTMb+vvwRPmQLLx0V+5AvV9N9I3lr1WyTzwL3rMDg==} + /@octokit/auth-oauth-app@7.0.0: + resolution: {integrity: sha512-8JvJEXGoEqrbzLwt3SwIUvkDd+1wrM8up0KawvDIElB8rbxPbvWppGO0SLKAWSJ0q8ILcVq+mWck6pDcZ3a9KA==} engines: {node: '>= 18'} dependencies: - '@octokit/auth-oauth-device': 6.0.1 - '@octokit/auth-oauth-user': 4.0.1 - '@octokit/request': 8.1.2 - '@octokit/types': 12.0.0 + '@octokit/auth-oauth-device': 6.0.0 + '@octokit/auth-oauth-user': 4.0.0 + '@octokit/request': 8.1.1 + '@octokit/types': 11.1.0 '@types/btoa-lite': 1.0.0 btoa-lite: 1.0.0 universal-user-agent: 6.0.0 dev: true - /@octokit/auth-oauth-device@6.0.1: - resolution: {integrity: sha512-yxU0rkL65QkjbqQedgVx3gmW7YM5fF+r5uaSj9tM/cQGVqloXcqP2xK90eTyYvl29arFVCW8Vz4H/t47mL0ELw==} + /@octokit/auth-oauth-device@6.0.0: + resolution: {integrity: sha512-Zgf/LKhwWk54rJaTGYVYtbKgUty+ouil6VQeRd+pCw7Gd0ECoSWaZuHK6uDGC/HtnWHjpSWFhzxPauDoHcNRtg==} engines: {node: '>= 18'} dependencies: '@octokit/oauth-methods': 4.0.0 - '@octokit/request': 8.1.2 - '@octokit/types': 12.0.0 + '@octokit/request': 8.1.1 + '@octokit/types': 11.1.0 universal-user-agent: 6.0.0 dev: true - /@octokit/auth-oauth-user@4.0.1: - resolution: {integrity: sha512-N94wWW09d0hleCnrO5wt5MxekatqEJ4zf+1vSe8MKMrhZ7gAXKFOKrDEZW2INltvBWJCyDUELgGRv8gfErH1Iw==} + /@octokit/auth-oauth-user@4.0.0: + resolution: {integrity: sha512-VOm5aIkVGHaOhIvsF/4YmSjoYDzzrKbbYkdSEO0KqHK7I8SlO3ZndSikQ1fBlNPUEH0ve2BOTxLrVvI1qBf9/Q==} engines: {node: '>= 18'} dependencies: - '@octokit/auth-oauth-device': 6.0.1 + '@octokit/auth-oauth-device': 6.0.0 '@octokit/oauth-methods': 4.0.0 - '@octokit/request': 8.1.2 - '@octokit/types': 12.0.0 + '@octokit/request': 8.1.1 + '@octokit/types': 11.1.0 btoa-lite: 1.0.0 universal-user-agent: 6.0.0 dev: true @@ -5807,12 +5805,12 @@ packages: engines: {node: '>= 18'} dev: true - /@octokit/auth-unauthenticated@5.0.1: - resolution: {integrity: sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==} + /@octokit/auth-unauthenticated@5.0.0: + resolution: {integrity: sha512-AjOI6FNB2dweJ85p6rf7D4EhE4y6VBcwYfX/7KJkR5Q9fD9ET6NABAjajUTSNFfCxmNIaQgISggZ3pkgwtTqsA==} engines: {node: '>= 18'} dependencies: - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.0.0 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 dev: true /@octokit/core@3.6.0: @@ -5831,15 +5829,15 @@ packages: dev: false optional: true - /@octokit/core@5.0.1: - resolution: {integrity: sha512-lyeeeZyESFo+ffI801SaBKmCfsvarO+dgV8/0gD8u1d87clbEdWsP5yC+dSj3zLhb2eIf5SJrn6vDz9AheETHw==} + /@octokit/core@5.0.0: + resolution: {integrity: sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==} engines: {node: '>= 18'} dependencies: '@octokit/auth-token': 4.0.0 - '@octokit/graphql': 7.0.2 - '@octokit/request': 8.1.2 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.0.0 + '@octokit/graphql': 7.0.1 + '@octokit/request': 8.1.1 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.0 dev: true @@ -5854,11 +5852,11 @@ packages: dev: false optional: true - /@octokit/endpoint@9.0.1: - resolution: {integrity: sha512-hRlOKAovtINHQPYHZlfyFwaM8OyetxeoC81lAkBy34uLb8exrZB50SQdeW3EROqiY9G9yxQTpp5OHTV54QD+vA==} + /@octokit/endpoint@9.0.0: + resolution: {integrity: sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.0.0 + '@octokit/types': 11.1.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 dev: true @@ -5875,12 +5873,12 @@ packages: dev: false optional: true - /@octokit/graphql@7.0.2: - resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} + /@octokit/graphql@7.0.1: + resolution: {integrity: sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==} engines: {node: '>= 18'} dependencies: - '@octokit/request': 8.1.2 - '@octokit/types': 12.0.0 + '@octokit/request': 8.1.1 + '@octokit/types': 11.1.0 universal-user-agent: 6.0.0 dev: true @@ -5888,10 +5886,10 @@ packages: resolution: {integrity: sha512-bNMkS+vJ6oz2hCyraT9ZfTpAQ8dZNqJJQVNaKjPLx4ue5RZiFdU1YWXguOPR8AaSHS+lKe+lR3abn2siGd+zow==} engines: {node: '>= 18'} dependencies: - '@octokit/auth-oauth-app': 7.0.1 - '@octokit/auth-oauth-user': 4.0.1 - '@octokit/auth-unauthenticated': 5.0.1 - '@octokit/core': 5.0.1 + '@octokit/auth-oauth-app': 7.0.0 + '@octokit/auth-oauth-user': 4.0.0 + '@octokit/auth-unauthenticated': 5.0.0 + '@octokit/core': 5.0.0 '@octokit/oauth-authorization-url': 6.0.2 '@octokit/oauth-methods': 4.0.0 '@types/aws-lambda': 8.10.119 @@ -5908,8 +5906,8 @@ packages: engines: {node: '>= 18'} dependencies: '@octokit/oauth-authorization-url': 6.0.2 - '@octokit/request': 8.1.2 - '@octokit/request-error': 5.0.1 + '@octokit/request': 8.1.1 + '@octokit/request-error': 5.0.0 '@octokit/types': 11.1.0 btoa-lite: 1.0.0 dev: true @@ -5920,21 +5918,17 @@ packages: dev: false optional: true - /@octokit/openapi-types@18.1.1: - resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} - dev: true - - /@octokit/openapi-types@19.0.0: - resolution: {integrity: sha512-PclQ6JGMTE9iUStpzMkwLCISFn/wDeRjkZFIKALpvJQNBGwDoYYi2fFvuHwssoQ1rXI5mfh6jgTgWuddeUzfWw==} + /@octokit/openapi-types@18.0.0: + resolution: {integrity: sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==} dev: true - /@octokit/plugin-paginate-graphql@4.0.0(@octokit/core@5.0.1): + /@octokit/plugin-paginate-graphql@4.0.0(@octokit/core@5.0.0): resolution: {integrity: sha512-7HcYW5tP7/Z6AETAPU14gp5H5KmCPT3hmJrS/5tO7HIgbwenYmgw4OY9Ma54FDySuxMwD+wsJlxtuGWwuZuItA==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: - '@octokit/core': 5.0.1 + '@octokit/core': 5.0.0 dev: true /@octokit/plugin-paginate-rest@2.21.3(@octokit/core@3.6.0): @@ -5948,14 +5942,14 @@ packages: dev: false optional: true - /@octokit/plugin-paginate-rest@9.0.0(@octokit/core@5.0.1): - resolution: {integrity: sha512-oIJzCpttmBTlEhBmRvb+b9rlnGpmFgDtZ0bB6nq39qIod6A5DP+7RkVLMOixIgRCYSHDTeayWqmiJ2SZ6xgfdw==} + /@octokit/plugin-paginate-rest@8.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-2xZ+baZWUg+qudVXnnvXz7qfrTmDeYPCzangBVq/1gXxii/OiS//4shJp9dnCCvj1x+JAm9ji1Egwm1BA47lPQ==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: - '@octokit/core': 5.0.1 - '@octokit/types': 12.0.0 + '@octokit/core': 5.0.0 + '@octokit/types': 11.1.0 dev: true /@octokit/plugin-request-log@1.0.4(@octokit/core@3.6.0): @@ -5968,16 +5962,6 @@ packages: dev: false optional: true - /@octokit/plugin-rest-endpoint-methods@10.0.0(@octokit/core@5.0.1): - resolution: {integrity: sha512-16VkwE2v6rXU+/gBsYC62M8lKWOphY5Lg4wpjYnVE9Zbu0J6IwiT5kILoj1YOB53XLmcJR+Nqp8DmifOPY4H3g==} - engines: {node: '>= 18'} - peerDependencies: - '@octokit/core': '>=5' - dependencies: - '@octokit/core': 5.0.1 - '@octokit/types': 12.0.0 - dev: true - /@octokit/plugin-rest-endpoint-methods@5.16.2(@octokit/core@3.6.0): resolution: {integrity: sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==} requiresBuild: true @@ -5990,26 +5974,36 @@ packages: dev: false optional: true - /@octokit/plugin-retry@6.0.1(@octokit/core@5.0.1): - resolution: {integrity: sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==} + /@octokit/plugin-rest-endpoint-methods@9.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-KquMF/VB1IkKNiVnzJKspY5mFgGyLd7HzdJfVEGTJFzqu9BRFNWt+nwTCMuUiWc72gLQhRWYubTwOkQj+w/1PA==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.0.0 + '@octokit/types': 11.1.0 + dev: true + + /@octokit/plugin-retry@6.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: - '@octokit/core': 5.0.1 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.0.0 + '@octokit/core': 5.0.0 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 bottleneck: 2.19.5 dev: true - /@octokit/plugin-throttling@8.0.0(@octokit/core@5.0.1): - resolution: {integrity: sha512-OkMbHYUidj81q92YRkPzWmwXkEtsI3KOcSkNm763aqUOh9IEplyX05XjKAdZFANAvaYH0Q4JBZwu4h2VnPVXZA==} + /@octokit/plugin-throttling@7.0.0(@octokit/core@5.0.0): + resolution: {integrity: sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': ^5.0.0 dependencies: - '@octokit/core': 5.0.1 - '@octokit/types': 12.0.0 + '@octokit/core': 5.0.0 + '@octokit/types': 11.1.0 bottleneck: 2.19.5 dev: true @@ -6023,11 +6017,11 @@ packages: dev: false optional: true - /@octokit/request-error@5.0.1: - resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} + /@octokit/request-error@5.0.0: + resolution: {integrity: sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.0.0 + '@octokit/types': 11.1.0 deprecation: 2.3.1 once: 1.4.0 dev: true @@ -6047,13 +6041,13 @@ packages: dev: false optional: true - /@octokit/request@8.1.2: - resolution: {integrity: sha512-A0RJJfzjlZQwb+39eDm5UM23dkxbp28WEG4p2ueH+Q2yY4p349aRK/vcUlEuIB//ggcrHJceoYYkBP/LYCoXEg==} + /@octokit/request@8.1.1: + resolution: {integrity: sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==} engines: {node: '>= 18'} dependencies: - '@octokit/endpoint': 9.0.1 - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.0.0 + '@octokit/endpoint': 9.0.0 + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 is-plain-object: 5.0.0 universal-user-agent: 6.0.0 dev: true @@ -6074,13 +6068,7 @@ packages: /@octokit/types@11.1.0: resolution: {integrity: sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==} dependencies: - '@octokit/openapi-types': 18.1.1 - dev: true - - /@octokit/types@12.0.0: - resolution: {integrity: sha512-EzD434aHTFifGudYAygnFlS1Tl6KhbTynEWELQXIbTY8Msvb5nEqTZIm7sbPEt4mQYLZwu3zPKVdeIrw0g7ovg==} - dependencies: - '@octokit/openapi-types': 19.0.0 + '@octokit/openapi-types': 18.0.0 dev: true /@octokit/types@6.41.0: @@ -6104,7 +6092,7 @@ packages: resolution: {integrity: sha512-8iG+/yza7hwz1RrQ7i7uGpK2/tuItZxZq1aTmeg2TNp2xTUB8F8lZF/FcZvyyAxT8tpDMF74TjFGCDACkf1kAQ==} engines: {node: '>= 18'} dependencies: - '@octokit/request-error': 5.0.1 + '@octokit/request-error': 5.0.0 '@octokit/webhooks-methods': 4.0.0 '@octokit/webhooks-types': 7.1.0 aggregate-error: 3.1.0 @@ -6144,6 +6132,7 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true + dev: true optional: true /@playwright/test@1.37.1: @@ -9974,7 +9963,7 @@ packages: vitest: 0.31.4(happy-dom@9.20.3) dev: true - /@vitest/coverage-c8@0.31.4(vitest@0.32.4): + /@vitest/coverage-c8@0.31.4(vitest@0.34.5): resolution: {integrity: sha512-VPx368m4DTcpA/P0v3YdVxl4QOSh1DbUcXURLRvDShrIB5KxOgfzw4Bn2R8AhAe/GyiWW/FIsJ/OJdYXCCiC1w==} deprecated: v8 coverage is moved to @vitest/coverage-v8 package peerDependencies: @@ -9985,7 +9974,7 @@ packages: magic-string: 0.30.3 picocolors: 1.0.0 std-env: 3.4.3 - vitest: 0.32.4 + vitest: 0.34.5 dev: true /@vitest/coverage-v8@0.32.4(vitest@0.32.4): @@ -10538,6 +10527,7 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + dev: true /ansi-split@1.0.1: resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==} @@ -10565,6 +10555,7 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + dev: true /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -12966,6 +12957,7 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true /ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} @@ -14419,6 +14411,7 @@ packages: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + dev: true /form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} @@ -14778,18 +14771,6 @@ packages: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.3 - path-scurry: 1.10.1 - dev: false - /glob@10.3.4: resolution: {integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==} engines: {node: '>=16 || 14 >=14.17'} @@ -15859,15 +15840,6 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: false - /jake@10.8.7: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} engines: {node: '>=10'} @@ -17634,6 +17606,7 @@ packages: /lru-cache@10.0.1: resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} engines: {node: 14 || >=16.14} + dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -18210,6 +18183,7 @@ packages: /minipass@7.0.3: resolution: {integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==} engines: {node: '>=16 || 14 >=14.17'} + dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -18808,20 +18782,20 @@ packages: resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} dev: true - /octokit@3.1.1: - resolution: {integrity: sha512-AKJs5XYs7iAh7bskkYpxhUIpsYZdLqjnlnqrN5s9FFZuJ/a6ATUHivGpUKDpGB/xa+LGDtG9Lu8bOCfPM84vHQ==} + /octokit@3.1.0: + resolution: {integrity: sha512-dmIH5D+edpb4/ASd6ZGo6BiRR1g4ytu8lG4f+6XN/2AW+CSuTsT0nj1d6rv/HKgoflMQ1+rb3KlVWcvrmgQZhw==} engines: {node: '>= 18'} dependencies: - '@octokit/app': 14.0.1 - '@octokit/core': 5.0.1 + '@octokit/app': 14.0.0 + '@octokit/core': 5.0.0 '@octokit/oauth-app': 6.0.0 - '@octokit/plugin-paginate-graphql': 4.0.0(@octokit/core@5.0.1) - '@octokit/plugin-paginate-rest': 9.0.0(@octokit/core@5.0.1) - '@octokit/plugin-rest-endpoint-methods': 10.0.0(@octokit/core@5.0.1) - '@octokit/plugin-retry': 6.0.1(@octokit/core@5.0.1) - '@octokit/plugin-throttling': 8.0.0(@octokit/core@5.0.1) - '@octokit/request-error': 5.0.1 - '@octokit/types': 12.0.0 + '@octokit/plugin-paginate-graphql': 4.0.0(@octokit/core@5.0.0) + '@octokit/plugin-paginate-rest': 8.0.0(@octokit/core@5.0.0) + '@octokit/plugin-rest-endpoint-methods': 9.0.0(@octokit/core@5.0.0) + '@octokit/plugin-retry': 6.0.0(@octokit/core@5.0.0) + '@octokit/plugin-throttling': 7.0.0(@octokit/core@5.0.0) + '@octokit/request-error': 5.0.0 + '@octokit/types': 11.1.0 dev: true /ofetch@1.3.3: @@ -19180,6 +19154,7 @@ packages: dependencies: lru-cache: 10.0.1 minipass: 7.0.3 + dev: true /path-temp@2.1.0: resolution: {integrity: sha512-cMMJTAZlion/RWRRC48UbrDymEIt+/YSD/l8NqjneyDw2rDOBQcP5yRkMB4CYGn47KMhZvbblBP7Z79OsMw72w==} @@ -21053,6 +21028,7 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 + dev: true /string.prototype.matchall@4.0.9: resolution: {integrity: sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA==} @@ -21118,6 +21094,7 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: true /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -23341,6 +23318,7 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 + dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}