From 4195d61944a24ca1e27c1cea9076d5ad989e12e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Zori=C4=87?= Date: Wed, 20 May 2026 11:18:38 +0200 Subject: [PATCH 1/3] chore: replace custom publish scripts with changesets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The custom PublishPackages pipeline (conventional-commit version strategy, changelog writer, GitHub release, dependency locker) and Verdaccio testing setup are replaced by @changesets/cli. This aligns with how @webiny/di publishes and simplifies the release workflow to: yarn changeset → merge → automated publish via GitHub Actions. Co-Authored-By: Claude Opus 4.6 (1M context) --- .changeset/README.md | 11 + .changeset/config.json | 11 + .github/workflows/publish.yml | 29 + .gitignore | 4 +- .verdaccio.yaml | 58 - .yarnrc.yml | 2 +- AGENTS.md | 82 +- .../PublishPackages/DependencyLocker.test.ts | 101 - .../PublishPackages/GithubRelease.test.ts | 106 - .../PublishPackages/GithubToken.test.ts | 39 - package.json | 21 +- .../PublishPackages/ChangelogWriter.ts | 92 - .../PublishPackages/DependencyLocker.ts | 58 - .../features/PublishPackages/GitRepository.ts | 47 - .../features/PublishPackages/GithubRelease.ts | 63 - .../features/PublishPackages/GithubToken.ts | 16 - .../features/PublishPackages/NpmRegistry.ts | 30 - .../PublishPackages/PublishOrchestrator.ts | 121 - .../PublishPackages/VersionStrategy.ts | 62 - .../abstractions/ChangelogWriter.ts | 15 - .../abstractions/DependencyLocker.ts | 21 - .../abstractions/GitRepository.ts | 18 - .../abstractions/GithubRelease.ts | 15 - .../abstractions/GithubToken.ts | 12 - .../abstractions/NpmRegistry.ts | 14 - .../abstractions/ProjectConfig.ts | 16 - .../abstractions/PublishOrchestrator.ts | 13 - .../abstractions/VersionStrategy.ts | 17 - .../PublishPackages/abstractions/index.ts | 10 - scripts/features/PublishPackages/index.ts | 40 - .../PublishToVerdaccio/PublishOrchestrator.ts | 41 - .../abstractions/ProjectConfig.ts | 16 - .../abstractions/PublishOrchestrator.ts | 18 - .../PublishToVerdaccio/abstractions/index.ts | 2 - scripts/features/PublishToVerdaccio/index.ts | 19 - scripts/publishPackages.ts | 7 - scripts/publishToVerdaccio.ts | 18 - yarn.lock | 3611 ++++------------- 38 files changed, 874 insertions(+), 4002 deletions(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json create mode 100644 .github/workflows/publish.yml delete mode 100644 .verdaccio.yaml delete mode 100644 __tests__/scripts/PublishPackages/DependencyLocker.test.ts delete mode 100644 __tests__/scripts/PublishPackages/GithubRelease.test.ts delete mode 100644 __tests__/scripts/PublishPackages/GithubToken.test.ts delete mode 100644 scripts/features/PublishPackages/ChangelogWriter.ts delete mode 100644 scripts/features/PublishPackages/DependencyLocker.ts delete mode 100644 scripts/features/PublishPackages/GitRepository.ts delete mode 100644 scripts/features/PublishPackages/GithubRelease.ts delete mode 100644 scripts/features/PublishPackages/GithubToken.ts delete mode 100644 scripts/features/PublishPackages/NpmRegistry.ts delete mode 100644 scripts/features/PublishPackages/PublishOrchestrator.ts delete mode 100644 scripts/features/PublishPackages/VersionStrategy.ts delete mode 100644 scripts/features/PublishPackages/abstractions/ChangelogWriter.ts delete mode 100644 scripts/features/PublishPackages/abstractions/DependencyLocker.ts delete mode 100644 scripts/features/PublishPackages/abstractions/GitRepository.ts delete mode 100644 scripts/features/PublishPackages/abstractions/GithubRelease.ts delete mode 100644 scripts/features/PublishPackages/abstractions/GithubToken.ts delete mode 100644 scripts/features/PublishPackages/abstractions/NpmRegistry.ts delete mode 100644 scripts/features/PublishPackages/abstractions/ProjectConfig.ts delete mode 100644 scripts/features/PublishPackages/abstractions/PublishOrchestrator.ts delete mode 100644 scripts/features/PublishPackages/abstractions/VersionStrategy.ts delete mode 100644 scripts/features/PublishPackages/abstractions/index.ts delete mode 100644 scripts/features/PublishPackages/index.ts delete mode 100644 scripts/features/PublishToVerdaccio/PublishOrchestrator.ts delete mode 100644 scripts/features/PublishToVerdaccio/abstractions/ProjectConfig.ts delete mode 100644 scripts/features/PublishToVerdaccio/abstractions/PublishOrchestrator.ts delete mode 100644 scripts/features/PublishToVerdaccio/abstractions/index.ts delete mode 100644 scripts/features/PublishToVerdaccio/index.ts delete mode 100644 scripts/publishPackages.ts delete mode 100644 scripts/publishToVerdaccio.ts diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..63a6bf3 --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,11 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can find the +full documentation for it [in the readme](https://github.com/changesets/changesets/blob/main/packages/changesets-cli/README.md) + +The important things to get started are: + +1. Run `yarn changeset` to create a new changeset. +2. Commit the generated changeset file. +3. On merge to `main`, the publish workflow will handle versioning and publishing. diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..2be13d4 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..4eb5f0e --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,29 @@ +name: Publish + +on: + workflow_run: + workflows: [CI] + branches: [main] + types: [completed] + +permissions: + contents: write + pull-requests: write + +jobs: + publish: + if: ${{ github.event.workflow_run.conclusion == 'success' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 24 + cache: yarn + - run: yarn install --immutable + - uses: changesets/action@c8bada60c408975afd1a20b3db81d6eee6789308 # v1 + with: + publish: yarn release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index 1c2d02a..788355f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,7 @@ .npmrc .kiro .vscode -htpasswd + lerna-debug.log npm-debug.log node_modules @@ -20,7 +20,7 @@ lib/ .run/ .files/ .changelog -.verdaccio + .history *.tsbuildinfo logs.txt diff --git a/.verdaccio.yaml b/.verdaccio.yaml deleted file mode 100644 index 2e02748..0000000 --- a/.verdaccio.yaml +++ /dev/null @@ -1,58 +0,0 @@ -# -# This is the default config file. It allows all users to do anything, -# so don't use it on production systems. -# -# Look here for more config file examples: -# https://github.com/verdaccio/verdaccio/tree/master/conf -# - -# path to a directory with all packages -storage: ./.verdaccio - -# path to a directory with plugins to include -plugins: ./plugins - -web: - # WebUI is enabled as default, if you want disable it, just uncomment this line - #enable: false - title: Verdaccio - -auth: - htpasswd: - file: ./htpasswd - # Maximum amount of users allowed to register, defaults to "+inf". - # You can set this to -1 to disable registration. - #max_users: 1000 - -# a list of other known repositories we can talk to -uplinks: - npmjs: - url: https://registry.npmjs.org/ - -packages: - "@*/*": - # scoped packages - access: $all - publish: $all - proxy: npmjs - - "**": - access: $all - publish: $all - proxy: npmjs - -# You can specify HTTP/1.1 server keep alive timeout in seconds for incomming connections. -# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout. -# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enought. -server: - keepAliveTimeout: 60 - -# To use `npm audit` uncomment the following section -middlewares: - audit: - enabled: true - -logs: - - { type: stdout, format: pretty, level: http } - -max_body_size: 1000mb diff --git a/.yarnrc.yml b/.yarnrc.yml index a90b2cf..3333fdd 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -2,4 +2,4 @@ nodeLinker: node-modules yarnPath: .yarn/releases/yarn-4.14.1.cjs approvedGitRepositories: [] enableScripts: false -npmMinimalAgeGate: 6h +npmMinimalAgeGate: 24h diff --git a/AGENTS.md b/AGENTS.md index e9ff0a2..9e94c52 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -23,7 +23,8 @@ The package provides platform-specific utility services (file system, directory │ ├── node/ # Node.js-specific source (FileTool, DirectoryTool, …) │ └── browser/ # browser-specific source (LocalStorageCacheFeature, …) ├── __tests__/ # tests — __tests__/node/, __tests__/browser/ -├── scripts/ # build and publish automation (Node 24 strip-only) +├── .changeset/ # changesets config and pending changeset files +├── scripts/ # build automation (Node 24 strip-only) ├── dist/ # compiled output (gitignored) ├── package.json # @webiny/stdlib — exports, scripts ├── config/ # tooling configs @@ -769,43 +770,11 @@ Root-level scripts live in `scripts/`. They are run directly by Node 24 (no comp ### Entry points -| Script | Purpose | -| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `scripts/buildPackages.ts` | Clean `dist/`, compile with `tsgo -b --force`, copy `package.json` into each `dist/` | -| `scripts/publishPackages.ts` | Build first, then check npm for latest versions, compute conventional-commit version bump, write changelog, publish all packages, create git tag | -| `scripts/publishToVerdaccio.ts` | Build and publish to a local Verdaccio registry with an explicit version string; for manual release-candidate testing before the real publish | +| Script | Purpose | +| -------------------------- | ------------------------------------------------------------------------------------ | +| `scripts/buildPackages.ts` | Clean `dist/`, compile with `tsgo -b --force`, copy `package.json` into each `dist/` | -Invoked from root `package.json` scripts as `node scripts/buildPackages.ts` etc. - -`publishPackages.ts` is a **dry run by default** — it computes the release plan and logs it without touching npm, `CHANGELOG.md`, or git. Pass `--publish` to execute the real release: - -```sh -node scripts/publishPackages.ts # dry run — safe, no side effects -node scripts/publishPackages.ts --publish # real release -``` - -### Verdaccio testing - -`publishToVerdaccio.ts` publishes a build to a local [Verdaccio](https://verdaccio.org) registry for release-candidate testing. Verdaccio must be started manually first: - -```sh -yarn verdaccio:start # start registry at http://localhost:4873 -yarn publish:verdaccio --version 1.0.0-beta.abcdefg # build + publish with explicit version -``` - -`--version` is required and must not start with `-`. The `.verdaccio.yaml` at the repo root configures the registry. Storage is written to `.verdaccio/` (gitignored). - -The script delegates to `scripts/features/PublishToVerdaccio/`, which follows the same DI feature pattern as `PublishPackages`: - -``` -scripts/features/PublishToVerdaccio/ -├── abstractions/ -│ ├── ProjectConfig.ts # { rootDir, packageName, version } -│ ├── PublishOrchestrator.ts # { run(): void } -│ └── index.ts -├── PublishOrchestrator.ts # injects version into dist/package.json, calls npm publish --registry -└── index.ts # run(rootDir, version) — wires container and executes -``` +Invoked from root `package.json` scripts as `node scripts/buildPackages.ts`. ### Feature structure @@ -916,36 +885,18 @@ class CompilerImpl implements CompilerAbstraction.Interface { This constraint applies only to files run directly by Node (i.e. everything under `scripts/`). Package source compiled by tsgo has no such restriction. -### Conventional commit version strategy - -`scripts/features/PublishPackages/` reads git commit messages since the last published tag and applies these rules: - -| Commit type | Bump | -| ------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | -| `feat` | minor (patch reset to 0) | -| `fix`, `refactor`, `test`, `chore`, `docs`, `style`, `perf`, `build`, `ci`, `revert` | patch | -| anything else | **hard failure** (`process.exit(1)`) — unknown types are not allowed | - -If there are no commits since the last tag, publish is skipped. The version is written into `dist/package.json` before publishing; it is never committed back to source. - -### Changelog generation - -`ChangelogWriter` prepends a new entry to `CHANGELOG.md` at the repo root on every real release (not dry run). Format follows [Keep a Changelog](https://keepachangelog.com). Commit types map to sections in this order: +### Publishing with Changesets -| Commit type | Section | -| --------------------------------------- | ------------- | -| `feat` | Added | -| `fix` | Fixed | -| `refactor`, `perf` | Changed | -| `revert` | Reverted | -| `docs` | Documentation | -| `chore`, `build`, `ci`, `test`, `style` | Maintenance | +Versioning and publishing are handled by [`@changesets/cli`](https://github.com/changesets/changesets). The workflow: -The `type(scope): ` prefix is stripped; only the description appears in the entry. Sections with no commits are omitted. The file is created if it does not exist. +1. **Before a PR**: run `yarn changeset` to create a changeset file describing the change and bump type (patch/minor/major). Commit the generated `.changeset/*.md` file with the PR. +2. **On merge to `main`**: the `publish.yml` GitHub Actions workflow runs `changesets/action@v1`, which either: + - Creates a "Version Packages" PR that bumps `package.json` version and updates `CHANGELOG.md`, or + - If a version PR is already merged, publishes to npm via `yarn release` (which runs `yarn build && changeset publish`). -### Dry-run behaviour +Config lives in `.changeset/config.json`. The `NPM_TOKEN` secret must be configured in the GitHub repository settings. -`dryRun: boolean` lives on `ProjectConfig` and is set in `scripts/features/PublishPackages/index.ts` based on `process.argv`. In dry-run mode `PublishOrchestrator` exits early after logging the plan — no filesystem writes (`CHANGELOG.md`, `dist/package.json`), no npm publish, no git tag. Git reads (`tagExists`, `commitsSince`) still run because they power the plan output. +There is no custom version strategy or changelog generation — Changesets handles both. --- @@ -967,7 +918,7 @@ import { createAbstraction } from "~/common/index.js"; ```json { "name": "@webiny/stdlib", - "version": "0.0.0", + "version": "0.0.1", "type": "module", "exports": { ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" }, @@ -979,6 +930,7 @@ import { createAbstraction } from "~/common/index.js"; "files": ["dist"], "scripts": { "build": "node scripts/buildPackages.ts", + "release": "yarn build && changeset publish", "test": "vitest run --config testing/vitest.config.ts", "test:coverage": "vitest run --coverage --config testing/vitest.config.ts", "typecheck": "tsgo -p config/tsconfig.check.common.json && tsgo -p config/tsconfig.check.node.json && tsgo -p config/tsconfig.check.browser.json && tsgo -p config/tsconfig.check.scripts.json" @@ -986,7 +938,7 @@ import { createAbstraction } from "~/common/index.js"; } ``` -**Version**: Always `0.0.0`. The real version is injected at publish time. +**Version**: Managed by Changesets. Bumped automatically when a version PR is merged. --- diff --git a/__tests__/scripts/PublishPackages/DependencyLocker.test.ts b/__tests__/scripts/PublishPackages/DependencyLocker.test.ts deleted file mode 100644 index 1dc584a..0000000 --- a/__tests__/scripts/PublishPackages/DependencyLocker.test.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { describe, it, expect } from "vitest"; -import { Container } from "@webiny/di"; -import { ProjectConfig } from "../../../scripts/features/PublishPackages/abstractions/ProjectConfig.ts"; -import { DependencyLocker } from "../../../scripts/features/PublishPackages/abstractions/DependencyLocker.ts"; -import { DependencyLocker as DependencyLockerImpl } from "../../../scripts/features/PublishPackages/DependencyLocker.ts"; - -function makeLocker(exactDependencyVersions: boolean): DependencyLocker.Interface { - const container = new Container(); - container.registerInstance(ProjectConfig, { - rootDir: "/tmp", - packageName: "@test/pkg", - dryRun: false, - exactDependencyVersions - }); - container.register(DependencyLockerImpl).inSingletonScope(); - return container.resolve(DependencyLocker); -} - -describe("DependencyLocker", () => { - describe("when exactDependencyVersions is false", () => { - it("does not modify dependencies", () => { - const locker = makeLocker(false); - const pkgJson = { dependencies: { foo: "^1.2.3" } }; - locker.lock(pkgJson); - expect(pkgJson.dependencies).toEqual({ foo: "^1.2.3" }); - }); - }); - - describe("when exactDependencyVersions is true", () => { - it("strips ^ from dependencies", () => { - const locker = makeLocker(true); - const pkgJson = { dependencies: { foo: "^1.2.3" } }; - locker.lock(pkgJson); - expect(pkgJson.dependencies).toEqual({ foo: "1.2.3" }); - }); - - it("strips ~ from dependencies", () => { - const locker = makeLocker(true); - const pkgJson = { dependencies: { foo: "~1.2.3" } }; - locker.lock(pkgJson); - expect(pkgJson.dependencies).toEqual({ foo: "1.2.3" }); - }); - - it("strips >= from dependencies", () => { - const locker = makeLocker(true); - const pkgJson = { dependencies: { foo: ">=1.2.3" } }; - locker.lock(pkgJson); - expect(pkgJson.dependencies).toEqual({ foo: "1.2.3" }); - }); - - it("strips > from dependencies", () => { - const locker = makeLocker(true); - const pkgJson = { dependencies: { foo: ">1.2.3" } }; - locker.lock(pkgJson); - expect(pkgJson.dependencies).toEqual({ foo: "1.2.3" }); - }); - - it("strips <= from dependencies", () => { - const locker = makeLocker(true); - const pkgJson = { dependencies: { foo: "<=1.2.3" } }; - locker.lock(pkgJson); - expect(pkgJson.dependencies).toEqual({ foo: "1.2.3" }); - }); - - it("strips < from dependencies", () => { - const locker = makeLocker(true); - const pkgJson = { dependencies: { foo: "<1.2.3" } }; - locker.lock(pkgJson); - expect(pkgJson.dependencies).toEqual({ foo: "1.2.3" }); - }); - - it("strips range operators from devDependencies", () => { - const locker = makeLocker(true); - const pkgJson = { devDependencies: { bar: "^2.0.0" } }; - locker.lock(pkgJson); - expect(pkgJson.devDependencies).toEqual({ bar: "2.0.0" }); - }); - - it("does not modify peerDependencies", () => { - const locker = makeLocker(true); - const pkgJson = { - dependencies: { foo: "^1.0.0" }, - peerDependencies: { baz: "^3.0.0" } - }; - locker.lock(pkgJson); - expect(pkgJson.peerDependencies).toEqual({ baz: "^3.0.0" }); - }); - - it("leaves exact versions unchanged", () => { - const locker = makeLocker(true); - const pkgJson = { dependencies: { foo: "1.2.3" } }; - locker.lock(pkgJson); - expect(pkgJson.dependencies).toEqual({ foo: "1.2.3" }); - }); - - it("handles missing dependency fields gracefully", () => { - const locker = makeLocker(true); - expect(() => locker.lock({})).not.toThrow(); - }); - }); -}); diff --git a/__tests__/scripts/PublishPackages/GithubRelease.test.ts b/__tests__/scripts/PublishPackages/GithubRelease.test.ts deleted file mode 100644 index 435fc9b..0000000 --- a/__tests__/scripts/PublishPackages/GithubRelease.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { describe, it, expect, beforeEach, vi } from "vitest"; -import "@webiny/di"; -import { Container } from "@webiny/di"; -import { ProjectConfig } from "../../../scripts/features/PublishPackages/abstractions/ProjectConfig.ts"; -import { GitRepository } from "../../../scripts/features/PublishPackages/abstractions/GitRepository.ts"; -import { GithubToken } from "../../../scripts/features/PublishPackages/abstractions/GithubToken.ts"; -import { GithubRelease } from "../../../scripts/features/PublishPackages/abstractions/GithubRelease.ts"; -import { GithubRelease as GithubReleaseImpl } from "../../../scripts/features/PublishPackages/GithubRelease.ts"; - -const { mockCreateRelease } = vi.hoisted(() => ({ - mockCreateRelease: vi.fn().mockResolvedValue({}) -})); - -vi.mock("@octokit/rest", () => { - class MockOctokit { - public readonly rest = { repos: { createRelease: mockCreateRelease } }; - } - return { Octokit: MockOctokit }; -}); - -function makeContainer(opts: { - dryRun?: boolean; - remoteUrl?: string; - token?: string; -}): GithubRelease.Interface { - const container = new Container(); - container.registerInstance(ProjectConfig, { - rootDir: "/tmp", - packageName: "@test/pkg", - dryRun: opts.dryRun ?? false, - exactDependencyVersions: false - }); - container.registerInstance(GitRepository, { - tagExists: vi.fn(), - commitsSince: vi.fn(), - createTag: vi.fn(), - getRemoteUrl: vi - .fn() - .mockReturnValue(opts.remoteUrl ?? "https://github.com/acme/my-repo.git") - }); - container.registerInstance(GithubToken, { - getToken: () => opts.token ?? "test-token" - }); - container.register(GithubReleaseImpl).inSingletonScope(); - return container.resolve(GithubRelease); -} - -describe("GithubRelease", () => { - beforeEach(() => { - mockCreateRelease.mockClear(); - }); - - describe("constructor", () => { - it("parses HTTPS remote URL without throwing", () => { - expect(() => - makeContainer({ remoteUrl: "https://github.com/acme/my-repo.git" }) - ).not.toThrow(); - }); - - it("parses SSH remote URL without throwing", () => { - expect(() => - makeContainer({ remoteUrl: "git@github.com:acme/my-repo.git" }) - ).not.toThrow(); - }); - - it("throws for unrecognised remote URL", () => { - expect(() => makeContainer({ remoteUrl: "https://gitlab.com/acme/repo.git" })).toThrow( - "Cannot parse GitHub owner/repo" - ); - }); - }); - - describe("createRelease", () => { - it("dry-run: logs and skips API call", async () => { - const logSpy = vi.spyOn(console, "log").mockImplementation(() => {}); - try { - const release = makeContainer({ dryRun: true }); - await release.createRelease("v1.2.3", "v1.2.3", "body"); - - expect(mockCreateRelease).not.toHaveBeenCalled(); - const calls = logSpy.mock.calls.map(args => args.join(" ")); - expect( - calls.some( - msg => msg.includes("would create GitHub release") && msg.includes("v1.2.3") - ) - ).toBe(true); - } finally { - logSpy.mockRestore(); - } - }); - - it("real publish: calls Octokit with correct params", async () => { - const release = makeContainer({ dryRun: false }); - await release.createRelease("v1.2.3", "v1.2.3", "body text"); - - expect(mockCreateRelease).toHaveBeenCalledOnce(); - expect(mockCreateRelease).toHaveBeenCalledWith({ - owner: "acme", - repo: "my-repo", - tag_name: "v1.2.3", - name: "v1.2.3", - body: "body text" - }); - }); - }); -}); diff --git a/__tests__/scripts/PublishPackages/GithubToken.test.ts b/__tests__/scripts/PublishPackages/GithubToken.test.ts deleted file mode 100644 index 2829ec3..0000000 --- a/__tests__/scripts/PublishPackages/GithubToken.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { describe, it, expect, beforeEach, afterEach } from "vitest"; -import "@webiny/di"; -import { Container } from "@webiny/di"; -import { GithubToken } from "../../../scripts/features/PublishPackages/abstractions/GithubToken.ts"; -import { GithubToken as GithubTokenImpl } from "../../../scripts/features/PublishPackages/GithubToken.ts"; - -function makeToken(): GithubToken.Interface { - const container = new Container(); - container.register(GithubTokenImpl).inSingletonScope(); - return container.resolve(GithubToken); -} - -describe("GithubToken", () => { - let savedToken: string | undefined; - - beforeEach(() => { - savedToken = process.env["GITHUB_TOKEN"]; - }); - - afterEach(() => { - if (savedToken === undefined) { - delete process.env["GITHUB_TOKEN"]; - } else { - process.env["GITHUB_TOKEN"] = savedToken; - } - }); - - it("returns the token from GITHUB_TOKEN env var", () => { - process.env["GITHUB_TOKEN"] = "ghp_test123"; - const token = makeToken(); - expect(token.getToken()).toBe("ghp_test123"); - }); - - it("throws when GITHUB_TOKEN is not set", () => { - delete process.env["GITHUB_TOKEN"]; - const token = makeToken(); - expect(() => token.getToken()).toThrow("GITHUB_TOKEN env var is required"); - }); -}); diff --git a/package.json b/package.json index 11e9c1f..9db2dd4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@webiny/stdlib", - "version": "0.0.0", + "version": "0.0.1", "type": "module", "description": "Standard library for Webiny — platform-agnostic, Node.js, and browser utilities", "license": "MIT", @@ -24,7 +24,7 @@ "dist" ], "dependencies": { - "@webiny/di": "^1.0.0", + "@webiny/di": "^1.0.1", "dot-prop": "^10.1.0", "fast-glob": "^3.3.3", "pino": "^10.3.1", @@ -33,25 +33,21 @@ "zod": "^4.4.3" }, "devDependencies": { - "@octokit/rest": "^22.0.1", + "@changesets/cli": "^2.29.4", "@types/node": ">=24", - "@types/semver": "^7.7.1", - "@typescript/native-preview": "^7.0.0-dev.20260517.1", + "@typescript/native-preview": "^7.0.0-dev.20260519.1", "@vitest/coverage-v8": "^4.1.6", "adio": "^3.0.0", "happy-dom": "^20.9.0", - "oxfmt": "^0.50.0", - "oxlint": "^1.65.0", - "semver": "^7.8.0", - "verdaccio": "^6.7.1", + "oxfmt": "^0.51.0", + "oxlint": "^1.66.0", "vitest": "^4.1.6" }, "scripts": { "clean": "rm -rf dist", "build": "node scripts/buildPackages.ts", "pack:packages": "node scripts/packPackages.ts", - "publish:packages": "node scripts/publishPackages.ts", - "publish:verdaccio": "node scripts/publishToVerdaccio.ts", + "release": "yarn build && changeset publish", "test": "vitest run --config testing/vitest.config.ts", "test:coverage": "vitest run --coverage --config testing/vitest.config.ts", "format": "oxfmt", @@ -60,7 +56,6 @@ "lint": "oxlint --deny-warnings", "lint:fix": "oxlint --fix", "check:imports": "adio", - "typecheck": "tsgo -p config/tsconfig.check.common.json && tsgo -p config/tsconfig.check.node.json && tsgo -p config/tsconfig.check.browser.json && tsgo -p config/tsconfig.check.scripts.json", - "verdaccio:start": "yarn verdaccio -c ./.verdaccio.yaml" + "typecheck": "tsgo -p config/tsconfig.check.common.json && tsgo -p config/tsconfig.check.node.json && tsgo -p config/tsconfig.check.browser.json && tsgo -p config/tsconfig.check.scripts.json" } } diff --git a/scripts/features/PublishPackages/ChangelogWriter.ts b/scripts/features/PublishPackages/ChangelogWriter.ts deleted file mode 100644 index bbdf603..0000000 --- a/scripts/features/PublishPackages/ChangelogWriter.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { existsSync, readFileSync, writeFileSync } from "node:fs"; -import { join } from "node:path"; -import { ChangelogWriter as ChangelogWriterAbstraction } from "./abstractions/ChangelogWriter.ts"; -import { ProjectConfig } from "./abstractions/ProjectConfig.ts"; - -/** Matches `type(optional-scope)!: description` */ -const COMMIT_RE = /^([a-z]+)(?:\([^)]*\))?!?:\s*(.+)/; - -const SECTION_ORDER = [ - "Added", - "Fixed", - "Changed", - "Reverted", - "Documentation", - "Maintenance" -] as const; - -const TYPE_TO_SECTION: Record = { - feat: "Added", - fix: "Fixed", - refactor: "Changed", - perf: "Changed", - revert: "Reverted", - docs: "Documentation", - chore: "Maintenance", - build: "Maintenance", - ci: "Maintenance", - test: "Maintenance", - style: "Maintenance" -}; - -class ChangelogWriterImpl implements ChangelogWriterAbstraction.Interface { - private readonly config: ProjectConfig.Interface; - - public constructor(config: ProjectConfig.Interface) { - this.config = config; - } - - public write(version: string, commits: string[]): string { - const sections = this.groupBySection(commits); - const entry = this.formatEntry(version, sections); - this.prepend(entry); - return entry; - } - - private groupBySection(commits: string[]): Map { - const sections = new Map(); - for (const commit of commits) { - const match = COMMIT_RE.exec(commit); - if (!match) { - continue; - } - const section = TYPE_TO_SECTION[match[1]!] ?? "Maintenance"; - const description = match[2]!; - const entries = sections.get(section) ?? []; - entries.push(description); - sections.set(section, entries); - } - return sections; - } - - private formatEntry(version: string, sections: Map): string { - const date = new Date().toISOString().slice(0, 10); - const lines: string[] = [`## [${version}] — ${date}`, ""]; - for (const section of SECTION_ORDER) { - const entries = sections.get(section); - if (!entries) { - continue; - } - lines.push(`### ${section}`); - for (const entry of entries) { - lines.push(`- ${entry}`); - } - lines.push(""); - } - return lines.join("\n"); - } - - private prepend(entry: string): void { - const changelogPath = join(this.config.rootDir, "CHANGELOG.md"); - const existing = existsSync(changelogPath) ? readFileSync(changelogPath, "utf8") : ""; - const body = existing.startsWith("# Changelog\n") - ? existing.slice("# Changelog\n".length).trimStart() - : existing.trimStart(); - writeFileSync(changelogPath, "# Changelog\n\n" + entry + (body ? "\n" + body : "")); - } -} - -export const ChangelogWriter = ChangelogWriterAbstraction.createImplementation({ - implementation: ChangelogWriterImpl, - dependencies: [ProjectConfig] -}); diff --git a/scripts/features/PublishPackages/DependencyLocker.ts b/scripts/features/PublishPackages/DependencyLocker.ts deleted file mode 100644 index cf49606..0000000 --- a/scripts/features/PublishPackages/DependencyLocker.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { DependencyLocker as DependencyLockerAbstraction } from "./abstractions/DependencyLocker.ts"; -import { ProjectConfig } from "./abstractions/ProjectConfig.ts"; -import semver from "semver"; - -class DependencyLockerImpl implements DependencyLockerAbstraction.Interface { - private readonly config: ProjectConfig.Interface; - - public constructor(config: ProjectConfig.Interface) { - this.config = config; - } - - public lock(pkgJson: DependencyLockerAbstraction.Params): void { - if (!this.config.exactDependencyVersions) { - return; - } - - if (pkgJson.dependencies !== undefined) { - pkgJson.dependencies = this.stripRangeOperators(pkgJson.dependencies); - } - - if (pkgJson.devDependencies !== undefined) { - pkgJson.devDependencies = this.stripRangeOperators(pkgJson.devDependencies); - } - } - - private stripRangeOperators( - deps: DependencyLockerAbstraction.Dependency - ): DependencyLockerAbstraction.Dependency { - const result: DependencyLockerAbstraction.Dependency = {}; - if (!deps) { - return result; - } - for (const [name, version] of Object.entries(deps)) { - /** - * Impossible but TS doesn't know that. If version is undefined, we skip it and don't include it in the result. - */ - if (!version) { - continue; - } - - const newVersion = version.replace(/^(\^|~|>=|<=|>|<)+/, ""); - - const valid = semver.valid(newVersion); - if (!valid) { - throw new Error( - `Stripped version for ${name} is not a valid semver version: ${newVersion} (original: ${version})` - ); - } - result[name] = newVersion; - } - return result; - } -} - -export const DependencyLocker = DependencyLockerAbstraction.createImplementation({ - implementation: DependencyLockerImpl, - dependencies: [ProjectConfig] -}); diff --git a/scripts/features/PublishPackages/GitRepository.ts b/scripts/features/PublishPackages/GitRepository.ts deleted file mode 100644 index 4b2c5a9..0000000 --- a/scripts/features/PublishPackages/GitRepository.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { execFileSync } from "node:child_process"; -import { GitRepository as GitRepositoryAbstraction } from "./abstractions/GitRepository.ts"; -import { ProjectConfig } from "./abstractions/ProjectConfig.ts"; - -class GitRepositoryImpl implements GitRepositoryAbstraction.Interface { - private readonly config: ProjectConfig.Interface; - - public constructor(config: ProjectConfig.Interface) { - this.config = config; - } - - public tagExists(tag: string): boolean { - try { - execFileSync("git", ["rev-parse", "--verify", tag], { - cwd: this.config.rootDir, - stdio: "pipe" - }); - return true; - } catch { - return false; - } - } - - public commitsSince(ref: string | null): string[] { - const args = ref ? ["log", `${ref}..HEAD`, "--format=%s"] : ["log", "--format=%s"]; - return execFileSync("git", args, { cwd: this.config.rootDir, encoding: "utf8" }) - .trim() - .split("\n") - .filter(Boolean); - } - - public createTag(tag: string): void { - execFileSync("git", ["tag", tag], { cwd: this.config.rootDir }); - } - - public getRemoteUrl(name: string): string { - return execFileSync("git", ["remote", "get-url", name], { - cwd: this.config.rootDir, - encoding: "utf8" - }).trim(); - } -} - -export const GitRepository = GitRepositoryAbstraction.createImplementation({ - implementation: GitRepositoryImpl, - dependencies: [ProjectConfig] -}); diff --git a/scripts/features/PublishPackages/GithubRelease.ts b/scripts/features/PublishPackages/GithubRelease.ts deleted file mode 100644 index e643519..0000000 --- a/scripts/features/PublishPackages/GithubRelease.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Octokit } from "@octokit/rest"; -import { GithubRelease as GithubReleaseAbstraction } from "./abstractions/GithubRelease.ts"; -import { ProjectConfig } from "./abstractions/ProjectConfig.ts"; -import { GitRepository } from "./abstractions/GitRepository.ts"; -import { GithubToken } from "./abstractions/GithubToken.ts"; - -const HTTPS_RE = /https:\/\/github\.com\/([^/]+)\/([^/.]+?)(?:\.git)?$/; -const SSH_RE = /git@github\.com:([^/]+)\/([^/.]+?)(?:\.git)?$/; - -function parseGithubRepo(url: string): { owner: string; repo: string } { - const https = HTTPS_RE.exec(url); - if (https) { - return { owner: https[1]!, repo: https[2]! }; - } - const ssh = SSH_RE.exec(url); - if (ssh) { - return { owner: ssh[1]!, repo: ssh[2]! }; - } - throw new Error(`Cannot parse GitHub owner/repo from remote URL: ${url}`); -} - -class GithubReleaseImpl implements GithubReleaseAbstraction.Interface { - private readonly config: ProjectConfig.Interface; - private readonly owner: string; - private readonly repo: string; - private readonly octokit: Octokit; - - public constructor( - config: ProjectConfig.Interface, - git: GitRepository.Interface, - token: GithubToken.Interface - ) { - this.config = config; - const url = git.getRemoteUrl("origin"); - const { owner, repo } = parseGithubRepo(url); - this.owner = owner; - this.repo = repo; - this.octokit = new Octokit({ auth: token.getToken() }); - } - - public async createRelease(tag: string, title: string, body: string): Promise { - if (this.config.dryRun) { - console.log( - `[dry run] would create GitHub release ${tag} for ${this.owner}/${this.repo}` - ); - return; - } - - await this.octokit.rest.repos.createRelease({ - owner: this.owner, - repo: this.repo, - tag_name: tag, - name: title, - body - }); - console.log(`Created GitHub release ${tag} for ${this.owner}/${this.repo}`); - } -} - -export const GithubRelease = GithubReleaseAbstraction.createImplementation({ - implementation: GithubReleaseImpl, - dependencies: [ProjectConfig, GitRepository, GithubToken] -}); diff --git a/scripts/features/PublishPackages/GithubToken.ts b/scripts/features/PublishPackages/GithubToken.ts deleted file mode 100644 index dc3adac..0000000 --- a/scripts/features/PublishPackages/GithubToken.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { GithubToken as GithubTokenAbstraction } from "./abstractions/GithubToken.ts"; - -class GithubTokenImpl implements GithubTokenAbstraction.Interface { - public getToken(): string { - const token = process.env["GITHUB_TOKEN"]; - if (!token) { - throw new Error("GITHUB_TOKEN env var is required to create a GitHub release"); - } - return token; - } -} - -export const GithubToken = GithubTokenAbstraction.createImplementation({ - implementation: GithubTokenImpl, - dependencies: [] -}); diff --git a/scripts/features/PublishPackages/NpmRegistry.ts b/scripts/features/PublishPackages/NpmRegistry.ts deleted file mode 100644 index 55c3ca2..0000000 --- a/scripts/features/PublishPackages/NpmRegistry.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { execFileSync } from "node:child_process"; -import { NpmRegistry as NpmRegistryAbstraction } from "./abstractions/NpmRegistry.ts"; -import { bin } from "../../bin.ts"; - -class NpmRegistryImpl implements NpmRegistryAbstraction.Interface { - public getLatestVersion(packageName: string): string | null { - try { - return ( - execFileSync(bin("npm"), ["view", packageName, "version"], { - encoding: "utf8", - stdio: ["pipe", "pipe", "pipe"] - }).trim() || null - ); - } catch { - return null; - } - } - - public publish(distDir: string): void { - execFileSync(bin("npm"), ["publish", "--access", "public"], { - cwd: distDir, - stdio: "inherit" - }); - } -} - -export const NpmRegistry = NpmRegistryAbstraction.createImplementation({ - implementation: NpmRegistryImpl, - dependencies: [] -}); diff --git a/scripts/features/PublishPackages/PublishOrchestrator.ts b/scripts/features/PublishPackages/PublishOrchestrator.ts deleted file mode 100644 index 8c55729..0000000 --- a/scripts/features/PublishPackages/PublishOrchestrator.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { readFileSync, writeFileSync } from "node:fs"; -import { join } from "node:path"; - -import { PublishOrchestrator as PublishOrchestratorAbstraction } from "./abstractions/PublishOrchestrator.ts"; -import { ProjectConfig } from "./abstractions/ProjectConfig.ts"; -import { NpmRegistry } from "./abstractions/NpmRegistry.ts"; -import { GitRepository } from "./abstractions/GitRepository.ts"; -import { VersionStrategy } from "./abstractions/VersionStrategy.ts"; -import { ChangelogWriter } from "./abstractions/ChangelogWriter.ts"; -import { GithubRelease } from "./abstractions/GithubRelease.ts"; -import { DependencyLocker } from "./abstractions/DependencyLocker.ts"; - -interface DistPackageJson { - version: string; - dependencies?: Record; - devDependencies?: Record; - [key: string]: unknown; -} - -class PublishOrchestratorImpl implements PublishOrchestratorAbstraction.Interface { - private readonly config: ProjectConfig.Interface; - private readonly npm: NpmRegistry.Interface; - private readonly git: GitRepository.Interface; - private readonly versionStrategy: VersionStrategy.Interface; - private readonly changelogWriter: ChangelogWriter.Interface; - private readonly githubRelease: GithubRelease.Interface; - private readonly dependencyLocker: DependencyLocker.Interface; - - public constructor( - config: ProjectConfig.Interface, - npm: NpmRegistry.Interface, - git: GitRepository.Interface, - versionStrategy: VersionStrategy.Interface, - changelogWriter: ChangelogWriter.Interface, - githubRelease: GithubRelease.Interface, - dependencyLocker: DependencyLocker.Interface - ) { - this.config = config; - this.npm = npm; - this.git = git; - this.versionStrategy = versionStrategy; - this.changelogWriter = changelogWriter; - this.githubRelease = githubRelease; - this.dependencyLocker = dependencyLocker; - } - - public async run(): Promise { - const { rootDir, packageName } = this.config; - - const published = this.npm.getLatestVersion(packageName) ?? "0.0.0"; - console.log(`Latest published: ${published}`); - - const releaseTag = `v${published}`; - const since = this.git.tagExists(releaseTag) ? releaseTag : null; - const commits = this.git.commitsSince(since); - - if (commits.length === 0) { - console.log("No new commits since last release. Nothing to publish."); - return; - } - - const result = this.versionStrategy.computeVersion(published, commits); - if ("error" in result) { - console.error(`Publish aborted: ${result.error}`); - process.exit(1); - } - - const { newVersion, bumpType } = result; - console.log(`${bumpType} bump: ${published} → ${newVersion}`); - console.log("Commits:"); - for (const commit of commits) { - console.log(` ${commit}`); - } - - if (this.config.dryRun) { - console.log("[dry run] would update CHANGELOG.md"); - console.log(`[dry run] would publish ${packageName}@${newVersion}`); - console.log(`[dry run] would tag v${newVersion}`); - await this.githubRelease.createRelease(`v${newVersion}`, `v${newVersion}`, ""); - return; - } - - const entry = this.changelogWriter.write(newVersion, commits); - console.log("Updated CHANGELOG.md"); - - const distDir = join(rootDir, "dist"); - const pkgJsonPath = join(distDir, "package.json"); - const pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8")) as DistPackageJson; - pkgJson.version = newVersion; - if (pkgJson.dependencies !== undefined) { - for (const dep of Object.keys(pkgJson.dependencies)) { - if (pkgJson.dependencies[dep] === "0.0.0") { - pkgJson.dependencies[dep] = newVersion; - } - } - } - this.dependencyLocker.lock(pkgJson); - writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2) + "\n"); - - console.log(`Publishing ${packageName}@${newVersion}...`); - this.npm.publish(distDir); - - this.git.createTag(`v${newVersion}`); - console.log(`Tagged v${newVersion}`); - - await this.githubRelease.createRelease(`v${newVersion}`, `v${newVersion}`, entry); - } -} - -export const PublishOrchestrator = PublishOrchestratorAbstraction.createImplementation({ - implementation: PublishOrchestratorImpl, - dependencies: [ - ProjectConfig, - NpmRegistry, - GitRepository, - VersionStrategy, - ChangelogWriter, - GithubRelease, - DependencyLocker - ] -}); diff --git a/scripts/features/PublishPackages/VersionStrategy.ts b/scripts/features/PublishPackages/VersionStrategy.ts deleted file mode 100644 index 0593a5a..0000000 --- a/scripts/features/PublishPackages/VersionStrategy.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { - VersionStrategy as VersionStrategyAbstraction, - type VersionResult -} from "./abstractions/VersionStrategy.ts"; - -/** - * Patch types: any commit with a type not in this set and not in MINOR_TYPES is rejected. - */ -const PATCH_TYPES = new Set([ - "fix", - "refactor", - "test", - "chore", - "docs", - "style", - "perf", - "build", - "ci", - "revert" -]); - -const MINOR_TYPES = new Set(["feat"]); - -/** Matches conventional commit subjects: `type(optional-scope)!: description` */ -const COMMIT_RE = /^([a-z]+)(\([^)]*\))?!?:/; - -class ConventionalCommitStrategy implements VersionStrategyAbstraction.Interface { - public computeVersion(currentVersion: string, commits: string[]): VersionResult { - let bumpType: "minor" | "patch" = "patch"; - - for (const commit of commits) { - const match = COMMIT_RE.exec(commit); - if (!match) { - return { error: `Commit does not follow conventional format: "${commit}"` }; - } - const type = match[1]!; - if (MINOR_TYPES.has(type)) { - bumpType = "minor"; - } else if (!PATCH_TYPES.has(type)) { - return { error: `Unknown commit type "${type}" in: "${commit}"` }; - } - } - - // First publish always starts at 1.0.0 regardless of bump type. - if (currentVersion === "0.0.0") { - return { newVersion: "1.0.0", bumpType }; - } - - return { newVersion: this.bump(currentVersion, bumpType), bumpType }; - } - - private bump(current: string, type: "minor" | "patch"): string { - const parts = current.split(".").map(Number); - const [major, minor, patch] = [parts[0] ?? 0, parts[1] ?? 0, parts[2] ?? 0]; - return type === "minor" ? `${major}.${minor + 1}.0` : `${major}.${minor}.${patch + 1}`; - } -} - -export const VersionStrategy = VersionStrategyAbstraction.createImplementation({ - implementation: ConventionalCommitStrategy, - dependencies: [] -}); diff --git a/scripts/features/PublishPackages/abstractions/ChangelogWriter.ts b/scripts/features/PublishPackages/abstractions/ChangelogWriter.ts deleted file mode 100644 index 57af5df..0000000 --- a/scripts/features/PublishPackages/abstractions/ChangelogWriter.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface IChangelogWriter { - /** - * Prepends a new release entry to CHANGELOG.md at the repo root. - * Returns the formatted entry string (same text that was prepended). - */ - write(version: string, commits: string[]): string; -} - -export const ChangelogWriter = new Abstraction("Scripts/ChangelogWriter"); - -export namespace ChangelogWriter { - export type Interface = IChangelogWriter; -} diff --git a/scripts/features/PublishPackages/abstractions/DependencyLocker.ts b/scripts/features/PublishPackages/abstractions/DependencyLocker.ts deleted file mode 100644 index 775a051..0000000 --- a/scripts/features/PublishPackages/abstractions/DependencyLocker.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Abstraction } from "@webiny/di"; -import type { PackageJson } from "type-fest"; - -export type IDependencyLockerLockParams = Pick; - -export interface IDependencyLocker { - /** - * Strips all version range operators (^, ~, >=, >, <=, <) from - * dependencies and devDependencies. peerDependencies are left untouched. - * Mutates the object in place. No-op when exactDependencyVersions is false. - */ - lock(pkgJson: IDependencyLockerLockParams): void; -} - -export const DependencyLocker = new Abstraction("Scripts/DependencyLocker"); - -export namespace DependencyLocker { - export type Interface = IDependencyLocker; - export type Params = IDependencyLockerLockParams; - export type Dependency = Required; -} diff --git a/scripts/features/PublishPackages/abstractions/GitRepository.ts b/scripts/features/PublishPackages/abstractions/GitRepository.ts deleted file mode 100644 index ef7d976..0000000 --- a/scripts/features/PublishPackages/abstractions/GitRepository.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface IGitRepository { - /** Returns true if the given tag exists in the repository. */ - tagExists(tag: string): boolean; - /** Returns commit subjects since the given ref, or all commits if ref is null. */ - commitsSince(ref: string | null): string[]; - /** Creates a lightweight tag at HEAD. */ - createTag(tag: string): void; - /** Returns the fetch URL of the named remote. Throws if the remote does not exist. */ - getRemoteUrl(name: string): string; -} - -export const GitRepository = new Abstraction("Scripts/GitRepository"); - -export namespace GitRepository { - export type Interface = IGitRepository; -} diff --git a/scripts/features/PublishPackages/abstractions/GithubRelease.ts b/scripts/features/PublishPackages/abstractions/GithubRelease.ts deleted file mode 100644 index 75341d7..0000000 --- a/scripts/features/PublishPackages/abstractions/GithubRelease.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface IGithubRelease { - /** - * Creates a GitHub release for the given tag. - * In dry-run mode, validates config (token + remote URL) but skips the API call. - */ - createRelease(tag: string, title: string, body: string): Promise; -} - -export const GithubRelease = new Abstraction("Scripts/GithubRelease"); - -export namespace GithubRelease { - export type Interface = IGithubRelease; -} diff --git a/scripts/features/PublishPackages/abstractions/GithubToken.ts b/scripts/features/PublishPackages/abstractions/GithubToken.ts deleted file mode 100644 index 7bb4f9f..0000000 --- a/scripts/features/PublishPackages/abstractions/GithubToken.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface IGithubToken { - /** Returns the GitHub personal access token. Throws if unavailable. */ - getToken(): string; -} - -export const GithubToken = new Abstraction("Scripts/GithubToken"); - -export namespace GithubToken { - export type Interface = IGithubToken; -} diff --git a/scripts/features/PublishPackages/abstractions/NpmRegistry.ts b/scripts/features/PublishPackages/abstractions/NpmRegistry.ts deleted file mode 100644 index 40d619d..0000000 --- a/scripts/features/PublishPackages/abstractions/NpmRegistry.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface INpmRegistry { - /** Returns the latest published version, or null if the package is not yet on the registry. */ - getLatestVersion(packageName: string): string | null; - /** Publishes the package from the given dist directory. */ - publish(distDir: string): void; -} - -export const NpmRegistry = new Abstraction("Scripts/NpmRegistry"); - -export namespace NpmRegistry { - export type Interface = INpmRegistry; -} diff --git a/scripts/features/PublishPackages/abstractions/ProjectConfig.ts b/scripts/features/PublishPackages/abstractions/ProjectConfig.ts deleted file mode 100644 index e625740..0000000 --- a/scripts/features/PublishPackages/abstractions/ProjectConfig.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface IProjectConfig { - rootDir: string; - packageName: string; - /** When true, compute and log the release plan but skip all side effects (npm publish, git tag, CHANGELOG.md). */ - dryRun: boolean; - /** When true, strip all version range operators from dependencies and devDependencies before publishing. */ - exactDependencyVersions: boolean; -} - -export const ProjectConfig = new Abstraction("Scripts/ProjectConfig"); - -export namespace ProjectConfig { - export type Interface = IProjectConfig; -} diff --git a/scripts/features/PublishPackages/abstractions/PublishOrchestrator.ts b/scripts/features/PublishPackages/abstractions/PublishOrchestrator.ts deleted file mode 100644 index a33dc71..0000000 --- a/scripts/features/PublishPackages/abstractions/PublishOrchestrator.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface IPublishOrchestrator { - run(): Promise; -} - -export const PublishOrchestrator = new Abstraction( - "Scripts/PublishOrchestrator" -); - -export namespace PublishOrchestrator { - export type Interface = IPublishOrchestrator; -} diff --git a/scripts/features/PublishPackages/abstractions/VersionStrategy.ts b/scripts/features/PublishPackages/abstractions/VersionStrategy.ts deleted file mode 100644 index 057941f..0000000 --- a/scripts/features/PublishPackages/abstractions/VersionStrategy.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export type VersionResult = { newVersion: string; bumpType: "minor" | "patch" } | { error: string }; - -export interface IVersionStrategy { - /** - * Given the current version and commits since last release, - * returns the new version and bump type, or an error if any commit is invalid. - */ - computeVersion(currentVersion: string, commits: string[]): VersionResult; -} - -export const VersionStrategy = new Abstraction("Scripts/VersionStrategy"); - -export namespace VersionStrategy { - export type Interface = IVersionStrategy; -} diff --git a/scripts/features/PublishPackages/abstractions/index.ts b/scripts/features/PublishPackages/abstractions/index.ts deleted file mode 100644 index 306ee5a..0000000 --- a/scripts/features/PublishPackages/abstractions/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export { ProjectConfig } from "./ProjectConfig.ts"; -export { NpmRegistry } from "./NpmRegistry.ts"; -export { GitRepository } from "./GitRepository.ts"; -export { VersionStrategy } from "./VersionStrategy.ts"; -export type { VersionResult } from "./VersionStrategy.ts"; -export { ChangelogWriter } from "./ChangelogWriter.ts"; -export { PublishOrchestrator } from "./PublishOrchestrator.ts"; -export { GithubRelease } from "./GithubRelease.ts"; -export { GithubToken } from "./GithubToken.ts"; -export { DependencyLocker } from "./DependencyLocker.ts"; diff --git a/scripts/features/PublishPackages/index.ts b/scripts/features/PublishPackages/index.ts deleted file mode 100644 index 7a6a298..0000000 --- a/scripts/features/PublishPackages/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { readFileSync } from "node:fs"; -import { join } from "node:path"; -import { Container } from "@webiny/di"; -import { ProjectConfig, PublishOrchestrator } from "./abstractions/index.ts"; -import { NpmRegistry as NpmRegistryImpl } from "./NpmRegistry.ts"; -import { GitRepository as GitRepositoryImpl } from "./GitRepository.ts"; -import { VersionStrategy as VersionStrategyImpl } from "./VersionStrategy.ts"; -import { ChangelogWriter as ChangelogWriterImpl } from "./ChangelogWriter.ts"; -import { GithubToken as GithubTokenImpl } from "./GithubToken.ts"; -import { GithubRelease as GithubReleaseImpl } from "./GithubRelease.ts"; -import { PublishOrchestrator as PublishOrchestratorImpl } from "./PublishOrchestrator.ts"; -import { DependencyLocker as DependencyLockerImpl } from "./DependencyLocker.ts"; - -export async function run(rootDir: string): Promise { - const dryRun = !process.argv.includes("--publish"); - const exactDependencyVersions = process.argv.includes("--exact-dependency-versions"); - if (dryRun) { - console.log("Dry run — pass --publish to actually publish."); - } - - const pkgJson = JSON.parse(readFileSync(join(rootDir, "package.json"), "utf8")) as { - name: string; - }; - const container = new Container(); - container.registerInstance(ProjectConfig, { - rootDir, - packageName: pkgJson.name, - dryRun, - exactDependencyVersions - }); - container.register(NpmRegistryImpl).inSingletonScope(); - container.register(GitRepositoryImpl).inSingletonScope(); - container.register(VersionStrategyImpl).inSingletonScope(); - container.register(ChangelogWriterImpl).inSingletonScope(); - container.register(GithubTokenImpl).inSingletonScope(); - container.register(GithubReleaseImpl).inSingletonScope(); - container.register(DependencyLockerImpl).inSingletonScope(); - container.register(PublishOrchestratorImpl).inSingletonScope(); - await container.resolve(PublishOrchestrator).run(); -} diff --git a/scripts/features/PublishToVerdaccio/PublishOrchestrator.ts b/scripts/features/PublishToVerdaccio/PublishOrchestrator.ts deleted file mode 100644 index ea5a13c..0000000 --- a/scripts/features/PublishToVerdaccio/PublishOrchestrator.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { execFileSync } from "node:child_process"; -import { readFileSync, writeFileSync } from "node:fs"; -import { join } from "node:path"; -import { PublishOrchestrator as PublishOrchestratorAbstraction } from "./abstractions/PublishOrchestrator.ts"; -import { ProjectConfig } from "./abstractions/ProjectConfig.ts"; -import { bin } from "../../bin.ts"; - -interface DistPackageJson { - version: string; - [key: string]: unknown; -} - -class PublishOrchestratorImpl implements PublishOrchestratorAbstraction.Interface { - private readonly config: ProjectConfig.Interface; - - public constructor(config: ProjectConfig.Interface) { - this.config = config; - } - - public run(): void { - const { rootDir, packageName, version } = this.config; - const distDir = join(rootDir, "dist"); - const pkgJsonPath = join(distDir, "package.json"); - - const pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8")) as DistPackageJson; - pkgJson.version = version; - writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2) + "\n"); - - console.log(`Publishing ${packageName}@${version} to http://localhost:4873 ...`); - - execFileSync(bin("npm"), ["publish", "--registry", "http://localhost:4873"], { - cwd: distDir, - stdio: "inherit" - }); - } -} - -export const PublishOrchestrator = PublishOrchestratorAbstraction.createImplementation({ - implementation: PublishOrchestratorImpl, - dependencies: [ProjectConfig] -}); diff --git a/scripts/features/PublishToVerdaccio/abstractions/ProjectConfig.ts b/scripts/features/PublishToVerdaccio/abstractions/ProjectConfig.ts deleted file mode 100644 index 5733d24..0000000 --- a/scripts/features/PublishToVerdaccio/abstractions/ProjectConfig.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface IProjectConfig { - rootDir: string; - packageName: string; - /** Exact semver string to inject into dist/package.json before publishing. */ - version: string; -} - -export const ProjectConfig = new Abstraction( - "Scripts/VerdaccioPublish/ProjectConfig" -); - -export namespace ProjectConfig { - export type Interface = IProjectConfig; -} diff --git a/scripts/features/PublishToVerdaccio/abstractions/PublishOrchestrator.ts b/scripts/features/PublishToVerdaccio/abstractions/PublishOrchestrator.ts deleted file mode 100644 index 70a29b5..0000000 --- a/scripts/features/PublishToVerdaccio/abstractions/PublishOrchestrator.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Abstraction } from "@webiny/di"; - -export interface IPublishOrchestrator { - /** - * Injects the target version into dist/package.json and publishes - * the package to the local Verdaccio registry at http://localhost:4873. - * Throws if the npm publish command exits with a non-zero status. - */ - run(): void; -} - -export const PublishOrchestrator = new Abstraction( - "Scripts/VerdaccioPublish/PublishOrchestrator" -); - -export namespace PublishOrchestrator { - export type Interface = IPublishOrchestrator; -} diff --git a/scripts/features/PublishToVerdaccio/abstractions/index.ts b/scripts/features/PublishToVerdaccio/abstractions/index.ts deleted file mode 100644 index 4140c2f..0000000 --- a/scripts/features/PublishToVerdaccio/abstractions/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { ProjectConfig } from "./ProjectConfig.ts"; -export { PublishOrchestrator } from "./PublishOrchestrator.ts"; diff --git a/scripts/features/PublishToVerdaccio/index.ts b/scripts/features/PublishToVerdaccio/index.ts deleted file mode 100644 index 3ccc41c..0000000 --- a/scripts/features/PublishToVerdaccio/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { readFileSync } from "node:fs"; -import { join } from "node:path"; -import { Container } from "@webiny/di"; -import { ProjectConfig, PublishOrchestrator } from "./abstractions/index.ts"; -import { PublishOrchestrator as PublishOrchestratorImpl } from "./PublishOrchestrator.ts"; - -export function run(rootDir: string, version: string): void { - const pkg = JSON.parse(readFileSync(join(rootDir, "package.json"), "utf8")) as { - name: string; - }; - const container = new Container(); - container.registerInstance(ProjectConfig, { - rootDir, - packageName: pkg.name, - version - }); - container.register(PublishOrchestratorImpl).inSingletonScope(); - container.resolve(PublishOrchestrator).run(); -} diff --git a/scripts/publishPackages.ts b/scripts/publishPackages.ts deleted file mode 100644 index 829ead9..0000000 --- a/scripts/publishPackages.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { fileURLToPath } from "node:url"; -import { run as build } from "./features/BuildPackages/index.ts"; -import { run as publish } from "./features/PublishPackages/index.ts"; - -const root = fileURLToPath(new URL("..", import.meta.url)); -build(root); -await publish(root); diff --git a/scripts/publishToVerdaccio.ts b/scripts/publishToVerdaccio.ts deleted file mode 100644 index 5942621..0000000 --- a/scripts/publishToVerdaccio.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { fileURLToPath } from "node:url"; -import { run as build } from "./features/BuildPackages/index.ts"; -import { run as publish } from "./features/PublishToVerdaccio/index.ts"; - -const root = fileURLToPath(new URL("..", import.meta.url)); - -const versionIndex = process.argv.indexOf("--version"); -const versionValue = process.argv[versionIndex + 1]; -if (versionIndex === -1 || !versionValue || versionValue.startsWith("-")) { - console.error( - "Error: --version is required.\n" + - "Example: yarn publish:verdaccio --version 1.0.0-beta.abcdefg" - ); - process.exit(1); -} - -build(root); -publish(root, versionValue); diff --git a/yarn.lock b/yarn.lock index a1da258..a43ab82 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,6 +41,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.5.5": + version: 7.29.2 + resolution: "@babel/runtime@npm:7.29.2" + checksum: 10c0/30b80a0140d16467792e1bbeb06f655b0dab70407da38dfac7fedae9c859f9ae9d846ef14ad77bd3814c064295fe9b1bc551f1541ea14646ae9f22b71a8bc17a + languageName: node + linkType: hard + "@babel/types@npm:^7.29.0": version: 7.29.0 resolution: "@babel/types@npm:7.29.0" @@ -58,29 +65,236 @@ __metadata: languageName: node linkType: hard -"@cypress/request@npm:3.0.10": - version: 3.0.10 - resolution: "@cypress/request@npm:3.0.10" +"@changesets/apply-release-plan@npm:^7.1.1": + version: 7.1.1 + resolution: "@changesets/apply-release-plan@npm:7.1.1" + dependencies: + "@changesets/config": "npm:^3.1.4" + "@changesets/get-version-range-type": "npm:^0.4.0" + "@changesets/git": "npm:^3.0.4" + "@changesets/should-skip-package": "npm:^0.1.2" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + detect-indent: "npm:^6.0.0" + fs-extra: "npm:^7.0.1" + lodash.startcase: "npm:^4.4.0" + outdent: "npm:^0.5.0" + prettier: "npm:^2.7.1" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.5.3" + checksum: 10c0/27de184e74e8e48b43fca1f73e7c7a2887b0cdacfe7ba9c09cdc4547dff0de1587bed5fe2d5ec0a3754fa422f6b8a528e0ac452c22ac7a6ae5211f5ac089bfb2 + languageName: node + linkType: hard + +"@changesets/assemble-release-plan@npm:^6.0.10": + version: 6.0.10 + resolution: "@changesets/assemble-release-plan@npm:6.0.10" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.4" + "@changesets/should-skip-package": "npm:^0.1.2" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + semver: "npm:^7.5.3" + checksum: 10c0/a0ea336a5f19f8d0a97b684983bcd9c3bb8d6881b7b6abd5b482b301795ae4600924c188982f5f98dc48ac88e94a063b66ab72659041eb2623ade3e35f05d555 + languageName: node + linkType: hard + +"@changesets/changelog-git@npm:^0.2.1": + version: 0.2.1 + resolution: "@changesets/changelog-git@npm:0.2.1" + dependencies: + "@changesets/types": "npm:^6.1.0" + checksum: 10c0/6a6fb315ffb2266fcb8f32ae9a60ccdb5436e52350a2f53beacf9822d3355f9052aba5001a718e12af472b4a8fabd69b408d0b11c02ac909ba7a183d27a9f7fd + languageName: node + linkType: hard + +"@changesets/cli@npm:^2.29.4": + version: 2.31.0 + resolution: "@changesets/cli@npm:2.31.0" + dependencies: + "@changesets/apply-release-plan": "npm:^7.1.1" + "@changesets/assemble-release-plan": "npm:^6.0.10" + "@changesets/changelog-git": "npm:^0.2.1" + "@changesets/config": "npm:^3.1.4" + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.4" + "@changesets/get-release-plan": "npm:^4.0.16" + "@changesets/git": "npm:^3.0.4" + "@changesets/logger": "npm:^0.1.1" + "@changesets/pre": "npm:^2.0.2" + "@changesets/read": "npm:^0.6.7" + "@changesets/should-skip-package": "npm:^0.1.2" + "@changesets/types": "npm:^6.1.0" + "@changesets/write": "npm:^0.4.0" + "@inquirer/external-editor": "npm:^1.0.2" + "@manypkg/get-packages": "npm:^1.1.3" + ansi-colors: "npm:^4.1.3" + enquirer: "npm:^2.4.1" + fs-extra: "npm:^7.0.1" + mri: "npm:^1.2.0" + package-manager-detector: "npm:^0.2.0" + picocolors: "npm:^1.1.0" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.5.3" + spawndamnit: "npm:^3.0.1" + term-size: "npm:^2.1.0" + bin: + changeset: bin.js + checksum: 10c0/3b15f4f5fc7ccaa0b82ca4f9803977ed141b6bed66f83cf8004c2f4ab8e3a00c3a813569b76e4c757d0a8ca5e778bcb6df6e4df91be6c98e0dfaa2cff87c9434 + languageName: node + linkType: hard + +"@changesets/config@npm:^3.1.4": + version: 3.1.4 + resolution: "@changesets/config@npm:3.1.4" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/get-dependents-graph": "npm:^2.1.4" + "@changesets/logger": "npm:^0.1.1" + "@changesets/should-skip-package": "npm:^0.1.2" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + fs-extra: "npm:^7.0.1" + micromatch: "npm:^4.0.8" + checksum: 10c0/1c0e7975aa719e2c87dfda3f5a1eb81b9f4852cdfb5b5c9d181fa2f8f485e92370b3bdfdb6f666432207dd75a3f79fa8fffe7847d48fb11308acb5ecf327bc12 + languageName: node + linkType: hard + +"@changesets/errors@npm:^0.2.0": + version: 0.2.0 + resolution: "@changesets/errors@npm:0.2.0" + dependencies: + extendable-error: "npm:^0.1.5" + checksum: 10c0/f2757c752ab04e9733b0dfd7903f1caf873f9e603794c4d9ea2294af4f937c73d07273c24be864ad0c30b6a98424360d5b96a6eab14f97f3cf2cbfd3763b95c1 + languageName: node + linkType: hard + +"@changesets/get-dependents-graph@npm:^2.1.4": + version: 2.1.4 + resolution: "@changesets/get-dependents-graph@npm:2.1.4" + dependencies: + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + picocolors: "npm:^1.1.0" + semver: "npm:^7.5.3" + checksum: 10c0/37b12ba42f16c458d0b574bcafa0247ff2b9a218686a64c86fc75bccc9ba3982f9c27206542941cf3a0563d9b199f40a830682b45e9fd902536de91344cbd0a2 + languageName: node + linkType: hard + +"@changesets/get-release-plan@npm:^4.0.16": + version: 4.0.16 + resolution: "@changesets/get-release-plan@npm:4.0.16" + dependencies: + "@changesets/assemble-release-plan": "npm:^6.0.10" + "@changesets/config": "npm:^3.1.4" + "@changesets/pre": "npm:^2.0.2" + "@changesets/read": "npm:^0.6.7" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + checksum: 10c0/4be4553e13fe331f6d5b2ed98fece21c8d2b38c04a0543f726a0398b7538ef8fd073d712c35ae4540ed4fc6f84f08de6335318bc09dd562b189fb6968d049e95 + languageName: node + linkType: hard + +"@changesets/get-version-range-type@npm:^0.4.0": + version: 0.4.0 + resolution: "@changesets/get-version-range-type@npm:0.4.0" + checksum: 10c0/e466208c8383489a383f37958d8b5b9aed38539f9287b47fe155a2e8855973f6960fb1724a1ee33b11580d65e1011059045ee654e8ef51e4783017d8989c9d3f + languageName: node + linkType: hard + +"@changesets/git@npm:^3.0.4": + version: 3.0.4 + resolution: "@changesets/git@npm:3.0.4" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@manypkg/get-packages": "npm:^1.1.3" + is-subdir: "npm:^1.1.1" + micromatch: "npm:^4.0.8" + spawndamnit: "npm:^3.0.1" + checksum: 10c0/4abbdc1dec6ddc50b6ad927d9eba4f23acd775fdff615415813099befb0cecd1b0f56ceea5e18a5a3cbbb919d68179366074b02a954fbf4016501e5fd125d2b5 + languageName: node + linkType: hard + +"@changesets/logger@npm:^0.1.1": + version: 0.1.1 + resolution: "@changesets/logger@npm:0.1.1" + dependencies: + picocolors: "npm:^1.1.0" + checksum: 10c0/a0933b5bd4d99e10730b22612dc1bdfd25b8804c5b48f8cada050bf5c7a89b2ae9a61687f846a5e9e5d379a95b59fef795c8d5d91e49a251f8da2be76133f83f + languageName: node + linkType: hard + +"@changesets/parse@npm:^0.4.3": + version: 0.4.3 + resolution: "@changesets/parse@npm:0.4.3" + dependencies: + "@changesets/types": "npm:^6.1.0" + js-yaml: "npm:^4.1.1" + checksum: 10c0/4d8488eaf224974ae335fec964dc1dc486abcfa9f96856cf4267c2765b02ed6af1778375ec03d38252ebab9e191aa4a11c5f37a6ad42e907e08290fed2b9690c + languageName: node + linkType: hard + +"@changesets/pre@npm:^2.0.2": + version: 2.0.2 + resolution: "@changesets/pre@npm:2.0.2" + dependencies: + "@changesets/errors": "npm:^0.2.0" + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + fs-extra: "npm:^7.0.1" + checksum: 10c0/0af9396d84c47a88d79b757e9db4e3579b6620260f92c243b8349e7fcefca3c2652583f6d215c13115bed5d5cdc30c975f307fd6acbb89d205b1ba2ae403b918 + languageName: node + linkType: hard + +"@changesets/read@npm:^0.6.7": + version: 0.6.7 + resolution: "@changesets/read@npm:0.6.7" + dependencies: + "@changesets/git": "npm:^3.0.4" + "@changesets/logger": "npm:^0.1.1" + "@changesets/parse": "npm:^0.4.3" + "@changesets/types": "npm:^6.1.0" + fs-extra: "npm:^7.0.1" + p-filter: "npm:^2.1.0" + picocolors: "npm:^1.1.0" + checksum: 10c0/eebda5f5cea8684b9cb470e74cd5e67043a62ca54452ac88bb1a998bebeee1a2e3a642dc76818155a145863551c65f10f9c4ff85378b0419179fc60049edbbc6 + languageName: node + linkType: hard + +"@changesets/should-skip-package@npm:^0.1.2": + version: 0.1.2 + resolution: "@changesets/should-skip-package@npm:0.1.2" + dependencies: + "@changesets/types": "npm:^6.1.0" + "@manypkg/get-packages": "npm:^1.1.3" + checksum: 10c0/484e339e7d6e6950e12bff4eda6e8eccb077c0fbb1f09dd95d2ae948b715226a838c71eaf50cd2d7e0e631ce3bfb1ca93ac752436e6feae5b87aece2e917b440 + languageName: node + linkType: hard + +"@changesets/types@npm:^4.0.1": + version: 4.1.0 + resolution: "@changesets/types@npm:4.1.0" + checksum: 10c0/a372ad21f6a1e0d4ce6c19573c1ca269eef1ad53c26751ad9515a24f003e7c49dcd859dbb1fedb6badaf7be956c1559e8798304039e0ec0da2d9a68583f13464 + languageName: node + linkType: hard + +"@changesets/types@npm:^6.1.0": + version: 6.1.0 + resolution: "@changesets/types@npm:6.1.0" + checksum: 10c0/b4cea3a4465d1eaf0bbd7be1e404aca5a055a61d4cc72aadcb73bbbda1670b4022736b8d3052616cbf1f451afa0637545d077697f4b923236539af9cd5abce6c + languageName: node + linkType: hard + +"@changesets/write@npm:^0.4.0": + version: 0.4.0 + resolution: "@changesets/write@npm:0.4.0" dependencies: - aws-sign2: "npm:~0.7.0" - aws4: "npm:^1.8.0" - caseless: "npm:~0.12.0" - combined-stream: "npm:~1.0.6" - extend: "npm:~3.0.2" - forever-agent: "npm:~0.6.1" - form-data: "npm:~4.0.4" - http-signature: "npm:~1.4.0" - is-typedarray: "npm:~1.0.0" - isstream: "npm:~0.1.2" - json-stringify-safe: "npm:~5.0.1" - mime-types: "npm:~2.1.19" - performance-now: "npm:^2.1.0" - qs: "npm:~6.14.1" - safe-buffer: "npm:^5.1.2" - tough-cookie: "npm:^5.0.0" - tunnel-agent: "npm:^0.6.0" - uuid: "npm:^8.3.2" - checksum: 10c0/93da9754315261474deeefff235ed0397811d49f03f2dfcebd01aff12b75fd58e104b0c7fd3d720e1ebc51d73059e1f540db68c58bbda4612493610227ade710 + "@changesets/types": "npm:^6.1.0" + fs-extra: "npm:^7.0.1" + human-id: "npm:^4.1.1" + prettier: "npm:^2.7.1" + checksum: 10c0/311f4d0e536d1b5f2d3f9053537d62b2d4cdbd51e1d2767807ac9d1e0f380367f915d2ad370e5c73902d5a54bffd282d53fff5418c8ad31df51751d652bea826 languageName: node linkType: hard @@ -112,6 +326,21 @@ __metadata: languageName: node linkType: hard +"@inquirer/external-editor@npm:^1.0.2": + version: 1.0.3 + resolution: "@inquirer/external-editor@npm:1.0.3" + dependencies: + chardet: "npm:^2.1.1" + iconv-lite: "npm:^0.7.0" + peerDependencies: + "@types/node": ">=18" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10c0/82951cb7f3762dd78cca2ea291396841e3f4adfe26004b5badfed1cec4b6a04bb567dff94d0e41b35c61bdd7957317c64c22f58074d14b238d44e44d9e420019 + languageName: node + linkType: hard + "@isaacs/fs-minipass@npm:^4.0.0": version: 4.0.1 resolution: "@isaacs/fs-minipass@npm:4.0.1" @@ -145,6 +374,32 @@ __metadata: languageName: node linkType: hard +"@manypkg/find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "@manypkg/find-root@npm:1.1.0" + dependencies: + "@babel/runtime": "npm:^7.5.5" + "@types/node": "npm:^12.7.1" + find-up: "npm:^4.1.0" + fs-extra: "npm:^8.1.0" + checksum: 10c0/0ee907698e6c73d6f1821ff630f3fec6dcf38260817c8752fec8991ac38b95ba431ab11c2773ddf9beb33d0e057f1122b00e8ffc9b8411b3fd24151413626fa6 + languageName: node + linkType: hard + +"@manypkg/get-packages@npm:^1.1.3": + version: 1.1.3 + resolution: "@manypkg/get-packages@npm:1.1.3" + dependencies: + "@babel/runtime": "npm:^7.5.5" + "@changesets/types": "npm:^4.0.1" + "@manypkg/find-root": "npm:^1.1.0" + fs-extra: "npm:^8.1.0" + globby: "npm:^11.0.0" + read-yaml-file: "npm:^1.1.0" + checksum: 10c0/f05907d1174ae28861eaa06d0efdc144f773d9a4b8b65e1e7cdc01eb93361d335351b4a336e05c6aac02661be39e8809a3f7ad28bc67b6b338071434ab442130 + languageName: node + linkType: hard + "@napi-rs/wasm-runtime@npm:^0.2.9": version: 0.2.12 resolution: "@napi-rs/wasm-runtime@npm:0.2.12" @@ -195,132 +450,6 @@ __metadata: languageName: node linkType: hard -"@octokit/auth-token@npm:^6.0.0": - version: 6.0.0 - resolution: "@octokit/auth-token@npm:6.0.0" - checksum: 10c0/32ecc904c5f6f4e5d090bfcc679d70318690c0a0b5040cd9a25811ad9dcd44c33f2cf96b6dbee1cd56cf58fde28fb1819c01b58718aa5c971f79c822357cb5c0 - languageName: node - linkType: hard - -"@octokit/core@npm:^7.0.6": - version: 7.0.6 - resolution: "@octokit/core@npm:7.0.6" - dependencies: - "@octokit/auth-token": "npm:^6.0.0" - "@octokit/graphql": "npm:^9.0.3" - "@octokit/request": "npm:^10.0.6" - "@octokit/request-error": "npm:^7.0.2" - "@octokit/types": "npm:^16.0.0" - before-after-hook: "npm:^4.0.0" - universal-user-agent: "npm:^7.0.0" - checksum: 10c0/95a328ff7c7223d9eb4aa778c63171828514ae0e0f588d33beb81a4dc03bbeae055382f6060ce23c979ab46272409942ff2cf3172109999e48429c47055b1fbe - languageName: node - linkType: hard - -"@octokit/endpoint@npm:^11.0.3": - version: 11.0.3 - resolution: "@octokit/endpoint@npm:11.0.3" - dependencies: - "@octokit/types": "npm:^16.0.0" - universal-user-agent: "npm:^7.0.2" - checksum: 10c0/3f9b67e6923ece5009aebb0dcbae5837fb574bc422561424049a43ead7fea6f132234edb72239d6ec067cf734937a608e4081af81c109de2cb754528f0d00520 - languageName: node - linkType: hard - -"@octokit/graphql@npm:^9.0.3": - version: 9.0.3 - resolution: "@octokit/graphql@npm:9.0.3" - dependencies: - "@octokit/request": "npm:^10.0.6" - "@octokit/types": "npm:^16.0.0" - universal-user-agent: "npm:^7.0.0" - checksum: 10c0/58588d3fb2834f64244fa5376ca7922a30117b001b621e141fab0d52806370803ab0c046ac99b120fa5f45b770f52a815157fb6ffc147fc6c1da4047c1f1af49 - languageName: node - linkType: hard - -"@octokit/openapi-types@npm:^27.0.0": - version: 27.0.0 - resolution: "@octokit/openapi-types@npm:27.0.0" - checksum: 10c0/602d1de033da180a2e982cdbd3646bd5b2e16ecf36b9955a0f23e37ae9e6cb086abb48ff2ae6f2de000fce03e8ae9051794611ae4a95a8f5f6fb63276e7b8e31 - languageName: node - linkType: hard - -"@octokit/plugin-paginate-rest@npm:^14.0.0": - version: 14.0.0 - resolution: "@octokit/plugin-paginate-rest@npm:14.0.0" - dependencies: - "@octokit/types": "npm:^16.0.0" - peerDependencies: - "@octokit/core": ">=6" - checksum: 10c0/841d79d4ccfe18fc809a4a67529b75c1dcdda13399bf4bf5b48ce7559c8b4b2cd422e3204bad4cbdea31c0cf0943521067415268e5bcfc615a3b813e058cad6b - languageName: node - linkType: hard - -"@octokit/plugin-request-log@npm:^6.0.0": - version: 6.0.0 - resolution: "@octokit/plugin-request-log@npm:6.0.0" - peerDependencies: - "@octokit/core": ">=6" - checksum: 10c0/40e46ad0c77235742d0bf698ab4e17df1ae06e0d7824ffc5867ed71e27de860875adb73d89629b823fe8647459a8f262c26ed1aa6ee374873fa94095f37df0bb - languageName: node - linkType: hard - -"@octokit/plugin-rest-endpoint-methods@npm:^17.0.0": - version: 17.0.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:17.0.0" - dependencies: - "@octokit/types": "npm:^16.0.0" - peerDependencies: - "@octokit/core": ">=6" - checksum: 10c0/cf9984d7cf6a36ff7ff1b86078ae45fe246e3df10fcef0bccf20c8cfd27bf5e7d98dcb9cf5a7b56332b9c6fa30be28d159c2987d272a4758f77056903d94402f - languageName: node - linkType: hard - -"@octokit/request-error@npm:^7.0.2": - version: 7.1.0 - resolution: "@octokit/request-error@npm:7.1.0" - dependencies: - "@octokit/types": "npm:^16.0.0" - checksum: 10c0/62b90a54545c36a30b5ffdda42e302c751be184d85b68ffc7f1242c51d7ca54dbd185b7d0027b491991776923a910c85c9c51269fe0d86111bac187507a5abc4 - languageName: node - linkType: hard - -"@octokit/request@npm:^10.0.6": - version: 10.0.9 - resolution: "@octokit/request@npm:10.0.9" - dependencies: - "@octokit/endpoint": "npm:^11.0.3" - "@octokit/request-error": "npm:^7.0.2" - "@octokit/types": "npm:^16.0.0" - content-type: "npm:^2.0.0" - fast-content-type-parse: "npm:^3.0.0" - json-with-bigint: "npm:^3.5.3" - universal-user-agent: "npm:^7.0.2" - checksum: 10c0/2a642870202117c8cf0021b7c01a92e18acdec4826c103f7749a942537a265251e033c0ac5178807f0c63b9759e149ce9701015454167d4c1627d30218ddf9f2 - languageName: node - linkType: hard - -"@octokit/rest@npm:^22.0.1": - version: 22.0.1 - resolution: "@octokit/rest@npm:22.0.1" - dependencies: - "@octokit/core": "npm:^7.0.6" - "@octokit/plugin-paginate-rest": "npm:^14.0.0" - "@octokit/plugin-request-log": "npm:^6.0.0" - "@octokit/plugin-rest-endpoint-methods": "npm:^17.0.0" - checksum: 10c0/f3abd84e887cc837973214ce70720a9bba53f5575f40601c6122aa25206e9055d859c0388437f0a137f6cd0e4ff405e1b46b903475b0db32a17bada0c6513d5b - languageName: node - linkType: hard - -"@octokit/types@npm:^16.0.0": - version: 16.0.0 - resolution: "@octokit/types@npm:16.0.0" - dependencies: - "@octokit/openapi-types": "npm:^27.0.0" - checksum: 10c0/b8d41098ba6fc194d13d641f9441347e3a3b96c0efabac0e14f57319340a2d4d1c8676e4cb37ab3062c5c323c617e790b0126916e9bf7b201b0cced0826f8ae2 - languageName: node - linkType: hard - "@oxc-parser/binding-darwin-arm64@npm:0.64.0": version: 0.64.0 resolution: "@oxc-parser/binding-darwin-arm64@npm:0.64.0" @@ -407,268 +536,268 @@ __metadata: languageName: node linkType: hard -"@oxfmt/binding-android-arm-eabi@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-android-arm-eabi@npm:0.50.0" +"@oxfmt/binding-android-arm-eabi@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-android-arm-eabi@npm:0.51.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@oxfmt/binding-android-arm64@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-android-arm64@npm:0.50.0" +"@oxfmt/binding-android-arm64@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-android-arm64@npm:0.51.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@oxfmt/binding-darwin-arm64@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-darwin-arm64@npm:0.50.0" +"@oxfmt/binding-darwin-arm64@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-darwin-arm64@npm:0.51.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@oxfmt/binding-darwin-x64@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-darwin-x64@npm:0.50.0" +"@oxfmt/binding-darwin-x64@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-darwin-x64@npm:0.51.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@oxfmt/binding-freebsd-x64@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-freebsd-x64@npm:0.50.0" +"@oxfmt/binding-freebsd-x64@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-freebsd-x64@npm:0.51.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@oxfmt/binding-linux-arm-gnueabihf@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.50.0" +"@oxfmt/binding-linux-arm-gnueabihf@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.51.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxfmt/binding-linux-arm-musleabihf@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.50.0" +"@oxfmt/binding-linux-arm-musleabihf@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.51.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxfmt/binding-linux-arm64-gnu@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.50.0" +"@oxfmt/binding-linux-arm64-gnu@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.51.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@oxfmt/binding-linux-arm64-musl@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.50.0" +"@oxfmt/binding-linux-arm64-musl@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.51.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@oxfmt/binding-linux-ppc64-gnu@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.50.0" +"@oxfmt/binding-linux-ppc64-gnu@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.51.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@oxfmt/binding-linux-riscv64-gnu@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.50.0" +"@oxfmt/binding-linux-riscv64-gnu@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.51.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@oxfmt/binding-linux-riscv64-musl@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.50.0" +"@oxfmt/binding-linux-riscv64-musl@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.51.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@oxfmt/binding-linux-s390x-gnu@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.50.0" +"@oxfmt/binding-linux-s390x-gnu@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.51.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@oxfmt/binding-linux-x64-gnu@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.50.0" +"@oxfmt/binding-linux-x64-gnu@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.51.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@oxfmt/binding-linux-x64-musl@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-linux-x64-musl@npm:0.50.0" +"@oxfmt/binding-linux-x64-musl@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-linux-x64-musl@npm:0.51.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@oxfmt/binding-openharmony-arm64@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-openharmony-arm64@npm:0.50.0" +"@oxfmt/binding-openharmony-arm64@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-openharmony-arm64@npm:0.51.0" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@oxfmt/binding-win32-arm64-msvc@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.50.0" +"@oxfmt/binding-win32-arm64-msvc@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.51.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@oxfmt/binding-win32-ia32-msvc@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.50.0" +"@oxfmt/binding-win32-ia32-msvc@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.51.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@oxfmt/binding-win32-x64-msvc@npm:0.50.0": - version: 0.50.0 - resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.50.0" +"@oxfmt/binding-win32-x64-msvc@npm:0.51.0": + version: 0.51.0 + resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.51.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@oxlint/binding-android-arm-eabi@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-android-arm-eabi@npm:1.65.0" +"@oxlint/binding-android-arm-eabi@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-android-arm-eabi@npm:1.66.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@oxlint/binding-android-arm64@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-android-arm64@npm:1.65.0" +"@oxlint/binding-android-arm64@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-android-arm64@npm:1.66.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@oxlint/binding-darwin-arm64@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-darwin-arm64@npm:1.65.0" +"@oxlint/binding-darwin-arm64@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-darwin-arm64@npm:1.66.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@oxlint/binding-darwin-x64@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-darwin-x64@npm:1.65.0" +"@oxlint/binding-darwin-x64@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-darwin-x64@npm:1.66.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@oxlint/binding-freebsd-x64@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-freebsd-x64@npm:1.65.0" +"@oxlint/binding-freebsd-x64@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-freebsd-x64@npm:1.66.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@oxlint/binding-linux-arm-gnueabihf@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.65.0" +"@oxlint/binding-linux-arm-gnueabihf@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.66.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxlint/binding-linux-arm-musleabihf@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.65.0" +"@oxlint/binding-linux-arm-musleabihf@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.66.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxlint/binding-linux-arm64-gnu@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.65.0" +"@oxlint/binding-linux-arm64-gnu@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.66.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-arm64-musl@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-arm64-musl@npm:1.65.0" +"@oxlint/binding-linux-arm64-musl@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-arm64-musl@npm:1.66.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@oxlint/binding-linux-ppc64-gnu@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.65.0" +"@oxlint/binding-linux-ppc64-gnu@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.66.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-riscv64-gnu@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.65.0" +"@oxlint/binding-linux-riscv64-gnu@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.66.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-riscv64-musl@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.65.0" +"@oxlint/binding-linux-riscv64-musl@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.66.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@oxlint/binding-linux-s390x-gnu@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.65.0" +"@oxlint/binding-linux-s390x-gnu@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.66.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-x64-gnu@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-x64-gnu@npm:1.65.0" +"@oxlint/binding-linux-x64-gnu@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-x64-gnu@npm:1.66.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@oxlint/binding-linux-x64-musl@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-linux-x64-musl@npm:1.65.0" +"@oxlint/binding-linux-x64-musl@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-linux-x64-musl@npm:1.66.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@oxlint/binding-openharmony-arm64@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-openharmony-arm64@npm:1.65.0" +"@oxlint/binding-openharmony-arm64@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-openharmony-arm64@npm:1.66.0" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@oxlint/binding-win32-arm64-msvc@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.65.0" +"@oxlint/binding-win32-arm64-msvc@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.66.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@oxlint/binding-win32-ia32-msvc@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.65.0" +"@oxlint/binding-win32-ia32-msvc@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.66.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@oxlint/binding-win32-x64-msvc@npm:1.65.0": - version: 1.65.0 - resolution: "@oxlint/binding-win32-x64-msvc@npm:1.65.0" +"@oxlint/binding-win32-x64-msvc@npm:1.66.0": + version: 1.66.0 + resolution: "@oxlint/binding-win32-x64-msvc@npm:1.66.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -796,13 +925,6 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/is@npm:4.6.0": - version: 4.6.0 - resolution: "@sindresorhus/is@npm:4.6.0" - checksum: 10c0/33b6fb1d0834ec8dd7689ddc0e2781c2bfd8b9c4e4bacbcb14111e0ae00621f2c264b8a7d36541799d74888b5dccdf422a891a5cb5a709ace26325eedc81e22e - languageName: node - linkType: hard - "@standard-schema/spec@npm:^1.1.0": version: 1.1.0 resolution: "@standard-schema/spec@npm:1.1.0" @@ -810,15 +932,6 @@ __metadata: languageName: node linkType: hard -"@szmarczak/http-timer@npm:4.0.6": - version: 4.0.6 - resolution: "@szmarczak/http-timer@npm:4.0.6" - dependencies: - defer-to-connect: "npm:^2.0.0" - checksum: 10c0/73946918c025339db68b09abd91fa3001e87fc749c619d2e9c2003a663039d4c3cb89836c98a96598b3d47dec2481284ba85355392644911f5ecd2336536697f - languageName: node - linkType: hard - "@tybys/wasm-util@npm:^0.10.0, @tybys/wasm-util@npm:^0.10.1": version: 0.10.2 resolution: "@tybys/wasm-util@npm:0.10.2" @@ -853,27 +966,18 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=20.0.0, @types/node@npm:>=24": - version: 25.8.0 - resolution: "@types/node@npm:25.8.0" + version: 25.9.0 + resolution: "@types/node@npm:25.9.0" dependencies: undici-types: "npm:>=7.24.0 <7.24.7" - checksum: 10c0/ff53e5428309d2e6060190ec5e02afd0e4a7369456b16130a7f5898f12a6ad0efd62d752830f2f7355d714ae429bc0acbb2dc0cbf761cadb03e88c4996cdf1dc - languageName: node - linkType: hard - -"@types/responselike@npm:1.0.0": - version: 1.0.0 - resolution: "@types/responselike@npm:1.0.0" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/474ac2402e6d43c007eee25f50d01eb1f67255ca83dd8e036877292bbe8dd5d2d1e50b54b408e233b50a8c38e681ff3ebeaf22f18b478056eddb65536abb003a + checksum: 10c0/1845f0ce5471213a4f0c887845c50993968ea863c03bb355282b59bdcc877d009a2785f0f506cfc40b8ce7548a21e33ac826e998be62d42b000bfd9ccdc6c910 languageName: node linkType: hard -"@types/semver@npm:^7.7.1": - version: 7.7.1 - resolution: "@types/semver@npm:7.7.1" - checksum: 10c0/c938aef3bf79a73f0f3f6037c16e2e759ff40c54122ddf0b2583703393d8d3127130823facb880e694caa324eb6845628186aac1997ee8b31dc2d18fafe26268 +"@types/node@npm:^12.7.1": + version: 12.20.55 + resolution: "@types/node@npm:12.20.55" + checksum: 10c0/3b190bb0410047d489c49bbaab592d2e6630de6a50f00ba3d7d513d59401d279972a8f5a598b5bb8ddc1702f8a2f4ec57a65d93852f9c329639738e7053637d1 languageName: node linkType: hard @@ -893,66 +997,66 @@ __metadata: languageName: node linkType: hard -"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260517.1": - version: 7.0.0-dev.20260517.1 - resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260517.1" +"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260519.1": + version: 7.0.0-dev.20260519.1 + resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260519.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260517.1": - version: 7.0.0-dev.20260517.1 - resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260517.1" +"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260519.1": + version: 7.0.0-dev.20260519.1 + resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260519.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260517.1": - version: 7.0.0-dev.20260517.1 - resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260517.1" +"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260519.1": + version: 7.0.0-dev.20260519.1 + resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260519.1" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260517.1": - version: 7.0.0-dev.20260517.1 - resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260517.1" +"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260519.1": + version: 7.0.0-dev.20260519.1 + resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260519.1" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260517.1": - version: 7.0.0-dev.20260517.1 - resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260517.1" +"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260519.1": + version: 7.0.0-dev.20260519.1 + resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260519.1" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260517.1": - version: 7.0.0-dev.20260517.1 - resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260517.1" +"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260519.1": + version: 7.0.0-dev.20260519.1 + resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260519.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260517.1": - version: 7.0.0-dev.20260517.1 - resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260517.1" +"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260519.1": + version: 7.0.0-dev.20260519.1 + resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260519.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@typescript/native-preview@npm:^7.0.0-dev.20260517.1": - version: 7.0.0-dev.20260517.1 - resolution: "@typescript/native-preview@npm:7.0.0-dev.20260517.1" +"@typescript/native-preview@npm:^7.0.0-dev.20260519.1": + version: 7.0.0-dev.20260519.1 + resolution: "@typescript/native-preview@npm:7.0.0-dev.20260519.1" dependencies: - "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260517.1" - "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260517.1" - "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260517.1" - "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260517.1" - "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260517.1" - "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260517.1" - "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260517.1" + "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260519.1" + "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260519.1" + "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260519.1" + "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260519.1" + "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260519.1" + "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260519.1" + "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260519.1" dependenciesMeta: "@typescript/native-preview-darwin-arm64": optional: true @@ -970,254 +1074,7 @@ __metadata: optional: true bin: tsgo: bin/tsgo.js - checksum: 10c0/38e72e1910943d6ddc970386fd0ed2ea0c2db141015adaa970030b7c05f8a2182838d633ea573d4610aba63e9d19f1449a9c0c981e2742cfda435f5790f7de1f - languageName: node - linkType: hard - -"@verdaccio/auth@npm:8.0.1": - version: 8.0.1 - resolution: "@verdaccio/auth@npm:8.0.1" - dependencies: - "@verdaccio/config": "npm:8.1.0" - "@verdaccio/core": "npm:8.1.0" - "@verdaccio/loaders": "npm:8.0.1" - "@verdaccio/signature": "npm:8.0.1" - debug: "npm:4.4.3" - lodash: "npm:4.18.1" - verdaccio-htpasswd: "npm:13.0.1" - checksum: 10c0/14dc83c69562bf3c6fabbfca0d4fbe9c7fee1b2c2428b6ebda5b20728cafe25a8941a58d93a22f29885917838dda6de830ed985dfa9ed6ef9fffc4467d8ee085 - languageName: node - linkType: hard - -"@verdaccio/config@npm:8.1.0": - version: 8.1.0 - resolution: "@verdaccio/config@npm:8.1.0" - dependencies: - "@verdaccio/core": "npm:8.1.0" - debug: "npm:4.4.3" - js-yaml: "npm:4.1.1" - lodash: "npm:4.18.1" - checksum: 10c0/79e8647fc38205e588b85511b34fcb0edeb622f52b0f14a72d08e1855d5f084a8144b2edf10289ce5d5b9760e6e739dc0c6946ebe1a67f009c32c06faf5c87a9 - languageName: node - linkType: hard - -"@verdaccio/core@npm:8.0.0-next-8.29": - version: 8.0.0-next-8.29 - resolution: "@verdaccio/core@npm:8.0.0-next-8.29" - dependencies: - ajv: "npm:8.17.1" - http-errors: "npm:2.0.0" - http-status-codes: "npm:2.3.0" - minimatch: "npm:7.4.6" - process-warning: "npm:1.0.0" - semver: "npm:7.7.3" - checksum: 10c0/99fb7d1900ee2f6ad939a5e930c85e2dc798602748e1698230eb7e7013bfb8e21aa725b3fa22cdec46158a0d4f024634ac406f7d7afa3349e6d3eaf8e19ee97a - languageName: node - linkType: hard - -"@verdaccio/core@npm:8.1.0": - version: 8.1.0 - resolution: "@verdaccio/core@npm:8.1.0" - dependencies: - ajv: "npm:8.18.0" - http-errors: "npm:2.0.1" - http-status-codes: "npm:2.3.0" - minimatch: "npm:7.4.9" - process-warning: "npm:1.0.0" - semver: "npm:7.7.4" - checksum: 10c0/4fec84544df28f75f96bf56502d0f161499685ccd1eccca3b7260b0babed0777e99bb8539f406e700ab4eebaaaace0b29b18971b656884c61b9285b3b333a084 - languageName: node - linkType: hard - -"@verdaccio/file-locking@npm:10.3.3": - version: 10.3.3 - resolution: "@verdaccio/file-locking@npm:10.3.3" - dependencies: - lockfile: "npm:1.0.4" - checksum: 10c0/6ded6a3fe8ff96dc58d8b94defdf4ba331d511b55c4b4bb78883c0ebbf7ba56036d825e5fa29b0f31be5e273a95ccf91ae6f433286d60d62ba056ceaa9d88581 - languageName: node - linkType: hard - -"@verdaccio/file-locking@npm:13.0.0": - version: 13.0.0 - resolution: "@verdaccio/file-locking@npm:13.0.0" - dependencies: - lockfile: "npm:1.0.4" - checksum: 10c0/16784fd9ee80b4b47a79466298d514e733cc64906c1732895cd251094dd4e0d53bec64b4b95f37847b36329efc05ac1979ca4f5ca45bdc92538a8b6b8042365c - languageName: node - linkType: hard - -"@verdaccio/hooks@npm:8.0.1": - version: 8.0.1 - resolution: "@verdaccio/hooks@npm:8.0.1" - dependencies: - "@verdaccio/core": "npm:8.1.0" - "@verdaccio/logger": "npm:8.0.1" - debug: "npm:4.4.3" - got-cjs: "npm:12.5.4" - handlebars: "npm:4.7.9" - checksum: 10c0/5785c4f1eda5c026d446d1ed46896f5a0bbda90ffee25eb3bd2504b9983fe1ce1d442194702489eeee4e79b9dfc03139292197d5a79911b33ac52cc50dcd49ef - languageName: node - linkType: hard - -"@verdaccio/loaders@npm:8.0.1": - version: 8.0.1 - resolution: "@verdaccio/loaders@npm:8.0.1" - dependencies: - "@verdaccio/core": "npm:8.1.0" - debug: "npm:4.4.3" - lodash: "npm:4.18.1" - checksum: 10c0/1aa6bbdf023cfbf6fb238640c7fb261ba8debbffe46f779298ac9c2161e9a0ef7dd4a41cc0a1d9574cd5cbc8f07012e87980aff02496486915d5bc982ebcba80 - languageName: node - linkType: hard - -"@verdaccio/local-storage-legacy@npm:11.3.1": - version: 11.3.1 - resolution: "@verdaccio/local-storage-legacy@npm:11.3.1" - dependencies: - "@verdaccio/core": "npm:8.0.0-next-8.29" - "@verdaccio/file-locking": "npm:10.3.3" - "@verdaccio/streams": "npm:10.2.3" - debug: "npm:4.4.3" - globby: "npm:11.1.0" - lodash: "npm:4.18.1" - lowdb: "npm:1.0.0" - mkdirp: "npm:1.0.4" - sanitize-filename: "npm:1.6.4" - checksum: 10c0/e6ccb07719fe161259c59173642f63d9099171bf036b265b3d45f20919b686491142309731f540524882490d1bbe42486549f047ebaa8550421df02bddc4a59a - languageName: node - linkType: hard - -"@verdaccio/logger-commons@npm:8.0.1": - version: 8.0.1 - resolution: "@verdaccio/logger-commons@npm:8.0.1" - dependencies: - "@verdaccio/core": "npm:8.1.0" - "@verdaccio/logger-prettify": "npm:8.0.0" - colorette: "npm:2.0.20" - debug: "npm:4.4.3" - checksum: 10c0/f407fc1c761b6887730fbaff559c4aeaf77d5e8ef8d6886d74f9086ed092488cca437e39109de57e5987b6de8181c5fd42258cef62b697c633492bb8cdf9898f - languageName: node - linkType: hard - -"@verdaccio/logger-prettify@npm:8.0.0": - version: 8.0.0 - resolution: "@verdaccio/logger-prettify@npm:8.0.0" - dependencies: - colorette: "npm:2.0.20" - dayjs: "npm:1.11.18" - lodash: "npm:4.18.1" - on-exit-leak-free: "npm:2.1.2" - pino-abstract-transport: "npm:1.2.0" - sonic-boom: "npm:3.8.1" - checksum: 10c0/5ae7d8723d369f8475b4090937694bdd80d44d3e72de7f3e226e767ee7acd1d5eac13980124c8125dcfca18d708524e44ab332d2d76820cbc1aba46a2a0d3a64 - languageName: node - linkType: hard - -"@verdaccio/logger@npm:8.0.1": - version: 8.0.1 - resolution: "@verdaccio/logger@npm:8.0.1" - dependencies: - "@verdaccio/logger-commons": "npm:8.0.1" - pino: "npm:9.14.0" - checksum: 10c0/6727600ae0805bfc6469c14419e08e75e09dc1e21371a35712136c1ea2f6011f3901efa8f8d2d29b6baaae1db2e461804df1b5aa965fd0d4fa796f0e6d663217 - languageName: node - linkType: hard - -"@verdaccio/middleware@npm:8.0.1": - version: 8.0.1 - resolution: "@verdaccio/middleware@npm:8.0.1" - dependencies: - "@verdaccio/config": "npm:8.1.0" - "@verdaccio/core": "npm:8.1.0" - "@verdaccio/url": "npm:13.0.1" - debug: "npm:4.4.3" - express: "npm:4.22.1" - express-rate-limit: "npm:5.5.1" - lodash: "npm:4.18.1" - lru-cache: "npm:7.18.3" - checksum: 10c0/6778120cb98094019c5fb451abb8a315cec0e7049d5adcf9fca92fb13db4cdddd276a4f3a332ca306cce3459cadaa8ee0ccea04c4e720e009b964020b8ea8c7c - languageName: node - linkType: hard - -"@verdaccio/package-filter@npm:13.0.1": - version: 13.0.1 - resolution: "@verdaccio/package-filter@npm:13.0.1" - dependencies: - "@verdaccio/core": "npm:8.1.0" - debug: "npm:4.4.3" - semver: "npm:7.7.4" - checksum: 10c0/f7aef21230a0f5388d661d4df3358ac1b2a2d459da9a8a723d17c4afc3831e7365ab0d6e55fc790f9b1c0c9f04327140698399fcfff4eeb8a835318ed3a70169 - languageName: node - linkType: hard - -"@verdaccio/search-indexer@npm:8.0.0": - version: 8.0.0 - resolution: "@verdaccio/search-indexer@npm:8.0.0" - checksum: 10c0/0c299a7404de4a92eb6b2b0cbb4128a9beeb1ab0aa596586ac67a08af6ca6c26b8bce34cbaf1cdbb0cfb92bc123479cd09c113c36327e2ab110345099aa4056d - languageName: node - linkType: hard - -"@verdaccio/signature@npm:8.0.1": - version: 8.0.1 - resolution: "@verdaccio/signature@npm:8.0.1" - dependencies: - "@verdaccio/config": "npm:8.1.0" - "@verdaccio/core": "npm:8.1.0" - debug: "npm:4.4.3" - jsonwebtoken: "npm:9.0.3" - checksum: 10c0/2baa9f43d64ff827b65a82e747429e6c8ab23f1816c8855656bd037aca7c75eaf38f704595b6544ebabbb52e0c5b487b8d52f1935ac730cecc4ad09dfeb556d0 - languageName: node - linkType: hard - -"@verdaccio/streams@npm:10.2.3": - version: 10.2.3 - resolution: "@verdaccio/streams@npm:10.2.3" - checksum: 10c0/a4c9472da91b57ca8504ccff62c8fa4e5554c62b65a88e89e4493a53f5fce89d9a5781549e132cf8e2d002aa145bce9d069b127c30592b37018078542e8cb169 - languageName: node - linkType: hard - -"@verdaccio/tarball@npm:13.0.1": - version: 13.0.1 - resolution: "@verdaccio/tarball@npm:13.0.1" - dependencies: - "@verdaccio/core": "npm:8.1.0" - "@verdaccio/url": "npm:13.0.1" - debug: "npm:4.4.3" - gunzip-maybe: "npm:1.4.2" - tar-stream: "npm:3.1.7" - checksum: 10c0/d17889af2ebc071ee7eb07ddd23fb22c921e5540a87e010cc021c943419043981195e99fefe979ce52b6696b7fb56160a7f4598be3643ccbdbf8def7d31e24c7 - languageName: node - linkType: hard - -"@verdaccio/ui-theme@npm:9.0.0-next-9.14": - version: 9.0.0-next-9.14 - resolution: "@verdaccio/ui-theme@npm:9.0.0-next-9.14" - dependencies: - debug: "npm:4.4.3" - checksum: 10c0/c82e3ae3c9438ae3231a8be24ab9f0fc79f942c9e96eb21a9dd2f8dd4f0d2aa6315c1a2caf0a21be31774d0b596c42073a179d73eb9f9070194bd85ce6d36ebe - languageName: node - linkType: hard - -"@verdaccio/url@npm:13.0.1": - version: 13.0.1 - resolution: "@verdaccio/url@npm:13.0.1" - dependencies: - "@verdaccio/core": "npm:8.1.0" - debug: "npm:4.4.3" - validator: "npm:13.15.26" - checksum: 10c0/18cd276d10d825eb280f016b259c3bd21bcc63be12211000ecff136288a55d94790dd00f88e65d8cca4eabafb7deaf4761cb0711e0118e3073b4a8618a2c585b - languageName: node - linkType: hard - -"@verdaccio/utils@npm:8.1.1": - version: 8.1.1 - resolution: "@verdaccio/utils@npm:8.1.1" - dependencies: - "@verdaccio/core": "npm:8.1.0" - lodash: "npm:4.18.1" - minimatch: "npm:7.4.9" - checksum: 10c0/0ca472203fabdcf4e0a8725fd6cb38a544dbb6ca2007b3516fc305c31a97d86585b376f907701a7ffde67268880a34da54a457aec09e9bd59c975cbe5fdd8afd + checksum: 10c0/f1f220a404a00c68f1cfa97c6aa18a73ed241547125ad6f4b916107dbbfd3b524f564eafabc988b571ee0297278f5bfc4ab15bf5abe0051073c76a1a335a91c9 languageName: node linkType: hard @@ -1327,12 +1184,12 @@ __metadata: languageName: node linkType: hard -"@webiny/di@npm:^1.0.0": - version: 1.0.0 - resolution: "@webiny/di@npm:1.0.0" +"@webiny/di@npm:^1.0.1": + version: 1.0.1 + resolution: "@webiny/di@npm:1.0.1" dependencies: reflect-metadata: "npm:^0.2.2" - checksum: 10c0/b4add8ee035b1a8c6b08ec55c69a8f8a98e92dc807a1470ae3541aa51b82f0f8c13e5f975510fb6305a99ab7910901b6b867863d84459239ac63dc88021d6afe + checksum: 10c0/bfa2e7ac541ede2563c923605fd7b59c285d6712f5ef1c174e945e3e01570addbcfd968e457bfbdb44ebd424d7a271687709e48d2fd30b403eaffbffb3161b4d languageName: node linkType: hard @@ -1340,40 +1197,25 @@ __metadata: version: 0.0.0-use.local resolution: "@webiny/stdlib@workspace:." dependencies: - "@octokit/rest": "npm:^22.0.1" + "@changesets/cli": "npm:^2.29.4" "@types/node": "npm:>=24" - "@types/semver": "npm:^7.7.1" - "@typescript/native-preview": "npm:^7.0.0-dev.20260517.1" + "@typescript/native-preview": "npm:^7.0.0-dev.20260519.1" "@vitest/coverage-v8": "npm:^4.1.6" - "@webiny/di": "npm:^1.0.0" + "@webiny/di": "npm:^1.0.1" adio: "npm:^3.0.0" dot-prop: "npm:^10.1.0" fast-glob: "npm:^3.3.3" happy-dom: "npm:^20.9.0" - oxfmt: "npm:^0.50.0" - oxlint: "npm:^1.65.0" + oxfmt: "npm:^0.51.0" + oxlint: "npm:^1.66.0" pino: "npm:^10.3.1" pino-pretty: "npm:^13.1.3" - semver: "npm:^7.8.0" type-fest: "npm:^5.6.0" - verdaccio: "npm:^6.7.1" vitest: "npm:^4.1.6" zod: "npm:^4.4.3" languageName: unknown linkType: soft -"JSONStream@npm:1.3.5": - version: 1.3.5 - resolution: "JSONStream@npm:1.3.5" - dependencies: - jsonparse: "npm:^1.2.0" - through: "npm:>=2.2.7 <3" - bin: - JSONStream: ./bin.js - checksum: 10c0/0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 - languageName: node - linkType: hard - "abbrev@npm:^4.0.0": version: 4.0.0 resolution: "abbrev@npm:4.0.0" @@ -1381,28 +1223,9 @@ __metadata: languageName: node linkType: hard -"abort-controller@npm:^3.0.0": +"adio@npm:^3.0.0": version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" - dependencies: - event-target-shim: "npm:^5.0.0" - checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 - languageName: node - linkType: hard - -"accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: "npm:~2.1.34" - negotiator: "npm:0.6.3" - checksum: 10c0/3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 - languageName: node - linkType: hard - -"adio@npm:^3.0.0": - version: 3.0.0 - resolution: "adio@npm:3.0.0" + resolution: "adio@npm:3.0.0" dependencies: chalk: "npm:^5.6.2" cosmiconfig: "npm:^9.0.1" @@ -1414,43 +1237,26 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:6": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: "npm:4" - checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 +"ansi-colors@npm:^4.1.1, ansi-colors@npm:^4.1.3": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 languageName: node linkType: hard -"ajv@npm:8.17.1": - version: 8.17.1 - resolution: "ajv@npm:8.17.1" - dependencies: - fast-deep-equal: "npm:^3.1.3" - fast-uri: "npm:^3.0.1" - json-schema-traverse: "npm:^1.0.0" - require-from-string: "npm:^2.0.2" - checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 languageName: node linkType: hard -"ajv@npm:8.18.0": - version: 8.18.0 - resolution: "ajv@npm:8.18.0" +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" dependencies: - fast-deep-equal: "npm:^3.1.3" - fast-uri: "npm:^3.0.1" - json-schema-traverse: "npm:^1.0.0" - require-from-string: "npm:^2.0.2" - checksum: 10c0/e7517c426173513a07391be951879932bdf3348feaebd2199f5b901c20f99d60db8cd1591502d4d551dc82f594e82a05c4fe1c70139b15b8937f7afeaed9532f - languageName: node - linkType: hard - -"apache-md5@npm:1.1.8": - version: 1.1.8 - resolution: "apache-md5@npm:1.1.8" - checksum: 10c0/423aa1baddcedc42e2fdf52efcf7fae2e7de9535e6ca7dd4a049f49fb5ec9b6a4469f327e02268088ed3dacdbec6f1ea4132941e2d75899c4e412421e6ffcbfc + sprintf-js: "npm:~1.0.2" + checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de languageName: node linkType: hard @@ -1461,13 +1267,6 @@ __metadata: languageName: node linkType: hard -"array-flatten@npm:1.1.1": - version: 1.1.1 - resolution: "array-flatten@npm:1.1.1" - checksum: 10c0/806966c8abb2f858b08f5324d9d18d7737480610f3bd5d3498aaae6eb5efdc501a884ba019c9b4a8f02ff67002058749d05548fd42fa8643f02c9c7f22198b91 - languageName: node - linkType: hard - "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -1475,22 +1274,6 @@ __metadata: languageName: node linkType: hard -"asn1@npm:~0.2.3": - version: 0.2.6 - resolution: "asn1@npm:0.2.6" - dependencies: - safer-buffer: "npm:~2.1.0" - checksum: 10c0/00c8a06c37e548762306bcb1488388d2f76c74c36f70c803f0c081a01d3bdf26090fc088cd812afc5e56a6d49e33765d451a5f8a68ab9c2b087eba65d2e980e0 - languageName: node - linkType: hard - -"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": - version: 1.0.0 - resolution: "assert-plus@npm:1.0.0" - checksum: 10c0/b194b9d50c3a8f872ee85ab110784911e696a4d49f7ee6fc5fb63216dedbefd2c55999c70cb2eaeb4cf4a0e0338b44e9ace3627117b5bf0d42460e9132f21b91 - languageName: node - linkType: hard - "assertion-error@npm:^2.0.1": version: 2.0.1 resolution: "assertion-error@npm:2.0.1" @@ -1509,34 +1292,6 @@ __metadata: languageName: node linkType: hard -"async-function@npm:^1.0.0": - version: 1.0.0 - resolution: "async-function@npm:1.0.0" - checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73 - languageName: node - linkType: hard - -"async-generator-function@npm:^1.0.0": - version: 1.0.0 - resolution: "async-generator-function@npm:1.0.0" - checksum: 10c0/2c50ef856c543ad500d8d8777d347e3c1ba623b93e99c9263ecc5f965c1b12d2a140e2ab6e43c3d0b85366110696f28114649411cbcd10b452a92a2318394186 - languageName: node - linkType: hard - -"async@npm:3.2.6": - version: 3.2.6 - resolution: "async@npm:3.2.6" - checksum: 10c0/36484bb15ceddf07078688d95e27076379cc2f87b10c03b6dd8a83e89475a3c8df5848859dd06a4c95af1e4c16fc973de0171a77f18ea00be899aca2a4f85e70 - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d - languageName: node - linkType: hard - "atomic-sleep@npm:^1.0.0": version: 1.0.0 resolution: "atomic-sleep@npm:1.0.0" @@ -1544,39 +1299,6 @@ __metadata: languageName: node linkType: hard -"aws-sign2@npm:~0.7.0": - version: 0.7.0 - resolution: "aws-sign2@npm:0.7.0" - checksum: 10c0/021d2cc5547d4d9ef1633e0332e746a6f447997758b8b68d6fb33f290986872d2bff5f0c37d5832f41a7229361f093cd81c40898d96ed153493c0fb5cd8575d2 - languageName: node - linkType: hard - -"aws4@npm:^1.8.0": - version: 1.13.2 - resolution: "aws4@npm:1.13.2" - checksum: 10c0/c993d0d186d699f685d73113733695d648ec7d4b301aba2e2a559d0cd9c1c902308cc52f4095e1396b23fddbc35113644e7f0a6a32753636306e41e3ed6f1e79 - languageName: node - linkType: hard - -"b4a@npm:^1.6.4": - version: 1.8.1 - resolution: "b4a@npm:1.8.1" - peerDependencies: - react-native-b4a: "*" - peerDependenciesMeta: - react-native-b4a: - optional: true - checksum: 10c0/344d8c94b244ec7a9cb516ea43a98216312454cb72478e4b7628a679ee343be237564c53bbe73995ab10ea9bc923b420236081b180b3cf78fd0c945bfc886798 - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee - languageName: node - linkType: hard - "balanced-match@npm:^4.0.2": version: 4.0.4 resolution: "balanced-match@npm:4.0.4" @@ -1584,74 +1306,12 @@ __metadata: languageName: node linkType: hard -"bare-events@npm:^2.7.0": - version: 2.8.3 - resolution: "bare-events@npm:2.8.3" - peerDependencies: - bare-abort-controller: "*" - peerDependenciesMeta: - bare-abort-controller: - optional: true - checksum: 10c0/af8a7afeefbe8cfe061f96ad67433922ecaf800706ade8af17ac706e1b8dcbd16da41fac50f605f0ce9a706175327b0d53baf3bbfafe49d294d7b53a1bd14343 - languageName: node - linkType: hard - -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf - languageName: node - linkType: hard - -"bcrypt-pbkdf@npm:^1.0.0": - version: 1.0.2 - resolution: "bcrypt-pbkdf@npm:1.0.2" - dependencies: - tweetnacl: "npm:^0.14.3" - checksum: 10c0/ddfe85230b32df25aeebfdccfbc61d3bc493ace49c884c9c68575de1f5dcf733a5d7de9def3b0f318b786616b8d85bad50a28b1da1750c43e0012c93badcc148 - languageName: node - linkType: hard - -"bcryptjs@npm:2.4.3": - version: 2.4.3 - resolution: "bcryptjs@npm:2.4.3" - checksum: 10c0/b969467087ed7a01ff905a1c6a0c45014ec586248a448ea08370c8ed8bb314bda16a870ca23e0961d7d23bdce1a04c76fa70a9d680be814fa9ac7d8fc61870a3 - languageName: node - linkType: hard - -"before-after-hook@npm:^4.0.0": - version: 4.0.0 - resolution: "before-after-hook@npm:4.0.0" - checksum: 10c0/9f8ae8d1b06142bcfb9ef6625226b5e50348bb11210f266660eddcf9734e0db6f9afc4cb48397ee3f5ac0a3728f3ae401cdeea88413f7bed748a71db84657be2 - languageName: node - linkType: hard - -"body-parser@npm:~1.20.3": - version: 1.20.5 - resolution: "body-parser@npm:1.20.5" - dependencies: - bytes: "npm:~3.1.2" - content-type: "npm:~1.0.5" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:~1.2.0" - http-errors: "npm:~2.0.1" - iconv-lite: "npm:~0.4.24" - on-finished: "npm:~2.4.1" - qs: "npm:~6.15.1" - raw-body: "npm:~2.5.3" - type-is: "npm:~1.6.18" - unpipe: "npm:~1.0.0" - checksum: 10c0/ad777ca5e4711eae253c93f50fdc4608c60b76a9710d79e5e5b84581c76691e6ad21ecc9158986d9ea2b365df73e403ca33c27a8bccc1a7cfc2ccc248548118d - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1, brace-expansion@npm:^2.0.2": - version: 2.1.0 - resolution: "brace-expansion@npm:2.1.0" +"better-path-resolve@npm:1.0.0": + version: 1.0.0 + resolution: "better-path-resolve@npm:1.0.0" dependencies: - balanced-match: "npm:^1.0.0" - checksum: 10c0/439cedf3e23d7993b37919f1d6fdc653ec21a42437ec3e7460bea9ca8b17edf7a24a633273c31d61aa4335877cf29a443f1871814131c87997a1e6223e1f1502 + is-windows: "npm:^1.0.0" + checksum: 10c0/7335130729d59a14b8e4753fea180ca84e287cccc20cb5f2438a95667abc5810327c414eee7b3c79ed1b5a348a40284ea872958f50caba69432c40405eb0acce languageName: node linkType: hard @@ -1673,88 +1333,6 @@ __metadata: languageName: node linkType: hard -"browserify-zlib@npm:^0.1.4": - version: 0.1.4 - resolution: "browserify-zlib@npm:0.1.4" - dependencies: - pako: "npm:~0.2.0" - checksum: 10c0/0cde7ca5d33d43125649330fd75c056397e53731956a2593c4a2529f4e609a8e6abdb2b8e1921683abf5645375b92cfb2a21baa42fe3c9fc3e2556d32043af93 - languageName: node - linkType: hard - -"buffer-equal-constant-time@npm:^1.0.1": - version: 1.0.1 - resolution: "buffer-equal-constant-time@npm:1.0.1" - checksum: 10c0/fb2294e64d23c573d0dd1f1e7a466c3e978fe94a4e0f8183937912ca374619773bef8e2aceb854129d2efecbbc515bbd0cc78d2734a3e3031edb0888531bbc8e - languageName: node - linkType: hard - -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 - languageName: node - linkType: hard - -"buffer@npm:^6.0.3": - version: 6.0.3 - resolution: "buffer@npm:6.0.3" - dependencies: - base64-js: "npm:^1.3.1" - ieee754: "npm:^1.2.1" - checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 - languageName: node - linkType: hard - -"bytes@npm:3.1.2, bytes@npm:~3.1.2": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: 10c0/76d1c43cbd602794ad8ad2ae94095cddeb1de78c5dddaa7005c51af10b0176c69971a6d88e805a90c2b6550d76636e43c40d8427a808b8645ede885de4a0358e - languageName: node - linkType: hard - -"cacheable-lookup@npm:6.1.0": - version: 6.1.0 - resolution: "cacheable-lookup@npm:6.1.0" - checksum: 10c0/fe922b24e9868ac65cbd3b4ccd7449063d572431471aab71cbca49a2b33839c7c888b237b0922ae6b8f4ddf25d61debe204e473195d2e77a835099b8953aeb0a - languageName: node - linkType: hard - -"cacheable-request@npm:7.0.2": - version: 7.0.2 - resolution: "cacheable-request@npm:7.0.2" - dependencies: - clone-response: "npm:^1.0.2" - get-stream: "npm:^5.1.0" - http-cache-semantics: "npm:^4.0.0" - keyv: "npm:^4.0.0" - lowercase-keys: "npm:^2.0.0" - normalize-url: "npm:^6.0.1" - responselike: "npm:^2.0.0" - checksum: 10c0/681bad13691d0d5d10652d409374747a2ce8676f854b0d454ee8fc65e0a10a52ea83cd1f6c367ada08572fd4982f2aa2582dc38983d4e958e053e181c433765e - languageName: node - linkType: hard - -"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind-apply-helpers@npm:1.0.2" - dependencies: - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - checksum: 10c0/47bd9901d57b857590431243fea704ff18078b16890a6b3e021e12d279bbf211d039155e27d7566b374d49ee1f8189344bac9833dec7a20cdec370506361c938 - languageName: node - linkType: hard - -"call-bound@npm:^1.0.2": - version: 1.0.4 - resolution: "call-bound@npm:1.0.4" - dependencies: - call-bind-apply-helpers: "npm:^1.0.2" - get-intrinsic: "npm:^1.3.0" - checksum: 10c0/f4796a6a0941e71c766aea672f63b72bc61234c4f4964dc6d7606e3664c307e7d77845328a8f3359ce39ddb377fed67318f9ee203dea1d47e46165dcf2917644 - languageName: node - linkType: hard - "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -1762,13 +1340,6 @@ __metadata: languageName: node linkType: hard -"caseless@npm:~0.12.0": - version: 0.12.0 - resolution: "caseless@npm:0.12.0" - checksum: 10c0/ccf64bcb6c0232cdc5b7bd91ddd06e23a4b541f138336d4725233ac538041fb2f29c2e86c3c4a7a61ef990b665348db23a047060b9414c3a6603e9fa61ad4626 - languageName: node - linkType: hard - "chai@npm:^6.2.2": version: 6.2.2 resolution: "chai@npm:6.2.2" @@ -1783,6 +1354,13 @@ __metadata: languageName: node linkType: hard +"chardet@npm:^2.1.1": + version: 2.1.1 + resolution: "chardet@npm:2.1.1" + checksum: 10c0/d8391dd412338442b3de0d3a488aa9327f8bcf74b62b8723d6bd0b85c4084d50b731320e0a7c710edb1d44de75969995d2784b80e4c13b004a6c7a0db4c6e793 + languageName: node + linkType: hard + "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" @@ -1790,89 +1368,13 @@ __metadata: languageName: node linkType: hard -"clipanion@npm:4.0.0-rc.4": - version: 4.0.0-rc.4 - resolution: "clipanion@npm:4.0.0-rc.4" - dependencies: - typanion: "npm:^3.8.0" - peerDependencies: - typanion: "*" - checksum: 10c0/047b415b59a5e9777d00690fba563ccc850eca6bf27790a88d1deea3ecc8a89840ae9aed554ff284cc698a9f3f20256e43c25ff4a7c4c90a71e5e7d9dca61dd1 - languageName: node - linkType: hard - -"clone-response@npm:^1.0.2": - version: 1.0.3 - resolution: "clone-response@npm:1.0.3" - dependencies: - mimic-response: "npm:^1.0.0" - checksum: 10c0/06a2b611824efb128810708baee3bd169ec9a1bf5976a5258cd7eb3f7db25f00166c6eee5961f075c7e38e194f373d4fdf86b8166ad5b9c7e82bbd2e333a6087 - languageName: node - linkType: hard - -"colorette@npm:2.0.20, colorette@npm:^2.0.7": +"colorette@npm:^2.0.7": version: 2.0.20 resolution: "colorette@npm:2.0.20" checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 languageName: node linkType: hard -"combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: "npm:~1.0.0" - checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 - languageName: node - linkType: hard - -"compressible@npm:~2.0.18": - version: 2.0.18 - resolution: "compressible@npm:2.0.18" - dependencies: - mime-db: "npm:>= 1.43.0 < 2" - checksum: 10c0/8a03712bc9f5b9fe530cc5a79e164e665550d5171a64575d7dcf3e0395d7b4afa2d79ab176c61b5b596e28228b350dd07c1a2a6ead12fd81d1b6cd632af2fef7 - languageName: node - linkType: hard - -"compression@npm:1.8.1": - version: 1.8.1 - resolution: "compression@npm:1.8.1" - dependencies: - bytes: "npm:3.1.2" - compressible: "npm:~2.0.18" - debug: "npm:2.6.9" - negotiator: "npm:~0.6.4" - on-headers: "npm:~1.1.0" - safe-buffer: "npm:5.2.1" - vary: "npm:~1.1.2" - checksum: 10c0/85114b0b91c16594dc8c671cd9b05ef5e465066a60e5a4ed8b4551661303559a896ed17bb72c4234c04064e078f6ca86a34b8690349499a43f6fc4b844475da4 - languageName: node - linkType: hard - -"content-disposition@npm:~0.5.4": - version: 0.5.4 - resolution: "content-disposition@npm:0.5.4" - dependencies: - safe-buffer: "npm:5.2.1" - checksum: 10c0/bac0316ebfeacb8f381b38285dc691c9939bf0a78b0b7c2d5758acadad242d04783cee5337ba7d12a565a19075af1b3c11c728e1e4946de73c6ff7ce45f3f1bb - languageName: node - linkType: hard - -"content-type@npm:^2.0.0": - version: 2.0.0 - resolution: "content-type@npm:2.0.0" - checksum: 10c0/491539fff707d7594b0ca4fabcc084bef2a31ffa754ff0a4f80c4377e3963cff0394317f9271c24087596c97fa675bc123d61fa34ffe65b4904e7d3d3098de72 - languageName: node - linkType: hard - -"content-type@npm:~1.0.4, content-type@npm:~1.0.5": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af - languageName: node - linkType: hard - "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -1880,44 +1382,6 @@ __metadata: languageName: node linkType: hard -"cookie-signature@npm:~1.0.6": - version: 1.0.7 - resolution: "cookie-signature@npm:1.0.7" - checksum: 10c0/e7731ad2995ae2efeed6435ec1e22cdd21afef29d300c27281438b1eab2bae04ef0d1a203928c0afec2cee72aa36540b8747406ebe308ad23c8e8cc3c26c9c51 - languageName: node - linkType: hard - -"cookie@npm:~0.7.1": - version: 0.7.2 - resolution: "cookie@npm:0.7.2" - checksum: 10c0/9596e8ccdbf1a3a88ae02cf5ee80c1c50959423e1022e4e60b91dd87c622af1da309253d8abdb258fb5e3eacb4f08e579dc58b4897b8087574eee0fd35dfa5d2 - languageName: node - linkType: hard - -"core-util-is@npm:1.0.2": - version: 1.0.2 - resolution: "core-util-is@npm:1.0.2" - checksum: 10c0/980a37a93956d0de8a828ce508f9b9e3317039d68922ca79995421944146700e4aaf490a6dbfebcb1c5292a7184600c7710b957d724be1e37b8254c6bc0fe246 - languageName: node - linkType: hard - -"core-util-is@npm:~1.0.0": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9 - languageName: node - linkType: hard - -"cors@npm:2.8.6": - version: 2.8.6 - resolution: "cors@npm:2.8.6" - dependencies: - object-assign: "npm:^4" - vary: "npm:^1" - checksum: 10c0/ab2bc57b8af8ef8476682a59647f7c55c1a7d406b559ac06119aa1c5f70b96d35036864d197b24cf86e228e4547231088f1f94ca05061dbb14d89cc0bc9d4cab - languageName: node - linkType: hard - "cosmiconfig@npm:^9.0.1": version: 9.0.1 resolution: "cosmiconfig@npm:9.0.1" @@ -1935,12 +1399,14 @@ __metadata: languageName: node linkType: hard -"dashdash@npm:^1.12.0": - version: 1.14.1 - resolution: "dashdash@npm:1.14.1" +"cross-spawn@npm:^7.0.5": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" dependencies: - assert-plus: "npm:^1.0.0" - checksum: 10c0/64589a15c5bd01fa41ff7007e0f2c6552c5ef2028075daa16b188a3721f4ba001841bf306dfc2eee6e2e6e7f76b38f5f17fb21fa847504192290ffa9e150118a + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 languageName: node linkType: hard @@ -1951,68 +1417,10 @@ __metadata: languageName: node linkType: hard -"dayjs@npm:1.11.18": - version: 1.11.18 - resolution: "dayjs@npm:1.11.18" - checksum: 10c0/83b67f5d977e2634edf4f5abdd91d9041a696943143638063016915d2cd8c7e57e0751e40379a07ebca8be7a48dd380bef8752d22a63670f2d15970e34f96d7a - languageName: node - linkType: hard - -"debug@npm:2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:4.4.3": - version: 4.4.3 - resolution: "debug@npm:4.4.3" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 - languageName: node - linkType: hard - -"decompress-response@npm:^6.0.0": - version: 6.0.0 - resolution: "decompress-response@npm:6.0.0" - dependencies: - mimic-response: "npm:^3.1.0" - checksum: 10c0/bd89d23141b96d80577e70c54fb226b2f40e74a6817652b80a116d7befb8758261ad073a8895648a29cc0a5947021ab66705cb542fa9c143c82022b27c5b175e - languageName: node - linkType: hard - -"defer-to-connect@npm:^2.0.0": - version: 2.0.1 - resolution: "defer-to-connect@npm:2.0.1" - checksum: 10c0/625ce28e1b5ad10cf77057b9a6a727bf84780c17660f6644dab61dd34c23de3001f03cedc401f7d30a4ed9965c2e8a7336e220a329146f2cf85d4eddea429782 - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 - languageName: node - linkType: hard - -"depd@npm:2.0.0, depd@npm:~2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: 10c0/58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c - languageName: node - linkType: hard - -"destroy@npm:1.2.0, destroy@npm:~1.2.0": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 +"detect-indent@npm:^6.0.0": + version: 6.1.0 + resolution: "detect-indent@npm:6.1.0" + checksum: 10c0/dd83cdeda9af219cf77f5e9a0dc31d828c045337386cfb55ce04fad94ba872ee7957336834154f7647b89b899c3c7acc977c57a79b7c776b506240993f97acc7 languageName: node linkType: hard @@ -2041,63 +1449,7 @@ __metadata: languageName: node linkType: hard -"dunder-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "dunder-proto@npm:1.0.1" - dependencies: - call-bind-apply-helpers: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - gopd: "npm:^1.2.0" - checksum: 10c0/199f2a0c1c16593ca0a145dbf76a962f8033ce3129f01284d48c45ed4e14fea9bbacd7b3610b6cdc33486cef20385ac054948fefc6272fcce645c09468f93031 - languageName: node - linkType: hard - -"duplexify@npm:^3.5.0, duplexify@npm:^3.6.0": - version: 3.7.1 - resolution: "duplexify@npm:3.7.1" - dependencies: - end-of-stream: "npm:^1.0.0" - inherits: "npm:^2.0.1" - readable-stream: "npm:^2.0.0" - stream-shift: "npm:^1.0.0" - checksum: 10c0/59d1440c1b4e3a4db35ae96933392703ce83518db1828d06b9b6322920d6cbbf0b7159e88be120385fe459e77f1eb0c7622f26e9ec1f47c9ff05c2b35747dbd3 - languageName: node - linkType: hard - -"ecc-jsbn@npm:~0.1.1": - version: 0.1.2 - resolution: "ecc-jsbn@npm:0.1.2" - dependencies: - jsbn: "npm:~0.1.0" - safer-buffer: "npm:^2.1.0" - checksum: 10c0/6cf168bae1e2dad2e46561d9af9cbabfbf5ff592176ad4e9f0f41eaaf5fe5e10bb58147fe0a804de62b1ee9dad42c28810c88d652b21b6013c47ba8efa274ca1 - languageName: node - linkType: hard - -"ecdsa-sig-formatter@npm:1.0.11": - version: 1.0.11 - resolution: "ecdsa-sig-formatter@npm:1.0.11" - dependencies: - safe-buffer: "npm:^5.0.1" - checksum: 10c0/ebfbf19d4b8be938f4dd4a83b8788385da353d63307ede301a9252f9f7f88672e76f2191618fd8edfc2f24679236064176fab0b78131b161ee73daa37125408c - languageName: node - linkType: hard - -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 10c0/b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7 - languageName: node - linkType: hard - -"encodeurl@npm:~2.0.0": - version: 2.0.0 - resolution: "encodeurl@npm:2.0.0" - checksum: 10c0/5d317306acb13e6590e28e27924c754163946a2480de11865c991a3a7eed4315cd3fba378b543ca145829569eefe9b899f3d84bb09870f675ae60bc924b01ceb - languageName: node - linkType: hard - -"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0": +"end-of-stream@npm:^1.1.0": version: 1.4.5 resolution: "end-of-stream@npm:1.4.5" dependencies: @@ -2106,6 +1458,16 @@ __metadata: languageName: node linkType: hard +"enquirer@npm:^2.4.1": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" + dependencies: + ansi-colors: "npm:^4.1.1" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/43850479d7a51d36a9c924b518dcdc6373b5a8ae3401097d336b7b7e258324749d0ad37a1fcaa5706f04799baa05585cd7af19ebdf7667673e7694435fcea918 + languageName: node + linkType: hard + "entities@npm:^7.0.1": version: 7.0.1 resolution: "entities@npm:7.0.1" @@ -2120,15 +1482,6 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:7.21.0": - version: 7.21.0 - resolution: "envinfo@npm:7.21.0" - bin: - envinfo: dist/cli.js - checksum: 10c0/4170127ca72dbf85be2c114f85558bd08178e8a43b394951ba9fd72d067c6fea3374df45a7b040e39e4e7b30bdd268e5bdf8661d99ae28302c2a88dedb41b5e6 - languageName: node - linkType: hard - "error-ex@npm:^1.3.1": version: 1.3.4 resolution: "error-ex@npm:1.3.4" @@ -2138,20 +1491,6 @@ __metadata: languageName: node linkType: hard -"es-define-property@npm:^1.0.1": - version: 1.0.1 - resolution: "es-define-property@npm:1.0.1" - checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c - languageName: node - linkType: hard - -"es-errors@npm:^1.3.0": - version: 1.3.0 - resolution: "es-errors@npm:1.3.0" - checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 - languageName: node - linkType: hard - "es-module-lexer@npm:^2.0.0": version: 2.1.0 resolution: "es-module-lexer@npm:2.1.0" @@ -2159,31 +1498,13 @@ __metadata: languageName: node linkType: hard -"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": - version: 1.1.1 - resolution: "es-object-atoms@npm:1.1.1" - dependencies: - es-errors: "npm:^1.3.0" - checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.1.0": - version: 2.1.0 - resolution: "es-set-tostringtag@npm:2.1.0" - dependencies: - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.6" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.2" - checksum: 10c0/ef2ca9ce49afe3931cb32e35da4dcb6d86ab02592cfc2ce3e49ced199d9d0bb5085fc7e73e06312213765f5efa47cc1df553a6a5154584b21448e9fb8355b1af - languageName: node - linkType: hard - -"escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 10c0/524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 +"esprima@npm:^4.0.0": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 languageName: node linkType: hard @@ -2196,36 +1517,6 @@ __metadata: languageName: node linkType: hard -"etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 10c0/12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 - languageName: node - linkType: hard - -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b - languageName: node - linkType: hard - -"events-universal@npm:^1.0.0": - version: 1.0.1 - resolution: "events-universal@npm:1.0.1" - dependencies: - bare-events: "npm:^2.7.0" - checksum: 10c0/a1d9a5e9f95843650f8ec240dd1221454c110189a9813f32cdf7185759b43f1f964367ac7dca4ebc69150b59043f2d77c7e122b0d03abf7c25477ea5494785a5 - languageName: node - linkType: hard - -"events@npm:^3.3.0": - version: 3.3.0 - resolution: "events@npm:3.3.0" - checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 - languageName: node - linkType: hard - "expect-type@npm:^1.3.0": version: 1.3.0 resolution: "expect-type@npm:1.3.0" @@ -2240,77 +1531,10 @@ __metadata: languageName: node linkType: hard -"express-rate-limit@npm:5.5.1": - version: 5.5.1 - resolution: "express-rate-limit@npm:5.5.1" - checksum: 10c0/0391cdb518acaabdae0517ab1fba32dce5b0813199be5b89e0ebb62399753b2ec7882571a8da1fd6a061354992aa8e00c947c2e03f850820bb47668195e2c8d6 - languageName: node - linkType: hard - -"express@npm:4.22.1": - version: 4.22.1 - resolution: "express@npm:4.22.1" - dependencies: - accepts: "npm:~1.3.8" - array-flatten: "npm:1.1.1" - body-parser: "npm:~1.20.3" - content-disposition: "npm:~0.5.4" - content-type: "npm:~1.0.4" - cookie: "npm:~0.7.1" - cookie-signature: "npm:~1.0.6" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - encodeurl: "npm:~2.0.0" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - finalhandler: "npm:~1.3.1" - fresh: "npm:~0.5.2" - http-errors: "npm:~2.0.0" - merge-descriptors: "npm:1.0.3" - methods: "npm:~1.1.2" - on-finished: "npm:~2.4.1" - parseurl: "npm:~1.3.3" - path-to-regexp: "npm:~0.1.12" - proxy-addr: "npm:~2.0.7" - qs: "npm:~6.14.0" - range-parser: "npm:~1.2.1" - safe-buffer: "npm:5.2.1" - send: "npm:~0.19.0" - serve-static: "npm:~1.16.2" - setprototypeof: "npm:1.2.0" - statuses: "npm:~2.0.1" - type-is: "npm:~1.6.18" - utils-merge: "npm:1.0.1" - vary: "npm:~1.1.2" - checksum: 10c0/ea57f512ab1e05e26b53a14fd432f65a10ec735ece342b37d0b63a7bcb8d337ffbb830ecb8ca15bcdfe423fbff88cea09786277baff200e8cde3ab40faa665cd - languageName: node - linkType: hard - -"extend@npm:~3.0.2": - version: 3.0.2 - resolution: "extend@npm:3.0.2" - checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 - languageName: node - linkType: hard - -"extsprintf@npm:1.3.0": - version: 1.3.0 - resolution: "extsprintf@npm:1.3.0" - checksum: 10c0/f75114a8388f0cbce68e277b6495dc3930db4dde1611072e4a140c24e204affd77320d004b947a132e9a3b97b8253017b2b62dce661975fb0adced707abf1ab5 - languageName: node - linkType: hard - -"extsprintf@npm:^1.2.0": - version: 1.4.1 - resolution: "extsprintf@npm:1.4.1" - checksum: 10c0/e10e2769985d0e9b6c7199b053a9957589d02e84de42832c295798cb422a025e6d4a92e0259c1fb4d07090f5bfde6b55fd9f880ac5855bd61d775f8ab75a7ab0 - languageName: node - linkType: hard - -"fast-content-type-parse@npm:^3.0.0": - version: 3.0.0 - resolution: "fast-content-type-parse@npm:3.0.0" - checksum: 10c0/06251880c83b7118af3a5e66e8bcee60d44f48b39396fc60acc2b4630bd5f3e77552b999b5c8e943d45a818854360e5e97164c374ec4b562b4df96a2cdf2e188 +"extendable-error@npm:^0.1.5": + version: 0.1.7 + resolution: "extendable-error@npm:0.1.7" + checksum: 10c0/c46648b7682448428f81b157cbfe480170fd96359c55db477a839ddeaa34905a18cba0b989bafe5e83f93c2491a3fcc7cc536063ea326ba9d72e9c6e2fe736a7 languageName: node linkType: hard @@ -2321,20 +1545,6 @@ __metadata: languageName: node linkType: hard -"fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 - languageName: node - linkType: hard - -"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": - version: 1.3.2 - resolution: "fast-fifo@npm:1.3.2" - checksum: 10c0/d53f6f786875e8b0529f784b59b4b05d4b5c31c651710496440006a398389a579c8dbcd2081311478b5bf77f4b0b21de69109c5a4eabea9d8e8783d1eb864e4c - languageName: node - linkType: hard - "fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.3": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" @@ -2355,13 +1565,6 @@ __metadata: languageName: node linkType: hard -"fast-uri@npm:^3.0.1": - version: 3.1.2 - resolution: "fast-uri@npm:3.1.2" - checksum: 10c0/5b35641895959f3f7ab7a7b1b5542bded159346f25ec9f256817b206d50b64eda5828e90d605a2e2fc645c90519a7259c2bab2c942ee728c88b88e5be21b090d - languageName: node - linkType: hard - "fastq@npm:^1.6.0": version: 1.20.1 resolution: "fastq@npm:1.20.1" @@ -2392,59 +1595,35 @@ __metadata: languageName: node linkType: hard -"finalhandler@npm:~1.3.1": - version: 1.3.2 - resolution: "finalhandler@npm:1.3.2" +"find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" dependencies: - debug: "npm:2.6.9" - encodeurl: "npm:~2.0.0" - escape-html: "npm:~1.0.3" - on-finished: "npm:~2.4.1" - parseurl: "npm:~1.3.3" - statuses: "npm:~2.0.2" - unpipe: "npm:~1.0.0" - checksum: 10c0/435a4fd65e4e4e4c71bb5474980090b73c353a123dd415583f67836bdd6516e528cf07298e219a82b94631dee7830eae5eece38d3c178073cf7df4e8c182f413 - languageName: node - linkType: hard - -"forever-agent@npm:~0.6.1": - version: 0.6.1 - resolution: "forever-agent@npm:0.6.1" - checksum: 10c0/364f7f5f7d93ab661455351ce116a67877b66f59aca199559a999bd39e3cfadbfbfacc10415a915255e2210b30c23febe9aec3ca16bf2d1ff11c935a1000e24c + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 languageName: node linkType: hard -"form-data-encoder@npm:1.7.2": - version: 1.7.2 - resolution: "form-data-encoder@npm:1.7.2" - checksum: 10c0/56553768037b6d55d9de524f97fe70555f0e415e781cb56fc457a68263de3d40fadea2304d4beef2d40b1a851269bd7854e42c362107071892cb5238debe9464 - languageName: node - linkType: hard - -"form-data@npm:~4.0.4": - version: 4.0.5 - resolution: "form-data@npm:4.0.5" +"fs-extra@npm:^7.0.1": + version: 7.0.1 + resolution: "fs-extra@npm:7.0.1" dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - es-set-tostringtag: "npm:^2.1.0" - hasown: "npm:^2.0.2" - mime-types: "npm:^2.1.12" - checksum: 10c0/dd6b767ee0bbd6d84039db12a0fa5a2028160ffbfaba1800695713b46ae974a5f6e08b3356c3195137f8530dcd9dfcb5d5ae1eeff53d0db1e5aad863b619ce3b + graceful-fs: "npm:^4.1.2" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 10c0/1943bb2150007e3739921b8d13d4109abdc3cc481e53b97b7ea7f77eda1c3c642e27ae49eac3af074e3496ea02fde30f411ef410c760c70a38b92e656e5da784 languageName: node linkType: hard -"forwarded@npm:0.2.0": - version: 0.2.0 - resolution: "forwarded@npm:0.2.0" - checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33 - languageName: node - linkType: hard - -"fresh@npm:~0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a +"fs-extra@npm:^8.1.0": + version: 8.1.0 + resolution: "fs-extra@npm:8.1.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 10c0/259f7b814d9e50d686899550c4f9ded85c46c643f7fe19be69504888e007fcbc08f306fae8ec495b8b998635e997c9e3e175ff2eeed230524ef1c1684cc96423 languageName: node linkType: hard @@ -2467,76 +1646,6 @@ __metadata: languageName: node linkType: hard -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 - languageName: node - linkType: hard - -"generator-function@npm:^2.0.0": - version: 2.0.1 - resolution: "generator-function@npm:2.0.1" - checksum: 10c0/8a9f59df0f01cfefafdb3b451b80555e5cf6d76487095db91ac461a0e682e4ff7a9dbce15f4ecec191e53586d59eece01949e05a4b4492879600bbbe8e28d6b8 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.3.0": - version: 1.3.1 - resolution: "get-intrinsic@npm:1.3.1" - dependencies: - async-function: "npm:^1.0.0" - async-generator-function: "npm:^1.0.0" - call-bind-apply-helpers: "npm:^1.0.2" - es-define-property: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.1.1" - function-bind: "npm:^1.1.2" - generator-function: "npm:^2.0.0" - get-proto: "npm:^1.0.1" - gopd: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - hasown: "npm:^2.0.2" - math-intrinsics: "npm:^1.1.0" - checksum: 10c0/9f4ab0cf7efe0fd2c8185f52e6f637e708f3a112610c88869f8f041bb9ecc2ce44bf285dfdbdc6f4f7c277a5b88d8e94a432374d97cca22f3de7fc63795deb5d - languageName: node - linkType: hard - -"get-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "get-proto@npm:1.0.1" - dependencies: - dunder-proto: "npm:^1.0.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/9224acb44603c5526955e83510b9da41baf6ae73f7398875fba50edc5e944223a89c4a72b070fcd78beb5f7bdda58ecb6294adc28f7acfc0da05f76a2399643c - languageName: node - linkType: hard - -"get-stream@npm:^5.1.0": - version: 5.2.0 - resolution: "get-stream@npm:5.2.0" - dependencies: - pump: "npm:^3.0.0" - checksum: 10c0/43797ffd815fbb26685bf188c8cfebecb8af87b3925091dd7b9a9c915993293d78e3c9e1bce125928ff92f2d0796f3889b92b5ec6d58d1041b574682132e0a80 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.1": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 - languageName: node - linkType: hard - -"getpass@npm:^0.1.1": - version: 0.1.7 - resolution: "getpass@npm:0.1.7" - dependencies: - assert-plus: "npm:^1.0.0" - checksum: 10c0/c13f8530ecf16fc509f3fa5cd8dd2129ffa5d0c7ccdf5728b6022d52954c2d24be3706b4cdf15333eec52f1fbb43feb70a01dabc639d1d10071e371da8aaa52f - languageName: node - linkType: hard - "glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -2557,7 +1666,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:11.1.0": +"globby@npm:^11.0.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -2571,74 +1680,13 @@ __metadata: languageName: node linkType: hard -"gopd@npm:^1.2.0": - version: 1.2.0 - resolution: "gopd@npm:1.2.0" - checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead - languageName: node - linkType: hard - -"got-cjs@npm:12.5.4": - version: 12.5.4 - resolution: "got-cjs@npm:12.5.4" - dependencies: - "@sindresorhus/is": "npm:4.6.0" - "@szmarczak/http-timer": "npm:4.0.6" - "@types/responselike": "npm:1.0.0" - cacheable-lookup: "npm:6.1.0" - cacheable-request: "npm:7.0.2" - decompress-response: "npm:^6.0.0" - form-data-encoder: "npm:1.7.2" - get-stream: "npm:^6.0.1" - http2-wrapper: "npm:^2.1.10" - lowercase-keys: "npm:2.0.0" - p-cancelable: "npm:2.1.1" - responselike: "npm:2.0.1" - checksum: 10c0/cfbee2722fdf5d23463a0bf4f259c67ffe1423cb91b3a77e683296dfaa4bdce295dd7496aee5f2a09d5da2c6fabad0bd0efd48a34783150e242e8e8517ac1bf0 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 languageName: node linkType: hard -"gunzip-maybe@npm:1.4.2": - version: 1.4.2 - resolution: "gunzip-maybe@npm:1.4.2" - dependencies: - browserify-zlib: "npm:^0.1.4" - is-deflate: "npm:^1.0.0" - is-gzip: "npm:^1.0.0" - peek-stream: "npm:^1.1.0" - pumpify: "npm:^1.3.3" - through2: "npm:^2.0.3" - bin: - gunzip-maybe: bin.js - checksum: 10c0/42798a8061759885c2084e1804e51313d14f2dc9cf6c137e222953ec802f914e592d6f9dbf6ad67f4e78eb036e86db017d9c7c93bb23e90cd5ae09326296ed77 - languageName: node - linkType: hard - -"handlebars@npm:4.7.9": - version: 4.7.9 - resolution: "handlebars@npm:4.7.9" - dependencies: - minimist: "npm:^1.2.5" - neo-async: "npm:^2.6.2" - source-map: "npm:^0.6.1" - uglify-js: "npm:^3.1.4" - wordwrap: "npm:^1.0.0" - dependenciesMeta: - uglify-js: - optional: true - bin: - handlebars: bin/handlebars - checksum: 10c0/22f8105a7e68e81aff2662bb434edf05f757d21d850731d71cec886d69c10cd33d3c43e34b2892968ec62de8241611851d3d0674c8ef324ea3e01dc66262faa9 - languageName: node - linkType: hard - "happy-dom@npm:^20.9.0": version: 20.9.0 resolution: "happy-dom@npm:20.9.0" @@ -2660,31 +1708,6 @@ __metadata: languageName: node linkType: hard -"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": - version: 1.1.0 - resolution: "has-symbols@npm:1.1.0" - checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.2": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" - dependencies: - has-symbols: "npm:^1.0.3" - checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c - languageName: node - linkType: hard - -"hasown@npm:^2.0.2": - version: 2.0.3 - resolution: "hasown@npm:2.0.3" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 10c0/f5eb28c3fd0d3e4facd821c1eeee3836c37b70ab0b0fc532e8a39976e18fef43652415dadc52f8c7a5ff6d5ac93b7bef128789aa6f90f4e9b9a9083dce74ab38 - languageName: node - linkType: hard - "help-me@npm:^5.0.0": version: 5.0.0 resolution: "help-me@npm:5.0.0" @@ -2699,90 +1722,21 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.0.0": - version: 4.2.0 - resolution: "http-cache-semantics@npm:4.2.0" - checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37 - languageName: node - linkType: hard - -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 - languageName: node - linkType: hard - -"http-errors@npm:2.0.1, http-errors@npm:~2.0.0, http-errors@npm:~2.0.1": - version: 2.0.1 - resolution: "http-errors@npm:2.0.1" - dependencies: - depd: "npm:~2.0.0" - inherits: "npm:~2.0.4" - setprototypeof: "npm:~1.2.0" - statuses: "npm:~2.0.2" - toidentifier: "npm:~1.0.1" - checksum: 10c0/fb38906cef4f5c83952d97661fe14dc156cb59fe54812a42cd448fa57b5c5dfcb38a40a916957737bd6b87aab257c0648d63eb5b6a9ca9f548e105b6072712d4 - languageName: node - linkType: hard - -"http-signature@npm:~1.4.0": - version: 1.4.0 - resolution: "http-signature@npm:1.4.0" - dependencies: - assert-plus: "npm:^1.0.0" - jsprim: "npm:^2.0.2" - sshpk: "npm:^1.18.0" - checksum: 10c0/b9806f5a9ed82a146589837d175c43b596b1cc8c9431665e83d47c152aa8a4629dd1b1e050f8f56e7f17f62cf97b58e888775093310441ddee5f105f28646b2b - languageName: node - linkType: hard - -"http-status-codes@npm:2.3.0": - version: 2.3.0 - resolution: "http-status-codes@npm:2.3.0" - checksum: 10c0/c2412188929e8eed6623eef468c62d0c3c082919c03e9b74fd79cfd060d11783dba44603e38a3cee52d26563fe32005913eaf6120aa8ba907da1238f3eaad5fe - languageName: node - linkType: hard - -"http2-wrapper@npm:^2.1.10": - version: 2.2.1 - resolution: "http2-wrapper@npm:2.2.1" - dependencies: - quick-lru: "npm:^5.1.1" - resolve-alpn: "npm:^1.2.0" - checksum: 10c0/7207201d3c6e53e72e510c9b8912e4f3e468d3ecc0cf3bf52682f2aac9cd99358b896d1da4467380adc151cf97c412bedc59dc13dae90c523f42053a7449eedb - languageName: node - linkType: hard - -"https-proxy-agent@npm:5.0.1": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: "npm:6" - debug: "npm:4" - checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 +"human-id@npm:^4.1.1": + version: 4.1.3 + resolution: "human-id@npm:4.1.3" + bin: + human-id: dist/cli.js + checksum: 10c0/c0e6aacfa71adff6e9783fc209493a7f8de92da041bea32deb3a9cd1244a4d2b89f32d5e90130e8e22da4e6fe15b61cf4e533f114927384de1418460c92b5a7a languageName: node linkType: hard -"iconv-lite@npm:~0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" +"iconv-lite@npm:^0.7.0": + version: 0.7.2 + resolution: "iconv-lite@npm:0.7.2" dependencies: - safer-buffer: "npm:>= 2.1.2 < 3" - checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 - languageName: node - linkType: hard - -"ieee754@npm:^1.2.1": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722 languageName: node linkType: hard @@ -2803,20 +1757,6 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3, inherits@npm:~2.0.4": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 - languageName: node - linkType: hard - -"ipaddr.js@npm:1.9.1": - version: 1.9.1 - resolution: "ipaddr.js@npm:1.9.1" - checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a - languageName: node - linkType: hard - "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -2824,13 +1764,6 @@ __metadata: languageName: node linkType: hard -"is-deflate@npm:^1.0.0": - version: 1.0.0 - resolution: "is-deflate@npm:1.0.0" - checksum: 10c0/35f7ffcbef3549dd8a4d8df5dc09b4f4656a0fc88326e8b5201cda54114a9c2d8efb689d87c16f3f35c95bd71dcf13dc790d62b7504745b42c53ab4b40238f5a - languageName: node - linkType: hard - "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -2847,13 +1780,6 @@ __metadata: languageName: node linkType: hard -"is-gzip@npm:^1.0.0": - version: 1.0.0 - resolution: "is-gzip@npm:1.0.0" - checksum: 10c0/cbc1db080c636a6fb0f7346e3076f8276a29a9d8b52ae67c1971a8131c43f308e98ed227d1a6f49970e6c6ebabee0568e60aed7a3579dd4e1817cddf2faaf9b7 - languageName: node - linkType: hard - "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -2861,24 +1787,26 @@ __metadata: languageName: node linkType: hard -"is-promise@npm:^2.1.0": - version: 2.2.2 - resolution: "is-promise@npm:2.2.2" - checksum: 10c0/2dba959812380e45b3df0fb12e7cb4d4528c989c7abb03ececb1d1fd6ab1cbfee956ca9daa587b9db1d8ac3c1e5738cf217bdb3dfd99df8c691be4c00ae09069 +"is-subdir@npm:^1.1.1": + version: 1.2.0 + resolution: "is-subdir@npm:1.2.0" + dependencies: + better-path-resolve: "npm:1.0.0" + checksum: 10c0/03a03ee2ee6578ce589b1cfaf00e65c86b20fd1b82c1660625557c535439a7477cda77e20c62cda6d4c99e7fd908b4619355ae2d989f4a524a35350a44353032 languageName: node linkType: hard -"is-typedarray@npm:~1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 10c0/4c096275ba041a17a13cca33ac21c16bc4fd2d7d7eb94525e7cd2c2f2c1a3ab956e37622290642501ff4310601e413b675cf399ad6db49855527d2163b3eeeec +"is-windows@npm:^1.0.0": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 10c0/b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5 languageName: node linkType: hard -"isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d languageName: node linkType: hard @@ -2889,13 +1817,6 @@ __metadata: languageName: node linkType: hard -"isstream@npm:~0.1.2": - version: 0.1.2 - resolution: "isstream@npm:0.1.2" - checksum: 10c0/a6686a878735ca0a48e0d674dd6d8ad31aedfaf70f07920da16ceadc7577b46d67179a60b313f2e6860cb097a2c2eb3cbd0b89e921ae89199a59a17c3273d66f - languageName: node - linkType: hard - "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.2": version: 3.2.2 resolution: "istanbul-lib-coverage@npm:3.2.2" @@ -2938,137 +1859,52 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed - languageName: node - linkType: hard - -"js-yaml@npm:4.1.1, js-yaml@npm:^4.1.0": - version: 4.1.1 - resolution: "js-yaml@npm:4.1.1" - dependencies: - argparse: "npm:^2.0.1" - bin: - js-yaml: bin/js-yaml.js - checksum: 10c0/561c7d7088c40a9bb53cc75becbfb1df6ae49b34b5e6e5a81744b14ae8667ec564ad2527709d1a6e7d5e5fa6d483aa0f373a50ad98d42fde368ec4a190d4fae7 - languageName: node - linkType: hard - -"jsbn@npm:~0.1.0": - version: 0.1.1 - resolution: "jsbn@npm:0.1.1" - checksum: 10c0/e046e05c59ff880ee4ef68902dbdcb6d2f3c5d60c357d4d68647dc23add556c31c0e5f41bdb7e69e793dd63468bd9e085da3636341048ef577b18f5b713877c0 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 - languageName: node - linkType: hard - -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 10c0/71e30015d7f3d6dc1c316d6298047c8ef98a06d31ad064919976583eb61e1018a60a0067338f0f79cabc00d84af3fcc489bd48ce8a46ea165d9541ba17fb30c6 - languageName: node - linkType: hard - -"json-schema@npm:0.4.0": - version: 0.4.0 - resolution: "json-schema@npm:0.4.0" - checksum: 10c0/d4a637ec1d83544857c1c163232f3da46912e971d5bf054ba44fdb88f07d8d359a462b4aec46f2745efbc57053365608d88bc1d7b1729f7b4fc3369765639ed3 - languageName: node - linkType: hard - -"json-stringify-safe@npm:~5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 - languageName: node - linkType: hard - -"json-with-bigint@npm:^3.5.3": - version: 3.5.8 - resolution: "json-with-bigint@npm:3.5.8" - checksum: 10c0/a0c4e37626d74a9a493539f9f9a94855933fa15ea2f028859a787229a42c5f11803db6f94f1ce7b1d89756c1e80a7c1f11006bac266ec7ce819b75701765ca0a - languageName: node - linkType: hard - -"jsonparse@npm:^1.2.0": - version: 1.3.1 - resolution: "jsonparse@npm:1.3.1" - checksum: 10c0/89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 - languageName: node - linkType: hard - -"jsonwebtoken@npm:9.0.3": - version: 9.0.3 - resolution: "jsonwebtoken@npm:9.0.3" - dependencies: - jws: "npm:^4.0.1" - lodash.includes: "npm:^4.3.0" - lodash.isboolean: "npm:^3.0.3" - lodash.isinteger: "npm:^4.0.4" - lodash.isnumber: "npm:^3.0.3" - lodash.isplainobject: "npm:^4.0.6" - lodash.isstring: "npm:^4.0.1" - lodash.once: "npm:^4.0.0" - ms: "npm:^2.1.1" - semver: "npm:^7.5.4" - checksum: 10c0/6ca7f1e54886ea3bde7146a5a22b53847c46e25453c7f7307a69818b9a6ad48c390b2e59d5690fcfd03c529b01960060cc4bb0c686991d6edae2285dfd30f4ba +"js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed languageName: node linkType: hard -"jsprim@npm:^2.0.2": - version: 2.0.2 - resolution: "jsprim@npm:2.0.2" +"js-yaml@npm:^3.6.1": + version: 3.14.2 + resolution: "js-yaml@npm:3.14.2" dependencies: - assert-plus: "npm:1.0.0" - extsprintf: "npm:1.3.0" - json-schema: "npm:0.4.0" - verror: "npm:1.10.0" - checksum: 10c0/677be2d41df536c92c6d0114a492ef197084018cfbb1a3e10b1fa1aad889564b2e3a7baa6af7949cc2d73678f42368b0be165a26bd4e4de6883a30dd6a24e98d + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/3261f25912f5dd76605e5993d0a126c2b6c346311885d3c483706cd722efe34f697ea0331f654ce27c00a42b426e524518ec89d65ed02ea47df8ad26dcc8ce69 languageName: node linkType: hard -"jwa@npm:^2.0.1": - version: 2.0.1 - resolution: "jwa@npm:2.0.1" +"js-yaml@npm:^4.1.0, js-yaml@npm:^4.1.1": + version: 4.1.1 + resolution: "js-yaml@npm:4.1.1" dependencies: - buffer-equal-constant-time: "npm:^1.0.1" - ecdsa-sig-formatter: "npm:1.0.11" - safe-buffer: "npm:^5.0.1" - checksum: 10c0/ab3ebc6598e10dc11419d4ed675c9ca714a387481466b10e8a6f3f65d8d9c9237e2826f2505280a739cf4cbcf511cb288eeec22b5c9c63286fc5a2e4f97e78cf + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/561c7d7088c40a9bb53cc75becbfb1df6ae49b34b5e6e5a81744b14ae8667ec564ad2527709d1a6e7d5e5fa6d483aa0f373a50ad98d42fde368ec4a190d4fae7 languageName: node linkType: hard -"jws@npm:^4.0.1": - version: 4.0.1 - resolution: "jws@npm:4.0.1" - dependencies: - jwa: "npm:^2.0.1" - safe-buffer: "npm:^5.0.1" - checksum: 10c0/6be1ed93023aef570ccc5ea8d162b065840f3ef12f0d1bb3114cade844de7a357d5dc558201d9a65101e70885a6fa56b17462f520e6b0d426195510618a154d0 +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 languageName: node linkType: hard -"keyv@npm:^4.0.0": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" +"jsonfile@npm:^4.0.0": + version: 4.0.0 + resolution: "jsonfile@npm:4.0.0" dependencies: - json-buffer: "npm:3.0.1" - checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + graceful-fs: "npm:^4.1.6" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10c0/7dc94b628d57a66b71fb1b79510d460d662eb975b5f876d723f81549c2e9cd316d58a2ddf742b2b93a4fa6b17b2accaf1a738a0e2ea114bdfb13a32e5377e480 languageName: node linkType: hard @@ -3199,102 +2035,26 @@ __metadata: languageName: node linkType: hard -"lockfile@npm:1.0.4": - version: 1.0.4 - resolution: "lockfile@npm:1.0.4" - dependencies: - signal-exit: "npm:^3.0.2" - checksum: 10c0/80b7777ceb43105d9e588733c3efc2514653a5e3a0dae3e61347a1f5381da34dcaa2caaa60c39ed5d4ad31c1735a4831e5639a0ba1c508bfea8dbc9c89777b37 - languageName: node - linkType: hard - -"lodash.includes@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.includes@npm:4.3.0" - checksum: 10c0/7ca498b9b75bf602d04e48c0adb842dfc7d90f77bcb2a91a2b2be34a723ad24bc1c8b3683ec6b2552a90f216c723cdea530ddb11a3320e08fa38265703978f4b - languageName: node - linkType: hard - -"lodash.isboolean@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isboolean@npm:3.0.3" - checksum: 10c0/0aac604c1ef7e72f9a6b798e5b676606042401dd58e49f051df3cc1e3adb497b3d7695635a5cbec4ae5f66456b951fdabe7d6b387055f13267cde521f10ec7f7 - languageName: node - linkType: hard - -"lodash.isinteger@npm:^4.0.4": - version: 4.0.4 - resolution: "lodash.isinteger@npm:4.0.4" - checksum: 10c0/4c3e023a2373bf65bf366d3b8605b97ec830bca702a926939bcaa53f8e02789b6a176e7f166b082f9365bfec4121bfeb52e86e9040cb8d450e64c858583f61b7 - languageName: node - linkType: hard - -"lodash.isnumber@npm:^3.0.3": - version: 3.0.3 - resolution: "lodash.isnumber@npm:3.0.3" - checksum: 10c0/2d01530513a1ee4f72dd79528444db4e6360588adcb0e2ff663db2b3f642d4bb3d687051ae1115751ca9082db4fdef675160071226ca6bbf5f0c123dbf0aa12d - languageName: node - linkType: hard - -"lodash.isplainobject@npm:^4.0.6": - version: 4.0.6 - resolution: "lodash.isplainobject@npm:4.0.6" - checksum: 10c0/afd70b5c450d1e09f32a737bed06ff85b873ecd3d3d3400458725283e3f2e0bb6bf48e67dbe7a309eb371a822b16a26cca4a63c8c52db3fc7dc9d5f9dd324cbb - languageName: node - linkType: hard - -"lodash.isstring@npm:^4.0.1": - version: 4.0.1 - resolution: "lodash.isstring@npm:4.0.1" - checksum: 10c0/09eaf980a283f9eef58ef95b30ec7fee61df4d6bf4aba3b5f096869cc58f24c9da17900febc8ffd67819b4e29de29793190e88dc96983db92d84c95fa85d1c92 - languageName: node - linkType: hard - -"lodash.once@npm:^4.0.0": - version: 4.1.1 - resolution: "lodash.once@npm:4.1.1" - checksum: 10c0/46a9a0a66c45dd812fcc016e46605d85ad599fe87d71a02f6736220554b52ffbe82e79a483ad40f52a8a95755b0d1077fba259da8bfb6694a7abbf4a48f1fc04 - languageName: node - linkType: hard - -"lodash@npm:4, lodash@npm:4.18.1": - version: 4.18.1 - resolution: "lodash@npm:4.18.1" - checksum: 10c0/757228fc68805c59789e82185135cf85f05d0b2d3d54631d680ca79ec21944ec8314d4533639a14b8bcfbd97a517e78960933041a5af17ecb693ec6eecb99a27 - languageName: node - linkType: hard - -"lowdb@npm:1.0.0": - version: 1.0.0 - resolution: "lowdb@npm:1.0.0" +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" dependencies: - graceful-fs: "npm:^4.1.3" - is-promise: "npm:^2.1.0" - lodash: "npm:4" - pify: "npm:^3.0.0" - steno: "npm:^0.4.1" - checksum: 10c0/a6b9184bec92a8f02718a6bf5941d87ba17e54cd4906cb8fcd00cf7ee52def678d36be5f5f11a26599e450911107fdc9b3e672b3e2838541aa58a649a88a40af - languageName: node - linkType: hard - -"lowercase-keys@npm:2.0.0, lowercase-keys@npm:^2.0.0": - version: 2.0.0 - resolution: "lowercase-keys@npm:2.0.0" - checksum: 10c0/f82a2b3568910509da4b7906362efa40f5b54ea14c2584778ddb313226f9cbf21020a5db35f9b9a0e95847a9b781d548601f31793d736b22a2b8ae8eb9ab1082 + p-locate: "npm:^4.1.0" + checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 languageName: node linkType: hard -"lru-cache@npm:7.18.3": - version: 7.18.3 - resolution: "lru-cache@npm:7.18.3" - checksum: 10c0/b3a452b491433db885beed95041eb104c157ef7794b9c9b4d647be503be91769d11206bb573849a16b4cc0d03cbd15ffd22df7960997788b74c1d399ac7a4fed +"lodash.startcase@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.startcase@npm:4.4.0" + checksum: 10c0/bd82aa87a45de8080e1c5ee61128c7aee77bf7f1d86f4ff94f4a6d7438fc9e15e5f03374b947be577a93804c8ad6241f0251beaf1452bf716064eeb657b3a9f0 languageName: node linkType: hard "lru-cache@npm:^11.0.0": - version: 11.3.6 - resolution: "lru-cache@npm:11.3.6" - checksum: 10c0/3afe3e3000e424c18b640dcea5776b5c1de8684b7dac9718d58792dff1a4692b38cc14e263cbb41bdab98ffcf5408f003b33133b179ce5d271284be72a3ff2a9 + version: 11.4.0 + resolution: "lru-cache@npm:11.4.0" + checksum: 10c0/ac59697b1bcc19494b4a12af5e2320bb6c353473654d73e6c84033deb22faf220c861b1e0bc1ac9f65a394d46653870e982598a046c5976f44c4b1deb5ad8197 languageName: node linkType: hard @@ -3327,27 +2087,6 @@ __metadata: languageName: node linkType: hard -"math-intrinsics@npm:^1.1.0": - version: 1.1.0 - resolution: "math-intrinsics@npm:1.1.0" - checksum: 10c0/7579ff94e899e2f76ab64491d76cf606274c874d8f2af4a442c016bd85688927fcfca157ba6bf74b08e9439dc010b248ce05b96cc7c126a354c3bae7fcb48b7f - languageName: node - linkType: hard - -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: 10c0/d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928 - languageName: node - linkType: hard - -"merge-descriptors@npm:1.0.3": - version: 1.0.3 - resolution: "merge-descriptors@npm:1.0.3" - checksum: 10c0/866b7094afd9293b5ea5dcd82d71f80e51514bed33b4c4e9f516795dc366612a4cbb4dc94356e943a8a6914889a914530badff27f397191b9b75cda20b6bae93 - languageName: node - linkType: hard - "merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" @@ -3355,13 +2094,6 @@ __metadata: languageName: node linkType: hard -"methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: 10c0/bdf7cc72ff0a33e3eede03708c08983c4d7a173f91348b4b1e4f47d4cdbf734433ad971e7d1e8c77247d9e5cd8adb81ea4c67b0a2db526b758b2233d7814b8b2 - languageName: node - linkType: hard - "micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" @@ -3372,79 +2104,6 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - -"mime-db@npm:>= 1.43.0 < 2": - version: 1.54.0 - resolution: "mime-db@npm:1.54.0" - checksum: 10c0/8d907917bc2a90fa2df842cdf5dfeaf509adc15fe0531e07bb2f6ab15992416479015828d6a74200041c492e42cce3ebf78e5ce714388a0a538ea9c53eece284 - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 - languageName: node - linkType: hard - -"mime@npm:1.6.0": - version: 1.6.0 - resolution: "mime@npm:1.6.0" - bin: - mime: cli.js - checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0 - languageName: node - linkType: hard - -"mime@npm:3.0.0": - version: 3.0.0 - resolution: "mime@npm:3.0.0" - bin: - mime: cli.js - checksum: 10c0/402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531 - languageName: node - linkType: hard - -"mimic-response@npm:^1.0.0": - version: 1.0.1 - resolution: "mimic-response@npm:1.0.1" - checksum: 10c0/c5381a5eae997f1c3b5e90ca7f209ed58c3615caeee850e85329c598f0c000ae7bec40196580eef1781c60c709f47258131dab237cad8786f8f56750594f27fa - languageName: node - linkType: hard - -"mimic-response@npm:^3.1.0": - version: 3.1.0 - resolution: "mimic-response@npm:3.1.0" - checksum: 10c0/0d6f07ce6e03e9e4445bee655202153bdb8a98d67ee8dc965ac140900d7a2688343e6b4c9a72cfc9ef2f7944dfd76eef4ab2482eb7b293a68b84916bac735362 - languageName: node - linkType: hard - -"minimatch@npm:7.4.6": - version: 7.4.6 - resolution: "minimatch@npm:7.4.6" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/e587bf3d90542555a3d58aca94c549b72d58b0a66545dd00eef808d0d66e5d9a163d3084da7f874e83ca8cc47e91c670e6c6f6593a3e7bb27fcc0e6512e87c67 - languageName: node - linkType: hard - -"minimatch@npm:7.4.9": - version: 7.4.9 - resolution: "minimatch@npm:7.4.9" - dependencies: - brace-expansion: "npm:^2.0.2" - checksum: 10c0/8d5406a9697edb9b7ea02697d58cabcb3d3a9a4a02caa1cf57b9ab5ae22c78b2945600661a78f91d1545f77521f97f3cb5f8cb066e58356a121b50e4e60ccdbe - languageName: node - linkType: hard - "minimatch@npm:^10.2.2": version: 10.2.5 resolution: "minimatch@npm:10.2.5" @@ -3454,7 +2113,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.5, minimist@npm:^1.2.6": +"minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -3477,26 +2136,10 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:1.0.4": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf - languageName: node - linkType: hard - -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d - languageName: node - linkType: hard - -"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 +"mri@npm:^1.2.0": + version: 1.2.0 + resolution: "mri@npm:1.2.0" + checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7 languageName: node linkType: hard @@ -3509,41 +2152,6 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 - languageName: node - linkType: hard - -"negotiator@npm:~0.6.4": - version: 0.6.4 - resolution: "negotiator@npm:0.6.4" - checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea - languageName: node - linkType: hard - -"neo-async@npm:^2.6.2": - version: 2.6.2 - resolution: "neo-async@npm:2.6.2" - checksum: 10c0/c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d - languageName: node - linkType: hard - -"node-fetch@npm:cjs": - version: 2.6.7 - resolution: "node-fetch@npm:2.6.7" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 10c0/fcae80f5ac52fbf5012f5e19df2bd3915e67d3b3ad51cb5942943df2238d32ba15890fecabd0e166876a9f98a581ab50f3f10eb942b09405c49ef8da36b826c7 - languageName: node - linkType: hard - "node-gyp@npm:latest": version: 12.3.0 resolution: "node-gyp@npm:12.3.0" @@ -3575,27 +2183,6 @@ __metadata: languageName: node linkType: hard -"normalize-url@npm:^6.0.1": - version: 6.1.0 - resolution: "normalize-url@npm:6.1.0" - checksum: 10c0/95d948f9bdd2cfde91aa786d1816ae40f8262946e13700bf6628105994fe0ff361662c20af3961161c38a119dc977adeb41fc0b41b1745eb77edaaf9cb22db23 - languageName: node - linkType: hard - -"object-assign@npm:^4": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 - languageName: node - linkType: hard - -"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": - version: 1.13.4 - resolution: "object-inspect@npm:1.13.4" - checksum: 10c0/d7f8711e803b96ea3191c745d6f8056ce1f2496e530e6a19a0e92d89b0fa3c76d910c31f0aa270432db6bd3b2f85500a376a83aaba849a8d518c8845b3211692 - languageName: node - linkType: hard - "obug@npm:^2.1.1": version: 2.1.1 resolution: "obug@npm:2.1.1" @@ -3603,29 +2190,13 @@ __metadata: languageName: node linkType: hard -"on-exit-leak-free@npm:2.1.2, on-exit-leak-free@npm:^2.1.0": +"on-exit-leak-free@npm:^2.1.0": version: 2.1.2 resolution: "on-exit-leak-free@npm:2.1.2" checksum: 10c0/faea2e1c9d696ecee919026c32be8d6a633a7ac1240b3b87e944a380e8a11dc9c95c4a1f8fb0568de7ab8db3823e790f12bda45296b1d111e341aad3922a0570 languageName: node linkType: hard -"on-finished@npm:~2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" - dependencies: - ee-first: "npm:1.1.1" - checksum: 10c0/46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 - languageName: node - linkType: hard - -"on-headers@npm:~1.1.0": - version: 1.1.0 - resolution: "on-headers@npm:1.1.0" - checksum: 10c0/2c3b6b0d68ec9adbd561dc2d61c9b14da8ac03d8a2f0fd9e97bdf0600c887d5d97f664ff3be6876cf40cda6e3c587d73a4745e10b426ac50c7664fc5a0dfc0a1 - languageName: node - linkType: hard - "once@npm:^1.3.1, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -3635,6 +2206,13 @@ __metadata: languageName: node linkType: hard +"outdent@npm:^0.5.0": + version: 0.5.0 + resolution: "outdent@npm:0.5.0" + checksum: 10c0/e216a4498889ba1babae06af84cdc4091f7cac86da49d22d0163b3be202a5f52efcd2bcd3dfca60a361eb3a27b4299f185c5655061b6b402552d7fcd1d040cff + languageName: node + linkType: hard + "oxc-parser@npm:^0.64.0": version: 0.64.0 resolution: "oxc-parser@npm:0.64.0" @@ -3675,29 +2253,29 @@ __metadata: languageName: node linkType: hard -"oxfmt@npm:^0.50.0": - version: 0.50.0 - resolution: "oxfmt@npm:0.50.0" - dependencies: - "@oxfmt/binding-android-arm-eabi": "npm:0.50.0" - "@oxfmt/binding-android-arm64": "npm:0.50.0" - "@oxfmt/binding-darwin-arm64": "npm:0.50.0" - "@oxfmt/binding-darwin-x64": "npm:0.50.0" - "@oxfmt/binding-freebsd-x64": "npm:0.50.0" - "@oxfmt/binding-linux-arm-gnueabihf": "npm:0.50.0" - "@oxfmt/binding-linux-arm-musleabihf": "npm:0.50.0" - "@oxfmt/binding-linux-arm64-gnu": "npm:0.50.0" - "@oxfmt/binding-linux-arm64-musl": "npm:0.50.0" - "@oxfmt/binding-linux-ppc64-gnu": "npm:0.50.0" - "@oxfmt/binding-linux-riscv64-gnu": "npm:0.50.0" - "@oxfmt/binding-linux-riscv64-musl": "npm:0.50.0" - "@oxfmt/binding-linux-s390x-gnu": "npm:0.50.0" - "@oxfmt/binding-linux-x64-gnu": "npm:0.50.0" - "@oxfmt/binding-linux-x64-musl": "npm:0.50.0" - "@oxfmt/binding-openharmony-arm64": "npm:0.50.0" - "@oxfmt/binding-win32-arm64-msvc": "npm:0.50.0" - "@oxfmt/binding-win32-ia32-msvc": "npm:0.50.0" - "@oxfmt/binding-win32-x64-msvc": "npm:0.50.0" +"oxfmt@npm:^0.51.0": + version: 0.51.0 + resolution: "oxfmt@npm:0.51.0" + dependencies: + "@oxfmt/binding-android-arm-eabi": "npm:0.51.0" + "@oxfmt/binding-android-arm64": "npm:0.51.0" + "@oxfmt/binding-darwin-arm64": "npm:0.51.0" + "@oxfmt/binding-darwin-x64": "npm:0.51.0" + "@oxfmt/binding-freebsd-x64": "npm:0.51.0" + "@oxfmt/binding-linux-arm-gnueabihf": "npm:0.51.0" + "@oxfmt/binding-linux-arm-musleabihf": "npm:0.51.0" + "@oxfmt/binding-linux-arm64-gnu": "npm:0.51.0" + "@oxfmt/binding-linux-arm64-musl": "npm:0.51.0" + "@oxfmt/binding-linux-ppc64-gnu": "npm:0.51.0" + "@oxfmt/binding-linux-riscv64-gnu": "npm:0.51.0" + "@oxfmt/binding-linux-riscv64-musl": "npm:0.51.0" + "@oxfmt/binding-linux-s390x-gnu": "npm:0.51.0" + "@oxfmt/binding-linux-x64-gnu": "npm:0.51.0" + "@oxfmt/binding-linux-x64-musl": "npm:0.51.0" + "@oxfmt/binding-openharmony-arm64": "npm:0.51.0" + "@oxfmt/binding-win32-arm64-msvc": "npm:0.51.0" + "@oxfmt/binding-win32-ia32-msvc": "npm:0.51.0" + "@oxfmt/binding-win32-x64-msvc": "npm:0.51.0" tinypool: "npm:2.1.0" peerDependencies: svelte: ^5.0.0 @@ -3745,33 +2323,33 @@ __metadata: optional: true bin: oxfmt: bin/oxfmt - checksum: 10c0/75e2975ebc2943db9a6adbad6c7a8e4552af8739ce27ef379eca355421ddd4392021d8b7615eb7dd76789af40c3bed419987ef220a05ab4e872b0beeff0553c7 - languageName: node - linkType: hard - -"oxlint@npm:^1.65.0": - version: 1.65.0 - resolution: "oxlint@npm:1.65.0" - dependencies: - "@oxlint/binding-android-arm-eabi": "npm:1.65.0" - "@oxlint/binding-android-arm64": "npm:1.65.0" - "@oxlint/binding-darwin-arm64": "npm:1.65.0" - "@oxlint/binding-darwin-x64": "npm:1.65.0" - "@oxlint/binding-freebsd-x64": "npm:1.65.0" - "@oxlint/binding-linux-arm-gnueabihf": "npm:1.65.0" - "@oxlint/binding-linux-arm-musleabihf": "npm:1.65.0" - "@oxlint/binding-linux-arm64-gnu": "npm:1.65.0" - "@oxlint/binding-linux-arm64-musl": "npm:1.65.0" - "@oxlint/binding-linux-ppc64-gnu": "npm:1.65.0" - "@oxlint/binding-linux-riscv64-gnu": "npm:1.65.0" - "@oxlint/binding-linux-riscv64-musl": "npm:1.65.0" - "@oxlint/binding-linux-s390x-gnu": "npm:1.65.0" - "@oxlint/binding-linux-x64-gnu": "npm:1.65.0" - "@oxlint/binding-linux-x64-musl": "npm:1.65.0" - "@oxlint/binding-openharmony-arm64": "npm:1.65.0" - "@oxlint/binding-win32-arm64-msvc": "npm:1.65.0" - "@oxlint/binding-win32-ia32-msvc": "npm:1.65.0" - "@oxlint/binding-win32-x64-msvc": "npm:1.65.0" + checksum: 10c0/44b896b5c105b4619a34c5d82857a6b3bb87d80946c28dc1388409ab3e14fbfb20c461e450850f4b0b90ba0bc08e163ab4be0d250860217a13f9483cd5dbb047 + languageName: node + linkType: hard + +"oxlint@npm:^1.66.0": + version: 1.66.0 + resolution: "oxlint@npm:1.66.0" + dependencies: + "@oxlint/binding-android-arm-eabi": "npm:1.66.0" + "@oxlint/binding-android-arm64": "npm:1.66.0" + "@oxlint/binding-darwin-arm64": "npm:1.66.0" + "@oxlint/binding-darwin-x64": "npm:1.66.0" + "@oxlint/binding-freebsd-x64": "npm:1.66.0" + "@oxlint/binding-linux-arm-gnueabihf": "npm:1.66.0" + "@oxlint/binding-linux-arm-musleabihf": "npm:1.66.0" + "@oxlint/binding-linux-arm64-gnu": "npm:1.66.0" + "@oxlint/binding-linux-arm64-musl": "npm:1.66.0" + "@oxlint/binding-linux-ppc64-gnu": "npm:1.66.0" + "@oxlint/binding-linux-riscv64-gnu": "npm:1.66.0" + "@oxlint/binding-linux-riscv64-musl": "npm:1.66.0" + "@oxlint/binding-linux-s390x-gnu": "npm:1.66.0" + "@oxlint/binding-linux-x64-gnu": "npm:1.66.0" + "@oxlint/binding-linux-x64-musl": "npm:1.66.0" + "@oxlint/binding-openharmony-arm64": "npm:1.66.0" + "@oxlint/binding-win32-arm64-msvc": "npm:1.66.0" + "@oxlint/binding-win32-ia32-msvc": "npm:1.66.0" + "@oxlint/binding-win32-x64-msvc": "npm:1.66.0" peerDependencies: oxlint-tsgolint: ">=0.22.1" dependenciesMeta: @@ -3818,21 +2396,57 @@ __metadata: optional: true bin: oxlint: bin/oxlint - checksum: 10c0/00cf5d8dd42657da87eefa15b0b72ef3c8216529ad7d171115134e0b4c90fe2061f5e46e0df6e3370c22742d760b1d50358c7eb366d58a5544c4295c2bf792b6 + checksum: 10c0/c43a1141159ef3a32d9d7d49852c9439b9e65dd7c0021ca76f5677f9c0b3a495270f00c2daa2115686997fbf5737a769882bbdeb84276558e0105e6ac6587432 languageName: node linkType: hard -"p-cancelable@npm:2.1.1": - version: 2.1.1 - resolution: "p-cancelable@npm:2.1.1" - checksum: 10c0/8c6dc1f8dd4154fd8b96a10e55a3a832684c4365fb9108056d89e79fbf21a2465027c04a59d0d797b5ffe10b54a61a32043af287d5c4860f1e996cbdbc847f01 +"p-filter@npm:^2.1.0": + version: 2.1.0 + resolution: "p-filter@npm:2.1.0" + dependencies: + p-map: "npm:^2.0.0" + checksum: 10c0/5ac34b74b3b691c04212d5dd2319ed484f591c557a850a3ffc93a08cb38c4f5540be059c6b10a185773c479ca583a91ea00c7d6c9958c815e6b74d052f356645 + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 + languageName: node + linkType: hard + +"p-map@npm:^2.0.0": + version: 2.1.0 + resolution: "p-map@npm:2.1.0" + checksum: 10c0/735dae87badd4737a2dd582b6d8f93e49a1b79eabbc9815a4d63a528d5e3523e978e127a21d784cccb637010e32103a40d2aaa3ab23ae60250b1a820ca752043 + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f languageName: node linkType: hard -"pako@npm:~0.2.0": - version: 0.2.9 - resolution: "pako@npm:0.2.9" - checksum: 10c0/79c1806ebcf325b60ae599e4d7227c2e346d7b829dc20f5cf24cef07c934079dc3a61c5b3c8278a2f7a190c4a613e343ea11e5302dbe252efd11712df4b6b041 +"package-manager-detector@npm:^0.2.0": + version: 0.2.11 + resolution: "package-manager-detector@npm:0.2.11" + dependencies: + quansync: "npm:^0.2.7" + checksum: 10c0/247991de461b9e731f3463b7dae9ce187e53095b7b94d7d96eec039abf418b61ccf74464bec1d0c11d97311f33472e77baccd4c5898f77358da4b5b33395e0b1 languageName: node linkType: hard @@ -3857,10 +2471,17 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c languageName: node linkType: hard @@ -3874,13 +2495,6 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:~0.1.12": - version: 0.1.13 - resolution: "path-to-regexp@npm:0.1.13" - checksum: 10c0/1cae3921739c154a8926e136185a10c916f79a249b9072a5001b266d96e193860ca03867e8e8cc808b786862d750f427ed93686bc259355442c3407a62deab1a - languageName: node - linkType: hard - "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -3895,25 +2509,7 @@ __metadata: languageName: node linkType: hard -"peek-stream@npm:^1.1.0": - version: 1.1.3 - resolution: "peek-stream@npm:1.1.3" - dependencies: - buffer-from: "npm:^1.0.0" - duplexify: "npm:^3.5.0" - through2: "npm:^2.0.3" - checksum: 10c0/3c35d1951b8640036f93b1b5628a90f849e49ca4f2e6aba393ff4978413931d9c491c83f71a92f878d5ea4c670af0bba04dfcfb79b310ead22601db7c1420e36 - languageName: node - linkType: hard - -"performance-now@npm:^2.1.0": - version: 2.1.0 - resolution: "performance-now@npm:2.1.0" - checksum: 10c0/22c54de06f269e29f640e0e075207af57de5052a3d15e360c09b9a8663f393f6f45902006c1e71aa8a5a1cdfb1a47fe268826f8496d6425c362f00f5bc3e85d9 - languageName: node - linkType: hard - -"picocolors@npm:^1.1.1": +"picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 @@ -3934,29 +2530,10 @@ __metadata: languageName: node linkType: hard -"pify@npm:^3.0.0": - version: 3.0.0 - resolution: "pify@npm:3.0.0" - checksum: 10c0/fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10 - languageName: node - linkType: hard - -"pino-abstract-transport@npm:1.2.0": - version: 1.2.0 - resolution: "pino-abstract-transport@npm:1.2.0" - dependencies: - readable-stream: "npm:^4.0.0" - split2: "npm:^4.0.0" - checksum: 10c0/b4ab59529b7a91f488440147fc58ee0827a6c1c5ca3627292339354b1381072c1a6bfa9b46d03ad27872589e8477ecf74da12cf286e1e6b665ac64a3b806bf07 - languageName: node - linkType: hard - -"pino-abstract-transport@npm:^2.0.0": - version: 2.0.0 - resolution: "pino-abstract-transport@npm:2.0.0" - dependencies: - split2: "npm:^4.0.0" - checksum: 10c0/02c05b8f2ffce0d7c774c8e588f61e8b77de8ccb5f8125afd4a7325c9ea0e6af7fb78168999657712ae843e4462bb70ac550dfd6284f930ee57f17f486f25a9f +"pify@npm:^4.0.1": + version: 4.0.1 + resolution: "pify@npm:4.0.1" + checksum: 10c0/6f9d404b0d47a965437403c9b90eca8bb2536407f03de165940e62e72c8c8b75adda5516c6b9b23675a5877cc0bcac6bdfb0ef0e39414cd2476d5495da40e7cf languageName: node linkType: hard @@ -3999,27 +2576,6 @@ __metadata: languageName: node linkType: hard -"pino@npm:9.14.0": - version: 9.14.0 - resolution: "pino@npm:9.14.0" - dependencies: - "@pinojs/redact": "npm:^0.4.0" - atomic-sleep: "npm:^1.0.0" - on-exit-leak-free: "npm:^2.1.0" - pino-abstract-transport: "npm:^2.0.0" - pino-std-serializers: "npm:^7.0.0" - process-warning: "npm:^5.0.0" - quick-format-unescaped: "npm:^4.0.3" - real-require: "npm:^0.2.0" - safe-stable-stringify: "npm:^2.3.1" - sonic-boom: "npm:^4.0.1" - thread-stream: "npm:^3.0.0" - bin: - pino: bin.js - checksum: 10c0/9a10d9bf820a585eae9bc270fb4e55c895e48280d54adbbb4063ec061694b22d8809c80203cf5fe9f920a54c832b0b8dfb67cb28a04baa13abebaf261a9c9f3e - languageName: node - linkType: hard - "pino@npm:^10.3.1": version: 10.3.1 resolution: "pino@npm:10.3.1" @@ -4052,58 +2608,26 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^6.0.0": - version: 6.1.0 - resolution: "proc-log@npm:6.1.0" - checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82 - languageName: node - linkType: hard - -"process-nextick-args@npm:~2.0.0": - version: 2.0.1 - resolution: "process-nextick-args@npm:2.0.1" - checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367 - languageName: node - linkType: hard - -"process-warning@npm:1.0.0": - version: 1.0.0 - resolution: "process-warning@npm:1.0.0" - checksum: 10c0/43ec4229d64eb5c58340c8aacade49eb5f6fd513eae54140abf365929ca20987f0a35c5868125e2b583cad4de8cd257beb5667d9cc539d9190a7a4c3014adf22 - languageName: node - linkType: hard - -"process-warning@npm:^5.0.0": - version: 5.0.0 - resolution: "process-warning@npm:5.0.0" - checksum: 10c0/941f48863d368ec161e0b5890ba0c6af94170078f3d6b5e915c19b36fb59edb0dc2f8e834d25e0d375a8bf368a49d490f080508842168832b93489d17843ec29 - languageName: node - linkType: hard - -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 +"prettier@npm:^2.7.1": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: 10c0/463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a languageName: node linkType: hard -"proxy-addr@npm:~2.0.7": - version: 2.0.7 - resolution: "proxy-addr@npm:2.0.7" - dependencies: - forwarded: "npm:0.2.0" - ipaddr.js: "npm:1.9.1" - checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210 +"proc-log@npm:^6.0.0": + version: 6.1.0 + resolution: "proc-log@npm:6.1.0" + checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82 languageName: node linkType: hard -"pump@npm:^2.0.0": - version: 2.0.1 - resolution: "pump@npm:2.0.1" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: 10c0/f1fe8960f44d145f8617ea4c67de05392da4557052980314c8f85081aee26953bdcab64afad58a2b1df0e8ff7203e3710e848cbe81a01027978edc6e264db355 +"process-warning@npm:^5.0.0": + version: 5.0.0 + resolution: "process-warning@npm:5.0.0" + checksum: 10c0/941f48863d368ec161e0b5890ba0c6af94170078f3d6b5e915c19b36fb59edb0dc2f8e834d25e0d375a8bf368a49d490f080508842168832b93489d17843ec29 languageName: node linkType: hard @@ -4117,32 +2641,10 @@ __metadata: languageName: node linkType: hard -"pumpify@npm:^1.3.3": - version: 1.5.1 - resolution: "pumpify@npm:1.5.1" - dependencies: - duplexify: "npm:^3.6.0" - inherits: "npm:^2.0.3" - pump: "npm:^2.0.0" - checksum: 10c0/0bcabf9e3dbf2d0cc1f9b84ac80d3c75386111caf8963bfd98817a1e2192000ac0ccc804ca6ccd5b2b8430fdb71347b20fb2f014fe3d41adbacb1b502a841c45 - languageName: node - linkType: hard - -"qs@npm:~6.14.0, qs@npm:~6.14.1": - version: 6.14.2 - resolution: "qs@npm:6.14.2" - dependencies: - side-channel: "npm:^1.1.0" - checksum: 10c0/646110124476fc9acf3c80994c8c3a0600cbad06a4ede1c9e93341006e8426d64e85e048baf8f0c4995f0f1bf0f37d1f3acc5ec1455850b81978792969a60ef6 - languageName: node - linkType: hard - -"qs@npm:~6.15.1": - version: 6.15.2 - resolution: "qs@npm:6.15.2" - dependencies: - side-channel: "npm:^1.1.0" - checksum: 10c0/e6fd5f6f0aab06d480fe9ab15cebfc4ce4235303e2f91dc69a8f7f4df1e668a61c11d1cfbabacf4295cbbeb7b670ed23db45307480726259761f98e5695e93a7 +"quansync@npm:^0.2.7": + version: 0.2.11 + resolution: "quansync@npm:0.2.11" + checksum: 10c0/cb9a1f8ebce074069f2f6a78578873ffedd9de9f6aa212039b44c0870955c04a71c3b1311b5d97f8ac2f2ec476de202d0a5c01160cb12bc0a11b7ef36d22ef56 languageName: node linkType: hard @@ -4160,57 +2662,15 @@ __metadata: languageName: node linkType: hard -"quick-lru@npm:^5.1.1": - version: 5.1.1 - resolution: "quick-lru@npm:5.1.1" - checksum: 10c0/a24cba5da8cec30d70d2484be37622580f64765fb6390a928b17f60cd69e8dbd32a954b3ff9176fa1b86d86ff2ba05252fae55dc4d40d0291c60412b0ad096da - languageName: node - linkType: hard - -"range-parser@npm:~1.2.1": - version: 1.2.1 - resolution: "range-parser@npm:1.2.1" - checksum: 10c0/96c032ac2475c8027b7a4e9fe22dc0dfe0f6d90b85e496e0f016fbdb99d6d066de0112e680805075bd989905e2123b3b3d002765149294dce0c1f7f01fcc2ea0 - languageName: node - linkType: hard - -"raw-body@npm:~2.5.3": - version: 2.5.3 - resolution: "raw-body@npm:2.5.3" - dependencies: - bytes: "npm:~3.1.2" - http-errors: "npm:~2.0.1" - iconv-lite: "npm:~0.4.24" - unpipe: "npm:~1.0.0" - checksum: 10c0/449844344fc90547fb994383a494b83300e4f22199f146a79f68d78a199a8f2a923ea9fd29c3be979bfd50291a3884733619ffc15ba02a32e703b612f8d3f74a - languageName: node - linkType: hard - -"readable-stream@npm:^2.0.0, readable-stream@npm:~2.3.6": - version: 2.3.8 - resolution: "readable-stream@npm:2.3.8" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.3" - isarray: "npm:~1.0.0" - process-nextick-args: "npm:~2.0.0" - safe-buffer: "npm:~5.1.1" - string_decoder: "npm:~1.1.1" - util-deprecate: "npm:~1.0.1" - checksum: 10c0/7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa - languageName: node - linkType: hard - -"readable-stream@npm:^4.0.0": - version: 4.7.0 - resolution: "readable-stream@npm:4.7.0" +"read-yaml-file@npm:^1.1.0": + version: 1.1.0 + resolution: "read-yaml-file@npm:1.1.0" dependencies: - abort-controller: "npm:^3.0.0" - buffer: "npm:^6.0.3" - events: "npm:^3.3.0" - process: "npm:^0.11.10" - string_decoder: "npm:^1.3.0" - checksum: 10c0/fd86d068da21cfdb10f7a4479f2e47d9c0a9b0c862fc0c840a7e5360201580a55ac399c764b12a4f6fa291f8cee74d9c4b7562e0d53b3c4b2769f2c98155d957 + graceful-fs: "npm:^4.1.5" + js-yaml: "npm:^3.6.1" + pify: "npm:^4.0.1" + strip-bom: "npm:^3.0.0" + checksum: 10c0/85a9ba08bb93f3c91089bab4f1603995ec7156ee595f8ce40ae9f49d841cbb586511508bd47b7cf78c97f678c679b2c6e2c0092e63f124214af41b6f8a25ca31 languageName: node linkType: hard @@ -4235,20 +2695,6 @@ __metadata: languageName: node linkType: hard -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 - languageName: node - linkType: hard - -"resolve-alpn@npm:^1.2.0": - version: 1.2.1 - resolution: "resolve-alpn@npm:1.2.1" - checksum: 10c0/b70b29c1843bc39781ef946c8cd4482e6d425976599c0f9c138cec8209e4e0736161bf39319b01676a847000085dfdaf63583c6fb4427bf751a10635bd2aa0c4 - languageName: node - linkType: hard - "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -4256,12 +2702,10 @@ __metadata: languageName: node linkType: hard -"responselike@npm:2.0.1, responselike@npm:^2.0.0": - version: 2.0.1 - resolution: "responselike@npm:2.0.1" - dependencies: - lowercase-keys: "npm:^2.0.0" - checksum: 10c0/360b6deb5f101a9f8a4174f7837c523c3ec78b7ca8a7c1d45a1062b303659308a23757e318b1e91ed8684ad1205721142dd664d94771cd63499353fd4ee732b5 +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 languageName: node linkType: hard @@ -4339,20 +2783,6 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 - languageName: node - linkType: hard - "safe-stable-stringify@npm:^2.3.1": version: 2.5.0 resolution: "safe-stable-stringify@npm:2.5.0" @@ -4360,22 +2790,13 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": +"safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 languageName: node linkType: hard -"sanitize-filename@npm:1.6.4": - version: 1.6.4 - resolution: "sanitize-filename@npm:1.6.4" - dependencies: - truncate-utf8-bytes: "npm:^1.0.0" - checksum: 10c0/b56415a95e4f90dc992cd126b5f45c7b39d178662fbd0dc48f03203e35c58ab8e9eb3f5cebfaabc46f1438093d65a3a3cc96875e2b036a1474e19593bee9a540 - languageName: node - linkType: hard - "secure-json-parse@npm:^4.0.0": version: 4.1.0 resolution: "secure-json-parse@npm:4.1.0" @@ -4383,25 +2804,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.7.3": - version: 7.7.3 - resolution: "semver@npm:7.7.3" - bin: - semver: bin/semver.js - checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e - languageName: node - linkType: hard - -"semver@npm:7.7.4": - version: 7.7.4 - resolution: "semver@npm:7.7.4" - bin: - semver: bin/semver.js - checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2 - languageName: node - linkType: hard - -"semver@npm:7.8.0, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.8.0": +"semver@npm:^7.3.5, semver@npm:^7.5.3": version: 7.8.0 resolution: "semver@npm:7.8.0" bin: @@ -4410,91 +2813,19 @@ __metadata: languageName: node linkType: hard -"send@npm:~0.19.0, send@npm:~0.19.1": - version: 0.19.2 - resolution: "send@npm:0.19.2" - dependencies: - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - encodeurl: "npm:~2.0.0" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:~0.5.2" - http-errors: "npm:~2.0.1" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:~2.4.1" - range-parser: "npm:~1.2.1" - statuses: "npm:~2.0.2" - checksum: 10c0/20c2389fe0fdf3fc499938cac598bc32272287e993c4960717381a10de8550028feadfb9076f959a3a3ebdea42e1f690e116f0d16468fa56b9fd41866d3dc267 - languageName: node - linkType: hard - -"serve-static@npm:~1.16.2": - version: 1.16.3 - resolution: "serve-static@npm:1.16.3" - dependencies: - encodeurl: "npm:~2.0.0" - escape-html: "npm:~1.0.3" - parseurl: "npm:~1.3.3" - send: "npm:~0.19.1" - checksum: 10c0/36320397a073c71bedf58af48a4a100fe6d93f07459af4d6f08b9a7217c04ce2a4939e0effd842dc7bece93ffcd59eb52f58c4fff2a8e002dc29ae6b219cd42b - languageName: node - linkType: hard - -"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: 10c0/68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc - languageName: node - linkType: hard - -"side-channel-list@npm:^1.0.0": - version: 1.0.1 - resolution: "side-channel-list@npm:1.0.1" - dependencies: - es-errors: "npm:^1.3.0" - object-inspect: "npm:^1.13.4" - checksum: 10c0/d346c787fd2f9f1c2fdea14f00e8250118db0e7596d85a6cb9faa75f105d31a73a8f7a341c93d7df2a2429098c3d37a77bd3be9e88c37094b8c01807bc77c7a2 - languageName: node - linkType: hard - -"side-channel-map@npm:^1.0.1": - version: 1.0.1 - resolution: "side-channel-map@npm:1.0.1" - dependencies: - call-bound: "npm:^1.0.2" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.5" - object-inspect: "npm:^1.13.3" - checksum: 10c0/010584e6444dd8a20b85bc926d934424bd809e1a3af941cace229f7fdcb751aada0fb7164f60c2e22292b7fa3c0ff0bce237081fd4cdbc80de1dc68e95430672 - languageName: node - linkType: hard - -"side-channel-weakmap@npm:^1.0.2": - version: 1.0.2 - resolution: "side-channel-weakmap@npm:1.0.2" +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" dependencies: - call-bound: "npm:^1.0.2" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.5" - object-inspect: "npm:^1.13.3" - side-channel-map: "npm:^1.0.1" - checksum: 10c0/71362709ac233e08807ccd980101c3e2d7efe849edc51455030327b059f6c4d292c237f94dc0685031dd11c07dd17a68afde235d6cf2102d949567f98ab58185 + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e languageName: node linkType: hard -"side-channel@npm:^1.1.0": - version: 1.1.0 - resolution: "side-channel@npm:1.1.0" - dependencies: - es-errors: "npm:^1.3.0" - object-inspect: "npm:^1.13.3" - side-channel-list: "npm:^1.0.0" - side-channel-map: "npm:^1.0.1" - side-channel-weakmap: "npm:^1.0.2" - checksum: 10c0/cb20dad41eb032e6c24c0982e1e5a24963a28aa6122b4f05b3f3d6bf8ae7fd5474ef382c8f54a6a3ab86e0cac4d41a23bd64ede3970e5bfb50326ba02a7996e6 +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 languageName: node linkType: hard @@ -4505,10 +2836,10 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.2": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 languageName: node linkType: hard @@ -4519,15 +2850,6 @@ __metadata: languageName: node linkType: hard -"sonic-boom@npm:3.8.1": - version: 3.8.1 - resolution: "sonic-boom@npm:3.8.1" - dependencies: - atomic-sleep: "npm:^1.0.0" - checksum: 10c0/9bf338f86147db50e116484f74f2e29a321a12733e0cefab3087c80dd32bf4df3d7407dbcafc13bc39ac269d9dd61dd6ef952354b9503392d4e1e7414f8e360e - languageName: node - linkType: hard - "sonic-boom@npm:^4.0.1": version: 4.2.1 resolution: "sonic-boom@npm:4.2.1" @@ -4544,10 +2866,13 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 +"spawndamnit@npm:^3.0.1": + version: 3.0.1 + resolution: "spawndamnit@npm:3.0.1" + dependencies: + cross-spawn: "npm:^7.0.5" + signal-exit: "npm:^4.0.1" + checksum: 10c0/a9821a59bc78a665bd44718dea8f4f4010bb1a374972b0a6a1633b9186cda6d6fd93f22d1e49d9944d6bb175ba23ce29036a4bd624884fb157d981842c3682f3 languageName: node linkType: hard @@ -4558,24 +2883,10 @@ __metadata: languageName: node linkType: hard -"sshpk@npm:^1.18.0": - version: 1.18.0 - resolution: "sshpk@npm:1.18.0" - dependencies: - asn1: "npm:~0.2.3" - assert-plus: "npm:^1.0.0" - bcrypt-pbkdf: "npm:^1.0.0" - dashdash: "npm:^1.12.0" - ecc-jsbn: "npm:~0.1.1" - getpass: "npm:^0.1.1" - jsbn: "npm:~0.1.0" - safer-buffer: "npm:^2.0.2" - tweetnacl: "npm:~0.14.0" - bin: - sshpk-conv: bin/sshpk-conv - sshpk-sign: bin/sshpk-sign - sshpk-verify: bin/sshpk-verify - checksum: 10c0/e516e34fa981cfceef45fd2e947772cc70dbd57523e5c608e2cd73752ba7f8a99a04df7c3ed751588e8d91956b6f16531590b35d3489980d1c54c38bebcd41b1 +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb languageName: node linkType: hard @@ -4586,20 +2897,6 @@ __metadata: languageName: node linkType: hard -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 - languageName: node - linkType: hard - -"statuses@npm:~2.0.1, statuses@npm:~2.0.2": - version: 2.0.2 - resolution: "statuses@npm:2.0.2" - checksum: 10c0/a9947d98ad60d01f6b26727570f3bcceb6c8fa789da64fe6889908fe2e294d57503b14bf2b5af7605c2d36647259e856635cd4c49eab41667658ec9d0080ec3f - languageName: node - linkType: hard - "std-env@npm:^4.0.0-rc.1": version: 4.1.0 resolution: "std-env@npm:4.1.0" @@ -4607,48 +2904,19 @@ __metadata: languageName: node linkType: hard -"steno@npm:^0.4.1": - version: 0.4.4 - resolution: "steno@npm:0.4.4" - dependencies: - graceful-fs: "npm:^4.1.3" - checksum: 10c0/026d42455aad66f0ab1ac8468dc75484a1df4ad7d8d62763a132afe009d087bb0730e57f628127c2f09dbfdc15e542d7fe9c7ca93e98202739621f8d251a8853 - languageName: node - linkType: hard - -"stream-shift@npm:^1.0.0": - version: 1.0.3 - resolution: "stream-shift@npm:1.0.3" - checksum: 10c0/939cd1051ca750d240a0625b106a2b988c45fb5a3be0cebe9a9858cb01bc1955e8c7b9fac17a9462976bea4a7b704e317c5c2200c70f0ca715a3363b9aa4fd3b - languageName: node - linkType: hard - -"streamx@npm:^2.15.0": - version: 2.25.0 - resolution: "streamx@npm:2.25.0" - dependencies: - events-universal: "npm:^1.0.0" - fast-fifo: "npm:^1.3.2" - text-decoder: "npm:^1.1.0" - checksum: 10c0/1ecc4b722050e9088b99cde59d035e846ac97cedc3ef14a00b196d9c0b6f47d9fd18df454a19f56f0f586ab4f23fb7229069b9e8eaf22072a21bd9c909d4e0ea - languageName: node - linkType: hard - -"string_decoder@npm:^1.3.0": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" +"strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" dependencies: - safe-buffer: "npm:~5.2.0" - checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 languageName: node linkType: hard -"string_decoder@npm:~1.1.1": - version: 1.1.1 - resolution: "string_decoder@npm:1.1.1" - dependencies: - safe-buffer: "npm:~5.1.0" - checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 languageName: node linkType: hard @@ -4675,17 +2943,6 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:3.1.7": - version: 3.1.7 - resolution: "tar-stream@npm:3.1.7" - dependencies: - b4a: "npm:^1.6.4" - fast-fifo: "npm:^1.2.0" - streamx: "npm:^2.15.0" - checksum: 10c0/a09199d21f8714bd729993ac49b6c8efcb808b544b89f23378ad6ffff6d1cb540878614ba9d4cfec11a64ef39e1a6f009a5398371491eb1fda606ffc7f70f718 - languageName: node - linkType: hard - "tar@npm:^7.5.4": version: 7.5.15 resolution: "tar@npm:7.5.15" @@ -4699,21 +2956,10 @@ __metadata: languageName: node linkType: hard -"text-decoder@npm:^1.1.0": - version: 1.2.7 - resolution: "text-decoder@npm:1.2.7" - dependencies: - b4a: "npm:^1.6.4" - checksum: 10c0/929938ed154fbadb660a7f3d1aca30b7e53649a731af7583168fcfba0c158046325d35d945926e2a512bb62d1a49a7818151c987ea38b48853f01e1615722fc5 - languageName: node - linkType: hard - -"thread-stream@npm:^3.0.0": - version: 3.1.0 - resolution: "thread-stream@npm:3.1.0" - dependencies: - real-require: "npm:^0.2.0" - checksum: 10c0/c36118379940b77a6ef3e6f4d5dd31e97b8210c3f7b9a54eb8fe6358ab173f6d0acfaf69b9c3db024b948c0c5fd2a7df93e2e49151af02076b35ada3205ec9a6 +"term-size@npm:^2.1.0": + version: 2.2.1 + resolution: "term-size@npm:2.2.1" + checksum: 10c0/89f6bba1d05d425156c0910982f9344d9e4aebf12d64bfa1f460d93c24baa7bc4c4a21d355fbd7153c316433df0538f64d0ae6e336cc4a69fdda4f85d62bc79d languageName: node linkType: hard @@ -4726,23 +2972,6 @@ __metadata: languageName: node linkType: hard -"through2@npm:^2.0.3": - version: 2.0.5 - resolution: "through2@npm:2.0.5" - dependencies: - readable-stream: "npm:~2.3.6" - xtend: "npm:~4.0.1" - checksum: 10c0/cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade - languageName: node - linkType: hard - -"through@npm:>=2.2.7 <3": - version: 2.3.8 - resolution: "through@npm:2.3.8" - checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc - languageName: node - linkType: hard - "tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" @@ -4781,24 +3010,6 @@ __metadata: languageName: node linkType: hard -"tldts-core@npm:^6.1.86": - version: 6.1.86 - resolution: "tldts-core@npm:6.1.86" - checksum: 10c0/8133c29375f3f99f88fce5f4d62f6ecb9532b106f31e5423b27c1eb1b6e711bd41875184a456819ceaed5c8b94f43911b1ad57e25c6eb86e1fc201228ff7e2af - languageName: node - linkType: hard - -"tldts@npm:^6.1.32": - version: 6.1.86 - resolution: "tldts@npm:6.1.86" - dependencies: - tldts-core: "npm:^6.1.86" - bin: - tldts: bin/cli.js - checksum: 10c0/27ae7526d9d78cb97b2de3f4d102e0b4321d1ccff0648a7bb0e039ed54acbce86bacdcd9cd3c14310e519b457854e7bafbef1f529f58a1e217a737ced63f0940 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -4808,38 +3019,6 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 - languageName: node - linkType: hard - -"tough-cookie@npm:^5.0.0": - version: 5.1.2 - resolution: "tough-cookie@npm:5.1.2" - dependencies: - tldts: "npm:^6.1.32" - checksum: 10c0/5f95023a47de0f30a902bba951664b359725597d8adeabc66a0b93a931c3af801e1e697dae4b8c21a012056c0ea88bd2bf4dfe66b2adcf8e2f42cd9796fe0626 - languageName: node - linkType: hard - -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 - languageName: node - linkType: hard - -"truncate-utf8-bytes@npm:^1.0.0": - version: 1.0.2 - resolution: "truncate-utf8-bytes@npm:1.0.2" - dependencies: - utf8-byte-length: "npm:^1.0.1" - checksum: 10c0/af2b431fc4314f119b551e5fccfad49d4c0ef82e13ba9ca61be6567801195b08e732ce9643542e8ad1b3df44f3df2d7345b3dd34f723954b6bb43a14584d6b3c - languageName: node - linkType: hard - "tslib@npm:^2.4.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" @@ -4847,29 +3026,6 @@ __metadata: languageName: node linkType: hard -"tunnel-agent@npm:^0.6.0": - version: 0.6.0 - resolution: "tunnel-agent@npm:0.6.0" - dependencies: - safe-buffer: "npm:^5.0.1" - checksum: 10c0/4c7a1b813e7beae66fdbf567a65ec6d46313643753d0beefb3c7973d66fcec3a1e7f39759f0a0b4465883499c6dc8b0750ab8b287399af2e583823e40410a17a - languageName: node - linkType: hard - -"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": - version: 0.14.5 - resolution: "tweetnacl@npm:0.14.5" - checksum: 10c0/4612772653512c7bc19e61923fbf42903f5e0389ec76a4a1f17195859d114671ea4aa3b734c2029ce7e1fa7e5cc8b80580f67b071ecf0b46b5636d030a0102a2 - languageName: node - linkType: hard - -"typanion@npm:^3.8.0": - version: 3.14.0 - resolution: "typanion@npm:3.14.0" - checksum: 10c0/8b03b19844e6955bfd906c31dc781bae6d7f1fb3ce4fe24b7501557013d4889ae5cefe671dafe98d87ead0adceb8afcb8bc16df7dc0bd2b7331bac96f3a7cae2 - languageName: node - linkType: hard - "type-fest@npm:^5.0.0, type-fest@npm:^5.6.0": version: 5.6.0 resolution: "type-fest@npm:5.6.0" @@ -4879,25 +3035,6 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: "npm:0.3.0" - mime-types: "npm:~2.1.24" - checksum: 10c0/a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d - languageName: node - linkType: hard - -"uglify-js@npm:^3.1.4": - version: 3.19.3 - resolution: "uglify-js@npm:3.19.3" - bin: - uglifyjs: bin/uglifyjs - checksum: 10c0/83b0a90eca35f778e07cad9622b80c448b6aad457c9ff8e568afed978212b42930a95f9e1be943a1ffa4258a3340fbb899f41461131c05bb1d0a9c303aed8479 - languageName: node - linkType: hard - "undici-types@npm:>=7.24.0 <7.24.7": version: 7.24.6 resolution: "undici-types@npm:7.24.6" @@ -4912,148 +3049,10 @@ __metadata: languageName: node linkType: hard -"universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": - version: 7.0.3 - resolution: "universal-user-agent@npm:7.0.3" - checksum: 10c0/6043be466a9bb96c0ce82392842d9fddf4c37e296f7bacc2cb25f47123990eb436c82df824644f9c5070a94dbdb117be17f66d54599ab143648ec57ef93dbcc8 - languageName: node - linkType: hard - -"unix-crypt-td-js@npm:1.1.4": - version: 1.1.4 - resolution: "unix-crypt-td-js@npm:1.1.4" - checksum: 10c0/c4e3abd0d7ebcf39df7faff8be2cd137f477add743a2793c551682e04ec4e4f466e806a67e391d5a097229e4465b7cae4cb459990b9eb61dfe0b37d2388c6266 - languageName: node - linkType: hard - -"unpipe@npm:~1.0.0": - version: 1.0.0 - resolution: "unpipe@npm:1.0.0" - checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c - languageName: node - linkType: hard - -"utf8-byte-length@npm:^1.0.1": - version: 1.0.5 - resolution: "utf8-byte-length@npm:1.0.5" - checksum: 10c0/e69bda3299608f4cc75976da9fb74ac94801a58b9ca29fdad03a20ec952e7477d7f226c12716b5f36bd4cff8151d1d152d02ee1df3752f017d4b2c725ce3e47a - languageName: node - linkType: hard - -"util-deprecate@npm:~1.0.1": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 - languageName: node - linkType: hard - -"utils-merge@npm:1.0.1": - version: 1.0.1 - resolution: "utils-merge@npm:1.0.1" - checksum: 10c0/02ba649de1b7ca8854bfe20a82f1dfbdda3fb57a22ab4a8972a63a34553cf7aa51bc9081cf7e001b035b88186d23689d69e71b510e610a09a4c66f68aa95b672 - languageName: node - linkType: hard - -"uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 - languageName: node - linkType: hard - -"validator@npm:13.15.26": - version: 13.15.26 - resolution: "validator@npm:13.15.26" - checksum: 10c0/d66041685c531423f6b514d0481228503b96682fe30ed7925ad77ff3cd08c3983dc94f45e18457e44f62f89027b94a3342009d65421800ce65f6e0d2c6eaf7fc - languageName: node - linkType: hard - -"vary@npm:^1, vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f - languageName: node - linkType: hard - -"verdaccio-audit@npm:13.0.1": - version: 13.0.1 - resolution: "verdaccio-audit@npm:13.0.1" - dependencies: - "@verdaccio/config": "npm:8.1.0" - "@verdaccio/core": "npm:8.1.0" - express: "npm:4.22.1" - https-proxy-agent: "npm:5.0.1" - node-fetch: "npm:cjs" - checksum: 10c0/9741d1f88a085428a7d97a1f6dca17759506eb5be460b162ad804b38a4fc63a7d10ba0882a6910f54a2d3c79bb88c305c2f1319306a75a708f73358ba7110cb9 - languageName: node - linkType: hard - -"verdaccio-htpasswd@npm:13.0.1": - version: 13.0.1 - resolution: "verdaccio-htpasswd@npm:13.0.1" - dependencies: - "@verdaccio/core": "npm:8.1.0" - "@verdaccio/file-locking": "npm:13.0.0" - apache-md5: "npm:1.1.8" - bcryptjs: "npm:2.4.3" - debug: "npm:4.4.3" - http-errors: "npm:2.0.1" - unix-crypt-td-js: "npm:1.1.4" - checksum: 10c0/f60984f04beb3336ae1dab0884109051fd389859ee0cdc24dab175b6fdb2425650125a92f19912ad61a40ed36305014167d094f5f7f4396bf80ba41766ef45d5 - languageName: node - linkType: hard - -"verdaccio@npm:^6.7.1": - version: 6.7.1 - resolution: "verdaccio@npm:6.7.1" - dependencies: - "@cypress/request": "npm:3.0.10" - "@verdaccio/auth": "npm:8.0.1" - "@verdaccio/config": "npm:8.1.0" - "@verdaccio/core": "npm:8.1.0" - "@verdaccio/hooks": "npm:8.0.1" - "@verdaccio/loaders": "npm:8.0.1" - "@verdaccio/local-storage-legacy": "npm:11.3.1" - "@verdaccio/logger": "npm:8.0.1" - "@verdaccio/middleware": "npm:8.0.1" - "@verdaccio/package-filter": "npm:13.0.1" - "@verdaccio/search-indexer": "npm:8.0.0" - "@verdaccio/signature": "npm:8.0.1" - "@verdaccio/streams": "npm:10.2.3" - "@verdaccio/tarball": "npm:13.0.1" - "@verdaccio/ui-theme": "npm:9.0.0-next-9.14" - "@verdaccio/url": "npm:13.0.1" - "@verdaccio/utils": "npm:8.1.1" - JSONStream: "npm:1.3.5" - async: "npm:3.2.6" - clipanion: "npm:4.0.0-rc.4" - compression: "npm:1.8.1" - cors: "npm:2.8.6" - debug: "npm:4.4.3" - envinfo: "npm:7.21.0" - express: "npm:4.22.1" - lodash: "npm:4.18.1" - lru-cache: "npm:7.18.3" - mime: "npm:3.0.0" - semver: "npm:7.8.0" - verdaccio-audit: "npm:13.0.1" - verdaccio-htpasswd: "npm:13.0.1" - bin: - verdaccio: bin/verdaccio - checksum: 10c0/19cec0b0cbd1164e31dddd44c34f14d6e5c85a6741620db8214fe784801d144bb429cbf1e9b38f5cfeb3c92bf1a950c0893112dd0f91b3a8e183fb8965ddcba0 - languageName: node - linkType: hard - -"verror@npm:1.10.0": - version: 1.10.0 - resolution: "verror@npm:1.10.0" - dependencies: - assert-plus: "npm:^1.0.0" - core-util-is: "npm:1.0.2" - extsprintf: "npm:^1.2.0" - checksum: 10c0/37ccdf8542b5863c525128908ac80f2b476eed36a32cb944de930ca1e2e78584cc435c4b9b4c68d0fc13a47b45ff364b4be43aa74f8804f9050140f660fb660d +"universalify@npm:^0.1.0": + version: 0.1.2 + resolution: "universalify@npm:0.1.2" + checksum: 10c0/e70e0339f6b36f34c9816f6bf9662372bd241714dc77508d231d08386d94f2c4aa1ba1318614f92015f40d45aae1b9075cd30bd490efbe39387b60a76ca3f045 languageName: node linkType: hard @@ -5182,13 +3181,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db - languageName: node - linkType: hard - "whatwg-mimetype@npm:^3.0.0": version: 3.0.0 resolution: "whatwg-mimetype@npm:3.0.0" @@ -5196,13 +3188,14 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" dependencies: - tr46: "npm:~0.0.3" - webidl-conversions: "npm:^3.0.0" - checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f languageName: node linkType: hard @@ -5229,13 +3222,6 @@ __metadata: languageName: node linkType: hard -"wordwrap@npm:^1.0.0": - version: 1.0.0 - resolution: "wordwrap@npm:1.0.0" - checksum: 10c0/7ed2e44f3c33c5c3e3771134d2b0aee4314c9e49c749e37f464bf69f2bcdf0cbf9419ca638098e2717cff4875c47f56a007532f6111c3319f557a2ca91278e92 - languageName: node - linkType: hard - "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" @@ -5258,13 +3244,6 @@ __metadata: languageName: node linkType: hard -"xtend@npm:~4.0.1": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e - languageName: node - linkType: hard - "yallist@npm:^5.0.0": version: 5.0.0 resolution: "yallist@npm:5.0.0" From bba25550ec2bf0be5e788bfa8e815fa76a4b80f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Zori=C4=87?= Date: Wed, 20 May 2026 12:04:24 +0200 Subject: [PATCH 2/3] chore: update dependencies --- package.json | 2 +- yarn.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 9db2dd4..b66e32f 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "zod": "^4.4.3" }, "devDependencies": { - "@changesets/cli": "^2.29.4", + "@changesets/cli": "^2.31.0", "@types/node": ">=24", "@typescript/native-preview": "^7.0.0-dev.20260519.1", "@vitest/coverage-v8": "^4.1.6", diff --git a/yarn.lock b/yarn.lock index a43ab82..0b4a9df 100644 --- a/yarn.lock +++ b/yarn.lock @@ -109,7 +109,7 @@ __metadata: languageName: node linkType: hard -"@changesets/cli@npm:^2.29.4": +"@changesets/cli@npm:^2.31.0": version: 2.31.0 resolution: "@changesets/cli@npm:2.31.0" dependencies: @@ -1197,7 +1197,7 @@ __metadata: version: 0.0.0-use.local resolution: "@webiny/stdlib@workspace:." dependencies: - "@changesets/cli": "npm:^2.29.4" + "@changesets/cli": "npm:^2.31.0" "@types/node": "npm:>=24" "@typescript/native-preview": "npm:^7.0.0-dev.20260519.1" "@vitest/coverage-v8": "npm:^4.1.6" @@ -2143,7 +2143,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.11": +"nanoid@npm:^3.3.12": version: 3.3.12 resolution: "nanoid@npm:3.3.12" bin: @@ -2598,13 +2598,13 @@ __metadata: linkType: hard "postcss@npm:^8.5.14": - version: 8.5.14 - resolution: "postcss@npm:8.5.14" + version: 8.5.15 + resolution: "postcss@npm:8.5.15" dependencies: - nanoid: "npm:^3.3.11" + nanoid: "npm:^3.3.12" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/48138207cf5ef5581be1bfe2cb65ccfe0ac75e43888ba045afc8ed6043d7b56aeb3b9a9fe5b353ff554be943cd0cc15d826ccb991525159175971e5ee8ab0237 + checksum: 10c0/7f2e63ae22fbe43aace1bf652bd99da4e90737c64194d49e51ddc9cd0f9e51ff2861a7d734379b494deffa03a880a5c65eec70bc29ee9ebaa7136dde3eee8f31 languageName: node linkType: hard From 039560fbfb435893cea1e4d88081cd21d7551fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Zori=C4=87?= Date: Wed, 20 May 2026 12:38:24 +0200 Subject: [PATCH 3/3] chore: add stdlib-feature-dev skill Guided TDD workflow for adding features to @webiny/stdlib. Encodes the DI pattern, file conventions, testing patterns, and the golden rule that existing tests must never be modified. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../skills/stdlib-feature-dev/REFERENCE.md | 417 ++++++++++++++++++ .claude/skills/stdlib-feature-dev/SKILL.md | 102 +++++ 2 files changed, 519 insertions(+) create mode 100644 .claude/skills/stdlib-feature-dev/REFERENCE.md create mode 100644 .claude/skills/stdlib-feature-dev/SKILL.md diff --git a/.claude/skills/stdlib-feature-dev/REFERENCE.md b/.claude/skills/stdlib-feature-dev/REFERENCE.md new file mode 100644 index 0000000..c559d33 --- /dev/null +++ b/.claude/skills/stdlib-feature-dev/REFERENCE.md @@ -0,0 +1,417 @@ +# stdlib Feature Dev — Reference + +Code templates and conventions for `@webiny/stdlib` feature development. `AGENTS.md` is the source of truth — this file provides quick-reference templates. + +--- + +## Abstraction + +File: `src//features//abstractions/.ts` + +```ts +import { createAbstraction } from "@webiny/stdlib"; +// For node/browser slices, use the path alias instead: +// import { createAbstraction } from "~/common/index.js"; + +/** + * One-line description of what this tool does. + */ +export interface I { + /** JSDoc on every method — agents and IDE tooling read these. */ + methodName(param: string): Result; +} + +export const = createAbstraction>("Domain/"); + +export namespace { + export type Interface = I; +} +``` + +Barrel at `abstractions/index.ts`: + +```ts +export { } from "./.js"; +``` + +### DI token naming + +- Common: `"Core/"` prefix +- Node: `"Node/"` prefix +- Browser: `"Browser/"` prefix +- Config abstractions: `"Domain/Config"` + +--- + +## Implementation + +File: `src//features//.ts` + +```ts +import { as Abstraction } from "./abstractions/.js"; +// Cross-slice imports (node/browser only): +import { Logger } from "~/common/index.js"; +// Same-slice imports: +import { OtherTool } from "../OtherTool/abstractions/OtherTool.js"; + +class Impl implements Abstraction.Interface { + public constructor( + private readonly logger: Logger.Interface, + private readonly otherTool: OtherTool.Interface + ) {} + + public methodName(param: string): Result { + // implementation + } +} + +export const = Abstraction.createImplementation({ + implementation: Impl, + dependencies: [Logger, OtherTool] // ORDER MUST MATCH CONSTRUCTOR PARAMS +}); +``` + +### Optional dependencies + +```ts +dependencies: [[SomeConfig, { optional: true }]]; +// Constructor receives: SomeConfig.Interface | undefined +``` + +### Import rules + +| Location | Extension | Example | +| ------------ | --------- | -------------------------------------------- | +| `src/**` | `.js` | `import { Foo } from "./Foo.js"` | +| Cross-slice | `.js` | `import { Logger } from "~/common/index.js"` | +| `scripts/**` | `.ts` | `import { run } from "./index.ts"` | + +--- + +## Feature + +File: `src//features//feature.ts` + +```ts +import { createFeature } from "@webiny/stdlib"; +// For node/browser slices: +// import { createFeature } from "~/common/index.js"; +import { } from "./.js"; + +export const Feature = createFeature({ + name: "Domain/Feature", + register(container) { + container.register().inSingletonScope(); + } +}); +``` + +### Parameterised feature + +```ts +interface FeatureParams { + someOption: string; +} + +export const Feature = createFeature<FeatureParams>({ + name: "Domain/Feature", + register(container, params) { + container.registerInstance(SomeConfig, params!.someOption); + container.register().inSingletonScope(); + } +}); +``` + +--- + +## Feature index + +File: `src//features//index.ts` + +```ts +export { } from "./abstractions/index.js"; +export { Feature } from "./feature.js"; +``` + +Never export the implementation class. Export config abstractions and error types if they are part of the public API. + +--- + +## Slice barrel + +Add to `src//index.ts`: + +```ts +export { , Feature } from "./features//index.js"; +``` + +--- + +## Testing + +File: `__tests__//.test.ts` + +### Node test + +```ts +import { describe, it, expect, beforeEach, afterEach } from "vitest"; +import { Container } from "@webiny/di"; +import { PinoLoggerConfig, PinoLoggerFeature } from "@webiny/stdlib/node"; +import { , Feature } from "@webiny/stdlib/node"; +// Add other feature dependencies as needed + +function makeContainer(): Container { + const container = new Container(); + container.registerInstance(PinoLoggerConfig, { + getConfig: () => ({ logLevel: "error" as const, transport: "json" as const }) + }); + PinoLoggerFeature.register(container); + // Register dependencies before the feature under test + Feature.register(container); + return container; +} + +describe("", () => { + let tool: .Interface; + + beforeEach(() => { + tool = makeContainer().resolve(); + }); + + it("should do the happy path", () => { + // test + }); + + it("should handle the error path", () => { + // test + }); +}); +``` + +### Common test (no Logger or use ConsoleLogger) + +```ts +import { Container } from "@webiny/di"; +import { ConsoleLoggerConfig, ConsoleLoggerFeature } from "@webiny/stdlib"; + +function makeContainer(): Container { + const container = new Container(); + container.registerInstance(ConsoleLoggerConfig, { + getConfig: () => ({ logLevel: "error" as const }) + }); + ConsoleLoggerFeature.register(container); + return container; +} +``` + +### Browser test + +Add the environment directive at the top of the file: + +```ts +// @vitest-environment happy-dom +``` + +### File system tests + +```ts +import { join } from "node:path"; +import { tmpdir } from "node:os"; +import { mkdirSync, rmSync } from "node:fs"; + +let tmpDir: string; + +beforeEach(() => { + tmpDir = join(tmpdir(), `wby-test-${Date.now()}`); + mkdirSync(tmpDir, { recursive: true }); +}); + +afterEach(() => { + rmSync(tmpDir, { recursive: true, force: true }); +}); +``` + +### happy-dom spy cleanup + +`vi.restoreAllMocks()` does not reliably clean up `vi.spyOn` on happy-dom objects. Always call `spy.mockRestore()` explicitly in a `finally` block. + +--- + +## Feature README + +File: `src//features//README.md` + +```md +# + +One paragraph: what it does and when to reach for it. + +## Interface + +Brief description of each method (copy JSDoc from abstraction). + +## Usage + +### DI container wiring + +\`\`\`ts +import { Container } from "@webiny/di"; +import { , Feature } from "@webiny/stdlib/node"; + +const container = new Container(); +Feature.register(container); +const tool = container.resolve(); +\`\`\` + +### Factory function (if applicable) + +\`\`\`ts +import { create } from "@webiny/stdlib/node"; +const tool = create(); +\`\`\` +``` + +Also update the root `README.md` feature table. + +--- + +## Errors + +Subclass `BaseError` for domain errors: + +```ts +import { BaseError } from "@webiny/stdlib"; +// For node/browser slices: +// import { BaseError } from "~/common/index.js"; + +class NotFoundError extends BaseError { + public readonly code = "_NOT_FOUND" as const; +} + +// With typed data payload +class ValidationError extends BaseError<{ field: string }> { + public readonly code = "_VALIDATION" as const; +} + +// Creating instances — always capture stack +throw new NotFoundError({ + message: "descriptive message", + stack: new Error().stack ?? "" +}); +``` + +--- + +## Result types + +```ts +import { Result, ResultAsync } from "@webiny/stdlib"; + +// Sync +function doThing(): Result { + if (bad) return Result.fail(new SomeError({ message: "...", stack: new Error().stack ?? "" })); + return Result.ok("value"); +} + +// Async +function doAsyncThing(): ResultAsync { + return ResultAsync.from(async () => { + // ... + return Result.ok("value"); + }); +} +``` + +--- + +## Error export conventions + +### Where error files live + +Errors that are part of a feature's public API live in the feature's `abstractions/` folder alongside the abstraction they relate to. If a feature has multiple error types, group them in `abstractions/errors.ts` and re-export from `abstractions/index.ts`. + +``` +src/node/features/FileTool/ +├── abstractions/ +│ ├── FileTool.ts # interface + token +│ ├── errors.ts # FileNotFoundError, FileWriteError, etc. +│ └── index.ts # re-exports FileTool + errors +├── FileTool.ts +├── feature.ts +└── index.ts # re-exports abstraction token, feature, AND public errors +``` + +### When to export errors + +- **Export** errors that callers need to catch or discriminate on (e.g. `FileNotFoundError` — callers may want to handle "not found" differently from "permission denied"). +- **Don't export** internal implementation errors that callers never see (e.g. an error used only inside `flatMap` chains within the implementation). + +Feature `index.ts` with errors: + +```ts +export { FileTool } from "./abstractions/index.js"; +export { FileNotFoundError, FileWriteError } from "./abstractions/index.js"; +export { FileToolFeature } from "./feature.js"; +``` + +Slice barrel mirrors the same exports. + +--- + +## Reference implementations + +When in doubt, read these real features for guidance. They are well-structured and follow all conventions. + +### Node slice — good examples + +| Feature | Path | Why it's useful | +| ----------------------- | ---------------------------------------- | --------------------------------------------------------------------------- | +| **FileTool** | `src/node/features/FileTool/` | Clean 4-file layout, Logger dependency, error handling with Result types | +| **PinoLogger** | `src/node/features/PinoLogger/` | Optional config abstraction (`PinoLoggerConfig`), cross-slice Logger import | +| **NdJsonReaderTool** | `src/node/features/NdJsonReaderTool/` | Multiple dependencies, generator-based API, `ReadStreamFactory` dependency | +| **PackageJsonFileTool** | `src/node/features/PackageJsonFileTool/` | Zod validation, value object pattern, multiple dependency features | + +### Common slice — good examples + +| Feature | Path | Why it's useful | +| -------------------------- | ----------------------------- | ------------------------------------------------------------------------------------- | +| **Logger** (ConsoleLogger) | `src/common/features/Logger/` | Optional config pattern without node dependencies | +| **Cache** | `src/common/features/Cache/` | Two abstractions (sync + async) in one feature folder, `byPrefix` scoped view pattern | + +### Browser slice — good examples + +| Feature | Path | Why it's useful | +| --------------------- | ----------------------------------------- | ------------------------------------------------------------------------ | +| **LocalStorageCache** | `src/browser/features/LocalStorageCache/` | Browser-specific errors, `// @vitest-environment happy-dom` test pattern | + +Read the abstraction file first, then the implementation, then the test. That order matches the development workflow. + +--- + +## Common mistakes checklist + +Before running the pre-commit chain, verify you haven't hit these: + +- [ ] **Missing `namespace` export** — Every abstraction must have `export namespace { export type Interface = I }` alongside the token. Without it, consumers can't write `.Interface`. +- [ ] **Wrong `dependencies` array order** — Must exactly match constructor parameter order. `dependencies: [Logger, FileTool]` means the constructor is `constructor(logger, fileTool)`, not the reverse. +- [ ] **Missing `.js` extension** — All relative imports under `src/` must use `.js`. Writing `"./Foo"` or `"./Foo.ts"` will fail at build time. +- [ ] **Forgot `inSingletonScope()`** — Feature registrations should almost always use `.inSingletonScope()`. Without it, every `resolve()` creates a new instance. +- [ ] **Exported the implementation class** — The feature `index.ts` should export the abstraction token and the feature, never the `*Impl` class directly. +- [ ] **Wrong cross-slice import** — Node/browser slices import from common via `~/common/index.js`, not `@webiny/stdlib` or a relative path climbing out of the slice. +- [ ] **Missing `as const` on error code** — `public readonly code = "SOME_CODE" as const` — the `as const` is required for literal type narrowing. +- [ ] **Forgot `stack` in BaseError constructor** — Always pass `stack: new Error().stack ?? ""` when creating error instances. +- [ ] **Modified an existing test** — New features must pass all existing tests as-is. If one fails, your feature has a regression. +- [ ] **Missing feature README** — Every feature folder needs a `README.md`. Also update the root `README.md` table. +- [ ] **Missing slice barrel export** — After creating the feature, add re-exports to `src//index.ts`. + +--- + +## Pre-commit chain + +Run all seven steps and loop until clean: + +```sh +yarn && yarn adio && yarn format:fix && yarn lint:fix && yarn typecheck && yarn build && yarn test:coverage +``` + +Never use `--no-verify` or skip hooks. Never push, merge, or pull. diff --git a/.claude/skills/stdlib-feature-dev/SKILL.md b/.claude/skills/stdlib-feature-dev/SKILL.md new file mode 100644 index 0000000..328fc35 --- /dev/null +++ b/.claude/skills/stdlib-feature-dev/SKILL.md @@ -0,0 +1,102 @@ +--- +name: stdlib-feature-dev +description: Guided feature development for @webiny/stdlib using the DI abstraction → implementation → feature → index pattern. Use when adding a new tool, service, or feature to any slice (common, node, browser). Enforces TDD, file conventions, barrel exports, README creation, and the pre-commit chain. CRITICAL — existing tests must never be modified unless genuinely buggy. +--- + +# stdlib Feature Development + +Rigid, TDD-oriented workflow for adding features to `@webiny/stdlib`. Follow every step in order. Read `AGENTS.md` first — it is the source of truth. + +## Golden rule + +**No existing test may be modified to make a new feature pass.** New features are additive. If an existing test fails, your feature has a regression — fix the feature, not the test. The only exception is a test that is genuinely buggy (wrong assertion, testing the wrong thing). If you suspect a buggy test, flag it to the user before touching it. + +## Workflow + +### 1. Determine slice placement + +| Uses only JS built-ins | → `src/common/` (re-exported via `src/index.ts`) | +| Uses `node:*` APIs | → `src/node/` | +| Uses browser APIs | → `src/browser/` | + +### 2. Run existing tests first + +```sh +yarn test:coverage +``` + +Record the pass count. This is your baseline. Every subsequent run must match or exceed it. + +### 3. Create the abstraction + +Path: `src//features//abstractions/.ts` + +See [REFERENCE.md](REFERENCE.md) §Abstraction for the template. Key points: + +- Define `interface I` with JSDoc on each method +- `export const = createAbstraction>("Domain/ToolName")` +- `export namespace { export type Interface = I }` +- Create barrel at `abstractions/index.ts` + +### 4. Write tests (RED phase) + +Path: `__tests__//.test.ts` + +See [REFERENCE.md](REFERENCE.md) §Testing for the `makeContainer` pattern. Write tests for the happy path and error paths. Tests must fail now (no implementation yet). Run: + +```sh +yarn test:coverage +``` + +Confirm: new tests fail, **all existing tests still pass**. + +### 5. Create the implementation (GREEN phase) + +Path: `src//features//.ts` + +See [REFERENCE.md](REFERENCE.md) §Implementation for the template. Key points: + +- Alias import: `import { as Abstraction } from "./abstractions/.js"` +- Cross-slice: `import { Logger } from "~/common/index.js"` (node/browser slices) +- `dependencies` array order must match constructor parameter order +- Use `.js` extensions in all imports under `src/` + +Run tests — all should pass now (new + existing). + +### 6. Create the feature + +Path: `src//features//feature.ts` + +See [REFERENCE.md](REFERENCE.md) §Feature for the template. + +### 7. Create the feature index + +Path: `src//features//index.ts` + +Export only the abstraction token and the feature. Never export the implementation class. + +### 8. Add to slice barrel + +Add re-exports to `src//index.ts`. + +### 9. Create the feature README + +Path: `src//features//README.md` + +Format: (1) one-paragraph description, (2) Interface section with JSDoc, (3) Usage section with DI wiring + factory snippets. Update root `README.md` table. + +### 10. REFACTOR phase + +Review the implementation. Simplify if possible. Run tests again — all must pass. + +### 11. Run the full pre-commit chain + +```sh +yarn && yarn adio && yarn format:fix && yarn lint:fix && yarn typecheck && yarn build && yarn test:coverage +``` + +All seven steps must pass with zero errors and zero warnings. Loop until clean. + +### 12. Verify no regressions + +Compare test count to baseline from step 2. It must be equal or higher. No existing test may have been removed, skipped, or modified.