diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 07f53e4..0a83e79 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,6 +13,7 @@ jobs: env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + DO_NOT_TRACK: 1 steps: - name: Check out code @@ -25,7 +26,7 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: 20.9.0 + node-version: 22.15.0 cache: 'pnpm' - name: Install dependencies diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 0a658f4..2b7b97e 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -33,6 +33,7 @@ jobs: uses: withastro/action@v2 with: path: ./docs # The root location of your Astro project inside the repository. (optional) + package-manager: pnpm@9.4.0 # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional) deploy: needs: build diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml new file mode 100644 index 0000000..388e546 --- /dev/null +++ b/.github/workflows/integration.yaml @@ -0,0 +1,62 @@ +name: Integration Tests + +on: + push: + branches: ['main', 'changeset-release/main'] + pull_request: + +jobs: + mysql_integration: + name: Emigrate MySQL integration tests + timeout-minutes: 15 + runs-on: ubuntu-latest + env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ secrets.TURBO_TEAM }} + DO_NOT_TRACK: 1 + + services: + mysql: + image: mysql:8.0 + env: + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: emigrate + MYSQL_USER: emigrate + MYSQL_PASSWORD: emigrate + ports: + - 3306:3306 + options: --health-cmd="mysqladmin ping -h localhost" --health-interval=10s --health-timeout=5s --health-retries=5 + + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - uses: pnpm/action-setup@v4.0.0 + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: 22.15.0 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install + + - name: Wait for MySQL to be ready + run: | + for i in {1..30}; do + nc -z localhost 3306 && echo "MySQL is up!" && break + echo "Waiting for MySQL..." + sleep 2 + done + + - name: Build package + run: pnpm build --filter @emigrate/mysql + + - name: Integration Tests + env: + MYSQL_HOST: '127.0.0.1' + MYSQL_PORT: 3306 + run: pnpm --filter @emigrate/mysql integration diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0947b01..8b42c24 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -30,18 +30,43 @@ jobs: - name: Setup Node.js environment uses: actions/setup-node@v4 with: - node-version: 20.9.0 + node-version: 22.15.0 cache: 'pnpm' - name: Install Dependencies run: pnpm install - name: Create Release Pull Request - uses: changesets/action@v1.4.7 + id: changesets + uses: aboviq/changesets-action@v1.5.2 with: publish: pnpm run release commit: 'chore(release): version packages' title: 'chore(release): version packages' + createGithubReleases: aggregate env: GITHUB_TOKEN: ${{ secrets.PAT_GITHUB_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Release to @next tag on npm + if: github.ref_name == 'main' && steps.changesets.outputs.published != 'true' + run: | + git checkout main + + CHANGESET_FILE=$(git diff-tree --no-commit-id --name-only HEAD -r ".changeset/*-*-*.md") + if [ -z "$CHANGESET_FILE" ]; then + echo "No changesets found, skipping release to @next tag" + exit 0 + fi + + AFFECTED_PACKAGES=$(sed -n '/---/,/---/p' "$CHANGESET_FILE" | sed '/---/d') + if [ -z "$AFFECTED_PACKAGES" ]; then + echo "No packages affected by changesets, skipping release to @next tag" + exit 0 + fi + + pnpm changeset version --snapshot next + pnpm changeset publish --tag next + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_TOKEN: ${{ secrets.PAT_GITHUB_TOKEN }} diff --git a/docs/package.json b/docs/package.json index d445425..85c5d1a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -11,6 +11,7 @@ "astro": "astro" }, "dependencies": { + "@astrojs/check": "^0.7.0", "@astrojs/starlight": "^0.15.0", "@astrojs/starlight-tailwind": "2.0.1", "@astrojs/tailwind": "^5.0.3", @@ -20,5 +21,6 @@ }, "volta": { "extends": "../package.json" - } + }, + "packageManager": "pnpm@9.4.0" } diff --git a/package.json b/package.json index a82612b..7667a61 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "bugs": "https://github.com/aboviq/emigrate/issues", "license": "MIT", "volta": { - "node": "20.9.0", + "node": "22.15.0", "pnpm": "9.4.0" }, "packageManager": "pnpm@9.4.0", @@ -62,7 +62,10 @@ }, "overrides": [ { - "files": "packages/**/*.test.ts", + "files": [ + "packages/**/*.test.ts", + "packages/**/*.integration.ts" + ], "rules": { "@typescript-eslint/no-floating-promises": 0, "max-params": 0 @@ -80,9 +83,10 @@ "lint-staged": "15.2.0", "npm-run-all": "4.1.5", "prettier": "3.1.1", - "tsx": "4.7.0", - "turbo": "1.10.16", - "typescript": "5.3.3", + "testcontainers": "10.24.2", + "tsx": "4.15.7", + "turbo": "2.0.5", + "typescript": "5.5.2", "xo": "0.56.0" } } diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 2743465..a84474c 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,14 @@ # @emigrate/cli +## 0.18.4 + +### Patch Changes + +- d779286: Upgrade TypeScript to v5.5 and enable [isolatedDeclarations](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#isolated-declarations) +- Updated dependencies [d779286] + - @emigrate/plugin-tools@0.9.8 + - @emigrate/types@0.12.2 + ## 0.18.3 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 61b513e..dbcc08e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@emigrate/cli", - "version": "0.18.3", + "version": "0.18.4", "publishConfig": { "access": "public", "provenance": true diff --git a/packages/cli/src/collect-migrations.ts b/packages/cli/src/collect-migrations.ts index 0c1886a..465dddc 100644 --- a/packages/cli/src/collect-migrations.ts +++ b/packages/cli/src/collect-migrations.ts @@ -1,12 +1,12 @@ import { type MigrationHistoryEntry, type MigrationMetadata, type MigrationMetadataFinished } from '@emigrate/types'; import { toMigrationMetadata } from './to-migration-metadata.js'; -import { getMigrations as getMigrationsOriginal } from './get-migrations.js'; +import { getMigrations as getMigrationsOriginal, type GetMigrationsFunction } from './get-migrations.js'; export async function* collectMigrations( cwd: string, directory: string, history: AsyncIterable, - getMigrations = getMigrationsOriginal, + getMigrations: GetMigrationsFunction = getMigrationsOriginal, ): AsyncIterable { const allMigrations = await getMigrations(cwd, directory); const seen = new Set(); diff --git a/packages/cli/src/commands/list.ts b/packages/cli/src/commands/list.ts index ec8fc22..4a81477 100644 --- a/packages/cli/src/commands/list.ts +++ b/packages/cli/src/commands/list.ts @@ -17,7 +17,7 @@ export default async function listCommand({ storage: storageConfig, color, cwd, -}: Config & ExtraFlags) { +}: Config & ExtraFlags): Promise { if (!directory) { throw MissingOptionError.fromOption('directory'); } diff --git a/packages/cli/src/commands/new.ts b/packages/cli/src/commands/new.ts index c921808..ece271a 100644 --- a/packages/cli/src/commands/new.ts +++ b/packages/cli/src/commands/new.ts @@ -24,7 +24,7 @@ type ExtraFlags = { export default async function newCommand( { directory, template, reporter: reporterConfig, plugins = [], cwd, extension, color }: Config & ExtraFlags, name: string, -) { +): Promise { if (!directory) { throw MissingOptionError.fromOption('directory'); } diff --git a/packages/cli/src/commands/remove.test.ts b/packages/cli/src/commands/remove.test.ts index a283551..f37769b 100644 --- a/packages/cli/src/commands/remove.test.ts +++ b/packages/cli/src/commands/remove.test.ts @@ -11,6 +11,7 @@ import { StorageInitError, } from '../errors.js'; import { + assertErrorEqualEnough, getErrorCause, getMockedReporter, getMockedStorage, @@ -199,6 +200,11 @@ function assertPreconditionsFailed(reporter: Mocked>, assert.strictEqual(reporter.onMigrationSkip.mock.calls.length, 0, 'Total pending and skipped'); assert.strictEqual(reporter.onFinished.mock.calls.length, 1, 'Finished called once'); const [entries, error] = reporter.onFinished.mock.calls[0]?.arguments ?? []; + // hackety hack: + if (finishedError) { + finishedError.stack = error?.stack; + } + assert.deepStrictEqual(error, finishedError, 'Finished error'); const cause = getErrorCause(error); const expectedCause = finishedError?.cause; @@ -288,14 +294,7 @@ function assertPreconditionsFulfilled( assert.strictEqual(reporter.onMigrationSkip.mock.calls.length, 0, 'Total pending and skipped'); assert.strictEqual(reporter.onFinished.mock.calls.length, 1, 'Finished called once'); const [entries, error] = reporter.onFinished.mock.calls[0]?.arguments ?? []; - assert.deepStrictEqual(error, finishedError, 'Finished error'); - const cause = getErrorCause(error); - const expectedCause = finishedError?.cause; - assert.deepStrictEqual( - cause, - expectedCause ? deserializeError(expectedCause) : expectedCause, - 'Finished error cause', - ); + assertErrorEqualEnough(error, finishedError, 'Finished error'); assert.strictEqual(entries?.length, expected.length, 'Finished entries length'); assert.deepStrictEqual( entries.map((entry) => `${entry.name} (${entry.status})`), diff --git a/packages/cli/src/commands/remove.ts b/packages/cli/src/commands/remove.ts index de5490c..aa598fd 100644 --- a/packages/cli/src/commands/remove.ts +++ b/packages/cli/src/commands/remove.ts @@ -39,7 +39,7 @@ export default async function removeCommand( getMigrations, }: Config & ExtraFlags, name: string, -) { +): Promise { if (!directory) { throw MissingOptionError.fromOption('directory'); } diff --git a/packages/cli/src/commands/up.test.ts b/packages/cli/src/commands/up.test.ts index 869af10..bc90241 100644 --- a/packages/cli/src/commands/up.test.ts +++ b/packages/cli/src/commands/up.test.ts @@ -1,13 +1,6 @@ import { describe, it, mock } from 'node:test'; import assert from 'node:assert'; -import { - type EmigrateReporter, - type Storage, - type Plugin, - type SerializedError, - type MigrationMetadataFinished, -} from '@emigrate/types'; -import { deserializeError } from 'serialize-error'; +import { type EmigrateReporter, type Storage, type Plugin, type MigrationMetadataFinished } from '@emigrate/types'; import { version } from '../get-package-info.js'; import { BadOptionError, @@ -16,7 +9,6 @@ import { MigrationHistoryError, MigrationRunError, StorageInitError, - toSerializedError, } from '../errors.js'; import { type Mocked, @@ -24,7 +16,7 @@ import { toMigrations, getMockedReporter, getMockedStorage, - getErrorCause, + assertErrorEqualEnough, } from '../test-utils.js'; import upCommand from './up.js'; @@ -930,15 +922,13 @@ function assertPreconditionsFulfilled( for (const [index, entry] of failedEntries.entries()) { if (entry.status === 'failed') { const error = reporter.onMigrationError.mock.calls[index]?.arguments[1]; - assert.deepStrictEqual(error, entry.error, 'Error'); - const cause = entry.error?.cause; - assert.deepStrictEqual(error?.cause, cause ? deserializeError(cause) : cause, 'Error cause'); + assertErrorEqualEnough(error, entry.error, 'Error'); if (entry.started) { const [finishedMigration, error] = storage.onError.mock.calls[index]?.arguments ?? []; assert.strictEqual(finishedMigration?.name, entry.name); assert.strictEqual(finishedMigration?.status, entry.status); - assertErrorEqualEnough(error, entry.error); + assertErrorEqualEnough(error, entry.error, `Entry error (${entry.name})`); } } } @@ -946,15 +936,7 @@ function assertPreconditionsFulfilled( assert.strictEqual(reporter.onMigrationSkip.mock.calls.length, pending + skipped, 'Total pending and skipped'); assert.strictEqual(reporter.onFinished.mock.calls.length, 1, 'Finished called once'); const [entries, error] = reporter.onFinished.mock.calls[0]?.arguments ?? []; - assertErrorEqualEnough(error, finishedError); - - const cause = getErrorCause(error); - const expectedCause = finishedError?.cause; - assert.deepStrictEqual( - cause, - expectedCause ? deserializeError(expectedCause) : expectedCause, - 'Finished error cause', - ); + assertErrorEqualEnough(error, finishedError, 'Finished error'); assert.strictEqual(entries?.length, expected.length, 'Finished entries length'); assert.deepStrictEqual( entries.map((entry) => `${entry.name} (${entry.status})`), @@ -995,33 +977,6 @@ function assertPreconditionsFailed( assert.strictEqual(reporter.onMigrationSkip.mock.calls.length, 0, 'Total pending and skipped'); assert.strictEqual(reporter.onFinished.mock.calls.length, 1, 'Finished called once'); const [entries, error] = reporter.onFinished.mock.calls[0]?.arguments ?? []; - assert.deepStrictEqual(error, finishedError, 'Finished error'); - const cause = getErrorCause(error); - const expectedCause = finishedError?.cause; - assert.deepStrictEqual( - cause, - expectedCause ? deserializeError(expectedCause) : expectedCause, - 'Finished error cause', - ); + assertErrorEqualEnough(error, finishedError, 'Finished error'); assert.strictEqual(entries?.length, 0, 'Finished entries length'); } - -function assertErrorEqualEnough(actual?: Error | SerializedError, expected?: Error) { - if (expected === undefined) { - assert.strictEqual(actual, undefined); - return; - } - - const { - cause: actualCause, - stack: actualStack, - ...actualError - } = actual instanceof Error ? toSerializedError(actual) : actual ?? {}; - const { cause: expectedCause, stack: expectedStack, ...expectedError } = toSerializedError(expected); - // @ts-expect-error Ignore - const { stack: actualCauseStack, ...actualCauseRest } = actualCause ?? {}; - // @ts-expect-error Ignore - const { stack: expectedCauseStack, ...expectedCauseRest } = expectedCause ?? {}; - assert.deepStrictEqual(actualError, expectedError); - assert.deepStrictEqual(actualCauseRest, expectedCauseRest); -} diff --git a/packages/cli/src/errors.ts b/packages/cli/src/errors.ts index 5e276bb..f72dab3 100644 --- a/packages/cli/src/errors.ts +++ b/packages/cli/src/errors.ts @@ -8,7 +8,7 @@ import { serializeError, errorConstructors, deserializeError } from 'serialize-e const formatter = new Intl.ListFormat('en', { style: 'long', type: 'disjunction' }); -export const toError = (error: unknown) => (error instanceof Error ? error : new Error(String(error))); +export const toError = (error: unknown): Error => (error instanceof Error ? error : new Error(String(error))); export const toSerializedError = (error: unknown) => { const errorInstance = toError(error); @@ -30,7 +30,7 @@ export class EmigrateError extends Error { export class ShowUsageError extends EmigrateError {} export class MissingOptionError extends ShowUsageError { - static fromOption(option: string | string[]) { + static fromOption(option: string | string[]): MissingOptionError { return new MissingOptionError( `Missing required option: ${Array.isArray(option) ? formatter.format(option) : option}`, undefined, @@ -48,7 +48,7 @@ export class MissingOptionError extends ShowUsageError { } export class MissingArgumentsError extends ShowUsageError { - static fromArgument(argument: string) { + static fromArgument(argument: string): MissingArgumentsError { return new MissingArgumentsError(`Missing required argument: ${argument}`, undefined, argument); } @@ -62,7 +62,7 @@ export class MissingArgumentsError extends ShowUsageError { } export class OptionNeededError extends ShowUsageError { - static fromOption(option: string, message: string) { + static fromOption(option: string, message: string): OptionNeededError { return new OptionNeededError(message, undefined, option); } @@ -76,7 +76,7 @@ export class OptionNeededError extends ShowUsageError { } export class BadOptionError extends ShowUsageError { - static fromOption(option: string, message: string) { + static fromOption(option: string, message: string): BadOptionError { return new BadOptionError(message, undefined, option); } @@ -96,7 +96,7 @@ export class UnexpectedError extends EmigrateError { } export class MigrationHistoryError extends EmigrateError { - static fromHistoryEntry(entry: FailedMigrationHistoryEntry) { + static fromHistoryEntry(entry: FailedMigrationHistoryEntry): MigrationHistoryError { return new MigrationHistoryError(`Migration ${entry.name} is in a failed state, it should be fixed and removed`, { cause: deserializeError(entry.error), }); @@ -108,7 +108,7 @@ export class MigrationHistoryError extends EmigrateError { } export class MigrationLoadError extends EmigrateError { - static fromMetadata(metadata: MigrationMetadata, cause?: Error) { + static fromMetadata(metadata: MigrationMetadata, cause?: Error): MigrationLoadError { return new MigrationLoadError(`Failed to load migration file: ${metadata.relativeFilePath}`, { cause }); } @@ -118,7 +118,7 @@ export class MigrationLoadError extends EmigrateError { } export class MigrationRunError extends EmigrateError { - static fromMetadata(metadata: FailedMigrationMetadata) { + static fromMetadata(metadata: FailedMigrationMetadata): MigrationRunError { return new MigrationRunError(`Failed to run migration: ${metadata.relativeFilePath}`, { cause: metadata.error }); } @@ -128,7 +128,7 @@ export class MigrationRunError extends EmigrateError { } export class MigrationNotRunError extends EmigrateError { - static fromMetadata(metadata: MigrationMetadata, cause?: Error) { + static fromMetadata(metadata: MigrationMetadata, cause?: Error): MigrationNotRunError { return new MigrationNotRunError(`Migration "${metadata.name}" is not in the migration history`, { cause }); } @@ -138,7 +138,7 @@ export class MigrationNotRunError extends EmigrateError { } export class MigrationRemovalError extends EmigrateError { - static fromMetadata(metadata: MigrationMetadata, cause?: Error) { + static fromMetadata(metadata: MigrationMetadata, cause?: Error): MigrationRemovalError { return new MigrationRemovalError(`Failed to remove migration: ${metadata.relativeFilePath}`, { cause }); } @@ -148,7 +148,7 @@ export class MigrationRemovalError extends EmigrateError { } export class StorageInitError extends EmigrateError { - static fromError(error: Error) { + static fromError(error: Error): StorageInitError { return new StorageInitError('Could not initialize storage', { cause: error }); } @@ -158,11 +158,11 @@ export class StorageInitError extends EmigrateError { } export class CommandAbortError extends EmigrateError { - static fromSignal(signal: NodeJS.Signals) { + static fromSignal(signal: NodeJS.Signals): CommandAbortError { return new CommandAbortError(`Command aborted due to signal: ${signal}`); } - static fromReason(reason: string, cause?: unknown) { + static fromReason(reason: string, cause?: unknown): CommandAbortError { return new CommandAbortError(`Command aborted: ${reason}`, { cause }); } @@ -172,7 +172,7 @@ export class CommandAbortError extends EmigrateError { } export class ExecutionDesertedError extends EmigrateError { - static fromReason(reason: string, cause?: Error) { + static fromReason(reason: string, cause?: Error): ExecutionDesertedError { return new ExecutionDesertedError(`Execution deserted: ${reason}`, { cause }); } diff --git a/packages/cli/src/get-duration.ts b/packages/cli/src/get-duration.ts index 9d29d2f..eb4944a 100644 --- a/packages/cli/src/get-duration.ts +++ b/packages/cli/src/get-duration.ts @@ -1,6 +1,6 @@ import process from 'node:process'; -export const getDuration = (start: [number, number]) => { +export const getDuration = (start: [number, number]): number => { const [seconds, nanoseconds] = process.hrtime(start); return seconds * 1000 + nanoseconds / 1_000_000; }; diff --git a/packages/cli/src/get-migrations.ts b/packages/cli/src/get-migrations.ts index fb6033d..929fabd 100644 --- a/packages/cli/src/get-migrations.ts +++ b/packages/cli/src/get-migrations.ts @@ -39,6 +39,6 @@ export const getMigrations = async (cwd: string, directory: string): Promise { throw new UnexpectedError(`Could not read package info from: ${packageInfoPath}`); }; -export const { version } = await getPackageInfo(); +const packageInfo = await getPackageInfo(); + +// eslint-disable-next-line prefer-destructuring +export const version: string = packageInfo.version; diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 921446e..1133356 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -1,5 +1,5 @@ export * from './types.js'; -export const emigrate = () => { +export const emigrate = (): void => { // console.log('Done!'); }; diff --git a/packages/cli/src/reporters/default.ts b/packages/cli/src/reporters/default.ts index 1db53a3..4e23196 100644 --- a/packages/cli/src/reporters/default.ts +++ b/packages/cli/src/reporters/default.ts @@ -471,6 +471,6 @@ class DefaultReporter implements Required { } } -const reporterDefault = interactive ? new DefaultFancyReporter() : new DefaultReporter(); +const reporterDefault: EmigrateReporter = interactive ? new DefaultFancyReporter() : new DefaultReporter(); export default reporterDefault; diff --git a/packages/cli/src/reporters/get.ts b/packages/cli/src/reporters/get.ts index c3935c3..b6461f6 100644 --- a/packages/cli/src/reporters/get.ts +++ b/packages/cli/src/reporters/get.ts @@ -1,7 +1,8 @@ +import type { EmigrateReporter } from '@emigrate/types'; import { type Config } from '../types.js'; import * as reporters from './index.js'; -export const getStandardReporter = (reporter?: Config['reporter']) => { +export const getStandardReporter = (reporter?: Config['reporter']): EmigrateReporter | undefined => { if (!reporter) { return reporters.pretty; } @@ -10,5 +11,5 @@ export const getStandardReporter = (reporter?: Config['reporter']) => { return reporters[reporter as keyof typeof reporters]; } - return; // eslint-disable-line no-useless-return + return undefined; }; diff --git a/packages/cli/src/reporters/json.ts b/packages/cli/src/reporters/json.ts index 4a3dcc3..1b6273b 100644 --- a/packages/cli/src/reporters/json.ts +++ b/packages/cli/src/reporters/json.ts @@ -55,6 +55,6 @@ class JsonReporter implements EmigrateReporter { } } -const jsonReporter = new JsonReporter() as EmigrateReporter; +const jsonReporter: EmigrateReporter = new JsonReporter(); export default jsonReporter; diff --git a/packages/cli/src/test-utils.ts b/packages/cli/src/test-utils.ts index b6228d2..0ede3fe 100644 --- a/packages/cli/src/test-utils.ts +++ b/packages/cli/src/test-utils.ts @@ -1,5 +1,6 @@ import { mock, type Mock } from 'node:test'; import path from 'node:path'; +import assert from 'node:assert'; import { type SerializedError, type EmigrateReporter, @@ -9,13 +10,14 @@ import { type NonFailedMigrationHistoryEntry, type Storage, } from '@emigrate/types'; +import { toSerializedError } from './errors.js'; export type Mocked = { // @ts-expect-error - This is a mock [K in keyof T]: Mock; }; -export async function noop() { +export async function noop(): Promise { // noop } @@ -31,8 +33,8 @@ export function getErrorCause(error: Error | undefined): Error | SerializedError return undefined; } -export function getMockedStorage(historyEntries: Array) { - const storage: Mocked = { +export function getMockedStorage(historyEntries: Array): Mocked { + return { lock: mock.fn(async (migrations) => migrations), unlock: mock.fn(async () => { // void @@ -45,8 +47,6 @@ export function getMockedStorage(historyEntries: Array> { @@ -112,3 +112,23 @@ export function toEntries( ): MigrationHistoryEntry[] { return names.map((name) => (typeof name === 'string' ? toEntry(name, status) : name)); } + +export function assertErrorEqualEnough(actual?: Error | SerializedError, expected?: Error, message?: string): void { + if (expected === undefined) { + assert.strictEqual(actual, undefined); + return; + } + + const { + cause: actualCause, + stack: actualStack, + ...actualError + } = actual instanceof Error ? toSerializedError(actual) : actual ?? {}; + const { cause: expectedCause, stack: expectedStack, ...expectedError } = toSerializedError(expected); + // @ts-expect-error Ignore + const { stack: actualCauseStack, ...actualCauseRest } = actualCause ?? {}; + // @ts-expect-error Ignore + const { stack: expectedCauseStack, ...expectedCauseRest } = expectedCause ?? {}; + assert.deepStrictEqual(actualError, expectedError, message); + assert.deepStrictEqual(actualCauseRest, expectedCauseRest, message ? `${message} (cause)` : undefined); +} diff --git a/packages/cli/src/with-leading-period.ts b/packages/cli/src/with-leading-period.ts index 7bc6340..e69a900 100644 --- a/packages/cli/src/with-leading-period.ts +++ b/packages/cli/src/with-leading-period.ts @@ -1 +1 @@ -export const withLeadingPeriod = (string: string) => (string.startsWith('.') ? string : `.${string}`); +export const withLeadingPeriod = (string: string): string => (string.startsWith('.') ? string : `.${string}`); diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 1cfcebb..91e2c12 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "@emigrate/tsconfig/build.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "extends": "@emigrate/tsconfig/build.json" } diff --git a/packages/mysql/CHANGELOG.md b/packages/mysql/CHANGELOG.md index a80e9ae..80a297f 100644 --- a/packages/mysql/CHANGELOG.md +++ b/packages/mysql/CHANGELOG.md @@ -1,5 +1,16 @@ # @emigrate/mysql +## 0.3.3 + +### Patch Changes + +- 26240f4: Make sure we can initialize multiple running instances of Emigrate using @emigrate/mysql concurrently without issues with creating the history table (for instance in a Kubernetes environment and/or with a Percona cluster). +- d779286: Upgrade TypeScript to v5.5 and enable [isolatedDeclarations](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#isolated-declarations) +- 26240f4: Either lock all or none of the migrations to run to make sure they run in order when multiple instances of Emigrate runs concurrently (for instance in a Kubernetes environment) +- Updated dependencies [d779286] + - @emigrate/plugin-tools@0.9.8 + - @emigrate/types@0.12.2 + ## 0.3.2 ### Patch Changes diff --git a/packages/mysql/package.json b/packages/mysql/package.json index 66fa554..7e9aca7 100644 --- a/packages/mysql/package.json +++ b/packages/mysql/package.json @@ -1,6 +1,6 @@ { "name": "@emigrate/mysql", - "version": "0.3.2", + "version": "0.3.3", "publishConfig": { "access": "public", "provenance": true @@ -17,12 +17,16 @@ }, "files": [ "dist", - "!dist/*.tsbuildinfo" + "!dist/*.tsbuildinfo", + "!dist/**/*.test.js", + "!dist/tests/*" ], "scripts": { "build": "tsc --pretty", "build:watch": "tsc --pretty --watch", - "lint": "xo --cwd=../.. $(pwd)" + "lint": "xo --cwd=../.. $(pwd)", + "integration": "glob -c \"node --import tsx --test-reporter spec --test\" \"./src/**/*.integration.ts\"", + "integration:watch": "glob -c \"node --watch --import tsx --test-reporter spec --test\" \"./src/**/*.integration.ts\"" }, "keywords": [ "emigrate", diff --git a/packages/mysql/src/index.integration.ts b/packages/mysql/src/index.integration.ts new file mode 100644 index 0000000..d8d6cd0 --- /dev/null +++ b/packages/mysql/src/index.integration.ts @@ -0,0 +1,103 @@ +import assert from 'node:assert'; +import path from 'node:path'; +import { before, after, describe, it } from 'node:test'; +import type { MigrationMetadata } from '@emigrate/types'; +import { startDatabase, stopDatabase } from './tests/database.js'; +import { createMysqlStorage } from './index.js'; + +let db: { port: number; host: string }; + +const toEnd = new Set<{ end: () => Promise }>(); + +describe('emigrate-mysql', async () => { + before( + async () => { + db = await startDatabase(); + }, + { timeout: 60_000 }, + ); + + after( + async () => { + for (const storage of toEnd) { + // eslint-disable-next-line no-await-in-loop + await storage.end(); + } + + toEnd.clear(); + await stopDatabase(); + }, + { timeout: 10_000 }, + ); + + describe('migration locks', async () => { + it('either locks none or all of the given migrations', async () => { + const { initializeStorage } = createMysqlStorage({ + table: 'migrations', + connection: { + host: db.host, + user: 'emigrate', + password: 'emigrate', + database: 'emigrate', + port: db.port, + }, + }); + + const [storage1, storage2] = await Promise.all([initializeStorage(), initializeStorage()]); + + toEnd.add(storage1); + toEnd.add(storage2); + + const migrations = toMigrations('/emigrate', 'migrations', [ + '2023-10-01-01-test.js', + '2023-10-01-02-test.js', + '2023-10-01-03-test.js', + '2023-10-01-04-test.js', + '2023-10-01-05-test.js', + '2023-10-01-06-test.js', + '2023-10-01-07-test.js', + '2023-10-01-08-test.js', + '2023-10-01-09-test.js', + '2023-10-01-10-test.js', + '2023-10-01-11-test.js', + '2023-10-01-12-test.js', + '2023-10-01-13-test.js', + '2023-10-01-14-test.js', + '2023-10-01-15-test.js', + '2023-10-01-16-test.js', + '2023-10-01-17-test.js', + '2023-10-01-18-test.js', + '2023-10-01-19-test.js', + '2023-10-01-20-test.js', + ]); + + const [locked1, locked2] = await Promise.all([storage1.lock(migrations), storage2.lock(migrations)]); + + assert.strictEqual( + locked1.length === 0 || locked2.length === 0, + true, + 'One of the processes should have no locks', + ); + assert.strictEqual( + locked1.length === 20 || locked2.length === 20, + true, + 'One of the processes should have all locks', + ); + }); + }); +}); + +function toMigration(cwd: string, directory: string, name: string): MigrationMetadata { + return { + name, + filePath: `${cwd}/${directory}/${name}`, + relativeFilePath: `${directory}/${name}`, + extension: path.extname(name), + directory, + cwd, + }; +} + +function toMigrations(cwd: string, directory: string, names: string[]): MigrationMetadata[] { + return names.map((name) => toMigration(cwd, directory, name)); +} diff --git a/packages/mysql/src/index.ts b/packages/mysql/src/index.ts index 22b8271..8dc1b87 100644 --- a/packages/mysql/src/index.ts +++ b/packages/mysql/src/index.ts @@ -1,5 +1,6 @@ import process from 'node:process'; import fs from 'node:fs/promises'; +import { setTimeout } from 'node:timers/promises'; import { createConnection, createPool, @@ -13,7 +14,9 @@ import { } from 'mysql2/promise'; import { getTimestampPrefix, sanitizeMigrationName } from '@emigrate/plugin-tools'; import { + type Awaitable, type MigrationMetadata, + type MigrationFunction, type EmigrateStorage, type LoaderPlugin, type Storage, @@ -52,6 +55,7 @@ const getConnection = async (options: ConnectionOptions | string) => { // best to leave this at 0 (disabled) uri.searchParams.set('connectTimeout', '0'); uri.searchParams.set('multipleStatements', 'true'); + uri.searchParams.set('flags', '-FOUND_ROWS'); connection = await createConnection(uri.toString()); } else { @@ -62,6 +66,7 @@ const getConnection = async (options: ConnectionOptions | string) => { // best to leave this at 0 (disabled) connectTimeout: 0, multipleStatements: true, + flags: ['-FOUND_ROWS'], }); } @@ -82,6 +87,7 @@ const getPool = (connection: PoolOptions | string) => { // it throws an error you can't catch and crashes node // best to leave this at 0 (disabled) uri.searchParams.set('connectTimeout', '0'); + uri.searchParams.set('flags', '-FOUND_ROWS'); return createPool(uri.toString()); } @@ -92,6 +98,7 @@ const getPool = (connection: PoolOptions | string) => { // it throws an error you can't catch and crashes node // best to leave this at 0 (disabled) connectTimeout: 0, + flags: ['-FOUND_ROWS'], }); }; @@ -102,8 +109,8 @@ type HistoryEntry = { error?: SerializedError; }; -const lockMigration = async (pool: Pool, table: string, migration: MigrationMetadata) => { - const [result] = await pool.execute({ +const lockMigration = async (connection: Connection, table: string, migration: MigrationMetadata) => { + const [result] = await connection.execute({ sql: ` INSERT INTO ${escapeId(table)} (name, status, date) VALUES (?, ?, NOW()) @@ -226,8 +233,10 @@ const initializeDatabase = async (config: ConnectionOptions | string) => { } }; -const initializeTable = async (pool: Pool, table: string) => { - const [result] = await pool.execute({ +const lockWaitTimeout = 10; // seconds + +const isHistoryTableExisting = async (connection: Connection, table: string) => { + const [result] = await connection.execute({ sql: ` SELECT 1 as table_exists @@ -240,24 +249,70 @@ const initializeTable = async (pool: Pool, table: string) => { values: [table], }); - if (result[0]?.['table_exists']) { + return result[0]?.['table_exists'] === 1; +}; + +const initializeTable = async (config: ConnectionOptions | string, table: string) => { + const connection = await getConnection(config); + + if (await isHistoryTableExisting(connection, table)) { + await connection.end(); return; } - // This table definition is compatible with the one used by the immigration-mysql package - await pool.execute(` - CREATE TABLE ${escapeId(table)} ( - name varchar(255) not null primary key, - status varchar(32), - date datetime not null - ) Engine=InnoDB; - `); + const lockName = `emigrate_init_table_lock_${table}`; + + const [lockResult] = await connection.query(`SELECT GET_LOCK(?, ?) AS got_lock`, [ + lockName, + lockWaitTimeout, + ]); + const didGetLock = lockResult[0]?.['got_lock'] === 1; + + if (didGetLock) { + try { + // This table definition is compatible with the one used by the immigration-mysql package + await connection.execute(` + CREATE TABLE IF NOT EXISTS ${escapeId(table)} ( + name varchar(255) not null primary key, + status varchar(32), + date datetime not null + ) Engine=InnoDB; + `); + } finally { + await connection.query(`SELECT RELEASE_LOCK(?)`, [lockName]); + await connection.end(); + } + + return; + } + + // Didn't get the lock, wait to see if the table was created by another process + const maxWait = lockWaitTimeout * 1000; // milliseconds + const checkInterval = 250; // milliseconds + const start = Date.now(); + + try { + while (Date.now() - start < maxWait) { + // eslint-disable-next-line no-await-in-loop + if (await isHistoryTableExisting(connection, table)) { + return; + } + + // eslint-disable-next-line no-await-in-loop + await setTimeout(checkInterval); + } + + throw new Error(`Timeout waiting for table ${table} to be created by other process`); + } finally { + await connection.end(); + } }; export const createMysqlStorage = ({ table = defaultTable, connection }: MysqlStorageOptions): EmigrateStorage => { return { async initializeStorage() { await initializeDatabase(connection); + await initializeTable(connection, table); const pool = getPool(connection); @@ -269,24 +324,35 @@ export const createMysqlStorage = ({ table = defaultTable, connection }: MysqlSt }); } - try { - await initializeTable(pool, table); - } catch (error) { - await pool.end(); - throw error; - } - const storage: Storage = { async lock(migrations) { - const lockedMigrations: MigrationMetadata[] = []; + const connection = await pool.getConnection(); - for await (const migration of migrations) { - if (await lockMigration(pool, table, migration)) { - lockedMigrations.push(migration); + try { + await connection.beginTransaction(); + const lockedMigrations: MigrationMetadata[] = []; + + for await (const migration of migrations) { + if (await lockMigration(connection, table, migration)) { + lockedMigrations.push(migration); + } } - } - return lockedMigrations; + if (lockedMigrations.length === migrations.length) { + await connection.commit(); + + return lockedMigrations; + } + + await connection.rollback(); + + return []; + } catch (error) { + await connection.rollback(); + throw error; + } finally { + connection.release(); + } }, async unlock(migrations) { for await (const migration of migrations) { @@ -345,17 +411,6 @@ export const createMysqlStorage = ({ table = defaultTable, connection }: MysqlSt }; }; -export const { initializeStorage } = createMysqlStorage({ - table: process.env['MYSQL_TABLE'], - connection: process.env['MYSQL_URL'] ?? { - host: process.env['MYSQL_HOST'], - port: process.env['MYSQL_PORT'] ? Number.parseInt(process.env['MYSQL_PORT'], 10) : undefined, - user: process.env['MYSQL_USER'], - password: process.env['MYSQL_PASSWORD'], - database: process.env['MYSQL_DATABASE'], - }, -}); - export const createMysqlLoader = ({ connection }: MysqlLoaderOptions): LoaderPlugin => { return { loadableExtensions: ['.sql'], @@ -374,7 +429,16 @@ export const createMysqlLoader = ({ connection }: MysqlLoaderOptions): LoaderPlu }; }; -export const { loadableExtensions, loadMigration } = createMysqlLoader({ +export const generateMigration: GenerateMigrationFunction = async (name) => { + return { + filename: `${getTimestampPrefix()}_${sanitizeMigrationName(name)}.sql`, + content: `-- Migration: ${name} +`, + }; +}; + +const storage = createMysqlStorage({ + table: process.env['MYSQL_TABLE'], connection: process.env['MYSQL_URL'] ?? { host: process.env['MYSQL_HOST'], port: process.env['MYSQL_PORT'] ? Number.parseInt(process.env['MYSQL_PORT'], 10) : undefined, @@ -384,13 +448,22 @@ export const { loadableExtensions, loadMigration } = createMysqlLoader({ }, }); -export const generateMigration: GenerateMigrationFunction = async (name) => { - return { - filename: `${getTimestampPrefix()}_${sanitizeMigrationName(name)}.sql`, - content: `-- Migration: ${name} -`, - }; -}; +const loader = createMysqlLoader({ + connection: process.env['MYSQL_URL'] ?? { + host: process.env['MYSQL_HOST'], + port: process.env['MYSQL_PORT'] ? Number.parseInt(process.env['MYSQL_PORT'], 10) : undefined, + user: process.env['MYSQL_USER'], + password: process.env['MYSQL_PASSWORD'], + database: process.env['MYSQL_DATABASE'], + }, +}); + +// eslint-disable-next-line prefer-destructuring +export const initializeStorage: () => Promise = storage.initializeStorage; +// eslint-disable-next-line prefer-destructuring +export const loadableExtensions: string[] = loader.loadableExtensions; +// eslint-disable-next-line prefer-destructuring +export const loadMigration: (migration: MigrationMetadata) => Awaitable = loader.loadMigration; const defaultExport: EmigrateStorage & LoaderPlugin & GeneratorPlugin = { initializeStorage, diff --git a/packages/mysql/src/tests/database.ts b/packages/mysql/src/tests/database.ts new file mode 100644 index 0000000..38b534f --- /dev/null +++ b/packages/mysql/src/tests/database.ts @@ -0,0 +1,49 @@ +/* eslint @typescript-eslint/naming-convention:0, import/no-extraneous-dependencies: 0 */ +import process from 'node:process'; +import { GenericContainer, type StartedTestContainer } from 'testcontainers'; + +let container: StartedTestContainer | undefined; + +export const startDatabase = async (): Promise<{ port: number; host: string }> => { + if (process.env['CI']) { + const config = { + port: process.env['MYSQL_PORT'] ? Number.parseInt(process.env['MYSQL_PORT'], 10) : 3306, + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing + host: process.env['MYSQL_HOST'] || 'localhost', + }; + + console.log(`Connecting to MySQL from environment variables: ${JSON.stringify(config)}`); + + return config; + } + + if (!container) { + console.log('Starting MySQL container...'); + const containerSetup = new GenericContainer('mysql:8.2') + .withEnvironment({ + MYSQL_ROOT_PASSWORD: 'admin', + MYSQL_USER: 'emigrate', + MYSQL_PASSWORD: 'emigrate', + MYSQL_DATABASE: 'emigrate', + }) + .withTmpFs({ '/var/lib/mysql': 'rw' }) + .withCommand(['--sql-mode=NO_ENGINE_SUBSTITUTION', '--default-authentication-plugin=mysql_native_password']) + .withExposedPorts(3306) + .withReuse(); + + container = await containerSetup.start(); + + console.log('MySQL container started'); + } + + return { port: container.getMappedPort(3306), host: container.getHost() }; +}; + +export const stopDatabase = async (): Promise => { + if (container) { + console.log('Stopping MySQL container...'); + await container.stop(); + console.log('MySQL container stopped'); + container = undefined; + } +}; diff --git a/packages/mysql/tsconfig.json b/packages/mysql/tsconfig.json index 1cfcebb..91e2c12 100644 --- a/packages/mysql/tsconfig.json +++ b/packages/mysql/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "@emigrate/tsconfig/build.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "extends": "@emigrate/tsconfig/build.json" } diff --git a/packages/plugin-generate-js/CHANGELOG.md b/packages/plugin-generate-js/CHANGELOG.md index 1809ad4..ecf920b 100644 --- a/packages/plugin-generate-js/CHANGELOG.md +++ b/packages/plugin-generate-js/CHANGELOG.md @@ -1,5 +1,13 @@ # @emigrate/plugin-generate-js +## 0.3.8 + +### Patch Changes + +- Updated dependencies [d779286] + - @emigrate/plugin-tools@0.9.8 + - @emigrate/types@0.12.2 + ## 0.3.7 ### Patch Changes diff --git a/packages/plugin-generate-js/package.json b/packages/plugin-generate-js/package.json index da3d174..60fcd93 100644 --- a/packages/plugin-generate-js/package.json +++ b/packages/plugin-generate-js/package.json @@ -1,6 +1,6 @@ { "name": "@emigrate/plugin-generate-js", - "version": "0.3.7", + "version": "0.3.8", "publishConfig": { "access": "public" }, diff --git a/packages/plugin-generate-js/tsconfig.json b/packages/plugin-generate-js/tsconfig.json index 1cfcebb..91e2c12 100644 --- a/packages/plugin-generate-js/tsconfig.json +++ b/packages/plugin-generate-js/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "@emigrate/tsconfig/build.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "extends": "@emigrate/tsconfig/build.json" } diff --git a/packages/plugin-tools/CHANGELOG.md b/packages/plugin-tools/CHANGELOG.md index 6028801..e43be5b 100644 --- a/packages/plugin-tools/CHANGELOG.md +++ b/packages/plugin-tools/CHANGELOG.md @@ -1,5 +1,12 @@ # @emigrate/plugin-tools +## 0.9.8 + +### Patch Changes + +- d779286: Upgrade TypeScript to v5.5 and enable [isolatedDeclarations](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#isolated-declarations) + - @emigrate/types@0.12.2 + ## 0.9.7 ### Patch Changes diff --git a/packages/plugin-tools/package.json b/packages/plugin-tools/package.json index 46dc18d..5a23e3d 100644 --- a/packages/plugin-tools/package.json +++ b/packages/plugin-tools/package.json @@ -1,6 +1,6 @@ { "name": "@emigrate/plugin-tools", - "version": "0.9.7", + "version": "0.9.8", "publishConfig": { "access": "public", "provenance": true diff --git a/packages/plugin-tools/src/index.ts b/packages/plugin-tools/src/index.ts index 033fabb..89b1dc7 100644 --- a/packages/plugin-tools/src/index.ts +++ b/packages/plugin-tools/src/index.ts @@ -204,7 +204,7 @@ const load = async ( * * @returns A timestamp string in the format YYYYMMDDHHmmssmmm */ -export const getTimestampPrefix = () => new Date().toISOString().replaceAll(/[-:ZT.]/g, ''); +export const getTimestampPrefix = (): string => new Date().toISOString().replaceAll(/[-:ZT.]/g, ''); /** * A utility function to sanitize a migration name so that it can be used as a filename @@ -212,7 +212,7 @@ export const getTimestampPrefix = () => new Date().toISOString().replaceAll(/[-: * @param name A migration name to sanitize * @returns A sanitized migration name that can be used as a filename */ -export const sanitizeMigrationName = (name: string) => +export const sanitizeMigrationName = (name: string): string => name .replaceAll(/[\W/\\:|*?'"<>_]+/g, '_') .trim() diff --git a/packages/plugin-tools/tsconfig.json b/packages/plugin-tools/tsconfig.json index 1cfcebb..91e2c12 100644 --- a/packages/plugin-tools/tsconfig.json +++ b/packages/plugin-tools/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "@emigrate/tsconfig/build.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "extends": "@emigrate/tsconfig/build.json" } diff --git a/packages/postgres/CHANGELOG.md b/packages/postgres/CHANGELOG.md index 726b5cb..c4244a0 100644 --- a/packages/postgres/CHANGELOG.md +++ b/packages/postgres/CHANGELOG.md @@ -1,5 +1,14 @@ # @emigrate/postgres +## 0.3.2 + +### Patch Changes + +- d779286: Upgrade TypeScript to v5.5 and enable [isolatedDeclarations](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#isolated-declarations) +- Updated dependencies [d779286] + - @emigrate/plugin-tools@0.9.8 + - @emigrate/types@0.12.2 + ## 0.3.1 ### Patch Changes diff --git a/packages/postgres/package.json b/packages/postgres/package.json index 5b870b0..4b18fdf 100644 --- a/packages/postgres/package.json +++ b/packages/postgres/package.json @@ -1,6 +1,6 @@ { "name": "@emigrate/postgres", - "version": "0.3.1", + "version": "0.3.2", "publishConfig": { "access": "public", "provenance": true diff --git a/packages/postgres/src/index.ts b/packages/postgres/src/index.ts index 44af95b..b3300b5 100644 --- a/packages/postgres/src/index.ts +++ b/packages/postgres/src/index.ts @@ -11,6 +11,8 @@ import { type GeneratorPlugin, type SerializedError, type MigrationHistoryEntry, + type Awaitable, + type MigrationFunction, } from '@emigrate/types'; const defaultTable = 'migrations'; @@ -255,17 +257,6 @@ export const createPostgresStorage = ({ }; }; -export const { initializeStorage } = createPostgresStorage({ - table: process.env['POSTGRES_TABLE'], - connection: process.env['POSTGRES_URL'] ?? { - host: process.env['POSTGRES_HOST'], - port: process.env['POSTGRES_PORT'] ? Number.parseInt(process.env['POSTGRES_PORT'], 10) : undefined, - user: process.env['POSTGRES_USER'], - password: process.env['POSTGRES_PASSWORD'], - database: process.env['POSTGRES_DB'], - }, -}); - export const createPostgresLoader = ({ connection }: PostgresLoaderOptions): LoaderPlugin => { return { loadableExtensions: ['.sql'], @@ -284,7 +275,16 @@ export const createPostgresLoader = ({ connection }: PostgresLoaderOptions): Loa }; }; -export const { loadableExtensions, loadMigration } = createPostgresLoader({ +export const generateMigration: GenerateMigrationFunction = async (name) => { + return { + filename: `${getTimestampPrefix()}_${sanitizeMigrationName(name)}.sql`, + content: `-- Migration: ${name} +`, + }; +}; + +const storage = createPostgresStorage({ + table: process.env['POSTGRES_TABLE'], connection: process.env['POSTGRES_URL'] ?? { host: process.env['POSTGRES_HOST'], port: process.env['POSTGRES_PORT'] ? Number.parseInt(process.env['POSTGRES_PORT'], 10) : undefined, @@ -294,13 +294,22 @@ export const { loadableExtensions, loadMigration } = createPostgresLoader({ }, }); -export const generateMigration: GenerateMigrationFunction = async (name) => { - return { - filename: `${getTimestampPrefix()}_${sanitizeMigrationName(name)}.sql`, - content: `-- Migration: ${name} -`, - }; -}; +const loader = createPostgresLoader({ + connection: process.env['POSTGRES_URL'] ?? { + host: process.env['POSTGRES_HOST'], + port: process.env['POSTGRES_PORT'] ? Number.parseInt(process.env['POSTGRES_PORT'], 10) : undefined, + user: process.env['POSTGRES_USER'], + password: process.env['POSTGRES_PASSWORD'], + database: process.env['POSTGRES_DB'], + }, +}); + +// eslint-disable-next-line prefer-destructuring +export const initializeStorage: () => Promise = storage.initializeStorage; +// eslint-disable-next-line prefer-destructuring +export const loadableExtensions: string[] = loader.loadableExtensions; +// eslint-disable-next-line prefer-destructuring +export const loadMigration: (migration: MigrationMetadata) => Awaitable = loader.loadMigration; const defaultExport: EmigrateStorage & LoaderPlugin & GeneratorPlugin = { initializeStorage, diff --git a/packages/postgres/tsconfig.json b/packages/postgres/tsconfig.json index 1cfcebb..91e2c12 100644 --- a/packages/postgres/tsconfig.json +++ b/packages/postgres/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "@emigrate/tsconfig/build.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "extends": "@emigrate/tsconfig/build.json" } diff --git a/packages/reporter-pino/CHANGELOG.md b/packages/reporter-pino/CHANGELOG.md index fff8c18..d6a1641 100644 --- a/packages/reporter-pino/CHANGELOG.md +++ b/packages/reporter-pino/CHANGELOG.md @@ -1,5 +1,12 @@ # @emigrate/reporter-pino +## 0.6.5 + +### Patch Changes + +- d779286: Upgrade TypeScript to v5.5 and enable [isolatedDeclarations](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#isolated-declarations) + - @emigrate/types@0.12.2 + ## 0.6.4 ### Patch Changes diff --git a/packages/reporter-pino/package.json b/packages/reporter-pino/package.json index a2ed264..1028873 100644 --- a/packages/reporter-pino/package.json +++ b/packages/reporter-pino/package.json @@ -1,6 +1,6 @@ { "name": "@emigrate/reporter-pino", - "version": "0.6.4", + "version": "0.6.5", "publishConfig": { "access": "public", "provenance": true diff --git a/packages/reporter-pino/src/index.ts b/packages/reporter-pino/src/index.ts index 690b628..e279efe 100644 --- a/packages/reporter-pino/src/index.ts +++ b/packages/reporter-pino/src/index.ts @@ -204,6 +204,8 @@ export const createPinoReporter = (options: PinoReporterOptions = {}): EmigrateR return new PinoReporter(options); }; -export default createPinoReporter({ +const defaultExport: EmigrateReporter = createPinoReporter({ level: process.env['LOG_LEVEL'], }); + +export default defaultExport; diff --git a/packages/reporter-pino/tsconfig.json b/packages/reporter-pino/tsconfig.json index 1cfcebb..91e2c12 100644 --- a/packages/reporter-pino/tsconfig.json +++ b/packages/reporter-pino/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "@emigrate/tsconfig/build.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "extends": "@emigrate/tsconfig/build.json" } diff --git a/packages/storage-fs/tsconfig.json b/packages/storage-fs/tsconfig.json index 1cfcebb..91e2c12 100644 --- a/packages/storage-fs/tsconfig.json +++ b/packages/storage-fs/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "@emigrate/tsconfig/build.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "extends": "@emigrate/tsconfig/build.json" } diff --git a/packages/tsconfig/CHANGELOG.md b/packages/tsconfig/CHANGELOG.md index b4e6ba7..b61fbe9 100644 --- a/packages/tsconfig/CHANGELOG.md +++ b/packages/tsconfig/CHANGELOG.md @@ -1,5 +1,11 @@ # @emigrate/tsconfig +## 1.0.3 + +### Patch Changes + +- d779286: Upgrade TypeScript to v5.5 and enable [isolatedDeclarations](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/#isolated-declarations) + ## 1.0.2 ### Patch Changes diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json index 91a38e3..6885f40 100644 --- a/packages/tsconfig/base.json +++ b/packages/tsconfig/base.json @@ -11,6 +11,7 @@ "forceConsistentCasingInFileNames": true, "inlineSources": false, "isolatedModules": true, + "isolatedDeclarations": true, "incremental": true, "module": "NodeNext", "moduleResolution": "NodeNext", @@ -31,5 +32,7 @@ "strict": true, "target": "ES2022", "lib": ["ESNext", "DOM", "DOM.Iterable"] - } + }, + "include": ["${configDir}/src"], + "exclude": ["${configDir}/dist"] } diff --git a/packages/tsconfig/build.json b/packages/tsconfig/build.json index 26aad2e..65f1577 100644 --- a/packages/tsconfig/build.json +++ b/packages/tsconfig/build.json @@ -3,6 +3,7 @@ "display": "Build", "extends": "./base.json", "compilerOptions": { - "noEmit": false + "noEmit": false, + "outDir": "${configDir}/dist" } } diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json index 7ae8cf1..ecb4e6b 100644 --- a/packages/tsconfig/package.json +++ b/packages/tsconfig/package.json @@ -1,6 +1,6 @@ { "name": "@emigrate/tsconfig", - "version": "1.0.2", + "version": "1.0.3", "publishConfig": { "access": "public", "provenance": true diff --git a/packages/types/tsconfig.json b/packages/types/tsconfig.json index 1cfcebb..91e2c12 100644 --- a/packages/types/tsconfig.json +++ b/packages/types/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "@emigrate/tsconfig/build.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], - "exclude": ["node_modules", "dist"] + "extends": "@emigrate/tsconfig/build.json" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 56721e9..d818d13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 2.27.1 '@commitlint/cli': specifier: 18.6.1 - version: 18.6.1(@types/node@20.10.4)(typescript@5.3.3) + version: 18.6.1(@types/node@20.10.4)(typescript@5.5.2) '@commitlint/config-conventional': specifier: 18.6.1 version: 18.6.1 @@ -35,33 +35,39 @@ importers: prettier: specifier: 3.1.1 version: 3.1.1 + testcontainers: + specifier: 10.24.2 + version: 10.24.2 tsx: - specifier: 4.7.0 - version: 4.7.0 + specifier: 4.15.7 + version: 4.15.7 turbo: - specifier: 1.10.16 - version: 1.10.16 + specifier: 2.0.5 + version: 2.0.5 typescript: - specifier: 5.3.3 - version: 5.3.3 + specifier: 5.5.2 + version: 5.5.2 xo: specifier: 0.56.0 - version: 0.56.0(webpack@5.90.1) + version: 0.56.0(@types/eslint@8.56.10)(webpack@5.90.1) docs: dependencies: + '@astrojs/check': + specifier: ^0.7.0 + version: 0.7.0(prettier@3.1.1)(typescript@5.5.2) '@astrojs/starlight': specifier: ^0.15.0 - version: 0.15.0(astro@4.0.5) + version: 0.15.0(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2)) '@astrojs/starlight-tailwind': specifier: 2.0.1 - version: 2.0.1(@astrojs/starlight@0.15.0)(@astrojs/tailwind@5.0.3)(tailwindcss@3.3.6) + version: 2.0.1(@astrojs/starlight@0.15.0(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2)))(@astrojs/tailwind@5.0.3(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2))(tailwindcss@3.3.6))(tailwindcss@3.3.6) '@astrojs/tailwind': specifier: ^5.0.3 - version: 5.0.3(astro@4.0.5)(tailwindcss@3.3.6) + version: 5.0.3(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2))(tailwindcss@3.3.6) astro: specifier: ^4.0.1 - version: 4.0.5(@types/node@20.10.4)(typescript@5.3.3) + version: 4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2) sharp: specifier: ^0.32.5 version: 0.32.6 @@ -82,7 +88,7 @@ importers: version: 2.0.3 cosmiconfig: specifier: 9.0.0 - version: 9.0.0(typescript@5.3.3) + version: 9.0.0(typescript@5.5.2) elegant-spinner: specifier: 3.0.0 version: 3.0.0 @@ -230,12 +236,33 @@ packages: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} + '@astrojs/check@0.7.0': + resolution: {integrity: sha512-UTqwOeKNu9IYZmJXEeWnQuTdSd/pX58Hl4TUARsMlT97SVDL//kLBE4T/ctxRz6J573N87oE5ddtW/uOOnQTug==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + '@astrojs/compiler@2.3.2': resolution: {integrity: sha512-jkY7bCVxl27KeZsSxIZ+pqACe+g8VQUdTiSJRj/sXYdIaZlW3ZMq4qF2M17P/oDt3LBq0zLNwQr4Cb7fSpRGxQ==} + '@astrojs/compiler@2.8.1': + resolution: {integrity: sha512-NGfPAgU/9rvDEwsXu82RI1AxiivaxtEYBK9saW1f+2fTHUUqCJQ27HYtb2akG2QxCmFikgZ9zk26BEWgiHho1Q==} + '@astrojs/internal-helpers@0.2.1': resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} + '@astrojs/language-server@2.10.0': + resolution: {integrity: sha512-crHXpqYfA5qWioiuZnZFpTsNItgBlF1f0S9MzDYS7/pfCALkHNJ7K3w9U/j0uMKymsT4hC7BfMaX0DYlfdSzHg==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + '@astrojs/markdown-remark@4.0.1': resolution: {integrity: sha512-RU4ESnqvyLpj8WZs0n5elS6idaDdtIIm7mIpMaRNPCebpxMjfcfdwcmBwz83ktAj5d2eO5bC3z92TcGdli+lRw==} @@ -385,6 +412,9 @@ packages: resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} + '@balena/dockerignore@1.0.2': + resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} + '@changesets/apply-release-plan@7.0.0': resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} @@ -510,28 +540,43 @@ packages: resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} engines: {node: '>=10'} - '@esbuild/aix-ppc64@0.19.11': - resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/css-parser@0.4.0': + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.19.11': - resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.19.9': resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.11': - resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] '@esbuild/android-arm@0.19.9': @@ -540,10 +585,10 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.11': - resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm] os: [android] '@esbuild/android-x64@0.19.9': @@ -552,11 +597,11 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.19.11': - resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] + cpu: [x64] + os: [android] '@esbuild/darwin-arm64@0.19.9': resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==} @@ -564,10 +609,10 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.11': - resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.19.9': @@ -576,11 +621,11 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.19.11': - resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] + cpu: [x64] + os: [darwin] '@esbuild/freebsd-arm64@0.19.9': resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==} @@ -588,10 +633,10 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.11': - resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} - cpu: [x64] + cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.19.9': @@ -600,11 +645,11 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.19.11': - resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} - cpu: [arm64] - os: [linux] + cpu: [x64] + os: [freebsd] '@esbuild/linux-arm64@0.19.9': resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==} @@ -612,10 +657,10 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.11': - resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.19.9': @@ -624,10 +669,10 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.11': - resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} - cpu: [ia32] + cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.19.9': @@ -636,10 +681,10 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.19.11': - resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} - cpu: [loong64] + cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.19.9': @@ -648,10 +693,10 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.11': - resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} - cpu: [mips64el] + cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.19.9': @@ -660,10 +705,10 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.11': - resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} - cpu: [ppc64] + cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.19.9': @@ -672,10 +717,10 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.11': - resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} - cpu: [riscv64] + cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.19.9': @@ -684,10 +729,10 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.11': - resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} - cpu: [s390x] + cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.19.9': @@ -696,10 +741,10 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.11': - resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} - cpu: [x64] + cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.19.9': @@ -708,11 +753,11 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.19.11': - resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] - os: [netbsd] + os: [linux] '@esbuild/netbsd-x64@0.19.9': resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==} @@ -720,11 +765,11 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.19.11': - resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] - os: [openbsd] + os: [netbsd] '@esbuild/openbsd-x64@0.19.9': resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==} @@ -732,11 +777,11 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.11': - resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] - os: [sunos] + os: [openbsd] '@esbuild/sunos-x64@0.19.9': resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==} @@ -744,11 +789,11 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.19.11': - resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} - cpu: [arm64] - os: [win32] + cpu: [x64] + os: [sunos] '@esbuild/win32-arm64@0.19.9': resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==} @@ -756,10 +801,10 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.11': - resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} - cpu: [ia32] + cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.19.9': @@ -768,10 +813,10 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.11': - resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} - cpu: [x64] + cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.19.9': @@ -780,6 +825,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -810,9 +861,23 @@ packages: '@expressive-code/plugin-text-markers@0.29.4': resolution: {integrity: sha512-U8rouNRrLzAo11Ihoi4iqEH7FD+VEUb6Pe7xJxlFJ7HRhgaFIcuHyYyn6jA1WmGP5k9BFLhYBk53+oKvlmEkKw==} + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@grpc/grpc-js@1.13.3': + resolution: {integrity: sha512-FTXHdOoPbZrBjlVLHuKbDZnsTxXv2BlHF57xw6LuThXacXvtkahEPED0CKMk6obZDf65Hv4k3z62eyPNpvinIg==} + engines: {node: '>=12.10.0'} + + '@grpc/proto-loader@0.7.15': + resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} + engines: {node: '>=6'} + hasBin: true + '@humanwhocodes/config-array@0.11.13': resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -820,25 +885,41 @@ packages: '@humanwhocodes/object-schema@2.0.1': resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + deprecated: Use @eslint/object-schema instead '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': + resolution: {integrity: sha512-etqLfpSJ5zaw76KUNF603be6d6QsiQPmaHr9FKEp4zhLZJzWCCMH6Icak7MtLUFLZLMpL761mZNImi/joBo1ZA==} + '@jridgewell/gen-mapping@0.3.3': resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.1': resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.1.2': resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.5': - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} @@ -846,8 +927,11 @@ packages: '@jridgewell/trace-mapping@0.3.20': resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - '@jridgewell/trace-mapping@0.3.22': - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@js-sdsl/ordered-map@4.4.2': + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -906,6 +990,36 @@ packages: resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@rollup/rollup-android-arm-eabi@4.9.0': resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==} cpu: [arm] @@ -995,14 +1109,20 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/docker-modem@3.0.6': + resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==} + + '@types/dockerode@3.3.38': + resolution: {integrity: sha512-nnrcfUe2iR+RyOuz0B4bZgQwD9djQa9ADEjp7OAgBs10pYT0KSCtplJjcmBDJz0qaReX5T7GbE5i4VplvzUHvA==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} '@types/eslint@8.44.7': resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} - '@types/eslint@8.56.2': - resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==} + '@types/eslint@8.56.10': + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} '@types/estree-jsx@1.0.3': resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==} @@ -1043,6 +1163,9 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + '@types/node@18.19.86': + resolution: {integrity: sha512-fifKayi175wLyKyc5qUfyENhQ1dCNI1UNjp653d8kuYcPQN5JhX3dGuP/XmvPTg/xRBn1VTLpbmi+H/Mr7tLfQ==} + '@types/node@20.10.4': resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} @@ -1064,6 +1187,15 @@ packages: '@types/semver@7.5.5': resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} + '@types/ssh2-streams@0.1.12': + resolution: {integrity: sha512-Sy8tpEmCce4Tq0oSOYdfqaBpA3hDM8SoxoFh5vzFsu2oL+znzGz8oVWW7xb4K920yYMUY+PIG31qZnFMfPWNCg==} + + '@types/ssh2@0.5.52': + resolution: {integrity: sha512-lbLLlXxdCZOSJMCInKH2+9V/77ET2J6NPQHpFI0kda61Dd1KglJs+fPQBchizmzYSOJBgdTajhPqBO1xxLywvg==} + + '@types/ssh2@1.15.5': + resolution: {integrity: sha512-N1ASjp/nXH3ovBHddRJpli4ozpk6UdDYIX4RJWFa9L1YKnzdhTlVmiGHm4DZnj/jLbqZpes4aeR30EFGQtvhQQ==} + '@types/unist@2.0.10': resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} @@ -1134,8 +1266,40 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@webassemblyjs/ast@1.11.6': - resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} + '@volar/kit@2.2.5': + resolution: {integrity: sha512-Bmn0UCaT43xUGGRwcmFG9lKhiCCLjRT4ScSLLPn5C9ltUcSGnIFFDlbZZa1PreHYHq25/4zkXt9Ap32klAh17w==} + peerDependencies: + typescript: '*' + + '@volar/language-core@2.2.5': + resolution: {integrity: sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==} + + '@volar/language-server@2.2.5': + resolution: {integrity: sha512-PV/jkUkI+m72HTXwnY7hsGqLY3VNi96ZRoWFRzVC9QG/853bixxjveXPJIiydMJ9I739lO3kcj3hnGrF5Sm+HA==} + + '@volar/language-service@2.2.5': + resolution: {integrity: sha512-a97e/0uCe+uSu23F4zvgvldqJtZe6jugQeEHWjTfhgOEO8+Be0t5CZNNVItQqmPyAsD8eElg0S/cP6uxvCmCSQ==} + + '@volar/snapshot-document@2.2.5': + resolution: {integrity: sha512-MTOvWVKxM7ugKO3Amffkv2pND03fe2JtfygYaputqjVFML7YxtTXj8SPnI2pODLeSwOKzDYL6Q8r5j6Y5AgUzQ==} + + '@volar/source-map@2.2.5': + resolution: {integrity: sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==} + + '@volar/typescript@2.2.5': + resolution: {integrity: sha512-eSV/n75+ppfEVugMC/salZsI44nXDPAyL6+iTYCNLtiLHGJsnMv9GwiDMujrvAUj/aLQyqRJgYtXRoxop2clCw==} + + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + + '@vscode/l10n@0.0.16': + resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} '@webassemblyjs/floating-point-hex-parser@1.11.6': resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} @@ -1143,8 +1307,8 @@ packages: '@webassemblyjs/helper-api-error@1.11.6': resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} - '@webassemblyjs/helper-buffer@1.11.6': - resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} '@webassemblyjs/helper-numbers@1.11.6': resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} @@ -1152,8 +1316,8 @@ packages: '@webassemblyjs/helper-wasm-bytecode@1.11.6': resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} - '@webassemblyjs/helper-wasm-section@1.11.6': - resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} '@webassemblyjs/ieee754@1.11.6': resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} @@ -1164,20 +1328,20 @@ packages: '@webassemblyjs/utf8@1.11.6': resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} - '@webassemblyjs/wasm-edit@1.11.6': - resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} - '@webassemblyjs/wasm-gen@1.11.6': - resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} - '@webassemblyjs/wasm-opt@1.11.6': - resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} - '@webassemblyjs/wasm-parser@1.11.6': - resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} - '@webassemblyjs/wast-printer@1.11.6': - resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -1195,6 +1359,7 @@ packages: acorn-import-assertions@1.9.0: resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + deprecated: package has been renamed to acorn-import-attributes peerDependencies: acorn: ^8 @@ -1208,8 +1373,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + acorn@8.12.0: + resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} engines: {node: '>=0.4.0'} hasBin: true @@ -1273,6 +1438,14 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -1322,6 +1495,9 @@ packages: resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} engines: {node: '>=12'} + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true @@ -1336,6 +1512,12 @@ packages: engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true + async-lock@1.4.1: + resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + atomic-sleep@1.0.0: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} @@ -1360,6 +1542,36 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bare-events@2.5.4: + resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} + + bare-fs@4.1.2: + resolution: {integrity: sha512-8wSeOia5B7LwD4+h465y73KOdj5QHsbbuoUfPBi+pXgFJIPuG7SsiOdJuijWMyfid49eD+WivpfY7KT8gbAzBA==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.6.1: + resolution: {integrity: sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.6.5: + resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} + peerDependencies: + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} @@ -1372,6 +1584,9 @@ packages: bcp-47@2.1.0: resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -1419,11 +1634,15 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.22.3: - resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} + browserslist@4.23.1: + resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1433,6 +1652,10 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + buildcheck@0.0.6: + resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==} + engines: {node: '>=10.0.0'} + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -1450,6 +1673,10 @@ packages: resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} engines: {node: '>=12'} + byline@5.0.0: + resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} + engines: {node: '>=0.10.0'} + call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} @@ -1476,8 +1703,8 @@ packages: caniuse-lite@1.0.30001570: resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} - caniuse-lite@1.0.30001587: - resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==} + caniuse-lite@1.0.30001638: + resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1516,8 +1743,8 @@ packages: chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} ci-info@3.9.0: @@ -1612,6 +1839,10 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1638,6 +1869,9 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cosmiconfig-typescript-loader@5.0.0: resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} @@ -1664,6 +1898,19 @@ packages: typescript: optional: true + cpu-features@0.0.10: + resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} + engines: {node: '>=10.0.0'} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -1725,6 +1972,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -1818,6 +2074,18 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + docker-compose@0.24.8: + resolution: {integrity: sha512-plizRs/Vf15H+GCVxq2EUvyPK7ei9b/cVesHvjnX4xaXjM9spHe2Ytq0BitndFgvTJ3E3NljPNUEl7BAN43iZw==} + engines: {node: '>= 6.0.0'} + + docker-modem@5.0.6: + resolution: {integrity: sha512-ens7BiayssQz/uAxGzH8zGXCtiV24rRWXdjNha5V4zSOcxmAZsfGVm/PPFbwQdqEkDnhG+SyR9E3zSHUbOKXBQ==} + engines: {node: '>= 8.0'} + + dockerode@4.0.6: + resolution: {integrity: sha512-FbVf3Z8fY/kALB9s+P9epCpWhfi/r0N2DgYYcYpsAUlaTxPjdsitsFobnltb+lyCgAIvf9C+4PSWlTnHlJMf1w==} + engines: {node: '>= 8.0'} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -1840,13 +2108,16 @@ packages: electron-to-chromium@1.4.613: resolution: {integrity: sha512-r4x5+FowKG6q+/Wj0W9nidx7QO31BJwmR2uEo+Qh3YLGQ8SbBAFuDFpTxzly/I2gsbrFwBuIjrMp423L3O5U3w==} - electron-to-chromium@1.4.667: - resolution: {integrity: sha512-66L3pLlWhTNVUhnmSA5+qDM3fwnXsM6KAqE36e2w4KN0g6pkEtlT5bs41FQtQwVwKnfhNBXiWRLPs30HSxd7Kw==} + electron-to-chromium@1.4.812: + resolution: {integrity: sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==} elegant-spinner@3.0.0: resolution: {integrity: sha512-nWUuor3FWTGYAch7SY0unb5qLzs7eAc24ic9PBh+eQctFNQ4IDWJqBpBgsL4SrrGHHN0mJoL7CpWZby5t2KjFg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + emmet@2.4.7: + resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} + emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -1867,8 +2138,8 @@ packages: resolution: {integrity: sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==} engines: {node: '>=0.6'} - enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + enhanced-resolve@5.17.0: + resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -1897,6 +2168,9 @@ packages: es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-set-tostringtag@2.0.2: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} @@ -1908,13 +2182,13 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - esbuild@0.19.11: - resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + esbuild@0.19.9: + resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} engines: {node: '>=12'} hasBin: true - esbuild@0.19.9: - resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true @@ -2307,6 +2581,10 @@ packages: get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-port@7.1.0: + resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==} + engines: {node: '>=16'} + get-set-props@0.1.0: resolution: {integrity: sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q==} engines: {node: '>=0.10.0'} @@ -2330,6 +2608,9 @@ packages: get-tsconfig@4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + git-raw-commits@2.0.11: resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} engines: {node: '>=10'} @@ -2359,9 +2640,11 @@ packages: glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported global-dirs@0.1.1: resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} @@ -2584,6 +2867,7 @@ packages: inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -2827,6 +3111,9 @@ packages: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -2901,6 +3188,9 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -2926,6 +3216,10 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -3304,6 +3598,10 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -3326,12 +3624,23 @@ packages: mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mysql2@3.6.5: resolution: {integrity: sha512-pS/KqIb0xlXmtmqEuTvBXTmLoQ5LmAz5NW/r8UyQ1ldvnprNEj3P9GbmuQQ2J0A4LO+ynotGi6TbscPa8OUb+w==} engines: {node: '>= 8.0'} @@ -3343,6 +3652,9 @@ packages: resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} engines: {node: '>=12.0.0'} + nan@2.22.2: + resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==} + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3561,6 +3873,9 @@ packages: parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3609,6 +3924,9 @@ packages: picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -3752,6 +4070,9 @@ packages: probe-image-size@7.2.3: resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process-warning@2.3.2: resolution: {integrity: sha512-n9wh8tvBe5sFmsqlg+XQhaQLumwpqoAUruLwjCopgTmUBjJ/fjtBsJzKleCaIGBOMXYEhp1YfKl4d7rJ5ZKJGA==} @@ -3763,6 +4084,13 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} + proper-lockfile@4.1.2: + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + + properties-reader@2.3.0: + resolution: {integrity: sha512-z597WicA7nDZxK12kZqHr2TcvwNU1GCfA5UwfDY/HDp3hXPoPlb5rlEx9bwGTiJnc0OqbBTkU975jDToth8Gxw==} + engines: {node: '>=14'} + property-information@6.4.0: resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} @@ -3770,6 +4098,10 @@ packages: resolution: {integrity: sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ==} engines: {node: '>=4'} + protobufjs@7.5.0: + resolution: {integrity: sha512-Z2E/kOY1QjoMlCytmexzYfDm/w5fKAiRwpSzGtdnXW1zC88Z2yXazHHrOtwCzn+7wSxyE8PYM4rvVcMphF9sOA==} + engines: {node: '>=12.0.0'} + pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -3819,6 +4151,9 @@ packages: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -3827,6 +4162,9 @@ packages: resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -3891,6 +4229,9 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3941,6 +4282,10 @@ packages: retext@8.1.0: resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -3950,6 +4295,7 @@ packages: rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rollup@4.9.0: @@ -3968,6 +4314,9 @@ packages: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -4151,6 +4500,9 @@ packages: spdx-license-ids@3.0.16: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + split-ca@1.0.1: + resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} + split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} @@ -4165,6 +4517,13 @@ packages: resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} engines: {node: '>= 0.6'} + ssh-remote-port-forward@1.0.4: + resolution: {integrity: sha512-x0LV1eVDwjf1gmG7TTnfqIzf+3VPRz7vrNIjX6oYLbeCrf/PeVY6hkT68Mg+q02qXxQhrLjB0jfgvhevoCRmLQ==} + + ssh2@1.16.0: + resolution: {integrity: sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==} + engines: {node: '>=10.16.0'} + stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4178,6 +4537,9 @@ packages: streamx@2.15.6: resolution: {integrity: sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==} + streamx@2.22.0: + resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -4216,6 +4578,9 @@ packages: string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -4309,9 +4674,15 @@ packages: tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + tar-fs@3.0.4: resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + tar-fs@3.0.8: + resolution: {integrity: sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==} + tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -4339,11 +4710,17 @@ packages: uglify-js: optional: true - terser@5.27.0: - resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==} + terser@5.31.1: + resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==} engines: {node: '>=10'} hasBin: true + testcontainers@10.24.2: + resolution: {integrity: sha512-Don3EXEQuSw14+nFG9pj48fL9ck/jXDfR9Rb0K3acOyn/gg97+gsnfZaLzpdejl9GcPJVKxACNRe3SYVC2uWqg==} + + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} @@ -4375,6 +4752,10 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + to-absolute-glob@3.0.0: resolution: {integrity: sha512-loO/XEWTRqpfcpI7+Jr2RR2Umaaozx1t6OSVWtMi0oy5F/Fxg3IC+D/TToDnxyAGs7uZBGT/6XmyDUxgsObJXA==} engines: {node: '>=0.10.0'} @@ -4422,8 +4803,8 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tsx@4.7.0: - resolution: {integrity: sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==} + tsx@4.15.7: + resolution: {integrity: sha512-u3H0iSFDZM3za+VxkZ1kywdCeHCn+8/qHQS1MNoO2sONDgD95HlWtt8aB23OzeTmFP9IU4/8bZUdg58Uu5J4cg==} engines: {node: '>=18.0.0'} hasBin: true @@ -4435,40 +4816,43 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - turbo-darwin-64@1.10.16: - resolution: {integrity: sha512-+Jk91FNcp9e9NCLYlvDDlp2HwEDp14F9N42IoW3dmHI5ZkGSXzalbhVcrx3DOox3QfiNUHxzWg4d7CnVNCuuMg==} + turbo-darwin-64@2.0.5: + resolution: {integrity: sha512-t/9XpWYIjOhIHUdwiR47SYBGYHkR1zWLxTkTNKZwCSn8BN0cfjPZ1BR6kcwYGxLGBhtl5GBf6A29nq2K7iwAjg==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@1.10.16: - resolution: {integrity: sha512-jqGpFZipIivkRp/i+jnL8npX0VssE6IAVNKtu573LXtssZdV/S+fRGYA16tI46xJGxSAivrZ/IcgZrV6Jk80bw==} + turbo-darwin-arm64@2.0.5: + resolution: {integrity: sha512-//5y4RJvnal8CttOLBwlaBqblcQb1qTlIxLN+I8O3E3rPuvHOupNKB9ZJxYIQ8oWf8ns8Ec8cxQ0GSBLTJIMtA==} cpu: [arm64] os: [darwin] - turbo-linux-64@1.10.16: - resolution: {integrity: sha512-PpqEZHwLoizQ6sTUvmImcRmACyRk9EWLXGlqceogPZsJ1jTRK3sfcF9fC2W56zkSIzuLEP07k5kl+ZxJd8JMcg==} + turbo-linux-64@2.0.5: + resolution: {integrity: sha512-LDtEDU2Gm8p3lKu//aHXZFRKUCVu68BNF9LQ+HmiCKFpNyK7khpMTxIAAUhDqt+AzlrbxtrxcCpCJaWg1JDjHg==} cpu: [x64] os: [linux] - turbo-linux-arm64@1.10.16: - resolution: {integrity: sha512-TMjFYz8to1QE0fKVXCIvG/4giyfnmqcQIwjdNfJvKjBxn22PpbjeuFuQ5kNXshUTRaTJihFbuuCcb5OYFNx4uw==} + turbo-linux-arm64@2.0.5: + resolution: {integrity: sha512-84wdrzntErBNxkHcwHxiTZdaginQAxGPnwLTyZj8lpUYI7okPoxy3jKpUeMHN3adm3iDedl/x0mYSIvVVkmOiA==} cpu: [arm64] os: [linux] - turbo-windows-64@1.10.16: - resolution: {integrity: sha512-+jsf68krs0N66FfC4/zZvioUap/Tq3sPFumnMV+EBo8jFdqs4yehd6+MxIwYTjSQLIcpH8KoNMB0gQYhJRLZzw==} + turbo-windows-64@2.0.5: + resolution: {integrity: sha512-SgaFZ0VW6kHCJogLNuLEleAauAJx2Y48wazZGVRmBpgSUS2AylXesaBMhJaEScYqLz7mIRn6KOgwM8D4wTxI9g==} cpu: [x64] os: [win32] - turbo-windows-arm64@1.10.16: - resolution: {integrity: sha512-sKm3hcMM1bl0B3PLG4ifidicOGfoJmOEacM5JtgBkYM48ncMHjkHfFY7HrJHZHUnXM4l05RQTpLFoOl/uIo2HQ==} + turbo-windows-arm64@2.0.5: + resolution: {integrity: sha512-foUxLOZoru0IRNIxm53fkfM4ubas9P0nTFjIcHtd+E8YHeogt8GqTweNre2e6ri1EHDo71emmuQgpuoFCOXZMg==} cpu: [arm64] os: [win32] - turbo@1.10.16: - resolution: {integrity: sha512-2CEaK4FIuSZiP83iFa9GqMTQhroW2QryckVqUydmg4tx78baftTOS0O+oDAhvo9r9Nit4xUEtC1RAHoqs6ZEtg==} + turbo@2.0.5: + resolution: {integrity: sha512-+6+hcWr4nwuESlKqUc626HMOTd3QT8hUOc9QM45PP1d4nErGkNOgExm4Pcov3in7LTuadMnB0gcd/BuzkEDIPw==} hasBin: true + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -4520,8 +4904,14 @@ packages: typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + + typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} + + typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} engines: {node: '>=14.17'} hasBin: true @@ -4535,6 +4925,10 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} + engines: {node: '>=14.0'} + unherit@3.0.1: resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} @@ -4603,6 +4997,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.0.16: + resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -4612,6 +5012,10 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -4669,14 +5073,97 @@ packages: vite: optional: true + volar-service-css@0.0.45: + resolution: {integrity: sha512-f+AlUI1+kESbcZSVaNJVAnK0c/9Da5StoxzPqA5/8VqUHJWNdubWNnwG5xpFVTfgh6pgTcey3UBhBfHytFaIOg==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-emmet@0.0.45: + resolution: {integrity: sha512-9nLXSDkR1vA/3fQkFEsSXAu3XovQxOpTkVG2jilQgfek/K1ZLkaA/WMhN/TtmPmQg4NxE9Ni6mA5udBQ5gVXIA==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-html@0.0.45: + resolution: {integrity: sha512-tLTJqfy1v5C4nmeAsfekFIKPl4r4qDMyL0L9MWywr/EApZzPCsbeUGxCqdzxSMC2q7PMCfX2i167txDo+J0LVA==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-prettier@0.0.45: + resolution: {integrity: sha512-+mBS2EsDgp/kunKEBnHvhBwIQm5v2ahw4NKpKdg4sTpXy3UxqHt+Fq/wRYQ7Z8LlNVNRVfp75ThjM+w2zaZBAw==} + peerDependencies: + '@volar/language-service': ~2.2.3 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + + volar-service-typescript-twoslash-queries@0.0.45: + resolution: {integrity: sha512-KrPUUvKggZgV9mrDpstCzmf20irgv0ooMv+FGDzIIQUkya+d2+nSS8Mx2h9FvsYgLccUVw5jU3Rhwhd3pv/7qg==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-typescript@0.0.45: + resolution: {integrity: sha512-i/mMIIAMastJ2kgPo3qvX0Rrl7NyxhIYZ0ug/B4ambZcLPI1vzBgS2fmvyWX3jhBYHh8NmbAotFj+0Y9JtN47A==} + peerDependencies: + '@volar/language-service': ~2.2.3 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.0: + resolution: {integrity: sha512-nU92imtkgzpCL0xikrIb8WvedV553F2BENzgz23wFuok/HLN5BeQmroMy26pUwFxV2eV8oNRmYCUv8iO7kSMhw==} + + vscode-html-languageservice@5.3.0: + resolution: {integrity: sha512-C4Z3KsP5Ih+fjHpiBc5jxmvCl+4iEwvXegIrzu2F5pktbWvQaBT3YkVPk8N+QlSSMk8oCG6PKtZ/Sq2YHb5e8g==} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} - watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} wcwidth@1.0.1: @@ -4811,6 +5298,10 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} @@ -4828,10 +5319,47 @@ snapshots: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 + '@astrojs/check@0.7.0(prettier@3.1.1)(typescript@5.5.2)': + dependencies: + '@astrojs/language-server': 2.10.0(prettier@3.1.1)(typescript@5.5.2) + chokidar: 3.5.3 + fast-glob: 3.3.2 + kleur: 4.1.5 + typescript: 5.5.2 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + '@astrojs/compiler@2.3.2': {} + '@astrojs/compiler@2.8.1': {} + '@astrojs/internal-helpers@0.2.1': {} + '@astrojs/language-server@2.10.0(prettier@3.1.1)(typescript@5.5.2)': + dependencies: + '@astrojs/compiler': 2.8.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@volar/kit': 2.2.5(typescript@5.5.2) + '@volar/language-core': 2.2.5 + '@volar/language-server': 2.2.5 + '@volar/language-service': 2.2.5 + '@volar/typescript': 2.2.5 + fast-glob: 3.3.2 + volar-service-css: 0.0.45(@volar/language-service@2.2.5) + volar-service-emmet: 0.0.45(@volar/language-service@2.2.5) + volar-service-html: 0.0.45(@volar/language-service@2.2.5) + volar-service-prettier: 0.0.45(@volar/language-service@2.2.5)(prettier@3.1.1) + volar-service-typescript: 0.0.45(@volar/language-service@2.2.5) + volar-service-typescript-twoslash-queries: 0.0.45(@volar/language-service@2.2.5) + vscode-html-languageservice: 5.3.0 + vscode-uri: 3.0.8 + optionalDependencies: + prettier: 3.1.1 + transitivePeerDependencies: + - typescript + '@astrojs/markdown-remark@4.0.1': dependencies: '@astrojs/prism': 3.0.0 @@ -4851,12 +5379,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@2.0.1(astro@4.0.5)': + '@astrojs/mdx@2.0.1(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2))': dependencies: '@astrojs/markdown-remark': 4.0.1 '@mdx-js/mdx': 3.0.0 acorn: 8.11.2 - astro: 4.0.5(@types/node@20.10.4)(typescript@5.3.3) + astro: 4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2) es-module-lexer: 1.4.1 estree-util-visit: 2.0.0 github-slugger: 2.0.0 @@ -4881,21 +5409,21 @@ snapshots: sitemap: 7.1.1 zod: 3.22.4 - '@astrojs/starlight-tailwind@2.0.1(@astrojs/starlight@0.15.0)(@astrojs/tailwind@5.0.3)(tailwindcss@3.3.6)': + '@astrojs/starlight-tailwind@2.0.1(@astrojs/starlight@0.15.0(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2)))(@astrojs/tailwind@5.0.3(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2))(tailwindcss@3.3.6))(tailwindcss@3.3.6)': dependencies: - '@astrojs/starlight': 0.15.0(astro@4.0.5) - '@astrojs/tailwind': 5.0.3(astro@4.0.5)(tailwindcss@3.3.6) + '@astrojs/starlight': 0.15.0(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2)) + '@astrojs/tailwind': 5.0.3(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2))(tailwindcss@3.3.6) tailwindcss: 3.3.6 - '@astrojs/starlight@0.15.0(astro@4.0.5)': + '@astrojs/starlight@0.15.0(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2))': dependencies: - '@astrojs/mdx': 2.0.1(astro@4.0.5) + '@astrojs/mdx': 2.0.1(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2)) '@astrojs/sitemap': 3.0.3 '@pagefind/default-ui': 1.0.4 '@types/hast': 3.0.3 '@types/mdast': 4.0.3 - astro: 4.0.5(@types/node@20.10.4)(typescript@5.3.3) - astro-expressive-code: 0.29.4(astro@4.0.5) + astro: 4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2) + astro-expressive-code: 0.29.4(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2)) bcp-47: 2.1.0 execa: 8.0.1 hast-util-select: 6.0.2 @@ -4911,9 +5439,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/tailwind@5.0.3(astro@4.0.5)(tailwindcss@3.3.6)': + '@astrojs/tailwind@5.0.3(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2))(tailwindcss@3.3.6)': dependencies: - astro: 4.0.5(@types/node@20.10.4)(typescript@5.3.3) + astro: 4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2) autoprefixer: 10.4.16(postcss@8.4.32) postcss: 8.4.32 postcss-load-config: 4.0.2(postcss@8.4.32) @@ -5082,6 +5610,8 @@ snapshots: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + '@balena/dockerignore@1.0.2': {} + '@changesets/apply-release-plan@7.0.0': dependencies: '@babel/runtime': 7.23.2 @@ -5230,11 +5760,11 @@ snapshots: human-id: 1.0.2 prettier: 2.8.8 - '@commitlint/cli@18.6.1(@types/node@20.10.4)(typescript@5.3.3)': + '@commitlint/cli@18.6.1(@types/node@20.10.4)(typescript@5.5.2)': dependencies: '@commitlint/format': 18.6.1 '@commitlint/lint': 18.6.1 - '@commitlint/load': 18.6.1(@types/node@20.10.4)(typescript@5.3.3) + '@commitlint/load': 18.6.1(@types/node@20.10.4)(typescript@5.5.2) '@commitlint/read': 18.6.1 '@commitlint/types': 18.6.1 execa: 5.1.1 @@ -5284,15 +5814,15 @@ snapshots: '@commitlint/rules': 18.6.1 '@commitlint/types': 18.6.1 - '@commitlint/load@18.6.1(@types/node@20.10.4)(typescript@5.3.3)': + '@commitlint/load@18.6.1(@types/node@20.10.4)(typescript@5.5.2)': dependencies: '@commitlint/config-validator': 18.6.1 '@commitlint/execute-rule': 18.6.1 '@commitlint/resolve-extends': 18.6.1 '@commitlint/types': 18.6.1 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.3.3) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.10.4)(cosmiconfig@8.3.6)(typescript@5.3.3) + cosmiconfig: 8.3.6(typescript@5.5.2) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.10.4)(cosmiconfig@8.3.6(typescript@5.5.2))(typescript@5.5.2) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -5345,141 +5875,164 @@ snapshots: '@ctrl/tinycolor@3.6.1': {} - '@esbuild/aix-ppc64@0.19.11': - optional: true + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 - '@esbuild/android-arm64@0.19.11': + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.0': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@esbuild/aix-ppc64@0.21.5': optional: true '@esbuild/android-arm64@0.19.9': optional: true - '@esbuild/android-arm@0.19.11': + '@esbuild/android-arm64@0.21.5': optional: true '@esbuild/android-arm@0.19.9': optional: true - '@esbuild/android-x64@0.19.11': + '@esbuild/android-arm@0.21.5': optional: true '@esbuild/android-x64@0.19.9': optional: true - '@esbuild/darwin-arm64@0.19.11': + '@esbuild/android-x64@0.21.5': optional: true '@esbuild/darwin-arm64@0.19.9': optional: true - '@esbuild/darwin-x64@0.19.11': + '@esbuild/darwin-arm64@0.21.5': optional: true '@esbuild/darwin-x64@0.19.9': optional: true - '@esbuild/freebsd-arm64@0.19.11': + '@esbuild/darwin-x64@0.21.5': optional: true '@esbuild/freebsd-arm64@0.19.9': optional: true - '@esbuild/freebsd-x64@0.19.11': + '@esbuild/freebsd-arm64@0.21.5': optional: true '@esbuild/freebsd-x64@0.19.9': optional: true - '@esbuild/linux-arm64@0.19.11': + '@esbuild/freebsd-x64@0.21.5': optional: true '@esbuild/linux-arm64@0.19.9': optional: true - '@esbuild/linux-arm@0.19.11': + '@esbuild/linux-arm64@0.21.5': optional: true '@esbuild/linux-arm@0.19.9': optional: true - '@esbuild/linux-ia32@0.19.11': + '@esbuild/linux-arm@0.21.5': optional: true '@esbuild/linux-ia32@0.19.9': optional: true - '@esbuild/linux-loong64@0.19.11': + '@esbuild/linux-ia32@0.21.5': optional: true '@esbuild/linux-loong64@0.19.9': optional: true - '@esbuild/linux-mips64el@0.19.11': + '@esbuild/linux-loong64@0.21.5': optional: true '@esbuild/linux-mips64el@0.19.9': optional: true - '@esbuild/linux-ppc64@0.19.11': + '@esbuild/linux-mips64el@0.21.5': optional: true '@esbuild/linux-ppc64@0.19.9': optional: true - '@esbuild/linux-riscv64@0.19.11': + '@esbuild/linux-ppc64@0.21.5': optional: true '@esbuild/linux-riscv64@0.19.9': optional: true - '@esbuild/linux-s390x@0.19.11': + '@esbuild/linux-riscv64@0.21.5': optional: true '@esbuild/linux-s390x@0.19.9': optional: true - '@esbuild/linux-x64@0.19.11': + '@esbuild/linux-s390x@0.21.5': optional: true '@esbuild/linux-x64@0.19.9': optional: true - '@esbuild/netbsd-x64@0.19.11': + '@esbuild/linux-x64@0.21.5': optional: true '@esbuild/netbsd-x64@0.19.9': optional: true - '@esbuild/openbsd-x64@0.19.11': + '@esbuild/netbsd-x64@0.21.5': optional: true '@esbuild/openbsd-x64@0.19.9': optional: true - '@esbuild/sunos-x64@0.19.11': + '@esbuild/openbsd-x64@0.21.5': optional: true '@esbuild/sunos-x64@0.19.9': optional: true - '@esbuild/win32-arm64@0.19.11': + '@esbuild/sunos-x64@0.21.5': optional: true '@esbuild/win32-arm64@0.19.9': optional: true - '@esbuild/win32-ia32@0.19.11': + '@esbuild/win32-arm64@0.21.5': optional: true '@esbuild/win32-ia32@0.19.9': optional: true - '@esbuild/win32-x64@0.19.11': + '@esbuild/win32-ia32@0.21.5': optional: true '@esbuild/win32-x64@0.19.9': optional: true + '@esbuild/win32-x64@0.21.5': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.53.0)': dependencies: eslint: 8.53.0 @@ -5527,6 +6080,20 @@ snapshots: hastscript: 7.2.0 unist-util-visit-parents: 5.1.3 + '@fastify/busboy@2.1.1': {} + + '@grpc/grpc-js@1.13.3': + dependencies: + '@grpc/proto-loader': 0.7.15 + '@js-sdsl/ordered-map': 4.4.2 + + '@grpc/proto-loader@0.7.15': + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.5.0 + yargs: 17.7.2 + '@humanwhocodes/config-array@0.11.13': dependencies: '@humanwhocodes/object-schema': 2.0.1 @@ -5548,20 +6115,37 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + '@jridgewell/gen-mapping@0.3.3': dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.1': {} + '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/set-array@1.1.2': {} - '@jridgewell/source-map@0.3.5': + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/sourcemap-codec@1.4.15': {} @@ -5570,11 +6154,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping@0.3.22': + '@jridgewell/trace-mapping@0.3.25': dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + '@js-sdsl/ordered-map@4.4.2': {} + '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.23.2 @@ -5660,6 +6246,29 @@ snapshots: picocolors: 1.0.0 tslib: 2.6.2 + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + '@rollup/rollup-android-arm-eabi@4.9.0': optional: true @@ -5736,9 +6345,20 @@ snapshots: dependencies: '@types/ms': 0.7.34 + '@types/docker-modem@3.0.6': + dependencies: + '@types/node': 20.10.4 + '@types/ssh2': 1.15.5 + + '@types/dockerode@3.3.38': + dependencies: + '@types/docker-modem': 3.0.6 + '@types/node': 20.10.4 + '@types/ssh2': 1.15.5 + '@types/eslint-scope@3.7.7': dependencies: - '@types/eslint': 8.56.2 + '@types/eslint': 8.56.10 '@types/estree': 1.0.5 '@types/eslint@8.44.7': @@ -5746,7 +6366,7 @@ snapshots: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 - '@types/eslint@8.56.2': + '@types/eslint@8.56.10': dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -5787,6 +6407,10 @@ snapshots: '@types/node@17.0.45': {} + '@types/node@18.19.86': + dependencies: + undici-types: 5.26.5 + '@types/node@20.10.4': dependencies: undici-types: 5.26.5 @@ -5809,6 +6433,19 @@ snapshots: '@types/semver@7.5.5': {} + '@types/ssh2-streams@0.1.12': + dependencies: + '@types/node': 20.10.4 + + '@types/ssh2@0.5.52': + dependencies: + '@types/node': 20.10.4 + '@types/ssh2-streams': 0.1.12 + + '@types/ssh2@1.15.5': + dependencies: + '@types/node': 18.19.86 + '@types/unist@2.0.10': {} '@types/unist@3.0.2': {} @@ -5817,13 +6454,13 @@ snapshots: dependencies: '@types/node': 20.10.4 - '@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0)(typescript@5.5.2)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.5.2) '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/type-utils': 6.10.0(eslint@8.53.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': 6.10.0(eslint@8.53.0)(typescript@5.5.2) + '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.5.2) '@typescript-eslint/visitor-keys': 6.10.0 debug: 4.3.4 eslint: 8.53.0 @@ -5831,20 +6468,22 @@ snapshots: ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.5.2) + optionalDependencies: + typescript: 5.5.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.3.3)': + '@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2)': dependencies: '@typescript-eslint/scope-manager': 6.10.0 '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.5.2) '@typescript-eslint/visitor-keys': 6.10.0 debug: 4.3.4 eslint: 8.53.0 - typescript: 5.3.3 + optionalDependencies: + typescript: 5.5.2 transitivePeerDependencies: - supports-color @@ -5853,20 +6492,21 @@ snapshots: '@typescript-eslint/types': 6.10.0 '@typescript-eslint/visitor-keys': 6.10.0 - '@typescript-eslint/type-utils@6.10.0(eslint@8.53.0)(typescript@5.3.3)': + '@typescript-eslint/type-utils@6.10.0(eslint@8.53.0)(typescript@5.5.2)': dependencies: - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.5.2) + '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.5.2) debug: 4.3.4 eslint: 8.53.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.5.2) + optionalDependencies: + typescript: 5.5.2 transitivePeerDependencies: - supports-color '@typescript-eslint/types@6.10.0': {} - '@typescript-eslint/typescript-estree@6.10.0(typescript@5.3.3)': + '@typescript-eslint/typescript-estree@6.10.0(typescript@5.5.2)': dependencies: '@typescript-eslint/types': 6.10.0 '@typescript-eslint/visitor-keys': 6.10.0 @@ -5874,19 +6514,20 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + ts-api-utils: 1.0.3(typescript@5.5.2) + optionalDependencies: + typescript: 5.5.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.3.3)': + '@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.5.2)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.5 '@typescript-eslint/scope-manager': 6.10.0 '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.5.2) eslint: 8.53.0 semver: 7.5.4 transitivePeerDependencies: @@ -5900,7 +6541,67 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@webassemblyjs/ast@1.11.6': + '@volar/kit@2.2.5(typescript@5.5.2)': + dependencies: + '@volar/language-service': 2.2.5 + '@volar/typescript': 2.2.5 + typesafe-path: 0.2.2 + typescript: 5.5.2 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + + '@volar/language-core@2.2.5': + dependencies: + '@volar/source-map': 2.2.5 + + '@volar/language-server@2.2.5': + dependencies: + '@volar/language-core': 2.2.5 + '@volar/language-service': 2.2.5 + '@volar/snapshot-document': 2.2.5 + '@volar/typescript': 2.2.5 + '@vscode/l10n': 0.0.16 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + + '@volar/language-service@2.2.5': + dependencies: + '@volar/language-core': 2.2.5 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + + '@volar/snapshot-document@2.2.5': + dependencies: + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + + '@volar/source-map@2.2.5': + dependencies: + muggle-string: 0.4.1 + + '@volar/typescript@2.2.5': + dependencies: + '@volar/language-core': 2.2.5 + path-browserify: 1.0.1 + + '@vscode/emmet-helper@2.9.3': + dependencies: + emmet: 2.4.7 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + + '@vscode/l10n@0.0.16': {} + + '@vscode/l10n@0.0.18': {} + + '@webassemblyjs/ast@1.12.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -5909,7 +6610,7 @@ snapshots: '@webassemblyjs/helper-api-error@1.11.6': {} - '@webassemblyjs/helper-buffer@1.11.6': {} + '@webassemblyjs/helper-buffer@1.12.1': {} '@webassemblyjs/helper-numbers@1.11.6': dependencies: @@ -5919,12 +6620,12 @@ snapshots: '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} - '@webassemblyjs/helper-wasm-section@1.11.6': + '@webassemblyjs/helper-wasm-section@1.12.1': dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 '@webassemblyjs/ieee754@1.11.6': dependencies: @@ -5936,44 +6637,44 @@ snapshots: '@webassemblyjs/utf8@1.11.6': {} - '@webassemblyjs/wasm-edit@1.11.6': + '@webassemblyjs/wasm-edit@1.12.1': dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-opt': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - '@webassemblyjs/wast-printer': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 - '@webassemblyjs/wasm-gen@1.11.6': + '@webassemblyjs/wasm-gen@1.12.1': dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/ieee754': 1.11.6 '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wasm-opt@1.11.6': + '@webassemblyjs/wasm-opt@1.12.1': dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wasm-parser@1.11.6': + '@webassemblyjs/wasm-parser@1.12.1': dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/ieee754': 1.11.6 '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 - '@webassemblyjs/wast-printer@1.11.6': + '@webassemblyjs/wast-printer@1.12.1': dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 '@xtuc/ieee754@1.2.0': {} @@ -5989,9 +6690,9 @@ snapshots: dependencies: event-target-shim: 5.0.1 - acorn-import-assertions@1.9.0(acorn@8.11.3): + acorn-import-assertions@1.9.0(acorn@8.12.0): dependencies: - acorn: 8.11.3 + acorn: 8.12.0 acorn-jsx@5.3.2(acorn@8.11.2): dependencies: @@ -5999,7 +6700,7 @@ snapshots: acorn@8.11.2: {} - acorn@8.11.3: {} + acorn@8.12.0: {} ajv-keywords@3.5.2(ajv@6.12.6): dependencies: @@ -6058,6 +6759,26 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + archiver-utils@5.0.2: + dependencies: + glob: 10.3.10 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.21 + normalize-path: 3.0.0 + readable-stream: 4.4.2 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.4.2 + readdir-glob: 1.1.3 + tar-stream: 3.1.6 + zip-stream: 6.0.1 + arg@5.0.2: {} argparse@1.0.10: @@ -6120,14 +6841,18 @@ snapshots: arrify@3.0.0: {} + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + astring@1.8.6: {} - astro-expressive-code@0.29.4(astro@4.0.5): + astro-expressive-code@0.29.4(astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2)): dependencies: - astro: 4.0.5(@types/node@20.10.4)(typescript@5.3.3) + astro: 4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2) remark-expressive-code: 0.29.4 - astro@4.0.5(@types/node@20.10.4)(typescript@5.3.3): + astro@4.0.5(@types/node@20.12.14)(terser@5.31.1)(typescript@5.5.2): dependencies: '@astrojs/compiler': 2.3.2 '@astrojs/internal-helpers': 0.2.1 @@ -6182,11 +6907,11 @@ snapshots: shikiji: 0.6.13 string-width: 7.0.0 strip-ansi: 7.1.0 - tsconfck: 3.0.0(typescript@5.3.3) + tsconfck: 3.0.0(typescript@5.5.2) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.0.9(@types/node@20.10.4) - vitefu: 0.2.5(vite@5.0.9) + vite: 5.0.9(@types/node@20.12.14)(terser@5.31.1) + vitefu: 0.2.5(vite@5.0.9(@types/node@20.12.14)(terser@5.31.1)) which-pm: 2.1.1 yargs-parser: 21.1.1 zod: 3.22.4 @@ -6203,6 +6928,10 @@ snapshots: - terser - typescript + async-lock@1.4.1: {} + + async@3.2.6: {} + atomic-sleep@1.0.0: {} autoprefixer@10.4.16(postcss@8.4.32): @@ -6223,6 +6952,31 @@ snapshots: balanced-match@1.0.2: {} + bare-events@2.5.4: + optional: true + + bare-fs@4.1.2: + dependencies: + bare-events: 2.5.4 + bare-path: 3.0.0 + bare-stream: 2.6.5(bare-events@2.5.4) + optional: true + + bare-os@3.6.1: + optional: true + + bare-path@3.0.0: + dependencies: + bare-os: 3.6.1 + optional: true + + bare-stream@2.6.5(bare-events@2.5.4): + dependencies: + streamx: 2.22.0 + optionalDependencies: + bare-events: 2.5.4 + optional: true + base-64@1.0.0: {} base64-js@1.5.1: {} @@ -6235,6 +6989,10 @@ snapshots: is-alphanumerical: 2.0.1 is-decimal: 2.0.1 + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 @@ -6296,12 +7054,14 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) - browserslist@4.22.3: + browserslist@4.23.1: dependencies: - caniuse-lite: 1.0.30001587 - electron-to-chromium: 1.4.667 + caniuse-lite: 1.0.30001638 + electron-to-chromium: 1.4.812 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.3) + update-browserslist-db: 1.0.16(browserslist@4.23.1) + + buffer-crc32@1.0.0: {} buffer-from@1.1.2: {} @@ -6315,6 +7075,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buildcheck@0.0.6: + optional: true + builtin-modules@3.3.0: {} builtins@5.0.1: @@ -6335,6 +7098,8 @@ snapshots: dependencies: run-applescript: 5.0.0 + byline@5.0.0: {} + call-bind@1.0.5: dependencies: function-bind: 1.1.2 @@ -6357,7 +7122,7 @@ snapshots: caniuse-lite@1.0.30001570: {} - caniuse-lite@1.0.30001587: {} + caniuse-lite@1.0.30001638: {} ccount@2.0.1: {} @@ -6398,7 +7163,7 @@ snapshots: chownr@1.1.4: {} - chrome-trace-event@1.0.3: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -6480,6 +7245,14 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.4.2 + concat-map@0.0.1: {} confusing-browser-globals@1.0.11: {} @@ -6503,28 +7276,45 @@ snapshots: cookie@0.6.0: {} - cosmiconfig-typescript-loader@5.0.0(@types/node@20.10.4)(cosmiconfig@8.3.6)(typescript@5.3.3): + core-util-is@1.0.3: {} + + cosmiconfig-typescript-loader@5.0.0(@types/node@20.10.4)(cosmiconfig@8.3.6(typescript@5.5.2))(typescript@5.5.2): dependencies: '@types/node': 20.10.4 - cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig: 8.3.6(typescript@5.5.2) jiti: 1.21.0 - typescript: 5.3.3 + typescript: 5.5.2 - cosmiconfig@8.3.6(typescript@5.3.3): + cosmiconfig@8.3.6(typescript@5.5.2): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.3.3 + optionalDependencies: + typescript: 5.5.2 - cosmiconfig@9.0.0(typescript@5.3.3): + cosmiconfig@9.0.0(typescript@5.5.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 - typescript: 5.3.3 + optionalDependencies: + typescript: 5.5.2 + + cpu-features@0.0.10: + dependencies: + buildcheck: 0.0.6 + nan: 2.22.2 + optional: true + + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.4.2 cross-spawn@5.1.0: dependencies: @@ -6577,6 +7367,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.4.0: + dependencies: + ms: 2.1.3 + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 @@ -6658,6 +7452,31 @@ snapshots: dlv@1.1.3: {} + docker-compose@0.24.8: + dependencies: + yaml: 2.3.4 + + docker-modem@5.0.6: + dependencies: + debug: 4.4.0 + readable-stream: 3.6.2 + split-ca: 1.0.1 + ssh2: 1.16.0 + transitivePeerDependencies: + - supports-color + + dockerode@4.0.6: + dependencies: + '@balena/dockerignore': 1.0.2 + '@grpc/grpc-js': 1.13.3 + '@grpc/proto-loader': 0.7.15 + docker-modem: 5.0.6 + protobufjs: 7.5.0 + tar-fs: 2.1.2 + uuid: 10.0.0 + transitivePeerDependencies: + - supports-color + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -6676,10 +7495,15 @@ snapshots: electron-to-chromium@1.4.613: {} - electron-to-chromium@1.4.667: {} + electron-to-chromium@1.4.812: {} elegant-spinner@3.0.0: {} + emmet@2.4.7: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + emoji-regex@10.3.0: {} emoji-regex@8.0.0: {} @@ -6700,7 +7524,7 @@ snapshots: memory-fs: 0.2.0 tapable: 0.1.10 - enhanced-resolve@5.15.0: + enhanced-resolve@5.17.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -6764,6 +7588,8 @@ snapshots: es-module-lexer@1.4.1: {} + es-module-lexer@1.5.4: {} + es-set-tostringtag@2.0.2: dependencies: get-intrinsic: 1.2.2 @@ -6780,32 +7606,6 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - esbuild@0.19.11: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.11 - '@esbuild/android-arm': 0.19.11 - '@esbuild/android-arm64': 0.19.11 - '@esbuild/android-x64': 0.19.11 - '@esbuild/darwin-arm64': 0.19.11 - '@esbuild/darwin-x64': 0.19.11 - '@esbuild/freebsd-arm64': 0.19.11 - '@esbuild/freebsd-x64': 0.19.11 - '@esbuild/linux-arm': 0.19.11 - '@esbuild/linux-arm64': 0.19.11 - '@esbuild/linux-ia32': 0.19.11 - '@esbuild/linux-loong64': 0.19.11 - '@esbuild/linux-mips64el': 0.19.11 - '@esbuild/linux-ppc64': 0.19.11 - '@esbuild/linux-riscv64': 0.19.11 - '@esbuild/linux-s390x': 0.19.11 - '@esbuild/linux-x64': 0.19.11 - '@esbuild/netbsd-x64': 0.19.11 - '@esbuild/openbsd-x64': 0.19.11 - '@esbuild/sunos-x64': 0.19.11 - '@esbuild/win32-arm64': 0.19.11 - '@esbuild/win32-ia32': 0.19.11 - '@esbuild/win32-x64': 0.19.11 - esbuild@0.19.9: optionalDependencies: '@esbuild/android-arm': 0.19.9 @@ -6831,6 +7631,32 @@ snapshots: '@esbuild/win32-ia32': 0.19.9 '@esbuild/win32-x64': 0.19.9 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + escalade@3.1.1: {} escalade@3.1.2: {} @@ -6845,12 +7671,12 @@ snapshots: dependencies: eslint: 8.53.0 - eslint-config-xo-typescript@1.0.1(@typescript-eslint/eslint-plugin@6.10.0)(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.3.3): + eslint-config-xo-typescript@1.0.1(@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0)(typescript@5.5.2))(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0)(typescript@5.5.2): dependencies: - '@typescript-eslint/eslint-plugin': 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.10.0(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0)(typescript@5.5.2) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.5.2) eslint: 8.53.0 - typescript: 5.3.3 + typescript: 5.5.2 eslint-config-xo@0.43.1(eslint@8.53.0): dependencies: @@ -6876,12 +7702,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.27.5)(webpack@5.90.1): + eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0))(webpack@5.90.1): dependencies: array.prototype.find: 2.2.2 debug: 3.2.7 enhanced-resolve: 0.9.1 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.53.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0))(webpack@5.90.1))(eslint@8.53.0) find-root: 1.1.0 hasown: 2.0.1 interpret: 1.4.0 @@ -6894,13 +7720,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8)(eslint@8.53.0): + eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0))(webpack@5.90.1))(eslint@8.53.0): dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.3.3) debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.5.2) eslint: 8.53.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-webpack: 0.13.8(eslint-plugin-import@2.27.5)(webpack@5.90.1) + eslint-import-resolver-webpack: 0.13.8(eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0))(webpack@5.90.1) transitivePeerDependencies: - supports-color @@ -6928,9 +7755,8 @@ snapshots: eslint: 8.53.0 ignore: 5.2.4 - eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.53.0): + eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0))(webpack@5.90.1))(eslint@8.53.0): dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 @@ -6938,7 +7764,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.53.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8)(eslint@8.53.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0))(webpack@5.90.1))(eslint@8.53.0) has: 1.0.4 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -6947,6 +7773,8 @@ snapshots: resolve: 1.22.8 semver: 6.3.1 tsconfig-paths: 3.14.2 + optionalDependencies: + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.5.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -6972,13 +7800,15 @@ snapshots: is-obj-prop: 1.0.0 is-proto-prop: 2.0.0 - eslint-plugin-prettier@5.0.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@3.1.1): + eslint-plugin-prettier@5.0.1(@types/eslint@8.56.10)(eslint-config-prettier@8.10.0(eslint@8.53.0))(eslint@8.53.0)(prettier@3.1.1): dependencies: eslint: 8.53.0 - eslint-config-prettier: 8.10.0(eslint@8.53.0) prettier: 3.1.1 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 + optionalDependencies: + '@types/eslint': 8.56.10 + eslint-config-prettier: 8.10.0(eslint@8.53.0) eslint-plugin-unicorn@48.0.1(eslint@8.53.0): dependencies: @@ -7316,6 +8146,8 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.0 + get-port@7.1.0: {} + get-set-props@0.1.0: {} get-stdin@9.0.0: {} @@ -7333,6 +8165,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.7.5: + dependencies: + resolve-pkg-maps: 1.0.0 + git-raw-commits@2.0.11: dependencies: dargs: 7.0.0 @@ -7929,6 +8765,8 @@ snapshots: dependencies: is-inside-container: 1.0.0 + isarray@1.0.0: {} + isarray@2.0.5: {} isexe@2.0.0: {} @@ -7984,6 +8822,8 @@ snapshots: json5@2.2.3: {} + jsonc-parser@2.3.1: {} + jsonc-parser@3.2.0: {} jsonfile@4.0.0: @@ -8002,6 +8842,10 @@ snapshots: kleur@4.1.5: {} + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -8668,6 +9512,10 @@ snapshots: dependencies: brace-expansion: 1.1.11 + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 @@ -8686,10 +9534,16 @@ snapshots: mkdirp-classic@0.5.3: {} + mkdirp@1.0.4: {} + ms@2.0.0: {} ms@2.1.2: {} + ms@2.1.3: {} + + muggle-string@0.4.1: {} + mysql2@3.6.5: dependencies: denque: 2.1.0 @@ -8711,6 +9565,9 @@ snapshots: dependencies: lru-cache: 7.18.3 + nan@2.22.2: + optional: true + nanoid@3.3.7: {} napi-build-utils@1.0.2: {} @@ -8959,6 +9816,8 @@ snapshots: dependencies: entities: 4.5.0 + path-browserify@1.0.1: {} + path-exists@4.0.0: {} path-exists@5.0.0: {} @@ -8994,6 +9853,8 @@ snapshots: picocolors@1.0.0: {} + picocolors@1.0.1: {} + picomatch@2.3.1: {} pidtree@0.3.1: {} @@ -9062,8 +9923,9 @@ snapshots: postcss-load-config@4.0.2(postcss@8.4.32): dependencies: lilconfig: 3.0.0 - postcss: 8.4.32 yaml: 2.3.4 + optionalDependencies: + postcss: 8.4.32 postcss-nested@6.0.1(postcss@8.4.32): dependencies: @@ -9131,6 +9993,8 @@ snapshots: transitivePeerDependencies: - supports-color + process-nextick-args@2.0.1: {} + process-warning@2.3.2: {} process@0.11.10: {} @@ -9140,10 +10004,35 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 + proper-lockfile@4.1.2: + dependencies: + graceful-fs: 4.2.11 + retry: 0.12.0 + signal-exit: 3.0.7 + + properties-reader@2.3.0: + dependencies: + mkdirp: 1.0.4 + property-information@6.4.0: {} proto-props@2.0.0: {} + protobufjs@7.5.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 20.10.4 + long: 5.2.3 + pseudomap@1.0.2: {} pump@3.0.0: @@ -9202,6 +10091,16 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -9216,6 +10115,10 @@ snapshots: process: 0.11.10 string_decoder: 1.3.0 + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -9328,6 +10231,8 @@ snapshots: mdast-util-to-markdown: 2.1.0 unified: 11.0.4 + request-light@0.7.0: {} + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -9388,6 +10293,8 @@ snapshots: retext-stringify: 3.1.0 unified: 10.1.2 + retry@0.12.0: {} + reusify@1.0.4: {} rfdc@1.3.0: {} @@ -9428,6 +10335,8 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} safe-regex-test@1.0.0: @@ -9620,6 +10529,8 @@ snapshots: spdx-license-ids@3.0.16: {} + split-ca@1.0.1: {} + split2@3.2.2: dependencies: readable-stream: 3.6.2 @@ -9630,6 +10541,19 @@ snapshots: sqlstring@2.3.3: {} + ssh-remote-port-forward@1.0.4: + dependencies: + '@types/ssh2': 0.5.52 + ssh2: 1.16.0 + + ssh2@1.16.0: + dependencies: + asn1: 0.2.6 + bcrypt-pbkdf: 1.0.2 + optionalDependencies: + cpu-features: 0.0.10 + nan: 2.22.2 + stdin-discarder@0.1.0: dependencies: bl: 5.1.0 @@ -9649,6 +10573,14 @@ snapshots: fast-fifo: 1.3.2 queue-tick: 1.0.1 + streamx@2.22.0: + dependencies: + fast-fifo: 1.3.2 + text-decoder: 1.2.3 + optionalDependencies: + bare-events: 2.5.4 + optional: true + string-argv@0.3.2: {} string-width@4.2.3: @@ -9705,6 +10637,10 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.22.3 + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -9818,12 +10754,29 @@ snapshots: pump: 3.0.0 tar-stream: 2.2.0 + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + tar-fs@3.0.4: dependencies: mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 3.1.6 + tar-fs@3.0.8: + dependencies: + pump: 3.0.0 + tar-stream: 3.1.6 + optionalDependencies: + bare-fs: 4.1.2 + bare-path: 3.0.0 + transitivePeerDependencies: + - bare-buffer + tar-stream@2.2.0: dependencies: bl: 4.1.0 @@ -9842,20 +10795,46 @@ snapshots: terser-webpack-plugin@5.3.10(webpack@5.90.1): dependencies: - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.27.0 + terser: 5.31.1 webpack: 5.90.1 - terser@5.27.0: + terser@5.31.1: dependencies: - '@jridgewell/source-map': 0.3.5 - acorn: 8.11.3 + '@jridgewell/source-map': 0.3.6 + acorn: 8.12.0 commander: 2.20.3 source-map-support: 0.5.21 + testcontainers@10.24.2: + dependencies: + '@balena/dockerignore': 1.0.2 + '@types/dockerode': 3.3.38 + archiver: 7.0.1 + async-lock: 1.4.1 + byline: 5.0.0 + debug: 4.4.0 + docker-compose: 0.24.8 + dockerode: 4.0.6 + get-port: 7.1.0 + proper-lockfile: 4.1.2 + properties-reader: 2.3.0 + ssh-remote-port-forward: 1.0.4 + tar-fs: 3.0.8 + tmp: 0.2.3 + undici: 5.29.0 + transitivePeerDependencies: + - bare-buffer + - supports-color + + text-decoder@1.2.3: + dependencies: + b4a: 1.6.4 + optional: true + text-extensions@2.4.0: {} text-table@0.2.0: {} @@ -9884,6 +10863,8 @@ snapshots: dependencies: os-tmpdir: 1.0.2 + tmp@0.2.3: {} + to-absolute-glob@3.0.0: dependencies: is-absolute: 1.0.0 @@ -9901,15 +10882,15 @@ snapshots: trough@2.1.0: {} - ts-api-utils@1.0.3(typescript@5.3.3): + ts-api-utils@1.0.3(typescript@5.5.2): dependencies: - typescript: 5.3.3 + typescript: 5.5.2 ts-interface-checker@0.1.13: {} - tsconfck@3.0.0(typescript@5.3.3): - dependencies: - typescript: 5.3.3 + tsconfck@3.0.0(typescript@5.5.2): + optionalDependencies: + typescript: 5.5.2 tsconfig-paths@3.14.2: dependencies: @@ -9920,10 +10901,10 @@ snapshots: tslib@2.6.2: {} - tsx@4.7.0: + tsx@4.15.7: dependencies: - esbuild: 0.19.11 - get-tsconfig: 4.7.2 + esbuild: 0.21.5 + get-tsconfig: 4.7.5 optionalDependencies: fsevents: 2.3.3 @@ -9941,32 +10922,34 @@ snapshots: dependencies: safe-buffer: 5.2.1 - turbo-darwin-64@1.10.16: + turbo-darwin-64@2.0.5: optional: true - turbo-darwin-arm64@1.10.16: + turbo-darwin-arm64@2.0.5: optional: true - turbo-linux-64@1.10.16: + turbo-linux-64@2.0.5: optional: true - turbo-linux-arm64@1.10.16: + turbo-linux-arm64@2.0.5: optional: true - turbo-windows-64@1.10.16: + turbo-windows-64@2.0.5: optional: true - turbo-windows-arm64@1.10.16: + turbo-windows-arm64@2.0.5: optional: true - turbo@1.10.16: + turbo@2.0.5: optionalDependencies: - turbo-darwin-64: 1.10.16 - turbo-darwin-arm64: 1.10.16 - turbo-linux-64: 1.10.16 - turbo-linux-arm64: 1.10.16 - turbo-windows-64: 1.10.16 - turbo-windows-arm64: 1.10.16 + turbo-darwin-64: 2.0.5 + turbo-darwin-arm64: 2.0.5 + turbo-linux-64: 2.0.5 + turbo-linux-arm64: 2.0.5 + turbo-windows-64: 2.0.5 + turbo-windows-arm64: 2.0.5 + + tweetnacl@0.14.5: {} type-check@0.4.0: dependencies: @@ -10015,7 +10998,13 @@ snapshots: for-each: 0.3.3 is-typed-array: 1.1.12 - typescript@5.3.3: {} + typesafe-path@0.2.2: {} + + typescript-auto-import-cache@0.3.3: + dependencies: + semver: 7.6.0 + + typescript@5.5.2: {} unbox-primitive@1.0.2: dependencies: @@ -10028,6 +11017,10 @@ snapshots: undici-types@5.26.5: {} + undici@5.29.0: + dependencies: + '@fastify/busboy': 2.1.1 + unherit@3.0.1: {} unified@10.1.2: @@ -10130,11 +11123,11 @@ snapshots: escalade: 3.1.1 picocolors: 1.0.0 - update-browserslist-db@1.0.13(browserslist@4.22.3): + update-browserslist-db@1.0.16(browserslist@4.23.1): dependencies: - browserslist: 4.22.3 - escalade: 3.1.1 - picocolors: 1.0.0 + browserslist: 4.23.1 + escalade: 3.1.2 + picocolors: 1.0.1 uri-js@4.4.1: dependencies: @@ -10144,6 +11137,8 @@ snapshots: util-deprecate@1.0.2: {} + uuid@10.0.0: {} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -10182,24 +11177,105 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite@5.0.9(@types/node@20.10.4): + vite@5.0.9(@types/node@20.12.14)(terser@5.31.1): dependencies: - '@types/node': 20.10.4 esbuild: 0.19.9 postcss: 8.4.32 rollup: 4.9.0 optionalDependencies: + '@types/node': 20.12.14 fsevents: 2.3.3 + terser: 5.31.1 - vitefu@0.2.5(vite@5.0.9): + vitefu@0.2.5(vite@5.0.9(@types/node@20.12.14)(terser@5.31.1)): + optionalDependencies: + vite: 5.0.9(@types/node@20.12.14)(terser@5.31.1) + + volar-service-css@0.0.45(@volar/language-service@2.2.5): dependencies: - vite: 5.0.9(@types/node@20.10.4) + vscode-css-languageservice: 6.3.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.2.5 + + volar-service-emmet@0.0.45(@volar/language-service@2.2.5): + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.9.3 + optionalDependencies: + '@volar/language-service': 2.2.5 + + volar-service-html@0.0.45(@volar/language-service@2.2.5): + dependencies: + vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.2.5 + + volar-service-prettier@0.0.45(@volar/language-service@2.2.5)(prettier@3.1.1): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.2.5 + prettier: 3.1.1 + + volar-service-typescript-twoslash-queries@0.0.45(@volar/language-service@2.2.5): + optionalDependencies: + '@volar/language-service': 2.2.5 + + volar-service-typescript@0.0.45(@volar/language-service@2.2.5): + dependencies: + path-browserify: 1.0.1 + semver: 7.6.0 + typescript-auto-import-cache: 0.3.3 + vscode-languageserver-textdocument: 1.0.11 + vscode-nls: 5.2.0 + optionalDependencies: + '@volar/language-service': 2.2.5 + + vscode-css-languageservice@6.3.0: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-html-languageservice@5.3.0: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.11: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} vscode-oniguruma@1.7.0: {} vscode-textmate@8.0.0: {} - watchpack@2.4.0: + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -10216,15 +11292,15 @@ snapshots: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/wasm-edit': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.22.3 - chrome-trace-event: 1.0.3 - enhanced-resolve: 5.15.0 - es-module-lexer: 1.4.1 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.0 + acorn-import-assertions: 1.9.0(acorn@8.12.0) + browserslist: 4.23.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.0 + es-module-lexer: 1.5.4 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -10236,7 +11312,7 @@ snapshots: schema-utils: 3.3.0 tapable: 2.2.1 terser-webpack-plugin: 5.3.10(webpack@5.90.1) - watchpack: 2.4.0 + watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -10311,26 +11387,26 @@ snapshots: wrappy@1.0.2: {} - xo@0.56.0(webpack@5.90.1): + xo@0.56.0(@types/eslint@8.56.10)(webpack@5.90.1): dependencies: '@eslint/eslintrc': 2.1.3 - '@typescript-eslint/eslint-plugin': 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.10.0(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0)(typescript@5.5.2) + '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.5.2) arrify: 3.0.0 - cosmiconfig: 8.3.6(typescript@5.3.3) + cosmiconfig: 8.3.6(typescript@5.5.2) define-lazy-prop: 3.0.0 eslint: 8.53.0 eslint-config-prettier: 8.10.0(eslint@8.53.0) eslint-config-xo: 0.43.1(eslint@8.53.0) - eslint-config-xo-typescript: 1.0.1(@typescript-eslint/eslint-plugin@6.10.0)(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.3.3) + eslint-config-xo-typescript: 1.0.1(@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0)(typescript@5.5.2))(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0)(typescript@5.5.2) eslint-formatter-pretty: 5.0.0 - eslint-import-resolver-webpack: 0.13.8(eslint-plugin-import@2.27.5)(webpack@5.90.1) + eslint-import-resolver-webpack: 0.13.8(eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0))(webpack@5.90.1) eslint-plugin-ava: 14.0.0(eslint@8.53.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.53.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-webpack@0.13.8)(eslint@8.53.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.5.2))(eslint@8.53.0))(webpack@5.90.1))(eslint@8.53.0) eslint-plugin-n: 16.3.0(eslint@8.53.0) eslint-plugin-no-use-extend-native: 0.5.0 - eslint-plugin-prettier: 5.0.1(eslint-config-prettier@8.10.0)(eslint@8.53.0)(prettier@3.1.1) + eslint-plugin-prettier: 5.0.1(@types/eslint@8.56.10)(eslint-config-prettier@8.10.0(eslint@8.53.0))(eslint@8.53.0)(prettier@3.1.1) eslint-plugin-unicorn: 48.0.1(eslint@8.53.0) esm-utils: 4.2.1 find-cache-dir: 4.0.0 @@ -10348,7 +11424,8 @@ snapshots: semver: 7.5.4 slash: 5.1.0 to-absolute-glob: 3.0.0 - typescript: 5.3.3 + typescript: 5.5.2 + optionalDependencies: webpack: 5.90.1 transitivePeerDependencies: - '@types/eslint' @@ -10404,6 +11481,12 @@ snapshots: yocto-queue@1.0.0: {} + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.4.2 + zod@3.22.4: {} zwitch@2.0.4: {} diff --git a/turbo.json b/turbo.json index d23e95e..42f1f9f 100644 --- a/turbo.json +++ b/turbo.json @@ -1,6 +1,7 @@ { "$schema": "https://turborepo.org/schema.json", - "pipeline": { + "ui": "stream", + "tasks": { "build": { "dependsOn": ["^build"], "inputs": ["src/**/*", "!src/**/*.test.ts", "tsconfig.json", "tsconfig.build.json"],