diff --git a/deno.json b/deno.json index 8610152b7..4d8d06bd1 100644 --- a/deno.json +++ b/deno.json @@ -41,9 +41,9 @@ "@opentelemetry/core": "npm:@opentelemetry/core@^2.5.0", "@opentelemetry/sdk-trace-base": "npm:@opentelemetry/sdk-trace-base@^2.5.0", "@opentelemetry/semantic-conventions": "npm:@opentelemetry/semantic-conventions@^1.39.0", - "@optique/config": "jsr:@optique/config@^0.10.2", - "@optique/core": "jsr:@optique/core@^0.10.2", - "@optique/run": "jsr:@optique/run@^0.10.2", + "@optique/config": "jsr:@optique/config@^0.10.4", + "@optique/core": "jsr:@optique/core@^0.10.4", + "@optique/run": "jsr:@optique/run@^0.10.4", "@std/assert": "jsr:@std/assert@^1.0.13", "@std/async": "jsr:@std/async@^1.0.13", "@std/encoding": "jsr:@std/encoding@^1.0.10", diff --git a/deno.lock b/deno.lock index f9e0440d5..87a4f0701 100644 --- a/deno.lock +++ b/deno.lock @@ -16,14 +16,14 @@ "jsr:@fresh/plugin-vite@^1.0.7": "1.0.8", "jsr:@hongminhee/localtunnel@0.3": "0.3.0", "jsr:@hono/hono@^4.7.1": "4.11.9", - "jsr:@hono/hono@^4.8.3": "4.11.9", + "jsr:@hono/hono@^4.8.3": "4.11.10", "jsr:@logtape/file@2": "2.0.2", "jsr:@logtape/logtape@2": "2.0.2", "jsr:@logtape/logtape@^1.0.4": "1.3.7", "jsr:@logtape/logtape@^2.0.2": "2.0.2", - "jsr:@optique/config@~0.10.2": "0.10.2", - "jsr:@optique/core@~0.10.2": "0.10.2", - "jsr:@optique/run@~0.10.2": "0.10.2", + "jsr:@optique/config@~0.10.4": "0.10.4", + "jsr:@optique/core@~0.10.4": "0.10.4", + "jsr:@optique/run@~0.10.4": "0.10.4", "jsr:@std/assert@0.224": "0.224.0", "jsr:@std/assert@0.226": "0.226.0", "jsr:@std/assert@^1.0.13": "1.0.18", @@ -258,6 +258,9 @@ "@hono/hono@4.11.9": { "integrity": "c82c6b846abc3c1879d921d8365287d77cdef8073019f509ff80bf53033bdcba" }, + "@hono/hono@4.11.10": { + "integrity": "a5a6dac87ab5a8bcf3f92aeaca22417128d584c2732860c20bbf6fdb3cafbcc5" + }, "@logtape/file@2.0.2": { "integrity": "a912459fe0d27213e05c95e6fadf716000f27eafa27e67c2737820ba24097fdc", "dependencies": [ @@ -277,8 +280,8 @@ "@logtape/logtape@2.0.2": { "integrity": "546fcd514e66f2b841c6f261fa3a3d905b52d876dc1bba8ffe1a087d9275c4c9" }, - "@optique/config@0.10.2": { - "integrity": "35f9c90ecc9c1563c3096b108109e4f24a8cc1a381c0ef94ce688927c1dae577", + "@optique/config@0.10.4": { + "integrity": "108c1c77c98bb22fbd4675d9410531adcd212a19ec510bb4461173252ba490f3", "dependencies": [ "jsr:@optique/core", "npm:@standard-schema/spec" @@ -287,11 +290,11 @@ "@optique/core@0.10.0-dev.333+076fceae": { "integrity": "1ebe1782740f08d568ae0c5258786933a8502d1e137feb49b2d8ab06d204b11a" }, - "@optique/core@0.10.2": { - "integrity": "bc95e9133e9db2499fa544bfd13480126f33c7131650b09a808199ebb7e36478" + "@optique/core@0.10.4": { + "integrity": "fa750a168ad5743128e4dcc50c8f63ce3c0ad6e753f99ddf1b34f8a9cece6602" }, - "@optique/run@0.10.2": { - "integrity": "3425599e09c6f67fe4813625dee1e67297e92d0ae18a0a70b36fd76879bccb05", + "@optique/run@0.10.4": { + "integrity": "39a4bf4258b82291594fb86be20e42b1768b403610d8977d1521b46a2526578f", "dependencies": [ "jsr:@optique/core" ] @@ -5874,9 +5877,9 @@ "jsr:@hono/hono@^4.8.3", "jsr:@logtape/file@2", "jsr:@logtape/logtape@2", - "jsr:@optique/config@~0.10.2", - "jsr:@optique/core@~0.10.2", - "jsr:@optique/run@~0.10.2", + "jsr:@optique/config@~0.10.4", + "jsr:@optique/core@~0.10.4", + "jsr:@optique/run@~0.10.4", "jsr:@std/assert@^1.0.13", "jsr:@std/async@^1.0.13", "jsr:@std/encoding@^1.0.10", diff --git a/packages/cli/src/inbox.tsx b/packages/cli/src/inbox.tsx index ce77ba0d4..90d927184 100644 --- a/packages/cli/src/inbox.tsx +++ b/packages/cli/src/inbox.tsx @@ -27,6 +27,7 @@ import { bindConfig } from "@optique/config"; import { command, constant, + group, type InferValue, merge, message, @@ -96,8 +97,6 @@ export const inboxCommand = command( default: [], }, ), - }), - object({ actorName: bindConfig( option("--actor-name", string({ metavar: "NAME" }), { description: message`Customize the actor display name.`, @@ -136,7 +135,7 @@ export const inboxCommand = command( }, ), }), - createTunnelOption("inbox"), + group("Tunnel options", createTunnelOption("inbox")), ), { brief: message`Run an ephemeral ActivityPub inbox server.`, diff --git a/packages/cli/src/lookup.ts b/packages/cli/src/lookup.ts index 796868028..1854e6ef8 100644 --- a/packages/cli/src/lookup.ts +++ b/packages/cli/src/lookup.ts @@ -53,7 +53,7 @@ import { colorEnabled, colors, formatObject } from "./utils.ts"; const logger = getLogger(["fedify", "cli", "lookup"]); -export const authorizedFetchOption = object({ +export const authorizedFetchOption = object("Authorized fetch options", { authorizedFetch: bindConfig( map( flag("-a", "--authorized-fetch", { @@ -87,7 +87,7 @@ export const authorizedFetchOption = object({ tunnelService: tunnelServiceOption, }); -const traverseOption = object({ +const traverseOption = object("Traverse options", { traverse: bindConfig( flag("-t", "--traverse", { description: @@ -115,18 +115,41 @@ const traverseOption = object({ export const lookupCommand = command( "lookup", merge( - "Looking up options", object({ command: constant("lookup") }), traverseOption, authorizedFetchOption, - userAgentOption, - object({ + merge( + "Network options", + userAgentOption, + object({ + timeout: optional( + bindConfig( + option( + "-T", + "--timeout", + float({ min: 0, metavar: "SECONDS" }), + { + description: + message`Set timeout for network requests in seconds.`, + }, + ), + { + context: configContext, + key: (config) => config.lookup?.timeout, + }, + ), + ), + }), + ), + object("Arguments", { urls: multiple( argument(string({ metavar: "URL_OR_HANDLE" }), { description: message`One or more URLs or handles to look up.`, }), { min: 1 }, ), + }), + object("Output options", { format: bindConfig( optional( or( @@ -177,23 +200,6 @@ export const lookupCommand = command( }), { description: message`Specify the output file path.` }, )), - timeout: optional( - bindConfig( - option( - "-T", - "--timeout", - float({ min: 0, metavar: "SECONDS" }), - { - description: - message`Set timeout for network requests in seconds.`, - }, - ), - { - context: configContext, - key: (config) => config.lookup?.timeout, - }, - ), - ), }), ), { diff --git a/packages/cli/src/mod.ts b/packages/cli/src/mod.ts index d4c7b21c3..5f5b8f69b 100644 --- a/packages/cli/src/mod.ts +++ b/packages/cli/src/mod.ts @@ -1,6 +1,6 @@ #!/usr/bin/env node --disable-warning=ExperimentalWarning import { runWithConfig } from "@optique/config/run"; -import { merge, message, or } from "@optique/core"; +import { group, merge, message, or } from "@optique/core"; import { printError } from "@optique/run"; import { merge as deepMerge } from "es-toolkit"; import { readFileSync } from "node:fs"; @@ -56,14 +56,27 @@ function getUserConfigPath(): string { const command = merge( or( - initCommand, - webFingerCommand, - lookupCommand, - inboxCommand, - nodeInfoCommand, - tunnelCommand, - generateVocabCommand, - relayCommand, + group( + "Generating code", + or( + initCommand, + generateVocabCommand, + ), + ), + group( + "ActivityPub tools", + or( + webFingerCommand, + lookupCommand, + inboxCommand, + nodeInfoCommand, + relayCommand, + ), + ), + group( + "Network tools", + tunnelCommand, + ), ), globalOptions, ); @@ -107,14 +120,18 @@ async function main() { help: { mode: "both", onShow: () => process.exit(0), + group: "Meta commands", }, version: { mode: "both", value: metadata.version, + group: "Meta commands", }, completion: { mode: "command", name: "both", + helpVisibility: "plural", + group: "Meta commands", }, onError: () => process.exit(1), colors: process.stdout.isTTY && diff --git a/packages/cli/src/nodeinfo.ts b/packages/cli/src/nodeinfo.ts index d464c01c6..21b4058ad 100644 --- a/packages/cli/src/nodeinfo.ts +++ b/packages/cli/src/nodeinfo.ts @@ -9,6 +9,7 @@ import { command as Command, constant, flag, + group, type InferValue, merge, message, @@ -34,62 +35,66 @@ export const Jimp = createJimp({ plugins: defaultPlugins, }); -const nodeInfoOption = object({ - raw: bindConfig( - flag("-r", "--raw", { - description: message`Show NodeInfo document in the raw JSON format`, - }), - { - context: configContext, - key: (config) => config.nodeinfo?.raw ?? false, - default: false, - }, - ), - bestEffort: bindConfig( - flag("-b", "--best-effort", { - description: - message`Parse the NodeInfo document with best effort. If the NodeInfo document is not well-formed, the option will try to parse it as much as possible.`, - }), - { - context: configContext, - key: (config) => config.nodeinfo?.bestEffort ?? false, - default: false, - }, - ), - noFavicon: bindConfig( - flag("--no-favicon", { - description: message`Disable fetching the favicon of the instance`, - }), - { - context: configContext, - key: (config) => config.nodeinfo?.showFavicon === false, - default: false, - }, - ), - metadata: bindConfig( - flag("-m", "--metadata", { - description: - message`Show the extra metadata of the NodeInfo, i.e., the metadata field of the document.`, - }), - { - context: configContext, - key: (config) => config.nodeinfo?.showMetadata ?? false, - default: false, - }, - ), -}); +const nodeInfoOption = merge( + object("Display options", { + raw: bindConfig( + flag("-r", "--raw", { + description: message`Show NodeInfo document in the raw JSON format`, + }), + { + context: configContext, + key: (config) => config.nodeinfo?.raw ?? false, + default: false, + }, + ), + noFavicon: bindConfig( + flag("--no-favicon", { + description: message`Disable fetching the favicon of the instance`, + }), + { + context: configContext, + key: (config) => config.nodeinfo?.showFavicon === false, + default: false, + }, + ), + metadata: bindConfig( + flag("-m", "--metadata", { + description: + message`Show the extra metadata of the NodeInfo, i.e., the metadata field of the document.`, + }), + { + context: configContext, + key: (config) => config.nodeinfo?.showMetadata ?? false, + default: false, + }, + ), + }), + object("Parsing options", { + bestEffort: bindConfig( + flag("-b", "--best-effort", { + description: + message`Parse the NodeInfo document with best effort. If the NodeInfo document is not well-formed, the option will try to parse it as much as possible.`, + }), + { + context: configContext, + key: (config) => config.nodeinfo?.bestEffort ?? false, + default: false, + }, + ), + }), +); export const nodeInfoCommand = Command( "nodeinfo", merge( - object({ + object("Arguments", { command: constant("nodeinfo"), host: argument(string({ metavar: "HOST" }), { description: message`Bare hostname or a full URL of the instance`, }), }), nodeInfoOption, - userAgentOption, + group("Network options", userAgentOption), ), { brief: diff --git a/packages/cli/src/relay.ts b/packages/cli/src/relay.ts index 72ff31c71..3085041f4 100644 --- a/packages/cli/src/relay.ts +++ b/packages/cli/src/relay.ts @@ -6,6 +6,7 @@ import { bindConfig } from "@optique/config"; import { command, constant, + group, type InferValue, integer, merge, @@ -120,7 +121,7 @@ export const relayCommand = command( }, ), }), - createTunnelOption("relay"), + group("Tunnel options", createTunnelOption("relay")), ), { brief: message`Run an ephemeral ActivityPub relay server.`, diff --git a/packages/cli/src/webfinger/command.ts b/packages/cli/src/webfinger/command.ts index b621b9fc8..1b85fbbf9 100644 --- a/packages/cli/src/webfinger/command.ts +++ b/packages/cli/src/webfinger/command.ts @@ -4,6 +4,7 @@ import { command, constant, flag, + group, type InferValue, integer, merge, @@ -43,13 +44,17 @@ const maxRedirection = bindConfig( export const webFingerCommand = command( "webfinger", merge( + "Network options", object({ command: constant("webfinger"), - resources: multiple( - argument(string({ metavar: "RESOURCE" }), { - description: message`WebFinger resource(s) to look up.`, - }), - { min: 1 }, + resources: group( + "Arguments", + multiple( + argument(string({ metavar: "RESOURCE" }), { + description: message`WebFinger resource(s) to look up.`, + }), + { min: 1 }, + ), ), allowPrivateAddresses, maxRedirection, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43c9eb0b4..3ed9383e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,14 +49,14 @@ catalogs: specifier: ^1.39.0 version: 1.39.0 '@optique/config': - specifier: ^0.10.2 - version: 0.10.2 + specifier: ^0.10.4 + version: 0.10.4 '@optique/core': - specifier: ^0.10.2 - version: 0.10.2 + specifier: ^0.10.4 + version: 0.10.4 '@optique/run': - specifier: ^0.10.2 - version: 0.10.2 + specifier: ^0.10.4 + version: 0.10.4 '@std/assert': specifier: jsr:^1.0.13 version: 1.0.13 @@ -797,13 +797,13 @@ importers: version: 2.0.0 '@optique/config': specifier: 'catalog:' - version: 0.10.2(@standard-schema/spec@1.0.0) + version: 0.10.4(@standard-schema/spec@1.0.0) '@optique/core': specifier: 'catalog:' - version: 0.10.2 + version: 0.10.4 '@optique/run': specifier: 'catalog:' - version: 0.10.2 + version: 0.10.4 '@poppanator/http-constants': specifier: ^1.1.1 version: 1.1.1 @@ -879,10 +879,10 @@ importers: version: link:../init '@optique/core': specifier: 'catalog:' - version: 0.10.2 + version: 0.10.4 '@optique/run': specifier: 'catalog:' - version: 0.10.2 + version: 0.10.4 es-toolkit: specifier: 'catalog:' version: 1.43.0 @@ -1158,10 +1158,10 @@ importers: version: 2.0.0 '@optique/core': specifier: 'catalog:' - version: 0.10.2 + version: 0.10.4 '@optique/run': specifier: 'catalog:' - version: 0.10.2 + version: 0.10.4 chalk: specifier: 'catalog:' version: 5.6.2 @@ -3668,18 +3668,18 @@ packages: peerDependencies: '@opentelemetry/api': ^1.1.0 - '@optique/config@0.10.2': - resolution: {integrity: sha512-TpknV699FmK0fNcPYB3hgqcbuQy0OjGnsmPdzyBd+dXK63Cck1CRErR6AqJJ9oFJcNvuLrNJ53pRz6JZlJV+ZQ==} + '@optique/config@0.10.4': + resolution: {integrity: sha512-bcMxvSPXhdGJWOmhO/97HCDGCGOUk55YoG/EZeUqNLigkOn4thYIb12KUkZ7sJSOh5/prES19iPX02g8T5RIwQ==} engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} peerDependencies: '@standard-schema/spec': ^1.1.0 - '@optique/core@0.10.2': - resolution: {integrity: sha512-aCa3zdGSCbaHSY68LNEW4bpCSdZ0Vu5tmD6OvnD9Rtc8O2P9n99SrYJLxRmJlICdq71yjn7NZnewqYylZHuZUg==} + '@optique/core@0.10.4': + resolution: {integrity: sha512-wvnm7xJ5cwuQ4fx5OZOhyljscFFJYY4VGwAqa7XUlRpoYroZaX/yPMMSWUJg1WdKcSwTyf0hJOWza8EEUZN6qw==} engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} - '@optique/run@0.10.2': - resolution: {integrity: sha512-aPEA+Piz6S9NbfoyKWvVV4TCZZjBAiw2yZ9W1czUXcq5C9A37RtC+7Zqj97l7MHaxjTlvr9xWpuAhceXFJV1mA==} + '@optique/run@0.10.4': + resolution: {integrity: sha512-IXsQ0NRq8VA18g6TC0/uBxgUnB92gCaaTXFq7qjhd68UjqnTe/uHMHpjEVdOcQ9otu1wSCnZlISGE8gEgdJvwg==} engines: {bun: '>=1.2.0', deno: '>=2.3.0', node: '>=20.0.0'} '@oxc-project/runtime@0.75.0': @@ -11216,16 +11216,16 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@optique/config@0.10.2(@standard-schema/spec@1.0.0)': + '@optique/config@0.10.4(@standard-schema/spec@1.0.0)': dependencies: - '@optique/core': 0.10.2 + '@optique/core': 0.10.4 '@standard-schema/spec': 1.0.0 - '@optique/core@0.10.2': {} + '@optique/core@0.10.4': {} - '@optique/run@0.10.2': + '@optique/run@0.10.4': dependencies: - '@optique/core': 0.10.2 + '@optique/core': 0.10.4 '@oxc-project/runtime@0.75.0': {} @@ -13890,8 +13890,8 @@ snapshots: '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3) eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-react: 7.37.5(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-react-hooks: 5.2.0(eslint@9.32.0(jiti@2.5.1)) @@ -13910,8 +13910,8 @@ snapshots: '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-react: 7.37.5(eslint@9.32.0(jiti@2.5.1)) eslint-plugin-react-hooks: 5.2.0(eslint@9.32.0(jiti@2.5.1)) @@ -13934,22 +13934,22 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1 - eslint: 9.32.0(jiti@2.5.1) + eslint: 8.57.1 get-tsconfig: 4.10.1 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.1 @@ -13960,22 +13960,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) - transitivePeerDependencies: - - supports-color - - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.1 - eslint: 8.57.1 - get-tsconfig: 4.10.1 - is-bun-module: 2.0.0 - stable-hash: 0.0.5 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 - optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)) transitivePeerDependencies: - supports-color @@ -13990,25 +13975,25 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3) eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.32.0(jiti@2.5.1)) transitivePeerDependencies: - supports-color @@ -14041,7 +14026,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -14052,7 +14037,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -14070,7 +14055,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -14081,7 +14066,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.32.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.32.0(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d444e70f6..a3142566e 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -51,9 +51,9 @@ catalog: "@opentelemetry/sdk-node": ^0.211.0 "@opentelemetry/sdk-trace-base": ^2.5.0 "@opentelemetry/semantic-conventions": ^1.39.0 - "@optique/config": ^0.10.2 - "@optique/core": ^0.10.2 - "@optique/run": ^0.10.2 + "@optique/config": ^0.10.4 + "@optique/core": ^0.10.4 + "@optique/run": ^0.10.4 "@std/assert": "jsr:^1.0.13" "@std/async": "jsr:^1.0.13" "@std/path": "jsr:^1.0.6"