From cabcb834ff4c300a2f4f4003467b299356e17dfc Mon Sep 17 00:00:00 2001 From: Shane Dell Date: Tue, 3 Dec 2024 15:17:46 -0500 Subject: [PATCH] Create view container with a view of commands. - Create initial view container with a single view. - Create command view that displays a tree of our custom commands that can be ran. - Add play button to commands in view to be able to run them. - Update list of commands based on if debug mode or not. - Bump macos-12 to macos-14 to unbreak CI. - Not using macos-13 as it doesn't have sbt installed by default. - Configure daffodil-icon to look good for view container. Closes #1129 --- .github/workflows/CI.yml | 3 +- .github/workflows/nightly.yml | 3 +- images/daffodil-viewbar.svg | 73 ++++++++ package.json | 46 ++++- src/adapter/activateDaffodilDebug.ts | 6 + src/styles/styles.css | 1 + src/views/commands.ts | 119 +++++++++++++ yarn.lock | 243 +++++++++++++++------------ 8 files changed, 382 insertions(+), 112 deletions(-) create mode 100644 images/daffodil-viewbar.svg create mode 100644 src/views/commands.ts diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 914f2212d..a3f3c309a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -131,7 +131,8 @@ jobs: matrix: java_distribution: [ temurin ] java_version: [ 8, 11, 17 ] - os: [ macos-12, ubuntu-20.04, windows-2019 ] + # macos-13 not used as it doesn't by default have sbt installed. + os: [ macos-14, ubuntu-20.04, windows-2019 ] node: [ '18.20.1' ] vscode: [ '1.82.0', 'stable' ] # v1.82.0 is the first version of VSCode to use Node 18 fail-fast: false # don't immediately fail all other jobs if a single job fails diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index aae2096ed..a7444df0d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -26,7 +26,8 @@ jobs: name: 'Build, Test, and Package (OS: ${{ matrix.os }}, Node: ${{ matrix.node }}, Java: ${{ matrix.java_version }}, VS Code: ${{ matrix.vscode }})' strategy: matrix: - os: [ macos-12, ubuntu-20.04, windows-2019, macos-latest, ubuntu-latest, windows-latest ] + # macos-13 not used as it doesn't by default have sbt installed. + os: [ macos-14, ubuntu-20.04, windows-2019, macos-latest, ubuntu-latest, windows-latest ] node: [ '18.20.1' ] vscode: [ '1.82.0', 'stable', 'insiders' ] # v1.82.0 is the first version of VSCode to use Node 18 java_distribution: [ temurin ] diff --git a/images/daffodil-viewbar.svg b/images/daffodil-viewbar.svg new file mode 100644 index 000000000..76005fea3 --- /dev/null +++ b/images/daffodil-viewbar.svg @@ -0,0 +1,73 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/package.json b/package.json index aae29f94b..1475c2b62 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "apache-daffodil-vscode", "displayName": "Apache Daffodilâ„¢ Extension for Visual Studio Code", "description": "Apache Daffodilâ„¢ Extension for Visual Studio Code providing DFDL syntax highlighting, DFDL code completion, DFDL schema debugging, and data editor", - "version": "1.4.0", + "version": "1.4.1-SNAPSHOT", "daffodilVersion": "3.8.0", "publisher": "asf", "author": "Apache Daffodil", @@ -122,12 +122,30 @@ "onCommand:extension.dfdl-debug.getValidatedTDMLCopyPath", "onCommand:launch.config", "onCommand:extension.data.edit", - "onCommand:extension.dfdl-debug.debugLastEditorContents" + "onCommand:extension.dfdl-debug.debugLastEditorContents", + "onView:commandsView" ], "workspaceTrust": { "request": "never" }, "contributes": { + "viewsContainers": { + "activitybar": [ + { + "id": "daffodil-explorer", + "title": "Daffodil Explorer", + "icon": "images/daffodil-viewbar.svg" + } + ] + }, + "views": { + "daffodil-explorer": [ + { + "id": "commandsView", + "name": "Commands View" + } + ] + }, "languages": [ { "id": "dfdl", @@ -178,6 +196,20 @@ } ], "menus": { + "view/title": [ + { + "command": "commandsView.refresh", + "when": "view == commandsView", + "group": "navigation" + } + ], + "view/item/context": [ + { + "command": "commandsView.runCommand", + "when": "view == commandsView", + "group": "inline" + } + ], "editor/title": [ { "command": "launch.config", @@ -298,6 +330,16 @@ ] }, "commands": [ + { + "command": "commandsView.refresh", + "title": "Refresh", + "icon": "$(refresh)" + }, + { + "command": "commandsView.runCommand", + "title": "Run", + "icon": "$(play)" + }, { "command": "extension.dfdl-debug.debugEditorContents", "title": "Debug File", diff --git a/src/adapter/activateDaffodilDebug.ts b/src/adapter/activateDaffodilDebug.ts index 2b1f3938d..b024528c8 100644 --- a/src/adapter/activateDaffodilDebug.ts +++ b/src/adapter/activateDaffodilDebug.ts @@ -32,6 +32,7 @@ import { copyTestCase, } from 'tdmlEditor/utilities/tdmlXmlUtils' import xmlFormat from 'xml-formatter' +import { CommandsProvider } from '../views/commands' export const outputChannel: vscode.OutputChannel = vscode.window.createOutputChannel('Daffodil') @@ -204,10 +205,15 @@ function createDebugRunFileConfigs( } } +function setupViews(context: vscode.ExtensionContext) { + new CommandsProvider().register(context) +} export function activateDaffodilDebug( context: vscode.ExtensionContext, factory?: vscode.DebugAdapterDescriptorFactory ) { + setupViews(context) + context.subscriptions.push( vscode.commands.registerCommand( 'extension.dfdl-debug.runEditorContents', diff --git a/src/styles/styles.css b/src/styles/styles.css index 5a5798653..d77946bfa 100644 --- a/src/styles/styles.css +++ b/src/styles/styles.css @@ -319,4 +319,5 @@ /* padding-top: -10px; */ margin-top: 0px; /* cursor: pointer; */ + fill: #000000; } diff --git a/src/views/commands.ts b/src/views/commands.ts new file mode 100644 index 000000000..6a73bb882 --- /dev/null +++ b/src/views/commands.ts @@ -0,0 +1,119 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import * as vscode from 'vscode' + +const viewName = 'commandsView' +const packageCommands = require('../../package.json').contributes.commands + +// Custom class to hold attributes of the commands +class CommandItem extends vscode.TreeItem { + constructor( + public readonly label: string, + public readonly commandName: string, + public readonly category: string, + public readonly enablement: string, + public readonly collapsibleState: vscode.TreeItemCollapsibleState + ) { + super(label, collapsibleState) + this.tooltip = `${this.category}: ${this.label}` + this.description = this.commandName + } + + iconPath = new vscode.ThemeIcon('bracket') +} + +// Class that will create the tree of commands in our view container +export class CommandsProvider implements vscode.TreeDataProvider { + private commands: Array + constructor() { + this.commands = getCommands('!inDebugMode') + } + + private _onDidChangeTreeData: vscode.EventEmitter< + CommandItem | undefined | null | void + > = new vscode.EventEmitter() + readonly onDidChangeTreeData: vscode.Event< + CommandItem | undefined | null | void + > = this._onDidChangeTreeData.event + + getTreeItem = (element: CommandItem): vscode.TreeItem => element + + getChildren = (): vscode.ProviderResult => this.commands + + refresh = (): void => this._onDidChangeTreeData.fire() + + public register(context: vscode.ExtensionContext): any { + vscode.window.registerTreeDataProvider(viewName, this) + + const tree = vscode.window.createTreeView(viewName, { + treeDataProvider: this, + showCollapseAll: true, + }) + + // Create command that allows for the execution of our other commands + // when the command items play icon is clicked + vscode.commands.registerCommand( + `${viewName}.runCommand`, + async (commandItem: CommandItem) => + vscode.commands.executeCommand(commandItem.commandName) + ) + + // Create command that will refresh the list of commands + vscode.commands.registerCommand(`${viewName}.refresh`, () => { + this.refresh() + }) + + // Create listeners to update the commands based on if a debug session is happening + vscode.debug.onDidStartDebugSession(() => { + this.commands = getCommands('inDebugMode') + this.refresh() + }) + vscode.debug.onDidTerminateDebugSession(() => { + this.commands = getCommands('!inDebugMode') + this.refresh() + }) + + context.subscriptions.push(tree) + } +} + +// Function to parse all the commands from the package.json, that currently enabled, +// to an array of CommandItems +function getCommands(enablement: String): Array { + const commands = Array() + + packageCommands + .filter( + (c) => + !c.command.startsWith(viewName) && + (enablement === c.enablement || c.enablement === undefined) + ) + .forEach((command) => { + commands.push( + new CommandItem( + command.title, + command.command, + command.category, + command.enablement ?? '', + vscode.TreeItemCollapsibleState.None + ) + ) + }) + + return commands +} diff --git a/yarn.lock b/yarn.lock index 234c0d492..2f1c90aff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -131,22 +131,22 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz#b2da6219b603e3fa371a78f53f5361260d0c5585" integrity sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ== -"@grpc/grpc-js@1.10.4": - version "1.10.4" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.4.tgz#a33f743f69ed531e917c9eafb4fd8bc3e5f2e617" - integrity sha512-MqBisuxTkYvPFnEiu+dag3xG/NBUDzSbAFAWlzfkGnQkjVZ6by3h4atbBc+Ikqup1z5BfB4BN18gKWR1YyppNw== +"@grpc/grpc-js@1.12.2": + version "1.12.2" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.12.2.tgz#97eda82dd49bb9c24eaf6434ea8d7de446e95aac" + integrity sha512-bgxdZmgTrJZX50OjyVwz3+mNEnCTNkh3cIqGPWVNeW9jX6bn1ZkU80uPd+67/ZpIJIjRQ9qaHCjhavyoWYxumg== dependencies: - "@grpc/proto-loader" "^0.7.10" + "@grpc/proto-loader" "^0.7.13" "@js-sdsl/ordered-map" "^4.4.2" -"@grpc/proto-loader@^0.7.10": - version "0.7.12" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.12.tgz#787b58e3e3771df30b1567c057b6ab89e3a42911" - integrity sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q== +"@grpc/proto-loader@^0.7.13": + version "0.7.13" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" + integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== dependencies: lodash.camelcase "^4.3.0" long "^5.0.0" - protobufjs "^7.2.4" + protobufjs "^7.2.5" yargs "^17.7.2" "@jest/schemas@^29.6.0": @@ -272,23 +272,23 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@omega-edit/client@0.9.82": - version "0.9.82" - resolved "https://registry.yarnpkg.com/@omega-edit/client/-/client-0.9.82.tgz#3099d9d4d6a60efe0a19d6058562510393a9cb7d" - integrity sha512-1WmYo3T7C/dEr7FkpSVKsaUPyvQ0eHuStK0iaCmlU/4irOutKofJyPrZ4eV/DsgNCvplN31Hy7ZoSjUoczltow== +"@omega-edit/client@0.9.83": + version "0.9.83" + resolved "https://registry.yarnpkg.com/@omega-edit/client/-/client-0.9.83.tgz#87af04778709fa8eb078ea46196db2bd69dfb33d" + integrity sha512-E45Rmbc9Kf5lpXZMXNM+EzdlissQ4v4itysS01QfIkzGynJlGas3ZhDnShhfXBZ3ABcXef/R2K0n0fMh7yqPdw== dependencies: - "@grpc/grpc-js" "1.10.4" - "@omega-edit/server" "0.9.82" + "@grpc/grpc-js" "1.12.2" + "@omega-edit/server" "0.9.83" "@types/google-protobuf" "3.15.12" - google-protobuf "3.21.2" - pid-port "0.2.0" - pino "8.19.0" + google-protobuf "3.21.4" + pid-port "1.0.0" + pino "9.5.0" wait-port "1.1.0" -"@omega-edit/server@0.9.82": - version "0.9.82" - resolved "https://registry.yarnpkg.com/@omega-edit/server/-/server-0.9.82.tgz#2b6e70acdb1e82059235be478029ae08a6307112" - integrity sha512-cTohvHGHd8sZeeonW0JBNDoFfzLteei9v+sI/BBGvvWXNbCW74zZeYPQt9qHAqfvopxK+yRPUrvJpaKhZwbyZA== +"@omega-edit/server@0.9.83": + version "0.9.83" + resolved "https://registry.yarnpkg.com/@omega-edit/server/-/server-0.9.83.tgz#e14c4b477301295abd1bdd5107dd2017ba3aa31b" + integrity sha512-efjD4orkRCH2AX3CZs/Wyt6ke+wWgfOqxBRXcmqOJGTu/oiWw+5zZ9ch6FpmK122t5YApynJov/XSuaGE4a4KA== "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" @@ -500,9 +500,9 @@ integrity sha512-RrVw9s6gBJuY1IkUHMNznWgj/ktjwLpATyOTcKxUDIbbp7AQeK7S0E1+P/8Z75OgAW13OMqSAmaiuWw25dh59Q== "@types/vscode@^1.67.2": - version "1.93.0" - resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.93.0.tgz#1cd7573e0272aef9c357bafc635b6177c154013e" - integrity sha512-kUK6jAHSR5zY8ps42xuW89NLcBpw1kOabah7yv38J8MyiYuOHxLQBi0e7zeXbQgVefDy/mZZetqEFC+Fl5eIEQ== + version "1.95.0" + resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.95.0.tgz#484aee82c69fa2d73e29d4bf2a91191e570dbc70" + integrity sha512-0LBD8TEiNbet3NvWsmn59zLzOFu/txSlGxnv5yAFHCrhG9WvAnR3IvfHzMOs2aeWqgvNjq9pO99IUw8d3n+unw== "@types/ws@*": version "8.5.5" @@ -777,13 +777,6 @@ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - acorn-import-assertions@^1.9.0: version "1.9.0" resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" @@ -1058,14 +1051,6 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - buffers@~0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz" @@ -1730,12 +1715,7 @@ estraverse@^5.2.0: resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - -events@^3.2.0, events@^3.3.0: +events@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -1755,6 +1735,21 @@ execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + exenv-es6@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/exenv-es6/-/exenv-es6-1.1.1.tgz" @@ -1907,6 +1902,11 @@ get-stream@^6.0.0, get-stream@^6.0.1: resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + github-from-package@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" @@ -1977,10 +1977,10 @@ globby@^13.1.1: merge2 "^1.4.1" slash "^4.0.0" -google-protobuf@3.21.2: - version "3.21.2" - resolved "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz" - integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== +google-protobuf@3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.4.tgz#2f933e8b6e5e9f8edde66b7be0024b68f77da6c9" + integrity sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ== got@^13.0.0: version "13.0.0" @@ -2098,12 +2098,17 @@ human-signals@^2.1.0: resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.13, ieee754@^1.2.1: +ieee754@^1.1.13: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -2220,6 +2225,11 @@ is-stream@^2.0.0: resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" @@ -2546,6 +2556,11 @@ mimic-fn@^2.1.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" @@ -2718,6 +2733,13 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + nth-check@^2.0.1: version "2.1.1" resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" @@ -2749,6 +2771,13 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + os-paths@^7.4.0: version "7.4.0" resolved "https://registry.npmjs.org/os-paths/-/os-paths-7.4.0.tgz" @@ -2843,6 +2872,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" @@ -2873,42 +2907,41 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pid-port@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/pid-port/-/pid-port-0.2.0.tgz#db45378e4dcdb8425f911b7c09d7b0187a399873" - integrity sha512-xVU9H1FCRSeGrD9Oim5bLg2U7B2BgW0qzK2oahpV5BIf9hwzqQaWyOkOVC0Kgbsc90A9x6525beawx+QK+JduQ== +pid-port@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pid-port/-/pid-port-1.0.0.tgz#b99a4d53dfeeae8b4e123d02c77e268de0413225" + integrity sha512-LSNBeKChRPA4Xlrs6+zV588G1hSrFvANtPV5rt/5MPfSPK3V9XPWxx1d29svsrOjngT9ifLisXWCLS7DvO9ZhQ== dependencies: - execa "^5.1.1" + execa "^8.0.1" -pino-abstract-transport@v1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz" - integrity sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA== +pino-abstract-transport@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz#de241578406ac7b8a33ce0d77ae6e8a0b3b68a60" + integrity sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw== dependencies: - readable-stream "^4.0.0" split2 "^4.0.0" -pino-std-serializers@^6.0.0: - version "6.2.2" - resolved "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz" - integrity sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA== +pino-std-serializers@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz#7c625038b13718dbbd84ab446bd673dc52259e3b" + integrity sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA== -pino@8.19.0: - version "8.19.0" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.19.0.tgz#ccc15ef736f103ec02cfbead0912bc436dc92ce4" - integrity sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA== +pino@9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-9.5.0.tgz#a7ef0fea868d22d52d8a4ce46e6e03c5dc46fdd6" + integrity sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" on-exit-leak-free "^2.1.0" - pino-abstract-transport v1.1.0 - pino-std-serializers "^6.0.0" - process-warning "^3.0.0" + pino-abstract-transport "^2.0.0" + pino-std-serializers "^7.0.0" + process-warning "^4.0.0" quick-format-unescaped "^4.0.3" real-require "^0.2.0" safe-stable-stringify "^2.3.1" - sonic-boom "^3.7.0" - thread-stream "^2.0.0" + sonic-boom "^4.0.1" + thread-stream "^3.0.0" pkg-dir@^4.2.0: version "4.2.0" @@ -3196,20 +3229,15 @@ process-nextick-args@~2.0.0: resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process-warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-3.0.0.tgz#96e5b88884187a1dce6f5c3166d611132058710b" - integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +process-warning@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-4.0.0.tgz#581e3a7a1fb456c5f4fd239f76bce75897682d5a" + integrity sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw== -protobufjs@^7.2.4: - version "7.2.6" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" - integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== +protobufjs@^7.2.5: + version "7.4.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.4.0.tgz#7efe324ce9b3b61c82aae5de810d287bc08a248a" + integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -3313,17 +3341,6 @@ readable-stream@^3.1.1, readable-stream@^3.4.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^4.0.0: - version "4.4.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz" - integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== - dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -3594,6 +3611,11 @@ signal-exit@^3.0.3: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + simple-concat@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" @@ -3613,10 +3635,10 @@ slash@^4.0.0: resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -sonic-boom@^3.7.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.8.0.tgz#e442c5c23165df897d77c3c14ef3ca40dec66a66" - integrity sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA== +sonic-boom@^4.0.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.2.0.tgz#e59a525f831210fa4ef1896428338641ac1c124d" + integrity sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww== dependencies: atomic-sleep "^1.0.0" @@ -3667,7 +3689,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string_decoder@^1.1.1, string_decoder@^1.3.0: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -3698,6 +3720,11 @@ strip-final-newline@^2.0.0: resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" @@ -3892,10 +3919,10 @@ terser@^5.16.8: commander "^2.20.0" source-map-support "~0.5.20" -thread-stream@^2.0.0: - version "2.4.0" - resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.0.tgz" - integrity sha512-xZYtOtmnA63zj04Q+F9bdEay5r47bvpo1CaNqsKi7TpoJHcotUez8Fkfo2RJWpW91lnnaApdpRbVwCWsy+ifcw== +thread-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-3.1.0.tgz#4b2ef252a7c215064507d4ef70c05a5e2d34c4f1" + integrity sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A== dependencies: real-require "^0.2.0"