From 16d11c6fa69bc3e67de627658fc31a5292702df1 Mon Sep 17 00:00:00 2001 From: PIERLUIGI VITI Date: Thu, 26 Mar 2026 21:48:00 +0100 Subject: [PATCH 1/5] feat: upgrade to oclif core v4 and node v22 BREAKING CHANGE: upgrade to oclif core v4 and node v22 --- .github/workflows/codeql-analysis.yml | 8 +- .github/workflows/publish.yml | 3 +- .github/workflows/semantic-release.yml | 8 +- .releaserc | 3 +- biome.json | 2 +- lib/base.d.ts | 53 -- lib/base.js | 194 ------- lib/commands/metrics/breakdown.d.ts | 18 - lib/commands/metrics/breakdown.js | 103 ---- lib/commands/metrics/date_breakdown.d.ts | 16 - lib/commands/metrics/date_breakdown.js | 80 --- lib/commands/metrics/fbt.d.ts | 11 - lib/commands/metrics/fbt.js | 56 -- lib/commands/metrics/noc.d.ts | 6 - lib/commands/metrics/noc.js | 13 - lib/commands/metrics/search.d.ts | 19 - lib/commands/metrics/search.js | 76 --- lib/commands/metrics/stats.d.ts | 17 - lib/commands/metrics/stats.js | 80 --- lib/common.d.ts | 117 ---- lib/common.js | 30 - lib/index.d.ts | 1 - lib/index.js | 5 - lib/request.d.ts | 2 - lib/request.js | 27 - package.json | 13 +- pnpm-lock.yaml | 568 +++++++------------ src/base.ts | 3 +- src/commands/metrics/noc.ts | 2 + test/commands/metrics/ask.test.ts | 4 +- test/commands/metrics/breakdown.test.ts | 4 +- test/commands/metrics/date_breakdown.test.ts | 4 +- test/commands/metrics/fbt.test.ts | 4 +- test/commands/metrics/search.test.ts | 4 +- test/commands/metrics/stats.test.ts | 4 +- tsconfig.json | 3 +- 36 files changed, 245 insertions(+), 1316 deletions(-) delete mode 100644 lib/base.d.ts delete mode 100644 lib/base.js delete mode 100644 lib/commands/metrics/breakdown.d.ts delete mode 100644 lib/commands/metrics/breakdown.js delete mode 100644 lib/commands/metrics/date_breakdown.d.ts delete mode 100644 lib/commands/metrics/date_breakdown.js delete mode 100644 lib/commands/metrics/fbt.d.ts delete mode 100644 lib/commands/metrics/fbt.js delete mode 100644 lib/commands/metrics/noc.d.ts delete mode 100644 lib/commands/metrics/noc.js delete mode 100644 lib/commands/metrics/search.d.ts delete mode 100644 lib/commands/metrics/search.js delete mode 100644 lib/commands/metrics/stats.d.ts delete mode 100644 lib/commands/metrics/stats.js delete mode 100644 lib/common.d.ts delete mode 100644 lib/common.js delete mode 100644 lib/index.d.ts delete mode 100644 lib/index.js delete mode 100644 lib/request.d.ts delete mode 100644 lib/request.js diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index c39dae7..84f82fe 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -38,11 +38,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -53,7 +53,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 # â„šī¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -67,4 +67,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0d914b9..aa2d580 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -9,8 +9,9 @@ jobs: steps: - name: Post to a Slack channel id: slack - uses: slackapi/slack-github-action@v1 + uses: slackapi/slack-github-action@v3 with: + webhook-type: incoming-webhook payload: | { "text": "New release ${{github.ref_name}} for ${{github.event.repository.name}}.", diff --git a/.github/workflows/semantic-release.yml b/.github/workflows/semantic-release.yml index 7dbd0e5..57ae068 100644 --- a/.github/workflows/semantic-release.yml +++ b/.github/workflows/semantic-release.yml @@ -1,7 +1,7 @@ name: Release on: push: - branches: [ main, beta, prerelease ] + branches: [ main, beta, prerelease, oclif4 ] pull_request: branches: [ main ] jobs: @@ -12,16 +12,16 @@ jobs: id-token: write steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 persist-credentials: false - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v5 with: version: latest - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: 'lts/*' cache: 'pnpm' diff --git a/.releaserc b/.releaserc index a9e9901..4dc0a45 100644 --- a/.releaserc +++ b/.releaserc @@ -5,7 +5,8 @@ { "name": "main", "channel": "latest" }, "+([0-9])?(.{+([0-9]),x}).x", { "name": "beta", "prerelease": true }, - { "name": "prerelease", "prerelease": "rc" } + { "name": "prerelease", "prerelease": "rc" }, + { "name": "oclif4", "prerelease": true } ], "plugins": [ "@semantic-release/commit-analyzer", diff --git a/biome.json b/biome.json index 4bab18c..354d9a6 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.4.8/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.9/schema.json", "vcs": { "enabled": true, "clientKind": "git", diff --git a/lib/base.d.ts b/lib/base.d.ts deleted file mode 100644 index b3528b9..0000000 --- a/lib/base.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Args, Command, Flags } from '@oclif/core'; -import { type MetricsFilter, type MetricsQueryBreakdown } from './common'; -export declare abstract class BaseCommand extends Command { - static baseFlags: { - organization: import("@oclif/core/lib/interfaces").OptionFlag; - domain: import("@oclif/core/lib/interfaces").OptionFlag; - accessToken: import("@oclif/core/lib/interfaces").OptionFlag; - }; - init(): Promise; - catch(error: any): Promise; - protected handleError(error: any, flags?: any): Promise; - protected checkAcessTokenData(accessToken: string, flags?: any): boolean; - protected multivalFlag(flag?: string[]): string[]; - protected printResponse(response: Response): Promise; -} -export declare abstract class BaseFilterCommand extends BaseCommand { - static baseFlags: { - filter: import("@oclif/core/lib/interfaces").OptionFlag; - organization: import("@oclif/core/lib/interfaces").OptionFlag; - domain: import("@oclif/core/lib/interfaces").OptionFlag; - accessToken: import("@oclif/core/lib/interfaces").OptionFlag; - }; - protected filterFlag(flag?: string): MetricsFilter | undefined; -} -export declare abstract class BaseResourceCommand extends BaseFilterCommand { - static baseFlags: { - filter: import("@oclif/core/lib/interfaces").OptionFlag; - organization: import("@oclif/core/lib/interfaces").OptionFlag; - domain: import("@oclif/core/lib/interfaces").OptionFlag; - accessToken: import("@oclif/core/lib/interfaces").OptionFlag; - }; - static args: { - resource: import("@oclif/core/lib/interfaces").Arg>; - }; -} -export declare abstract class BaseBreakdownCommand extends BaseResourceCommand { - static baseFlags: { - by: import("@oclif/core/lib/interfaces").OptionFlag; - field: import("@oclif/core/lib/interfaces").OptionFlag; - operator: import("@oclif/core/lib/interfaces").OptionFlag; - breakdown: import("@oclif/core/lib/interfaces").OptionFlag; - filter: import("@oclif/core/lib/interfaces").OptionFlag; - organization: import("@oclif/core/lib/interfaces").OptionFlag; - domain: import("@oclif/core/lib/interfaces").OptionFlag; - accessToken: import("@oclif/core/lib/interfaces").OptionFlag; - }; - static args: { - resource: import("@oclif/core/lib/interfaces").Arg>; - }; - protected breakdownFlag(flag?: string): MetricsQueryBreakdown | undefined; - protected printBreakdown(by: string, data: any, level?: number): void; -} -export { Args, Flags }; diff --git a/lib/base.js b/lib/base.js deleted file mode 100644 index 858902a..0000000 --- a/lib/base.js +++ /dev/null @@ -1,194 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Flags = exports.Args = exports.BaseBreakdownCommand = exports.BaseResourceCommand = exports.BaseFilterCommand = exports.BaseCommand = void 0; -const tslib_1 = require("tslib"); -const cli_core_1 = require("@commercelayer/cli-core"); -const cliux = tslib_1.__importStar(require("@commercelayer/cli-ux")); -const sdk_1 = require("@commercelayer/sdk"); -const core_1 = require("@oclif/core"); -Object.defineProperty(exports, "Args", { enumerable: true, get: function () { return core_1.Args; } }); -Object.defineProperty(exports, "Flags", { enumerable: true, get: function () { return core_1.Flags; } }); -const common_1 = require("./common"); -const pkg = require('../package.json'); -const REQUIRED_APP_KIND = cli_core_1.clConfig.metrics.applications; -class BaseCommand extends core_1.Command { - static baseFlags = { - organization: core_1.Flags.string({ - char: 'o', - description: 'the slug of your organization', - required: true, - env: 'CL_CLI_ORGANIZATION', - hidden: true - }), - domain: core_1.Flags.string({ - char: 'd', - required: false, - hidden: true, - dependsOn: ['organization'], - env: 'CL_CLI_DOMAIN' - }), - accessToken: core_1.Flags.string({ - char: 'a', - description: 'custom access token to use instead of the one used for login', - hidden: true, - required: true, - env: 'CL_CLI_ACCESS_TOKEN', - dependsOn: ['organization'] - }) - }; - // INIT (override) - async init() { - cli_core_1.clUpdate.checkUpdate(pkg); - return await super.init(); - } - async catch(error) { - return await this.handleError(error); - } - async handleError(error, flags) { - if (sdk_1.CommerceLayerStatic.isApiError(error)) { - if (error.status === 401) { - const err = error.first(); - this.error(cli_core_1.clColor.msg.error(`${err.title}: ${err.detail}`), { suggestions: ['Execute login to get access to the organization\'s resources'] }); - } - else - this.error(cli_core_1.clOutput.formatError(error, flags)); - } - else - return await super.catch(error); - } - /* - protected commercelayerInit(flags: any): CommerceLayerClient { - - const organization = flags.organization - const domain = flags.domain - const accessToken = flags.accessToken - const userAgent = clUtil.userAgent(this.config) - - return commercelayer({ - organization, - domain, - accessToken, - userAgent - }) - - } - */ - checkAcessTokenData(accessToken, flags) { - const info = cli_core_1.clToken.decodeAccessToken(accessToken); - if (info === null) - this.error('Invalid access token provided'); - else if (!REQUIRED_APP_KIND.includes(info.application.kind)) // Application - this.error(`Invalid application kind: ${cli_core_1.clColor.msg.error(info.application.kind)}. Only these access tokens can be used: [${REQUIRED_APP_KIND.join(', ')}]`); - else if (info.organization?.slug !== flags.organization) // Organization - this.error(`The access token provided belongs to a wrong organization: ${cli_core_1.clColor.msg.error(info.organization?.slug)} instead of ${cli_core_1.clColor.style.organization(flags.organization)}`); - return true; - } - multivalFlag(flag) { - const values = []; - if (flag) { - const flagValues = flag.map(f => f.split(',').map(t => t.trim())); - flagValues.forEach(a => { values.push(...a); }); - } - return values; - } - async printResponse(response) { - if (cliux.action.running) - cliux.action.stop(response.ok ? cli_core_1.clColor.msg.success('Done') : cli_core_1.clColor.msg.error('Error')); - const jsonRes = await response.json(); - this.log(); - if (response.ok) - this.log(cli_core_1.clOutput.formatOutput(jsonRes.data)); - else - this.log(cli_core_1.clOutput.formatError(jsonRes)); - this.log(); - } -} -exports.BaseCommand = BaseCommand; -class BaseFilterCommand extends BaseCommand { - static baseFlags = { - ...BaseCommand.baseFlags, - filter: core_1.Flags.string({ - char: 'F', - description: 'the filter to apply to the query in JSON format (enclosed in single quotes)' - }) - }; - filterFlag(flag) { - let filter; - if (flag) { - try { - filter = JSON.parse(flag); - } - catch (_error) { - this.error(`Invalid ${cli_core_1.clColor.cli.flag('filter')} format. Please provide a valid JSON string`); - } - } - return filter; - } -} -exports.BaseFilterCommand = BaseFilterCommand; -class BaseResourceCommand extends BaseFilterCommand { - static baseFlags = { - ...BaseFilterCommand.baseFlags - }; - static args = { - resource: core_1.Args.string({ resource: 'the resource name', options: common_1.resources, required: true }) - }; -} -exports.BaseResourceCommand = BaseResourceCommand; -class BaseBreakdownCommand extends BaseResourceCommand { - static baseFlags = { - ...BaseResourceCommand.baseFlags, - by: core_1.Flags.string({ - char: 'b', - description: 'the field you want the results of the query aggragated by', - required: true - }), - field: core_1.Flags.string({ - char: 'f', - description: 'the field you want the metrics or statistics computed on', - required: true - }), - operator: core_1.Flags.string({ - char: 'O', - aliases: ['op'], - summary: 'the computing operator', - description: 'the list of valid operators depends on the value of the field key', - options: common_1.operators, - required: true, - }), - breakdown: core_1.Flags.string({ - char: 'B', - summary: 'the optional nested breakdown', - description: 'a JSON object (enclosed in single quotes) containing the nested breakdown', - }) - }; - static args = { - ...BaseResourceCommand.args - }; - breakdownFlag(flag) { - let breakdown; - if (flag) { - try { - breakdown = JSON.parse(flag); - } - catch (_error) { - this.error(`Invalid ${cli_core_1.clColor.msg.error('breakdown')} format. Please provide a valid JSON string`); - } - } - return breakdown; - } - printBreakdown(by, data, level = 0) { - const tab = ' '.repeat(level); - this.log(`${tab}${cli_core_1.clColor.cyanBright(by)}: [`); - const items = data[by] || []; - for (const item of items) { - this.log(`${tab} ${item.label}: ${cli_core_1.clColor.yellow(item.value)}`); - const extraFields = Object.keys(item).filter((field) => !['label', 'value', 'date'].includes(String(field))); - const nestedBreakdown = (extraFields.length > 0) ? extraFields[0] : undefined; - if (nestedBreakdown) - this.printBreakdown(nestedBreakdown, item, level + 1); - } - this.log(`${tab}]`); - } -} -exports.BaseBreakdownCommand = BaseBreakdownCommand; diff --git a/lib/commands/metrics/breakdown.d.ts b/lib/commands/metrics/breakdown.d.ts deleted file mode 100644 index ddbf553..0000000 --- a/lib/commands/metrics/breakdown.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { BaseBreakdownCommand } from '../../base'; -import type { MetricsCondition, MetricsOperation } from '../../common'; -export default class MetricsBreakdown extends BaseBreakdownCommand { - static operation: MetricsOperation; - static aliases: string[]; - static description: string; - static examples: string[]; - static flags: { - condition: import("@oclif/core/lib/interfaces").OptionFlag; - sort: import("@oclif/core/lib/interfaces").OptionFlag; - limit: import("@oclif/core/lib/interfaces").OptionFlag; - }; - static args: { - resource: import("@oclif/core/lib/interfaces").Arg>; - }; - run(): Promise; - protected conditionFlag(flag?: string): MetricsCondition | undefined; -} diff --git a/lib/commands/metrics/breakdown.js b/lib/commands/metrics/breakdown.js deleted file mode 100644 index 05c4ca5..0000000 --- a/lib/commands/metrics/breakdown.js +++ /dev/null @@ -1,103 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -const cli_core_1 = require("@commercelayer/cli-core"); -const cliux = tslib_1.__importStar(require("@commercelayer/cli-ux")); -const base_1 = require("../../base"); -const common_1 = require("../../common"); -const request_1 = require("../../request"); -class MetricsBreakdown extends base_1.BaseBreakdownCommand { - static operation = 'breakdown'; - static aliases = [MetricsBreakdown.operation]; - static description = 'perform a breakdown query on the Metrics API endpoint'; - static examples = [ - 'commercelayer metrics:breakdown orders -b order.country_code -f order.id -O value_count -s desc -l 20', - 'cl breakdown orders -b order.country_code -f order.id -O value_count -s desc -l 20 -B \'{"by": "line_items.name","field": "line_items.id","operator": "value_count","sort": "desc","limit": 20}\'', - ]; - static flags = { - condition: base_1.Flags.string({ - char: 'c', - summary: 'an additional constraint to fine-tune the set of records', - description: 'the condition is applied to the computed results of the query and it is available for operators that return single numeric (float or integer) values.' - }), - sort: base_1.Flags.string({ - char: 's', - description: 'the way you want the results of the query to be sorted', - options: common_1.sorts - }), - limit: base_1.Flags.integer({ - char: 'l', - description: 'the maximum number of records shown in the response', - min: 1, - max: 100 - }) - }; - static args = { - ...base_1.BaseResourceCommand.args - }; - async run() { - const { args, flags } = await this.parse(MetricsBreakdown); - this.checkAcessTokenData(flags.accessToken, flags); - const resource = args.resource; - const operator = flags.operator; - const condition = this.conditionFlag(flags.condition); - const sort = flags.sort; - const breakdown = this.breakdownFlag(flags.breakdown); - const queryBreakdown = { - by: flags.by, - field: flags.field, - operator, - condition, - sort, - limit: flags.limit, - breakdown - }; - const filterObject = this.filterFlag(flags.filter); - const query = { - breakdown: queryBreakdown, - filter: filterObject - }; - const response = await (0, request_1.metricsRequest)(MetricsBreakdown.operation, query, resource, flags); - if (response.ok) { - const breakdown0 = (await response.json()).data; - cliux.action.stop(cli_core_1.clColor.msg.success('Done')); - this.log(); - this.printBreakdown(flags.by, breakdown0); - this.log(); - } - else - await this.printResponse(response); - } - conditionFlag(flag) { - let condition; - if (flag) { - const eqi = flag.indexOf('='); - if (eqi < 1) - this.error(`Invalid condition flag: ${cli_core_1.clColor.msg.error(flag)}`, { - suggestions: [`Condition flag must be defined using the format ${cli_core_1.clColor.cli.value('name=value')}`] - }); - // Condition name and value - const name = flag.substring(0, eqi); - if (!common_1.conditions.includes(name)) - this.error(`Invalid condition name: ${cli_core_1.clColor.msg.error(name)}`, { - suggestions: [`Condition name must be one of the following: ${cli_core_1.clColor.cli.value(common_1.conditions.join(', '))}`] - }); - const value = flag.substring(eqi + 1, flag.length); - const usi = name.indexOf('_'); - if (usi > 0) { // interval condition - const values = value.split(','); - if (values.length !== 2) - this.error(`Invalid condition value: ${cli_core_1.clColor.msg.error(value)}`, { - suggestions: [`Interval condition flag must be defined using the format ${cli_core_1.clColor.cli.value('name=from,to')}`] - }); - const from = values[0]; - const to = values[1]; - condition = { [name]: [from, to] }; - } - else - condition = { [name]: value }; - } - return condition; - } -} -exports.default = MetricsBreakdown; diff --git a/lib/commands/metrics/date_breakdown.d.ts b/lib/commands/metrics/date_breakdown.d.ts deleted file mode 100644 index d34e2c2..0000000 --- a/lib/commands/metrics/date_breakdown.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { BaseBreakdownCommand } from '../../base'; -import type { MetricsOperator } from '../../common'; -export default class MetricsDateBreakdown extends BaseBreakdownCommand { - static operation: string; - static aliases: string[]; - static description: string; - static examples: string[]; - static flags: { - interval: import("@oclif/core/lib/interfaces").OptionFlag; - }; - static args: { - resource: import("@oclif/core/lib/interfaces").Arg>; - }; - run(): Promise; - protected printDateBreakdown(operator: MetricsOperator, data: any, level?: number): void; -} diff --git a/lib/commands/metrics/date_breakdown.js b/lib/commands/metrics/date_breakdown.js deleted file mode 100644 index 877a745..0000000 --- a/lib/commands/metrics/date_breakdown.js +++ /dev/null @@ -1,80 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -const cli_core_1 = require("@commercelayer/cli-core"); -const cliux = tslib_1.__importStar(require("@commercelayer/cli-ux")); -const base_1 = require("../../base"); -const common_1 = require("../../common"); -const request_1 = require("../../request"); -class MetricsDateBreakdown extends base_1.BaseBreakdownCommand { - static operation = 'date_breakdown'; - static aliases = [MetricsDateBreakdown.operation]; - static description = 'perform a date breakdown query on the Metrics API endpoint'; - static examples = [ - 'commercelayer metrics:date_breakdown orders -b order.placed_at -f order.total_amount_with_taxes -O stats -i month' - ]; - static flags = { - interval: base_1.Flags.string({ - char: 'i', - description: 'the time interval over which the metrics are computed', - options: common_1.intervals - }) - }; - static args = { - ...base_1.BaseResourceCommand.args - }; - async run() { - const { args, flags } = await this.parse(MetricsDateBreakdown); - this.checkAcessTokenData(flags.accessToken, flags); - const resource = args.resource; - const operator = flags.operator; - const interval = flags.interval; - const breakdown = this.breakdownFlag(flags.breakdown); - const queryBreakdown = { - by: flags.by, - field: flags.field, - operator, - interval, - breakdown - }; - const filterObject = this.filterFlag(flags.filter); - const query = { - date_breakdown: queryBreakdown, - filter: filterObject - }; - const response = await (0, request_1.metricsRequest)(MetricsDateBreakdown.operation, query, resource, flags); - if (response.ok) { - const dateBreakdown = (await response.json()).data; - cliux.action.stop(cli_core_1.clColor.msg.success('Done')); - this.log(); - this.printDateBreakdown(operator, dateBreakdown); - this.log(); - } - else - await this.printResponse(response); - } - printDateBreakdown(operator, data, level = 0) { - if (level === 0) - cliux.action.stop(cli_core_1.clColor.msg.success('Done')); - const operatorInfo = common_1.operatorMap[operator]; - this.log('----------------------------------------'); - for (const item of data) { - this.log(`date: ${cli_core_1.clColor.magenta(cli_core_1.clOutput.cleanDate(String(item.date)))}`); - if (operatorInfo.type === 'Object') { - this.log(`${operator} = {`); - ['count', 'min', 'max', 'avg', 'sum'].forEach((op) => { - this.log(` ${op.padStart(5, ' ')}: ${cli_core_1.clColor.yellow(item.value[op])}`); - }); - this.log('}'); - } - else - this.log(`${operator} = ${cli_core_1.clColor.yellow(item.value)}`); - const extraFields = Object.keys(item).filter((field) => !['label', 'value', 'date'].includes(String(field))); - const nestedBreakdown = (extraFields.length > 0) ? extraFields[0] : undefined; - if (nestedBreakdown) - this.printBreakdown(nestedBreakdown, item, level); - this.log('----------------------------------------'); - } - } -} -exports.default = MetricsDateBreakdown; diff --git a/lib/commands/metrics/fbt.d.ts b/lib/commands/metrics/fbt.d.ts deleted file mode 100644 index 2838cc9..0000000 --- a/lib/commands/metrics/fbt.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { BaseFilterCommand } from '../../base'; -export default class MetricsFbt extends BaseFilterCommand { - static operation: string; - static aliases: string[]; - static description: string; - static examples: string[]; - static flags: { - in: import("@oclif/core/lib/interfaces").OptionFlag; - }; - run(): Promise; -} diff --git a/lib/commands/metrics/fbt.js b/lib/commands/metrics/fbt.js deleted file mode 100644 index 15a7d75..0000000 --- a/lib/commands/metrics/fbt.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -const cli_core_1 = require("@commercelayer/cli-core"); -const cliux = tslib_1.__importStar(require("@commercelayer/cli-ux")); -const core_1 = require("@oclif/core"); -const base_1 = require("../../base"); -const request_1 = require("../../request"); -class MetricsFbt extends base_1.BaseFilterCommand { - static operation = 'fbt'; - static aliases = [MetricsFbt.operation]; - static description = 'perform a Frequently Bought Together query on the Metrics API analysis endpoint'; - static examples = [ - 'commercelayer metrics:fbt --in xYZkjABcde,yzXKjYzaCx' - ]; - static flags = { - in: core_1.Flags.string({ - char: 'i', - description: 'a list of SKU or bundle IDs associated as line items to one or more orders', - required: false, - multiple: true, - relationships: [ - { type: 'some', flags: ['in', 'filter'] } - ], - }) - }; - async run() { - const { flags } = await this.parse(MetricsFbt); - this.checkAcessTokenData(flags.accessToken, flags); - const ids = this.multivalFlag(flags.in); - const filterObject = this.filterFlag(flags.filter); - const query = (ids.length > 0) ? { - filter: { - ...filterObject, - line_items: { - item_ids: { - in: ids - } - } - } - } : {}; - const response = await (0, request_1.metricsRequest)(MetricsFbt.operation, query, undefined, flags); - if (response.ok) { - cliux.action.stop(cli_core_1.clColor.msg.success('Done')); - const jsonRes = await response.json(); - const data = jsonRes.data; - if (data?.length > 0) - this.log(String(data)); - else - this.log(cli_core_1.clColor.dim(String('\nNo data found for the given SKU or bundle IDs\n'))); - } - else - await this.printResponse(response); - } -} -exports.default = MetricsFbt; diff --git a/lib/commands/metrics/noc.d.ts b/lib/commands/metrics/noc.d.ts deleted file mode 100644 index 9dc0f0f..0000000 --- a/lib/commands/metrics/noc.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Command } from '@oclif/core'; -export default class Noc extends Command { - static hidden: boolean; - static flags: {}; - run(): Promise; -} diff --git a/lib/commands/metrics/noc.js b/lib/commands/metrics/noc.js deleted file mode 100644 index dfb7061..0000000 --- a/lib/commands/metrics/noc.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const core_1 = require("@oclif/core"); -class Noc extends core_1.Command { - static hidden = true; - static flags = {}; - async run() { - const output = '-= NoC =-'; - this.log(output); - return output; - } -} -exports.default = Noc; diff --git a/lib/commands/metrics/search.d.ts b/lib/commands/metrics/search.d.ts deleted file mode 100644 index 957384d..0000000 --- a/lib/commands/metrics/search.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { BaseResourceCommand } from '../../base'; -import type { MetricsOperation } from '../../common'; -export default class MetricsSearch extends BaseResourceCommand { - static operation: MetricsOperation; - static aliases: string[]; - static description: string; - static examples: string[]; - static flags: { - limit: import("@oclif/core/lib/interfaces").OptionFlag; - sort: import("@oclif/core/lib/interfaces").OptionFlag; - sort_by: import("@oclif/core/lib/interfaces").OptionFlag; - fields: import("@oclif/core/lib/interfaces").OptionFlag; - cursor: import("@oclif/core/lib/interfaces").OptionFlag; - }; - static args: { - resource: import("@oclif/core/lib/interfaces").Arg>; - }; - run(): Promise; -} diff --git a/lib/commands/metrics/search.js b/lib/commands/metrics/search.js deleted file mode 100644 index f74d280..0000000 --- a/lib/commands/metrics/search.js +++ /dev/null @@ -1,76 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const cli_core_1 = require("@commercelayer/cli-core"); -const core_1 = require("@oclif/core"); -const base_1 = require("../../base"); -const common_1 = require("../../common"); -const request_1 = require("../../request"); -class MetricsSearch extends base_1.BaseResourceCommand { - static operation = 'search'; - static aliases = [MetricsSearch.operation]; - static description = 'perform a search query on the Metrics API endpoint'; - static examples = [ - 'commercelayer metrics:search orders -l 5 -s asc -b order.placed_at -f order.id,order.number,order.placed_at,customer.email' - ]; - static flags = { - limit: core_1.Flags.integer({ - char: 'l', - description: 'the maximum number of records shown in the response', - min: 1, - max: 100 - }), - sort: core_1.Flags.string({ - char: 's', - description: 'the way you want the results of the query to be sorted', - options: common_1.sorts, - dependsOn: ['sort_by'] - }), - sort_by: core_1.Flags.string({ - char: 'b', - description: 'the date field you want the results of the query sorted by' - }), - fields: core_1.Flags.string({ - char: 'f', - description: 'comma-separated list of fields you want to be returned for each record in the response', - required: true, - multiple: true - }), - cursor: core_1.Flags.string({ - char: 'c', - description: 'the cursor pointing to a specific page in the paginated search results' - }) - }; - static args = { - ...base_1.BaseResourceCommand.args - }; - async run() { - const { args, flags } = await this.parse(MetricsSearch); - this.checkAcessTokenData(flags.accessToken, flags); - const resource = args.resource; - const fields = this.multivalFlag(flags.fields); - const querySearch = { - fields, - limit: flags.limit, - sort: flags.sort, - sort_by: flags.sort_by, - cursor: flags.cursor - }; - const filterObject = this.filterFlag(flags.filter); - const query = { - search: querySearch, - filter: filterObject - }; - const response = await (0, request_1.metricsRequest)(MetricsSearch.operation, query, resource, flags); - const res = response.clone(); - await this.printResponse(response); - // Print pagination info - if (res.ok) { - const pagination = (await res.json()).meta.pagination; - this.log(`Record count: ${cli_core_1.clColor.yellowBright(pagination.record_count)}`); - if (pagination.cursor) - this.log(`Cursor: ${cli_core_1.clColor.cyanBright(pagination.cursor)}`); - this.log(); - } - } -} -exports.default = MetricsSearch; diff --git a/lib/commands/metrics/stats.d.ts b/lib/commands/metrics/stats.d.ts deleted file mode 100644 index e5dbf0a..0000000 --- a/lib/commands/metrics/stats.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { BaseResourceCommand } from '../../base'; -import type { MetricsOperation } from '../../common'; -export default class MetricsStats extends BaseResourceCommand { - static operation: MetricsOperation; - static aliases: string[]; - static description: string; - static examples: string[]; - static flags: { - field: import("@oclif/core/lib/interfaces").OptionFlag; - operator: import("@oclif/core/lib/interfaces").OptionFlag; - description: import("@oclif/core/lib/interfaces").BooleanFlag; - }; - static args: { - resource: import("@oclif/core/lib/interfaces").Arg>; - }; - run(): Promise; -} diff --git a/lib/commands/metrics/stats.js b/lib/commands/metrics/stats.js deleted file mode 100644 index 30ef226..0000000 --- a/lib/commands/metrics/stats.js +++ /dev/null @@ -1,80 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = require("tslib"); -const cli_core_1 = require("@commercelayer/cli-core"); -const cliux = tslib_1.__importStar(require("@commercelayer/cli-ux")); -const core_1 = require("@oclif/core"); -const base_1 = require("../../base"); -const common_1 = require("../../common"); -const request_1 = require("../../request"); -class MetricsStats extends base_1.BaseResourceCommand { - static operation = 'stats'; - static aliases = [MetricsStats.operation]; - static description = 'perform a stats query on the Metrics API endpoint'; - static examples = [ - 'commercelayer metrics:stats orders -f order.total_amount_with_taxes --op avg', - 'cl stats orders -f order.total_amount_with_taxes -O stats' - ]; - static flags = { - field: core_1.Flags.string({ - char: 'f', - description: 'the field you want the metrics or statistics computed on', - required: true - }), - operator: core_1.Flags.string({ - char: 'O', - aliases: ['op'], - description: 'the computing operator', - options: common_1.operators, - required: true - }), - description: core_1.Flags.boolean({ - char: 'D', - description: 'show the description of the operator used for the query', - hidden: true - }), - }; - static args = { - ...base_1.BaseResourceCommand.args - }; - async run() { - const { args, flags } = await this.parse(MetricsStats); - this.checkAcessTokenData(flags.accessToken, flags); - const resource = args.resource; - const field = flags.field; - const operator = flags.operator; - const queryStats = { - field, - operator - }; - const filterObject = this.filterFlag(flags.filter); - const query = { - stats: queryStats, - filter: filterObject - }; - const response = await (0, request_1.metricsRequest)(MetricsStats.operation, query, resource, flags); - if (response.ok) { - cliux.action.stop(cli_core_1.clColor.msg.success('Done')); - const operatorInfo = common_1.operatorMap[operator]; - if (flags.description) - this.log(cli_core_1.clColor.italic(`\n${operatorInfo.description}`)); - const func = `${cli_core_1.clColor.cyan(`${operator}(`)}${cli_core_1.clColor.italic(field)}${cli_core_1.clColor.cyan(')')}`; - const jsonRes = await response.json(); - const value = jsonRes.data.value; - this.log(); - if (operatorInfo.type === 'Object') { - this.log(`${func} = {`); - ['count', 'min', 'max', 'avg', 'sum'].forEach((op) => { - this.log(` ${op.padStart(5, ' ')}: ${cli_core_1.clColor.yellow(value[op])}`); - }); - this.log('}'); - } - else - this.log(`${func} = ${cli_core_1.clColor.yellow(value)}`); - this.log(); - } - else - await this.printResponse(response); - } -} -exports.default = MetricsStats; diff --git a/lib/common.d.ts b/lib/common.d.ts deleted file mode 100644 index b95a308..0000000 --- a/lib/common.d.ts +++ /dev/null @@ -1,117 +0,0 @@ -export declare const analysisOperations: string[]; -declare const operationList: readonly ["search", "stats", "breakdown", "date_breakdown", ...string[]]; -export type MetricsOperation = typeof operationList[number]; -export declare const operations: string[]; -declare const resourceList: readonly ["orders", "returns", "carts"]; -export type MetricsResource = typeof resourceList[number]; -export declare const resources: string[]; -declare const intervalList: readonly ["hour", "day", "week", "month", "year"]; -export type MetricsInterval = typeof intervalList[number]; -export declare const intervals: string[]; -export declare const operatorMap: { - readonly avg: { - readonly type: "Float"; - readonly description: "A single-value metrics aggregation that computes the average of numeric values extracted from specific numeric fields of the aggregated records"; - }; - readonly cardinality: { - readonly type: "Integer"; - readonly description: "A single-value metrics aggregation that calculates an approximate count of distinct values"; - }; - readonly max: { - readonly type: "Float"; - readonly description: "A single-value metrics aggregation that keeps track and returns the maximum value among the numeric values extracted from specific numeric fields of the aggregated records"; - }; - readonly min: { - readonly type: "Float"; - readonly description: "A single-value metrics aggregation that keeps track and returns the minimum value among the numeric values extracted from specific numeric fields of the aggregated records"; - }; - readonly percentiles: { - readonly type: "Float"; - readonly description: "A multi-value metrics aggregation that calculates one or more percentiles (i.e. the point at which a certain percentage of observed values occurs) over numeric values extracted from specific numeric fields of the aggregated records"; - }; - readonly stats: { - readonly type: "Object"; - readonly description: "A multi-value metrics aggregation that computes stats over numeric values extracted from specific numeric fields of the aggregated records. The stats that are returned consist of: count, min, max, avg, and sum"; - }; - readonly sum: { - readonly type: "Float"; - readonly description: "A single-value metrics aggregation that sums up numeric values extracted from specific numeric fields of the aggregated records"; - }; - readonly value_count: { - readonly type: "Integer"; - readonly description: "A single-value metrics aggregation that counts the number of values extracted from specific fields of the aggregated records"; - }; -}; -export type MetricsOperator = keyof typeof operatorMap; -export declare const operators: string[]; -declare const conditionList: readonly ["eq", "ne", "gt", "gte", "lt", "lte", "gt_lt", "gte_lte", "gte_lt", "gt_lte"]; -export type MetricsConditionKey = typeof conditionList[number]; -export declare const conditions: string[]; -export type MetricsCondition = { - [key in MetricsConditionKey]?: (number | [number, number]); -}; -declare const sortList: readonly ["asc", "desc"]; -export type MetricsSort = typeof sortList[number]; -export declare const sorts: string[]; -export type MetricsQuerySearch = { - limit?: number; - sort?: MetricsSort; - sort_by?: string; - fields: string[]; - cursor?: string; -}; -export type MetricsQueryStats = { - field: string; - operator: MetricsOperator; -}; -export type MetricsQueryBreakdown = { - by: string; - field: string; - operator: MetricsOperator; - condition?: MetricsCondition; - sort?: MetricsSort; - limit?: number; - breakdown?: MetricsQueryBreakdown; -}; -export type MetricsQueryBreakdownResponse = { - label: string; - value: string | number; -} & { - key?: MetricsQueryBreakdown; -}; -export type MetricsQueryDateBreakdown = { - by: string; - field: string; - operator: MetricsOperator; - interval?: MetricsInterval; - breakdown?: MetricsQueryBreakdown; -}; -export type MetricsQueryDateBreakdownResponse = { - date: string; - value: any; -} & { - key?: MetricsQueryBreakdown; -}; -export type MetricsFilter = Record; -export type MetricsFilterFbt = { - line_items: { - item_ids: { - in: string[]; - }; - }; -}; -export type MetricsQueryFbt = { - filter?: MetricsFilterFbt; -}; -export type MetricsQuery = (({ - search: MetricsQuerySearch; -} | { - stats: MetricsQueryStats; -} | { - breakdown: MetricsQueryBreakdown; -} | { - date_breakdown: MetricsQueryDateBreakdown; -}) & { - filter?: MetricsFilter; -}) | MetricsQueryFbt; -export {}; diff --git a/lib/common.js b/lib/common.js deleted file mode 100644 index a373ef3..0000000 --- a/lib/common.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.sorts = exports.conditions = exports.operators = exports.operatorMap = exports.intervals = exports.resources = exports.operations = exports.analysisOperations = void 0; -// Operations -exports.analysisOperations = ['fbt']; -const operationList = ['search', 'stats', 'breakdown', 'date_breakdown', ...exports.analysisOperations]; -exports.operations = operationList; -// Resources -const resourceList = ['orders', 'returns', 'carts']; -exports.resources = resourceList; -// Intervals -const intervalList = ['hour', 'day', 'week', 'month', 'year']; -exports.intervals = intervalList; -// Operators -exports.operatorMap = { - avg: { type: 'Float', description: 'A single-value metrics aggregation that computes the average of numeric values extracted from specific numeric fields of the aggregated records' }, - cardinality: { type: 'Integer', description: 'A single-value metrics aggregation that calculates an approximate count of distinct values' }, - max: { type: 'Float', description: 'A single-value metrics aggregation that keeps track and returns the maximum value among the numeric values extracted from specific numeric fields of the aggregated records' }, - min: { type: 'Float', description: 'A single-value metrics aggregation that keeps track and returns the minimum value among the numeric values extracted from specific numeric fields of the aggregated records' }, - percentiles: { type: 'Float', description: 'A multi-value metrics aggregation that calculates one or more percentiles (i.e. the point at which a certain percentage of observed values occurs) over numeric values extracted from specific numeric fields of the aggregated records' }, - stats: { type: 'Object', description: 'A multi-value metrics aggregation that computes stats over numeric values extracted from specific numeric fields of the aggregated records. The stats that are returned consist of: count, min, max, avg, and sum' }, - sum: { type: 'Float', description: 'A single-value metrics aggregation that sums up numeric values extracted from specific numeric fields of the aggregated records' }, - value_count: { type: 'Integer', description: 'A single-value metrics aggregation that counts the number of values extracted from specific fields of the aggregated records' } -}; -exports.operators = Object.keys(exports.operatorMap); -// Conditions -const conditionList = ['eq', 'ne', 'gt', 'gte', 'lt', 'lte', 'gt_lt', 'gte_lte', 'gte_lt', 'gt_lte']; -exports.conditions = conditionList; -const sortList = ['asc', 'desc']; -exports.sorts = sortList; diff --git a/lib/index.d.ts b/lib/index.d.ts deleted file mode 100644 index d620e70..0000000 --- a/lib/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export { run } from '@oclif/core'; diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 5f4768c..0000000 --- a/lib/index.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.run = void 0; -var core_1 = require("@oclif/core"); -Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } }); diff --git a/lib/request.d.ts b/lib/request.d.ts deleted file mode 100644 index 10ccb86..0000000 --- a/lib/request.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { type MetricsOperation, type MetricsResource } from "./common"; -export declare function metricsRequest(operation: MetricsOperation, query: any, resource?: MetricsResource, flags?: any): Promise; diff --git a/lib/request.js b/lib/request.js deleted file mode 100644 index 9ea308f..0000000 --- a/lib/request.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.metricsRequest = metricsRequest; -const tslib_1 = require("tslib"); -const cli_core_1 = require("@commercelayer/cli-core"); -const cliux = tslib_1.__importStar(require("@commercelayer/cli-ux")); -const common_1 = require("./common"); -async function metricsRequest(operation, query, resource, flags) { - console.log(); - cliux.action.start(`Performing ${cli_core_1.clColor.yellow(operation)} operation ${resource ? `on ${cli_core_1.clColor.api.resource(resource)}` : ''}`); - const baseUrl = cli_core_1.clApi.baseURL('metrics', flags.organization, flags.domain); - const analysisPath = common_1.analysisOperations.includes(operation) ? 'analysis/' : ''; - const resourcePath = resource ? `${resource}/` : ''; - const endpoint = `${baseUrl}/${cli_core_1.clConfig.metrics.default_path}/${resourcePath}${analysisPath}${operation}`; - const body = JSON.stringify(query); - const headers = { - 'Accept': 'application/vnd.api.v1+json', - 'Content-Type': 'application/vnd.api+json', - 'Authorization': `Bearer ${flags.accessToken}` - }; - const response = fetch(endpoint, { - method: "POST", - headers, - body - }); - return await response; -} diff --git a/package.json b/package.json index 13842bb..d42c755 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "repository": "commercelayer/commercelayer-cli-plugin-metrics", "bugs": "https://github.com/commercelayer/commercelayer-cli-plugin-metrics/issues", "engines": { - "node": ">=20" + "node": ">=22" }, "files": [ "/bin/run.*", @@ -54,13 +54,14 @@ "release": "pnpm upgrade && pnpm prepack && pnpm postpack && pnpm test" }, "devDependencies": { - "@biomejs/biome": "2.4.8", - "@commercelayer/cli-dev": "^3.0.13", + "@biomejs/biome": "^2.4.9", + "@commercelayer/cli-dev": "oclif4", "@oclif/plugin-help": "^6.2.40", "@oclif/test": "^4.1.17", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "@types/chai": "^5.2.3", + "@types/cli-progress": "^3.11.6", "@types/mocha": "^10.0.10", "@types/node": "^25.5.0", "chai": "^6.2.2", @@ -72,10 +73,10 @@ "typescript": "^6.0.2" }, "dependencies": { - "@commercelayer/cli-core": "^5.10.8", - "@commercelayer/cli-ux": "^1.1.0", + "@commercelayer/cli-core": "oclif4", + "@commercelayer/cli-ux": "oclif4", "@commercelayer/sdk": "^6.55.0", - "@oclif/core": "^3.27.0", + "@oclif/core": "^4.10.3", "eventsource-parser": "^3.0.6", "ora": "^9.3.0", "tslib": "^2.8.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fd8fb51..84a4eb9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: dependencies: '@commercelayer/cli-core': - specifier: ^5.10.8 - version: 5.10.8 + specifier: oclif4 + version: 6.0.0-oclif4.9 '@commercelayer/cli-ux': - specifier: ^1.1.0 - version: 1.1.0(@oclif/core@3.27.0) + specifier: oclif4 + version: 2.0.0-oclif4.10(@oclif/core@4.10.3) '@commercelayer/sdk': specifier: ^6.55.0 version: 6.55.0 '@oclif/core': - specifier: ^3.27.0 - version: 3.27.0 + specifier: ^4.10.3 + version: 4.10.3 eventsource-parser: specifier: ^3.0.6 version: 3.0.6 @@ -31,17 +31,17 @@ importers: version: 2.8.1 devDependencies: '@biomejs/biome': - specifier: 2.4.8 - version: 2.4.8 + specifier: ^2.4.9 + version: 2.4.9 '@commercelayer/cli-dev': - specifier: ^3.0.13 - version: 3.0.13 + specifier: oclif4 + version: 4.0.0-oclif4.5 '@oclif/plugin-help': specifier: ^6.2.40 version: 6.2.40 '@oclif/test': specifier: ^4.1.17 - version: 4.1.17(@oclif/core@3.27.0) + version: 4.1.17(@oclif/core@4.10.3) '@semantic-release/changelog': specifier: ^6.0.3 version: 6.0.3(semantic-release@25.0.3(typescript@6.0.2)) @@ -51,6 +51,9 @@ importers: '@types/chai': specifier: ^5.2.3 version: 5.2.3 + '@types/cli-progress': + specifier: ^3.11.6 + version: 3.11.6 '@types/mocha': specifier: ^10.0.10 version: 10.0.10 @@ -124,44 +127,44 @@ packages: resolution: {integrity: sha512-0XLrOT4Cm3NEhhiME7l/8LbTXS4KdsbR4dSrY207KNKTcHLLTZ9EXt4ZpgnTfLvWQF3pGP2us4Zi1fYLo0N+Ow==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.973.24': - resolution: {integrity: sha512-vvf82RYQu2GidWAuQq+uIzaPz9V0gSCXVqdVzRosgl5rXcspXOpSD3wFreGGW6AYymPr97Z69kjVnLePBxloDw==} + '@aws-sdk/core@3.973.25': + resolution: {integrity: sha512-TNrx7eq6nKNOO62HWPqoBqPLXEkW6nLZQGwjL6lq1jZtigWYbK1NbCnT7mKDzbLMHZfuOECUt3n6CzxjUW9HWQ==} engines: {node: '>=20.0.0'} '@aws-sdk/crc64-nvme@3.972.5': resolution: {integrity: sha512-2VbTstbjKdT+yKi8m7b3a9CiVac+pL/IY2PHJwsaGkkHmuuqkJZIErPck1h6P3T9ghQMLSdMPyW6Qp7Di5swFg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.22': - resolution: {integrity: sha512-cXp0VTDWT76p3hyK5D51yIKEfpf6/zsUvMfaB8CkyqadJxMQ8SbEeVroregmDlZbtG31wkj9ei0WnftmieggLg==} + '@aws-sdk/credential-provider-env@3.972.23': + resolution: {integrity: sha512-EamaclJcCEaPHp6wiVknNMM2RlsPMjAHSsYSFLNENBM8Wz92QPc6cOn3dif6vPDQt0Oo4IEghDy3NMDCzY/IvA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.24': - resolution: {integrity: sha512-h694K7+tRuepSRJr09wTvQfaEnjzsKZ5s7fbESrVds02GT/QzViJ94/HCNwM7bUfFxqpPXHxulZfL6Cou0dwPg==} + '@aws-sdk/credential-provider-http@3.972.25': + resolution: {integrity: sha512-qPymamdPcLp6ugoVocG1y5r69ScNiRzb0hogX25/ij+Wz7c7WnsgjLTaz7+eB5BfRxeyUwuw5hgULMuwOGOpcw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.24': - resolution: {integrity: sha512-O46fFmv0RDFWiWEA9/e6oW92BnsyAXuEgTTasxHligjn2RCr9L/DK773m/NoFaL3ZdNAUz8WxgxunleMnHAkeQ==} + '@aws-sdk/credential-provider-ini@3.972.25': + resolution: {integrity: sha512-G/v/PicYn4qs7xCv4vT6I4QKdvMyRvsgIFNBkUueCGlbLo7/PuKcNKgUozmLSsaYnE7jIl6UrfkP07EUubr48w==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.24': - resolution: {integrity: sha512-sIk8oa6AzDoUhxsR11svZESqvzGuXesw62Rl2oW6wguZx8i9cdGCvkFg+h5K7iucUZP8wyWibUbJMc+J66cu5g==} + '@aws-sdk/credential-provider-login@3.972.25': + resolution: {integrity: sha512-bUdmyJeVua7SmD+g2a65x2/0YqsGn4K2k4GawI43js0odaNaIzpIhLtHehUnPnfLuyhPWbJR1NyuIO4iMVfM0w==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.25': - resolution: {integrity: sha512-m7dR0Dsva2P+VUpL+VkC0WwiDby5pgmWXkRVDB5rlwv0jXJrQJf7YMtCoM8Wjk0H9jPeCYOxOXXcIgp/qp5Alg==} + '@aws-sdk/credential-provider-node@3.972.26': + resolution: {integrity: sha512-5XSK74rCXxCNj+UWv5bjq1EccYkiyW4XOHFU9NXnsCcQF8dJuHdua1qFg0m/LIwVOWklbKsrcnMtfxIXwgvwzQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.22': - resolution: {integrity: sha512-Os32s8/4gTZjBk5BtoS/cuTILaj+K72d0dVG7TCJX/fC4598cxwLDmf1AEHEpER5oL3K//yETjvFaz0V8oO5Xw==} + '@aws-sdk/credential-provider-process@3.972.23': + resolution: {integrity: sha512-IL/TFW59++b7MpHserjUblGrdP5UXy5Ekqqx1XQkERXBFJcZr74I7VaSrQT5dxdRMU16xGK4L0RQ5fQG1pMgnA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.24': - resolution: {integrity: sha512-PaFv7snEfypU2yXkpvfyWgddEbDLtgVe51wdZlinhc2doubBjUzJZZpgwuF2Jenl1FBydMhNpMjD6SBUM3qdSA==} + '@aws-sdk/credential-provider-sso@3.972.25': + resolution: {integrity: sha512-r4OGAfHmlEa1QBInHWz+/dOD4tRljcjVNQe9wJ/AJNXEj1d2WdsRLppvRFImRV6FIs+bTpjtL0a23V5ELQpRPw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.24': - resolution: {integrity: sha512-J6H4R1nvr3uBTqD/EeIPAskrBtET4WFfNhpFySr2xW7bVZOXpQfPjrLSIx65jcNjBmLXzWq8QFLdVoGxiGG/SA==} + '@aws-sdk/credential-provider-web-identity@3.972.25': + resolution: {integrity: sha512-uM1OtoJgj+yK3MlAmda8uR9WJJCdm5HB25JyCeFL5a5q1Fbafalf4uKidFO3/L0Pgd+Fsflkb4cM6jHIswi3QQ==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-bucket-endpoint@3.972.8': @@ -172,8 +175,8 @@ packages: resolution: {integrity: sha512-5DTBTiotEES1e2jOHAq//zyzCjeMB78lEHd35u15qnrid4Nxm7diqIf9fQQ3Ov0ChH1V3Vvt13thOnrACmfGVQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.974.4': - resolution: {integrity: sha512-fhCbZXPAyy8btnNbnBlR7Cc1nD54cETSvGn2wey71ehsM89AKPO8Dpco9DBAAgvrUdLrdHQepBXcyX4vxC5OwA==} + '@aws-sdk/middleware-flexible-checksums@3.974.5': + resolution: {integrity: sha512-SPSvF0G1t8m8CcB0L+ClNFszzQOvXaxmRj25oRWDf6aU+TuN2PXPFAJ9A6lt1IvX4oGAqqbTdMPTYs/SSHUYYQ==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-host-header@3.972.8': @@ -188,36 +191,36 @@ packages: resolution: {integrity: sha512-CWl5UCM57WUFaFi5kB7IBY1UmOeLvNZAZ2/OZ5l20ldiJ3TiIz1pC65gYj8X0BCPWkeR1E32mpsCk1L1I4n+lA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.972.8': - resolution: {integrity: sha512-BnnvYs2ZEpdlmZ2PNlV2ZyQ8j8AEkMTjN79y/YA475ER1ByFYrkVR85qmhni8oeTaJcDqbx364wDpitDAA/wCA==} + '@aws-sdk/middleware-recursion-detection@3.972.9': + resolution: {integrity: sha512-/Wt5+CT8dpTFQxEJ9iGy/UGrXr7p2wlIOEHvIr/YcHYByzoLjrqkYqXdJjd9UIgWjv7eqV2HnFJen93UTuwfTQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.24': - resolution: {integrity: sha512-4sXxVC/enYgMkZefNMOzU6C6KtAXEvwVJLgNcUx1dvROH6GvKB5Sm2RGnGzTp0/PwkibIyMw4kOzF8tbLfaBAQ==} + '@aws-sdk/middleware-sdk-s3@3.972.26': + resolution: {integrity: sha512-5q7UGSTtt7/KF0Os8wj2VZtlLxeWJVb0e2eDrDJlWot2EIxUNKDDMPFq/FowUqrwZ40rO2bu6BypxaKNvQhI+g==} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-ssec@3.972.8': resolution: {integrity: sha512-wqlK0yO/TxEC2UsY9wIlqeeutF6jjLe0f96Pbm40XscTo57nImUk9lBcw0dPgsm0sppFtAkSlDrfpK+pC30Wqw==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.972.25': - resolution: {integrity: sha512-QxiMPofvOt8SwSynTOmuZfvvPM1S9QfkESBxB22NMHTRXCJhR5BygLl8IXfC4jELiisQgwsgUby21GtXfX3f/g==} + '@aws-sdk/middleware-user-agent@3.972.26': + resolution: {integrity: sha512-AilFIh4rI/2hKyyGN6XrB0yN96W2o7e7wyrPWCM6QjZM1mcC/pVkW3IWWRvuBWMpVP8Fg+rMpbzeLQ6dTM4gig==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.996.14': - resolution: {integrity: sha512-fSESKvh1VbfjtV3QMnRkCPZWkUbQof6T/DOpiLp33yP2wA+rbwwnZeG3XT3Ekljgw2I8X4XaQPnw+zSR8yxJ5Q==} + '@aws-sdk/nested-clients@3.996.15': + resolution: {integrity: sha512-k6WAVNkub5DrU46iPQvH1m0xc1n+0dX79+i287tYJzf5g1yU2rX3uf4xNeL5JvK1NtYgfwMnsxHqhOXFBn367A==} engines: {node: '>=20.0.0'} - '@aws-sdk/region-config-resolver@3.972.9': - resolution: {integrity: sha512-eQ+dFU05ZRC/lC2XpYlYSPlXtX3VT8sn5toxN2Fv7EXlMoA2p9V7vUBKqHunfD4TRLpxUq8Y8Ol/nCqiv327Ng==} + '@aws-sdk/region-config-resolver@3.972.10': + resolution: {integrity: sha512-1dq9ToC6e070QvnVhhbAs3bb5r6cQ10gTVc6cyRV5uvQe7P138TV2uG2i6+Yok4bAkVAcx5AqkTEBUvWEtBlsQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.12': - resolution: {integrity: sha512-abRObSqjVeKUUHIZfAp78PTYrEsxCgVKDs/YET357pzT5C02eDDEvmWyeEC2wglWcYC4UTbBFk22gd2YJUlCQg==} + '@aws-sdk/signature-v4-multi-region@3.996.14': + resolution: {integrity: sha512-4nZSrBr1NO+48HCM/6BRU8mnRjuHZjcpziCvLXZk5QVftwWz5Mxqbhwdz4xf7WW88buaTB8uRO2MHklSX1m0vg==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1015.0': - resolution: {integrity: sha512-3OSD4y110nisRhHzFOjoEeHU4GQL4KpzkX9PxzWaiZe0Yg2+thZKM0Pn9DjYwezH5JYfh/K++xK/SE0IHGrmCQ==} + '@aws-sdk/token-providers@3.1018.0': + resolution: {integrity: sha512-97OPNJHy37wmGOX44xAcu6E9oSTiqK9uPcy/fWpmN5uB3JuEp1f6x60Xot/jp+FxwhQWIFUsVJFnm3QKqt7T6Q==} engines: {node: '>=20.0.0'} '@aws-sdk/types@3.973.6': @@ -239,8 +242,8 @@ packages: '@aws-sdk/util-user-agent-browser@3.972.8': resolution: {integrity: sha512-B3KGXJviV2u6Cdw2SDY2aDhoJkVfY/Q/Trwk2CMSkikE1Oi6gRzxhvhIfiRpHfmIsAhV4EA54TVEX8K6CbHbkA==} - '@aws-sdk/util-user-agent-node@3.973.11': - resolution: {integrity: sha512-1qdXbXo2s5MMLpUvw00284LsbhtlQ4ul7Zzdn5n+7p4WVgCMLqhxImpHIrjSoc72E/fyc4Wq8dLtUld2Gsh+lA==} + '@aws-sdk/util-user-agent-node@3.973.12': + resolution: {integrity: sha512-8phW0TS8ntENJgDcFewYT/Q8dOmarpvSxEjATu2GUBAutiHr++oEGCiBUwxslCMNvwW2cAPZNT53S/ym8zm/gg==} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -248,8 +251,8 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.972.15': - resolution: {integrity: sha512-PxMRlCFNiQnke9YR29vjFQwz4jq+6Q04rOVFeTDR2K7Qpv9h9FOWOxG+zJjageimYbWqE3bTuLjmryWHAWbvaA==} + '@aws-sdk/xml-builder@3.972.16': + resolution: {integrity: sha512-iu2pyvaqmeatIJLURLqx9D+4jKAdTH20ntzB6BFwjyN7V960r4jK32mx0Zf7YbtOYAbmbtQfDNuL60ONinyw7A==} engines: {node: '>=20.0.0'} '@aws/lambda-invoke-store@0.2.4': @@ -323,59 +326,59 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@biomejs/biome@2.4.8': - resolution: {integrity: sha512-ponn0oKOky1oRXBV+rlSaUlixUxf1aZvWC19Z41zBfUOUesthrQqL3OtiAlSB1EjFjyWpn98Q64DHelhA6jNlA==} + '@biomejs/biome@2.4.9': + resolution: {integrity: sha512-wvZW92FrwitTcacvCBT8xdAbfbxWfDLwjYMmU3djjqQTh7Ni4ZdiWIT/x5VcZ+RQuxiKzIOzi5D+dcyJDFZMsA==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@2.4.8': - resolution: {integrity: sha512-ARx0tECE8I7S2C2yjnWYLNbBdDoPdq3oyNLhMglmuctThwUsuzFWRKrHmIGwIRWKz0Mat9DuzLEDp52hGnrxGQ==} + '@biomejs/cli-darwin-arm64@2.4.9': + resolution: {integrity: sha512-d5G8Gf2RpH5pYwiHLPA+UpG3G9TLQu4WM+VK6sfL7K68AmhcEQ9r+nkj/DvR/GYhYox6twsHUtmWWWIKfcfQQA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@2.4.8': - resolution: {integrity: sha512-Jg9/PsB9vDCJlANE8uhG7qDhb5w0Ix69D7XIIc8IfZPUoiPrbLm33k2Ig3NOJ/7nb3UbesFz3D1aDKm9DvzjhQ==} + '@biomejs/cli-darwin-x64@2.4.9': + resolution: {integrity: sha512-LNCLNgqDMG7BLdc3a8aY/dwKPK7+R8/JXJoXjCvZh2gx8KseqBdFDKbhrr7HCWF8SzNhbTaALhTBoh/I6rf9lA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@2.4.8': - resolution: {integrity: sha512-Zo9OhBQDJ3IBGPlqHiTISloo5H0+FBIpemqIJdW/0edJ+gEcLR+MZeZozcUyz3o1nXkVA7++DdRKQT0599j9jA==} + '@biomejs/cli-linux-arm64-musl@2.4.9': + resolution: {integrity: sha512-8RCww5xnPn2wpK4L/QDGDOW0dq80uVWfppPxHIUg6mOs9B6gRmqPp32h1Ls3T8GnW8Wo5A8u7vpTwz4fExN+sw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] libc: [musl] - '@biomejs/cli-linux-arm64@2.4.8': - resolution: {integrity: sha512-5CdrsJct76XG2hpKFwXnEtlT1p+4g4yV+XvvwBpzKsTNLO9c6iLlAxwcae2BJ7ekPGWjNGw9j09T5KGPKKxQig==} + '@biomejs/cli-linux-arm64@2.4.9': + resolution: {integrity: sha512-4adnkAUi6K4C/emPRgYznMOcLlUqZdXWM6aIui4VP4LraE764g6Q4YguygnAUoxKjKIXIWPteKMgRbN0wsgwcg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] libc: [glibc] - '@biomejs/cli-linux-x64-musl@2.4.8': - resolution: {integrity: sha512-Gi8quv8MEuDdKaPFtS2XjEnMqODPsRg6POT6KhoP+VrkNb+T2ywunVB+TvOU0LX1jAZzfBr+3V1mIbBhzAMKvw==} + '@biomejs/cli-linux-x64-musl@2.4.9': + resolution: {integrity: sha512-5TD+WS9v5vzXKzjetF0hgoaNFHMcpQeBUwKKVi3JbG1e9UCrFuUK3Gt185fyTzvRdwYkJJEMqglRPjmesmVv4A==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] libc: [musl] - '@biomejs/cli-linux-x64@2.4.8': - resolution: {integrity: sha512-PdKXspVEaMCQLjtZCn6vfSck/li4KX9KGwSDbZdgIqlrizJ2MnMcE3TvHa2tVfXNmbjMikzcfJpuPWH695yJrw==} + '@biomejs/cli-linux-x64@2.4.9': + resolution: {integrity: sha512-L10na7POF0Ks/cgLFNF1ZvIe+X4onLkTi5oP9hY+Rh60Q+7fWzKDDCeGyiHUFf1nGIa9dQOOUPGe2MyYg8nMSQ==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] libc: [glibc] - '@biomejs/cli-win32-arm64@2.4.8': - resolution: {integrity: sha512-LoFatS0tnHv6KkCVpIy3qZCih+MxUMvdYiPWLHRri7mhi2vyOOs8OrbZBcLTUEWCS+ktO72nZMy4F96oMhkOHQ==} + '@biomejs/cli-win32-arm64@2.4.9': + resolution: {integrity: sha512-aDZr0RBC3sMGJOU10BvG7eZIlWLK/i51HRIfScE2lVhfts2dQTreowLiJJd+UYg/tHKxS470IbzpuKmd0MiD6g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@2.4.8': - resolution: {integrity: sha512-vAn7iXDoUbqFXqVocuq1sMYAd33p8+mmurqJkWl6CtIhobd/O6moe4rY5AJvzbunn/qZCdiDVcveqtkFh1e7Hg==} + '@biomejs/cli-win32-x64@2.4.9': + resolution: {integrity: sha512-NS4g/2G9SoQ4ktKtz31pvyc/rmgzlcIDCGU/zWbmHJAqx6gcRj2gj5Q/guXhoWTzCUaQZDIqiCQXHS7BcGYc0w==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -384,24 +387,24 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@commercelayer/cli-core@5.10.8': - resolution: {integrity: sha512-n6ZmGSkiiJDoftQMDim3uY+R2+lb47aNw6rvG48PAnEPY5+Er5Red7qO7+/+YSTgPUXTe2LcNJnrj2zkSJKhzQ==} - engines: {node: '>=20'} + '@commercelayer/cli-core@6.0.0-oclif4.9': + resolution: {integrity: sha512-E9lAuVDhQ0uDxncq1MGR8mB0C21WeixQSS+Qlkv2X65nYn87f6UCyGL3z7nUxezfRS1sIfaH7Mt/57lr2mrROA==} + engines: {node: '>=22'} - '@commercelayer/cli-dev@3.0.13': - resolution: {integrity: sha512-+RA7QQ1SJhK/eZsz2mn9Mgwgf2DiKDNpqNYxoOtCYWvunlQo2e2WoQvFrAdlCRwtHYJqMNJcLsBAZRtWVe7WFw==} - engines: {node: '>=20'} + '@commercelayer/cli-dev@4.0.0-oclif4.5': + resolution: {integrity: sha512-qUuYdWI9jBhQlQ6v+/v9f8mc1B2rw3XqoBkS56FZukKSGHM9laWqMTStjKCrKy0hVUdBR9Af0XGDCRj4Peki2g==} + engines: {node: '>=22'} hasBin: true - '@commercelayer/cli-ux@1.1.0': - resolution: {integrity: sha512-Cis4Kl7eScp3UjMY3I9NjKFvLbBp8ag2C0e8djXKE+VvQjrGs9rlng4sGUyNbkN38HwbAqdjHSQaxqZ4CX9zvQ==} - engines: {node: '>=20'} + '@commercelayer/cli-ux@2.0.0-oclif4.10': + resolution: {integrity: sha512-uOtoy2kBXukMJBZhNm75vhrGLTsdqb0gQcbQ88+o0M+clRExMEkrgA2uNPxX3G7NQqSkTk432z/Ok2I8FfRftg==} + engines: {node: '>=22'} peerDependencies: - '@oclif/core': 3.27.0 + '@oclif/core': ^4 - '@commercelayer/js-auth@6.7.2': - resolution: {integrity: sha512-kk4VqN2iEOreXFq76YqTP83KhBs09Z5Ez9nZNlikXWf5DXzkrOfShqqEwq8ezHjSOlqs4xVyxgQzsEdPP35CeQ==} - engines: {node: '>=18.0.0'} + '@commercelayer/js-auth@7.3.0': + resolution: {integrity: sha512-o4HkMHqXqhPJ3gOA/61Na9T0ssLluV/SQEPtnb/N9/WpbiemEW43M1h/Iuc0/H8fSThqWe3Crt5HwGT5qAz6vQ==} + engines: {node: '>=20.0.0'} '@commercelayer/sdk@6.55.0': resolution: {integrity: sha512-ad3iQIGasbj1H9X8WAUpleZSCLmeJqSNjxPWET0XBDG3lPO5/15nHYK0LozAMjQ/f1Eq+H2WaeYMcMH2vB87Jg==} @@ -749,24 +752,8 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@oclif/core@3.27.0': - resolution: {integrity: sha512-Fg93aNFvXzBq5L7ztVHFP2nYwWU1oTCq48G0TjF/qC1UN36KWa2H5Hsm72kERd5x/sjy2M2Tn4kDEorUlpXOlw==} - engines: {node: '>=18.0.0'} - - '@oclif/core@4.10.2': - resolution: {integrity: sha512-3GvDh5nqpIE8566qUF5cBHKog9DFV9XgBeuR0nUrz0OMuz2FPYHat1AZHOwyQbvH9OKL4gJNQZHcsDOqDM/FRA==} + '@oclif/core@4.10.3': + resolution: {integrity: sha512-0mD8vcrrX5uRsxzvI8tbWmSVGngvZA/Qo6O0ZGvLPAWEauSf5GFniwgirhY0SkszuHwu0S1J1ivj/jHmqtIDuA==} engines: {node: '>=18.0.0'} '@oclif/core@4.9.0': @@ -1240,10 +1227,6 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -1265,8 +1248,8 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - baseline-browser-mapping@2.10.10: - resolution: {integrity: sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==} + baseline-browser-mapping@2.10.11: + resolution: {integrity: sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==} engines: {node: '>=6.0.0'} hasBin: true @@ -1286,8 +1269,8 @@ packages: brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -1596,8 +1579,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.322: - resolution: {integrity: sha512-vFU34OcrvMcH66T+dYC3G4nURmgfDVewMIu6Q2urXpumAPSMmzvcn04KVVV8Opikq8Vs5nUbO/8laNhNRqSzYw==} + electron-to-chromium@1.5.325: + resolution: {integrity: sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -1678,10 +1661,6 @@ packages: fast-content-type-parse@3.0.0: resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - fast-levenshtein@3.0.0: resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} @@ -1696,9 +1675,6 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -1847,10 +1823,6 @@ packages: 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'} - glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} 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 @@ -1864,10 +1836,6 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - got@13.0.0: resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} engines: {node: '>=16'} @@ -1971,10 +1939,6 @@ packages: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -2039,18 +2003,10 @@ packages: engines: {node: '>=8'} hasBin: true - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} @@ -2347,10 +2303,6 @@ packages: merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -2482,8 +2434,8 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} - npm@11.12.0: - resolution: {integrity: sha512-xPhOap4ZbJWyd7DAOukP564WFwNSGu/2FeTRFHhiiKthcauxhH/NpkJAQm24xD+cAn8av5tQ00phi98DqtfLsg==} + npm@11.12.1: + resolution: {integrity: sha512-zcoUuF1kezGSAo0CqtvoLXX3mkRqzuqYdL6Y5tdo8g69NVV3CkjQ6ZBhBgB4d7vGkPcV6TcvLi3GRKPDFX+xTA==} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true bundledDependencies: @@ -2780,9 +2732,6 @@ packages: resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} engines: {node: '>=8'} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -2865,18 +2814,11 @@ packages: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@6.1.3: resolution: {integrity: sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==} engines: {node: 20 || >=22} hasBin: true - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -2943,10 +2885,6 @@ packages: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} engines: {node: '>=8'} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} @@ -3193,8 +3131,8 @@ packages: resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} engines: {node: '>=18.17'} - undici@7.24.5: - resolution: {integrity: sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==} + undici@7.24.6: + resolution: {integrity: sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==} engines: {node: '>=20.18.1'} unicode-emoji-modifier-base@1.0.0: @@ -3450,17 +3388,17 @@ snapshots: dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.24 - '@aws-sdk/credential-provider-node': 3.972.25 + '@aws-sdk/core': 3.973.25 + '@aws-sdk/credential-provider-node': 3.972.26 '@aws-sdk/middleware-host-header': 3.972.8 '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.25 - '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/middleware-recursion-detection': 3.972.9 + '@aws-sdk/middleware-user-agent': 3.972.26 + '@aws-sdk/region-config-resolver': 3.972.10 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.996.5 '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.11 + '@aws-sdk/util-user-agent-node': 3.973.12 '@smithy/config-resolver': 4.4.13 '@smithy/core': 3.23.12 '@smithy/fetch-http-handler': 5.3.15 @@ -3497,24 +3435,24 @@ snapshots: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.24 - '@aws-sdk/credential-provider-node': 3.972.25 + '@aws-sdk/core': 3.973.25 + '@aws-sdk/credential-provider-node': 3.972.26 '@aws-sdk/middleware-bucket-endpoint': 3.972.8 '@aws-sdk/middleware-expect-continue': 3.972.8 - '@aws-sdk/middleware-flexible-checksums': 3.974.4 + '@aws-sdk/middleware-flexible-checksums': 3.974.5 '@aws-sdk/middleware-host-header': 3.972.8 '@aws-sdk/middleware-location-constraint': 3.972.8 '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-sdk-s3': 3.972.24 + '@aws-sdk/middleware-recursion-detection': 3.972.9 + '@aws-sdk/middleware-sdk-s3': 3.972.26 '@aws-sdk/middleware-ssec': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.25 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/signature-v4-multi-region': 3.996.12 + '@aws-sdk/middleware-user-agent': 3.972.26 + '@aws-sdk/region-config-resolver': 3.972.10 + '@aws-sdk/signature-v4-multi-region': 3.996.14 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.996.5 '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.11 + '@aws-sdk/util-user-agent-node': 3.973.12 '@smithy/config-resolver': 4.4.13 '@smithy/core': 3.23.12 '@smithy/eventstream-serde-browser': 4.2.12 @@ -3552,10 +3490,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.973.24': + '@aws-sdk/core@3.973.25': dependencies: '@aws-sdk/types': 3.973.6 - '@aws-sdk/xml-builder': 3.972.15 + '@aws-sdk/xml-builder': 3.972.16 '@smithy/core': 3.23.12 '@smithy/node-config-provider': 4.3.12 '@smithy/property-provider': 4.2.12 @@ -3573,17 +3511,17 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.22': + '@aws-sdk/credential-provider-env@3.972.23': dependencies: - '@aws-sdk/core': 3.973.24 + '@aws-sdk/core': 3.973.25 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.24': + '@aws-sdk/credential-provider-http@3.972.25': dependencies: - '@aws-sdk/core': 3.973.24 + '@aws-sdk/core': 3.973.25 '@aws-sdk/types': 3.973.6 '@smithy/fetch-http-handler': 5.3.15 '@smithy/node-http-handler': 4.5.0 @@ -3594,16 +3532,16 @@ snapshots: '@smithy/util-stream': 4.5.20 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.972.24': + '@aws-sdk/credential-provider-ini@3.972.25': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/credential-provider-env': 3.972.22 - '@aws-sdk/credential-provider-http': 3.972.24 - '@aws-sdk/credential-provider-login': 3.972.24 - '@aws-sdk/credential-provider-process': 3.972.22 - '@aws-sdk/credential-provider-sso': 3.972.24 - '@aws-sdk/credential-provider-web-identity': 3.972.24 - '@aws-sdk/nested-clients': 3.996.14 + '@aws-sdk/core': 3.973.25 + '@aws-sdk/credential-provider-env': 3.972.23 + '@aws-sdk/credential-provider-http': 3.972.25 + '@aws-sdk/credential-provider-login': 3.972.25 + '@aws-sdk/credential-provider-process': 3.972.23 + '@aws-sdk/credential-provider-sso': 3.972.25 + '@aws-sdk/credential-provider-web-identity': 3.972.25 + '@aws-sdk/nested-clients': 3.996.15 '@aws-sdk/types': 3.973.6 '@smithy/credential-provider-imds': 4.2.12 '@smithy/property-provider': 4.2.12 @@ -3613,10 +3551,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.972.24': + '@aws-sdk/credential-provider-login@3.972.25': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/nested-clients': 3.996.14 + '@aws-sdk/core': 3.973.25 + '@aws-sdk/nested-clients': 3.996.15 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/protocol-http': 5.3.12 @@ -3626,14 +3564,14 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.972.25': + '@aws-sdk/credential-provider-node@3.972.26': dependencies: - '@aws-sdk/credential-provider-env': 3.972.22 - '@aws-sdk/credential-provider-http': 3.972.24 - '@aws-sdk/credential-provider-ini': 3.972.24 - '@aws-sdk/credential-provider-process': 3.972.22 - '@aws-sdk/credential-provider-sso': 3.972.24 - '@aws-sdk/credential-provider-web-identity': 3.972.24 + '@aws-sdk/credential-provider-env': 3.972.23 + '@aws-sdk/credential-provider-http': 3.972.25 + '@aws-sdk/credential-provider-ini': 3.972.25 + '@aws-sdk/credential-provider-process': 3.972.23 + '@aws-sdk/credential-provider-sso': 3.972.25 + '@aws-sdk/credential-provider-web-identity': 3.972.25 '@aws-sdk/types': 3.973.6 '@smithy/credential-provider-imds': 4.2.12 '@smithy/property-provider': 4.2.12 @@ -3643,20 +3581,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.972.22': + '@aws-sdk/credential-provider-process@3.972.23': dependencies: - '@aws-sdk/core': 3.973.24 + '@aws-sdk/core': 3.973.25 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.24': + '@aws-sdk/credential-provider-sso@3.972.25': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/nested-clients': 3.996.14 - '@aws-sdk/token-providers': 3.1015.0 + '@aws-sdk/core': 3.973.25 + '@aws-sdk/nested-clients': 3.996.15 + '@aws-sdk/token-providers': 3.1018.0 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 @@ -3665,10 +3603,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.972.24': + '@aws-sdk/credential-provider-web-identity@3.972.25': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/nested-clients': 3.996.14 + '@aws-sdk/core': 3.973.25 + '@aws-sdk/nested-clients': 3.996.15 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 @@ -3694,12 +3632,12 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.974.4': + '@aws-sdk/middleware-flexible-checksums@3.974.5': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.973.24 + '@aws-sdk/core': 3.973.25 '@aws-sdk/crc64-nvme': 3.972.5 '@aws-sdk/types': 3.973.6 '@smithy/is-array-buffer': 4.2.2 @@ -3730,7 +3668,7 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.972.8': + '@aws-sdk/middleware-recursion-detection@3.972.9': dependencies: '@aws-sdk/types': 3.973.6 '@aws/lambda-invoke-store': 0.2.4 @@ -3738,9 +3676,9 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.24': + '@aws-sdk/middleware-sdk-s3@3.972.26': dependencies: - '@aws-sdk/core': 3.973.24 + '@aws-sdk/core': 3.973.25 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-arn-parser': 3.972.3 '@smithy/core': 3.23.12 @@ -3761,9 +3699,9 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.25': + '@aws-sdk/middleware-user-agent@3.972.26': dependencies: - '@aws-sdk/core': 3.973.24 + '@aws-sdk/core': 3.973.25 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.996.5 '@smithy/core': 3.23.12 @@ -3772,20 +3710,20 @@ snapshots: '@smithy/util-retry': 4.2.12 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.996.14': + '@aws-sdk/nested-clients@3.996.15': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.24 + '@aws-sdk/core': 3.973.25 '@aws-sdk/middleware-host-header': 3.972.8 '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.25 - '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/middleware-recursion-detection': 3.972.9 + '@aws-sdk/middleware-user-agent': 3.972.26 + '@aws-sdk/region-config-resolver': 3.972.10 '@aws-sdk/types': 3.973.6 '@aws-sdk/util-endpoints': 3.996.5 '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.11 + '@aws-sdk/util-user-agent-node': 3.973.12 '@smithy/config-resolver': 4.4.13 '@smithy/core': 3.23.12 '@smithy/fetch-http-handler': 5.3.15 @@ -3815,7 +3753,7 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.972.9': + '@aws-sdk/region-config-resolver@3.972.10': dependencies: '@aws-sdk/types': 3.973.6 '@smithy/config-resolver': 4.4.13 @@ -3823,19 +3761,19 @@ snapshots: '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.12': + '@aws-sdk/signature-v4-multi-region@3.996.14': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.24 + '@aws-sdk/middleware-sdk-s3': 3.972.26 '@aws-sdk/types': 3.973.6 '@smithy/protocol-http': 5.3.12 '@smithy/signature-v4': 5.3.12 '@smithy/types': 4.13.1 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1015.0': + '@aws-sdk/token-providers@3.1018.0': dependencies: - '@aws-sdk/core': 3.973.24 - '@aws-sdk/nested-clients': 3.996.14 + '@aws-sdk/core': 3.973.25 + '@aws-sdk/nested-clients': 3.996.15 '@aws-sdk/types': 3.973.6 '@smithy/property-provider': 4.2.12 '@smithy/shared-ini-file-loader': 4.4.7 @@ -3872,16 +3810,16 @@ snapshots: bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.973.11': + '@aws-sdk/util-user-agent-node@3.973.12': dependencies: - '@aws-sdk/middleware-user-agent': 3.972.25 + '@aws-sdk/middleware-user-agent': 3.972.26 '@aws-sdk/types': 3.973.6 '@smithy/node-config-provider': 4.3.12 '@smithy/types': 4.13.1 '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.972.15': + '@aws-sdk/xml-builder@3.972.16': dependencies: '@smithy/types': 4.13.1 fast-xml-parser: 5.5.8 @@ -3989,66 +3927,66 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@biomejs/biome@2.4.8': + '@biomejs/biome@2.4.9': optionalDependencies: - '@biomejs/cli-darwin-arm64': 2.4.8 - '@biomejs/cli-darwin-x64': 2.4.8 - '@biomejs/cli-linux-arm64': 2.4.8 - '@biomejs/cli-linux-arm64-musl': 2.4.8 - '@biomejs/cli-linux-x64': 2.4.8 - '@biomejs/cli-linux-x64-musl': 2.4.8 - '@biomejs/cli-win32-arm64': 2.4.8 - '@biomejs/cli-win32-x64': 2.4.8 - - '@biomejs/cli-darwin-arm64@2.4.8': + '@biomejs/cli-darwin-arm64': 2.4.9 + '@biomejs/cli-darwin-x64': 2.4.9 + '@biomejs/cli-linux-arm64': 2.4.9 + '@biomejs/cli-linux-arm64-musl': 2.4.9 + '@biomejs/cli-linux-x64': 2.4.9 + '@biomejs/cli-linux-x64-musl': 2.4.9 + '@biomejs/cli-win32-arm64': 2.4.9 + '@biomejs/cli-win32-x64': 2.4.9 + + '@biomejs/cli-darwin-arm64@2.4.9': optional: true - '@biomejs/cli-darwin-x64@2.4.8': + '@biomejs/cli-darwin-x64@2.4.9': optional: true - '@biomejs/cli-linux-arm64-musl@2.4.8': + '@biomejs/cli-linux-arm64-musl@2.4.9': optional: true - '@biomejs/cli-linux-arm64@2.4.8': + '@biomejs/cli-linux-arm64@2.4.9': optional: true - '@biomejs/cli-linux-x64-musl@2.4.8': + '@biomejs/cli-linux-x64-musl@2.4.9': optional: true - '@biomejs/cli-linux-x64@2.4.8': + '@biomejs/cli-linux-x64@2.4.9': optional: true - '@biomejs/cli-win32-arm64@2.4.8': + '@biomejs/cli-win32-arm64@2.4.9': optional: true - '@biomejs/cli-win32-x64@2.4.8': + '@biomejs/cli-win32-x64@2.4.9': optional: true '@colors/colors@1.5.0': optional: true - '@commercelayer/cli-core@5.10.8': + '@commercelayer/cli-core@6.0.0-oclif4.9': dependencies: - '@commercelayer/js-auth': 6.7.2 - '@oclif/core': 3.27.0 + '@commercelayer/js-auth': 7.3.0 + '@oclif/core': 4.10.3 chalk: 4.1.2 jsonwebtoken: 9.0.3 update-notifier-cjs: 5.1.7 transitivePeerDependencies: - encoding - '@commercelayer/cli-dev@3.0.13': + '@commercelayer/cli-dev@4.0.0-oclif4.5': dependencies: - '@oclif/core': 3.27.0 + '@oclif/core': 4.10.3 fs-extra: 10.1.0 github-slugger: 1.5.0 lodash: 4.17.23 normalize-package-data: 5.0.0 tslib: 2.8.1 - '@commercelayer/cli-ux@1.1.0(@oclif/core@3.27.0)': + '@commercelayer/cli-ux@2.0.0-oclif4.10(@oclif/core@4.10.3)': dependencies: - '@oclif/core': 3.27.0 + '@oclif/core': 4.10.3 ansi-escapes: 4.3.2 ansi-styles: 4.3.0 cardinal: 2.1.1 @@ -4067,7 +4005,7 @@ snapshots: supports-hyperlinks: 2.3.0 wordwrap: 1.0.0 - '@commercelayer/js-auth@6.7.2': {} + '@commercelayer/js-auth@7.3.0': {} '@commercelayer/sdk@6.55.0': {} @@ -4353,50 +4291,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 - - '@oclif/core@3.27.0': - dependencies: - '@types/cli-progress': 3.11.6 - ansi-escapes: 4.3.2 - ansi-styles: 4.3.0 - cardinal: 2.1.1 - chalk: 4.1.2 - clean-stack: 3.0.1 - cli-progress: 3.12.0 - color: 4.2.3 - debug: 4.4.3(supports-color@8.1.1) - ejs: 3.1.10 - get-package-type: 0.1.0 - globby: 11.1.0 - hyperlinker: 1.0.0 - indent-string: 4.0.0 - is-wsl: 2.2.0 - js-yaml: 3.14.2 - minimatch: 9.0.9 - natural-orderby: 2.0.3 - object-treeify: 1.1.33 - password-prompt: 1.1.3 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - supports-color: 8.1.1 - supports-hyperlinks: 2.3.0 - widest-line: 3.1.0 - wordwrap: 1.0.0 - wrap-ansi: 7.0.0 - - '@oclif/core@4.10.2': + '@oclif/core@4.10.3': dependencies: ansi-escapes: 4.3.2 ansis: 3.17.0 @@ -4440,12 +4335,12 @@ snapshots: '@oclif/plugin-help@6.2.40': dependencies: - '@oclif/core': 4.10.2 + '@oclif/core': 4.10.3 '@oclif/plugin-not-found@3.2.77(@types/node@25.5.0)': dependencies: '@inquirer/prompts': 7.10.1(@types/node@25.5.0) - '@oclif/core': 4.10.2 + '@oclif/core': 4.10.3 ansis: 3.17.0 fast-levenshtein: 3.0.0 transitivePeerDependencies: @@ -4453,7 +4348,7 @@ snapshots: '@oclif/plugin-warn-if-update-available@3.1.57': dependencies: - '@oclif/core': 4.9.0 + '@oclif/core': 4.10.3 ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) http-call: 5.3.0 @@ -4462,9 +4357,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@oclif/test@4.1.17(@oclif/core@3.27.0)': + '@oclif/test@4.1.17(@oclif/core@4.10.3)': dependencies: - '@oclif/core': 3.27.0 + '@oclif/core': 4.10.3 ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: @@ -4605,7 +4500,7 @@ snapshots: p-filter: 4.1.0 semantic-release: 25.0.3(typescript@6.0.2) tinyglobby: 0.2.15 - undici: 7.24.5 + undici: 7.24.6 url-join: 5.0.0 transitivePeerDependencies: - supports-color @@ -4621,7 +4516,7 @@ snapshots: lodash-es: 4.17.23 nerf-dart: 1.0.0 normalize-url: 9.0.0 - npm: 11.12.0 + npm: 11.12.1 rc: 1.2.8 read-pkg: 10.1.0 registry-auth-token: 5.1.1 @@ -5087,8 +4982,6 @@ snapshots: array-ify@1.0.0: {} - array-union@2.1.0: {} - assertion-error@2.0.1: {} astral-regex@2.0.0: {} @@ -5103,7 +4996,7 @@ snapshots: balanced-match@4.0.4: {} - baseline-browser-mapping@2.10.10: {} + baseline-browser-mapping@2.10.11: {} before-after-hook@4.0.0: {} @@ -5126,7 +5019,7 @@ snapshots: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -5138,9 +5031,9 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.10.10 + baseline-browser-mapping: 2.10.11 caniuse-lite: 1.0.30001781 - electron-to-chromium: 1.5.322 + electron-to-chromium: 1.5.325 node-releases: 2.0.36 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -5448,7 +5341,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.322: {} + electron-to-chromium@1.5.325: {} emoji-regex@10.6.0: {} @@ -5557,14 +5450,6 @@ snapshots: fast-content-type-parse@3.0.0: {} - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-levenshtein@3.0.0: dependencies: fastest-levenshtein: 1.0.16 @@ -5581,10 +5466,6 @@ snapshots: fastest-levenshtein@1.0.16: {} - fastq@1.20.1: - dependencies: - reusify: 1.1.0 - fdir@6.5.0(picomatch@4.0.4): optionalDependencies: picomatch: 4.0.4 @@ -5722,10 +5603,6 @@ snapshots: github-slugger@2.0.0: {} - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - glob@10.5.0: dependencies: foreground-child: 3.3.1 @@ -5745,15 +5622,6 @@ snapshots: dependencies: ini: 2.0.0 - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - got@13.0.0: dependencies: '@sindresorhus/is': 5.6.0 @@ -5865,8 +5733,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ignore@5.3.2: {} - import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -5916,14 +5782,8 @@ snapshots: is-docker@2.2.1: {} - is-extglob@2.1.1: {} - is-fullwidth-code-point@3.0.0: {} - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.1 @@ -6210,8 +6070,6 @@ snapshots: merge-stream@2.0.0: {} - merge2@1.4.1: {} - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -6231,7 +6089,7 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@5.1.9: dependencies: @@ -6345,7 +6203,7 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 - npm@11.12.0: {} + npm@11.12.1: {} nyc@18.0.0: dependencies: @@ -6607,8 +6465,6 @@ snapshots: dependencies: escape-goat: 2.1.1 - queue-microtask@1.2.3: {} - quick-lru@5.1.1: {} randombytes@2.1.0: @@ -6701,17 +6557,11 @@ snapshots: retry@0.13.1: {} - reusify@1.1.0: {} - rimraf@6.1.3: dependencies: glob: 13.0.6 package-json-from-dist: 1.0.1 - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} @@ -6798,8 +6648,6 @@ snapshots: dependencies: unicode-emoji-modifier-base: 1.0.0 - slash@3.0.0: {} - slice-ansi@4.0.0: dependencies: ansi-styles: 4.3.0 @@ -7039,7 +6887,7 @@ snapshots: undici@6.24.1: {} - undici@7.24.5: {} + undici@7.24.6: {} unicode-emoji-modifier-base@1.0.0: {} diff --git a/src/base.ts b/src/base.ts index 021a111..da78c86 100644 --- a/src/base.ts +++ b/src/base.ts @@ -2,7 +2,6 @@ import { clColor, clConfig, clOutput, clToken, clUpdate } from '@commercelayer/c import * as cliux from '@commercelayer/cli-ux' import { CommerceLayerStatic } from '@commercelayer/sdk' import { Args, Command, Flags } from '@oclif/core' -import type { CommandError } from '@oclif/core/lib/interfaces' import { type MetricsFilter, type MetricsQueryBreakdown, type MetricsQueryBreakdownResponse, operators, resources } from './common' @@ -61,7 +60,7 @@ export abstract class BaseCommand extends Command { { suggestions: ['Execute login to get access to the organization\'s resources'] } ) } else this.error(clOutput.formatError(error, flags)) - } else return await super.catch(error as CommandError) + } else return await super.catch(error) } /* diff --git a/src/commands/metrics/noc.ts b/src/commands/metrics/noc.ts index 1819a26..e5b2437 100644 --- a/src/commands/metrics/noc.ts +++ b/src/commands/metrics/noc.ts @@ -8,6 +8,8 @@ export default class Noc extends Command { async run(): Promise { + const _parsed = await this.parse(Noc) + const output = '-= NoC =-' this.log(output) diff --git a/test/commands/metrics/ask.test.ts b/test/commands/metrics/ask.test.ts index 42673d0..649f7f6 100644 --- a/test/commands/metrics/ask.test.ts +++ b/test/commands/metrics/ask.test.ts @@ -1,10 +1,10 @@ - import { runCommand } from '@oclif/test' import { expect } from 'chai' + describe('metrics:ask', () => { it('runs NoC', async () => { const { stdout } = await runCommand<{ name: string }>(['metrics:noc']) expect(stdout).to.contain('-= NoC =-') - }) + }).timeout(5000) }) diff --git a/test/commands/metrics/breakdown.test.ts b/test/commands/metrics/breakdown.test.ts index f593add..2ddaab1 100644 --- a/test/commands/metrics/breakdown.test.ts +++ b/test/commands/metrics/breakdown.test.ts @@ -1,10 +1,10 @@ - import { runCommand } from '@oclif/test' import { expect } from 'chai' + describe('metrics:breakdown', () => { it('runs NoC', async () => { const { stdout } = await runCommand<{ name: string }>(['metrics:noc']) expect(stdout).to.contain('-= NoC =-') - }) + }).timeout(5000) }) diff --git a/test/commands/metrics/date_breakdown.test.ts b/test/commands/metrics/date_breakdown.test.ts index 590a9ba..b2ec906 100644 --- a/test/commands/metrics/date_breakdown.test.ts +++ b/test/commands/metrics/date_breakdown.test.ts @@ -1,10 +1,10 @@ - import { runCommand } from '@oclif/test' import { expect } from 'chai' + describe('metrics:date_breakdown', () => { it('runs NoC', async () => { const { stdout } = await runCommand<{ name: string }>(['metrics:noc']) expect(stdout).to.contain('-= NoC =-') - }) + }).timeout(5000) }) diff --git a/test/commands/metrics/fbt.test.ts b/test/commands/metrics/fbt.test.ts index 5419ce8..6c04440 100644 --- a/test/commands/metrics/fbt.test.ts +++ b/test/commands/metrics/fbt.test.ts @@ -1,10 +1,10 @@ - import { runCommand } from '@oclif/test' import { expect } from 'chai' + describe('metrics:fbt', () => { it('runs NoC', async () => { const { stdout } = await runCommand<{ name: string }>(['metrics:noc']) expect(stdout).to.contain('-= NoC =-') - }) + }).timeout(5000) }) diff --git a/test/commands/metrics/search.test.ts b/test/commands/metrics/search.test.ts index ce54664..721e3f5 100644 --- a/test/commands/metrics/search.test.ts +++ b/test/commands/metrics/search.test.ts @@ -1,10 +1,10 @@ - import { runCommand } from '@oclif/test' import { expect } from 'chai' + describe('metrics:search', () => { it('runs NoC', async () => { const { stdout } = await runCommand<{ name: string }>(['metrics:noc']) expect(stdout).to.contain('-= NoC =-') - }) + }).timeout(5000) }) diff --git a/test/commands/metrics/stats.test.ts b/test/commands/metrics/stats.test.ts index c4d6bf1..a44826e 100644 --- a/test/commands/metrics/stats.test.ts +++ b/test/commands/metrics/stats.test.ts @@ -1,10 +1,10 @@ - import { runCommand } from '@oclif/test' import { expect } from 'chai' + describe('metrics:stats', () => { it('runs NoC', async () => { const { stdout } = await runCommand<{ name: string }>(['metrics:noc']) expect(stdout).to.contain('-= NoC =-') - }) + }).timeout(5000) }) diff --git a/tsconfig.json b/tsconfig.json index 2956e6a..484294d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,8 @@ "strict": true, "target": "ES2022", "esModuleInterop": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "types": ["node"] }, "include": [ "src/**/*" From 16d7ff9cedfca1b0b43934bd494b54013c91d14e Mon Sep 17 00:00:00 2001 From: PIERLUIGI VITI Date: Thu, 26 Mar 2026 21:48:27 +0100 Subject: [PATCH 2/5] chore: update dependencies --- pnpm-lock.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 84a4eb9..a87f7ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1846,8 +1846,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + handlebars@4.7.9: + resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} engines: {node: '>=0.4.7'} hasBin: true @@ -5246,7 +5246,7 @@ snapshots: dependencies: '@simple-libs/stream-utils': 1.2.0 conventional-commits-filter: 5.0.0 - handlebars: 4.7.8 + handlebars: 4.7.9 meow: 13.2.0 semver: 7.7.4 @@ -5640,7 +5640,7 @@ snapshots: graceful-fs@4.2.11: {} - handlebars@4.7.8: + handlebars@4.7.9: dependencies: minimist: 1.2.8 neo-async: 2.6.2 From faf9b9fc19a6700bb9ec09774ce630b166a2b6a1 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 26 Mar 2026 20:49:06 +0000 Subject: [PATCH 3/5] chore(release): 2.0.0-oclif4.1 [skip ci] # [2.0.0-oclif4.1](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/compare/v1.2.0...v2.0.0-oclif4.1) (2026-03-26) ### Features * upgrade to oclif core v4 and node v22 ([16d11c6](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/commit/16d11c6fa69bc3e67de627658fc31a5292702df1)) ### BREAKING CHANGES * upgrade to oclif core v4 and node v22 --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2300b16..6d8ec2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [2.0.0-oclif4.1](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/compare/v1.2.0...v2.0.0-oclif4.1) (2026-03-26) + + +### Features + +* upgrade to oclif core v4 and node v22 ([16d11c6](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/commit/16d11c6fa69bc3e67de627658fc31a5292702df1)) + + +### BREAKING CHANGES + +* upgrade to oclif core v4 and node v22 + # [1.2.0](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/compare/v1.1.7...v1.2.0) (2026-03-24) diff --git a/package.json b/package.json index d42c755..e1c6835 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@commercelayer/cli-plugin-metrics", "description": "Commerce Layer CLI metrics plugin", - "version": "1.2.0", + "version": "2.0.0-oclif4.1", "author": "Pierluigi Viti ", "homepage": "https://github.com/commercelayer/commercelayer-cli-plugin-metrics", "repository": "commercelayer/commercelayer-cli-plugin-metrics", From 74101a8bc52d084fa2666a5abfd8ca7bed317fad Mon Sep 17 00:00:00 2001 From: PIERLUIGI VITI Date: Fri, 27 Mar 2026 10:39:49 +0100 Subject: [PATCH 4/5] chore: update dependencies --- pnpm-lock.yaml | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a87f7ef..86fcf5d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,10 @@ importers: dependencies: '@commercelayer/cli-core': specifier: oclif4 - version: 6.0.0-oclif4.9 + version: 6.0.0-oclif4.11 '@commercelayer/cli-ux': specifier: oclif4 - version: 2.0.0-oclif4.10(@oclif/core@4.10.3) + version: 2.0.0-oclif4.11(@oclif/core@4.10.3) '@commercelayer/sdk': specifier: ^6.55.0 version: 6.55.0 @@ -35,7 +35,7 @@ importers: version: 2.4.9 '@commercelayer/cli-dev': specifier: oclif4 - version: 4.0.0-oclif4.5 + version: 4.0.0-oclif4.6 '@oclif/plugin-help': specifier: ^6.2.40 version: 6.2.40 @@ -387,17 +387,17 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@commercelayer/cli-core@6.0.0-oclif4.9': - resolution: {integrity: sha512-E9lAuVDhQ0uDxncq1MGR8mB0C21WeixQSS+Qlkv2X65nYn87f6UCyGL3z7nUxezfRS1sIfaH7Mt/57lr2mrROA==} + '@commercelayer/cli-core@6.0.0-oclif4.11': + resolution: {integrity: sha512-HD4NjYdvkXoeASapO+kkcwYAVw3M29hkVyY1w0SHjozX40tWJwUGFhw97RMV8B6kNuqBZuj/SkS0tX7F/76VNg==} engines: {node: '>=22'} - '@commercelayer/cli-dev@4.0.0-oclif4.5': - resolution: {integrity: sha512-qUuYdWI9jBhQlQ6v+/v9f8mc1B2rw3XqoBkS56FZukKSGHM9laWqMTStjKCrKy0hVUdBR9Af0XGDCRj4Peki2g==} + '@commercelayer/cli-dev@4.0.0-oclif4.6': + resolution: {integrity: sha512-mXD0Zd5/GN+f7Cs91u4dgC8e/ncHKCLGspMQkpcEZDrVXeWflPuRzfP/69Pj5GJKCGLP5zstVffYC9lwHP3m5g==} engines: {node: '>=22'} hasBin: true - '@commercelayer/cli-ux@2.0.0-oclif4.10': - resolution: {integrity: sha512-uOtoy2kBXukMJBZhNm75vhrGLTsdqb0gQcbQ88+o0M+clRExMEkrgA2uNPxX3G7NQqSkTk432z/Ok2I8FfRftg==} + '@commercelayer/cli-ux@2.0.0-oclif4.11': + resolution: {integrity: sha512-pbgf0KKYyDRRY2iQyAHMzUak65pFoDdVz8S4TXr636FaHVi+QWl1D3B8oe4Ak1uno2Ofg98J6SaNE1/dCEGMjQ==} engines: {node: '>=22'} peerDependencies: '@oclif/core': ^4 @@ -1266,8 +1266,8 @@ packages: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} engines: {node: '>=10'} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.0.3: + resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} brace-expansion@5.0.5: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} @@ -1579,8 +1579,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.325: - resolution: {integrity: sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==} + electron-to-chromium@1.5.328: + resolution: {integrity: sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -3965,7 +3965,7 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commercelayer/cli-core@6.0.0-oclif4.9': + '@commercelayer/cli-core@6.0.0-oclif4.11': dependencies: '@commercelayer/js-auth': 7.3.0 '@oclif/core': 4.10.3 @@ -3975,7 +3975,7 @@ snapshots: transitivePeerDependencies: - encoding - '@commercelayer/cli-dev@4.0.0-oclif4.5': + '@commercelayer/cli-dev@4.0.0-oclif4.6': dependencies: '@oclif/core': 4.10.3 fs-extra: 10.1.0 @@ -3984,7 +3984,7 @@ snapshots: normalize-package-data: 5.0.0 tslib: 2.8.1 - '@commercelayer/cli-ux@2.0.0-oclif4.10(@oclif/core@4.10.3)': + '@commercelayer/cli-ux@2.0.0-oclif4.11(@oclif/core@4.10.3)': dependencies: '@oclif/core': 4.10.3 ansi-escapes: 4.3.2 @@ -5015,7 +5015,7 @@ snapshots: widest-line: 3.1.0 wrap-ansi: 7.0.0 - brace-expansion@2.0.2: + brace-expansion@2.0.3: dependencies: balanced-match: 1.0.2 @@ -5033,7 +5033,7 @@ snapshots: dependencies: baseline-browser-mapping: 2.10.11 caniuse-lite: 1.0.30001781 - electron-to-chromium: 1.5.325 + electron-to-chromium: 1.5.328 node-releases: 2.0.36 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -5341,7 +5341,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.325: {} + electron-to-chromium@1.5.328: {} emoji-regex@10.6.0: {} @@ -6093,11 +6093,11 @@ snapshots: minimatch@5.1.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.3 minimatch@9.0.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.3 minimist@1.2.8: {} From ec7b7100f09aa9e7935cc7e11c2139eae4f2bb65 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 5 May 2026 13:49:10 +0000 Subject: [PATCH 5/5] chore(release): 2.0.0-oclif4.2 [skip ci] # [2.0.0-oclif4.2](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/compare/v2.0.0-oclif4.1...v2.0.0-oclif4.2) (2026-05-05) ### Bug Fixes * run tests in updates workflow ([045a532](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/commit/045a53244f60b0e67f2e6b889f31bd6efbd8c2e9)) * update dependencies and add updates workflow ([9121603](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/commit/9121603e6ef092e4f88368d21eaefc64cd2d9e33)) --- CHANGELOG.md | 8 ++++++++ package.json | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d8ec2d..e76b402 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# [2.0.0-oclif4.2](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/compare/v2.0.0-oclif4.1...v2.0.0-oclif4.2) (2026-05-05) + + +### Bug Fixes + +* run tests in updates workflow ([045a532](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/commit/045a53244f60b0e67f2e6b889f31bd6efbd8c2e9)) +* update dependencies and add updates workflow ([9121603](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/commit/9121603e6ef092e4f88368d21eaefc64cd2d9e33)) + # [2.0.0-oclif4.1](https://github.com/commercelayer/commercelayer-cli-plugin-metrics/compare/v1.2.0...v2.0.0-oclif4.1) (2026-03-26) diff --git a/package.json b/package.json index b75ebd7..c5eec33 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@commercelayer/cli-plugin-metrics", "description": "Commerce Layer CLI metrics plugin", - "version": "2.0.0-oclif4.1", + "version": "2.0.0-oclif4.2", "author": "Pierluigi Viti ", "homepage": "https://github.com/commercelayer/commercelayer-cli-plugin-metrics", "repository": "commercelayer/commercelayer-cli-plugin-metrics",