From 95a64f67681709842fe36cf94abea1c55801e5cb Mon Sep 17 00:00:00 2001 From: Matt Venables Date: Sat, 14 Feb 2026 18:48:42 -0500 Subject: [PATCH 1/2] Use oxlint, oxfmt in place of eslint, prettier --- .oxfmtrc.json | 11 + .oxlintrc.json | 44 + .prettierignore | 2 - .vscode/extensions.json | 2 +- .vscode/settings.json | 40 +- AGENTS.md | 13 +- cspell.config.yaml | 22 - demos/e2e/eslint.config.js | 7 - demos/e2e/package.json | 13 +- demos/identity-a2a/eslint.config.js | 7 - demos/identity-a2a/package.json | 13 +- demos/identity-a2a/src/agent.ts | 31 +- demos/identity-a2a/src/bank-client-agent.ts | 150 +- demos/identity/eslint.config.js | 7 - demos/identity/package.json | 13 +- demos/payments/eslint.config.js | 7 - demos/payments/package.json | 13 +- demos/skyfire-kya/eslint.config.js | 7 - demos/skyfire-kya/package.json | 13 +- examples/issuer/eslint.config.js | 7 - examples/issuer/package.json | 13 +- examples/issuer/src/db/schema.ts | 12 +- examples/local-did-host/eslint.config.js | 7 - examples/local-did-host/package.json | 13 +- examples/verifier/eslint.config.js | 7 - examples/verifier/package.json | 13 +- package.json | 29 +- packages/ack-id/eslint.config.js | 7 - packages/ack-id/package.json | 35 +- packages/ack-pay/eslint.config.js | 7 - packages/ack-pay/package.json | 35 +- packages/agentcommercekit/eslint.config.js | 7 - packages/agentcommercekit/package.json | 35 +- packages/caip/eslint.config.js | 7 - packages/caip/package.json | 35 +- packages/caip/src/caips/caip-2.ts | 3 +- packages/caip/src/index.ts | 1 - packages/did/eslint.config.js | 7 - packages/did/package.json | 35 +- packages/did/src/methods/did-pkh.ts | 46 +- packages/jwt/eslint.config.js | 7 - packages/jwt/package.json | 35 +- packages/keys/eslint.config.js | 15 - packages/keys/package.json | 35 +- packages/vc/eslint.config.js | 7 - packages/vc/package.json | 35 +- packages/vc/src/types.ts | 1 - pnpm-lock.yaml | 2532 ++++--------------- prettier.config.js | 23 - tools/api-utils/eslint.config.js | 7 - tools/api-utils/package.json | 15 +- tools/cli-tools/eslint.config.js | 7 - tools/cli-tools/package.json | 15 +- tools/eslint-config/README.md | 3 - tools/eslint-config/base.js | 168 -- tools/eslint-config/package.json | 34 - turbo.json | 16 +- 57 files changed, 870 insertions(+), 2861 deletions(-) create mode 100644 .oxfmtrc.json create mode 100644 .oxlintrc.json delete mode 100644 .prettierignore delete mode 100644 cspell.config.yaml delete mode 100644 demos/e2e/eslint.config.js delete mode 100644 demos/identity-a2a/eslint.config.js delete mode 100644 demos/identity/eslint.config.js delete mode 100644 demos/payments/eslint.config.js delete mode 100644 demos/skyfire-kya/eslint.config.js delete mode 100644 examples/issuer/eslint.config.js delete mode 100644 examples/local-did-host/eslint.config.js delete mode 100644 examples/verifier/eslint.config.js delete mode 100644 packages/ack-id/eslint.config.js delete mode 100644 packages/ack-pay/eslint.config.js delete mode 100644 packages/agentcommercekit/eslint.config.js delete mode 100644 packages/caip/eslint.config.js delete mode 100644 packages/did/eslint.config.js delete mode 100644 packages/jwt/eslint.config.js delete mode 100644 packages/keys/eslint.config.js delete mode 100644 packages/vc/eslint.config.js delete mode 100644 prettier.config.js delete mode 100644 tools/api-utils/eslint.config.js delete mode 100644 tools/cli-tools/eslint.config.js delete mode 100644 tools/eslint-config/README.md delete mode 100644 tools/eslint-config/base.js delete mode 100644 tools/eslint-config/package.json diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 0000000..4c15420 --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,11 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "semi": false, + "singleQuote": false, + "trailingComma": "all", + "tabWidth": 2, + "printWidth": 80, + "experimentalSortImports": {}, + "experimentalSortPackageJson": true, + "ignorePatterns": [] +} diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 0000000..3639c43 --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,44 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": [ + "eslint", + "typescript", + "unicorn", + "oxc", + "import", + "jsdoc", + "node", + "promise", + "vitest" + ], + "globals": {}, + "settings": {}, + "categories": { + "correctness": "error", + "perf": "warn", + "suspicious": "warn", + "pedantic": "off" + }, + "rules": { + "curly": "error", + "no-unused-vars": [ + "warn", + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_" + } + ], + "typescript/no-explicit-any": "error", + "typescript/no-misused-promises": "warn", + "typescript/restrict-template-expressions": "warn" + }, + "overrides": [ + { + "files": ["**/*.test.ts"], + "rules": { + "typescript/no-explicit-any": "off" + } + } + ] +} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 851574f..0000000 --- a/.prettierignore +++ /dev/null @@ -1,2 +0,0 @@ -**/migrations/meta/** -pnpm-lock.yaml diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 1d7ac85..99e2f7d 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,3 @@ { - "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] + "recommendations": ["oxc.oxc-vscode"] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 6b60876..456856f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,43 +1,15 @@ { - "[css]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[jsonc]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[markdown]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[mdx]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "editor.codeActionsOnSave": { - "source.fixAll": "explicit" + "source.fixAll": "always" }, + "editor.defaultFormatter": "oxc.oxc-vscode", "editor.formatOnSave": true, "editor.tabSize": 2, - - "eslint.useFlatConfig": true, - "files.insertFinalNewline": true, "files.trimTrailingWhitespace": true, - + "oxc.enable": true, + "oxc.fixKind": "safe_fix_or_suggestion", + "oxc.typeAware": true, "typescript.enablePromptUseWorkspaceTsdk": true, - "typescript.tsdk": "node_modules/typescript/lib", - - "eslint.workingDirectories": [ - { - "mode": "auto" - } - ] + "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/AGENTS.md b/AGENTS.md index 1c6874c..b81cf76 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -39,7 +39,6 @@ Changes to a leaf package require rebuilding everything above it. Turbo handles - **`tools/`** - Internal workspace packages (not published): - `api-utils` - Hono API helpers, middleware, JWT validation - `cli-tools` - Demo CLI utilities - - `eslint-config` - Shared ESLint flat config - `typescript-config` - Shared tsconfig bases - **`docs/`** - Mintlify documentation site (`pnpm dev:docs`) @@ -92,22 +91,18 @@ Vitest with individual `vitest.config.ts` per package. ## Code Style -### Formatting (Prettier) +### Formatting (oxfmt) - No semicolons - Double quotes - Trailing commas - 2-space indentation +- Import sorting handled by oxfmt -### Imports - -- Sorting handled by `@ianvs/prettier-plugin-sort-imports` (via Prettier, not ESLint) -- Enforced `import type { ... }` via ESLint `consistent-type-imports` rule - -### Linting +### Linting (oxlint) - Unused vars: warning with `^_` prefix ignore pattern -- CSpell spell checking integrated into ESLint (config: `cspell.config.yaml`) +- Config: `.oxlintrc.json` at repo root, run from root (not per-package) ## Demos diff --git a/cspell.config.yaml b/cspell.config.yaml deleted file mode 100644 index 9508727..0000000 --- a/cspell.config.yaml +++ /dev/null @@ -1,22 +0,0 @@ -language: en -words: - - agentcommercekit - - bitstring - - blockhash - - caip - - dbname - - devnet - - healthcheck - - keypair - - lamports - - multibase - - multicall - - multicodec - - multikey - - pubkeys - - secp256 - - skyfire - - solana - - valibot - - varint - - viem diff --git a/demos/e2e/eslint.config.js b/demos/e2e/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/demos/e2e/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/demos/e2e/package.json b/demos/e2e/package.json index 5553dae..0a16381 100644 --- a/demos/e2e/package.json +++ b/demos/e2e/package.json @@ -4,24 +4,22 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "demos/e2e" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "demos/e2e" + }, "type": "module", "main": "./src/index.ts", "scripts": { "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo", "demo": "tsx ./src/index.ts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -31,7 +29,6 @@ "viem": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*" } } diff --git a/demos/identity-a2a/eslint.config.js b/demos/identity-a2a/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/demos/identity-a2a/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/demos/identity-a2a/package.json b/demos/identity-a2a/package.json index 311fcbb..8144dd9 100644 --- a/demos/identity-a2a/package.json +++ b/demos/identity-a2a/package.json @@ -4,23 +4,21 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "demos/identity-a2a" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "demos/identity-a2a" + }, "type": "module", "scripts": { "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo", "demo": "tsx ./src/run-demo.ts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -34,7 +32,6 @@ "valibot": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/express": "5.0.3" } diff --git a/demos/identity-a2a/src/agent.ts b/demos/identity-a2a/src/agent.ts index eefa2fb..b1520fd 100644 --- a/demos/identity-a2a/src/agent.ts +++ b/demos/identity-a2a/src/agent.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/require-await */ /** * Agent base class with DID-first architecture * @@ -14,8 +13,9 @@ import type { AgentExecutor, ExecutionEventBus, Message, - RequestContext, + RequestContext } from "@a2a-js/sdk" + import { colors } from "@repo/cli-tools" import { createDidDocumentFromKeypair, @@ -28,10 +28,11 @@ import { type KeyCurve, type Keypair, type Verifiable, - type W3CCredential, + type W3CCredential } from "agentcommercekit" import { createAgentCardServiceEndpoint } from "agentcommercekit/a2a" import { v4 } from "uuid" + import { issueCredential } from "./issuer" type AgentConfig = { @@ -46,8 +47,8 @@ export abstract class Agent implements AgentExecutor { public did: DidUri, public jwtSigner: JwtSigner, public didDocument: DidDocument, - public vc: Verifiable, - ) {} + public vc: Verifiable + ) { } static async create( this: new ( @@ -56,9 +57,9 @@ export abstract class Agent implements AgentExecutor { did: DidUri, jwtSigner: JwtSigner, didDocument: DidDocument, - vc: Verifiable, + vc: Verifiable ) => T, - config: AgentConfig, + config: AgentConfig ) { const { agentCard, curve, controller } = config @@ -70,19 +71,19 @@ export abstract class Agent implements AgentExecutor { const didDocument = createDidDocumentFromKeypair({ did, keypair, - service: [createAgentCardServiceEndpoint(did, agentCardUrl)], + service: [createAgentCardServiceEndpoint(did, agentCardUrl)] }) console.log(`🌐 Generated ${curve} keypair with did:web for ${this.name}`) console.log(" DID:", colors.dim(did)) console.log( " Public key:", - colors.dim(Buffer.from(keypair.publicKey).toString("hex")), + colors.dim(Buffer.from(keypair.publicKey).toString("hex")) ) const vc = await issueCredential({ subject: did, - controller, + controller }) console.log("Generated sample VC for ownership attestation") @@ -93,7 +94,7 @@ export abstract class Agent implements AgentExecutor { async execute( requestContext: RequestContext, - eventBus: ExecutionEventBus, + eventBus: ExecutionEventBus ): Promise { const message: Message = { kind: "message", @@ -102,9 +103,9 @@ export abstract class Agent implements AgentExecutor { parts: [ { kind: "text", - text: `User message ${requestContext.userMessage.messageId} received and processed`, - }, - ], + text: `User message ${requestContext.userMessage.messageId} received and processed` + } + ] } eventBus.publish(message) @@ -112,7 +113,7 @@ export abstract class Agent implements AgentExecutor { async cancelTask( _taskId: string, - _eventBus: ExecutionEventBus, + _eventBus: ExecutionEventBus ): Promise { // Task canceled return Promise.resolve() diff --git a/demos/identity-a2a/src/bank-client-agent.ts b/demos/identity-a2a/src/bank-client-agent.ts index 9c6fcc2..a63ca5a 100644 --- a/demos/identity-a2a/src/bank-client-agent.ts +++ b/demos/identity-a2a/src/bank-client-agent.ts @@ -1,11 +1,10 @@ -/* eslint-disable @typescript-eslint/no-unnecessary-condition */ - import type { Server } from "node:http" + import { A2AClient, type AgentCard, type Message, - type TextPart, + type TextPart } from "@a2a-js/sdk" import { colors, createLogger, waitForEnter } from "@repo/cli-tools" import { @@ -13,23 +12,24 @@ import { getDidResolver, resolveDid, verifyParsedCredential, - type DidUri, + type DidUri } from "agentcommercekit" import { createA2AHandshakeMessage, createSignedA2AMessage, - verifyA2AHandshakeMessage, + verifyA2AHandshakeMessage } from "agentcommercekit/a2a" import { messageSchema } from "agentcommercekit/a2a/schemas/valibot" import { v4 } from "uuid" import * as v from "valibot" + import { Agent } from "./agent" import { didResolverWithIssuer, issuerDid } from "./issuer" import { fetchUrlFromAgentCardUrl } from "./utils/fetch-agent-card" import { isFailedTaskResponse, isMessageResponse, - isRpcErrorResponse, + isRpcErrorResponse } from "./utils/response-parsers" import { startAgentServer } from "./utils/server-utils" @@ -42,13 +42,13 @@ export class BankClientAgent extends Agent { async requestBankingServices(): Promise { console.log( colors.yellow( - "📚 STEP 1: Initial Setup - At this point, the agents cannot trust each other yet", - ), + "📚 STEP 1: Initial Setup - At this point, the agents cannot trust each other yet" + ) ) console.log( colors.yellow( - " The bank client needs to discover and authenticate with the bank teller", - ), + " The bank client needs to discover and authenticate with the bank teller" + ) ) console.log("") await waitForEnter("Press Enter to start the client agent...") @@ -61,12 +61,12 @@ export class BankClientAgent extends Agent { try { this.server = startAgentServer(this, { logger, - port: 3000, + port: 3000 }) logger.log("✅ Bank Client server started successfully") logger.log( - `🌐 Client DID document available at: ${colors.dim("http://localhost:3000/.well-known/did.json")}`, + `🌐 Client DID document available at: ${colors.dim("http://localhost:3000/.well-known/did.json")}` ) } catch (error) { logger.log("❌ Failed to start Bank Client server:", error as Error) @@ -78,18 +78,18 @@ export class BankClientAgent extends Agent { console.log( colors.yellow( - "📚 STEP 2: Service Discovery - Client discovers the bank's public DID", - ), + "📚 STEP 2: Service Discovery - Client discovers the bank's public DID" + ) ) console.log( colors.yellow( - " The client constructs the bank's did:web from its domain (localhost:3001)", - ), + " The client constructs the bank's did:web from its domain (localhost:3001)" + ) ) console.log( colors.yellow( - " Then resolves the DID document to find the bank's public keys and services", - ), + " Then resolves the DID document to find the bank's public keys and services" + ) ) console.log("") await waitForEnter("Press Enter to begin service discovery...") @@ -108,17 +108,17 @@ export class BankClientAgent extends Agent { console.log( colors.yellow( - "📚 STEP 2.5: Unauthenticated Request - Client tries to access services without identity proof", - ), + "📚 STEP 2.5: Unauthenticated Request - Client tries to access services without identity proof" + ) ) console.log( colors.yellow( - " Let's see what happens when we try to access banking services without authentication...", - ), + " Let's see what happens when we try to access banking services without authentication..." + ) ) console.log("") await waitForEnter( - "Press Enter to attempt unauthenticated banking request...", + "Press Enter to attempt unauthenticated banking request..." ) // Try to access banking services without authentication first @@ -130,14 +130,14 @@ export class BankClientAgent extends Agent { parts: [ { kind: "text", - text: "I would like to check my account balance please.", - }, - ], + text: "I would like to check my account balance please." + } + ] } const unauthenticatedParams = { id: v4(), - message: unauthenticatedMessage, + message: unauthenticatedMessage } logger.log("🚨 Sending unauthenticated request to bank...") @@ -155,12 +155,12 @@ export class BankClientAgent extends Agent { } catch (_error: unknown) { console.log("") console.log( - colors.yellow("EXPECTED RESULT: Bank rejects unauthenticated request"), + colors.yellow("EXPECTED RESULT: Bank rejects unauthenticated request") ) console.log( colors.yellow( - " The bank doesn't know who this customer is or if they can be trusted", - ), + " The bank doesn't know who this customer is or if they can be trusted" + ) ) console.log(colors.yellow(" Error received: Authentication required")) logger.log("✅ Bank REJECTED unauthenticated request") @@ -170,18 +170,18 @@ export class BankClientAgent extends Agent { console.log( colors.yellow( - "📚 STEP 3: Identity Challenge - Client sends cryptographic proof to bank", - ), + "📚 STEP 3: Identity Challenge - Client sends cryptographic proof to bank" + ) ) console.log( colors.yellow( - " Now the client creates a JWT signed with its private key, scoped to the bank's DID", - ), + " Now the client creates a JWT signed with its private key, scoped to the bank's DID" + ) ) console.log( colors.yellow( - " This cryptographically proves the client controls the private key for its DID", - ), + " This cryptographically proves the client controls the private key for its DID" + ) ) console.log("") await waitForEnter("Press Enter to send identity verification challenge...") @@ -189,7 +189,7 @@ export class BankClientAgent extends Agent { // Step 3: Send identity verification challenge const authSuccess = await this.performIdentityVerification( client, - serverDid, + serverDid ) if (!authSuccess) { throw new Error("❌ Identity verification failed!") @@ -198,18 +198,18 @@ export class BankClientAgent extends Agent { try { console.log( colors.yellow( - "📚 STEP 4: Authenticated Communication - Now both parties trust each other", - ), + "📚 STEP 4: Authenticated Communication - Now both parties trust each other" + ) ) console.log( colors.yellow( - " Client can now send signed messages to access banking services", - ), + " Client can now send signed messages to access banking services" + ) ) console.log( colors.yellow( - " Bank verifies each message signature against the client's established identity", - ), + " Bank verifies each message signature against the client's established identity" + ) ) console.log(colors.yellow(" This time the request should succeed!")) console.log("") @@ -224,20 +224,20 @@ export class BankClientAgent extends Agent { parts: [ { kind: "text", - text: "I would like to access my banking services. Please verify my identity.", - }, - ], + text: "I would like to access my banking services. Please verify my identity." + } + ] }, { did: this.did, jwtSigner: this.jwtSigner, alg: curveToJwtAlgorithm(this.keypair.curve), - expiresIn: 5 * 60, - }, + expiresIn: 5 * 60 + } ) const response = await client.sendMessage({ - message, + message }) if (isRpcErrorResponse(response)) { @@ -253,7 +253,7 @@ export class BankClientAgent extends Agent { if (!parseResult.success) { logger.log( "❌ Invalid bank response format:", - JSON.stringify(parseResult.issues), + JSON.stringify(parseResult.issues) ) return } @@ -268,24 +268,24 @@ export class BankClientAgent extends Agent { console.log("") console.log( - colors.yellow("📚 SUCCESS: Secure Banking Session Established!"), + colors.yellow("📚 SUCCESS: Secure Banking Session Established!") ) console.log( colors.yellow( - " ✓ Mutual authentication completed using cryptographic DIDs", - ), + " ✓ Mutual authentication completed using cryptographic DIDs" + ) ) console.log(colors.yellow(" ✓ No shared secrets or passwords required")) console.log( colors.yellow( - " ✓ Each message is cryptographically signed and verified", - ), + " ✓ Each message is cryptographically signed and verified" + ) ) console.log("") await waitForEnter("Press Enter to complete the demo...") logger.log( - "🏦 Bank Client: Thank you! I appreciate the secure identity verification process.", + "🏦 Bank Client: Thank you! I appreciate the secure identity verification process." ) } catch (error) { logger.log("❌ Error accessing banking services:", error as Error) @@ -303,7 +303,7 @@ export class BankClientAgent extends Agent { private async performIdentityVerification( client: A2AClient, - serverDid: DidUri, + serverDid: DidUri ): Promise { try { logger.log("🔐 Starting identity verification with bank teller...") @@ -312,22 +312,22 @@ export class BankClientAgent extends Agent { "user", { recipient: serverDid, - vc: this.vc, + vc: this.vc }, { did: this.did, jwtSigner: this.jwtSigner, alg: curveToJwtAlgorithm(this.keypair.curve), - expiresIn: 5 * 60, - }, + expiresIn: 5 * 60 + } ) logger.log( "Sending identity verification challenge...\n", - colors.dim(JSON.stringify(message, null, 2)), + colors.dim(JSON.stringify(message, null, 2)) ) const authResponse = await client.sendMessage({ - message, + message }) if ("error" in authResponse) { @@ -336,7 +336,7 @@ export class BankClientAgent extends Agent { if (authResponse.result.kind !== "message") { throw new Error( - "❌ Failed to send identity verification challenge: Did not receive message response", + "❌ Failed to send identity verification challenge: Did not receive message response" ) } @@ -347,13 +347,13 @@ export class BankClientAgent extends Agent { // Validate that this is intended for our DID did: this.did, // Validate that the bank teller is the counterparty - counterparty: serverDid, - }, + counterparty: serverDid + } ) await verifyParsedCredential(bankVc, { resolver: didResolverWithIssuer, - trustedIssuers: [issuerDid], + trustedIssuers: [issuerDid] }) // Check that bank teller included our nonce @@ -394,19 +394,19 @@ export class BankClientAgent extends Agent { logger.log(" DID Document ID:", colors.dim(didDocument.id)) logger.log( " Services:", - colors.dim(JSON.stringify(didDocument.service, null, 2)), + colors.dim(JSON.stringify(didDocument.service, null, 2)) ) // Look for AgentCard service in the DID document if (didDocument.service && didDocument.service.length > 0) { const agentCardService = didDocument.service.find( - (service) => service.type === "AgentCard", + (service) => service.type === "AgentCard" ) if (!agentCardService) { logger.log("⚠️ No AgentCard service found in DID document") throw new Error( - "No AgentCard service found in bank teller DID document", + "No AgentCard service found in bank teller DID document" ) } @@ -414,7 +414,7 @@ export class BankClientAgent extends Agent { logger.log(" Service ID:", colors.dim(agentCardService.id)) logger.log( " Service Endpoint:", - colors.dim(JSON.stringify(agentCardService.serviceEndpoint, null, 2)), + colors.dim(JSON.stringify(agentCardService.serviceEndpoint, null, 2)) ) // Extract the A2A server URL from the service endpoint @@ -424,17 +424,17 @@ export class BankClientAgent extends Agent { // We need to fetch the url from the agent card this.a2aServerUrl = await fetchUrlFromAgentCardUrl( - agentCardService.serviceEndpoint, + agentCardService.serviceEndpoint ) logger.log( "✅ Discovered A2A server URL:", - colors.dim(this.a2aServerUrl), + colors.dim(this.a2aServerUrl) ) } } catch (error) { logger.log( "❌ Failed to resolve bank teller DID document:", - error as Error, + error as Error ) throw error // Don't continue if we can't resolve the DID document } @@ -450,13 +450,13 @@ const agentCard: AgentCard = { defaultInputModes: ["text"], defaultOutputModes: ["text"], capabilities: { streaming: false }, - skills: [], + skills: [] } export async function getClientAgent() { return BankClientAgent.create({ agentCard, curve: "Ed25519", - controller: "did:web:builder.ack.com", + controller: "did:web:builder.ack.com" }) } diff --git a/demos/identity/eslint.config.js b/demos/identity/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/demos/identity/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/demos/identity/package.json b/demos/identity/package.json index cc3eb38..396b9f3 100644 --- a/demos/identity/package.json +++ b/demos/identity/package.json @@ -4,24 +4,22 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "demos/identity" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "demos/identity" + }, "type": "module", "main": "./src/index.ts", "scripts": { "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo", "demo": "dotenv -e .env -- tsx ./src/index.ts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "setup": "./bin/setup", "test": "vitest" }, @@ -39,7 +37,6 @@ "valibot": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*" } } diff --git a/demos/payments/eslint.config.js b/demos/payments/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/demos/payments/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/demos/payments/package.json b/demos/payments/package.json index 9c70640..7bb86ce 100644 --- a/demos/payments/package.json +++ b/demos/payments/package.json @@ -4,24 +4,22 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "demos/payments" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "demos/payments" + }, "type": "module", "main": "./src/index.ts", "scripts": { "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo", "demo": "dotenv -e .env -- tsx ./src/index.ts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "setup": "./bin/setup", "test": "vitest" }, @@ -38,7 +36,6 @@ "viem": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*" } } diff --git a/demos/skyfire-kya/eslint.config.js b/demos/skyfire-kya/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/demos/skyfire-kya/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/demos/skyfire-kya/package.json b/demos/skyfire-kya/package.json index e3b024d..b0cdc19 100644 --- a/demos/skyfire-kya/package.json +++ b/demos/skyfire-kya/package.json @@ -4,23 +4,21 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "demos/skyfire-kya" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "demos/skyfire-kya" + }, "type": "module", "scripts": { "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo", "demo": "tsx ./src/index.ts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -30,7 +28,6 @@ "zod": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*" } } diff --git a/examples/issuer/eslint.config.js b/examples/issuer/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/examples/issuer/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/examples/issuer/package.json b/examples/issuer/package.json index 6608692..8e171af 100644 --- a/examples/issuer/package.json +++ b/examples/issuer/package.json @@ -4,16 +4,16 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "examples/issuer" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "examples/issuer" + }, "type": "module", "main": "./src/index.ts", "scripts": { @@ -21,8 +21,6 @@ "clean": "git clean -xdf .turbo", "db:generate": "drizzle-kit generate", "dev": "dotenv -e .env -- tsx watch ./bin/start-server.ts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "setup": "./bin/setup", "test": "vitest" }, @@ -37,7 +35,6 @@ "valibot": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "drizzle-kit": "0.31.1", "vite-tsconfig-paths": "5.1.4" diff --git a/examples/issuer/src/db/schema.ts b/examples/issuer/src/db/schema.ts index b5d8e09..c69a58e 100644 --- a/examples/issuer/src/db/schema.ts +++ b/examples/issuer/src/db/schema.ts @@ -1,10 +1,11 @@ import type { W3CCredential } from "agentcommercekit" + import { sql } from "drizzle-orm" import { index, integer, sqliteTable as table, - text, + text } from "drizzle-orm/sqlite-core" export const STATUS_LIST_MAX_SIZE = 8_192 @@ -20,13 +21,11 @@ export const statusListsTable = table("status_lists", { .$defaultFn(() => "0".repeat(STATUS_LIST_MAX_SIZE)), createdAt: integer("created_at", { mode: "timestamp_ms" }) .notNull() - // eslint-disable-next-line @cspell/spellchecker .default(sql`(unixepoch() * 1000)`), updatedAt: integer("last_message_at", { mode: "timestamp_ms" }) .notNull() - // eslint-disable-next-line @cspell/spellchecker .default(sql`(unixepoch() * 1000)`) - .$onUpdateFn(() => new Date()), + .$onUpdateFn(() => new Date()) }) export type DatabaseStatusList = typeof statusListsTable.$inferSelect @@ -44,11 +43,10 @@ export const credentialsTable = table( .$type(), issuedAt: integer("issued_at", { mode: "timestamp_ms" }) .notNull() - // eslint-disable-next-line @cspell/spellchecker .default(sql`(unixepoch() * 1000)`), - revokedAt: integer("revoked_at", { mode: "timestamp_ms" }), + revokedAt: integer("revoked_at", { mode: "timestamp_ms" }) }, - (t) => [index("credential_type_idx").on(t.credentialType)], + (t) => [index("credential_type_idx").on(t.credentialType)] ) export type DatabaseCredential = typeof credentialsTable.$inferSelect diff --git a/examples/local-did-host/eslint.config.js b/examples/local-did-host/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/examples/local-did-host/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/examples/local-did-host/package.json b/examples/local-did-host/package.json index e3e0705..e1755ad 100644 --- a/examples/local-did-host/package.json +++ b/examples/local-did-host/package.json @@ -4,24 +4,22 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "examples/local-did-host" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "examples/local-did-host" + }, "type": "module", "main": "src/index.ts", "scripts": { "check:types": "tsc --noEmit", "clean": "git clean -xdf .turbo", "dev": "dotenv -e .env -- tsx watch ./bin/serve.ts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "setup": "./bin/setup", "test": "vitest" }, @@ -36,7 +34,6 @@ "valibot": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*" } } diff --git a/examples/verifier/eslint.config.js b/examples/verifier/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/examples/verifier/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/examples/verifier/package.json b/examples/verifier/package.json index 394af6d..8c5b14d 100644 --- a/examples/verifier/package.json +++ b/examples/verifier/package.json @@ -4,24 +4,22 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "examples/verifier" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "examples/verifier" + }, "type": "module", "main": "./src/index.ts", "scripts": { "check:types": "tsc --noEmit", "clean": "git clean -xdf .turbo", "dev": "dotenv -e .env -- tsx watch ./bin/serve.ts", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "setup": "./bin/setup", "test": "vitest" }, @@ -34,7 +32,6 @@ "valibot": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*" } } diff --git a/package.json b/package.json index e17c3ef..e274b32 100644 --- a/package.json +++ b/package.json @@ -4,20 +4,20 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git" + }, "type": "module", "scripts": { "build": "turbo build", "check": "turbo check", - "check:format": "prettier --check .", + "check:format": "oxfmt --check .", "check:packages": "pnpm dlx @manypkg/cli check", "check:types": "turbo check:types", "clean": "turbo clean && git clean -xdf .turbo node_modules/.cache", @@ -29,9 +29,9 @@ "dev:docs": "pnpm --filter ./docs docs", "dev:examples": "turbo dev", "fix": "turbo fix", - "format": "prettier --write .", - "lint": "turbo lint", - "lint:fix": "turbo lint:fix", + "format": "oxfmt --write .", + "lint": "oxlint --type-aware", + "lint:fix": "pnpm run lint -- --fix --fix-suggestions", "nuke": "pnpm run clean && git clean -xdf demos/**/node_modules docs/**/node_modules examples/**/node_modules packages/**/node_modules tools/**/node_modules node_modules", "outdated": "pnpm dlx npm-check-updates --interactive --format group --workspaces", "publish:packages": "turbo build && changeset publish", @@ -42,24 +42,21 @@ "devDependencies": { "@changesets/changelog-github": "0.5.1", "@changesets/cli": "2.29.7", - "@ianvs/prettier-plugin-sort-imports": "4.7.0", - "@prettier/plugin-oxc": "0.0.4", "@repo/typescript-config": "workspace:*", "@types/node": "24.9.2", "dotenv-cli": "11.0.0", - "eslint": "9.38.0", - "prettier": "3.6.2", - "prettier-plugin-jsdoc": "1.5.0", - "prettier-plugin-packagejson": "2.5.19", + "oxfmt": "0.32.0", + "oxlint": "1.47.0", + "oxlint-tsgolint": "0.12.2", "tsdown": "0.15.11", "tsx": "4.20.6", "turbo": "2.5.8", "typescript": "5.9.3", "vitest": "4.0.5" }, - "packageManager": "pnpm@10.20.0", "engines": { "node": ">=22", "pnpm": ">=10" - } + }, + "packageManager": "pnpm@10.20.0" } diff --git a/packages/ack-id/eslint.config.js b/packages/ack-id/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/packages/ack-id/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/packages/ack-id/package.json b/packages/ack-id/package.json index bb38b70..2a529cc 100644 --- a/packages/ack-id/package.json +++ b/packages/ack-id/package.json @@ -3,17 +3,25 @@ "version": "0.10.1", "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "packages/ack-id" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "packages/ack-id" + }, + "files": [ + "dist", + "package.json", + "LICENSE", + "README.md" + ], "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -57,21 +65,14 @@ "default": "./dist/a2a/schemas/zod/v4.js" } }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "package.json", - "LICENSE", - "README.md" - ], + "publishConfig": { + "access": "public" + }, "scripts": { "build": "tsdown", "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", "dev": "pnpm build --watch --no-clean", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -85,7 +86,6 @@ }, "devDependencies": { "@a2a-js/sdk": "catalog:", - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "zod": "catalog:" }, @@ -100,8 +100,5 @@ "zod": { "optional": true } - }, - "publishConfig": { - "access": "public" } } diff --git a/packages/ack-pay/eslint.config.js b/packages/ack-pay/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/packages/ack-pay/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/packages/ack-pay/package.json b/packages/ack-pay/package.json index ee49b22..3c395fa 100644 --- a/packages/ack-pay/package.json +++ b/packages/ack-pay/package.json @@ -3,17 +3,25 @@ "version": "0.10.1", "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "packages/ack-pay" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "packages/ack-pay" + }, + "files": [ + "dist", + "package.json", + "LICENSE", + "README.md" + ], "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -37,21 +45,14 @@ "default": "./dist/schemas/valibot.js" } }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "package.json", - "LICENSE", - "README.md" - ], + "publishConfig": { + "access": "public" + }, "scripts": { "build": "tsdown", "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", "dev": "pnpm build --watch --no-clean", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -62,7 +63,6 @@ "valibot": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "zod": "catalog:" }, @@ -73,8 +73,5 @@ "zod": { "optional": true } - }, - "publishConfig": { - "access": "public" } } diff --git a/packages/agentcommercekit/eslint.config.js b/packages/agentcommercekit/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/packages/agentcommercekit/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/packages/agentcommercekit/package.json b/packages/agentcommercekit/package.json index fa272ad..00513fe 100644 --- a/packages/agentcommercekit/package.json +++ b/packages/agentcommercekit/package.json @@ -3,17 +3,25 @@ "version": "0.10.1", "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "packages/agentcommercekit" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "packages/agentcommercekit" + }, + "files": [ + "dist", + "package.json", + "LICENSE", + "README.md" + ], "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -57,21 +65,14 @@ "default": "./dist/a2a/schemas/zod/v4.js" } }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "package.json", - "LICENSE", - "README.md" - ], + "publishConfig": { + "access": "public" + }, "scripts": { "build": "tsdown", "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", "dev": "pnpm build --watch --no-clean", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -85,7 +86,6 @@ }, "devDependencies": { "@a2a-js/sdk": "catalog:", - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "valibot": "catalog:", "zod": "catalog:" @@ -105,8 +105,5 @@ "zod": { "optional": true } - }, - "publishConfig": { - "access": "public" } } diff --git a/packages/caip/eslint.config.js b/packages/caip/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/packages/caip/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/packages/caip/package.json b/packages/caip/package.json index f873b11..44b30c4 100644 --- a/packages/caip/package.json +++ b/packages/caip/package.json @@ -3,17 +3,25 @@ "version": "0.1.0", "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "packages/caip" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "packages/caip" + }, + "files": [ + "dist", + "package.json", + "LICENSE", + "README.md" + ], "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -33,26 +41,18 @@ "default": "./dist/schemas/valibot.js" } }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "package.json", - "LICENSE", - "README.md" - ], + "publishConfig": { + "access": "public" + }, "scripts": { "build": "tsdown", "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", "dev": "pnpm build --watch --no-clean", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": {}, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "standard-parse": "catalog:", "valibot": "catalog:", @@ -69,8 +69,5 @@ "zod": { "optional": true } - }, - "publishConfig": { - "access": "public" } } diff --git a/packages/caip/src/caips/caip-2.ts b/packages/caip/src/caips/caip-2.ts index 53c6883..ab25091 100644 --- a/packages/caip/src/caips/caip-2.ts +++ b/packages/caip/src/caips/caip-2.ts @@ -1,4 +1,3 @@ -/* eslint-disable @cspell/spellchecker */ /** * CAIP-2 Spec - Chain ID Components * @see {@link https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md} @@ -35,7 +34,7 @@ export const caip2ChainIds = { arbitrumMainnet: "eip155:42161", arbitrumSepolia: "eip155:421614", solanaMainnet: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", - solanaDevnet: "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", + solanaDevnet: "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1" } as const export function caip2Parts(caip: Caip2ChainId): Caip2ChainIdParts { diff --git a/packages/caip/src/index.ts b/packages/caip/src/index.ts index 5c011de..f94c807 100644 --- a/packages/caip/src/index.ts +++ b/packages/caip/src/index.ts @@ -1,2 +1 @@ -// eslint-disable-next-line @cspell/spellchecker export * from "./caips" diff --git a/packages/did/eslint.config.js b/packages/did/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/packages/did/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/packages/did/package.json b/packages/did/package.json index fcf076b..401ffa2 100644 --- a/packages/did/package.json +++ b/packages/did/package.json @@ -3,17 +3,25 @@ "version": "0.10.1", "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "packages/did" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "packages/did" + }, + "files": [ + "dist", + "package.json", + "LICENSE", + "README.md" + ], "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -37,21 +45,14 @@ "default": "./dist/schemas/valibot.js" } }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "package.json", - "LICENSE", - "README.md" - ], + "publishConfig": { + "access": "public" + }, "scripts": { "build": "tsdown", "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", "dev": "pnpm build --watch --no-clean", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -64,7 +65,6 @@ "varint": "6.0.0" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/varint": "6.0.3", "standard-parse": "catalog:", @@ -77,8 +77,5 @@ "zod": { "optional": true } - }, - "publishConfig": { - "access": "public" } } diff --git a/packages/did/src/methods/did-pkh.ts b/packages/did/src/methods/did-pkh.ts index f40b432..6769f29 100644 --- a/packages/did/src/methods/did-pkh.ts +++ b/packages/did/src/methods/did-pkh.ts @@ -1,24 +1,26 @@ -/* eslint-disable @cspell/spellchecker */ +import type { VerificationMethod } from "did-resolver" + import { caip10Parts, createCaip10AccountId, type Caip2ChainId, - type Caip10AccountId, + type Caip10AccountId } from "@agentcommercekit/caip" import { isCaip2ChainId, - isCaip10AccountId, + isCaip10AccountId } from "@agentcommercekit/caip/schemas/valibot" import { base58ToBytes, isBase58, - publicKeyBytesToJwk, + publicKeyBytesToJwk } from "@agentcommercekit/keys/encoding" -import type { VerificationMethod } from "did-resolver" -import { createDidDocument } from "../create-did-document" + import type { DidUri } from "../did-uri" import type { DidUriWithDocument } from "../types" +import { createDidDocument } from "../create-did-document" + /** * Methods for creating and verifying did:pkh documents * @@ -50,7 +52,7 @@ export const isDidPkhChainId = isCaip2ChainId * @returns The components of the did:pkh URI */ export function didPkhParts( - didUri: unknown, + didUri: unknown ): ["did", "pkh", string, string, string] { if (typeof didUri !== "string" || !didUri.startsWith("did:pkh:")) { throw new Error("Invalid did:pkh URI") @@ -104,7 +106,7 @@ export function addressFromDidPkhUri(didUri: string): string { } export function caip10AccountIdFromDidPkhUri( - didUri: DidPkhUri, + didUri: DidPkhUri ): Caip10AccountId { const caip10AccountId = didUri.replace("did:pkh:", "") if (!isCaip10AccountId(caip10AccountId)) { @@ -118,7 +120,7 @@ export function caip10AccountIdFromDidPkhUri( */ export function createBlockchainAccountId( address: string, - chainId: Caip2ChainId, + chainId: Caip2ChainId ) { return createCaip10AccountId(chainId, address) } @@ -141,7 +143,7 @@ export function createBlockchainAccountId( */ export function createDidPkhUri( chainId: Caip2ChainId, - address: string, + address: string ): DidPkhUri { return `did:pkh:${createCaip10AccountId(chainId, address)}` } @@ -150,7 +152,7 @@ export function createDidPkhUri( * Create a did:pkh URI from a CAIP-10 account ID */ export function createDidPkhUriFromCaip10AccountId( - caip10AccountId: Caip10AccountId, + caip10AccountId: Caip10AccountId ): DidPkhUri { return `did:pkh:${caip10AccountId}` } @@ -159,12 +161,12 @@ const jsonLdContexts = { Ed25519VerificationKey2020: [ "https://w3id.org/security#blockchainAccountId", "https://w3id.org/security#publicKeyJwk", - "https://w3id.org/security/suites/ed25519-2020/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" ], EcdsaSecp256k1RecoveryMethod2020: [ "https://w3id.org/security#blockchainAccountId", - "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoveryMethod2020", - ], + "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoveryMethod2020" + ] } /** @@ -183,7 +185,7 @@ const jsonLdContexts = { */ export function createDidPkhDocumentFromDidPkhUri( didUri: DidPkhUri, - controller?: DidUri, + controller?: DidUri ): DidUriWithDocument { const caip10AccountId = caip10AccountIdFromDidPkhUri(didUri) return createDidPkhDocumentFromCaip10AccountId(caip10AccountId, controller) @@ -206,7 +208,7 @@ export function createDidPkhDocumentFromDidPkhUri( */ export function createDidPkhDocumentFromCaip10AccountId( caip10AccountId: Caip10AccountId, - controller?: DidUri, + controller?: DidUri ): DidUriWithDocument { const did = createDidPkhUriFromCaip10AccountId(caip10AccountId) const verificationMethod = createVerificationMethod(did, caip10AccountId) @@ -218,7 +220,7 @@ export function createDidPkhDocumentFromCaip10AccountId( additionalContexts, verificationMethod, capabilityDelegation: [verificationMethod.id], - capabilityInvocation: [verificationMethod.id], + capabilityInvocation: [verificationMethod.id] }) return { did, didDocument } @@ -237,7 +239,7 @@ interface CreateDidPkhDocumentOptions { export function createDidPkhDocument({ address, chainId, - controller, + controller }: CreateDidPkhDocumentOptions): DidUriWithDocument { const caip10AccountId = createCaip10AccountId(chainId, address) return createDidPkhDocumentFromCaip10AccountId(caip10AccountId, controller) @@ -251,7 +253,7 @@ export function createDidPkhDocument({ */ function createVerificationMethod( did: DidUri, - caip10AccountId: Caip10AccountId, + caip10AccountId: Caip10AccountId ): Omit & { type: "Ed25519VerificationKey2020" | "EcdsaSecp256k1RecoveryMethod2020" } { @@ -260,14 +262,14 @@ function createVerificationMethod( if (namespace.startsWith("solana") && isBase58(accountId)) { const publicKeyJwk = publicKeyBytesToJwk( base58ToBytes(accountId), - "Ed25519", + "Ed25519" ) return { id: `${did}#controller`, type: "Ed25519VerificationKey2020", controller: did, blockchainAccountId: caip10AccountId, - publicKeyJwk, + publicKeyJwk } } @@ -276,6 +278,6 @@ function createVerificationMethod( id: `${did}#blockchainAccountId`, type: "EcdsaSecp256k1RecoveryMethod2020", controller: did, - blockchainAccountId: caip10AccountId, + blockchainAccountId: caip10AccountId } } diff --git a/packages/jwt/eslint.config.js b/packages/jwt/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/packages/jwt/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/packages/jwt/package.json b/packages/jwt/package.json index a7d71d7..06559ac 100644 --- a/packages/jwt/package.json +++ b/packages/jwt/package.json @@ -3,17 +3,25 @@ "version": "0.9.0", "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "packages/jwt" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "packages/jwt" + }, + "files": [ + "dist", + "package.json", + "LICENSE", + "README.md" + ], "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -37,21 +45,14 @@ "default": "./dist/schemas/valibot.js" } }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "package.json", - "LICENSE", - "README.md" - ], + "publishConfig": { + "access": "public" + }, "scripts": { "build": "tsdown", "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", "dev": "pnpm build --watch --no-clean", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -59,7 +60,6 @@ "did-jwt": "8.0.15" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "valibot": "catalog:", "zod": "catalog:" @@ -75,8 +75,5 @@ "zod": { "optional": true } - }, - "publishConfig": { - "access": "public" } } diff --git a/packages/keys/eslint.config.js b/packages/keys/eslint.config.js deleted file mode 100644 index b689843..0000000 --- a/packages/keys/eslint.config.js +++ /dev/null @@ -1,15 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default [ - ...config({ - root: import.meta.dirname, - }), - { - files: ["**/*.test.ts"], - rules: { - "@cspell/spellchecker": "off", - }, - }, -] diff --git a/packages/keys/package.json b/packages/keys/package.json index eda0dbf..402bb1f 100644 --- a/packages/keys/package.json +++ b/packages/keys/package.json @@ -3,17 +3,25 @@ "version": "0.9.0", "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "packages/keys" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "packages/keys" + }, + "files": [ + "dist", + "package.json", + "LICENSE", + "README.md" + ], "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -37,21 +45,14 @@ "default": "./dist/curves/secp256r1.js" } }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "package.json", - "LICENSE", - "README.md" - ], + "publishConfig": { + "access": "public" + }, "scripts": { "build": "tsdown", "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", "dev": "pnpm build --watch --no-clean", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -61,10 +62,6 @@ "uint8arrays": "5.1.0" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*" - }, - "publishConfig": { - "access": "public" } } diff --git a/packages/vc/eslint.config.js b/packages/vc/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/packages/vc/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/packages/vc/package.json b/packages/vc/package.json index 32ddcc8..7b0d0d2 100644 --- a/packages/vc/package.json +++ b/packages/vc/package.json @@ -3,17 +3,25 @@ "version": "0.10.1", "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "packages/vc" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "packages/vc" + }, + "files": [ + "dist", + "package.json", + "LICENSE", + "README.md" + ], "type": "module", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { @@ -37,21 +45,14 @@ "default": "./dist/schemas/valibot.js" } }, - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "files": [ - "dist", - "package.json", - "LICENSE", - "README.md" - ], + "publishConfig": { + "access": "public" + }, "scripts": { "build": "tsdown", "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", "dev": "pnpm build --watch --no-clean", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -63,7 +64,6 @@ "valibot": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "zod": "catalog:" }, @@ -74,8 +74,5 @@ "zod": { "optional": true } - }, - "publishConfig": { - "access": "public" } } diff --git a/packages/vc/src/types.ts b/packages/vc/src/types.ts index d06b476..05a9a2e 100644 --- a/packages/vc/src/types.ts +++ b/packages/vc/src/types.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ import type { JwtCredentialPayload, Verifiable } from "did-jwt-vc" type Extensible = T & Record diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e6be073..4c1ab90 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,12 +53,6 @@ importers: '@changesets/cli': specifier: 2.29.7 version: 2.29.7(@types/node@24.9.2) - '@ianvs/prettier-plugin-sort-imports': - specifier: 4.7.0 - version: 4.7.0(@prettier/plugin-oxc@0.0.4)(prettier@3.6.2) - '@prettier/plugin-oxc': - specifier: 0.0.4 - version: 0.0.4 '@repo/typescript-config': specifier: workspace:* version: link:tools/typescript-config @@ -68,18 +62,15 @@ importers: dotenv-cli: specifier: 11.0.0 version: 11.0.0 - eslint: - specifier: 9.38.0 - version: 9.38.0(jiti@2.6.1) - prettier: - specifier: 3.6.2 - version: 3.6.2 - prettier-plugin-jsdoc: - specifier: 1.5.0 - version: 1.5.0(prettier@3.6.2) - prettier-plugin-packagejson: - specifier: 2.5.19 - version: 2.5.19(prettier@3.6.2) + oxfmt: + specifier: 0.32.0 + version: 0.32.0 + oxlint: + specifier: 1.47.0 + version: 1.47.0(oxlint-tsgolint@0.12.2) + oxlint-tsgolint: + specifier: 0.12.2 + version: 0.12.2 tsdown: specifier: 0.15.11 version: 0.15.11(typescript@5.9.3) @@ -111,9 +102,6 @@ importers: specifier: 'catalog:' version: 2.29.4(typescript@5.9.3)(zod@3.25.76) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -154,9 +142,6 @@ importers: specifier: 'catalog:' version: 1.1.0(typescript@5.9.3) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -188,9 +173,6 @@ importers: specifier: 'catalog:' version: 1.1.0(typescript@5.9.3) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -231,9 +213,6 @@ importers: specifier: 'catalog:' version: 2.29.4(typescript@5.9.3)(zod@3.25.76) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -253,9 +232,6 @@ importers: specifier: 'catalog:' version: 3.25.4 devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -293,9 +269,6 @@ importers: specifier: 'catalog:' version: 1.1.0(typescript@5.9.3) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -333,9 +306,6 @@ importers: specifier: 'catalog:' version: 1.1.0(typescript@5.9.3) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -361,9 +331,6 @@ importers: specifier: 'catalog:' version: 1.1.0(typescript@5.9.3) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -395,9 +362,6 @@ importers: '@a2a-js/sdk': specifier: 'catalog:' version: 0.2.2 - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -423,9 +387,6 @@ importers: specifier: 'catalog:' version: 1.1.0(typescript@5.9.3) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -460,9 +421,6 @@ importers: '@a2a-js/sdk': specifier: 'catalog:' version: 0.2.2 - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -475,9 +433,6 @@ importers: packages/caip: devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -515,9 +470,6 @@ importers: specifier: 6.0.0 version: 6.0.0 devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -540,9 +492,6 @@ importers: specifier: 8.0.15 version: 8.0.15 devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -568,9 +517,6 @@ importers: specifier: 5.1.0 version: 5.1.0 devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -596,9 +542,6 @@ importers: specifier: 'catalog:' version: 1.1.0(typescript@5.9.3) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../tools/eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../../tools/typescript-config @@ -630,9 +573,6 @@ importers: specifier: 'catalog:' version: 1.1.0(typescript@5.9.3) devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../typescript-config @@ -655,9 +595,6 @@ importers: specifier: 2.1.1 version: 2.1.1 devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../eslint-config '@repo/typescript-config': specifier: workspace:* version: link:../typescript-config @@ -665,36 +602,6 @@ importers: specifier: 1.7.0 version: 1.7.0 - tools/eslint-config: - devDependencies: - '@cspell/eslint-plugin': - specifier: 9.2.2 - version: 9.2.2(eslint@9.38.0(jiti@2.6.1)) - '@eslint/js': - specifier: 9.38.0 - version: 9.38.0 - '@eslint/json': - specifier: 0.13.2 - version: 0.13.2 - '@eslint/markdown': - specifier: 7.5.0 - version: 7.5.0 - eslint-config-prettier: - specifier: 10.1.8 - version: 10.1.8(eslint@9.38.0(jiti@2.6.1)) - eslint-import-resolver-typescript: - specifier: 4.4.4 - version: 4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-import-x: - specifier: 4.16.1 - version: 4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-turbo: - specifier: 2.5.8 - version: 2.5.8(eslint@9.38.0(jiti@2.6.1))(turbo@2.5.8) - typescript-eslint: - specifier: 8.46.2 - version: 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - tools/typescript-config: {} packages: @@ -779,10 +686,6 @@ packages: resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -800,14 +703,6 @@ packages: resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.28.5': - resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.5': resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} @@ -876,227 +771,6 @@ packages: '@changesets/write@0.4.0': resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - '@cspell/cspell-bundled-dicts@9.2.2': - resolution: {integrity: sha512-W3FKgb89DwMuQEVWz0dPH9uZqC8w+ylpbtmXuevflw3SLtGPyllMvf/1T6tcqIkg3KEWoRYFxjpJWyoOjJkZGw==} - engines: {node: '>=20'} - - '@cspell/cspell-pipe@9.2.2': - resolution: {integrity: sha512-YOdbp1uoKMkYy92qxMjoOxcqcR6LEVDus+72C4X9L8eJ2b+CBO3VaVqU16Y7OQGjYMnukYgB6eyTh8YFo9uBRw==} - engines: {node: '>=20'} - - '@cspell/cspell-resolver@9.2.2': - resolution: {integrity: sha512-5tST2xoU8xbXihr1bdQ6pfcScQ3PkFpKKhFGClVfqS0yf/CKYURqzJlRDVjrFZsl+PT6tw/Jdt0E9Wwp1X1Qgw==} - engines: {node: '>=20'} - - '@cspell/cspell-service-bus@9.2.2': - resolution: {integrity: sha512-AxJuw/YPJkz1Ali5mA+OW9y4JiJzb2U7H4pGYq0nRB/mWwI/xtFjuWVkI+BhwrA2P6hHdifu0JdxSLqW4IYpPQ==} - engines: {node: '>=20'} - - '@cspell/cspell-types@9.2.2': - resolution: {integrity: sha512-/1dRFQ3sEY9Yo+f3w0A8MFJ0BOapQc1uFjlMF19c3uoD/e4PpNLpL1qXY4FeLWKDk1D9VT8SL93J+lIwEi5bvg==} - engines: {node: '>=20'} - - '@cspell/dict-ada@4.1.1': - resolution: {integrity: sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==} - - '@cspell/dict-al@1.1.1': - resolution: {integrity: sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==} - - '@cspell/dict-aws@4.0.15': - resolution: {integrity: sha512-aPY7VVR5Os4rz36EaqXBAEy14wR4Rqv+leCJ2Ug/Gd0IglJpM30LalF3e2eJChnjje3vWoEC0Rz3+e5gpZG+Kg==} - - '@cspell/dict-bash@4.2.2': - resolution: {integrity: sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==} - - '@cspell/dict-companies@3.2.7': - resolution: {integrity: sha512-fEyr3LmpFKTaD0LcRhB4lfW1AmULYBqzg4gWAV0dQCv06l+TsA+JQ+3pZJbUcoaZirtgsgT3dL3RUjmGPhUH0A==} - - '@cspell/dict-cpp@6.0.13': - resolution: {integrity: sha512-EFrhN/91tPwadI9m8Rxe65//9gqv+lpZoKtrngzF4DTnw4YAfMLTpykendHps0bz46NZW84/zoY1cxeW2TEPQQ==} - - '@cspell/dict-cryptocurrencies@5.0.5': - resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} - - '@cspell/dict-csharp@4.0.7': - resolution: {integrity: sha512-H16Hpu8O/1/lgijFt2lOk4/nnldFtQ4t8QHbyqphqZZVE5aS4J/zD/WvduqnLY21aKhZS6jo/xF5PX9jyqPKUA==} - - '@cspell/dict-css@4.0.18': - resolution: {integrity: sha512-EF77RqROHL+4LhMGW5NTeKqfUd/e4OOv6EDFQ/UQQiFyWuqkEKyEz0NDILxOFxWUEVdjT2GQ2cC7t12B6pESwg==} - - '@cspell/dict-dart@2.3.1': - resolution: {integrity: sha512-xoiGnULEcWdodXI6EwVyqpZmpOoh8RA2Xk9BNdR7DLamV/QMvEYn8KJ7NlRiTSauJKPNkHHQ5EVHRM6sTS7jdg==} - - '@cspell/dict-data-science@2.0.11': - resolution: {integrity: sha512-Dt+83nVCcF+dQyvFSaZjCKt1H5KbsVJFtH2X7VUfmIzQu8xCnV1fUmkhBzGJ+NiFs99Oy9JA6I9EjeqExzXk7g==} - - '@cspell/dict-django@4.1.5': - resolution: {integrity: sha512-AvTWu99doU3T8ifoMYOMLW2CXKvyKLukPh1auOPwFGHzueWYvBBN+OxF8wF7XwjTBMMeRleVdLh3aWCDEX/ZWg==} - - '@cspell/dict-docker@1.1.16': - resolution: {integrity: sha512-UiVQ5RmCg6j0qGIxrBnai3pIB+aYKL3zaJGvXk1O/ertTKJif9RZikKXCEgqhaCYMweM4fuLqWSVmw3hU164Iw==} - - '@cspell/dict-dotnet@5.0.10': - resolution: {integrity: sha512-ooar8BP/RBNP1gzYfJPStKEmpWy4uv/7JCq6FOnJLeD1yyfG3d/LFMVMwiJo+XWz025cxtkM3wuaikBWzCqkmg==} - - '@cspell/dict-elixir@4.0.8': - resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} - - '@cspell/dict-en-common-misspellings@2.1.7': - resolution: {integrity: sha512-HAWSOoQ+lxdzLaTALhPofKNJdxZ7HAcTZWQNwb7cvGBiKEy182cb96U35602yBPrBsKY/vLxVs6f0E1JTeQjRQ==} - - '@cspell/dict-en-gb-mit@3.1.12': - resolution: {integrity: sha512-KJaJPsTRMXN4sgKHQRMNqqxc7WWZaR5h7+WarIoLUfbEWIQM1FCJiGn2pZX9OLQVBtSnLYo1JVXK1K/Tz3HWEQ==} - - '@cspell/dict-en_us@4.4.22': - resolution: {integrity: sha512-i9AJ6z5kyZU5L/b+UOOp/7dfa7RxhibLXWaexSJclf7V7R+TzwCTLoOZd1wf/5PBnNGkP8xOSaflkpUbtVijFA==} - - '@cspell/dict-filetypes@3.0.14': - resolution: {integrity: sha512-KSXaSMYYNMLLdHEnju1DyRRH3eQWPRYRnOXpuHUdOh2jC44VgQoxyMU7oB3NAhDhZKBPCihabzECsAGFbdKfEA==} - - '@cspell/dict-flutter@1.1.1': - resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} - - '@cspell/dict-fonts@4.0.5': - resolution: {integrity: sha512-BbpkX10DUX/xzHs6lb7yzDf/LPjwYIBJHJlUXSBXDtK/1HaeS+Wqol4Mlm2+NAgZ7ikIE5DQMViTgBUY3ezNoQ==} - - '@cspell/dict-fsharp@1.1.1': - resolution: {integrity: sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==} - - '@cspell/dict-fullstack@3.2.7': - resolution: {integrity: sha512-IxEk2YAwAJKYCUEgEeOg3QvTL4XLlyArJElFuMQevU1dPgHgzWElFevN5lsTFnvMFA1riYsVinqJJX0BanCFEg==} - - '@cspell/dict-gaming-terms@1.1.2': - resolution: {integrity: sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==} - - '@cspell/dict-git@3.0.7': - resolution: {integrity: sha512-odOwVKgfxCQfiSb+nblQZc4ErXmnWEnv8XwkaI4sNJ7cNmojnvogYVeMqkXPjvfrgEcizEEA4URRD2Ms5PDk1w==} - - '@cspell/dict-golang@6.0.24': - resolution: {integrity: sha512-rY7PlC3MsHozmjrZWi0HQPUl0BVCV0+mwK0rnMT7pOIXqOe4tWCYMULDIsEk4F0gbIxb5badd2dkCPDYjLnDgA==} - - '@cspell/dict-google@1.0.9': - resolution: {integrity: sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==} - - '@cspell/dict-haskell@4.0.6': - resolution: {integrity: sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==} - - '@cspell/dict-html-symbol-entities@4.0.4': - resolution: {integrity: sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==} - - '@cspell/dict-html@4.0.12': - resolution: {integrity: sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==} - - '@cspell/dict-java@5.0.12': - resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} - - '@cspell/dict-julia@1.1.1': - resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} - - '@cspell/dict-k8s@1.0.12': - resolution: {integrity: sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==} - - '@cspell/dict-kotlin@1.1.1': - resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} - - '@cspell/dict-latex@4.0.4': - resolution: {integrity: sha512-YdTQhnTINEEm/LZgTzr9Voz4mzdOXH7YX+bSFs3hnkUHCUUtX/mhKgf1CFvZ0YNM2afjhQcmLaR9bDQVyYBvpA==} - - '@cspell/dict-lorem-ipsum@4.0.5': - resolution: {integrity: sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==} - - '@cspell/dict-lua@4.0.8': - resolution: {integrity: sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==} - - '@cspell/dict-makefile@1.0.5': - resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} - - '@cspell/dict-markdown@2.0.12': - resolution: {integrity: sha512-ufwoliPijAgWkD/ivAMC+A9QD895xKiJRF/fwwknQb7kt7NozTLKFAOBtXGPJAB4UjhGBpYEJVo2elQ0FCAH9A==} - peerDependencies: - '@cspell/dict-css': ^4.0.18 - '@cspell/dict-html': ^4.0.12 - '@cspell/dict-html-symbol-entities': ^4.0.4 - '@cspell/dict-typescript': ^3.2.3 - - '@cspell/dict-monkeyc@1.0.11': - resolution: {integrity: sha512-7Q1Ncu0urALI6dPTrEbSTd//UK0qjRBeaxhnm8uY5fgYNFYAG+u4gtnTIo59S6Bw5P++4H3DiIDYoQdY/lha8w==} - - '@cspell/dict-node@5.0.8': - resolution: {integrity: sha512-AirZcN2i84ynev3p2/1NCPEhnNsHKMz9zciTngGoqpdItUb2bDt1nJBjwlsrFI78GZRph/VaqTVFwYikmncpXg==} - - '@cspell/dict-npm@5.2.19': - resolution: {integrity: sha512-fg23oFvKTsGjGB6DkwCUzZrLZPwp+ItSV0UXS+n6JbcH5dj3CP6MDmdwNX6s6oaAovIFKmwFBP73GUqnjMmnpQ==} - - '@cspell/dict-php@4.1.0': - resolution: {integrity: sha512-dTDeabyOj7eFvn2Q4Za3uVXM2+SzeFMqX8ly2P0XTo4AzbCmI2hulFD/QIADwWmwiRrInbbf8cxwFHNIYrXl4w==} - - '@cspell/dict-powershell@5.0.15': - resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} - - '@cspell/dict-public-licenses@2.0.15': - resolution: {integrity: sha512-cJEOs901H13Pfy0fl4dCD1U+xpWIMaEPq8MeYU83FfDZvellAuSo4GqWCripfIqlhns/L6+UZEIJSOZnjgy7Wg==} - - '@cspell/dict-python@4.2.21': - resolution: {integrity: sha512-M9OgwXWhpZqEZqKU2psB2DFsT8q5SwEahkQeIpNIRWIErjwG7I9yYhhfvPz6s5gMCMhhb3hqcPJTnmdgqGrQyg==} - - '@cspell/dict-r@2.1.1': - resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} - - '@cspell/dict-ruby@5.0.9': - resolution: {integrity: sha512-H2vMcERMcANvQshAdrVx0XoWaNX8zmmiQN11dZZTQAZaNJ0xatdJoSqY8C8uhEMW89bfgpN+NQgGuDXW2vmXEw==} - - '@cspell/dict-rust@4.0.12': - resolution: {integrity: sha512-z2QiH+q9UlNhobBJArvILRxV8Jz0pKIK7gqu4TgmEYyjiu1TvnGZ1tbYHeu9w3I/wOP6UMDoCBTty5AlYfW0mw==} - - '@cspell/dict-scala@5.0.8': - resolution: {integrity: sha512-YdftVmumv8IZq9zu1gn2U7A4bfM2yj9Vaupydotyjuc+EEZZSqAafTpvW/jKLWji2TgybM1L2IhmV0s/Iv9BTw==} - - '@cspell/dict-shell@1.1.2': - resolution: {integrity: sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==} - - '@cspell/dict-software-terms@5.1.10': - resolution: {integrity: sha512-ffnsKiDL5acUerJ/lDiIT0y/tfO9Jk1yp8RpAl0diOUj5iQuT4hXVfgQSx7ppseXWAGN+UgTRYWiKDb1zM3lqg==} - - '@cspell/dict-sql@2.2.1': - resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} - - '@cspell/dict-svelte@1.0.7': - resolution: {integrity: sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==} - - '@cspell/dict-swift@2.0.6': - resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} - - '@cspell/dict-terraform@1.1.3': - resolution: {integrity: sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==} - - '@cspell/dict-typescript@3.2.3': - resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==} - - '@cspell/dict-vue@3.0.5': - resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} - - '@cspell/dynamic-import@9.2.2': - resolution: {integrity: sha512-RHQLp0iYcWuK0MGiUBA6dgEOCdI29kZTiBRVcJM/Pzvhvs8j9pzBTkMesZAJ7XOSFz2kU+skRMBsFd774dmYTA==} - engines: {node: '>=20'} - - '@cspell/eslint-plugin@9.2.2': - resolution: {integrity: sha512-RBZ0zeH4AENs7bOey9dUfvPywdK38RFiUolSLw7jA4QBf8dyEfua+qBv6ECaVSjGbp/jR1cgye3KykcNWKnYFQ==} - engines: {node: '>=20'} - peerDependencies: - eslint: ^7 || ^8 || ^9 - - '@cspell/filetypes@9.2.2': - resolution: {integrity: sha512-oM+cqipbZ4PNxQcKP9sKOeRKBG+oM3NKO3To1FyxYxvnUG7DukW2yH6BS0/GUY7qK+oSftuq5d6DXEAl9wzbEQ==} - engines: {node: '>=20'} - - '@cspell/strong-weak-map@9.2.2': - resolution: {integrity: sha512-Z7rd7NwHaoH/d/Ds97Rv042WS9PgpVdqgO2X0ehYZmgj2E0LIq2MTkIJMheUrSn37D0PW/suroKh6hN15pJtpQ==} - engines: {node: '>=20'} - - '@cspell/url@9.2.2': - resolution: {integrity: sha512-gvLprhrArvLP/rnC8b766dA80EXwBbzXqb9tNDRk1esQV7d3uS1Ftk1970MRlAfLg1pG6V+3C4UrB6WOB/rMCQ==} - engines: {node: '>=20'} - '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} @@ -1405,64 +1079,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/config-array@0.21.1': - resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.4.2': - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.15.2': - resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.16.0': - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.17.0': - resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.38.0': - resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/json@0.13.2': - resolution: {integrity: sha512-yWLyRE18rHgHXhWigRpiyv1LDPkvWtC6oa7QHXW7YdP6gosJoq7BiLZW2yCs9U7zN7X4U3ZeOJjepA10XAOIMw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/markdown@7.5.0': - resolution: {integrity: sha512-reKloVSpytg4ene3yviPJcUO7zglpNn9kWNRiSQ/8gBbBFMKW5Q042LaCi3wv2vVtbPNnLrl6WvhRAHeBd43QA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.3.5': - resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.4.1': - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} @@ -1490,44 +1106,6 @@ packages: '@standard-schema/spec': 1.0.0 hono: '>=3.9.0' - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/momoa@3.3.10': - resolution: {integrity: sha512-KWiFQpSAqEIyrTXko3hFNLeQvSK8zXlJQzhhxsyVn58WFRYXST99b3Nqnu+ttOtjds2Pl2grUHGpe2NzhPynuQ==} - engines: {node: '>=18'} - - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} - - '@ianvs/prettier-plugin-sort-imports@4.7.0': - resolution: {integrity: sha512-soa2bPUJAFruLL4z/CnMfSEKGznm5ebz29fIa9PxYtu8HHyLKNE1NXAs6dylfw1jn/ilEIfO2oLLN6uAafb7DA==} - peerDependencies: - '@prettier/plugin-oxc': ^0.0.4 - '@vue/compiler-sfc': 2.7.x || 3.x - content-tag: ^4.0.0 - prettier: 2 || 3 || ^4.0.0-0 - prettier-plugin-ember-template-tag: ^2.1.0 - peerDependenciesMeta: - '@prettier/plugin-oxc': - optional: true - '@vue/compiler-sfc': - optional: true - content-tag: - optional: true - prettier-plugin-ember-template-tag: - optional: true - '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -1776,14 +1354,6 @@ packages: '@types/node': optional: true - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -1901,6 +1471,7 @@ packages: '@mintlify/cli@4.0.787': resolution: {integrity: sha512-BZ2YdBdrBZ7q2/YhLLGqHi50lLrcjqF4d8MRPrjoAQg02VAQQh3ZFlM+12pTim67+fESqJPckvp457hFJQlDrQ==} engines: {node: '>=18.0.0'} + deprecated: This version is deprecated. Please upgrade to version 4.0.423 or later. hasBin: true '@mintlify/common@1.0.589': @@ -1943,9 +1514,6 @@ packages: '@multiformats/base-x@4.0.1': resolution: {integrity: sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==} - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.0.7': resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} @@ -1991,104 +1559,270 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@oxc-parser/binding-android-arm64@0.74.0': - resolution: {integrity: sha512-lgq8TJq22eyfojfa2jBFy2m66ckAo7iNRYDdyn9reXYA3I6Wx7tgGWVx1JAp1lO+aUiqdqP/uPlDaETL9tqRcg==} - engines: {node: '>=20.0.0'} + '@oxc-project/runtime@0.95.0': + resolution: {integrity: sha512-qJS5pNepwMGnafO9ayKGz7rfPQgUBuunHpnP1//9Qa0zK3oT3t1EhT+I+pV9MUA+ZKez//OFqxCxf1vijCKb2Q==} + engines: {node: ^20.19.0 || >=22.12.0} + + '@oxc-project/types@0.95.0': + resolution: {integrity: sha512-vACy7vhpMPhjEJhULNxrdR0D943TkA/MigMpJCHmBHvMXxRStRi/dPtTlfQ3uDwWSzRpT8z+7ImjZVf8JWBocQ==} + + '@oxfmt/binding-android-arm-eabi@0.32.0': + resolution: {integrity: sha512-DpVyuVzgLH6/MvuB/YD3vXO9CN/o9EdRpA0zXwe/tagP6yfVSFkFWkPqTROdqp0mlzLH5Yl+/m+hOrcM601EbA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.32.0': + resolution: {integrity: sha512-w1cmNXf9zs0vKLuNgyUF3hZ9VUAS1hBmQGndYJv1OmcVqStBtRTRNxSWkWM0TMkrA9UbvIvM9gfN+ib4Wy6lkQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-parser/binding-darwin-arm64@0.74.0': - resolution: {integrity: sha512-xbY/io/hkARggbpYEMFX6CwFzb7f4iS6WuBoBeZtdqRWfIEi7sm/uYWXfyVeB8uqOATvJ07WRFC2upI8PSI83g==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-darwin-arm64@0.32.0': + resolution: {integrity: sha512-m6wQojz/hn94XdZugFPtdFbOvXbOSYEqPsR2gyLyID3BvcrC2QsJyT1o3gb4BZEGtZrG1NiKVGwDRLM0dHd2mg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.74.0': - resolution: {integrity: sha512-FIj2gAGtFaW0Zk+TnGyenMUoRu1ju+kJ/h71D77xc1owOItbFZFGa+4WSVck1H8rTtceeJlK+kux+vCjGFCl9Q==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-darwin-x64@0.32.0': + resolution: {integrity: sha512-hN966Uh6r3Erkg2MvRcrJWaB6QpBzP15rxWK/QtkUyD47eItJLsAQ2Hrm88zMIpFZ3COXZLuN3hqgSlUtvB0Xw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.74.0': - resolution: {integrity: sha512-W1I+g5TJg0TRRMHgEWNWsTIfe782V3QuaPgZxnfPNmDMywYdtlzllzclBgaDq6qzvZCCQc/UhvNb37KWTCTj8A==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-freebsd-x64@0.32.0': + resolution: {integrity: sha512-g5UZPGt8tJj263OfSiDGdS54HPa0KgFfspLVAUivVSdoOgsk6DkwVS9nO16xQTDztzBPGxTvrby8WuufF0g86Q==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.74.0': - resolution: {integrity: sha512-gxqkyRGApeVI8dgvJ19SYe59XASW3uVxF1YUgkE7peW/XIg5QRAOVTFKyTjI9acYuK1MF6OJHqx30cmxmZLtiQ==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-linux-arm-gnueabihf@0.32.0': + resolution: {integrity: sha512-F4ZY83/PVQo9ZJhtzoMqbmjqEyTVEZjbaw4x1RhzdfUhddB41ZB2Vrt4eZi7b4a4TP85gjPRHgQBeO0c1jbtaw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.74.0': - resolution: {integrity: sha512-jpnAUP4Fa93VdPPDzxxBguJmldj/Gpz7wTXKFzpAueqBMfZsy9KNC+0qT2uZ9HGUDMzNuKw0Se3bPCpL/gfD2Q==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-linux-arm-musleabihf@0.32.0': + resolution: {integrity: sha512-olR37eG16Lzdj9OBSvuoT5RxzgM5xfQEHm1OEjB3M7Wm4KWa5TDWIT13Aiy74GvAN77Hq1+kUKcGVJ/0ynf75g==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.74.0': - resolution: {integrity: sha512-fcWyM7BNfCkHqIf3kll8fJctbR/PseL4RnS2isD9Y3FFBhp4efGAzhDaxIUK5GK7kIcFh1P+puIRig8WJ6IMVQ==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-linux-arm64-gnu@0.32.0': + resolution: {integrity: sha512-eZhk6AIjRCDeLoXYBhMW7qq/R1YyVi+tGnGfc3kp7AZQrMsFaWtP/bgdCJCTNXMpbMwymtVz0qhSQvR5w2sKcg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-arm64-musl@0.74.0': - resolution: {integrity: sha512-AMY30z/C77HgiRRJX7YtVUaelKq1ex0aaj28XoJu4SCezdS8i0IftUNTtGS1UzGjGZB8zQz5SFwVy4dRu4GLwg==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-linux-arm64-musl@0.32.0': + resolution: {integrity: sha512-UYiqO9MlipntFbdbUKOIo84vuyzrK4TVIs7Etat91WNMFSW54F6OnHq08xa5ZM+K9+cyYMgQPXvYCopuP+LyKw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-riscv64-gnu@0.74.0': - resolution: {integrity: sha512-/RZAP24TgZo4vV/01TBlzRqs0R7E6xvatww4LnmZEBBulQBU/SkypDywfriFqWuFoa61WFXPV7sLcTjJGjim/w==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-linux-ppc64-gnu@0.32.0': + resolution: {integrity: sha512-IDH/fxMv+HmKsMtsjEbXqhScCKDIYp38sgGEcn0QKeXMxrda67PPZA7HMfoUwEtFUG+jsO1XJxTrQsL+kQ90xQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxfmt/binding-linux-riscv64-gnu@0.32.0': + resolution: {integrity: sha512-bQFGPDa0buYWJFeK2I7ah8wRZjrAgamaG2OAGv+Ua5UMYEnHxmHcv+r8lWUUrwP2oqQGvp1SB8JIVtBbYuAueQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxfmt/binding-linux-riscv64-musl@0.32.0': + resolution: {integrity: sha512-3vFp9DW1ItEKWltADzCFqG5N7rYFToT4ztlhg8wALoo2E2VhveLD88uAF4FF9AxD9NhgHDGmPCV+WZl/Qlj8cQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] - '@oxc-parser/binding-linux-s390x-gnu@0.74.0': - resolution: {integrity: sha512-620J1beNAlGSPBD+Msb3ptvrwxu04B8iULCH03zlf0JSLy/5sqlD6qBs0XUVkUJv1vbakUw1gfVnUQqv0UTuEg==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-linux-s390x-gnu@0.32.0': + resolution: {integrity: sha512-Fub2y8S9ImuPzAzpbgkoz/EVTWFFBolxFZYCMRhRZc8cJZI2gl/NlZswqhvJd/U0Jopnwgm/OJ2x128vVzFFWA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@oxc-parser/binding-linux-x64-gnu@0.74.0': - resolution: {integrity: sha512-WBFgQmGtFnPNzHyLKbC1wkYGaRIBxXGofO0+hz1xrrkPgbxbJS1Ukva1EB8sPaVBBQ52Bdc2GjLSp721NWRvww==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-linux-x64-gnu@0.32.0': + resolution: {integrity: sha512-XufwsnV3BF81zO2ofZvhT4FFaMmLTzZEZnC9HpFz/quPeg9C948+kbLlZnsfjmp+1dUxKMCpfmRMqOfF4AOLsA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-parser/binding-linux-x64-musl@0.74.0': - resolution: {integrity: sha512-y4mapxi0RGqlp3t6Sm+knJlAEqdKDYrEue2LlXOka/F2i4sRN0XhEMPiSOB3ppHmvK4I2zY2XBYTsX1Fel0fAg==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-linux-x64-musl@0.32.0': + resolution: {integrity: sha512-u2f9tC2qYfikKmA2uGpnEJgManwmk0ZXWs5BB4ga4KDu2JNLdA3i634DGHeMLK9wY9+iRf3t7IYpgN3OVFrvDw==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@oxc-parser/binding-wasm32-wasi@0.74.0': - resolution: {integrity: sha512-yDS9bRDh5ymobiS2xBmjlrGdUuU61IZoJBaJC5fELdYT5LJNBXlbr3Yc6m2PWfRJwkH6Aq5fRvxAZ4wCbkGa8w==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] + '@oxfmt/binding-openharmony-arm64@0.32.0': + resolution: {integrity: sha512-5ZXb1wrdbZ1YFXuNXNUCePLlmLDy4sUt4evvzD4Cgumbup5wJgS9PIe5BOaLywUg9f1wTH6lwltj3oT7dFpIGA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] - '@oxc-parser/binding-win32-arm64-msvc@0.74.0': - resolution: {integrity: sha512-XFWY52Rfb4N5wEbMCTSBMxRkDLGbAI9CBSL24BIDywwDJMl31gHEVlmHdCDRoXAmanCI6gwbXYTrWe0HvXJ7Aw==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-win32-arm64-msvc@0.32.0': + resolution: {integrity: sha512-IGSMm/Agq+IA0++aeAV/AGPfjcBdjrsajB5YpM3j7cMcwoYgUTi/k2YwAmsHH3ueZUE98pSM/Ise2J7HtyRjOA==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.74.0': - resolution: {integrity: sha512-1D3x6iU2apLyfTQHygbdaNbX3nZaHu4yaXpD7ilYpoLo7f0MX0tUuoDrqJyJrVGqvyXgc0uz4yXz9tH9ZZhvvg==} - engines: {node: '>=20.0.0'} + '@oxfmt/binding-win32-ia32-msvc@0.32.0': + resolution: {integrity: sha512-H/9gsuqXmceWMsVoCPZhtJG2jLbnBeKr7xAXm2zuKpxLVF7/2n0eh7ocOLB6t+L1ARE76iORuUsRMnuGjj8FjQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.32.0': + resolution: {integrity: sha512-fF8VIOeligq+mA6KfKvWtFRXbf0EFy73TdR6ZnNejdJRM8VWN1e3QFhYgIwD7O8jBrQsd7EJbUpkAr/YlUOokg==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxc-project/runtime@0.95.0': - resolution: {integrity: sha512-qJS5pNepwMGnafO9ayKGz7rfPQgUBuunHpnP1//9Qa0zK3oT3t1EhT+I+pV9MUA+ZKez//OFqxCxf1vijCKb2Q==} + '@oxlint-tsgolint/darwin-arm64@0.12.2': + resolution: {integrity: sha512-XIfavTqkJPGYi/98z7ZCkZvXq2AccMAAB0iwvKDRTQqiweMXVUyeUdx46phCHHH1PgmIVJtVfysThkHq2xCyrw==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@0.12.2': + resolution: {integrity: sha512-tytsvP6zmNShRNDo4GgQartOXmd4GPd+TylCUMdO/iWl9PZVOgRyswWbYVTNgn85Cib/aY2q3Uu+jOw+QlbxvQ==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@0.12.2': + resolution: {integrity: sha512-3W38yJuF7taEquhEuD6mYQyCeWNAlc1pNPjFkspkhLKZVgbrhDA4V6fCxLDDRvrTHde0bXPmFvuPlUq5pSePgA==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@0.12.2': + resolution: {integrity: sha512-EjcEspeeV0NmaopEp4wcN5ntQP9VCJJDrTvzOjMP4W6ajz18M+pni9vkKvmcPIpRa/UmWobeFgKoVd/KGueeuQ==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@0.12.2': + resolution: {integrity: sha512-a9L7iA5K/Ht/i8d9+7RTp6hbPa4cyXP0MdySVXAO6vczpL/4ildfY9Hr2m2wqL12uK6xe/uVABpVTrqay/wV+g==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@0.12.2': + resolution: {integrity: sha512-Cvt40UbTf5ib12DjGN+mMGOnjWa4Bc6Y7KEaXXp9qzckvs3HpNk2wSwMV3gnuR8Ipx4hkzkzrgzD0BAUsySAfA==} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.47.0': + resolution: {integrity: sha512-UHqo3te9K/fh29brCuQdHjN+kfpIi9cnTPABuD5S9wb9ykXYRGTOOMVuSV/CK43sOhU4wwb2nT1RVjcbrrQjFw==} engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] - '@oxc-project/types@0.74.0': - resolution: {integrity: sha512-KOw/RZrVlHGhCXh1RufBFF7Nuo7HdY5w1lRJukM/igIl6x9qtz8QycDvZdzb4qnHO7znrPyo2sJrFJK2eKHgfQ==} + '@oxlint/binding-android-arm64@1.47.0': + resolution: {integrity: sha512-xh02lsTF1TAkR+SZrRMYHR/xCx8Wg2MAHxJNdHVpAKELh9/yE9h4LJeqAOBbIb3YYn8o/D97U9VmkvkfJfrHfw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] - '@oxc-project/types@0.95.0': - resolution: {integrity: sha512-vACy7vhpMPhjEJhULNxrdR0D943TkA/MigMpJCHmBHvMXxRStRi/dPtTlfQ3uDwWSzRpT8z+7ImjZVf8JWBocQ==} + '@oxlint/binding-darwin-arm64@1.47.0': + resolution: {integrity: sha512-OSOfNJqabOYbkyQDGT5pdoL+05qgyrmlQrvtCO58M4iKGEQ/xf3XkkKj7ws+hO+k8Y4VF4zGlBsJlwqy7qBcHA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.47.0': + resolution: {integrity: sha512-hP2bOI4IWNS+F6pVXWtRshSTuJ1qCRZgDgVUg6EBUqsRy+ExkEPJkx+YmIuxgdCduYK1LKptLNFuQLJP8voPbQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.47.0': + resolution: {integrity: sha512-F55jIEH5xmGu7S661Uho8vGiLFk0bY3A/g4J8CTKiLJnYu/PSMZ2WxFoy5Hji6qvFuujrrM9Q8XXbMO0fKOYPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.47.0': + resolution: {integrity: sha512-wxmOn/wns/WKPXUC1fo5mu9pMZPVOu8hsynaVDrgmmXMdHKS7on6bA5cPauFFN9tJXNdsjW26AK9lpfu3IfHBQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.47.0': + resolution: {integrity: sha512-KJTmVIA/GqRlM2K+ZROH30VMdydEU7bDTY35fNg3tOPzQRIs2deLZlY/9JWwdWo1F/9mIYmpbdCmPqtKhWNOPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.47.0': + resolution: {integrity: sha512-PF7ELcFg1GVlS0X0ZB6aWiXobjLrAKer3T8YEkwIoO8RwWiAMkL3n3gbleg895BuZkHVlJ2kPRUwfrhHrVkD1A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxlint/binding-linux-arm64-musl@1.47.0': + resolution: {integrity: sha512-4BezLRO5cu0asf0Jp1gkrnn2OHiXrPPPEfBTxq1k5/yJ2zdGGTmZxHD2KF2voR23wb8Elyu3iQawXo7wvIZq0Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxlint/binding-linux-ppc64-gnu@1.47.0': + resolution: {integrity: sha512-aI5ds9jq2CPDOvjeapiIj48T/vlWp+f4prkxs+FVzrmVN9BWIj0eqeJ/hV8WgXg79HVMIz9PU6deI2ki09bR1w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxlint/binding-linux-riscv64-gnu@1.47.0': + resolution: {integrity: sha512-mO7ycp9Elvgt5EdGkQHCwJA6878xvo9tk+vlMfT1qg++UjvOMB8INsOCQIOH2IKErF/8/P21LULkdIrocMw9xA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxlint/binding-linux-riscv64-musl@1.47.0': + resolution: {integrity: sha512-24D0wsYT/7hDFn3Ow32m3/+QT/1ZwrUhShx4/wRDAmz11GQHOZ1k+/HBuK/MflebdnalmXWITcPEy4BWTi7TCA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxlint/binding-linux-s390x-gnu@1.47.0': + resolution: {integrity: sha512-8tPzPne882mtML/uy3mApvdCyuVOpthJ7xUv3b67gVfz63hOOM/bwO0cysSkPyYYFDFRn6/FnUb7Jhmsesntvg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxlint/binding-linux-x64-gnu@1.47.0': + resolution: {integrity: sha512-q58pIyGIzeffEBhEgbRxLFHmHfV9m7g1RnkLiahQuEvyjKNiJcvdHOwKH2BdgZxdzc99Cs6hF5xTa86X40WzPw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxlint/binding-linux-x64-musl@1.47.0': + resolution: {integrity: sha512-e7DiLZtETZUCwTa4EEHg9G+7g3pY+afCWXvSeMG7m0TQ29UHHxMARPaEQUE4mfKgSqIWnJaUk2iZzRPMRdga5g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxlint/binding-openharmony-arm64@1.47.0': + resolution: {integrity: sha512-3AFPfQ0WKMleT/bKd7zsks3xoawtZA6E/wKf0DjwysH7wUiMMJkNKXOzYq1R/00G98JFgSU1AkrlOQrSdNNhlg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.47.0': + resolution: {integrity: sha512-cLMVVM6TBxp+N7FldQJ2GQnkcLYEPGgiuEaXdvhgvSgODBk9ov3jed+khIXSAWtnFOW0wOnG3RjwqPh0rCuheA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.47.0': + resolution: {integrity: sha512-VpFOSzvTnld77/Edje3ZdHgZWnlTb5nVWXyTgjD3/DKF/6t5bRRbwn3z77zOdnGy44xAMvbyAwDNOSeOdVUmRA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.47.0': + resolution: {integrity: sha512-+q8IWptxXx2HMTM6JluR67284t0h8X/oHJgqpxH1siowxPMqZeIpAcWCUq+tY+Rv2iQK8TUugjZnSBQAVV5CmA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -2098,10 +1832,6 @@ packages: resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@prettier/plugin-oxc@0.0.4': - resolution: {integrity: sha512-UGXe+g/rSRbglL0FOJiar+a+nUrst7KaFmsg05wYbKiInGWP6eAj/f8A2Uobgo5KxEtb2X10zeflNH6RK2xeIQ==} - engines: {node: '>=14'} - '@puppeteer/browsers@2.3.0': resolution: {integrity: sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA==} engines: {node: '>=18'} @@ -3028,65 +2758,6 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.46.2': - resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.46.2 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/parser@8.46.2': - resolution: {integrity: sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/project-service@8.46.2': - resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/scope-manager@8.46.2': - resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.46.2': - resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/type-utils@8.46.2': - resolution: {integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/types@8.46.2': - resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.46.2': - resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/utils@8.46.2': - resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/visitor-keys@8.46.2': - resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript/vfs@1.6.2': resolution: {integrity: sha512-hoBwJwcbKHmvd2QVebiytN1aELvpk9B74B4L1mFm/XT1Q/VOYAWl2vQ9AWRFtQq8zmz6enTpfTV8WRc4ATjW/g==} peerDependencies: @@ -3095,101 +2766,6 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} - cpu: [ppc64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} - cpu: [s390x] - os: [linux] - - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} - cpu: [x64] - os: [win32] - '@valibot/to-json-schema@1.3.0': resolution: {integrity: sha512-82Vv6x7sOYhv5YmTRgSppSqj1nn2pMCk5BqCMGWYp0V/fq+qirrbGncqZAtZ09/lrO40ne/7z8ejwE728aVreg==} peerDependencies: @@ -3308,9 +2884,6 @@ packages: ajv: optional: true - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -3378,9 +2951,6 @@ packages: array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - array-timsort@1.0.3: - resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} - array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -3505,9 +3075,6 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - binary-searching@2.0.5: - resolution: {integrity: sha512-v4N2l3RxL+m4zDxyxz3Ne2aTmiPn8ZUpKFpdPtO+ItW1NcTCXA7JeHG5GMBSvoKSkQZ9ycS+EouDVxYB9ufKWA==} - bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -3594,10 +3161,6 @@ packages: resolution: {integrity: sha512-aUTnJc/JipRzJrNADXVvpVqi6CO0dn3nx4EVPxijri+fj3LUUDyZQOgVeW54Ob3Y1Xh9Iz8f+CgaCl8v0mn9bA==} engines: {node: '>=18'} - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - chalk@5.6.2: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} @@ -3645,10 +3208,6 @@ packages: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} engines: {node: '>=12'} - clear-module@4.1.2: - resolution: {integrity: sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==} - engines: {node: '>=8'} - cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -3721,14 +3280,6 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - comment-json@4.4.1: - resolution: {integrity: sha512-r1To31BQD5060QdkC+Iheai7gHwoSZobzunqkf2/kQ6xIAfJyrKNAFUwdKvkK7Qgu7pVTKQEa7ok7Ed3ycAJgg==} - engines: {node: '>= 6'} - - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -3755,54 +3306,22 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - cspell-config-lib@9.2.2: - resolution: {integrity: sha512-Fp3jdFxb5gxcQP146TfNVmDqXKfm3xmcEUr1K829DmAFwhc7s+/pCRjhBPoGfQt6U7ugpxjkSx2gGKSbLhp7Mg==} - engines: {node: '>=20'} - - cspell-dictionary@9.2.2: - resolution: {integrity: sha512-lnoCFoCAaiFJi+Hz22t+tdTj76jyTA76EYFKhmf/dbj5UO6kVy8by08uFfUbbMaC9Oi09YHnI62P/e+LBx1v8Q==} - engines: {node: '>=20'} - - cspell-glob@9.2.2: - resolution: {integrity: sha512-6mhUk4iLu5YzY9PE86ZyAjNFjM7TD8Oh4btJ7ZV+edzJjdVjFugXWyefPXCGNfuvpaJqpuoLDwMvNHJxUmLwbg==} - engines: {node: '>=20'} - - cspell-grammar@9.2.2: - resolution: {integrity: sha512-m0aozo5gjZYL5Vm3/9D0/yLZJTsVJAP8VeRVljN4u5T7w+WY+LsnvKSZhnkOvsT3kCJDhcKEkMVkCo8d/7EcAQ==} - engines: {node: '>=20'} - hasBin: true - - cspell-io@9.2.2: - resolution: {integrity: sha512-Rpky4woeB6/1VUCk7DtRm94A6c5XRbhcj5dUZh851EpZ0ItEz3S9+MhkX8g1sTVkDg6Hln1pu+Nbm9dFIpGkGA==} - engines: {node: '>=20'} - - cspell-lib@9.2.2: - resolution: {integrity: sha512-ksy+5vCSZz7ECUDlLA8ZGNEcWmnzl5bMe4IEPHAMaPFY3iWNsG7dXBrae1dj/b/3HqVqOdXPdwjnGAyZciissg==} - engines: {node: '>=20'} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true - cspell-trie-lib@9.2.2: - resolution: {integrity: sha512-84L0Or6xkfnDMmxx2BtuaqsM4LOVCgnG4ZzMMgwQJU+9nSOAHs0ULNWQTHLbsCF+FFG/siILpUkIc3z+UxjGFw==} - engines: {node: '>=20'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -3880,9 +3399,6 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} @@ -3930,10 +3446,6 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-indent@7.0.2: - resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} - engines: {node: '>=12.20'} - detect-libc@2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} engines: {node: '>=8'} @@ -3942,10 +3454,6 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - detect-newline@4.0.1: - resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} @@ -4007,10 +3515,6 @@ packages: resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==} engines: {node: '>=12'} - dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} - engines: {node: '>=12'} - dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -4179,10 +3683,6 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} @@ -4256,10 +3756,6 @@ packages: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -4269,92 +3765,11 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-import-context@0.1.9: - resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true - - eslint-import-resolver-typescript@4.4.4: - resolution: {integrity: sha512-1iM2zeBvrYmUNTj2vSC/90JTHDth+dfOfiNKkxApWRsTJYNrc8rOdxxIf5vazX+BiAXTeOT0UvWpGI/7qIWQOw==} - engines: {node: ^16.17.0 || >=18.6.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - - eslint-plugin-import-x@4.16.1: - resolution: {integrity: sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/utils': ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 - eslint-import-resolver-node: '*' - peerDependenciesMeta: - '@typescript-eslint/utils': - optional: true - eslint-import-resolver-node: - optional: true - - eslint-plugin-turbo@2.5.8: - resolution: {integrity: sha512-bVjx4vTH0oTKIyQ7EGFAXnuhZMrKIfu17qlex/dps7eScPnGQLJ3r1/nFq80l8xA+8oYjsSirSQ2tXOKbz3kEw==} - peerDependencies: - eslint: '>6.6.0' - turbo: '>2.0.0' - - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.38.0: - resolution: {integrity: sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -4428,10 +3843,6 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-equals@5.3.2: - resolution: {integrity: sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ==} - engines: {node: '>=6.0.0'} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -4439,12 +3850,6 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-memoize@2.5.2: resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} @@ -4485,10 +3890,6 @@ packages: engines: {node: '>= 0.4.0'} hasBin: true - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -4504,17 +3905,6 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} @@ -4597,10 +3987,6 @@ packages: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} - gensequence@7.0.0: - resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} - engines: {node: '>=18'} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -4640,15 +4026,9 @@ packages: resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} engines: {node: '>= 14'} - git-hooks-list@4.1.1: - resolution: {integrity: sha512-cmP497iLq54AZnv4YRAEMnEyQ1eIn4tGKbmswqwmFV4GBnAqE8NLtWxxdXa++AalfgL5EBH4IxTPyquEuGY/jA==} - github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -4659,16 +4039,9 @@ packages: glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - global-directory@4.0.1: - resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} - engines: {node: '>=18'} - - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -4695,9 +4068,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} @@ -4706,10 +4076,6 @@ packages: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -4845,10 +4211,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} @@ -4856,13 +4218,6 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - indent-string@5.0.0: resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} engines: {node: '>=12'} @@ -4873,10 +4228,6 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@4.1.1: - resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ink-spinner@5.0.0: resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==} engines: {node: '>=14.16'} @@ -4957,9 +4308,6 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} - is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -5154,18 +4502,12 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - jsonc-parser@2.2.1: resolution: {integrity: sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==} @@ -5218,10 +4560,6 @@ packages: resolution: {integrity: sha512-KZ9W9nWDT7rF7Dazg8xyLHGLrmpgq2nVNFUckhqdW3szVP6YhCpp/RAnpmVExA9JvrMynjwSLVrEj3AepHR6ew==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - libsql@0.5.22: resolution: {integrity: sha512-NscWthMQt7fpU8lqd7LXMvT9pi+KhhmTHAJWUB/Lj6MWa0MKFv0F2V4C6WKKpjCVZl0VwcDz4nOI3CyaT1DDiA==} cpu: [x64, arm64, wasm32, arm] @@ -5238,13 +4576,6 @@ packages: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -5511,10 +4842,6 @@ packages: resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - minimatch@10.1.1: - resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} - engines: {node: 20 || >=22} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -5544,6 +4871,7 @@ packages: mintlify@4.2.183: resolution: {integrity: sha512-g+DKtDxvmyuEnGKqIeAViy58qpWNQ9EPcjFca9tnJEAGAKb89+NkX32bc2my5RSPBQgYeQ4DSIJkwfvPwp5KHA==} engines: {node: '>=18.0.0'} + deprecated: This version is deprecated. Please upgrade to version 4.0.423 or later. hasBin: true mitt@3.0.1: @@ -5593,14 +4921,6 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5710,10 +5030,6 @@ packages: openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} @@ -5729,9 +5045,24 @@ packages: typescript: optional: true - oxc-parser@0.74.0: - resolution: {integrity: sha512-2tDN/ttU8WE6oFh8EzKNam7KE7ZXSG5uXmvX85iNzxdJfMssDWcj3gpYzZi1E04XuE7m3v1dVWl/8BE886vPGw==} - engines: {node: '>=20.0.0'} + oxfmt@0.32.0: + resolution: {integrity: sha512-KArQhGzt/Y8M1eSAX98Y8DLtGYYDQhkR55THUPY5VNcpFQ+9nRZkL3ULXhagHMD2hIvjy8JSeEQEP5/yYJSrLA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + oxlint-tsgolint@0.12.2: + resolution: {integrity: sha512-IFiOhYZfSgiHbBznTZOhFpEHpsZFSP0j7fVRake03HEkgH0YljnTFDNoRkGWsTrnrHr7nRIomSsF4TnCI/O+kQ==} + hasBin: true + + oxlint@1.47.0: + resolution: {integrity: sha512-v7xkK1iv1qdvTxJGclM97QzN8hHs5816AneFAQ0NGji1BMUquhiDAhXpMwp8+ls16uRVJtzVHxP9pAAXblDeGA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.11.2' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true p-any@4.0.0: resolution: {integrity: sha512-S/B50s+pAVe0wmEZHmBs/9yJXeZ5KhHzOsgKzt0hRdgkoR3DxW9ts46fcsWi/r3VnzsnkKS7q4uimze+zjdryw==} @@ -5749,18 +5080,10 @@ packages: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - p-map@2.1.0: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} @@ -5798,10 +5121,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parent-module@2.0.0: - resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} - engines: {node: '>=8'} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -5934,34 +5253,11 @@ packages: engines: {node: '>=10'} hasBin: true - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-plugin-jsdoc@1.5.0: - resolution: {integrity: sha512-Fehp5qkFQhNFcxUilDPEcqHX8AdP6oGyCRLatqRc0gLXv3qOtndTnnUxfHCYc26I4Lc1A4lVozAtWEE8o7ubUA==} - engines: {node: '>=14.13.1 || >=16.0.0'} - peerDependencies: - prettier: ^3.0.0 - - prettier-plugin-packagejson@2.5.19: - resolution: {integrity: sha512-Qsqp4+jsZbKMpEGZB1UP1pxeAT8sCzne2IwnKkr+QhUe665EXUo3BAvTf1kAPCqyMv9kg3ZmO0+7eOni/C6Uag==} - peerDependencies: - prettier: '>= 1.16.0' - peerDependenciesMeta: - prettier: - optional: true - prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true - prettier@3.6.2: - resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} - engines: {node: '>=14'} - hasBin: true - progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -5990,10 +5286,6 @@ packages: pump@3.0.3: resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - puppeteer-core@22.15.0: resolution: {integrity: sha512-cHArnywCiAAVXa3t4GGL2vttNxh7GqXtIYGym99egkNJ3oG//wL9LkvO4WE8W1TJe95t1F1ocu9X4xWaGsOKOA==} engines: {node: '>=18'} @@ -6414,10 +5706,6 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - smol-toml@1.4.2: - resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} - engines: {node: '>= 18'} - socket.io-adapter@2.5.5: resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} @@ -6437,14 +5725,6 @@ packages: resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - - sort-package-json@3.4.0: - resolution: {integrity: sha512-97oFRRMM2/Js4oEA9LJhjyMlde+2ewpZQf53pgue27UkbEXfHJnDzHlUxQ/DWUkzqmp7DFwJp8D+wi/TYeQhpA==} - engines: {node: '>=20'} - hasBin: true - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -6469,10 +5749,6 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} - stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -6561,10 +5837,6 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - style-to-js@1.1.18: resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==} @@ -6576,10 +5848,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -6614,6 +5882,7 @@ packages: tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} @@ -6649,6 +5918,10 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinypool@2.1.0: + resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} + engines: {node: ^20.0.0 || >=22.0.0} + tinyrainbow@3.0.3: resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} engines: {node: '>=14.0.0'} @@ -6680,12 +5953,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -6777,10 +6044,6 @@ packages: peerDependencies: typescript: ^5.5.0 - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -6809,13 +6072,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.46.2: - resolution: {integrity: sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -6903,17 +6159,11 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - unrun@0.2.1: resolution: {integrity: sha512-1HpwmlCKrAOP3jPxFisPR0sYpPuiNtyYKJbmKu9iugIdvCte3DH1uJ1p1DBxUWkxW2pjvkUguJoK9aduK8ak3Q==} engines: {node: '>=20.19.0'} hasBin: true - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - urijs@1.19.11: resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==} @@ -7077,12 +6327,6 @@ packages: jsdom: optional: true - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - web-identity-schemas@0.1.6: resolution: {integrity: sha512-BDjKlPjiwlbb5nDxGRpjdJGU6uMa793u+dR8HtJ2309cGf1hcHzccdl5moXj1LEnjVlty8yETEWLcDXaFq6ZDw==} peerDependencies: @@ -7137,10 +6381,6 @@ packages: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -7196,10 +6436,6 @@ packages: utf-8-validate: optional: true - xdg-basedir@5.1.0: - resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} - engines: {node: '>=12'} - xml2js@0.6.2: resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} engines: {node: '>=4.0.0'} @@ -7231,10 +6467,6 @@ packages: yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - yoctocolors-cjs@2.1.3: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} @@ -7382,8 +6614,6 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-globals@7.28.0': {} - '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.28.5': {} @@ -7394,24 +6624,6 @@ snapshots: '@babel/runtime@7.28.4': {} - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - - '@babel/traverse@7.28.5': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - '@babel/types@7.28.5': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -7562,236 +6774,21 @@ snapshots: p-filter: 2.1.0 picocolors: 1.1.1 - '@changesets/should-skip-package@0.1.2': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/types@4.1.0': {} - - '@changesets/types@6.1.0': {} - - '@changesets/write@0.4.0': - dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.1.2 - prettier: 2.8.8 - - '@cspell/cspell-bundled-dicts@9.2.2': - dependencies: - '@cspell/dict-ada': 4.1.1 - '@cspell/dict-al': 1.1.1 - '@cspell/dict-aws': 4.0.15 - '@cspell/dict-bash': 4.2.2 - '@cspell/dict-companies': 3.2.7 - '@cspell/dict-cpp': 6.0.13 - '@cspell/dict-cryptocurrencies': 5.0.5 - '@cspell/dict-csharp': 4.0.7 - '@cspell/dict-css': 4.0.18 - '@cspell/dict-dart': 2.3.1 - '@cspell/dict-data-science': 2.0.11 - '@cspell/dict-django': 4.1.5 - '@cspell/dict-docker': 1.1.16 - '@cspell/dict-dotnet': 5.0.10 - '@cspell/dict-elixir': 4.0.8 - '@cspell/dict-en-common-misspellings': 2.1.7 - '@cspell/dict-en-gb-mit': 3.1.12 - '@cspell/dict-en_us': 4.4.22 - '@cspell/dict-filetypes': 3.0.14 - '@cspell/dict-flutter': 1.1.1 - '@cspell/dict-fonts': 4.0.5 - '@cspell/dict-fsharp': 1.1.1 - '@cspell/dict-fullstack': 3.2.7 - '@cspell/dict-gaming-terms': 1.1.2 - '@cspell/dict-git': 3.0.7 - '@cspell/dict-golang': 6.0.24 - '@cspell/dict-google': 1.0.9 - '@cspell/dict-haskell': 4.0.6 - '@cspell/dict-html': 4.0.12 - '@cspell/dict-html-symbol-entities': 4.0.4 - '@cspell/dict-java': 5.0.12 - '@cspell/dict-julia': 1.1.1 - '@cspell/dict-k8s': 1.0.12 - '@cspell/dict-kotlin': 1.1.1 - '@cspell/dict-latex': 4.0.4 - '@cspell/dict-lorem-ipsum': 4.0.5 - '@cspell/dict-lua': 4.0.8 - '@cspell/dict-makefile': 1.0.5 - '@cspell/dict-markdown': 2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3) - '@cspell/dict-monkeyc': 1.0.11 - '@cspell/dict-node': 5.0.8 - '@cspell/dict-npm': 5.2.19 - '@cspell/dict-php': 4.1.0 - '@cspell/dict-powershell': 5.0.15 - '@cspell/dict-public-licenses': 2.0.15 - '@cspell/dict-python': 4.2.21 - '@cspell/dict-r': 2.1.1 - '@cspell/dict-ruby': 5.0.9 - '@cspell/dict-rust': 4.0.12 - '@cspell/dict-scala': 5.0.8 - '@cspell/dict-shell': 1.1.2 - '@cspell/dict-software-terms': 5.1.10 - '@cspell/dict-sql': 2.2.1 - '@cspell/dict-svelte': 1.0.7 - '@cspell/dict-swift': 2.0.6 - '@cspell/dict-terraform': 1.1.3 - '@cspell/dict-typescript': 3.2.3 - '@cspell/dict-vue': 3.0.5 - - '@cspell/cspell-pipe@9.2.2': {} - - '@cspell/cspell-resolver@9.2.2': - dependencies: - global-directory: 4.0.1 - - '@cspell/cspell-service-bus@9.2.2': {} - - '@cspell/cspell-types@9.2.2': {} - - '@cspell/dict-ada@4.1.1': {} - - '@cspell/dict-al@1.1.1': {} - - '@cspell/dict-aws@4.0.15': {} - - '@cspell/dict-bash@4.2.2': - dependencies: - '@cspell/dict-shell': 1.1.2 - - '@cspell/dict-companies@3.2.7': {} - - '@cspell/dict-cpp@6.0.13': {} - - '@cspell/dict-cryptocurrencies@5.0.5': {} - - '@cspell/dict-csharp@4.0.7': {} - - '@cspell/dict-css@4.0.18': {} - - '@cspell/dict-dart@2.3.1': {} - - '@cspell/dict-data-science@2.0.11': {} - - '@cspell/dict-django@4.1.5': {} - - '@cspell/dict-docker@1.1.16': {} - - '@cspell/dict-dotnet@5.0.10': {} - - '@cspell/dict-elixir@4.0.8': {} - - '@cspell/dict-en-common-misspellings@2.1.7': {} - - '@cspell/dict-en-gb-mit@3.1.12': {} - - '@cspell/dict-en_us@4.4.22': {} - - '@cspell/dict-filetypes@3.0.14': {} - - '@cspell/dict-flutter@1.1.1': {} - - '@cspell/dict-fonts@4.0.5': {} - - '@cspell/dict-fsharp@1.1.1': {} - - '@cspell/dict-fullstack@3.2.7': {} - - '@cspell/dict-gaming-terms@1.1.2': {} - - '@cspell/dict-git@3.0.7': {} - - '@cspell/dict-golang@6.0.24': {} - - '@cspell/dict-google@1.0.9': {} - - '@cspell/dict-haskell@4.0.6': {} - - '@cspell/dict-html-symbol-entities@4.0.4': {} - - '@cspell/dict-html@4.0.12': {} - - '@cspell/dict-java@5.0.12': {} - - '@cspell/dict-julia@1.1.1': {} - - '@cspell/dict-k8s@1.0.12': {} - - '@cspell/dict-kotlin@1.1.1': {} - - '@cspell/dict-latex@4.0.4': {} - - '@cspell/dict-lorem-ipsum@4.0.5': {} - - '@cspell/dict-lua@4.0.8': {} - - '@cspell/dict-makefile@1.0.5': {} - - '@cspell/dict-markdown@2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3)': - dependencies: - '@cspell/dict-css': 4.0.18 - '@cspell/dict-html': 4.0.12 - '@cspell/dict-html-symbol-entities': 4.0.4 - '@cspell/dict-typescript': 3.2.3 - - '@cspell/dict-monkeyc@1.0.11': {} - - '@cspell/dict-node@5.0.8': {} - - '@cspell/dict-npm@5.2.19': {} - - '@cspell/dict-php@4.1.0': {} - - '@cspell/dict-powershell@5.0.15': {} - - '@cspell/dict-public-licenses@2.0.15': {} - - '@cspell/dict-python@4.2.21': - dependencies: - '@cspell/dict-data-science': 2.0.11 - - '@cspell/dict-r@2.1.1': {} - - '@cspell/dict-ruby@5.0.9': {} - - '@cspell/dict-rust@4.0.12': {} - - '@cspell/dict-scala@5.0.8': {} - - '@cspell/dict-shell@1.1.2': {} - - '@cspell/dict-software-terms@5.1.10': {} - - '@cspell/dict-sql@2.2.1': {} - - '@cspell/dict-svelte@1.0.7': {} - - '@cspell/dict-swift@2.0.6': {} - - '@cspell/dict-terraform@1.1.3': {} - - '@cspell/dict-typescript@3.2.3': {} - - '@cspell/dict-vue@3.0.5': {} - - '@cspell/dynamic-import@9.2.2': - dependencies: - '@cspell/url': 9.2.2 - import-meta-resolve: 4.2.0 - - '@cspell/eslint-plugin@9.2.2(eslint@9.38.0(jiti@2.6.1))': + '@changesets/should-skip-package@0.1.2': dependencies: - '@cspell/cspell-types': 9.2.2 - '@cspell/url': 9.2.2 - cspell-lib: 9.2.2 - eslint: 9.38.0(jiti@2.6.1) - synckit: 0.11.11 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 - '@cspell/filetypes@9.2.2': {} + '@changesets/types@4.1.0': {} - '@cspell/strong-weak-map@9.2.2': {} + '@changesets/types@6.1.0': {} - '@cspell/url@9.2.2': {} + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.1.2 + prettier: 2.8.8 '@drizzle-team/brocli@0.10.2': {} @@ -7965,86 +6962,6 @@ snapshots: '@esbuild/win32-x64@0.25.11': optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.38.0(jiti@2.6.1))': - dependencies: - eslint: 9.38.0(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint/config-array@0.21.1': - dependencies: - '@eslint/object-schema': 2.1.7 - debug: 4.4.3 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.4.2': - dependencies: - '@eslint/core': 0.17.0 - - '@eslint/core@0.15.2': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@0.16.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/core@0.17.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.3.1': - dependencies: - ajv: 6.12.6 - debug: 4.4.3 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.38.0': {} - - '@eslint/json@0.13.2': - dependencies: - '@eslint/core': 0.15.2 - '@eslint/plugin-kit': 0.3.5 - '@humanwhocodes/momoa': 3.3.10 - natural-compare: 1.4.0 - - '@eslint/markdown@7.5.0': - dependencies: - '@eslint/core': 0.16.0 - '@eslint/plugin-kit': 0.4.1 - github-slugger: 2.0.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-frontmatter: 2.0.1 - mdast-util-gfm: 3.1.0 - micromark-extension-frontmatter: 2.0.0 - micromark-extension-gfm: 3.0.0 - micromark-util-normalize-identifier: 2.0.1 - transitivePeerDependencies: - - supports-color - - '@eslint/object-schema@2.1.7': {} - - '@eslint/plugin-kit@0.3.5': - dependencies: - '@eslint/core': 0.15.2 - levn: 0.4.1 - - '@eslint/plugin-kit@0.4.1': - dependencies: - '@eslint/core': 0.17.0 - levn: 0.4.1 - '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 @@ -8071,32 +6988,6 @@ snapshots: '@standard-schema/spec': 1.0.0 hono: 4.7.10 - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.7': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/momoa@3.3.10': {} - - '@humanwhocodes/retry@0.4.3': {} - - '@ianvs/prettier-plugin-sort-imports@4.7.0(@prettier/plugin-oxc@0.0.4)(prettier@3.6.2)': - dependencies: - '@babel/generator': 7.28.5 - '@babel/parser': 7.28.5 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - prettier: 3.6.2 - semver: 7.7.3 - optionalDependencies: - '@prettier/plugin-oxc': 0.0.4 - transitivePeerDependencies: - - supports-color - '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 @@ -8312,12 +7203,6 @@ snapshots: optionalDependencies: '@types/node': 24.9.2 - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': - dependencies: - '@isaacs/balanced-match': 4.0.1 - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -8769,13 +7654,6 @@ snapshots: '@multiformats/base-x@4.0.1': {} - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.6.0 - '@emnapi/runtime': 1.6.0 - '@tybys/wasm-util': 0.10.1 - optional: true - '@napi-rs/wasm-runtime@1.0.7': dependencies: '@emnapi/core': 1.6.0 @@ -8817,68 +7695,147 @@ snapshots: '@opentelemetry/api@1.9.0': {} - '@oxc-parser/binding-android-arm64@0.74.0': + '@oxc-project/runtime@0.95.0': {} + + '@oxc-project/types@0.95.0': {} + + '@oxfmt/binding-android-arm-eabi@0.32.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.74.0': + '@oxfmt/binding-android-arm64@0.32.0': optional: true - '@oxc-parser/binding-darwin-x64@0.74.0': + '@oxfmt/binding-darwin-arm64@0.32.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.74.0': + '@oxfmt/binding-darwin-x64@0.32.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.74.0': + '@oxfmt/binding-freebsd-x64@0.32.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.74.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.32.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.74.0': + '@oxfmt/binding-linux-arm-musleabihf@0.32.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.74.0': + '@oxfmt/binding-linux-arm64-gnu@0.32.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.74.0': + '@oxfmt/binding-linux-arm64-musl@0.32.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.74.0': + '@oxfmt/binding-linux-ppc64-gnu@0.32.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.74.0': + '@oxfmt/binding-linux-riscv64-gnu@0.32.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.74.0': + '@oxfmt/binding-linux-riscv64-musl@0.32.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.74.0': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 + '@oxfmt/binding-linux-s390x-gnu@0.32.0': optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.74.0': + '@oxfmt/binding-linux-x64-gnu@0.32.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.74.0': + '@oxfmt/binding-linux-x64-musl@0.32.0': optional: true - '@oxc-project/runtime@0.95.0': {} + '@oxfmt/binding-openharmony-arm64@0.32.0': + optional: true - '@oxc-project/types@0.74.0': {} + '@oxfmt/binding-win32-arm64-msvc@0.32.0': + optional: true - '@oxc-project/types@0.95.0': {} + '@oxfmt/binding-win32-ia32-msvc@0.32.0': + optional: true + + '@oxfmt/binding-win32-x64-msvc@0.32.0': + optional: true + + '@oxlint-tsgolint/darwin-arm64@0.12.2': + optional: true + + '@oxlint-tsgolint/darwin-x64@0.12.2': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.12.2': + optional: true + + '@oxlint-tsgolint/linux-x64@0.12.2': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.12.2': + optional: true + + '@oxlint-tsgolint/win32-x64@0.12.2': + optional: true + + '@oxlint/binding-android-arm-eabi@1.47.0': + optional: true + + '@oxlint/binding-android-arm64@1.47.0': + optional: true + + '@oxlint/binding-darwin-arm64@1.47.0': + optional: true + + '@oxlint/binding-darwin-x64@1.47.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.47.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.47.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.47.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.47.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.47.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.47.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.47.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.47.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.47.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.47.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.47.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.47.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.47.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.47.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.47.0': + optional: true '@pkgjs/parseargs@0.11.0': optional: true '@pkgr/core@0.2.9': {} - '@prettier/plugin-oxc@0.0.4': - dependencies: - oxc-parser: 0.74.0 - '@puppeteer/browsers@2.3.0': dependencies: debug: 4.4.3 @@ -9874,230 +8831,78 @@ snapshots: '@types/hast@3.0.4': dependencies: - '@types/unist': 3.0.3 - - '@types/http-cache-semantics@4.0.4': {} - - '@types/http-errors@2.0.5': {} - - '@types/json-schema@7.0.15': {} - - '@types/katex@0.16.7': {} - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/mdx@2.0.13': {} - - '@types/ms@2.1.0': {} - - '@types/nlcst@2.0.3': - dependencies: - '@types/unist': 3.0.3 - - '@types/node@12.20.55': {} - - '@types/node@24.9.2': - dependencies: - undici-types: 7.16.0 - - '@types/qs@6.14.0': {} - - '@types/range-parser@1.2.7': {} - - '@types/react@19.2.2': - dependencies: - csstype: 3.1.3 - - '@types/send@1.2.1': - dependencies: - '@types/node': 24.9.2 - - '@types/serve-static@2.2.0': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 24.9.2 - - '@types/unist@2.0.11': {} - - '@types/unist@3.0.3': {} - - '@types/urijs@1.19.26': {} - - '@types/varint@6.0.3': - dependencies: - '@types/node': 24.9.2 - - '@types/ws@8.18.1': - dependencies: - '@types/node': 24.9.2 - - '@types/yauzl@2.10.3': - dependencies: - '@types/node': 24.9.2 - optional: true - - '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.46.2 - '@typescript-eslint/type-utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.2 - eslint: 9.38.0(jiti@2.6.1) - graphemer: 1.4.0 - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.46.2 - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.2 - debug: 4.4.3 - eslint: 9.38.0(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.46.2(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) - '@typescript-eslint/types': 8.46.2 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.46.2': - dependencies: - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/visitor-keys': 8.46.2 - - '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - - '@typescript-eslint/type-utils@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - debug: 4.4.3 - eslint: 9.38.0(jiti@2.6.1) - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.46.2': {} - - '@typescript-eslint/typescript-estree@8.46.2(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.46.2(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3) - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/visitor-keys': 8.46.2 - debug: 4.4.3 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.3 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.46.2 - '@typescript-eslint/types': 8.46.2 - '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.46.2': - dependencies: - '@typescript-eslint/types': 8.46.2 - eslint-visitor-keys: 4.2.1 + '@types/unist': 3.0.3 - '@typescript/vfs@1.6.2(typescript@5.9.3)': - dependencies: - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@types/http-cache-semantics@4.0.4': {} - '@ungap/structured-clone@1.3.0': {} + '@types/http-errors@2.0.5': {} - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - optional: true + '@types/json-schema@7.0.15': {} - '@unrs/resolver-binding-android-arm64@1.11.1': - optional: true + '@types/katex@0.16.7': {} - '@unrs/resolver-binding-darwin-arm64@1.11.1': - optional: true + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 - '@unrs/resolver-binding-darwin-x64@1.11.1': - optional: true + '@types/mdx@2.0.13': {} - '@unrs/resolver-binding-freebsd-x64@1.11.1': - optional: true + '@types/ms@2.1.0': {} - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - optional: true + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - optional: true + '@types/node@12.20.55': {} - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - optional: true + '@types/node@24.9.2': + dependencies: + undici-types: 7.16.0 - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - optional: true + '@types/qs@6.14.0': {} - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - optional: true + '@types/range-parser@1.2.7': {} - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - optional: true + '@types/react@19.2.2': + dependencies: + csstype: 3.1.3 - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - optional: true + '@types/send@1.2.1': + dependencies: + '@types/node': 24.9.2 - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - optional: true + '@types/serve-static@2.2.0': + dependencies: + '@types/http-errors': 2.0.5 + '@types/node': 24.9.2 - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - optional: true + '@types/unist@2.0.11': {} - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - optional: true + '@types/unist@3.0.3': {} + + '@types/urijs@1.19.26': {} - '@unrs/resolver-binding-wasm32-wasi@1.11.1': + '@types/varint@6.0.3': dependencies: - '@napi-rs/wasm-runtime': 0.2.12 - optional: true + '@types/node': 24.9.2 - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - optional: true + '@types/ws@8.18.1': + dependencies: + '@types/node': 24.9.2 - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 24.9.2 optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - optional: true + '@typescript/vfs@1.6.2(typescript@5.9.3)': + dependencies: + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@ungap/structured-clone@1.3.0': {} '@valibot/to-json-schema@1.3.0(valibot@1.1.0(typescript@5.9.3))': dependencies: @@ -10201,13 +9006,6 @@ snapshots: optionalDependencies: ajv: 8.17.1 - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -10271,8 +9069,6 @@ snapshots: array-iterate@2.0.1: {} - array-timsort@1.0.3: {} - array-union@2.1.0: {} arraybuffer.prototype.slice@1.0.4: @@ -10383,8 +9179,6 @@ snapshots: binary-extensions@2.3.0: {} - binary-searching@2.0.5: {} - bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -10500,11 +9294,6 @@ snapshots: chai@6.2.0: {} - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - chalk@5.6.2: {} character-entities-html4@2.1.0: {} @@ -10551,11 +9340,6 @@ snapshots: dependencies: escape-string-regexp: 5.0.0 - clear-module@4.1.2: - dependencies: - parent-module: 2.0.0 - resolve-from: 5.0.0 - cli-boxes@3.0.0: {} cli-cursor@4.0.0: @@ -10615,14 +9399,6 @@ snapshots: commander@8.3.0: {} - comment-json@4.4.1: - dependencies: - array-timsort: 1.0.3 - core-util-is: 1.0.3 - esprima: 4.0.1 - - comment-parser@1.4.1: {} - concat-map@0.0.1: {} content-disposition@0.5.4: @@ -10639,8 +9415,6 @@ snapshots: cookie@0.7.2: {} - core-util-is@1.0.3: {} - cors@2.8.5: dependencies: object-assign: 4.1.1 @@ -10661,66 +9435,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - cspell-config-lib@9.2.2: - dependencies: - '@cspell/cspell-types': 9.2.2 - comment-json: 4.4.1 - smol-toml: 1.4.2 - yaml: 2.8.1 - - cspell-dictionary@9.2.2: - dependencies: - '@cspell/cspell-pipe': 9.2.2 - '@cspell/cspell-types': 9.2.2 - cspell-trie-lib: 9.2.2 - fast-equals: 5.3.2 - - cspell-glob@9.2.2: - dependencies: - '@cspell/url': 9.2.2 - picomatch: 4.0.3 - - cspell-grammar@9.2.2: - dependencies: - '@cspell/cspell-pipe': 9.2.2 - '@cspell/cspell-types': 9.2.2 - - cspell-io@9.2.2: - dependencies: - '@cspell/cspell-service-bus': 9.2.2 - '@cspell/url': 9.2.2 - - cspell-lib@9.2.2: - dependencies: - '@cspell/cspell-bundled-dicts': 9.2.2 - '@cspell/cspell-pipe': 9.2.2 - '@cspell/cspell-resolver': 9.2.2 - '@cspell/cspell-types': 9.2.2 - '@cspell/dynamic-import': 9.2.2 - '@cspell/filetypes': 9.2.2 - '@cspell/strong-weak-map': 9.2.2 - '@cspell/url': 9.2.2 - clear-module: 4.1.2 - cspell-config-lib: 9.2.2 - cspell-dictionary: 9.2.2 - cspell-glob: 9.2.2 - cspell-grammar: 9.2.2 - cspell-io: 9.2.2 - cspell-trie-lib: 9.2.2 - env-paths: 3.0.0 - gensequence: 7.0.0 - import-fresh: 3.3.1 - resolve-from: 5.0.0 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - xdg-basedir: 5.1.0 - - cspell-trie-lib@9.2.2: - dependencies: - '@cspell/cspell-pipe': 9.2.2 - '@cspell/cspell-types': 9.2.2 - gensequence: 7.0.0 - cssesc@3.0.0: {} csstype@3.1.3: {} @@ -10783,8 +9497,6 @@ snapshots: deep-extend@0.6.0: optional: true - deep-is@0.1.4: {} - defer-to-connect@2.0.1: {} define-data-property@1.1.4: @@ -10821,14 +9533,10 @@ snapshots: detect-indent@6.1.0: {} - detect-indent@7.0.2: {} - detect-libc@2.0.2: {} detect-libc@2.1.2: {} - detect-newline@4.0.1: {} - detect-node-es@1.1.0: {} detect-port@1.6.1: @@ -10902,8 +9610,6 @@ snapshots: dependencies: dotenv: 16.6.1 - dotenv@16.0.3: {} - dotenv@16.6.1: {} dotenv@17.2.3: {} @@ -10981,8 +9687,6 @@ snapshots: env-paths@2.2.1: {} - env-paths@3.0.0: {} - environment@1.1.0: {} error-ex@1.3.4: @@ -11163,8 +9867,6 @@ snapshots: escape-string-regexp@2.0.0: {} - escape-string-regexp@4.0.0: {} - escape-string-regexp@5.0.0: {} escodegen@2.1.0: @@ -11175,121 +9877,8 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@10.1.8(eslint@9.38.0(jiti@2.6.1)): - dependencies: - eslint: 9.38.0(jiti@2.6.1) - - eslint-import-context@0.1.9(unrs-resolver@1.11.1): - dependencies: - get-tsconfig: 4.13.0 - stable-hash-x: 0.2.0 - optionalDependencies: - unrs-resolver: 1.11.1 - - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)))(eslint@9.38.0(jiti@2.6.1)): - dependencies: - debug: 4.4.3 - eslint: 9.38.0(jiti@2.6.1) - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - get-tsconfig: 4.13.0 - is-bun-module: 2.0.0 - stable-hash-x: 0.2.0 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 - optionalDependencies: - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)): - dependencies: - '@typescript-eslint/types': 8.46.2 - comment-parser: 1.4.1 - debug: 4.4.3 - eslint: 9.38.0(jiti@2.6.1) - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - is-glob: 4.0.3 - minimatch: 10.1.1 - semver: 7.7.3 - stable-hash-x: 0.2.0 - unrs-resolver: 1.11.1 - optionalDependencies: - '@typescript-eslint/utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - transitivePeerDependencies: - - supports-color - - eslint-plugin-turbo@2.5.8(eslint@9.38.0(jiti@2.6.1))(turbo@2.5.8): - dependencies: - dotenv: 16.0.3 - eslint: 9.38.0(jiti@2.6.1) - turbo: 2.5.8 - - eslint-scope@8.4.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} - - eslint@9.38.0(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.16.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.38.0 - '@eslint/plugin-kit': 0.4.1 - '@humanfs/node': 0.16.7 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - - espree@10.4.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 - esprima@4.0.1: {} - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - estraverse@5.3.0: {} estree-util-attach-comments@3.0.0: @@ -11400,8 +9989,6 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-equals@5.3.2: {} - fast-fifo@1.3.2: {} fast-glob@3.3.3: @@ -11412,10 +9999,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - fast-memoize@2.5.2: {} fast-uri@3.1.0: {} @@ -11451,10 +10034,6 @@ snapshots: figlet@1.8.1: {} - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - file-uri-to-path@1.0.0: optional: true @@ -11479,18 +10058,6 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@4.0.1: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - - flatted@3.3.3: {} - follow-redirects@1.15.11: {} for-each@0.3.5: @@ -11567,8 +10134,6 @@ snapshots: generator-function@2.0.1: {} - gensequence@7.0.0: {} - get-caller-file@2.0.5: {} get-east-asian-width@1.4.0: {} @@ -11617,13 +10182,9 @@ snapshots: transitivePeerDependencies: - supports-color - git-hooks-list@4.1.1: {} - github-from-package@0.0.0: optional: true - github-slugger@2.0.0: {} - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -11641,12 +10202,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - global-directory@4.0.1: - dependencies: - ini: 4.1.1 - - globals@14.0.0: {} - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -11695,8 +10250,6 @@ snapshots: graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - gray-matter@4.0.3: dependencies: js-yaml: 3.14.1 @@ -11706,8 +10259,6 @@ snapshots: has-bigints@1.1.0: {} - has-flag@4.0.0: {} - has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 @@ -11948,8 +10499,6 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.5: {} - immer@9.0.21: {} import-fresh@3.3.1: @@ -11957,10 +10506,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-meta-resolve@4.2.0: {} - - imurmurhash@0.1.4: {} - indent-string@5.0.0: {} inherits@2.0.4: {} @@ -11968,8 +10513,6 @@ snapshots: ini@1.3.8: optional: true - ini@4.1.1: {} - ink-spinner@5.0.0(ink@6.4.0(@types/react@19.2.2)(react@19.2.0))(react@19.2.0): dependencies: cli-spinners: 2.9.2 @@ -12072,10 +10615,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-bun-module@2.0.0: - dependencies: - semver: 7.7.3 - is-callable@1.2.7: {} is-core-module@2.16.1: @@ -12243,14 +10782,10 @@ snapshots: json-parse-even-better-errors@2.3.1: {} - json-schema-traverse@0.4.1: {} - json-schema-traverse@1.0.0: {} json-schema@0.4.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} - jsonc-parser@2.2.1: {} jsondiffpatch@0.6.0: @@ -12309,11 +10844,6 @@ snapshots: leven@4.1.0: {} - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - libsql@0.5.22: dependencies: '@neon-rs/load': 0.0.4 @@ -12337,12 +10867,6 @@ snapshots: dependencies: p-locate: 4.1.0 - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.merge@4.6.2: {} - lodash.startcase@4.4.0: {} lodash.topath@4.5.2: {} @@ -12875,10 +11399,6 @@ snapshots: mimic-response@4.0.0: {} - minimatch@10.1.1: - dependencies: - '@isaacs/brace-expansion': 5.0.0 - minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -12957,10 +11477,6 @@ snapshots: napi-build-utils@2.0.0: optional: true - napi-postinstall@0.3.4: {} - - natural-compare@1.4.0: {} - negotiator@0.6.3: {} neotraverse@0.6.18: {} @@ -13067,15 +11583,6 @@ snapshots: openapi-types@12.1.3: {} - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - outdent@0.5.0: {} own-keys@1.0.1: @@ -13098,25 +11605,61 @@ snapshots: transitivePeerDependencies: - zod - oxc-parser@0.74.0: + oxfmt@0.32.0: dependencies: - '@oxc-project/types': 0.74.0 + tinypool: 2.1.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.32.0 + '@oxfmt/binding-android-arm64': 0.32.0 + '@oxfmt/binding-darwin-arm64': 0.32.0 + '@oxfmt/binding-darwin-x64': 0.32.0 + '@oxfmt/binding-freebsd-x64': 0.32.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.32.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.32.0 + '@oxfmt/binding-linux-arm64-gnu': 0.32.0 + '@oxfmt/binding-linux-arm64-musl': 0.32.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.32.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.32.0 + '@oxfmt/binding-linux-riscv64-musl': 0.32.0 + '@oxfmt/binding-linux-s390x-gnu': 0.32.0 + '@oxfmt/binding-linux-x64-gnu': 0.32.0 + '@oxfmt/binding-linux-x64-musl': 0.32.0 + '@oxfmt/binding-openharmony-arm64': 0.32.0 + '@oxfmt/binding-win32-arm64-msvc': 0.32.0 + '@oxfmt/binding-win32-ia32-msvc': 0.32.0 + '@oxfmt/binding-win32-x64-msvc': 0.32.0 + + oxlint-tsgolint@0.12.2: optionalDependencies: - '@oxc-parser/binding-android-arm64': 0.74.0 - '@oxc-parser/binding-darwin-arm64': 0.74.0 - '@oxc-parser/binding-darwin-x64': 0.74.0 - '@oxc-parser/binding-freebsd-x64': 0.74.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.74.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.74.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.74.0 - '@oxc-parser/binding-linux-arm64-musl': 0.74.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.74.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.74.0 - '@oxc-parser/binding-linux-x64-gnu': 0.74.0 - '@oxc-parser/binding-linux-x64-musl': 0.74.0 - '@oxc-parser/binding-wasm32-wasi': 0.74.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.74.0 - '@oxc-parser/binding-win32-x64-msvc': 0.74.0 + '@oxlint-tsgolint/darwin-arm64': 0.12.2 + '@oxlint-tsgolint/darwin-x64': 0.12.2 + '@oxlint-tsgolint/linux-arm64': 0.12.2 + '@oxlint-tsgolint/linux-x64': 0.12.2 + '@oxlint-tsgolint/win32-arm64': 0.12.2 + '@oxlint-tsgolint/win32-x64': 0.12.2 + + oxlint@1.47.0(oxlint-tsgolint@0.12.2): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.47.0 + '@oxlint/binding-android-arm64': 1.47.0 + '@oxlint/binding-darwin-arm64': 1.47.0 + '@oxlint/binding-darwin-x64': 1.47.0 + '@oxlint/binding-freebsd-x64': 1.47.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.47.0 + '@oxlint/binding-linux-arm-musleabihf': 1.47.0 + '@oxlint/binding-linux-arm64-gnu': 1.47.0 + '@oxlint/binding-linux-arm64-musl': 1.47.0 + '@oxlint/binding-linux-ppc64-gnu': 1.47.0 + '@oxlint/binding-linux-riscv64-gnu': 1.47.0 + '@oxlint/binding-linux-riscv64-musl': 1.47.0 + '@oxlint/binding-linux-s390x-gnu': 1.47.0 + '@oxlint/binding-linux-x64-gnu': 1.47.0 + '@oxlint/binding-linux-x64-musl': 1.47.0 + '@oxlint/binding-openharmony-arm64': 1.47.0 + '@oxlint/binding-win32-arm64-msvc': 1.47.0 + '@oxlint/binding-win32-ia32-msvc': 1.47.0 + '@oxlint/binding-win32-x64-msvc': 1.47.0 + oxlint-tsgolint: 0.12.2 p-any@4.0.0: dependencies: @@ -13133,18 +11676,10 @@ snapshots: dependencies: p-try: 2.2.0 - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - p-map@2.1.0: {} p-some@6.0.0: @@ -13186,10 +11721,6 @@ snapshots: dependencies: callsites: 3.1.0 - parent-module@2.0.0: - dependencies: - callsites: 3.1.0 - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -13314,28 +11845,8 @@ snapshots: tunnel-agent: 0.6.0 optional: true - prelude-ls@1.2.1: {} - - prettier-plugin-jsdoc@1.5.0(prettier@3.6.2): - dependencies: - binary-searching: 2.0.5 - comment-parser: 1.4.1 - mdast-util-from-markdown: 2.0.2 - prettier: 3.6.2 - transitivePeerDependencies: - - supports-color - - prettier-plugin-packagejson@2.5.19(prettier@3.6.2): - dependencies: - sort-package-json: 3.4.0 - synckit: 0.11.11 - optionalDependencies: - prettier: 3.6.2 - prettier@2.8.8: {} - prettier@3.6.2: {} - progress@2.0.3: {} promise-limit@2.7.0: {} @@ -13373,8 +11884,6 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 - punycode@2.3.1: {} - puppeteer-core@22.15.0: dependencies: '@puppeteer/browsers': 2.3.0 @@ -14023,8 +12532,6 @@ snapshots: smart-buffer@4.2.0: {} - smol-toml@1.4.2: {} - socket.io-adapter@2.5.5: dependencies: debug: 4.3.7 @@ -14068,18 +12575,6 @@ snapshots: ip-address: 10.0.1 smart-buffer: 4.2.0 - sort-object-keys@1.1.3: {} - - sort-package-json@3.4.0: - dependencies: - detect-indent: 7.0.2 - detect-newline: 4.0.1 - git-hooks-list: 4.1.1 - is-plain-obj: 4.1.0 - semver: 7.7.3 - sort-object-keys: 1.1.3 - tinyglobby: 0.2.15 - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -14100,8 +12595,6 @@ snapshots: sprintf-js@1.0.3: {} - stable-hash-x@0.2.0: {} - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -14201,8 +12694,6 @@ snapshots: strip-json-comments@2.0.1: optional: true - strip-json-comments@3.1.1: {} - style-to-js@1.1.18: dependencies: style-to-object: 1.0.11 @@ -14221,10 +12712,6 @@ snapshots: pirates: 4.0.7 ts-interface-checker: 0.1.13 - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} swr@2.3.6(react@19.2.0): @@ -14343,6 +12830,8 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tinypool@2.1.0: {} + tinyrainbow@3.0.3: {} to-data-view@1.1.0: {} @@ -14363,10 +12852,6 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.1.0(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - ts-interface-checker@0.1.13: {} tsconfck@3.1.6(typescript@5.9.3): @@ -14452,10 +12937,6 @@ snapshots: transitivePeerDependencies: - supports-color - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - type-fest@4.41.0: {} type-is@1.6.18: @@ -14502,17 +12983,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - typescript@5.9.3: {} uint8arrays@3.1.1: @@ -14635,40 +13105,12 @@ snapshots: unpipe@1.0.0: {} - unrs-resolver@1.11.1: - dependencies: - napi-postinstall: 0.3.4 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.11.1 - '@unrs/resolver-binding-android-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-x64': 1.11.1 - '@unrs/resolver-binding-freebsd-x64': 1.11.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-musl': 1.11.1 - '@unrs/resolver-binding-wasm32-wasi': 1.11.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unrun@0.2.1: dependencies: '@oxc-project/runtime': 0.95.0 rolldown: 1.0.0-beta.45 synckit: 0.11.11 - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - urijs@1.19.11: {} urlpattern-polyfill@10.0.0: {} @@ -14810,10 +13252,6 @@ snapshots: - tsx - yaml - vscode-languageserver-textdocument@1.0.12: {} - - vscode-uri@3.1.0: {} - web-identity-schemas@0.1.6(valibot@1.1.0(typescript@5.9.3))(zod@3.25.4): optionalDependencies: valibot: 1.1.0(typescript@5.9.3) @@ -14884,8 +13322,6 @@ snapshots: dependencies: string-width: 7.2.0 - word-wrap@1.2.5: {} - wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -14918,8 +13354,6 @@ snapshots: ws@8.18.3: {} - xdg-basedir@5.1.0: {} - xml2js@0.6.2: dependencies: sax: 1.4.1 @@ -14950,8 +13384,6 @@ snapshots: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 - yocto-queue@0.1.0: {} - yoctocolors-cjs@2.1.3: {} yoctocolors@2.1.1: {} diff --git a/prettier.config.js b/prettier.config.js deleted file mode 100644 index 36bae3b..0000000 --- a/prettier.config.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * @see https://prettier.io/docs/en/configuration.html - * @type {import("prettier").Config} - */ -const config = { - plugins: [ - "@prettier/plugin-oxc", // must be first - "@ianvs/prettier-plugin-sort-imports", - "prettier-plugin-packagejson", - "prettier-plugin-jsdoc", - ], - - // General config - semi: false, - singleQuote: false, - tabWidth: 2, - trailingComma: "all", - - // @ianvs/prettier-plugin-sort-imports - importOrderTypeScriptVersion: "5.0.0", -} - -export default config diff --git a/tools/api-utils/eslint.config.js b/tools/api-utils/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/tools/api-utils/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/tools/api-utils/package.json b/tools/api-utils/package.json index dc9451d..47b0327 100644 --- a/tools/api-utils/package.json +++ b/tools/api-utils/package.json @@ -4,17 +4,18 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "tools/api-utils" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "tools/api-utils" + }, "type": "module", + "main": "./src/index.ts", "exports": { "./package.json": "./package.json", "./api-response": { @@ -34,12 +35,9 @@ "import": "./src/validate-payload.ts" } }, - "main": "./src/index.ts", "scripts": { "check:types": "tsc --noEmit --pretty", "clean": "git clean -fdX .turbo", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -52,7 +50,6 @@ "valibot": "catalog:" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*" } } diff --git a/tools/cli-tools/eslint.config.js b/tools/cli-tools/eslint.config.js deleted file mode 100644 index 13fe2a3..0000000 --- a/tools/cli-tools/eslint.config.js +++ /dev/null @@ -1,7 +0,0 @@ -// @ts-check - -import { config } from "@repo/eslint-config/base" - -export default config({ - root: import.meta.dirname, -}) diff --git a/tools/cli-tools/package.json b/tools/cli-tools/package.json index 0e90f68..e8786e5 100644 --- a/tools/cli-tools/package.json +++ b/tools/cli-tools/package.json @@ -4,29 +4,27 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "tools/cli-tools" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "tools/cli-tools" + }, "type": "module", + "main": "./src/index.ts", "exports": { ".": { "types": "./src/index.ts", "import": "./src/index.ts" } }, - "main": "./src/index.ts", "scripts": { "check:types": "tsc --noEmit", "clean": "git clean -fdX .turbo dist", - "lint": "eslint .", - "lint:fix": "eslint . --fix", "test": "vitest" }, "dependencies": { @@ -37,7 +35,6 @@ "yoctocolors": "2.1.1" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", "@repo/typescript-config": "workspace:*", "@types/figlet": "1.7.0" } diff --git a/tools/eslint-config/README.md b/tools/eslint-config/README.md deleted file mode 100644 index 43e9c18..0000000 --- a/tools/eslint-config/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@repo/eslint-config` - -Shared eslint configuration for the workspace. diff --git a/tools/eslint-config/base.js b/tools/eslint-config/base.js deleted file mode 100644 index 56b985c..0000000 --- a/tools/eslint-config/base.js +++ /dev/null @@ -1,168 +0,0 @@ -// @ts-check - -import cspell from "@cspell/eslint-plugin/configs" -import js from "@eslint/js" -import json from "@eslint/json" -import markdown from "@eslint/markdown" -import prettier from "eslint-config-prettier" -import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript" -import importX from "eslint-plugin-import-x" -import turbo from "eslint-plugin-turbo" -import { defineConfig } from "eslint/config" -import tseslint from "typescript-eslint" - -/** - * @param {{ root: string }} options - */ -export function config({ root }) { - const tsconfigPath = `${root}/tsconfig.json` - - return defineConfig( - { - ignores: ["dist/**", ".wrangler/**"], - }, - - /** - * Spell checking - */ - { - // @ts-expect-error - cspell.recommended is not a valid extends element - extends: [cspell.recommended], - settings: { - cspell: { - configFile: "../../cspell.config.yaml", - }, - }, - }, - - /** - * Markdown files - */ - { - extends: [markdown.configs.recommended], - files: ["**/*.md"], - language: "markdown/gfm", - rules: { - "markdown/fenced-code-language": "off", - }, - }, - - /** - * JSON files - */ - { - extends: [json.configs.recommended], - files: ["**/*.json"], - language: "json/json", - }, - - /** - * Javascript, Typescript files - */ - { - files: ["**/*.{js,jsx,mjs,cjs,ts,tsx}"], - extends: [ - js.configs.recommended, - tseslint.configs.strictTypeChecked, - tseslint.configs.stylisticTypeChecked, - importX.flatConfigs.recommended, - importX.flatConfigs.typescript, - ], - settings: { - "import-x/resolver-next": [ - createTypeScriptImportResolver({ - project: tsconfigPath, - }), - ], - }, - rules: { - "@typescript-eslint/consistent-type-definitions": "off", - "@typescript-eslint/consistent-type-imports": [ - "warn", - { - prefer: "type-imports", - fixStyle: "separate-type-imports", // Enforces: import type { Foo } (top-level) - }, - ], - "@typescript-eslint/no-misused-promises": [ - "error", - { - checksVoidReturn: false, - }, - ], - "@typescript-eslint/no-unused-vars": [ - "warn", - { - argsIgnorePattern: "^_", - varsIgnorePattern: "^_", - caughtErrorsIgnorePattern: "^_", - }, - ], - "@typescript-eslint/restrict-template-expressions": ["off"], - // Disabled: Redundant with @typescript-eslint/consistent-type-imports - "import-x/consistent-type-specifier-style": "off", - // Disabled: Handled by @ianvs/prettier-plugin-sort-imports - "import-x/order": "off", - // Disabled: Handled by @ianvs/prettier-plugin-sort-imports - "sort-imports": "off", - }, - }, - - { - files: ["**/*.md/*.{js,ts}"], - extends: [ - markdown.configs.processor, - tseslint.configs.disableTypeChecked, - ], - }, - - { - languageOptions: { - parserOptions: { - projectService: true, - tsconfigRootDir: root, - warnOnUnsupportedTypeScriptVersion: false, - }, - }, - }, - - /** - * Turbo (Monorepo) - */ - { - plugins: { - turbo, - }, - rules: { - "turbo/no-undeclared-env-vars": "off", - }, - }, - - /** - * Test files - */ - { - files: ["**/*.test.*"], - rules: { - "@cspell/spellchecker": "off", - "@typescript-eslint/no-non-null-assertion": "off", - }, - }, - - /** - * Javascript files - * - * Ignore type-checking - */ - { - files: ["**/*.js"], - extends: [tseslint.configs.disableTypeChecked], - }, - - /** - * Disable rules that could conflict with prettier. - * This should be the last rule. - */ - prettier, - ) -} diff --git a/tools/eslint-config/package.json b/tools/eslint-config/package.json deleted file mode 100644 index e53bcc3..0000000 --- a/tools/eslint-config/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "@repo/eslint-config", - "version": "0.0.1", - "private": true, - "homepage": "https://github.com/agentcommercekit/ack#readme", - "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "tools/eslint-config" - }, - "license": "MIT", - "author": { - "name": "Catena Labs", - "url": "https://catenalabs.com" - }, - "type": "module", - "exports": { - "./package.json": "./package.json", - "./base": "./base.js" - }, - "main": "./base.js", - "devDependencies": { - "@cspell/eslint-plugin": "9.2.2", - "@eslint/js": "9.38.0", - "@eslint/json": "0.13.2", - "@eslint/markdown": "7.5.0", - "eslint-config-prettier": "10.1.8", - "eslint-import-resolver-typescript": "4.4.4", - "eslint-plugin-import-x": "4.16.1", - "eslint-plugin-turbo": "2.5.8", - "typescript-eslint": "8.46.2" - } -} diff --git a/turbo.json b/turbo.json index 56140a5..a5db9f0 100644 --- a/turbo.json +++ b/turbo.json @@ -6,6 +6,12 @@ "//#check:format": {}, "//#check:packages": {}, "//#format": {}, + "//#lint": { + "dependsOn": ["^build"] + }, + "//#lint:fix": { + "dependsOn": ["^build"] + }, "build": { "dependsOn": ["^build"], "inputs": ["$TURBO_DEFAULT$", ".env*"], @@ -14,7 +20,7 @@ "check": { "dependsOn": [ "//#check:format", - "lint", + "//#lint", "check:types", "test", "//#check:packages" @@ -32,13 +38,7 @@ "persistent": true }, "fix": { - "dependsOn": ["lint:fix", "//#format"] - }, - "lint": { - "dependsOn": ["^build"] - }, - "lint:fix": { - "dependsOn": ["^build"] + "dependsOn": ["//#lint:fix", "//#format"] }, "setup": { "dependsOn": ["^setup"], From a725e01ae030ba54f6e1703c9460989bb3f08a50 Mon Sep 17 00:00:00 2001 From: Matt Venables Date: Sat, 14 Feb 2026 20:26:14 -0500 Subject: [PATCH 2/2] chore: remove per-package eslint config, fix oxlint errors, drop baseUrl - Remove @repo/eslint-config dependency and lint/lint:fix scripts from all 16 sub-packages (linting now runs from root via oxlint) - Fix oxfmt config: trailingComma "all" (was "none"), drop proseWrap - Fix oxlint config: add no-unused-vars with ^_ ignore pattern, normalize override prefixes to oxlint style, remove dead .d.ts override - Fix 13 lint errors: any->unknown in vc types, curly braces, @auth tags - Remove baseUrl from 8 tsconfig.json files - Update AGENTS.md: eslint->oxlint, prettier->oxfmt, drop cspell refs --- demos/e2e/src/agent.ts | 4 +- demos/e2e/src/index.ts | 1 + demos/e2e/src/user.ts | 1 + demos/e2e/src/verification.ts | 1 + demos/e2e/tsconfig.json | 1 - demos/identity-a2a/src/agent.ts | 28 ++-- demos/identity-a2a/src/bank-client-agent.ts | 146 +++++++++--------- demos/identity-a2a/src/bank-teller-agent.ts | 1 + demos/identity-a2a/src/run-demo.ts | 1 + demos/identity-a2a/src/utils/server-utils.ts | 1 + demos/identity-a2a/tsconfig.json | 1 - demos/identity/src/agent.ts | 4 +- demos/identity/src/client-agent.ts | 1 + demos/identity/src/haiku-agent.ts | 1 + demos/identity/src/identity-tools.ts | 1 + demos/identity/src/index.ts | 5 +- demos/identity/src/serve-agent.ts | 1 + demos/identity/tsconfig.json | 1 - demos/payments/src/constants.ts | 2 +- demos/payments/src/index.ts | 11 +- demos/payments/src/payment-service.ts | 1 + demos/payments/src/receipt-service.ts | 21 ++- demos/payments/src/server.ts | 1 + demos/payments/src/utils/ensure-balances.ts | 3 +- .../payments/src/utils/ensure-private-keys.ts | 4 +- demos/payments/src/utils/keypair-info.ts | 3 +- demos/payments/src/utils/usdc-contract.ts | 3 +- demos/payments/tsconfig.json | 1 - demos/skyfire-kya/src/index.ts | 6 +- demos/skyfire-kya/src/skyfire-kya-ack-id.ts | 1 + demos/skyfire-kya/tsconfig.json | 1 - docs/package.json | 10 +- examples/issuer/bin/start-server.ts | 5 +- examples/issuer/src/db/get-db.ts | 1 + .../src/db/migrations/meta/0000_snapshot.json | 6 +- .../src/db/migrations/meta/_journal.json | 2 +- examples/issuer/src/db/queries/credentials.ts | 5 +- .../issuer/src/db/queries/status-lists.ts | 2 + examples/issuer/src/db/schema.ts | 8 +- .../db/utils/get-status-list-position.test.ts | 1 + examples/issuer/src/index.ts | 1 + .../build-signed-credential.test.ts | 5 +- .../credentials/build-signed-credential.ts | 7 +- .../src/lib/utils/compress-bit-string.test.ts | 1 + examples/issuer/src/middleware/database.ts | 3 +- .../issuer/src/middleware/did-resolver.ts | 3 +- examples/issuer/src/middleware/issuer.ts | 6 +- .../issuer/src/routes/credentials.test.ts | 17 +- examples/issuer/src/routes/credentials.ts | 26 ++-- examples/issuer/src/routes/receipts.test.ts | 17 +- examples/issuer/src/routes/receipts.ts | 26 ++-- examples/issuer/src/routes/status.ts | 11 +- examples/issuer/src/routes/well-known.ts | 4 +- examples/issuer/tsconfig.json | 1 - examples/local-did-host/bin/serve.ts | 3 +- examples/local-did-host/src/index.ts | 1 + .../src/middleware/identities.ts | 6 +- examples/local-did-host/tsconfig.json | 3 +- examples/verifier/bin/serve.ts | 3 +- examples/verifier/src/index.ts | 1 + examples/verifier/src/middleware/verifier.ts | 3 +- examples/verifier/src/routes/well-known.ts | 4 +- examples/verifier/tsconfig.json | 1 - package.json | 4 +- packages/ack-id/src/a2a/sign-message.ts | 4 +- packages/ack-id/src/a2a/verify.ts | 2 + .../src/controller-claim-verifier.test.ts | 1 + .../ack-id/src/controller-claim-verifier.ts | 1 + .../ack-id/src/controller-credential.test.ts | 1 + packages/ack-id/src/controller-credential.ts | 1 + .../src/create-payment-receipt.test.ts | 4 +- .../ack-pay/src/create-payment-receipt.ts | 1 + .../src/create-payment-request-token.test.ts | 4 +- .../src/create-payment-request-token.ts | 2 + .../src/create-signed-payment-request.test.ts | 4 +- .../src/create-signed-payment-request.ts | 5 +- packages/ack-pay/src/payment-request.test.ts | 1 + packages/ack-pay/src/payment-request.ts | 1 + .../src/receipt-claim-verifier.test.ts | 1 + .../ack-pay/src/receipt-claim-verifier.ts | 1 + .../src/verify-payment-receipt.test.ts | 4 +- .../ack-pay/src/verify-payment-receipt.ts | 3 + .../src/verify-payment-request-token.test.ts | 4 +- .../src/verify-payment-request-token.ts | 5 +- packages/caip/src/caips/caip-10.test.ts | 1 + packages/caip/src/caips/caip-2.ts | 2 +- packages/caip/src/schemas/schemas.test.ts | 2 + packages/caip/src/schemas/valibot.ts | 1 + packages/caip/src/schemas/zod/v3.ts | 1 + packages/caip/src/schemas/zod/v4.ts | 1 + packages/did/src/create-did-document.test.ts | 1 + packages/did/src/create-did-document.ts | 4 +- .../src/did-resolvers/did-resolver.test.ts | 1 + .../did/src/did-resolvers/did-resolver.ts | 1 + .../did/src/did-resolvers/get-did-resolver.ts | 2 + .../did-resolvers/pkh-did-resolver.test.ts | 1 + .../did/src/did-resolvers/pkh-did-resolver.ts | 1 + .../did-resolvers/web-did-resolver.test.ts | 2 + .../did/src/did-resolvers/web-did-resolver.ts | 1 + packages/did/src/did-uri.test.ts | 1 + packages/did/src/methods/did-key.test.ts | 7 +- packages/did/src/methods/did-key.ts | 1 + packages/did/src/methods/did-pkh.test.ts | 1 + packages/did/src/methods/did-pkh.ts | 38 ++--- packages/did/src/methods/did-web.test.ts | 1 + packages/did/src/methods/did-web.ts | 5 +- packages/did/src/resolve-did.test.ts | 4 +- packages/did/src/resolve-did.ts | 4 +- packages/did/src/schemas/valibot.ts | 1 + packages/did/src/schemas/zod/v3.ts | 1 + packages/did/src/schemas/zod/v4.ts | 1 + packages/jwt/src/create-jwt.test.ts | 1 + packages/jwt/src/create-jwt.ts | 2 + packages/jwt/src/jwt-algorithm.test.ts | 1 + packages/jwt/src/jwt-string.test.ts | 1 + packages/jwt/src/schemas/valibot.ts | 4 +- packages/jwt/src/schemas/zod/v3.ts | 2 + packages/jwt/src/schemas/zod/v4.ts | 2 + packages/jwt/src/signer.test.ts | 1 + packages/jwt/src/signer.ts | 1 + packages/jwt/src/verify.test.ts | 1 + packages/keys/src/curves/ed25519.test.ts | 1 + packages/keys/src/curves/ed25519.ts | 1 + packages/keys/src/curves/secp256k1.test.ts | 1 + packages/keys/src/curves/secp256k1.ts | 1 + packages/keys/src/curves/secp256r1.test.ts | 1 + packages/keys/src/curves/secp256r1.ts | 1 + packages/keys/src/encoding/base58.test.ts | 1 + packages/keys/src/encoding/base64.test.ts | 1 + packages/keys/src/encoding/hex.test.ts | 1 + packages/keys/src/encoding/jwk.test.ts | 1 + packages/keys/src/encoding/jwk.ts | 1 + packages/keys/src/encoding/multibase.test.ts | 1 + packages/keys/src/encoding/multibase.ts | 4 +- packages/keys/src/key-curves.test.ts | 1 + packages/keys/src/keypair.test.ts | 1 + packages/keys/src/keypair.ts | 3 +- packages/keys/src/public-key.test.ts | 1 + packages/keys/src/public-key.ts | 5 +- packages/vc/src/create-credential.test.ts | 1 + packages/vc/src/create-presentation.test.ts | 4 +- packages/vc/src/create-presentation.ts | 1 + packages/vc/src/is-credential.ts | 2 + .../revocation/is-status-list-credential.ts | 6 +- .../vc/src/revocation/make-revocable.test.ts | 2 + .../revocation/status-list-credential.test.ts | 1 + .../src/revocation/status-list-credential.ts | 3 +- packages/vc/src/revocation/types.ts | 1 + packages/vc/src/schemas/valibot.ts | 1 + packages/vc/src/schemas/zod/v3.ts | 1 + packages/vc/src/schemas/zod/v4.ts | 1 + .../vc/src/signing/sign-credential.test.ts | 4 +- packages/vc/src/signing/sign-credential.ts | 1 + .../vc/src/signing/sign-presentation.test.ts | 6 +- packages/vc/src/signing/sign-presentation.ts | 1 + packages/vc/src/types.ts | 6 +- .../vc/src/verification/is-expired.test.ts | 2 + .../vc/src/verification/is-revoked.test.ts | 4 +- packages/vc/src/verification/is-revoked.ts | 4 +- .../verification/parse-jwt-credential.test.ts | 1 + .../src/verification/parse-jwt-credential.ts | 2 + packages/vc/src/verification/types.ts | 1 + .../verify-parsed-credential.test.ts | 4 +- .../verification/verify-parsed-credential.ts | 4 +- .../vc/src/verification/verify-proof.test.ts | 2 + packages/vc/src/verification/verify-proof.ts | 3 + tools/api-utils/src/api-response.ts | 3 +- .../api-utils/src/middleware/error-handler.ts | 4 +- .../middleware/signed-payload-validator.ts | 4 +- tools/api-utils/src/validate-payload.test.ts | 1 + tools/api-utils/src/validate-payload.ts | 2 + tools/cli-tools/src/prompts.ts | 1 + tools/cli-tools/src/update-env-file.ts | 2 +- tools/typescript-config/package.json | 10 +- turbo.json | 8 +- 175 files changed, 480 insertions(+), 259 deletions(-) diff --git a/demos/e2e/src/agent.ts b/demos/e2e/src/agent.ts index 787abc2..d0d5c7c 100644 --- a/demos/e2e/src/agent.ts +++ b/demos/e2e/src/agent.ts @@ -15,9 +15,11 @@ import { type Keypair, type PaymentRequest, } from "agentcommercekit" + import type { CredentialVerifier } from "./credential-verifier" -import { PaymentRequiredError } from "./payment-required-error" import type { ReceiptVerifier } from "./receipt-verifier" + +import { PaymentRequiredError } from "./payment-required-error" import { publicKeyToAddress } from "./utils/evm-address" import { verifyAgentIdentityWithCredential } from "./verification" diff --git a/demos/e2e/src/index.ts b/demos/e2e/src/index.ts index 407b402..1e96944 100644 --- a/demos/e2e/src/index.ts +++ b/demos/e2e/src/index.ts @@ -15,6 +15,7 @@ import { type Keypair, type PaymentRequest, } from "agentcommercekit" + import { Agent } from "./agent" import { CredentialIssuer } from "./credential-issuer" import { CredentialVerifier } from "./credential-verifier" diff --git a/demos/e2e/src/user.ts b/demos/e2e/src/user.ts index 1c9b183..30cbf6b 100644 --- a/demos/e2e/src/user.ts +++ b/demos/e2e/src/user.ts @@ -9,6 +9,7 @@ import { type JwtSigner, type Keypair, } from "agentcommercekit" + import { publicKeyToAddress } from "./utils/evm-address" interface ConstructorParams { diff --git a/demos/e2e/src/verification.ts b/demos/e2e/src/verification.ts index 08cdf81..4ffbc68 100644 --- a/demos/e2e/src/verification.ts +++ b/demos/e2e/src/verification.ts @@ -10,6 +10,7 @@ import { type DidResolver, type JwtString, } from "agentcommercekit" + import type { CredentialVerifier } from "./credential-verifier" /** diff --git a/demos/e2e/tsconfig.json b/demos/e2e/tsconfig.json index 6293e46..85d2481 100644 --- a/demos/e2e/tsconfig.json +++ b/demos/e2e/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@repo/typescript-config/typescript-library.json", "compilerOptions": { - "baseUrl": ".", "paths": { "@/*": ["./src/*"] } diff --git a/demos/identity-a2a/src/agent.ts b/demos/identity-a2a/src/agent.ts index b1520fd..367c53a 100644 --- a/demos/identity-a2a/src/agent.ts +++ b/demos/identity-a2a/src/agent.ts @@ -13,7 +13,7 @@ import type { AgentExecutor, ExecutionEventBus, Message, - RequestContext + RequestContext, } from "@a2a-js/sdk" import { colors } from "@repo/cli-tools" @@ -28,7 +28,7 @@ import { type KeyCurve, type Keypair, type Verifiable, - type W3CCredential + type W3CCredential, } from "agentcommercekit" import { createAgentCardServiceEndpoint } from "agentcommercekit/a2a" import { v4 } from "uuid" @@ -47,8 +47,8 @@ export abstract class Agent implements AgentExecutor { public did: DidUri, public jwtSigner: JwtSigner, public didDocument: DidDocument, - public vc: Verifiable - ) { } + public vc: Verifiable, + ) {} static async create( this: new ( @@ -57,9 +57,9 @@ export abstract class Agent implements AgentExecutor { did: DidUri, jwtSigner: JwtSigner, didDocument: DidDocument, - vc: Verifiable + vc: Verifiable, ) => T, - config: AgentConfig + config: AgentConfig, ) { const { agentCard, curve, controller } = config @@ -71,19 +71,19 @@ export abstract class Agent implements AgentExecutor { const didDocument = createDidDocumentFromKeypair({ did, keypair, - service: [createAgentCardServiceEndpoint(did, agentCardUrl)] + service: [createAgentCardServiceEndpoint(did, agentCardUrl)], }) console.log(`🌐 Generated ${curve} keypair with did:web for ${this.name}`) console.log(" DID:", colors.dim(did)) console.log( " Public key:", - colors.dim(Buffer.from(keypair.publicKey).toString("hex")) + colors.dim(Buffer.from(keypair.publicKey).toString("hex")), ) const vc = await issueCredential({ subject: did, - controller + controller, }) console.log("Generated sample VC for ownership attestation") @@ -94,7 +94,7 @@ export abstract class Agent implements AgentExecutor { async execute( requestContext: RequestContext, - eventBus: ExecutionEventBus + eventBus: ExecutionEventBus, ): Promise { const message: Message = { kind: "message", @@ -103,9 +103,9 @@ export abstract class Agent implements AgentExecutor { parts: [ { kind: "text", - text: `User message ${requestContext.userMessage.messageId} received and processed` - } - ] + text: `User message ${requestContext.userMessage.messageId} received and processed`, + }, + ], } eventBus.publish(message) @@ -113,7 +113,7 @@ export abstract class Agent implements AgentExecutor { async cancelTask( _taskId: string, - _eventBus: ExecutionEventBus + _eventBus: ExecutionEventBus, ): Promise { // Task canceled return Promise.resolve() diff --git a/demos/identity-a2a/src/bank-client-agent.ts b/demos/identity-a2a/src/bank-client-agent.ts index a63ca5a..14d07c5 100644 --- a/demos/identity-a2a/src/bank-client-agent.ts +++ b/demos/identity-a2a/src/bank-client-agent.ts @@ -4,7 +4,7 @@ import { A2AClient, type AgentCard, type Message, - type TextPart + type TextPart, } from "@a2a-js/sdk" import { colors, createLogger, waitForEnter } from "@repo/cli-tools" import { @@ -12,12 +12,12 @@ import { getDidResolver, resolveDid, verifyParsedCredential, - type DidUri + type DidUri, } from "agentcommercekit" import { createA2AHandshakeMessage, createSignedA2AMessage, - verifyA2AHandshakeMessage + verifyA2AHandshakeMessage, } from "agentcommercekit/a2a" import { messageSchema } from "agentcommercekit/a2a/schemas/valibot" import { v4 } from "uuid" @@ -29,7 +29,7 @@ import { fetchUrlFromAgentCardUrl } from "./utils/fetch-agent-card" import { isFailedTaskResponse, isMessageResponse, - isRpcErrorResponse + isRpcErrorResponse, } from "./utils/response-parsers" import { startAgentServer } from "./utils/server-utils" @@ -42,13 +42,13 @@ export class BankClientAgent extends Agent { async requestBankingServices(): Promise { console.log( colors.yellow( - "📚 STEP 1: Initial Setup - At this point, the agents cannot trust each other yet" - ) + "📚 STEP 1: Initial Setup - At this point, the agents cannot trust each other yet", + ), ) console.log( colors.yellow( - " The bank client needs to discover and authenticate with the bank teller" - ) + " The bank client needs to discover and authenticate with the bank teller", + ), ) console.log("") await waitForEnter("Press Enter to start the client agent...") @@ -61,12 +61,12 @@ export class BankClientAgent extends Agent { try { this.server = startAgentServer(this, { logger, - port: 3000 + port: 3000, }) logger.log("✅ Bank Client server started successfully") logger.log( - `🌐 Client DID document available at: ${colors.dim("http://localhost:3000/.well-known/did.json")}` + `🌐 Client DID document available at: ${colors.dim("http://localhost:3000/.well-known/did.json")}`, ) } catch (error) { logger.log("❌ Failed to start Bank Client server:", error as Error) @@ -78,18 +78,18 @@ export class BankClientAgent extends Agent { console.log( colors.yellow( - "📚 STEP 2: Service Discovery - Client discovers the bank's public DID" - ) + "📚 STEP 2: Service Discovery - Client discovers the bank's public DID", + ), ) console.log( colors.yellow( - " The client constructs the bank's did:web from its domain (localhost:3001)" - ) + " The client constructs the bank's did:web from its domain (localhost:3001)", + ), ) console.log( colors.yellow( - " Then resolves the DID document to find the bank's public keys and services" - ) + " Then resolves the DID document to find the bank's public keys and services", + ), ) console.log("") await waitForEnter("Press Enter to begin service discovery...") @@ -108,17 +108,17 @@ export class BankClientAgent extends Agent { console.log( colors.yellow( - "📚 STEP 2.5: Unauthenticated Request - Client tries to access services without identity proof" - ) + "📚 STEP 2.5: Unauthenticated Request - Client tries to access services without identity proof", + ), ) console.log( colors.yellow( - " Let's see what happens when we try to access banking services without authentication..." - ) + " Let's see what happens when we try to access banking services without authentication...", + ), ) console.log("") await waitForEnter( - "Press Enter to attempt unauthenticated banking request..." + "Press Enter to attempt unauthenticated banking request...", ) // Try to access banking services without authentication first @@ -130,14 +130,14 @@ export class BankClientAgent extends Agent { parts: [ { kind: "text", - text: "I would like to check my account balance please." - } - ] + text: "I would like to check my account balance please.", + }, + ], } const unauthenticatedParams = { id: v4(), - message: unauthenticatedMessage + message: unauthenticatedMessage, } logger.log("🚨 Sending unauthenticated request to bank...") @@ -155,12 +155,12 @@ export class BankClientAgent extends Agent { } catch (_error: unknown) { console.log("") console.log( - colors.yellow("EXPECTED RESULT: Bank rejects unauthenticated request") + colors.yellow("EXPECTED RESULT: Bank rejects unauthenticated request"), ) console.log( colors.yellow( - " The bank doesn't know who this customer is or if they can be trusted" - ) + " The bank doesn't know who this customer is or if they can be trusted", + ), ) console.log(colors.yellow(" Error received: Authentication required")) logger.log("✅ Bank REJECTED unauthenticated request") @@ -170,18 +170,18 @@ export class BankClientAgent extends Agent { console.log( colors.yellow( - "📚 STEP 3: Identity Challenge - Client sends cryptographic proof to bank" - ) + "📚 STEP 3: Identity Challenge - Client sends cryptographic proof to bank", + ), ) console.log( colors.yellow( - " Now the client creates a JWT signed with its private key, scoped to the bank's DID" - ) + " Now the client creates a JWT signed with its private key, scoped to the bank's DID", + ), ) console.log( colors.yellow( - " This cryptographically proves the client controls the private key for its DID" - ) + " This cryptographically proves the client controls the private key for its DID", + ), ) console.log("") await waitForEnter("Press Enter to send identity verification challenge...") @@ -189,7 +189,7 @@ export class BankClientAgent extends Agent { // Step 3: Send identity verification challenge const authSuccess = await this.performIdentityVerification( client, - serverDid + serverDid, ) if (!authSuccess) { throw new Error("❌ Identity verification failed!") @@ -198,18 +198,18 @@ export class BankClientAgent extends Agent { try { console.log( colors.yellow( - "📚 STEP 4: Authenticated Communication - Now both parties trust each other" - ) + "📚 STEP 4: Authenticated Communication - Now both parties trust each other", + ), ) console.log( colors.yellow( - " Client can now send signed messages to access banking services" - ) + " Client can now send signed messages to access banking services", + ), ) console.log( colors.yellow( - " Bank verifies each message signature against the client's established identity" - ) + " Bank verifies each message signature against the client's established identity", + ), ) console.log(colors.yellow(" This time the request should succeed!")) console.log("") @@ -224,20 +224,20 @@ export class BankClientAgent extends Agent { parts: [ { kind: "text", - text: "I would like to access my banking services. Please verify my identity." - } - ] + text: "I would like to access my banking services. Please verify my identity.", + }, + ], }, { did: this.did, jwtSigner: this.jwtSigner, alg: curveToJwtAlgorithm(this.keypair.curve), - expiresIn: 5 * 60 - } + expiresIn: 5 * 60, + }, ) const response = await client.sendMessage({ - message + message, }) if (isRpcErrorResponse(response)) { @@ -253,7 +253,7 @@ export class BankClientAgent extends Agent { if (!parseResult.success) { logger.log( "❌ Invalid bank response format:", - JSON.stringify(parseResult.issues) + JSON.stringify(parseResult.issues), ) return } @@ -268,24 +268,24 @@ export class BankClientAgent extends Agent { console.log("") console.log( - colors.yellow("📚 SUCCESS: Secure Banking Session Established!") + colors.yellow("📚 SUCCESS: Secure Banking Session Established!"), ) console.log( colors.yellow( - " ✓ Mutual authentication completed using cryptographic DIDs" - ) + " ✓ Mutual authentication completed using cryptographic DIDs", + ), ) console.log(colors.yellow(" ✓ No shared secrets or passwords required")) console.log( colors.yellow( - " ✓ Each message is cryptographically signed and verified" - ) + " ✓ Each message is cryptographically signed and verified", + ), ) console.log("") await waitForEnter("Press Enter to complete the demo...") logger.log( - "🏦 Bank Client: Thank you! I appreciate the secure identity verification process." + "🏦 Bank Client: Thank you! I appreciate the secure identity verification process.", ) } catch (error) { logger.log("❌ Error accessing banking services:", error as Error) @@ -303,7 +303,7 @@ export class BankClientAgent extends Agent { private async performIdentityVerification( client: A2AClient, - serverDid: DidUri + serverDid: DidUri, ): Promise { try { logger.log("🔐 Starting identity verification with bank teller...") @@ -312,22 +312,22 @@ export class BankClientAgent extends Agent { "user", { recipient: serverDid, - vc: this.vc + vc: this.vc, }, { did: this.did, jwtSigner: this.jwtSigner, alg: curveToJwtAlgorithm(this.keypair.curve), - expiresIn: 5 * 60 - } + expiresIn: 5 * 60, + }, ) logger.log( "Sending identity verification challenge...\n", - colors.dim(JSON.stringify(message, null, 2)) + colors.dim(JSON.stringify(message, null, 2)), ) const authResponse = await client.sendMessage({ - message + message, }) if ("error" in authResponse) { @@ -336,7 +336,7 @@ export class BankClientAgent extends Agent { if (authResponse.result.kind !== "message") { throw new Error( - "❌ Failed to send identity verification challenge: Did not receive message response" + "❌ Failed to send identity verification challenge: Did not receive message response", ) } @@ -347,13 +347,13 @@ export class BankClientAgent extends Agent { // Validate that this is intended for our DID did: this.did, // Validate that the bank teller is the counterparty - counterparty: serverDid - } + counterparty: serverDid, + }, ) await verifyParsedCredential(bankVc, { resolver: didResolverWithIssuer, - trustedIssuers: [issuerDid] + trustedIssuers: [issuerDid], }) // Check that bank teller included our nonce @@ -394,19 +394,19 @@ export class BankClientAgent extends Agent { logger.log(" DID Document ID:", colors.dim(didDocument.id)) logger.log( " Services:", - colors.dim(JSON.stringify(didDocument.service, null, 2)) + colors.dim(JSON.stringify(didDocument.service, null, 2)), ) // Look for AgentCard service in the DID document if (didDocument.service && didDocument.service.length > 0) { const agentCardService = didDocument.service.find( - (service) => service.type === "AgentCard" + (service) => service.type === "AgentCard", ) if (!agentCardService) { logger.log("⚠️ No AgentCard service found in DID document") throw new Error( - "No AgentCard service found in bank teller DID document" + "No AgentCard service found in bank teller DID document", ) } @@ -414,7 +414,7 @@ export class BankClientAgent extends Agent { logger.log(" Service ID:", colors.dim(agentCardService.id)) logger.log( " Service Endpoint:", - colors.dim(JSON.stringify(agentCardService.serviceEndpoint, null, 2)) + colors.dim(JSON.stringify(agentCardService.serviceEndpoint, null, 2)), ) // Extract the A2A server URL from the service endpoint @@ -424,17 +424,17 @@ export class BankClientAgent extends Agent { // We need to fetch the url from the agent card this.a2aServerUrl = await fetchUrlFromAgentCardUrl( - agentCardService.serviceEndpoint + agentCardService.serviceEndpoint, ) logger.log( "✅ Discovered A2A server URL:", - colors.dim(this.a2aServerUrl) + colors.dim(this.a2aServerUrl), ) } } catch (error) { logger.log( "❌ Failed to resolve bank teller DID document:", - error as Error + error as Error, ) throw error // Don't continue if we can't resolve the DID document } @@ -450,13 +450,13 @@ const agentCard: AgentCard = { defaultInputModes: ["text"], defaultOutputModes: ["text"], capabilities: { streaming: false }, - skills: [] + skills: [], } export async function getClientAgent() { return BankClientAgent.create({ agentCard, curve: "Ed25519", - controller: "did:web:builder.ack.com" + controller: "did:web:builder.ack.com", }) } diff --git a/demos/identity-a2a/src/bank-teller-agent.ts b/demos/identity-a2a/src/bank-teller-agent.ts index 6eef6f6..8857978 100644 --- a/demos/identity-a2a/src/bank-teller-agent.ts +++ b/demos/identity-a2a/src/bank-teller-agent.ts @@ -17,6 +17,7 @@ import { verifyA2ASignedMessage, } from "agentcommercekit/a2a" import { v4 } from "uuid" + import { Agent } from "./agent" import { didResolverWithIssuer, issuerDid } from "./issuer" import { startAgentServer } from "./utils/server-utils" diff --git a/demos/identity-a2a/src/run-demo.ts b/demos/identity-a2a/src/run-demo.ts index 542b6eb..5e29b0f 100644 --- a/demos/identity-a2a/src/run-demo.ts +++ b/demos/identity-a2a/src/run-demo.ts @@ -1,4 +1,5 @@ import { colors, waitForEnter } from "@repo/cli-tools" + import { getClientAgent } from "./bank-client-agent" import { startTellerServer } from "./bank-teller-agent" diff --git a/demos/identity-a2a/src/utils/server-utils.ts b/demos/identity-a2a/src/utils/server-utils.ts index c47801b..ca1bc12 100644 --- a/demos/identity-a2a/src/utils/server-utils.ts +++ b/demos/identity-a2a/src/utils/server-utils.ts @@ -5,6 +5,7 @@ import { } from "@a2a-js/sdk" import { colors, createLogger, type Logger } from "@repo/cli-tools" import express from "express" + import type { Agent } from "../agent" type Options = { diff --git a/demos/identity-a2a/tsconfig.json b/demos/identity-a2a/tsconfig.json index 6293e46..85d2481 100644 --- a/demos/identity-a2a/tsconfig.json +++ b/demos/identity-a2a/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@repo/typescript-config/typescript-library.json", "compilerOptions": { - "baseUrl": ".", "paths": { "@/*": ["./src/*"] } diff --git a/demos/identity/src/agent.ts b/demos/identity/src/agent.ts index 67cae3f..1f3cec2 100644 --- a/demos/identity/src/agent.ts +++ b/demos/identity/src/agent.ts @@ -1,3 +1,5 @@ +import type { CoreMessage } from "ai" + import { colors } from "@repo/cli-tools" import { createDidDocumentFromKeypair, @@ -14,7 +16,7 @@ import { type Verifiable, type W3CCredential, } from "agentcommercekit" -import type { CoreMessage } from "ai" + import type { CredentialVerifier } from "./credential-verifier" interface AgentConstructorParams { diff --git a/demos/identity/src/client-agent.ts b/demos/identity/src/client-agent.ts index 916d68f..1dc1d2c 100644 --- a/demos/identity/src/client-agent.ts +++ b/demos/identity/src/client-agent.ts @@ -2,6 +2,7 @@ import { valibotSchema } from "@ai-sdk/valibot" import { colors } from "@repo/cli-tools" import { generateText, tool, type CoreMessage } from "ai" import * as v from "valibot" + import { Agent } from "./agent" import { getModel } from "./get-model" diff --git a/demos/identity/src/haiku-agent.ts b/demos/identity/src/haiku-agent.ts index 674bde5..8c626c0 100644 --- a/demos/identity/src/haiku-agent.ts +++ b/demos/identity/src/haiku-agent.ts @@ -1,4 +1,5 @@ import { generateText, type CoreMessage } from "ai" + import { Agent } from "./agent" import { getModel } from "./get-model" import { getIdentityTools } from "./identity-tools" diff --git a/demos/identity/src/identity-tools.ts b/demos/identity/src/identity-tools.ts index a25257c..094b591 100644 --- a/demos/identity/src/identity-tools.ts +++ b/demos/identity/src/identity-tools.ts @@ -9,6 +9,7 @@ import { import { credentialSchema } from "agentcommercekit/schemas/valibot" import { tool } from "ai" import * as v from "valibot" + import type { CredentialVerifier } from "./credential-verifier" const challengeResponseSchema = v.object({ diff --git a/demos/identity/src/index.ts b/demos/identity/src/index.ts index 77436e4..8e53fe7 100644 --- a/demos/identity/src/index.ts +++ b/demos/identity/src/index.ts @@ -1,5 +1,3 @@ -import path, { dirname } from "path" -import { fileURLToPath } from "url" import { colors, confirm, @@ -20,6 +18,9 @@ import { parseJwtCredential, type DidUri, } from "agentcommercekit" +import path, { dirname } from "path" +import { fileURLToPath } from "url" + import { ClientAgent } from "./client-agent" import { CredentialIssuer } from "./credential-issuer" import { CredentialVerifier } from "./credential-verifier" diff --git a/demos/identity/src/serve-agent.ts b/demos/identity/src/serve-agent.ts index 2f1841c..76b0a52 100644 --- a/demos/identity/src/serve-agent.ts +++ b/demos/identity/src/serve-agent.ts @@ -4,6 +4,7 @@ import { logger } from "@repo/api-utils/middleware/logger" import { colors } from "@repo/cli-tools" import { Hono } from "hono" import * as v from "valibot" + import type { Agent } from "./agent" type ServeAgentConfig = { diff --git a/demos/identity/tsconfig.json b/demos/identity/tsconfig.json index 6293e46..85d2481 100644 --- a/demos/identity/tsconfig.json +++ b/demos/identity/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@repo/typescript-config/typescript-library.json", "compilerOptions": { - "baseUrl": ".", "paths": { "@/*": ["./src/*"] } diff --git a/demos/payments/src/constants.ts b/demos/payments/src/constants.ts index 073cdf0..fee84ed 100644 --- a/demos/payments/src/constants.ts +++ b/demos/payments/src/constants.ts @@ -1,5 +1,5 @@ -import path from "node:path" import { caip2ChainIds } from "agentcommercekit" +import path from "node:path" import { createPublicClient, http } from "viem" import { baseSepolia } from "viem/chains" diff --git a/demos/payments/src/index.ts b/demos/payments/src/index.ts index f234847..0ca523a 100644 --- a/demos/payments/src/index.ts +++ b/demos/payments/src/index.ts @@ -51,6 +51,7 @@ import { } from "agentcommercekit/schemas/valibot" import * as v from "valibot" import { isAddress } from "viem" + import { chain, chainId, @@ -174,8 +175,14 @@ The Client attempts to access a protected resource on the Server. Since no valid const paymentOptions = paymentRequest.paymentOptions function networkLabel(network: string | undefined): string { - if (network === "stripe") return "Stripe" - if (network?.startsWith("solana:")) return "Solana" + if (network === "stripe") { + return "Stripe" + } + + if (network?.startsWith("solana:")) { + return "Solana" + } + return "Base Sepolia" } diff --git a/demos/payments/src/payment-service.ts b/demos/payments/src/payment-service.ts index 2b29c56..356ba5f 100644 --- a/demos/payments/src/payment-service.ts +++ b/demos/payments/src/payment-service.ts @@ -14,6 +14,7 @@ import { Hono, type Env, type TypedResponse } from "hono" import { env } from "hono/adapter" import { HTTPException } from "hono/http-exception" import * as v from "valibot" + import { PAYMENT_SERVICE_URL } from "./constants" import { getKeypairInfo } from "./utils/keypair-info" diff --git a/demos/payments/src/receipt-service.ts b/demos/payments/src/receipt-service.ts index caad4fd..4dfeb3f 100644 --- a/demos/payments/src/receipt-service.ts +++ b/demos/payments/src/receipt-service.ts @@ -28,6 +28,7 @@ import { HTTPException } from "hono/http-exception" import * as v from "valibot" import { erc20Abi, isAddressEqual } from "viem" import { parseEventLogs } from "viem/utils" + import { chainId, publicClient, solana, usdcAddress } from "./constants" import { asAddress } from "./utils/as-address" import { getKeypairInfo } from "./utils/keypair-info" @@ -274,7 +275,9 @@ function extractSignerPubkeys(tx: NonNullable): Set { if (key.signer) { const pub = typeof key.pubkey === "string" ? key.pubkey : key.pubkey.toBase58() - if (pub) signers.add(pub) + if (pub) { + signers.add(pub) + } } } return signers @@ -287,9 +290,15 @@ type TokenBalance = { } function toBigInt(value: unknown): bigint { - if (typeof value === "string") return BigInt(value) - if (typeof value === "number") return BigInt(value) - if (typeof value === "bigint") return value + if (typeof value === "string") { + return BigInt(value) + } + if (typeof value === "number") { + return BigInt(value) + } + if (typeof value === "bigint") { + return value + } return 0n } @@ -312,7 +321,9 @@ async function verifySolanaPayment( for (let i = 0; i < maxAttempts; i++) { tx = await fetchTransaction(rpc, signature) - if (tx && !tx.meta?.err) break + if (tx && !tx.meta?.err) { + break + } await new Promise((r) => setTimeout(r, delayMs)) } if (!tx || tx.meta?.err) { diff --git a/demos/payments/src/server.ts b/demos/payments/src/server.ts index 359be59..344d8ce 100644 --- a/demos/payments/src/server.ts +++ b/demos/payments/src/server.ts @@ -11,6 +11,7 @@ import { import { Hono, type Env, type TypedResponse } from "hono" import { env } from "hono/adapter" import { HTTPException } from "hono/http-exception" + import { chainId, PAYMENT_SERVICE_URL, diff --git a/demos/payments/src/utils/ensure-balances.ts b/demos/payments/src/utils/ensure-balances.ts index 06bf39e..fe0d090 100644 --- a/demos/payments/src/utils/ensure-balances.ts +++ b/demos/payments/src/utils/ensure-balances.ts @@ -1,9 +1,10 @@ -import { solana } from "@/constants" import { colors, log, waitForEnter } from "@repo/cli-tools" import { createSolanaRpc, address as solAddress } from "@solana/kit" import { createPublicClient, erc20Abi, http, type Chain } from "viem" import { formatUnits } from "viem/utils" +import { solana } from "@/constants" + /** * Ensure the client wallet has a non-zero balance of USDC and ETH */ diff --git a/demos/payments/src/utils/ensure-private-keys.ts b/demos/payments/src/utils/ensure-private-keys.ts index 9d473c7..06f8e34 100644 --- a/demos/payments/src/utils/ensure-private-keys.ts +++ b/demos/payments/src/utils/ensure-private-keys.ts @@ -1,6 +1,8 @@ -import { envFilePath } from "@/constants" import { colors, log, updateEnvFile } from "@repo/cli-tools" import { bytesToBase58, generateKeypair } from "agentcommercekit" + +import { envFilePath } from "@/constants" + import { generatePrivateKeyHex } from "./keypair-info" export async function ensurePrivateKey(name: string): Promise { diff --git a/demos/payments/src/utils/keypair-info.ts b/demos/payments/src/utils/keypair-info.ts index 36ab79d..56518ed 100644 --- a/demos/payments/src/utils/keypair-info.ts +++ b/demos/payments/src/utils/keypair-info.ts @@ -1,4 +1,3 @@ -import { chainId } from "@/constants" import { bytesToHexString, createDidPkhUri, @@ -14,6 +13,8 @@ import { import { privateKeyToAccount, type Account } from "viem/accounts" import { publicKeyToAddress } from "viem/utils" +import { chainId } from "@/constants" + export type KeypairInfo = { publicKeyHex: `0x${string}` did: DidUri diff --git a/demos/payments/src/utils/usdc-contract.ts b/demos/payments/src/utils/usdc-contract.ts index 53d5907..489e280 100644 --- a/demos/payments/src/utils/usdc-contract.ts +++ b/demos/payments/src/utils/usdc-contract.ts @@ -1,4 +1,3 @@ -import { chain, usdcAddress } from "@/constants" import { createWalletClient, encodeFunctionData, @@ -8,6 +7,8 @@ import { type Address, } from "viem" +import { chain, usdcAddress } from "@/constants" + /** * Transfer USDC to the recipient * diff --git a/demos/payments/tsconfig.json b/demos/payments/tsconfig.json index 6293e46..85d2481 100644 --- a/demos/payments/tsconfig.json +++ b/demos/payments/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@repo/typescript-config/typescript-library.json", "compilerOptions": { - "baseUrl": ".", "paths": { "@/*": ["./src/*"] } diff --git a/demos/skyfire-kya/src/index.ts b/demos/skyfire-kya/src/index.ts index bc15b68..30da8d0 100644 --- a/demos/skyfire-kya/src/index.ts +++ b/demos/skyfire-kya/src/index.ts @@ -1,3 +1,6 @@ +import type { JwtString, Verifiable, W3CCredential } from "agentcommercekit" +import type * as jose from "jose" + import { colors, errorMessage, @@ -6,8 +9,7 @@ import { successMessage, waitForEnter, } from "@repo/cli-tools" -import type { JwtString, Verifiable, W3CCredential } from "agentcommercekit" -import type * as jose from "jose" + import { generateJwks } from "./jwk-keys" import { createMockSkyfireKyaToken } from "./kya-token" import { diff --git a/demos/skyfire-kya/src/skyfire-kya-ack-id.ts b/demos/skyfire-kya/src/skyfire-kya-ack-id.ts index 5c8f67a..5adaef5 100644 --- a/demos/skyfire-kya/src/skyfire-kya-ack-id.ts +++ b/demos/skyfire-kya/src/skyfire-kya-ack-id.ts @@ -8,6 +8,7 @@ import { type W3CCredential, } from "agentcommercekit" import * as jose from "jose" + import type { SkyfireKyaJwtPayload } from "./kya-token" export interface SkyfireKyaCredentialSubject { diff --git a/demos/skyfire-kya/tsconfig.json b/demos/skyfire-kya/tsconfig.json index 6293e46..85d2481 100644 --- a/demos/skyfire-kya/tsconfig.json +++ b/demos/skyfire-kya/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@repo/typescript-config/typescript-library.json", "compilerOptions": { - "baseUrl": ".", "paths": { "@/*": ["./src/*"] } diff --git a/docs/package.json b/docs/package.json index 410a8ff..227546f 100644 --- a/docs/package.json +++ b/docs/package.json @@ -4,16 +4,16 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "https://github.com/agentcommercekit/ack", - "directory": "docs" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "https://github.com/agentcommercekit/ack", + "directory": "docs" + }, "scripts": { "clean": "git clean -fdX .turbo dist", "docs": "mintlify dev" diff --git a/examples/issuer/bin/start-server.ts b/examples/issuer/bin/start-server.ts index 0343d0a..4f1e98c 100644 --- a/examples/issuer/bin/start-server.ts +++ b/examples/issuer/bin/start-server.ts @@ -1,8 +1,9 @@ +import { serve } from "@hono/node-server" +import { migrate } from "drizzle-orm/libsql/migrator" import { join } from "node:path" + import { getDb } from "@/db/get-db" import app from "@/index" -import { serve } from "@hono/node-server" -import { migrate } from "drizzle-orm/libsql/migrator" async function startServer() { const db = getDb() diff --git a/examples/issuer/src/db/get-db.ts b/examples/issuer/src/db/get-db.ts index e577135..8451dbc 100644 --- a/examples/issuer/src/db/get-db.ts +++ b/examples/issuer/src/db/get-db.ts @@ -1,5 +1,6 @@ import { createClient } from "@libsql/client" import { drizzle } from "drizzle-orm/libsql" + import * as schema from "./schema" /** diff --git a/examples/issuer/src/db/migrations/meta/0000_snapshot.json b/examples/issuer/src/db/migrations/meta/0000_snapshot.json index 8423f4a..2267729 100644 --- a/examples/issuer/src/db/migrations/meta/0000_snapshot.json +++ b/examples/issuer/src/db/migrations/meta/0000_snapshot.json @@ -47,9 +47,7 @@ "indexes": { "credential_type_idx": { "name": "credential_type_idx", - "columns": [ - "credential_type" - ], + "columns": ["credential_type"], "isUnique": false } }, @@ -116,4 +114,4 @@ "internal": { "indexes": {} } -} \ No newline at end of file +} diff --git a/examples/issuer/src/db/migrations/meta/_journal.json b/examples/issuer/src/db/migrations/meta/_journal.json index 1c044e0..924775f 100644 --- a/examples/issuer/src/db/migrations/meta/_journal.json +++ b/examples/issuer/src/db/migrations/meta/_journal.json @@ -10,4 +10,4 @@ "breakpoints": true } ] -} \ No newline at end of file +} diff --git a/examples/issuer/src/db/queries/credentials.ts b/examples/issuer/src/db/queries/credentials.ts index c01a237..b9dbf6c 100644 --- a/examples/issuer/src/db/queries/credentials.ts +++ b/examples/issuer/src/db/queries/credentials.ts @@ -1,3 +1,5 @@ +import { eq } from "drizzle-orm" + import { credentialsTable, statusListsTable, @@ -5,8 +7,9 @@ import { type NewDatabaseCredential, } from "@/db/schema" import { getStatusListPosition } from "@/db/utils/get-status-list-position" -import { eq } from "drizzle-orm" + import type { DatabaseClient } from "../get-db" + import { maybeCreateStatusList } from "./status-lists" export async function createCredential( diff --git a/examples/issuer/src/db/queries/status-lists.ts b/examples/issuer/src/db/queries/status-lists.ts index 59e9b9d..82a4489 100644 --- a/examples/issuer/src/db/queries/status-lists.ts +++ b/examples/issuer/src/db/queries/status-lists.ts @@ -1,5 +1,7 @@ import { eq } from "drizzle-orm/sql" + import type { DatabaseClient } from "../get-db" + import { statusListsTable, type DatabaseStatusList } from "../schema" type CreateStatusListParams = Pick diff --git a/examples/issuer/src/db/schema.ts b/examples/issuer/src/db/schema.ts index c69a58e..488f13e 100644 --- a/examples/issuer/src/db/schema.ts +++ b/examples/issuer/src/db/schema.ts @@ -5,7 +5,7 @@ import { index, integer, sqliteTable as table, - text + text, } from "drizzle-orm/sqlite-core" export const STATUS_LIST_MAX_SIZE = 8_192 @@ -25,7 +25,7 @@ export const statusListsTable = table("status_lists", { updatedAt: integer("last_message_at", { mode: "timestamp_ms" }) .notNull() .default(sql`(unixepoch() * 1000)`) - .$onUpdateFn(() => new Date()) + .$onUpdateFn(() => new Date()), }) export type DatabaseStatusList = typeof statusListsTable.$inferSelect @@ -44,9 +44,9 @@ export const credentialsTable = table( issuedAt: integer("issued_at", { mode: "timestamp_ms" }) .notNull() .default(sql`(unixepoch() * 1000)`), - revokedAt: integer("revoked_at", { mode: "timestamp_ms" }) + revokedAt: integer("revoked_at", { mode: "timestamp_ms" }), }, - (t) => [index("credential_type_idx").on(t.credentialType)] + (t) => [index("credential_type_idx").on(t.credentialType)], ) export type DatabaseCredential = typeof credentialsTable.$inferSelect diff --git a/examples/issuer/src/db/utils/get-status-list-position.test.ts b/examples/issuer/src/db/utils/get-status-list-position.test.ts index 5c0a27d..6182c9c 100644 --- a/examples/issuer/src/db/utils/get-status-list-position.test.ts +++ b/examples/issuer/src/db/utils/get-status-list-position.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { STATUS_LIST_MAX_SIZE } from "../schema" import { getStatusListPosition } from "./get-status-list-position" diff --git a/examples/issuer/src/index.ts b/examples/issuer/src/index.ts index 055040e..606f421 100644 --- a/examples/issuer/src/index.ts +++ b/examples/issuer/src/index.ts @@ -1,6 +1,7 @@ import { errorHandler } from "@repo/api-utils/middleware/error-handler" import { logger } from "@repo/api-utils/middleware/logger" import { Hono, type Env } from "hono" + import credentials from "./routes/credentials" import healthcheck from "./routes/healthcheck" import receipts from "./routes/receipts" diff --git a/examples/issuer/src/lib/credentials/build-signed-credential.test.ts b/examples/issuer/src/lib/credentials/build-signed-credential.test.ts index ab6e211..664387c 100644 --- a/examples/issuer/src/lib/credentials/build-signed-credential.test.ts +++ b/examples/issuer/src/lib/credentials/build-signed-credential.test.ts @@ -1,4 +1,3 @@ -import type { DatabaseCredential } from "@/db/schema" import { createCredential, createDidWebDocumentFromKeypair, @@ -8,7 +7,11 @@ import { isJwtString, } from "agentcommercekit" import { describe, expect, it } from "vitest" + +import type { DatabaseCredential } from "@/db/schema" + import type { Issuer } from "../types" + import { buildSignedCredential } from "./build-signed-credential" describe("buildSignedCredential", async () => { diff --git a/examples/issuer/src/lib/credentials/build-signed-credential.ts b/examples/issuer/src/lib/credentials/build-signed-credential.ts index 7247052..4b7a79e 100644 --- a/examples/issuer/src/lib/credentials/build-signed-credential.ts +++ b/examples/issuer/src/lib/credentials/build-signed-credential.ts @@ -1,11 +1,14 @@ -import type { DatabaseCredential } from "@/db/schema" -import { getStatusListPosition } from "@/db/utils/get-status-list-position" import { makeRevocable, parseJwtCredential, signCredential, type Resolvable, } from "agentcommercekit" + +import type { DatabaseCredential } from "@/db/schema" + +import { getStatusListPosition } from "@/db/utils/get-status-list-position" + import type { CredentialResponse, Issuer } from "../types" type BuildSignedCredentialParams = { diff --git a/examples/issuer/src/lib/utils/compress-bit-string.test.ts b/examples/issuer/src/lib/utils/compress-bit-string.test.ts index e88b5be..4ea9b52 100644 --- a/examples/issuer/src/lib/utils/compress-bit-string.test.ts +++ b/examples/issuer/src/lib/utils/compress-bit-string.test.ts @@ -1,5 +1,6 @@ import { BitBuffer } from "bit-buffers" import { describe, expect, it } from "vitest" + import { compressBitString } from "./compress-bit-string" describe("compressBitString", () => { diff --git a/examples/issuer/src/middleware/database.ts b/examples/issuer/src/middleware/database.ts index d0c78f6..45ad6f6 100644 --- a/examples/issuer/src/middleware/database.ts +++ b/examples/issuer/src/middleware/database.ts @@ -1,6 +1,7 @@ -import { getDb, type DatabaseClient } from "@/db/get-db" import type { Env, MiddlewareHandler } from "hono" +import { getDb, type DatabaseClient } from "@/db/get-db" + declare module "hono" { interface ContextVariableMap { db: DatabaseClient diff --git a/examples/issuer/src/middleware/did-resolver.ts b/examples/issuer/src/middleware/did-resolver.ts index 414131c..b5b64bc 100644 --- a/examples/issuer/src/middleware/did-resolver.ts +++ b/examples/issuer/src/middleware/did-resolver.ts @@ -1,6 +1,7 @@ -import { getDidResolver, type DidResolver } from "agentcommercekit" import type { Env, MiddlewareHandler } from "hono" +import { getDidResolver, type DidResolver } from "agentcommercekit" + declare module "hono" { interface ContextVariableMap { resolver: DidResolver diff --git a/examples/issuer/src/middleware/issuer.ts b/examples/issuer/src/middleware/issuer.ts index 503eaa6..f0732e0 100644 --- a/examples/issuer/src/middleware/issuer.ts +++ b/examples/issuer/src/middleware/issuer.ts @@ -1,13 +1,15 @@ -import type { Issuer } from "@/lib/types" +import type { Env, MiddlewareHandler } from "hono" + import { createDidWebDocumentFromKeypair, createJwtSigner, generateKeypair, hexStringToBytes, } from "agentcommercekit" -import type { Env, MiddlewareHandler } from "hono" import { env } from "hono/adapter" +import type { Issuer } from "@/lib/types" + declare module "hono" { interface ContextVariableMap { issuer: Issuer diff --git a/examples/issuer/src/routes/credentials.test.ts b/examples/issuer/src/routes/credentials.test.ts index 2e67e7d..032f88e 100644 --- a/examples/issuer/src/routes/credentials.test.ts +++ b/examples/issuer/src/routes/credentials.test.ts @@ -1,10 +1,3 @@ -import type { DatabaseClient } from "@/db/get-db" -import { getCredential } from "@/db/queries/credentials" -import type { DatabaseCredential } from "@/db/schema" -import { - createDidWebWithSigner, - type DidWithSigner, -} from "@/test-helpers/did-web-with-signer" import { bytesToHexString, createControllerCredential, @@ -15,6 +8,16 @@ import { import { credentialSchema } from "agentcommercekit/schemas/valibot" import * as v from "valibot" import { afterEach, beforeAll, describe, expect, it, vi } from "vitest" + +import type { DatabaseClient } from "@/db/get-db" +import type { DatabaseCredential } from "@/db/schema" + +import { getCredential } from "@/db/queries/credentials" +import { + createDidWebWithSigner, + type DidWithSigner, +} from "@/test-helpers/did-web-with-signer" + import app from ".." // Mock the DID resolver diff --git a/examples/issuer/src/routes/credentials.ts b/examples/issuer/src/routes/credentials.ts index 1bac064..e7b7a28 100644 --- a/examples/issuer/src/routes/credentials.ts +++ b/examples/issuer/src/routes/credentials.ts @@ -1,13 +1,3 @@ -import { - createCredential as createDatabaseCredential, - getCredential, - revokeCredential, -} from "@/db/queries/credentials" -import { buildSignedCredential } from "@/lib/credentials/build-signed-credential" -import type { CredentialResponse } from "@/lib/types" -import { database } from "@/middleware/database" -import { didResolver } from "@/middleware/did-resolver" -import { issuer } from "@/middleware/issuer" import { apiSuccessResponse, type ApiResponse, @@ -28,6 +18,18 @@ import { Hono, type Env } from "hono" import { env } from "hono/adapter" import * as v from "valibot" +import type { CredentialResponse } from "@/lib/types" + +import { + createCredential as createDatabaseCredential, + getCredential, + revokeCredential, +} from "@/db/queries/credentials" +import { buildSignedCredential } from "@/lib/credentials/build-signed-credential" +import { database } from "@/middleware/database" +import { didResolver } from "@/middleware/did-resolver" +import { issuer } from "@/middleware/issuer" + const app = new Hono() app.use("*", issuer()) app.use("*", didResolver()) @@ -55,7 +57,7 @@ const bodySchema = v.object({ * credential: >, * jwt: JWTString * } - * @auth Request must be signed by the controller DID + * Auth: Request must be signed by the controller DID */ app.post( "/", @@ -159,7 +161,7 @@ const deleteBodySchema = v.object({ * ``` * * @returns Success response with null data - * @auth Request must be signed by the controller of the credential + * Auth: Request must be signed by the controller of the credential */ app.delete( "/", diff --git a/examples/issuer/src/routes/receipts.test.ts b/examples/issuer/src/routes/receipts.test.ts index be4437d..9892644 100644 --- a/examples/issuer/src/routes/receipts.test.ts +++ b/examples/issuer/src/routes/receipts.test.ts @@ -1,10 +1,3 @@ -import type { DatabaseClient } from "@/db/get-db" -import { getCredential } from "@/db/queries/credentials" -import type { DatabaseCredential } from "@/db/schema" -import { - createDidWebWithSigner, - type DidWithSigner, -} from "@/test-helpers/did-web-with-signer" import { bytesToHexString, createJwt, @@ -22,6 +15,16 @@ import { } from "agentcommercekit/schemas/valibot" import * as v from "valibot" import { afterEach, beforeEach, describe, expect, it, vi } from "vitest" + +import type { DatabaseClient } from "@/db/get-db" +import type { DatabaseCredential } from "@/db/schema" + +import { getCredential } from "@/db/queries/credentials" +import { + createDidWebWithSigner, + type DidWithSigner, +} from "@/test-helpers/did-web-with-signer" + import app from ".." vi.mock("agentcommercekit", async () => { diff --git a/examples/issuer/src/routes/receipts.ts b/examples/issuer/src/routes/receipts.ts index e22766f..ce34c06 100644 --- a/examples/issuer/src/routes/receipts.ts +++ b/examples/issuer/src/routes/receipts.ts @@ -1,13 +1,3 @@ -import { - createCredential as createDatabaseCredential, - getCredential, - revokeCredential, -} from "@/db/queries/credentials" -import { buildSignedCredential } from "@/lib/credentials/build-signed-credential" -import type { CredentialResponse } from "@/lib/types" -import { database } from "@/middleware/database" -import { didResolver } from "@/middleware/did-resolver" -import { issuer } from "@/middleware/issuer" import { apiSuccessResponse, type ApiResponse, @@ -30,6 +20,18 @@ import { Hono, type Env } from "hono" import { env } from "hono/adapter" import * as v from "valibot" +import type { CredentialResponse } from "@/lib/types" + +import { + createCredential as createDatabaseCredential, + getCredential, + revokeCredential, +} from "@/db/queries/credentials" +import { buildSignedCredential } from "@/lib/credentials/build-signed-credential" +import { database } from "@/middleware/database" +import { didResolver } from "@/middleware/did-resolver" +import { issuer } from "@/middleware/issuer" + const app = new Hono() app.use("*", issuer()) @@ -82,7 +84,7 @@ async function verifyPayment( * credential: >, * jwt: JWTString * } - * @auth Request must be signed by the wallet DID that made the payment + * Auth: Request must be signed by the wallet DID that made the payment */ app.post( "/", @@ -196,7 +198,7 @@ const deleteBodySchema = v.object({ * ``` * * @returns Success response with null data - * @auth Request must be signed by the original Payment Request issuer + * Auth: Request must be signed by the original Payment Request issuer */ app.delete( "/", diff --git a/examples/issuer/src/routes/status.ts b/examples/issuer/src/routes/status.ts index 4256105..55f4eef 100644 --- a/examples/issuer/src/routes/status.ts +++ b/examples/issuer/src/routes/status.ts @@ -1,8 +1,3 @@ -import { getStatusList } from "@/db/queries/status-lists" -import { compressBitString } from "@/lib/utils/compress-bit-string" -import { database } from "@/middleware/database" -import { didResolver } from "@/middleware/did-resolver" -import { issuer } from "@/middleware/issuer" import { apiSuccessResponse, type ApiResponse, @@ -18,6 +13,12 @@ import { import { Hono, type Env } from "hono" import { env } from "hono/adapter" +import { getStatusList } from "@/db/queries/status-lists" +import { compressBitString } from "@/lib/utils/compress-bit-string" +import { database } from "@/middleware/database" +import { didResolver } from "@/middleware/did-resolver" +import { issuer } from "@/middleware/issuer" + const app = new Hono() app.use("*", database()) diff --git a/examples/issuer/src/routes/well-known.ts b/examples/issuer/src/routes/well-known.ts index 194fd78..d879497 100644 --- a/examples/issuer/src/routes/well-known.ts +++ b/examples/issuer/src/routes/well-known.ts @@ -1,7 +1,9 @@ -import { issuer } from "@/middleware/issuer" import type { DidDocument } from "agentcommercekit" + import { Hono, type Env, type TypedResponse } from "hono" +import { issuer } from "@/middleware/issuer" + const app = new Hono() app.use("*", issuer()) diff --git a/examples/issuer/tsconfig.json b/examples/issuer/tsconfig.json index 9b555d9..7d2857b 100644 --- a/examples/issuer/tsconfig.json +++ b/examples/issuer/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@repo/typescript-config/base-app.json", "compilerOptions": { - "baseUrl": ".", "paths": { "@/*": ["./src/*"] } diff --git a/examples/local-did-host/bin/serve.ts b/examples/local-did-host/bin/serve.ts index 2708e2f..d0e8229 100644 --- a/examples/local-did-host/bin/serve.ts +++ b/examples/local-did-host/bin/serve.ts @@ -1,7 +1,8 @@ +import { serve } from "@hono/node-server" + import app from "@/index" import { buildUrl } from "@/lib/build-url" import { getIdentityDid } from "@/lib/identity" -import { serve } from "@hono/node-server" serve( { diff --git a/examples/local-did-host/src/index.ts b/examples/local-did-host/src/index.ts index 9999120..f9697d8 100644 --- a/examples/local-did-host/src/index.ts +++ b/examples/local-did-host/src/index.ts @@ -3,6 +3,7 @@ import { sValidator } from "@hono/standard-validator" import { logger } from "@repo/api-utils/middleware/logger" import { Hono } from "hono" import * as v from "valibot" + import { identities } from "./middleware/identities" const app = new Hono() diff --git a/examples/local-did-host/src/middleware/identities.ts b/examples/local-did-host/src/middleware/identities.ts index 578949a..9faa88d 100644 --- a/examples/local-did-host/src/middleware/identities.ts +++ b/examples/local-did-host/src/middleware/identities.ts @@ -1,8 +1,10 @@ -import { buildUrl } from "@/lib/build-url" -import { getIdentity, type Identity } from "@/lib/identity" import type { Env, MiddlewareHandler } from "hono" + import { env } from "hono/adapter" +import { buildUrl } from "@/lib/build-url" +import { getIdentity, type Identity } from "@/lib/identity" + declare module "hono" { interface ContextVariableMap { identities: { diff --git a/examples/local-did-host/tsconfig.json b/examples/local-did-host/tsconfig.json index b18d8d5..b7c62ba 100644 --- a/examples/local-did-host/tsconfig.json +++ b/examples/local-did-host/tsconfig.json @@ -1,9 +1,8 @@ { "extends": "@repo/typescript-config/base-app.json", "compilerOptions": { - "baseUrl": ".", "paths": { - "@/*": ["src/*"] + "@/*": ["./src/*"] } }, "include": ["**/*"], diff --git a/examples/verifier/bin/serve.ts b/examples/verifier/bin/serve.ts index 04a78fb..b54199f 100644 --- a/examples/verifier/bin/serve.ts +++ b/examples/verifier/bin/serve.ts @@ -1,6 +1,7 @@ -import app from "@/index" import { serve } from "@hono/node-server" +import app from "@/index" + serve( { fetch: app.fetch, diff --git a/examples/verifier/src/index.ts b/examples/verifier/src/index.ts index 6050140..92cca6e 100644 --- a/examples/verifier/src/index.ts +++ b/examples/verifier/src/index.ts @@ -1,6 +1,7 @@ import { errorHandler } from "@repo/api-utils/middleware/error-handler" import { logger } from "@repo/api-utils/middleware/logger" import { Hono, type Env } from "hono" + import healthcheck from "./routes/healthcheck" import verify from "./routes/verify" import wellKnown from "./routes/well-known" diff --git a/examples/verifier/src/middleware/verifier.ts b/examples/verifier/src/middleware/verifier.ts index 42623dd..d2e48c9 100644 --- a/examples/verifier/src/middleware/verifier.ts +++ b/examples/verifier/src/middleware/verifier.ts @@ -1,3 +1,5 @@ +import type { Env, MiddlewareHandler } from "hono" + import { createDidWebDocumentFromKeypair, createJwtSigner, @@ -7,7 +9,6 @@ import { type DidUri, type JwtSigner, } from "agentcommercekit" -import type { Env, MiddlewareHandler } from "hono" import { env } from "hono/adapter" declare module "hono" { diff --git a/examples/verifier/src/routes/well-known.ts b/examples/verifier/src/routes/well-known.ts index 1d15cb4..b33761e 100644 --- a/examples/verifier/src/routes/well-known.ts +++ b/examples/verifier/src/routes/well-known.ts @@ -1,7 +1,9 @@ -import { verifier } from "@/middleware/verifier" import type { DidDocument } from "agentcommercekit" + import { Hono, type Env, type TypedResponse } from "hono" +import { verifier } from "@/middleware/verifier" + const app = new Hono() app.use("*", verifier()) diff --git a/examples/verifier/tsconfig.json b/examples/verifier/tsconfig.json index 8ebf870..750ea61 100644 --- a/examples/verifier/tsconfig.json +++ b/examples/verifier/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@repo/typescript-config/base-app.json", "compilerOptions": { - "baseUrl": ".", "paths": { "@/*": ["./src/*"] } diff --git a/package.json b/package.json index e274b32..3ee2a83 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "type": "module", "scripts": { "build": "turbo build", - "check": "turbo check", + "check": "turbo build && turbo check", "check:format": "oxfmt --check .", "check:packages": "pnpm dlx @manypkg/cli check", "check:types": "turbo check:types", @@ -28,7 +28,7 @@ "demo:skyfire-kya": "pnpm --filter ./demos/skyfire-kya demo", "dev:docs": "pnpm --filter ./docs docs", "dev:examples": "turbo dev", - "fix": "turbo fix", + "fix": "turbo build && turbo fix", "format": "oxfmt --write .", "lint": "oxlint --type-aware", "lint:fix": "pnpm run lint -- --fix --fix-suggestions", diff --git a/packages/ack-id/src/a2a/sign-message.ts b/packages/ack-id/src/a2a/sign-message.ts index b39895d..a1a0758 100644 --- a/packages/ack-id/src/a2a/sign-message.ts +++ b/packages/ack-id/src/a2a/sign-message.ts @@ -1,5 +1,7 @@ import type { Message } from "@a2a-js/sdk" import type { DidUri } from "@agentcommercekit/did" +import type { W3CCredential } from "@agentcommercekit/vc" + import { createJwt, type JwtAlgorithm, @@ -7,8 +9,8 @@ import { type JwtSigner, type JwtString, } from "@agentcommercekit/jwt" -import type { W3CCredential } from "@agentcommercekit/vc" import { v4 } from "uuid" + import { generateRandomJti, generateRandomNonce } from "./random" type SignMessageOptions = { diff --git a/packages/ack-id/src/a2a/verify.ts b/packages/ack-id/src/a2a/verify.ts index abe2bfe..f6cddda 100644 --- a/packages/ack-id/src/a2a/verify.ts +++ b/packages/ack-id/src/a2a/verify.ts @@ -1,4 +1,5 @@ import type { Message } from "@a2a-js/sdk" + import { getDidResolver, type DidResolver, @@ -9,6 +10,7 @@ import { verifyJwt, type JwtVerified } from "@agentcommercekit/jwt" import { credentialSchema } from "@agentcommercekit/vc/schemas/valibot" import { stringify } from "safe-stable-stringify" import * as v from "valibot" + import { dataPartSchema, messageSchema } from "./schemas/valibot" const jwtDataPartSchema = v.object({ diff --git a/packages/ack-id/src/controller-claim-verifier.test.ts b/packages/ack-id/src/controller-claim-verifier.test.ts index 37b8d2f..1be5413 100644 --- a/packages/ack-id/src/controller-claim-verifier.test.ts +++ b/packages/ack-id/src/controller-claim-verifier.test.ts @@ -10,6 +10,7 @@ import { InvalidCredentialSubjectError, } from "@agentcommercekit/vc" import { beforeEach, describe, expect, it } from "vitest" + import { getControllerClaimVerifier } from "./controller-claim-verifier" async function setup() { diff --git a/packages/ack-id/src/controller-claim-verifier.ts b/packages/ack-id/src/controller-claim-verifier.ts index f3f601e..3e3c4bf 100644 --- a/packages/ack-id/src/controller-claim-verifier.ts +++ b/packages/ack-id/src/controller-claim-verifier.ts @@ -11,6 +11,7 @@ import { type W3CCredential, } from "@agentcommercekit/vc" import * as v from "valibot" + import { controllerClaimSchema } from "./schemas/valibot" export interface ControllerCredential extends W3CCredential { diff --git a/packages/ack-id/src/controller-credential.test.ts b/packages/ack-id/src/controller-credential.test.ts index 5947436..8128f80 100644 --- a/packages/ack-id/src/controller-credential.test.ts +++ b/packages/ack-id/src/controller-credential.test.ts @@ -1,5 +1,6 @@ import { createDidWebUri } from "@agentcommercekit/did" import { beforeAll, describe, expect, it, vi } from "vitest" + import { createControllerCredential } from "./controller-credential" describe("createControllerCredential", () => { diff --git a/packages/ack-id/src/controller-credential.ts b/packages/ack-id/src/controller-credential.ts index 80d3b08..87461a5 100644 --- a/packages/ack-id/src/controller-credential.ts +++ b/packages/ack-id/src/controller-credential.ts @@ -1,4 +1,5 @@ import type { DidUri } from "@agentcommercekit/did" + import { createCredential, type W3CCredential } from "@agentcommercekit/vc" type CreateControllerCredentialParams = { diff --git a/packages/ack-pay/src/create-payment-receipt.test.ts b/packages/ack-pay/src/create-payment-receipt.test.ts index 5989c7e..5d050f7 100644 --- a/packages/ack-pay/src/create-payment-receipt.test.ts +++ b/packages/ack-pay/src/create-payment-receipt.test.ts @@ -2,9 +2,11 @@ import { createDidKeyUri } from "@agentcommercekit/did" import { createJwtSigner, curveToJwtAlgorithm } from "@agentcommercekit/jwt" import { generateKeypair } from "@agentcommercekit/keys/ed25519" import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest" + +import type { PaymentRequestInit } from "./payment-request" + import { createPaymentReceipt } from "./create-payment-receipt" import { createSignedPaymentRequest } from "./create-signed-payment-request" -import type { PaymentRequestInit } from "./payment-request" describe("createPaymentReceipt", () => { const date = new Date("2024-12-31T23:59:59Z") diff --git a/packages/ack-pay/src/create-payment-receipt.ts b/packages/ack-pay/src/create-payment-receipt.ts index cc60d31..d36841b 100644 --- a/packages/ack-pay/src/create-payment-receipt.ts +++ b/packages/ack-pay/src/create-payment-receipt.ts @@ -1,4 +1,5 @@ import type { DidUri } from "@agentcommercekit/did" + import { createCredential, type W3CCredential } from "@agentcommercekit/vc" const PAYMENT_RECEIPT_TYPE = "PaymentReceiptCredential" diff --git a/packages/ack-pay/src/create-payment-request-token.test.ts b/packages/ack-pay/src/create-payment-request-token.test.ts index 7707cb0..ebffa0a 100644 --- a/packages/ack-pay/src/create-payment-request-token.test.ts +++ b/packages/ack-pay/src/create-payment-request-token.test.ts @@ -14,8 +14,10 @@ import { import { generateKeypair, type Keypair } from "@agentcommercekit/keys" import * as v from "valibot" import { beforeEach, describe, expect, it } from "vitest" -import { createPaymentRequestToken } from "./create-payment-request-token" + import type { PaymentRequestInit } from "./payment-request" + +import { createPaymentRequestToken } from "./create-payment-request-token" import { paymentRequestSchema } from "./schemas/valibot" describe("createPaymentRequestToken()", () => { diff --git a/packages/ack-pay/src/create-payment-request-token.ts b/packages/ack-pay/src/create-payment-request-token.ts index 0084178..1454953 100644 --- a/packages/ack-pay/src/create-payment-request-token.ts +++ b/packages/ack-pay/src/create-payment-request-token.ts @@ -1,10 +1,12 @@ import type { DidUri } from "@agentcommercekit/did" + import { createJwt, type JwtAlgorithm, type JwtSigner, type JwtString, } from "@agentcommercekit/jwt" + import type { PaymentRequest } from "./payment-request" export interface PaymentRequestTokenOptions { diff --git a/packages/ack-pay/src/create-signed-payment-request.test.ts b/packages/ack-pay/src/create-signed-payment-request.test.ts index b5dcbeb..0bb7b88 100644 --- a/packages/ack-pay/src/create-signed-payment-request.test.ts +++ b/packages/ack-pay/src/create-signed-payment-request.test.ts @@ -12,8 +12,10 @@ import { } from "@agentcommercekit/jwt" import { generateKeypair, type Keypair } from "@agentcommercekit/keys" import { beforeEach, describe, expect, it } from "vitest" -import { createSignedPaymentRequest } from "./create-signed-payment-request" + import type { PaymentRequestInit } from "./payment-request" + +import { createSignedPaymentRequest } from "./create-signed-payment-request" import { verifyPaymentRequestToken } from "./verify-payment-request-token" describe("createSignedPaymentRequest()", () => { diff --git a/packages/ack-pay/src/create-signed-payment-request.ts b/packages/ack-pay/src/create-signed-payment-request.ts index d12275a..7d35703 100644 --- a/packages/ack-pay/src/create-signed-payment-request.ts +++ b/packages/ack-pay/src/create-signed-payment-request.ts @@ -1,10 +1,13 @@ import type { JwtString } from "@agentcommercekit/jwt" + import * as v from "valibot" + +import type { PaymentRequest, PaymentRequestInit } from "./payment-request" + import { createPaymentRequestToken, type PaymentRequestTokenOptions, } from "./create-payment-request-token" -import type { PaymentRequest, PaymentRequestInit } from "./payment-request" import { paymentRequestSchema } from "./schemas/valibot" /** diff --git a/packages/ack-pay/src/payment-request.test.ts b/packages/ack-pay/src/payment-request.test.ts index 6ab9622..018c78b 100644 --- a/packages/ack-pay/src/payment-request.test.ts +++ b/packages/ack-pay/src/payment-request.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { isPaymentRequest, type PaymentRequestInit } from "./payment-request" describe("isPaymentRequest", () => { diff --git a/packages/ack-pay/src/payment-request.ts b/packages/ack-pay/src/payment-request.ts index 993c442..8199550 100644 --- a/packages/ack-pay/src/payment-request.ts +++ b/packages/ack-pay/src/payment-request.ts @@ -1,4 +1,5 @@ import * as v from "valibot" + import { paymentRequestSchema, type paymentOptionSchema, diff --git a/packages/ack-pay/src/receipt-claim-verifier.test.ts b/packages/ack-pay/src/receipt-claim-verifier.test.ts index 855a413..e883818 100644 --- a/packages/ack-pay/src/receipt-claim-verifier.test.ts +++ b/packages/ack-pay/src/receipt-claim-verifier.test.ts @@ -4,6 +4,7 @@ import { generateKeypair } from "@agentcommercekit/keys" import { InvalidCredentialSubjectError } from "@agentcommercekit/vc" import * as v from "valibot" import { describe, expect, it } from "vitest" + import { createPaymentRequestToken } from "./create-payment-request-token" import { getReceiptClaimVerifier } from "./receipt-claim-verifier" import { diff --git a/packages/ack-pay/src/receipt-claim-verifier.ts b/packages/ack-pay/src/receipt-claim-verifier.ts index d59253c..ccc0165 100644 --- a/packages/ack-pay/src/receipt-claim-verifier.ts +++ b/packages/ack-pay/src/receipt-claim-verifier.ts @@ -6,6 +6,7 @@ import { type W3CCredential, } from "@agentcommercekit/vc" import * as v from "valibot" + import { paymentReceiptClaimSchema } from "./schemas/valibot" export interface PaymentReceiptCredential extends W3CCredential { diff --git a/packages/ack-pay/src/verify-payment-receipt.test.ts b/packages/ack-pay/src/verify-payment-receipt.test.ts index eea79aa..65ec054 100644 --- a/packages/ack-pay/src/verify-payment-receipt.test.ts +++ b/packages/ack-pay/src/verify-payment-receipt.test.ts @@ -19,10 +19,12 @@ import { type W3CCredential, } from "@agentcommercekit/vc" import { beforeEach, describe, expect, it } from "vitest" + +import type { PaymentRequestInit } from "./payment-request" + import { createPaymentReceipt } from "./create-payment-receipt" import { createSignedPaymentRequest } from "./create-signed-payment-request" import { InvalidPaymentRequestTokenError } from "./errors" -import type { PaymentRequestInit } from "./payment-request" import { verifyPaymentReceipt } from "./verify-payment-receipt" describe("verifyPaymentReceipt()", () => { diff --git a/packages/ack-pay/src/verify-payment-receipt.ts b/packages/ack-pay/src/verify-payment-receipt.ts index 3dd227d..6033f62 100644 --- a/packages/ack-pay/src/verify-payment-receipt.ts +++ b/packages/ack-pay/src/verify-payment-receipt.ts @@ -1,4 +1,5 @@ import type { Resolvable } from "@agentcommercekit/did" + import { isJwtString, type JwtString } from "@agentcommercekit/jwt" import { InvalidCredentialError, @@ -9,7 +10,9 @@ import { type Verifiable, type W3CCredential, } from "@agentcommercekit/vc" + import type { PaymentRequest } from "./payment-request" + import { getReceiptClaimVerifier, isPaymentReceiptCredential, diff --git a/packages/ack-pay/src/verify-payment-request-token.test.ts b/packages/ack-pay/src/verify-payment-request-token.test.ts index 87ccafc..6728015 100644 --- a/packages/ack-pay/src/verify-payment-request-token.test.ts +++ b/packages/ack-pay/src/verify-payment-request-token.test.ts @@ -13,8 +13,10 @@ import { } from "@agentcommercekit/jwt" import { generateKeypair, type Keypair } from "@agentcommercekit/keys" import { beforeEach, describe, expect, it } from "vitest" -import { createSignedPaymentRequest } from "./create-signed-payment-request" + import type { PaymentRequestInit } from "./payment-request" + +import { createSignedPaymentRequest } from "./create-signed-payment-request" import { verifyPaymentRequestToken } from "./verify-payment-request-token" /** diff --git a/packages/ack-pay/src/verify-payment-request-token.ts b/packages/ack-pay/src/verify-payment-request-token.ts index cef4f33..a5f7368 100644 --- a/packages/ack-pay/src/verify-payment-request-token.ts +++ b/packages/ack-pay/src/verify-payment-request-token.ts @@ -1,8 +1,11 @@ import type { Resolvable } from "@agentcommercekit/did" + import { verifyJwt, type JwtVerified } from "@agentcommercekit/jwt" import * as v from "valibot" -import { InvalidPaymentRequestTokenError } from "./errors" + import type { PaymentRequest } from "./payment-request" + +import { InvalidPaymentRequestTokenError } from "./errors" import { paymentRequestSchema } from "./schemas/valibot" interface ValidatePaymentRequestTokenOptions { diff --git a/packages/caip/src/caips/caip-10.test.ts b/packages/caip/src/caips/caip-10.test.ts index af7e032..a16e841 100644 --- a/packages/caip/src/caips/caip-10.test.ts +++ b/packages/caip/src/caips/caip-10.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { createCaip10AccountId } from "./index" describe("createCaip10AccountId", () => { diff --git a/packages/caip/src/caips/caip-2.ts b/packages/caip/src/caips/caip-2.ts index ab25091..a943ed7 100644 --- a/packages/caip/src/caips/caip-2.ts +++ b/packages/caip/src/caips/caip-2.ts @@ -34,7 +34,7 @@ export const caip2ChainIds = { arbitrumMainnet: "eip155:42161", arbitrumSepolia: "eip155:421614", solanaMainnet: "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", - solanaDevnet: "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1" + solanaDevnet: "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1", } as const export function caip2Parts(caip: Caip2ChainId): Caip2ChainIdParts { diff --git a/packages/caip/src/schemas/schemas.test.ts b/packages/caip/src/schemas/schemas.test.ts index b1c978f..7adf4d9 100644 --- a/packages/caip/src/schemas/schemas.test.ts +++ b/packages/caip/src/schemas/schemas.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import type { Caip2ChainId, Caip10AccountId, @@ -6,6 +7,7 @@ import type { Caip19AssetName, Caip19AssetType, } from "../caips" + import * as valibot from "./valibot" import * as zodv3 from "./zod/v3" import * as zodv4 from "./zod/v4" diff --git a/packages/caip/src/schemas/valibot.ts b/packages/caip/src/schemas/valibot.ts index 6694e15..b922ce6 100644 --- a/packages/caip/src/schemas/valibot.ts +++ b/packages/caip/src/schemas/valibot.ts @@ -1,4 +1,5 @@ import * as v from "valibot" + import { caip2ChainIdRegex, caip10AccountIdRegex, diff --git a/packages/caip/src/schemas/zod/v3.ts b/packages/caip/src/schemas/zod/v3.ts index 1693a6b..d5a7713 100644 --- a/packages/caip/src/schemas/zod/v3.ts +++ b/packages/caip/src/schemas/zod/v3.ts @@ -1,4 +1,5 @@ import { z } from "zod/v3" + import { caip2ChainIdRegex, caip10AccountIdRegex, diff --git a/packages/caip/src/schemas/zod/v4.ts b/packages/caip/src/schemas/zod/v4.ts index fa456f6..bac8da3 100644 --- a/packages/caip/src/schemas/zod/v4.ts +++ b/packages/caip/src/schemas/zod/v4.ts @@ -1,4 +1,5 @@ import * as z from "zod/v4" + import { caip2ChainIdRegex, caip10AccountIdRegex, diff --git a/packages/did/src/create-did-document.test.ts b/packages/did/src/create-did-document.test.ts index 4fe165b..be6ce78 100644 --- a/packages/did/src/create-did-document.test.ts +++ b/packages/did/src/create-did-document.test.ts @@ -11,6 +11,7 @@ import { publicKeyBytesToJwk, } from "@agentcommercekit/keys/encoding" import { beforeEach, describe, expect, test } from "vitest" + import { createDidDocument, createDidDocumentFromKeypair, diff --git a/packages/did/src/create-did-document.ts b/packages/did/src/create-did-document.ts index fe7248b..06b937c 100644 --- a/packages/did/src/create-did-document.ts +++ b/packages/did/src/create-did-document.ts @@ -1,3 +1,5 @@ +import type { VerificationMethod } from "did-resolver" + import { encodePublicKeyFromKeypair, type KeyCurve, @@ -11,7 +13,7 @@ import { bytesToMultibase, hexStringToBytes, } from "@agentcommercekit/keys/encoding" -import type { VerificationMethod } from "did-resolver" + import type { DidDocument } from "./did-document" import type { DidUri } from "./did-uri" diff --git a/packages/did/src/did-resolvers/did-resolver.test.ts b/packages/did/src/did-resolvers/did-resolver.test.ts index 8e2231b..8fd16c2 100644 --- a/packages/did/src/did-resolvers/did-resolver.test.ts +++ b/packages/did/src/did-resolvers/did-resolver.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it, vi } from "vitest" + import { createDidDocument } from "../create-did-document" import { DidResolver } from "./did-resolver" diff --git a/packages/did/src/did-resolvers/did-resolver.ts b/packages/did/src/did-resolvers/did-resolver.ts index ee248fc..a420469 100644 --- a/packages/did/src/did-resolvers/did-resolver.ts +++ b/packages/did/src/did-resolvers/did-resolver.ts @@ -5,6 +5,7 @@ import { type ResolverOptions, type ResolverRegistry, } from "did-resolver" + import type { DidDocument } from "../did-document" export type { Resolvable } from "did-resolver" diff --git a/packages/did/src/did-resolvers/get-did-resolver.ts b/packages/did/src/did-resolvers/get-did-resolver.ts index fbe0a81..2a6f631 100644 --- a/packages/did/src/did-resolvers/get-did-resolver.ts +++ b/packages/did/src/did-resolvers/get-did-resolver.ts @@ -1,6 +1,8 @@ import type { ResolverOptions } from "did-resolver" + import { getResolver as getJwksDidResolver } from "jwks-did-resolver" import { getResolver as getKeyDidResolver } from "key-did-resolver" + import { DidResolver } from "./did-resolver" import { getResolver as getPkhDidResolver } from "./pkh-did-resolver" import { diff --git a/packages/did/src/did-resolvers/pkh-did-resolver.test.ts b/packages/did/src/did-resolvers/pkh-did-resolver.test.ts index 5e41b5b..b38d401 100644 --- a/packages/did/src/did-resolvers/pkh-did-resolver.test.ts +++ b/packages/did/src/did-resolvers/pkh-did-resolver.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import fixtureEthereumMainnet from "../../test-fixtures/did-pkh/did:pkh:eip155:1:0xb9c5714089478a327f09197987f16f9e5d936e8a.json" import fixtureBaseSepolia from "../../test-fixtures/did-pkh/did:pkh:eip155:84532:0xa0ae58da58dfa46fa55c3b86545e7065f90ff011.json" import fixtureSolana from "../../test-fixtures/did-pkh/did:pkh:solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ:CKg5d12Jhpej1JqtmxLJgaFqqeYjxgPqToJ4LBdvG9Ev.json" diff --git a/packages/did/src/did-resolvers/pkh-did-resolver.ts b/packages/did/src/did-resolvers/pkh-did-resolver.ts index 3d3f8e6..350129c 100644 --- a/packages/did/src/did-resolvers/pkh-did-resolver.ts +++ b/packages/did/src/did-resolvers/pkh-did-resolver.ts @@ -2,6 +2,7 @@ * A `did:pkh` resolver for use with `did-resolver` */ import type { DIDResolutionResult, DIDResolver } from "did-resolver" + import { createDidPkhDocumentFromDidPkhUri, isDidPkhUri, diff --git a/packages/did/src/did-resolvers/web-did-resolver.test.ts b/packages/did/src/did-resolvers/web-did-resolver.test.ts index 68716b0..ce1af9d 100644 --- a/packages/did/src/did-resolvers/web-did-resolver.test.ts +++ b/packages/did/src/did-resolvers/web-did-resolver.test.ts @@ -1,5 +1,7 @@ import type { ParsedDID } from "did-resolver" + import { beforeEach, describe, expect, it, vi } from "vitest" + import { getResolver } from "./web-did-resolver" describe("web-did-resolver", () => { diff --git a/packages/did/src/did-resolvers/web-did-resolver.ts b/packages/did/src/did-resolvers/web-did-resolver.ts index a3461cc..dddbd32 100644 --- a/packages/did/src/did-resolvers/web-did-resolver.ts +++ b/packages/did/src/did-resolvers/web-did-resolver.ts @@ -15,6 +15,7 @@ import type { DIDResolver, ParsedDID, } from "did-resolver" + import { isDidDocument, isDidDocumentForDid, diff --git a/packages/did/src/did-uri.test.ts b/packages/did/src/did-uri.test.ts index 7006dd2..5a61458 100644 --- a/packages/did/src/did-uri.test.ts +++ b/packages/did/src/did-uri.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { isDidUri } from "./did-uri" describe("isDidUri", () => { diff --git a/packages/did/src/methods/did-key.test.ts b/packages/did/src/methods/did-key.test.ts index a8f8b32..b70a450 100644 --- a/packages/did/src/methods/did-key.test.ts +++ b/packages/did/src/methods/did-key.test.ts @@ -1,8 +1,11 @@ -import { generateKeypair, jwkToKeypair } from "@agentcommercekit/keys" import type { PrivateKeyJwk } from "@agentcommercekit/keys/encoding" + +import { generateKeypair, jwkToKeypair } from "@agentcommercekit/keys" import { describe, expect, it } from "vitest" -import { getDidResolver } from "../did-resolvers/get-did-resolver" + import type { DidUri } from "../did-uri" + +import { getDidResolver } from "../did-resolvers/get-did-resolver" import { createDidKeyUri, isDidKeyUri } from "./did-key" const KNOWN_DID_KEYS: { did: DidUri; jwk: PrivateKeyJwk }[] = [ diff --git a/packages/did/src/methods/did-key.ts b/packages/did/src/methods/did-key.ts index 5d83b44..1845082 100644 --- a/packages/did/src/methods/did-key.ts +++ b/packages/did/src/methods/did-key.ts @@ -4,6 +4,7 @@ import { } from "@agentcommercekit/keys" import { bytesToMultibase } from "@agentcommercekit/keys/encoding" import * as varint from "varint" + import type { DidUri } from "../did-uri" /** diff --git a/packages/did/src/methods/did-pkh.test.ts b/packages/did/src/methods/did-pkh.test.ts index 53eb502..00c5f80 100644 --- a/packages/did/src/methods/did-pkh.test.ts +++ b/packages/did/src/methods/did-pkh.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { addressFromDidPkhUri, createDidPkhDocument, diff --git a/packages/did/src/methods/did-pkh.ts b/packages/did/src/methods/did-pkh.ts index 6769f29..03f6057 100644 --- a/packages/did/src/methods/did-pkh.ts +++ b/packages/did/src/methods/did-pkh.ts @@ -4,16 +4,16 @@ import { caip10Parts, createCaip10AccountId, type Caip2ChainId, - type Caip10AccountId + type Caip10AccountId, } from "@agentcommercekit/caip" import { isCaip2ChainId, - isCaip10AccountId + isCaip10AccountId, } from "@agentcommercekit/caip/schemas/valibot" import { base58ToBytes, isBase58, - publicKeyBytesToJwk + publicKeyBytesToJwk, } from "@agentcommercekit/keys/encoding" import type { DidUri } from "../did-uri" @@ -52,7 +52,7 @@ export const isDidPkhChainId = isCaip2ChainId * @returns The components of the did:pkh URI */ export function didPkhParts( - didUri: unknown + didUri: unknown, ): ["did", "pkh", string, string, string] { if (typeof didUri !== "string" || !didUri.startsWith("did:pkh:")) { throw new Error("Invalid did:pkh URI") @@ -106,7 +106,7 @@ export function addressFromDidPkhUri(didUri: string): string { } export function caip10AccountIdFromDidPkhUri( - didUri: DidPkhUri + didUri: DidPkhUri, ): Caip10AccountId { const caip10AccountId = didUri.replace("did:pkh:", "") if (!isCaip10AccountId(caip10AccountId)) { @@ -120,7 +120,7 @@ export function caip10AccountIdFromDidPkhUri( */ export function createBlockchainAccountId( address: string, - chainId: Caip2ChainId + chainId: Caip2ChainId, ) { return createCaip10AccountId(chainId, address) } @@ -143,7 +143,7 @@ export function createBlockchainAccountId( */ export function createDidPkhUri( chainId: Caip2ChainId, - address: string + address: string, ): DidPkhUri { return `did:pkh:${createCaip10AccountId(chainId, address)}` } @@ -152,7 +152,7 @@ export function createDidPkhUri( * Create a did:pkh URI from a CAIP-10 account ID */ export function createDidPkhUriFromCaip10AccountId( - caip10AccountId: Caip10AccountId + caip10AccountId: Caip10AccountId, ): DidPkhUri { return `did:pkh:${caip10AccountId}` } @@ -161,12 +161,12 @@ const jsonLdContexts = { Ed25519VerificationKey2020: [ "https://w3id.org/security#blockchainAccountId", "https://w3id.org/security#publicKeyJwk", - "https://w3id.org/security/suites/ed25519-2020/v1" + "https://w3id.org/security/suites/ed25519-2020/v1", ], EcdsaSecp256k1RecoveryMethod2020: [ "https://w3id.org/security#blockchainAccountId", - "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoveryMethod2020" - ] + "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoveryMethod2020", + ], } /** @@ -185,7 +185,7 @@ const jsonLdContexts = { */ export function createDidPkhDocumentFromDidPkhUri( didUri: DidPkhUri, - controller?: DidUri + controller?: DidUri, ): DidUriWithDocument { const caip10AccountId = caip10AccountIdFromDidPkhUri(didUri) return createDidPkhDocumentFromCaip10AccountId(caip10AccountId, controller) @@ -208,7 +208,7 @@ export function createDidPkhDocumentFromDidPkhUri( */ export function createDidPkhDocumentFromCaip10AccountId( caip10AccountId: Caip10AccountId, - controller?: DidUri + controller?: DidUri, ): DidUriWithDocument { const did = createDidPkhUriFromCaip10AccountId(caip10AccountId) const verificationMethod = createVerificationMethod(did, caip10AccountId) @@ -220,7 +220,7 @@ export function createDidPkhDocumentFromCaip10AccountId( additionalContexts, verificationMethod, capabilityDelegation: [verificationMethod.id], - capabilityInvocation: [verificationMethod.id] + capabilityInvocation: [verificationMethod.id], }) return { did, didDocument } @@ -239,7 +239,7 @@ interface CreateDidPkhDocumentOptions { export function createDidPkhDocument({ address, chainId, - controller + controller, }: CreateDidPkhDocumentOptions): DidUriWithDocument { const caip10AccountId = createCaip10AccountId(chainId, address) return createDidPkhDocumentFromCaip10AccountId(caip10AccountId, controller) @@ -253,7 +253,7 @@ export function createDidPkhDocument({ */ function createVerificationMethod( did: DidUri, - caip10AccountId: Caip10AccountId + caip10AccountId: Caip10AccountId, ): Omit & { type: "Ed25519VerificationKey2020" | "EcdsaSecp256k1RecoveryMethod2020" } { @@ -262,14 +262,14 @@ function createVerificationMethod( if (namespace.startsWith("solana") && isBase58(accountId)) { const publicKeyJwk = publicKeyBytesToJwk( base58ToBytes(accountId), - "Ed25519" + "Ed25519", ) return { id: `${did}#controller`, type: "Ed25519VerificationKey2020", controller: did, blockchainAccountId: caip10AccountId, - publicKeyJwk + publicKeyJwk, } } @@ -278,6 +278,6 @@ function createVerificationMethod( id: `${did}#blockchainAccountId`, type: "EcdsaSecp256k1RecoveryMethod2020", controller: did, - blockchainAccountId: caip10AccountId + blockchainAccountId: caip10AccountId, } } diff --git a/packages/did/src/methods/did-web.test.ts b/packages/did/src/methods/did-web.test.ts index 7cde34e..bf11953 100644 --- a/packages/did/src/methods/did-web.test.ts +++ b/packages/did/src/methods/did-web.test.ts @@ -5,6 +5,7 @@ import { publicKeyBytesToJwk, } from "@agentcommercekit/keys/encoding" import { describe, expect, it } from "vitest" + import { createDidWebDocument, createDidWebUri } from "./did-web" describe("createDidWeb", () => { diff --git a/packages/did/src/methods/did-web.ts b/packages/did/src/methods/did-web.ts index 2fd5e1b..8fef471 100644 --- a/packages/did/src/methods/did-web.ts +++ b/packages/did/src/methods/did-web.ts @@ -1,11 +1,12 @@ +import type { DidUri } from "../did-uri" +import type { DidUriWithDocument } from "../types" + import { createDidDocument, createDidDocumentFromKeypair, type CreateDidDocumentFromKeypairOptions, type CreateDidDocumentOptions, } from "../create-did-document" -import type { DidUri } from "../did-uri" -import type { DidUriWithDocument } from "../types" /** * The type of a local Did diff --git a/packages/did/src/resolve-did.test.ts b/packages/did/src/resolve-did.test.ts index 373fcf1..add6948 100644 --- a/packages/did/src/resolve-did.test.ts +++ b/packages/did/src/resolve-did.test.ts @@ -1,8 +1,10 @@ import { generateKeypair } from "@agentcommercekit/keys" import { bytesToHexString } from "@agentcommercekit/keys/encoding" import { describe, expect, it } from "vitest" -import { getDidResolver } from "./did-resolvers/get-did-resolver" + import type { DidUri } from "./did-uri" + +import { getDidResolver } from "./did-resolvers/get-did-resolver" import { DidDocumentNotFoundError, InvalidDidControllerError } from "./errors" import { createDidWebDocument } from "./methods/did-web" import { resolveDid, resolveDidWithController } from "./resolve-did" diff --git a/packages/did/src/resolve-did.ts b/packages/did/src/resolve-did.ts index 278b787..16911ca 100644 --- a/packages/did/src/resolve-did.ts +++ b/packages/did/src/resolve-did.ts @@ -1,4 +1,7 @@ import type { Resolvable } from "did-resolver" + +import type { DidUriWithDocument } from "./types" + import { isDidUri } from "./did-uri" import { DidDocumentNotFoundError, @@ -6,7 +9,6 @@ import { InvalidDidUriError, UnsupportedDidMethodError, } from "./errors" -import type { DidUriWithDocument } from "./types" interface DidUriWithControlledDidDocument extends DidUriWithDocument { controller: DidUriWithDocument diff --git a/packages/did/src/schemas/valibot.ts b/packages/did/src/schemas/valibot.ts index 992da0c..37269bc 100644 --- a/packages/did/src/schemas/valibot.ts +++ b/packages/did/src/schemas/valibot.ts @@ -1,5 +1,6 @@ import { caip2ChainIdSchema } from "@agentcommercekit/caip/schemas/valibot" import * as v from "valibot" + import { isDidUri, type DidUri } from "../did-uri" export const didUriSchema = v.custom(isDidUri, "Invalid DID format") diff --git a/packages/did/src/schemas/zod/v3.ts b/packages/did/src/schemas/zod/v3.ts index 29efc69..e53f208 100644 --- a/packages/did/src/schemas/zod/v3.ts +++ b/packages/did/src/schemas/zod/v3.ts @@ -1,5 +1,6 @@ import { caip2ChainIdSchema } from "@agentcommercekit/caip/schemas/zod/v3" import { z } from "zod/v3" + import { isDidUri, type DidUri } from "../../did-uri" export const didUriSchema = z.custom(isDidUri, "Invalid DID format") diff --git a/packages/did/src/schemas/zod/v4.ts b/packages/did/src/schemas/zod/v4.ts index 2a40071..811b667 100644 --- a/packages/did/src/schemas/zod/v4.ts +++ b/packages/did/src/schemas/zod/v4.ts @@ -1,5 +1,6 @@ import { caip2ChainIdSchema } from "@agentcommercekit/caip/schemas/zod/v4" import * as z from "zod/v4" + import { isDidUri, type DidUri } from "../../did-uri" export const didUriSchema = z.custom(isDidUri, "Invalid DID format") diff --git a/packages/jwt/src/create-jwt.test.ts b/packages/jwt/src/create-jwt.test.ts index f1d4458..4c01583 100644 --- a/packages/jwt/src/create-jwt.test.ts +++ b/packages/jwt/src/create-jwt.test.ts @@ -5,6 +5,7 @@ import { type JWTPayload, } from "did-jwt" import { beforeEach, describe, expect, it, vi } from "vitest" + import { createJwt } from "./create-jwt" import { createJwtSigner } from "./signer" diff --git a/packages/jwt/src/create-jwt.ts b/packages/jwt/src/create-jwt.ts index 98687d4..e8ae4ff 100644 --- a/packages/jwt/src/create-jwt.ts +++ b/packages/jwt/src/create-jwt.ts @@ -4,7 +4,9 @@ import { type JWTOptions, type JWTPayload, } from "did-jwt" + import type { JwtAlgorithm } from "./jwt-algorithm" + import { isJwtString, type JwtString } from "./jwt-string" export type JwtPayload = JWTPayload diff --git a/packages/jwt/src/jwt-algorithm.test.ts b/packages/jwt/src/jwt-algorithm.test.ts index 8cd2634..703d198 100644 --- a/packages/jwt/src/jwt-algorithm.test.ts +++ b/packages/jwt/src/jwt-algorithm.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { curveToJwtAlgorithm, isJwtAlgorithm, diff --git a/packages/jwt/src/jwt-string.test.ts b/packages/jwt/src/jwt-string.test.ts index fe49757..d27c715 100644 --- a/packages/jwt/src/jwt-string.test.ts +++ b/packages/jwt/src/jwt-string.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { isJwtString } from "./jwt-string" describe("isJwtString", () => { diff --git a/packages/jwt/src/schemas/valibot.ts b/packages/jwt/src/schemas/valibot.ts index c041e4c..a3abfd1 100644 --- a/packages/jwt/src/schemas/valibot.ts +++ b/packages/jwt/src/schemas/valibot.ts @@ -1,8 +1,10 @@ import * as v from "valibot" + import type { JwtHeader, JwtPayload } from "../create-jwt" -import { jwtAlgorithms } from "../jwt-algorithm" import type { JwtString } from "../jwt-string" +import { jwtAlgorithms } from "../jwt-algorithm" + export const jwtPayloadSchema = v.pipe( v.looseObject({ iss: v.optional(v.string()), diff --git a/packages/jwt/src/schemas/zod/v3.ts b/packages/jwt/src/schemas/zod/v3.ts index a6cf48a..d5489cb 100644 --- a/packages/jwt/src/schemas/zod/v3.ts +++ b/packages/jwt/src/schemas/zod/v3.ts @@ -1,5 +1,7 @@ import { z } from "zod/v3" + import type { JwtHeader, JwtPayload } from "../../create-jwt" + import { jwtAlgorithms } from "../../jwt-algorithm" import { isJwtString } from "../../jwt-string" diff --git a/packages/jwt/src/schemas/zod/v4.ts b/packages/jwt/src/schemas/zod/v4.ts index 78baf7d..9772379 100644 --- a/packages/jwt/src/schemas/zod/v4.ts +++ b/packages/jwt/src/schemas/zod/v4.ts @@ -1,5 +1,7 @@ import * as z from "zod/v4" + import type { JwtHeader, JwtPayload } from "../../create-jwt" + import { jwtAlgorithms } from "../../jwt-algorithm" import { isJwtString } from "../../jwt-string" diff --git a/packages/jwt/src/signer.test.ts b/packages/jwt/src/signer.test.ts index bac8c76..9a47cf6 100644 --- a/packages/jwt/src/signer.test.ts +++ b/packages/jwt/src/signer.test.ts @@ -1,5 +1,6 @@ import { generateKeypair } from "@agentcommercekit/keys" import { describe, expect, test } from "vitest" + import { createJwtSigner } from "./signer" describe("createJwtSigner", () => { diff --git a/packages/jwt/src/signer.ts b/packages/jwt/src/signer.ts index bf61792..f93544f 100644 --- a/packages/jwt/src/signer.ts +++ b/packages/jwt/src/signer.ts @@ -1,4 +1,5 @@ import type { Keypair } from "@agentcommercekit/keys" + import { EdDSASigner, ES256KSigner, ES256Signer, type Signer } from "did-jwt" export type JwtSigner = Signer diff --git a/packages/jwt/src/verify.test.ts b/packages/jwt/src/verify.test.ts index 9851648..3744508 100644 --- a/packages/jwt/src/verify.test.ts +++ b/packages/jwt/src/verify.test.ts @@ -1,6 +1,7 @@ import { generateKeypair } from "@agentcommercekit/keys" import { verifyJWT, type JWTVerified } from "did-jwt" import { beforeEach, describe, expect, it, vi } from "vitest" + import { createJwt } from "./create-jwt" import { createJwtSigner } from "./signer" import { verifyJwt } from "./verify" diff --git a/packages/keys/src/curves/ed25519.test.ts b/packages/keys/src/curves/ed25519.test.ts index d83ab01..39c13e6 100644 --- a/packages/keys/src/curves/ed25519.test.ts +++ b/packages/keys/src/curves/ed25519.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { base58ToBytes } from "../encoding/base58" import { generateKeypair, isValidPublicKey } from "./ed25519" diff --git a/packages/keys/src/curves/ed25519.ts b/packages/keys/src/curves/ed25519.ts index 46bd852..b7e40bd 100644 --- a/packages/keys/src/curves/ed25519.ts +++ b/packages/keys/src/curves/ed25519.ts @@ -1,4 +1,5 @@ import { ed25519 } from "@noble/curves/ed25519" + import type { Keypair } from "../keypair" /** diff --git a/packages/keys/src/curves/secp256k1.test.ts b/packages/keys/src/curves/secp256k1.test.ts index 19b1089..71b720f 100644 --- a/packages/keys/src/curves/secp256k1.test.ts +++ b/packages/keys/src/curves/secp256k1.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { hexStringToBytes } from "../encoding/hex" import { generateKeypair, diff --git a/packages/keys/src/curves/secp256k1.ts b/packages/keys/src/curves/secp256k1.ts index 715e2da..a6ed69e 100644 --- a/packages/keys/src/curves/secp256k1.ts +++ b/packages/keys/src/curves/secp256k1.ts @@ -1,4 +1,5 @@ import { secp256k1 } from "@noble/curves/secp256k1" + import type { Keypair } from "../keypair" /** diff --git a/packages/keys/src/curves/secp256r1.test.ts b/packages/keys/src/curves/secp256r1.test.ts index 254f940..3399159 100644 --- a/packages/keys/src/curves/secp256r1.test.ts +++ b/packages/keys/src/curves/secp256r1.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { hexStringToBytes } from "../encoding/hex" import { generateKeypair, diff --git a/packages/keys/src/curves/secp256r1.ts b/packages/keys/src/curves/secp256r1.ts index f2fdc86..f8f4d0e 100644 --- a/packages/keys/src/curves/secp256r1.ts +++ b/packages/keys/src/curves/secp256r1.ts @@ -1,4 +1,5 @@ import { secp256r1 } from "@noble/curves/p256" + import type { Keypair } from "../keypair" /** diff --git a/packages/keys/src/encoding/base58.test.ts b/packages/keys/src/encoding/base58.test.ts index cbf12c1..d65cee5 100644 --- a/packages/keys/src/encoding/base58.test.ts +++ b/packages/keys/src/encoding/base58.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { base58btcToBytes, base58ToBytes, diff --git a/packages/keys/src/encoding/base64.test.ts b/packages/keys/src/encoding/base64.test.ts index 3eb75e9..d170b61 100644 --- a/packages/keys/src/encoding/base64.test.ts +++ b/packages/keys/src/encoding/base64.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { base64urlToBytes, bytesToBase64url, isBase64url } from "./base64" describe("base64 encoding and decoding", () => { diff --git a/packages/keys/src/encoding/hex.test.ts b/packages/keys/src/encoding/hex.test.ts index 2685a3e..c66e3b3 100644 --- a/packages/keys/src/encoding/hex.test.ts +++ b/packages/keys/src/encoding/hex.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { bytesToHexString, hexStringToBytes, isHexString } from "./hex" describe("hex encoding and decoding", () => { diff --git a/packages/keys/src/encoding/jwk.test.ts b/packages/keys/src/encoding/jwk.test.ts index 9514b4a..2d7fe9b 100644 --- a/packages/keys/src/encoding/jwk.test.ts +++ b/packages/keys/src/encoding/jwk.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { bytesToBase64url, isBase64url } from "./base64" import { isPrivateKeyJwk, diff --git a/packages/keys/src/encoding/jwk.ts b/packages/keys/src/encoding/jwk.ts index d7892ed..91aeaed 100644 --- a/packages/keys/src/encoding/jwk.ts +++ b/packages/keys/src/encoding/jwk.ts @@ -1,4 +1,5 @@ import type { KeyCurve } from "../key-curves" + import { getPublicKeyFromPrivateKey } from "../public-key" import { base64urlToBytes, bytesToBase64url } from "./base64" diff --git a/packages/keys/src/encoding/multibase.test.ts b/packages/keys/src/encoding/multibase.test.ts index 93f4589..f81fd6a 100644 --- a/packages/keys/src/encoding/multibase.test.ts +++ b/packages/keys/src/encoding/multibase.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { bytesToMultibase, getMultibaseEncoding, diff --git a/packages/keys/src/encoding/multibase.ts b/packages/keys/src/encoding/multibase.ts index 3af5151..5f45a6e 100644 --- a/packages/keys/src/encoding/multibase.ts +++ b/packages/keys/src/encoding/multibase.ts @@ -72,7 +72,9 @@ export function multibaseToBytes(multibase: string): Uint8Array { export function getMultibaseEncoding( multibase: string, ): MultibaseEncoding | undefined { - if (multibase.length === 0) return undefined + if (multibase.length === 0) { + return undefined + } const prefix = multibase[0] for (const [encoding, encodingPrefix] of Object.entries(MULTIBASE_PREFIX)) { diff --git a/packages/keys/src/key-curves.test.ts b/packages/keys/src/key-curves.test.ts index ced87b0..d7936a7 100644 --- a/packages/keys/src/key-curves.test.ts +++ b/packages/keys/src/key-curves.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest" + import { isKeyCurve } from "./key-curves" describe("isKeyCurve", () => { diff --git a/packages/keys/src/keypair.test.ts b/packages/keys/src/keypair.test.ts index 4546a44..e755f1a 100644 --- a/packages/keys/src/keypair.test.ts +++ b/packages/keys/src/keypair.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { hexStringToBytes } from "./encoding/hex" import { generateKeypair, jwkToKeypair, keypairToJwk } from "./keypair" diff --git a/packages/keys/src/keypair.ts b/packages/keys/src/keypair.ts index 652f368..65247e2 100644 --- a/packages/keys/src/keypair.ts +++ b/packages/keys/src/keypair.ts @@ -1,3 +1,5 @@ +import type { KeyCurve } from "./key-curves" + import * as ed25519 from "./curves/ed25519" import * as secp256k1 from "./curves/secp256k1" import * as secp256r1 from "./curves/secp256r1" @@ -8,7 +10,6 @@ import { publicKeyJwkToBytes, type PrivateKeyJwk, } from "./encoding/jwk" -import type { KeyCurve } from "./key-curves" export interface Keypair { publicKey: Uint8Array diff --git a/packages/keys/src/public-key.test.ts b/packages/keys/src/public-key.test.ts index a10c012..59088e8 100644 --- a/packages/keys/src/public-key.test.ts +++ b/packages/keys/src/public-key.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { isBase58 } from "./encoding/base58" import { base64urlToBytes, isBase64url } from "./encoding/base64" import { isHexString } from "./encoding/hex" diff --git a/packages/keys/src/public-key.ts b/packages/keys/src/public-key.ts index 85b1cad..ba57771 100644 --- a/packages/keys/src/public-key.ts +++ b/packages/keys/src/public-key.ts @@ -1,3 +1,6 @@ +import type { KeyCurve } from "./key-curves" +import type { Keypair } from "./keypair" + import * as ed25519 from "./curves/ed25519" import * as secp256k1 from "./curves/secp256k1" import * as secp256r1 from "./curves/secp256r1" @@ -5,8 +8,6 @@ import { bytesToBase58 } from "./encoding/base58" import { bytesToHexString } from "./encoding/hex" import { publicKeyBytesToJwk, type PublicKeyJwk } from "./encoding/jwk" import { bytesToMultibase } from "./encoding/multibase" -import type { KeyCurve } from "./key-curves" -import type { Keypair } from "./keypair" /** * Public key format types diff --git a/packages/vc/src/create-credential.test.ts b/packages/vc/src/create-credential.test.ts index 2cc05c0..a433967 100644 --- a/packages/vc/src/create-credential.test.ts +++ b/packages/vc/src/create-credential.test.ts @@ -1,4 +1,5 @@ import { beforeAll, describe, expect, it, vi } from "vitest" + import { createCredential } from "./create-credential" describe("createCredential", () => { diff --git a/packages/vc/src/create-presentation.test.ts b/packages/vc/src/create-presentation.test.ts index 7ee72f1..2e272cd 100644 --- a/packages/vc/src/create-presentation.test.ts +++ b/packages/vc/src/create-presentation.test.ts @@ -1,7 +1,9 @@ import { describe, expect, it } from "vitest" -import { createPresentation } from "./create-presentation" + import type { Verifiable, W3CCredential } from "./types" +import { createPresentation } from "./create-presentation" + describe("createPresentation", () => { const mockHolder = "did:example:holder" diff --git a/packages/vc/src/create-presentation.ts b/packages/vc/src/create-presentation.ts index 5c38bad..5bef328 100644 --- a/packages/vc/src/create-presentation.ts +++ b/packages/vc/src/create-presentation.ts @@ -1,4 +1,5 @@ import type { DidUri } from "@agentcommercekit/did" + import type { Verifiable, W3CCredential, W3CPresentation } from "./types" export type CreatePresentationParams = { diff --git a/packages/vc/src/is-credential.ts b/packages/vc/src/is-credential.ts index ec70174..427ade2 100644 --- a/packages/vc/src/is-credential.ts +++ b/packages/vc/src/is-credential.ts @@ -1,5 +1,7 @@ import type { W3CCredential } from "did-jwt-vc" + import * as v from "valibot" + import { credentialSchema } from "./schemas/valibot" /** diff --git a/packages/vc/src/revocation/is-status-list-credential.ts b/packages/vc/src/revocation/is-status-list-credential.ts index e14cf05..29e58f0 100644 --- a/packages/vc/src/revocation/is-status-list-credential.ts +++ b/packages/vc/src/revocation/is-status-list-credential.ts @@ -1,9 +1,11 @@ import * as v from "valibot" -import { isCredential } from "../is-credential" -import { bitstringStatusListClaimSchema } from "../schemas/valibot" + import type { CredentialSubject } from "../types" import type { BitstringStatusListCredential } from "./types" +import { isCredential } from "../is-credential" +import { bitstringStatusListClaimSchema } from "../schemas/valibot" + function isStatusListClaim( credentialSubject: CredentialSubject, ): credentialSubject is v.InferOutput { diff --git a/packages/vc/src/revocation/make-revocable.test.ts b/packages/vc/src/revocation/make-revocable.test.ts index ad37c36..cef3221 100644 --- a/packages/vc/src/revocation/make-revocable.test.ts +++ b/packages/vc/src/revocation/make-revocable.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it } from "vitest" + import type { W3CCredential } from "../types" + import { makeRevocable } from "./make-revocable" describe("makeRevocable", () => { diff --git a/packages/vc/src/revocation/status-list-credential.test.ts b/packages/vc/src/revocation/status-list-credential.test.ts index 1392d25..6aaa4ac 100644 --- a/packages/vc/src/revocation/status-list-credential.test.ts +++ b/packages/vc/src/revocation/status-list-credential.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from "vitest" + import { createStatusListCredential } from "./status-list-credential" describe("createStatusListCredential", () => { diff --git a/packages/vc/src/revocation/status-list-credential.ts b/packages/vc/src/revocation/status-list-credential.ts index 6b06109..571bef4 100644 --- a/packages/vc/src/revocation/status-list-credential.ts +++ b/packages/vc/src/revocation/status-list-credential.ts @@ -1,6 +1,7 @@ -import { createCredential } from "../create-credential" import type { BitstringStatusListCredential } from "./types" +import { createCredential } from "../create-credential" + type CreateStatusListCredentialParams = { /** * The URL of the status list. diff --git a/packages/vc/src/revocation/types.ts b/packages/vc/src/revocation/types.ts index 3da3ba5..d4c656b 100644 --- a/packages/vc/src/revocation/types.ts +++ b/packages/vc/src/revocation/types.ts @@ -1,4 +1,5 @@ import type * as v from "valibot" + import type { bitstringStatusListClaimSchema } from "../schemas/valibot" import type { W3CCredential } from "../types" diff --git a/packages/vc/src/schemas/valibot.ts b/packages/vc/src/schemas/valibot.ts index dba256b..eb816a1 100644 --- a/packages/vc/src/schemas/valibot.ts +++ b/packages/vc/src/schemas/valibot.ts @@ -1,4 +1,5 @@ import * as v from "valibot" + import type { W3CCredential } from "../types" const baseSchema = v.object({ diff --git a/packages/vc/src/schemas/zod/v3.ts b/packages/vc/src/schemas/zod/v3.ts index ff01bae..845d5ca 100644 --- a/packages/vc/src/schemas/zod/v3.ts +++ b/packages/vc/src/schemas/zod/v3.ts @@ -1,4 +1,5 @@ import { z } from "zod/v3" + import type { W3CCredential } from "../../types" export const credentialSchema = z diff --git a/packages/vc/src/schemas/zod/v4.ts b/packages/vc/src/schemas/zod/v4.ts index 8130c32..5f6b5de 100644 --- a/packages/vc/src/schemas/zod/v4.ts +++ b/packages/vc/src/schemas/zod/v4.ts @@ -1,4 +1,5 @@ import * as z from "zod/v4" + import type { W3CCredential } from "../../types" export const credentialSchema = z diff --git a/packages/vc/src/signing/sign-credential.test.ts b/packages/vc/src/signing/sign-credential.test.ts index b59535f..956585b 100644 --- a/packages/vc/src/signing/sign-credential.test.ts +++ b/packages/vc/src/signing/sign-credential.test.ts @@ -6,8 +6,10 @@ import { import { createJwtSigner, verifyJwt } from "@agentcommercekit/jwt" import { generateKeypair } from "@agentcommercekit/keys" import { expect, test } from "vitest" -import { createCredential } from "../create-credential" + import type { JwtCredentialPayload } from "../types" + +import { createCredential } from "../create-credential" import { signCredential } from "./sign-credential" test("signCredential creates a valid JWT and verifiable credential", async () => { diff --git a/packages/vc/src/signing/sign-credential.ts b/packages/vc/src/signing/sign-credential.ts index e642871..75fc3b3 100644 --- a/packages/vc/src/signing/sign-credential.ts +++ b/packages/vc/src/signing/sign-credential.ts @@ -1,5 +1,6 @@ import { isJwtString, type JwtString } from "@agentcommercekit/jwt" import { createVerifiableCredentialJwt } from "did-jwt-vc" + import type { W3CCredential } from "../types" import type { Signer } from "./types" diff --git a/packages/vc/src/signing/sign-presentation.test.ts b/packages/vc/src/signing/sign-presentation.test.ts index 357b174..c674e24 100644 --- a/packages/vc/src/signing/sign-presentation.test.ts +++ b/packages/vc/src/signing/sign-presentation.test.ts @@ -6,11 +6,13 @@ import { import { createJwtSigner, verifyJwt } from "@agentcommercekit/jwt" import { generateKeypair } from "@agentcommercekit/keys" import { describe, expect, it } from "vitest" -import { createPresentation } from "../create-presentation" + import type { Verifiable, W3CCredential } from "../types" -import { signPresentation } from "./sign-presentation" import type { Signer } from "./types" +import { createPresentation } from "../create-presentation" +import { signPresentation } from "./sign-presentation" + const resolver = getDidResolver() const holderKeypair = await generateKeypair("secp256k1") const holderDid = createDidWebUri("https://holder.example.com") diff --git a/packages/vc/src/signing/sign-presentation.ts b/packages/vc/src/signing/sign-presentation.ts index abc713d..125e8b2 100644 --- a/packages/vc/src/signing/sign-presentation.ts +++ b/packages/vc/src/signing/sign-presentation.ts @@ -1,5 +1,6 @@ import { isJwtString, type JwtString } from "@agentcommercekit/jwt" import { createVerifiablePresentationJwt } from "did-jwt-vc" + import type { W3CPresentation } from "../types" import type { Signer } from "./types" diff --git a/packages/vc/src/types.ts b/packages/vc/src/types.ts index 05a9a2e..b8b4d60 100644 --- a/packages/vc/src/types.ts +++ b/packages/vc/src/types.ts @@ -1,6 +1,6 @@ import type { JwtCredentialPayload, Verifiable } from "did-jwt-vc" -type Extensible = T & Record +type Extensible = T & Record export interface CredentialStatus { id: string @@ -17,8 +17,8 @@ type W3CCredential = { credentialSubject: Extensible<{ id?: string } & T> credentialStatus?: CredentialStatus - evidence?: any - termsOfUse?: any + evidence?: unknown + termsOfUse?: unknown } type W3CPresentation = { diff --git a/packages/vc/src/verification/is-expired.test.ts b/packages/vc/src/verification/is-expired.test.ts index dc8184a..267b04d 100644 --- a/packages/vc/src/verification/is-expired.test.ts +++ b/packages/vc/src/verification/is-expired.test.ts @@ -1,5 +1,7 @@ import { describe, expect, it, vi } from "vitest" + import type { Verifiable, W3CCredential } from "../types" + import { isExpired } from "./is-expired" describe("isExpired", () => { diff --git a/packages/vc/src/verification/is-revoked.test.ts b/packages/vc/src/verification/is-revoked.test.ts index 513760d..c7fb489 100644 --- a/packages/vc/src/verification/is-revoked.test.ts +++ b/packages/vc/src/verification/is-revoked.test.ts @@ -1,7 +1,9 @@ import { BitBuffer } from "bit-buffers" import { afterEach, beforeEach, describe, expect, it, vi } from "vitest" -import { createStatusListCredential } from "../revocation/status-list-credential" + import type { Verifiable, W3CCredential } from "../types" + +import { createStatusListCredential } from "../revocation/status-list-credential" import { isRevocable, isRevoked } from "./is-revoked" describe("isRevocable", () => { diff --git a/packages/vc/src/verification/is-revoked.ts b/packages/vc/src/verification/is-revoked.ts index 260a4f7..07e54e6 100644 --- a/packages/vc/src/verification/is-revoked.ts +++ b/packages/vc/src/verification/is-revoked.ts @@ -1,11 +1,13 @@ import { BitBuffer } from "bit-buffers" -import { isStatusListCredential } from "../revocation/is-status-list-credential" + import type { BitstringStatusListCredential, Revocable, } from "../revocation/types" import type { W3CCredential } from "../types" +import { isStatusListCredential } from "../revocation/is-status-list-credential" + /** * Check if a credential is revocable * diff --git a/packages/vc/src/verification/parse-jwt-credential.test.ts b/packages/vc/src/verification/parse-jwt-credential.test.ts index eadd8fb..6912a82 100644 --- a/packages/vc/src/verification/parse-jwt-credential.test.ts +++ b/packages/vc/src/verification/parse-jwt-credential.test.ts @@ -6,6 +6,7 @@ import { import { createJwtSigner } from "@agentcommercekit/jwt" import { generateKeypair } from "@agentcommercekit/keys" import { expect, test } from "vitest" + import { createCredential } from "../create-credential" import { signCredential } from "../signing/sign-credential" import { parseJwtCredential } from "./parse-jwt-credential" diff --git a/packages/vc/src/verification/parse-jwt-credential.ts b/packages/vc/src/verification/parse-jwt-credential.ts index cb24b46..d3a1665 100644 --- a/packages/vc/src/verification/parse-jwt-credential.ts +++ b/packages/vc/src/verification/parse-jwt-credential.ts @@ -1,5 +1,7 @@ import type { Resolvable } from "@agentcommercekit/did" + import { verifyCredential } from "did-jwt-vc" + import type { Verifiable, W3CCredential } from "../types" /** diff --git a/packages/vc/src/verification/types.ts b/packages/vc/src/verification/types.ts index 3776d48..e95e477 100644 --- a/packages/vc/src/verification/types.ts +++ b/packages/vc/src/verification/types.ts @@ -1,4 +1,5 @@ import type { Resolvable } from "@agentcommercekit/did" + import type { CredentialSubject } from "../types" export type ClaimVerifier = { diff --git a/packages/vc/src/verification/verify-parsed-credential.test.ts b/packages/vc/src/verification/verify-parsed-credential.test.ts index 2513056..7041884 100644 --- a/packages/vc/src/verification/verify-parsed-credential.test.ts +++ b/packages/vc/src/verification/verify-parsed-credential.test.ts @@ -5,8 +5,10 @@ import { } from "@agentcommercekit/did" import { generateKeypair } from "@agentcommercekit/keys" import { afterEach, beforeEach, describe, expect, it, vi } from "vitest" -import { createCredential } from "../create-credential" + import type { Verifiable, W3CCredential } from "../types" + +import { createCredential } from "../create-credential" import { CredentialExpiredError, CredentialRevokedError, diff --git a/packages/vc/src/verification/verify-parsed-credential.ts b/packages/vc/src/verification/verify-parsed-credential.ts index 3fb3570..a5ce51c 100644 --- a/packages/vc/src/verification/verify-parsed-credential.ts +++ b/packages/vc/src/verification/verify-parsed-credential.ts @@ -1,5 +1,8 @@ import type { Resolvable } from "@agentcommercekit/did" + import type { Verifiable, W3CCredential } from "../types" +import type { ClaimVerifier } from "./types" + import { CredentialExpiredError, CredentialRevokedError, @@ -9,7 +12,6 @@ import { } from "./errors" import { isExpired } from "./is-expired" import { isRevoked } from "./is-revoked" -import type { ClaimVerifier } from "./types" import { verifyProof } from "./verify-proof" type VerifyCredentialOptions = { diff --git a/packages/vc/src/verification/verify-proof.test.ts b/packages/vc/src/verification/verify-proof.test.ts index 4ad4c92..986b1b9 100644 --- a/packages/vc/src/verification/verify-proof.test.ts +++ b/packages/vc/src/verification/verify-proof.test.ts @@ -1,6 +1,8 @@ import type { Resolvable } from "@agentcommercekit/did" + import { verifyCredential, type VerifiedCredential } from "did-jwt-vc" import { describe, expect, it, vi } from "vitest" + import { InvalidProofError, UnsupportedProofTypeError } from "./errors" import { verifyProof } from "./verify-proof" diff --git a/packages/vc/src/verification/verify-proof.ts b/packages/vc/src/verification/verify-proof.ts index 4f90139..76d8b7b 100644 --- a/packages/vc/src/verification/verify-proof.ts +++ b/packages/vc/src/verification/verify-proof.ts @@ -1,6 +1,9 @@ import type { Resolvable } from "@agentcommercekit/did" + import { verifyCredential } from "did-jwt-vc" + import type { Verifiable, W3CCredential } from "../types" + import { InvalidProofError, UnsupportedProofTypeError } from "./errors" interface JwtProof { diff --git a/tools/api-utils/src/api-response.ts b/tools/api-utils/src/api-response.ts index ef131dd..430958b 100644 --- a/tools/api-utils/src/api-response.ts +++ b/tools/api-utils/src/api-response.ts @@ -1,6 +1,7 @@ +import type { TypedResponse } from "hono" + import { DidResolutionError } from "@agentcommercekit/did" import { CredentialVerificationError } from "@agentcommercekit/vc" -import type { TypedResponse } from "hono" import * as v from "valibot" export type ApiResponse = TypedResponse> diff --git a/tools/api-utils/src/middleware/error-handler.ts b/tools/api-utils/src/middleware/error-handler.ts index 942d4de..44227bb 100644 --- a/tools/api-utils/src/middleware/error-handler.ts +++ b/tools/api-utils/src/middleware/error-handler.ts @@ -1,9 +1,11 @@ +import type { Env, ErrorHandler } from "hono" + import { InvalidPaymentRequestTokenError } from "@agentcommercekit/ack-pay" import { DidResolutionError } from "@agentcommercekit/did" import { CredentialVerificationError } from "@agentcommercekit/vc" -import type { Env, ErrorHandler } from "hono" import { HTTPException } from "hono/http-exception" import * as v from "valibot" + import { formatErrorResponse } from "../api-response" export const errorHandler: ErrorHandler = (err, c) => { diff --git a/tools/api-utils/src/middleware/signed-payload-validator.ts b/tools/api-utils/src/middleware/signed-payload-validator.ts index 34c1b04..82588a1 100644 --- a/tools/api-utils/src/middleware/signed-payload-validator.ts +++ b/tools/api-utils/src/middleware/signed-payload-validator.ts @@ -1,9 +1,11 @@ +import type { ValidationTargets } from "hono" + import { isDidUri, type DidUri, type Resolvable } from "@agentcommercekit/did" import { isJwtString, type JwtString } from "@agentcommercekit/jwt" -import type { ValidationTargets } from "hono" import { env } from "hono/adapter" import { validator } from "hono/validator" import * as v from "valibot" + import { validatePayload } from "../validate-payload" interface ValidatedSignedPayload { diff --git a/tools/api-utils/src/validate-payload.test.ts b/tools/api-utils/src/validate-payload.test.ts index 4c0c759..1d6e6a5 100644 --- a/tools/api-utils/src/validate-payload.test.ts +++ b/tools/api-utils/src/validate-payload.test.ts @@ -13,6 +13,7 @@ import { import { generateKeypair, type Keypair } from "@agentcommercekit/keys" import * as v from "valibot" import { beforeEach, describe, expect, it } from "vitest" + import { validatePayload } from "./validate-payload" const testBodySchema = v.object({ diff --git a/tools/api-utils/src/validate-payload.ts b/tools/api-utils/src/validate-payload.ts index 5ac306a..23b68d9 100644 --- a/tools/api-utils/src/validate-payload.ts +++ b/tools/api-utils/src/validate-payload.ts @@ -1,10 +1,12 @@ import type { Resolvable } from "@agentcommercekit/did" + import { verifyJwt, type JwtString, type JwtVerified, } from "@agentcommercekit/jwt" import * as v from "valibot" + import { unauthorized } from "./exceptions" export type ParsedPayload = { diff --git a/tools/cli-tools/src/prompts.ts b/tools/cli-tools/src/prompts.ts index 948ebff..efb7e59 100644 --- a/tools/cli-tools/src/prompts.ts +++ b/tools/cli-tools/src/prompts.ts @@ -1,5 +1,6 @@ import { input } from "@inquirer/prompts" import { magenta, yellow } from "yoctocolors" + import { wordWrap } from "./formatters" /** diff --git a/tools/cli-tools/src/update-env-file.ts b/tools/cli-tools/src/update-env-file.ts index 2a5e64e..eda29e4 100644 --- a/tools/cli-tools/src/update-env-file.ts +++ b/tools/cli-tools/src/update-env-file.ts @@ -1,6 +1,6 @@ +import { errorMessage, successMessage } from "@repo/cli-tools" import fs from "node:fs/promises" import path from "node:path" -import { errorMessage, successMessage } from "@repo/cli-tools" // Helper function to update .env file export async function updateEnvFile( diff --git a/tools/typescript-config/package.json b/tools/typescript-config/package.json index ce045f4..27f8bc8 100644 --- a/tools/typescript-config/package.json +++ b/tools/typescript-config/package.json @@ -4,15 +4,15 @@ "private": true, "homepage": "https://github.com/agentcommercekit/ack#readme", "bugs": "https://github.com/agentcommercekit/ack/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/agentcommercekit/ack.git", - "directory": "tools/typescript-config" - }, "license": "MIT", "author": { "name": "Catena Labs", "url": "https://catenalabs.com" }, + "repository": { + "type": "git", + "url": "git+https://github.com/agentcommercekit/ack.git", + "directory": "tools/typescript-config" + }, "main": "./base.js" } diff --git a/turbo.json b/turbo.json index a5db9f0..d8bbe97 100644 --- a/turbo.json +++ b/turbo.json @@ -6,12 +6,8 @@ "//#check:format": {}, "//#check:packages": {}, "//#format": {}, - "//#lint": { - "dependsOn": ["^build"] - }, - "//#lint:fix": { - "dependsOn": ["^build"] - }, + "//#lint": {}, + "//#lint:fix": {}, "build": { "dependsOn": ["^build"], "inputs": ["$TURBO_DEFAULT$", ".env*"],