diff --git a/README.md b/README.md
index 03ec03a8..5233b53e 100644
--- a/README.md
+++ b/README.md
@@ -14,22 +14,22 @@ This repository contains examples for common use cases and API implementations.
## Examples
-| **Example** | **Description** | **Live Launch** |
-| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [container-platform-starter](./how-to/container-platform-starter) | This example shows a simple platform with a single view. | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fcontainer-platform-starter%2Fmanifest.fin.json) |
-| [create-window](./how-to/create-window) | This example shows how to create a dynamic window or from a manifest. | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fcreate-window%2Fmanifest.fin.json) |
-| [use-security-realms](./how-to/use-security-realms) | This example shows you security realms work with multiple target environments | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-security-realms%2Fmanifest.fin.json) |
-| [use-preloads](./how-to/use-preloads) | This example shows you a number of examples on how preload scripts can be used in your application | [Example 1](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-preloads-basic%2Fmanifest.fin.json)
[Example 2](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-preloads-restart-on-refresh%2Fmanifest.fin.json) |
-| [use-channel-api](./how-to/use-channel-api) | This example shows you a number of examples on how to use the channel api for messaging | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-channel-api-issue-commands-to-a-platform%2Fmanifest.fin.json) |
-| [use-dynamic-manifest](./how-to/use-dynamic-manifest) | This example contains examples of generating a manifest file dynamically | |
-| [integration-excel](./how-to/integration-excel) | This example demonstrates how to integration with Excel using the OpenFin adaptor | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fintegration-excel%2Fmanifest.fin.json) |
-| [use-popup-window](./how-to/use-popup-window/) | This example contains various examples of how to use popup windows | [Example 1](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-popup-window-advanced%2Fmanifest.fin.json) [Example 2](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-popup-window-modal%2Fmanifest.fin.json)
[Example 3](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-popup-window-single-result%2Fmanifest.fin.json)
[Example 4](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-popup-window-multiple-results%2Fmanifest.fin.json) |
-| [use-window-options](./how-to/use-window-options/) | This example demonstrates the options available for opening windows | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-window-options%2Fmanifest.fin.json) |
-| [use-interop](./how-to/use-interop/) | This example contains various implementations and use cases for the Interop API | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-interop-setup-multi-platform-interop%2Fmanifest.fin.json) |
-| [use-a-manifest](./how-to/use-a-manifest/) | This example contains various examples of how to use the OpenFin manifest | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-a-manifest-create-a-single-page-platform%2Fmanifest.fin.json) |
-| [use-content-creation-rules](./how-to/use-content-creation-rules/) | This example demonstrates how content creation rules can be applied | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-content-creation-rules%2Fmanifest.fin.json) |
-| [use-logging-apis](./how-to/use-logging-apis/) | This example shows how to use OpenFin APIs to retrieve logs and send them to a server. | |
-| [use-launch-external-process](./how-to/use-launch-external-process/) | This example demonstrates how to use the launch external process secure api. | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-launch-external-process%2Fmanifest.fin.json) |
+| **Example** | **Description** | **Live Launch** |
+| -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [container-platform-starter](./how-to/container-platform-starter) | This example shows a simple platform with a single view. | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fcontainer-platform-starter%2Fmanifest.fin.json) |
+| [create-window](./how-to/create-window) | This example shows how to create a dynamic window or from a manifest. | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fcreate-window%2Fmanifest.fin.json) |
+| [use-security-realms](./how-to/use-security-realms) | This example shows you security realms work with multiple target environments | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-security-realms%2Fmanifest.fin.json) |
+| [use-preloads](./how-to/use-preloads) | This example shows you a number of examples on how preload scripts can be used in your application | [Example 1](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-preloads-basic%2Fmanifest.fin.json)
[Example 2](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-preloads-restart-on-refresh%2Fmanifest.fin.json) |
+| [use-channel-api](./how-to/use-channel-api) | This example shows you a number of examples on how to use the channel api for messaging | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-channel-api-issue-commands-to-a-platform%2Fmanifest.fin.json) |
+| [use-dynamic-manifest](./how-to/use-dynamic-manifest) | This example contains examples of generating a manifest file dynamically | |
+| [integration-excel](./how-to/integration-excel) | This example demonstrates how to integration with Excel using the OpenFin adaptor | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fintegration-excel%2Fmanifest.fin.json) |
+| [use-popup-window](./how-to/use-popup-window/) | This example contains various examples of how to use popup windows | [Example 1](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-popup-window-advanced%2Fmanifest.fin.json) [Example 2](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-popup-window-modal%2Fmanifest.fin.json)
[Example 3](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-popup-window-single-result%2Fmanifest.fin.json)
[Example 4](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-popup-window-multiple-results%2Fmanifest.fin.json) |
+| [use-window-options](./how-to/use-window-options/) | This example demonstrates the options available for opening windows | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-window-options%2Fmanifest.fin.json) |
+| [use-interop](./how-to/use-interop/) | This example contains various implementations and use cases for the Interop API. Including Interop Broker to Interop Broker communication on the same machine and cross machine/platform communication using our Cloud Interop solution. | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-interop-setup-multi-platform-interop%2Fmanifest.fin.json) |
+| [use-a-manifest](./how-to/use-a-manifest/) | This example contains various examples of how to use the OpenFin manifest | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-a-manifest-create-a-single-page-platform%2Fmanifest.fin.json) |
+| [use-content-creation-rules](./how-to/use-content-creation-rules/) | This example demonstrates how content creation rules can be applied | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-content-creation-rules%2Fmanifest.fin.json) |
+| [use-logging-apis](./how-to/use-logging-apis/) | This example shows how to use OpenFin APIs to retrieve logs and send them to a server. | |
+| [use-launch-external-process](./how-to/use-launch-external-process/) | This example demonstrates how to use the launch external process secure api. | [Example](https://start.openfin.co/?manifest=https%3A%2F%2Fbuilt-on-openfin.github.io%2Fcontainer-starter%2Fmain%2Fuse-launch-external-process%2Fmanifest.fin.json) |
## Before you get started
diff --git a/how-to/automation-testing/create-window-js/package.json b/how-to/automation-testing/create-window-js/package.json
index 869b628c..090fdc71 100644
--- a/how-to/automation-testing/create-window-js/package.json
+++ b/how-to/automation-testing/create-window-js/package.json
@@ -1,22 +1,21 @@
{
- "name": "automation-testing-create-window-js",
- "version": "1.0.0",
- "description": "OpenFin Container Starter Automation Tests",
- "scripts": {
- "build": "echo Nothing to build",
- "test-local-mocha": "of-automation http://localhost:5050/manifest.fin.json ./tests/**/*.spec.js --reporter ./mocha.reporter.json",
- "setup": "npm install && npm run build",
- "validate": "npm --prefix ../../../ run validate"
- },
- "author": "ameet.jayawant@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/automation-cli": "^1.0.13",
- "@openfin/automation-helpers": "^1.0.13",
- "@openfin/automation-native": "^1.0.13",
- "chai": "4.3.7",
- "mochawesome": "7.1.3",
- "@openfin/core": "36.80.10",
- "@openfin/node-adapter": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "automation-testing-create-window-js",
+ "version": "36.80.11",
+ "description": "OpenFin Container Starter Automation Tests",
+ "scripts": {
+ "build": "echo Nothing to build",
+ "test-local-mocha": "of-automation http://localhost:5050/manifest.fin.json ./tests/**/*.spec.js --reporter ./mocha.reporter.json",
+ "setup": "npm install && npm run build",
+ "validate": "npm --prefix ../../../ run validate"
+ },
+ "author": "ameet.jayawant@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/automation-cli": "^1.2.0",
+ "@openfin/automation-helpers": "^1.2.0",
+ "chai": "5.1.0",
+ "mochawesome": "7.1.3",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11"
+ }
+}
diff --git a/how-to/automation-testing/use-launch-external-process-js/package.json b/how-to/automation-testing/use-launch-external-process-js/package.json
index 17cfd966..22e8773e 100644
--- a/how-to/automation-testing/use-launch-external-process-js/package.json
+++ b/how-to/automation-testing/use-launch-external-process-js/package.json
@@ -1,22 +1,21 @@
{
- "name": "automation-testing-use-window-options-js",
- "version": "1.0.0",
- "description": "OpenFin Container Starter Automation Tests",
- "scripts": {
- "build": "echo Nothing to build",
- "test-local-mocha": "of-automation http://localhost:5050/manifest.fin.json ./tests/**/*.spec.js --reporter ./mocha.reporter.json",
- "setup": "npm install && npm run build",
- "validate": "npm --prefix ../../../ run validate"
- },
- "author": "ameet.jayawant@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/automation-cli": "^1.0.13",
- "@openfin/automation-helpers": "^1.0.13",
- "@openfin/automation-native": "^1.0.13",
- "chai": "4.3.7",
- "mochawesome": "7.1.3",
- "@openfin/core": "36.80.10",
- "@openfin/node-adapter": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "automation-testing-use-window-options-js",
+ "version": "36.80.11",
+ "description": "OpenFin Container Starter Automation Tests",
+ "scripts": {
+ "build": "echo Nothing to build",
+ "test-local-mocha": "of-automation http://localhost:5050/manifest.fin.json ./tests/**/*.spec.js --reporter ./mocha.reporter.json",
+ "setup": "npm install && npm run build",
+ "validate": "npm --prefix ../../../ run validate"
+ },
+ "author": "ameet.jayawant@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/automation-cli": "^1.2.0",
+ "@openfin/automation-helpers": "^1.2.0",
+ "chai": "5.1.0",
+ "mochawesome": "7.1.3",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11"
+ }
+}
diff --git a/how-to/automation-testing/use-window-options-js/package.json b/how-to/automation-testing/use-window-options-js/package.json
index 18bfae9b..c8595bfb 100644
--- a/how-to/automation-testing/use-window-options-js/package.json
+++ b/how-to/automation-testing/use-window-options-js/package.json
@@ -1,22 +1,21 @@
{
- "name": "automation-testing-use-launch-external-process-js",
- "version": "1.0.0",
- "description": "OpenFin Container Starter Automation Tests",
- "scripts": {
- "build": "echo Nothing to build",
- "test-local-mocha": "of-automation http://localhost:5050/manifest.fin.json ./tests/**/*.spec.js --reporter ./mocha.reporter.json",
- "setup": "npm install && npm run build",
- "validate": "npm --prefix ../../../ run validate"
- },
- "author": "ameet.jayawant@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/automation-cli": "^1.0.13",
- "@openfin/automation-helpers": "^1.0.13",
- "@openfin/automation-native": "^1.0.13",
- "chai": "4.3.7",
- "mochawesome": "7.1.3",
- "@openfin/core": "36.80.10",
- "@openfin/node-adapter": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "automation-testing-use-launch-external-process-js",
+ "version": "36.80.11",
+ "description": "OpenFin Container Starter Automation Tests",
+ "scripts": {
+ "build": "echo Nothing to build",
+ "test-local-mocha": "of-automation http://localhost:5050/manifest.fin.json ./tests/**/*.spec.js --reporter ./mocha.reporter.json",
+ "setup": "npm install && npm run build",
+ "validate": "npm --prefix ../../../ run validate"
+ },
+ "author": "ameet.jayawant@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/automation-cli": "^1.2.0",
+ "@openfin/automation-helpers": "^1.2.0",
+ "chai": "5.1.0",
+ "mochawesome": "7.1.3",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11"
+ }
+}
diff --git a/how-to/container-platform-starter/package.json b/how-to/container-platform-starter/package.json
index c87fe2df..a5226c48 100644
--- a/how-to/container-platform-starter/package.json
+++ b/how-to/container-platform-starter/package.json
@@ -1,23 +1,23 @@
{
- "name": "container-platform-starter",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../ && npm install && cd how-to/container-platform-starter && npm run build"
- },
- "license": "ISC",
- "devDependencies": {
- "@openfin/core": "36.80.10",
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4"
- }
-}
\ No newline at end of file
+ "name": "container-platform-starter",
+ "version": "36.80.11",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../ && npm install && cd how-to/container-platform-starter && npm run build"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4"
+ }
+}
diff --git a/how-to/container-platform-starter/public/manifest.fin.json b/how-to/container-platform-starter/public/manifest.fin.json
index f422da30..ed882b35 100644
--- a/how-to/container-platform-starter/public/manifest.fin.json
+++ b/how-to/container-platform-starter/public/manifest.fin.json
@@ -1,43 +1,43 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "enableBeforeUnload": true,
- "uuid": "container-platform-starter",
- "icon": "http://localhost:5050/favicon.ico",
- "autoShow": false,
- "providerUrl": "http://localhost:5050/html/provider.html"
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "row",
- "content": [
- {
- "type": "stack",
- "content": [
- {
- "type": "component",
- "title": "view1",
- "componentName": "view",
- "componentState": {
- "url": "http://localhost:5050/common/views/platform/of-info/index.html",
- "name": "view1",
- "componentName": "view"
- }
- }
- ]
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "enableBeforeUnload": true,
+ "uuid": "container-platform-starter",
+ "icon": "http://localhost:5050/favicon.ico",
+ "autoShow": false,
+ "providerUrl": "http://localhost:5050/html/provider.html"
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "row",
+ "content": [
+ {
+ "type": "stack",
+ "content": [
+ {
+ "type": "component",
+ "title": "view1",
+ "componentName": "view",
+ "componentState": {
+ "url": "http://localhost:5050/common/views/platform/of-info/index.html",
+ "name": "view1",
+ "componentName": "view"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/container-platform-starter/scripts/launch.mjs b/how-to/container-platform-starter/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/container-platform-starter/scripts/launch.mjs
+++ b/how-to/container-platform-starter/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/create-window/package.json b/how-to/create-window/package.json
index 449e8555..527f4257 100644
--- a/how-to/create-window/package.json
+++ b/how-to/create-window/package.json
@@ -1,24 +1,24 @@
{
- "name": "application-window-creation",
- "version": "0.0.1",
- "description": "A demonstration of how to open openfin application windows",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../ && npm install && cd how-to/create-window && npm run build"
- },
- "author": "pj.singh@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "application-window-creation",
+ "version": "36.80.11",
+ "description": "A demonstration of how to open openfin application windows",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../ && npm install && cd how-to/create-window && npm run build"
+ },
+ "author": "pj.singh@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/create-window/public/app.fin.json b/how-to/create-window/public/app.fin.json
index 4f8ede08..327a1bde 100644
--- a/how-to/create-window/public/app.fin.json
+++ b/how-to/create-window/public/app.fin.json
@@ -1,28 +1,28 @@
{
- "devtools_port": 9090,
- "startup_app": {
- "name": "OpenMultipleWindows",
- "description": "OpenMultipleWindows",
- "url": "http://www.google.com",
- "showTaskbarIcon": true,
- "taskbarIcon": "http://cdn.openfin.co/hyperblotter/favicon.ico",
- "icon": "http://cdn.openfin.co/hyperblotter/favicon.ico",
- "uuid": "OpenMultipleWindows",
- "autoShow": true,
- "contextMenu": true,
- "defaultHeight": 500,
- "defaultwidth": 500,
- "frame": true,
- "defaultCentered": true,
- "resizable": true
- },
- "runtime": {
- "arguments": "--enable-crash-reporting --no-sandbox",
- "version": "36.122.80.10"
- },
- "shortcut": {
- "company": "OpenFin",
- "description": "Openfin openfin application window Sample",
- "name": "Openfin application window"
- }
-}
\ No newline at end of file
+ "devtools_port": 9090,
+ "startup_app": {
+ "name": "OpenMultipleWindows",
+ "description": "OpenMultipleWindows",
+ "url": "http://www.google.com",
+ "showTaskbarIcon": true,
+ "taskbarIcon": "http://cdn.openfin.co/hyperblotter/favicon.ico",
+ "icon": "http://cdn.openfin.co/hyperblotter/favicon.ico",
+ "uuid": "OpenMultipleWindows",
+ "autoShow": true,
+ "contextMenu": true,
+ "defaultHeight": 500,
+ "defaultwidth": 500,
+ "frame": true,
+ "defaultCentered": true,
+ "resizable": true
+ },
+ "runtime": {
+ "arguments": "--enable-crash-reporting --no-sandbox",
+ "version": "36.122.80.11"
+ },
+ "shortcut": {
+ "company": "OpenFin",
+ "description": "Openfin openfin application window Sample",
+ "name": "Openfin application window"
+ }
+}
diff --git a/how-to/create-window/public/manifest.fin.json b/how-to/create-window/public/manifest.fin.json
index 6d9cab12..6125bd07 100644
--- a/how-to/create-window/public/manifest.fin.json
+++ b/how-to/create-window/public/manifest.fin.json
@@ -1,35 +1,35 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "how-to-open-windows",
- "autoShow": true,
- "icon": "http://localhost:5050/favicon.ico"
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "how-to-open-windows",
+ "autoShow": true,
+ "icon": "http://localhost:5050/favicon.ico"
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/create-window/scripts/launch.mjs b/how-to/create-window/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/create-window/scripts/launch.mjs
+++ b/how-to/create-window/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/integration-excel/package.json b/how-to/integration-excel/package.json
index 110fc950..b6b94861 100644
--- a/how-to/integration-excel/package.json
+++ b/how-to/integration-excel/package.json
@@ -1,31 +1,31 @@
{
- "name": "integration-excel",
- "version": "0.0.1",
- "description": "A demonstration of how to connect with Excel from OpenFin",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "secondclient": "node ./scripts/launch.mjs http://localhost:5050/second.manifest.fin.json",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../ && npm install && cd how-to/integration-excel && npm run build"
- },
- "author": "martyn.janes@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@finos/fdc3": "^2.0.3",
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- },
- "dependencies": {
- "@openfin/excel": "^1.4.1",
- "@openfin/core": "36.80.10",
- "@openfin/node-adapter": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "integration-excel",
+ "version": "36.80.11",
+ "description": "A demonstration of how to connect with Excel from OpenFin",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "secondclient": "node ./scripts/launch.mjs http://localhost:5050/second.manifest.fin.json",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../ && npm install && cd how-to/integration-excel && npm run build"
+ },
+ "author": "martyn.janes@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@finos/fdc3": "^2.1.0",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ },
+ "dependencies": {
+ "@openfin/excel": "^1.5.0",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11"
+ }
+}
diff --git a/how-to/integration-excel/public/manifest.fin.json b/how-to/integration-excel/public/manifest.fin.json
index 4e984855..dcde624e 100644
--- a/how-to/integration-excel/public/manifest.fin.json
+++ b/how-to/integration-excel/public/manifest.fin.json
@@ -1,111 +1,107 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "integration-excel",
- "applicationIcon": "http://localhost:5050/favicon.ico",
- "providerUrl": "http://localhost:5050/provider/provider.html",
- "autoShow": false,
- "permissions": {
- "System": {
- "launchExternalProcess": true,
- "downloadAsset": true,
- "openUrlWithBrowser": {
- "enabled": true,
- "protocols": [
- "mailto"
- ]
- }
- }
- }
- },
- "snapshot": {
- "windows": [
- {
- "defaultWidth": 800,
- "defaultHeight": 900,
- "defaultLeft": 0,
- "defaultTop": 0,
- "saveWindowState": false,
- "backgroundThrottling": true,
- "layout": {
- "content": [
- {
- "type": "column",
- "id": "mainRow",
- "isClosable": true,
- "reorderEnabled": true,
- "title": "",
- "content": [
- {
- "type": "stack",
- "width": 100,
- "isClosable": true,
- "reorderEnabled": true,
- "title": "",
- "activeItemIndex": 0,
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "url": "http://localhost:5050/views/excel.html",
- "name": "excel-view",
- "fdc3InteropApi": "1.2",
- "interop": {
- "currentContextGroup": "green"
- },
- "permissions": {
- "System": {
- "launchExternalProcess": true,
- "downloadAsset": true,
- "openUrlWithBrowser": {
- "enabled": true,
- "protocols": [
- "mailto"
- ]
- }
- }
- }
- },
- "isClosable": true,
- "reorderEnabled": true,
- "title": "view"
- }
- ]
- },
- {
- "type": "stack",
- "width": 100,
- "isClosable": true,
- "reorderEnabled": true,
- "title": "",
- "activeItemIndex": 0,
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "url": "http://localhost:5050/views/fdc3monitor.html",
- "name": "fdc3-view",
- "fdc3InteropApi": "1.2",
- "interop": {
- "currentContextGroup": "green"
- }
- },
- "isClosable": true,
- "reorderEnabled": true,
- "title": "view"
- }
- ]
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "integration-excel",
+ "applicationIcon": "http://localhost:5050/favicon.ico",
+ "providerUrl": "http://localhost:5050/provider/provider.html",
+ "autoShow": false,
+ "permissions": {
+ "System": {
+ "launchExternalProcess": true,
+ "downloadAsset": true,
+ "openUrlWithBrowser": {
+ "enabled": true,
+ "protocols": ["mailto"]
+ }
+ }
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "defaultWidth": 800,
+ "defaultHeight": 900,
+ "defaultLeft": 0,
+ "defaultTop": 0,
+ "saveWindowState": false,
+ "backgroundThrottling": true,
+ "layout": {
+ "content": [
+ {
+ "type": "column",
+ "id": "mainRow",
+ "isClosable": true,
+ "reorderEnabled": true,
+ "title": "",
+ "content": [
+ {
+ "type": "stack",
+ "width": 100,
+ "isClosable": true,
+ "reorderEnabled": true,
+ "title": "",
+ "activeItemIndex": 0,
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "http://localhost:5050/views/excel.html",
+ "name": "excel-view",
+ "fdc3InteropApi": "1.2",
+ "interop": {
+ "currentContextGroup": "green"
+ },
+ "permissions": {
+ "System": {
+ "launchExternalProcess": true,
+ "downloadAsset": true,
+ "openUrlWithBrowser": {
+ "enabled": true,
+ "protocols": ["mailto"]
+ }
+ }
+ }
+ },
+ "isClosable": true,
+ "reorderEnabled": true,
+ "title": "view"
+ }
+ ]
+ },
+ {
+ "type": "stack",
+ "width": 100,
+ "isClosable": true,
+ "reorderEnabled": true,
+ "title": "",
+ "activeItemIndex": 0,
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "http://localhost:5050/views/fdc3monitor.html",
+ "name": "fdc3-view",
+ "fdc3InteropApi": "1.2",
+ "interop": {
+ "currentContextGroup": "green"
+ }
+ },
+ "isClosable": true,
+ "reorderEnabled": true,
+ "title": "view"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/integration-excel/public/second.manifest.fin.json b/how-to/integration-excel/public/second.manifest.fin.json
index 64d4284f..8d797358 100644
--- a/how-to/integration-excel/public/second.manifest.fin.json
+++ b/how-to/integration-excel/public/second.manifest.fin.json
@@ -1,24 +1,22 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "integration-excel-tray",
- "applicationIcon": "http://localhost:5050/favicon.ico",
- "providerUrl": "http://localhost:5050/provider/provider-tray.html",
- "autoShow": false,
- "permissions": {
- "System": {
- "launchExternalProcess": true,
- "downloadAsset": true,
- "openUrlWithBrowser": {
- "enabled": true,
- "protocols": [
- "mailto"
- ]
- }
- }
- }
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "integration-excel-tray",
+ "applicationIcon": "http://localhost:5050/favicon.ico",
+ "providerUrl": "http://localhost:5050/provider/provider-tray.html",
+ "autoShow": false,
+ "permissions": {
+ "System": {
+ "launchExternalProcess": true,
+ "downloadAsset": true,
+ "openUrlWithBrowser": {
+ "enabled": true,
+ "protocols": ["mailto"]
+ }
+ }
+ }
+ }
+}
diff --git a/how-to/integration-excel/scripts/launch.mjs b/how-to/integration-excel/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/integration-excel/scripts/launch.mjs
+++ b/how-to/integration-excel/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-a-manifest/create-a-single-page-platform/package.json b/how-to/use-a-manifest/create-a-single-page-platform/package.json
index 564d102a..7730ddd1 100644
--- a/how-to/use-a-manifest/create-a-single-page-platform/package.json
+++ b/how-to/use-a-manifest/create-a-single-page-platform/package.json
@@ -1,20 +1,20 @@
{
- "name": "create-a-single-page-platform",
- "version": "0.0.1",
- "description": "A demonstration of a one page platform that can be used as a starting point.",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "secondclient": "node ./scripts/launch.mjs http://localhost:5050/second.manifest.fin.json",
- "build-client": "echo Nothing to build",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-a-manifest/create-a-single-page-platform && npm run build"
- },
- "author": "john.mandia@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "create-a-single-page-platform",
+ "version": "36.80.11",
+ "description": "A demonstration of a one page platform that can be used as a starting point.",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "secondclient": "node ./scripts/launch.mjs http://localhost:5050/second.manifest.fin.json",
+ "build-client": "echo Nothing to build",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-a-manifest/create-a-single-page-platform && npm run build"
+ },
+ "author": "john.mandia@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-a-manifest/create-a-single-page-platform/public/manifest.fin.json b/how-to/use-a-manifest/create-a-single-page-platform/public/manifest.fin.json
index 441329f2..59c255dd 100644
--- a/how-to/use-a-manifest/create-a-single-page-platform/public/manifest.fin.json
+++ b/how-to/use-a-manifest/create-a-single-page-platform/public/manifest.fin.json
@@ -1,47 +1,47 @@
{
- "licenseKey": "openfin-demo-license-key",
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10",
- "autoShow": false
- },
- "platform": {
- "uuid": "how-to-use-a-manifest-create-a-single-page-platform",
- "icon": "http://localhost:5050/favicon.ico",
- "defaultWindowOptions": {
- "stylesheetUrl": "http://localhost:5050/window-override.css"
- }
- },
- "snapshot": {
- "windows": [
- {
- "defaultWidth": 800,
- "defaultHeight": 600,
- "defaultCentered": true,
- "saveWindowState": true,
- "backgroundThrottling": true,
- "layout": {
- "content": [
- {
- "type": "stack",
- "width": 100,
- "isClosable": false,
- "reorderEnabled": false,
- "hasHeaders": false,
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "url": "http://localhost:5050/common/style/style.html"
- },
- "title": "view"
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "licenseKey": "openfin-demo-license-key",
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11",
+ "autoShow": false
+ },
+ "platform": {
+ "uuid": "how-to-use-a-manifest-create-a-single-page-platform",
+ "icon": "http://localhost:5050/favicon.ico",
+ "defaultWindowOptions": {
+ "stylesheetUrl": "http://localhost:5050/window-override.css"
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "defaultWidth": 800,
+ "defaultHeight": 600,
+ "defaultCentered": true,
+ "saveWindowState": true,
+ "backgroundThrottling": true,
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "width": 100,
+ "isClosable": false,
+ "reorderEnabled": false,
+ "hasHeaders": false,
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "http://localhost:5050/common/style/style.html"
+ },
+ "title": "view"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-a-manifest/create-a-single-page-platform/public/second.manifest.fin.json b/how-to/use-a-manifest/create-a-single-page-platform/public/second.manifest.fin.json
index 424af144..2543d7ee 100644
--- a/how-to/use-a-manifest/create-a-single-page-platform/public/second.manifest.fin.json
+++ b/how-to/use-a-manifest/create-a-single-page-platform/public/second.manifest.fin.json
@@ -1,24 +1,24 @@
{
- "licenseKey": "openfin-demo-license-key",
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10",
- "autoShow": false
- },
- "platform": {
- "uuid": "second-how-to-use-a-manifest-create-a-single-page-platform",
- "icon": "http://localhost:5050/favicon.ico"
- },
- "snapshot": {
- "windows": [
- {
- "defaultWidth": 800,
- "defaultHeight": 600,
- "defaultCentered": true,
- "saveWindowState": true,
- "backgroundThrottling": false,
- "url": "http://localhost:5050/common/style/style.html"
- }
- ]
- }
-}
\ No newline at end of file
+ "licenseKey": "openfin-demo-license-key",
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11",
+ "autoShow": false
+ },
+ "platform": {
+ "uuid": "second-how-to-use-a-manifest-create-a-single-page-platform",
+ "icon": "http://localhost:5050/favicon.ico"
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "defaultWidth": 800,
+ "defaultHeight": 600,
+ "defaultCentered": true,
+ "saveWindowState": true,
+ "backgroundThrottling": false,
+ "url": "http://localhost:5050/common/style/style.html"
+ }
+ ]
+ }
+}
diff --git a/how-to/use-a-manifest/create-a-single-page-platform/scripts/launch.mjs b/how-to/use-a-manifest/create-a-single-page-platform/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-a-manifest/create-a-single-page-platform/scripts/launch.mjs
+++ b/how-to/use-a-manifest/create-a-single-page-platform/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-channel-api/issue-commands-to-a-platform/package.json b/how-to/use-channel-api/issue-commands-to-a-platform/package.json
index 422a04d1..5e3ea268 100644
--- a/how-to/use-channel-api/issue-commands-to-a-platform/package.json
+++ b/how-to/use-channel-api/issue-commands-to-a-platform/package.json
@@ -1,24 +1,24 @@
{
- "name": "use-channel-api-issue-commands-to-a-platform",
- "version": "0.0.1",
- "description": "A demonstration of one app can issue commands to a platform application.",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-channel-api/issue-commands-to-a-platform && npm run build"
- },
- "author": "john.mandia@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "use-channel-api-issue-commands-to-a-platform",
+ "version": "36.80.11",
+ "description": "A demonstration of one app can issue commands to a platform application.",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-channel-api/issue-commands-to-a-platform && npm run build"
+ },
+ "author": "john.mandia@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-channel-api/issue-commands-to-a-platform/public/manifest.fin.json b/how-to/use-channel-api/issue-commands-to-a-platform/public/manifest.fin.json
index 48f34eff..8ae98c46 100644
--- a/how-to/use-channel-api/issue-commands-to-a-platform/public/manifest.fin.json
+++ b/how-to/use-channel-api/issue-commands-to-a-platform/public/manifest.fin.json
@@ -1,14 +1,14 @@
{
- "licenseKey": "openfin-demo-license-key",
- "runtime": {
- "version": "36.122.80.10",
- "arguments": "--v=1"
- },
- "startup_app": {
- "name": "issue-commands-to-platform",
- "uuid": "issue-commands-to-platform",
- "url": "http://localhost:5050/html/window.html",
- "autoShow": true,
- "icon": "http://localhost:5050/favicon.ico"
- }
-}
\ No newline at end of file
+ "licenseKey": "openfin-demo-license-key",
+ "runtime": {
+ "version": "36.122.80.11",
+ "arguments": "--v=1"
+ },
+ "startup_app": {
+ "name": "issue-commands-to-platform",
+ "uuid": "issue-commands-to-platform",
+ "url": "http://localhost:5050/html/window.html",
+ "autoShow": true,
+ "icon": "http://localhost:5050/favicon.ico"
+ }
+}
diff --git a/how-to/use-channel-api/issue-commands-to-a-platform/public/platform.fin.json b/how-to/use-channel-api/issue-commands-to-a-platform/public/platform.fin.json
index bf4a9d6a..f007f255 100644
--- a/how-to/use-channel-api/issue-commands-to-a-platform/public/platform.fin.json
+++ b/how-to/use-channel-api/issue-commands-to-a-platform/public/platform.fin.json
@@ -1,12 +1,12 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "how-to-use-channel-api-issue-commands-to-a-platform",
- "autoShow": true,
- "providerUrl": "http://localhost:5050/html/provider.html",
- "icon": "http://localhost:5050/favicon.ico"
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "how-to-use-channel-api-issue-commands-to-a-platform",
+ "autoShow": true,
+ "providerUrl": "http://localhost:5050/html/provider.html",
+ "icon": "http://localhost:5050/favicon.ico"
+ }
+}
diff --git a/how-to/use-channel-api/issue-commands-to-a-platform/scripts/launch.mjs b/how-to/use-channel-api/issue-commands-to-a-platform/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-channel-api/issue-commands-to-a-platform/scripts/launch.mjs
+++ b/how-to/use-channel-api/issue-commands-to-a-platform/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-content-creation-rules/package.json b/how-to/use-content-creation-rules/package.json
index f8fe2c1e..fd1516f0 100644
--- a/how-to/use-content-creation-rules/package.json
+++ b/how-to/use-content-creation-rules/package.json
@@ -1,24 +1,24 @@
{
- "name": "use-content-creation-rules",
- "version": "0.0.1",
- "description": "How to use content creation rules.",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../ && npm install && cd how-to/use-content-creation-rules && npm run build"
- },
- "author": "@adam-saland",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "use-content-creation-rules",
+ "version": "36.80.11",
+ "description": "How to use content creation rules.",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../ && npm install && cd how-to/use-content-creation-rules && npm run build"
+ },
+ "author": "@adam-saland",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-content-creation-rules/public/manifest.fin.json b/how-to/use-content-creation-rules/public/manifest.fin.json
index f48ecf5e..97f85c8b 100644
--- a/how-to/use-content-creation-rules/public/manifest.fin.json
+++ b/how-to/use-content-creation-rules/public/manifest.fin.json
@@ -1,107 +1,95 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "shortcut": {
- "company": "OpenFin",
- "description": "Content Creation Rules",
- "icon": "http://localhost:5050/favicon.ico",
- "name": "Content Creation Rules"
- },
- "platform": {
- "uuid": "use-content-creation-rules",
- "name": "use-content-creation-rules",
- "icon": "http://localhost:5050/favicon.ico",
- "autoShow": false,
- "providerUrl": "http://localhost:5050/html/platform-provider.html",
- "waitForPageLoad": false,
- "defaultWindowOptions": {
- "waitForPageLoad": false,
- "url": "http://localhost:5050/html/default-platform-window.html",
- "icon": "http://localhost:5050/favicon.ico",
- "contextMenu": true,
- "defaultWidth": 600,
- "defaultHeight": 600,
- "defaultLeft": 0,
- "defaultTop": 0,
- "saveWindowState": false,
- "backgroundThrottling": true,
- "minHeight": 445,
- "minWidth": 308
- },
- "defaultViewOptions": {
- "contentCreation": {
- "rules": [
- {
- "behavior": "view",
- "match": [
- "*://*.google.com/*"
- ]
- },
- {
- "behavior": "view",
- "match": [
- "*://*.examples.com/category/business/*"
- ]
- },
- {
- "behavior": "window",
- "match": [
- "*://*.bing.com/*"
- ]
- },
- {
- "behavior": "window",
- "match": [
- "*://*.examples.com/category/education/*"
- ]
- },
- {
- "behavior": "browser",
- "match": [
- "*://*.microsoft.com/*"
- ]
- },
- {
- "behavior": "block",
- "match": [
- "*://*.apple.com/*"
- ]
- }
- ]
- }
- },
- "commands": [
- {
- "command": "stack.nextTab",
- "keys": "Ctrl+Tab"
- }
- ]
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "name": "component_A1",
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "shortcut": {
+ "company": "OpenFin",
+ "description": "Content Creation Rules",
+ "icon": "http://localhost:5050/favicon.ico",
+ "name": "Content Creation Rules"
+ },
+ "platform": {
+ "uuid": "use-content-creation-rules",
+ "name": "use-content-creation-rules",
+ "icon": "http://localhost:5050/favicon.ico",
+ "autoShow": false,
+ "providerUrl": "http://localhost:5050/html/platform-provider.html",
+ "waitForPageLoad": false,
+ "defaultWindowOptions": {
+ "waitForPageLoad": false,
+ "url": "http://localhost:5050/html/default-platform-window.html",
+ "icon": "http://localhost:5050/favicon.ico",
+ "contextMenu": true,
+ "defaultWidth": 600,
+ "defaultHeight": 600,
+ "defaultLeft": 0,
+ "defaultTop": 0,
+ "saveWindowState": false,
+ "backgroundThrottling": true,
+ "minHeight": 445,
+ "minWidth": 308
+ },
+ "defaultViewOptions": {
+ "contentCreation": {
+ "rules": [
+ {
+ "behavior": "view",
+ "match": ["*://*.google.com/*"]
+ },
+ {
+ "behavior": "view",
+ "match": ["*://*.examples.com/category/business/*"]
+ },
+ {
+ "behavior": "window",
+ "match": ["*://*.bing.com/*"]
+ },
+ {
+ "behavior": "window",
+ "match": ["*://*.examples.com/category/education/*"]
+ },
+ {
+ "behavior": "browser",
+ "match": ["*://*.microsoft.com/*"]
+ },
+ {
+ "behavior": "block",
+ "match": ["*://*.apple.com/*"]
+ }
+ ]
+ }
+ },
+ "commands": [
+ {
+ "command": "stack.nextTab",
+ "keys": "Ctrl+Tab"
+ }
+ ]
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "name": "component_A1",
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-content-creation-rules/scripts/launch.mjs b/how-to/use-content-creation-rules/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-content-creation-rules/scripts/launch.mjs
+++ b/how-to/use-content-creation-rules/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-dynamic-manifest/basic/package.json b/how-to/use-dynamic-manifest/basic/package.json
index 9b5742f7..e1560d20 100644
--- a/how-to/use-dynamic-manifest/basic/package.json
+++ b/how-to/use-dynamic-manifest/basic/package.json
@@ -1,28 +1,28 @@
{
- "name": "use-dynamic-manifest-basic",
- "version": "0.0.1",
- "description": "A basic demonstration of how to use dynamic manifest",
- "main": "index.js",
- "scripts": {
- "build": "npm run build-server",
- "build-server": "tsc --project ./server",
- "start": "npm run server",
- "server": "node ./server/build/index.js",
- "client": "node ./scripts/launch.mjs http://localhost:5050/manifest?env=dev",
- "dev": "node ./scripts/launch.mjs http://localhost:5050/manifest?env=dev",
- "staging": "node ./scripts/launch.mjs http://localhost:5050/manifest?env=staging",
- "kill": "npm --prefix ../../common/ run kill",
- "setup": "cd ../../../ && npm install && cd how-to/use-dynamic-manifest/basic && npm run build"
- },
- "author": "pj.singh@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "express": "^4.18.2",
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "use-dynamic-manifest-basic",
+ "version": "36.80.11",
+ "description": "A basic demonstration of how to use dynamic manifest",
+ "main": "index.js",
+ "scripts": {
+ "build": "npm run build-server",
+ "build-server": "tsc --project ./server",
+ "start": "npm run server",
+ "server": "node ./server/build/index.js",
+ "client": "node ./scripts/launch.mjs http://localhost:5050/manifest?env=dev",
+ "dev": "node ./scripts/launch.mjs http://localhost:5050/manifest?env=dev",
+ "staging": "node ./scripts/launch.mjs http://localhost:5050/manifest?env=staging",
+ "kill": "npm --prefix ../../common/ run kill",
+ "setup": "cd ../../../ && npm install && cd how-to/use-dynamic-manifest/basic && npm run build"
+ },
+ "author": "pj.singh@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "express": "^4.19.2",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-dynamic-manifest/basic/scripts/launch.mjs b/how-to/use-dynamic-manifest/basic/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-dynamic-manifest/basic/scripts/launch.mjs
+++ b/how-to/use-dynamic-manifest/basic/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-interop/README.md b/how-to/use-interop/README.md
index 36687ac6..953c875f 100644
--- a/how-to/use-interop/README.md
+++ b/how-to/use-interop/README.md
@@ -8,9 +8,10 @@ This repository contains examples showing how to use the Interop API across your
### Examples
-| Example | Description |
-| ----------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
-| [How To - Setup Cross-Platform Interop](./setup-multi-platform-interop) | How to seamlessly connect to another Interop Broker using Platform Overrides |
+| Example | Description |
+| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
+| [How To - Setup Cross-Platform Interop](./setup-multi-platform-interop) | How to seamlessly connect to another Interop Broker using Platform Overrides |
+| [How To - Use Cloud Interop](./cloud-interop) | How to seamlessly connect to another Interop Broker using our cloud interop solution |
## Before you get started
diff --git a/how-to/use-interop/cloud-interop/README.md b/how-to/use-interop/cloud-interop/README.md
new file mode 100644
index 00000000..5fc7acd1
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/README.md
@@ -0,0 +1,92 @@
+# Use Cross Platform Interop
+
+This repository demonstrates how to use OpenFin's interop overrides to enable context sharing from two different Platform Applications using our [@openfin/cloud-interop](https://www.npmjs.com/package/@openfin/cloud-interop) npm package and our cloud offering.
+
+Before diving in we recommend taking some time familiarize yourself with the concepts and terms found in the [interoperability overview](https://developers.openfin.co/of-docs/docs/interoperability-overview) section of our documentation.
+
+## How it Works
+
+The interop object, made available through OpenFin views and windows, is programmatically accessible through the concept of platform provider overrides. A platform provider override enables a developer to implement additional logic from objects defined on an instance of an OpenFin window or view entity. In this case specifically, we will be focusing on the `interopOverride`. We are creating an interop override by providing configuration to the [@openfin/cloud-interop](https://www.npmjs.com/package/@openfin/cloud-interop) cloudInteropOverride function.
+
+We read cloud interop settings from the custom settings section of [manifest.fin.json](./public/manifest.fin.json) and [second.manifest.fin.json](./public/second.manifest.fin.json). You will need to contact OpenFin to get the required settings for your PoC and then you will need to enable this functionality.
+
+```json
+"customSettings": {
+ "cloudInteropProvider": {
+ "enabled": false,
+ "connectParams": {
+ "url": "",
+ "userId": "",
+ "password": "",
+ "platformId": "cloud-interop",
+ "sourceId": "platform1",
+ "sourceDisplayName": "Platform 1"
+ }
+ }
+}
+```
+
+We have created a custom window template to host the views so that we can include a context group picker and the platform's title. The logic for this can be found here: [window.ts](./client/src/window.ts) and the html can be found here: [window.html](./public/html/window.html).
+
+The views point to FDC3 and Interop urls that we have created to help developers learn more about interop.
+
+## Get Started
+
+Follow the instructions below to get up and running.
+
+### Set up the project
+
+1. Install dependencies and do the initial build. Note that these examples assume you are in the sub-directory for the example.
+
+```shell
+npm run setup
+```
+
+2. Build the project.
+
+```shell
+npm run build
+```
+
+3. Start the test server in a new window.
+
+```shell
+npm run start
+```
+
+4. Start the first Platform application.
+
+```shell
+npm run client
+```
+
+5. Start the second Platform application.
+
+```shell
+npm run secondclient
+```
+
+### Use the project interface
+
+From a single Platform: add two views to the same window's context group, and sharing context between the two views.
+
+1. Add each view to the same context group.
+2. Submit a context from the first view.
+3. Submit a different context from second view.
+
+![single platform context sharing](../assets/single-platform-context-sharing.gif)
+
+From two different Platforms: add a view from a window's context group in platform-1 and a view from a window's context group in platform-2 to a connected context group based on a shared or common context group between each Platform. Once connected we can share context between two different platforms.
+
+1. Add a view from platform-1 the window's context group in platform-1.
+2. Add a view from platform-2 to the same context group selected in platform-1.
+3. Submit a context from the first view.
+4. Submit a different context from second view.
+
+> NOTE: the logic for creating a cloud interop override instance and passing it to the platform [client/src/provider.ts](./client/src/provider.ts)
+
+![multi platform context sharing](../assets/multi-platform-context-sharing.gif)
+
+### A note about this example
+
+This is an example of how to use OpenFin APIs to configure OpenFin Container. Its purpose is to provide an example and suggestions. **DO NOT** assume that it contains production-ready code. Please use this as a guide and provide feedback. Thanks!
diff --git a/how-to/use-interop/cloud-interop/client/src/provider.ts b/how-to/use-interop/cloud-interop/client/src/provider.ts
new file mode 100644
index 00000000..77b15b86
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/client/src/provider.ts
@@ -0,0 +1,16 @@
+import { cloudInteropOverride } from "@openfin/cloud-interop";
+import type OpenFin from "@openfin/core";
+import { getManifestCustomSettings } from "./settings";
+
+window.addEventListener("DOMContentLoaded", async () => {
+ const customSettings = await getManifestCustomSettings();
+ const interopOverrides = [];
+
+ if (customSettings?.cloudInteropProvider?.enabled) {
+ const initializedCloudInteropOverride = (await cloudInteropOverride(
+ customSettings?.cloudInteropProvider?.connectParams
+ )) as unknown as OpenFin.ConstructorOverride;
+ interopOverrides.push(initializedCloudInteropOverride);
+ }
+ fin.Platform.init({ interopOverride: interopOverrides }).catch((error) => console.error(error));
+});
diff --git a/how-to/use-interop/cloud-interop/client/src/settings.ts b/how-to/use-interop/cloud-interop/client/src/settings.ts
new file mode 100644
index 00000000..d09093bb
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/client/src/settings.ts
@@ -0,0 +1,12 @@
+import type OpenFin from "@openfin/core";
+import type { CustomSettings } from "./shapes";
+
+/**
+ * Load the customSettings section from the application manifest.
+ * @returns The custom settings from the manifest.
+ */
+export async function getManifestCustomSettings(): Promise {
+ const app = await fin.Application.getCurrent();
+ const manifest: OpenFin.Manifest & { customSettings?: CustomSettings } = await app.getManifest();
+ return manifest.customSettings;
+}
diff --git a/how-to/use-interop/cloud-interop/client/src/shapes.ts b/how-to/use-interop/cloud-interop/client/src/shapes.ts
new file mode 100644
index 00000000..77646b12
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/client/src/shapes.ts
@@ -0,0 +1,26 @@
+import type { CloudInteropOverrideParams } from "@openfin/cloud-interop";
+
+/**
+ * Settings for the cloud interop provider.
+ */
+export interface CloudInteropProviderSettings {
+ /**
+ * Is the cloud interop provider enabled
+ */
+ enabled: boolean;
+
+ /**
+ * The connect parameters for the cloud interop provider.
+ */
+ connectParams: CloudInteropOverrideParams;
+}
+
+/**
+ * Custom settings for the application
+ */
+export interface CustomSettings {
+ /**
+ * cloud related config
+ */
+ cloudInteropProvider: CloudInteropProviderSettings;
+}
diff --git a/how-to/use-interop/cloud-interop/client/src/window.ts b/how-to/use-interop/cloud-interop/client/src/window.ts
new file mode 100644
index 00000000..5e3db08d
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/client/src/window.ts
@@ -0,0 +1,118 @@
+import type OpenFin from "@openfin/core";
+
+export const CONTAINER_ID = "layout-container";
+const openfinWindow: OpenFin.Window = fin.Window.getCurrentSync();
+const openfinApplication: OpenFin.Application = fin.Application.getCurrentSync();
+
+let lastFocusedView: OpenFin.Identity;
+
+openfinApplication
+ .on("view-focused", (viewEvent): void => {
+ lastFocusedView = viewEvent.viewIdentity;
+ })
+ .catch((error) => console.error(error));
+
+window.addEventListener("DOMContentLoaded", async () => {
+ await fin.Platform.Layout.init({ containerId: CONTAINER_ID });
+ await setupTitleBar();
+});
+
+/**
+ * Setup the content for the title bar.
+ */
+async function setupTitleBar(): Promise {
+ const title = document.querySelector("#title");
+ const minBtn = document.querySelector("#minimize-button");
+ const maxBtn = document.querySelector("#expand-button");
+ const closeBtn = document.querySelector("#close-button");
+
+ if (title && minBtn && maxBtn && closeBtn) {
+ title.innerHTML = fin.me.identity.uuid;
+
+ minBtn.addEventListener("click", minimizeWindow);
+ maxBtn.addEventListener("click", maxOrRestore);
+ closeBtn.addEventListener("click", closeWindow);
+ }
+
+ await addContextGroupButtons();
+}
+
+/**
+ * Joins a context group by passing in the top-level variable `lastFocusedView` as the `target` parameter of the `joinContextGroup` function.
+ * @param event - DOM click event that is passed in to the button click event from `addContextGroupButtons` local `newButton` variable
+ */
+async function changeContextGroup(event: Event): Promise {
+ const selectedColorElement: HTMLElement = event.target as HTMLElement;
+ const color: string = selectedColorElement.title;
+ await fin.me.interop.joinContextGroup(color, lastFocusedView);
+ const contextGroups: OpenFin.ContextGroupInfo[] = await fin.me.interop.getContextGroups();
+ const focusedTab = document.querySelector(`#tab-${lastFocusedView.name}`);
+ if (focusedTab) {
+ focusedTab.classList.remove(
+ ...contextGroups.map(
+ ({ displayMetadata }: OpenFin.ContextGroupInfo) => `${displayMetadata?.name}-channel`
+ )
+ );
+ }
+ const focusedView = document.querySelector(`#tab-${lastFocusedView.name}`);
+ if (focusedView) {
+ focusedView.classList.add(`${color}-channel`);
+ }
+}
+
+/**
+ * Add the context group buttons.
+ * 1. Retrieves a Platform's interop context groups.
+ * 2. Iterates all context groups and creates a corresponding button per context group (color channel).
+ * 3. Adds a click listener to each button with the `changeContextGroup` function as the listener callback.
+ */
+async function addContextGroupButtons(): Promise {
+ const contextGroups: OpenFin.ContextGroupInfo[] = await fin.me.interop.getContextGroups();
+ const windowFrameStyleSheet: CSSStyleSheet = document.styleSheets[0];
+ const buttonsWrapper = document.querySelector("#buttons-wrapper");
+ if (buttonsWrapper) {
+ for (const systemChannel of contextGroups) {
+ const nm = systemChannel.displayMetadata?.name;
+ const col = systemChannel.displayMetadata?.color;
+ if (nm && col) {
+ windowFrameStyleSheet.insertRule(`.${nm}-channel { border-left: 2px solid ${col} !important;}`);
+ windowFrameStyleSheet.insertRule(`#${nm}-button:after { background-color: ${col}}`);
+ const newButton = document.createElement("div");
+ newButton.classList.add("button");
+ newButton.classList.add("channel-button");
+ newButton.id = `${nm}-button`;
+ newButton.title = nm;
+ newButton.addEventListener("click", changeContextGroup);
+ buttonsWrapper.prepend(newButton);
+ }
+ }
+ }
+}
+
+/**
+ * Maximize or restore the window.
+ * @returns Nothing.
+ */
+async function maxOrRestore(): Promise {
+ if ((await openfinWindow.getState()) === "normal") {
+ return openfinWindow.maximize();
+ }
+
+ return openfinWindow.restore();
+}
+
+/**
+ * Close the window.
+ * @returns Nothing.
+ */
+async function closeWindow(): Promise {
+ return openfinWindow.close();
+}
+
+/**
+ * Minimize the window.
+ * @returns Nothing.
+ */
+async function minimizeWindow(): Promise {
+ return openfinWindow.minimize();
+}
diff --git a/how-to/use-interop/cloud-interop/client/tsconfig.json b/how-to/use-interop/cloud-interop/client/tsconfig.json
new file mode 100644
index 00000000..0453c0cc
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/client/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "compilerOptions": {
+ "target": "es2021",
+ "module": "ES2020",
+ "sourceMap": true,
+ "rootDir": "./src",
+ "outDir": "build",
+ "skipLibCheck": true,
+ "strict": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "moduleResolution": "node",
+ "types": ["./types/fin"]
+ },
+ "include": ["./src/**/*.ts"]
+}
diff --git a/how-to/use-interop/cloud-interop/client/types/fin.d.ts b/how-to/use-interop/cloud-interop/client/types/fin.d.ts
new file mode 100644
index 00000000..8936d86c
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/client/types/fin.d.ts
@@ -0,0 +1,5 @@
+import type { fin as FinApi } from "@openfin/core";
+
+declare global {
+ const fin: typeof FinApi;
+}
diff --git a/how-to/use-interop/cloud-interop/client/webpack.config.js b/how-to/use-interop/cloud-interop/client/webpack.config.js
new file mode 100644
index 00000000..aa446cfe
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/client/webpack.config.js
@@ -0,0 +1,44 @@
+const path = require('path');
+
+module.exports = [
+ {
+ entry: './client/src/provider.ts',
+ devtool: 'inline-source-map',
+ module: {
+ rules: [
+ {
+ test: /\.tsx?$/,
+ use: 'ts-loader',
+ exclude: /node_modules/
+ }
+ ]
+ },
+ resolve: {
+ extensions: ['.tsx', '.ts', '.js']
+ },
+ output: {
+ filename: 'provider.bundle.js',
+ path: path.resolve(__dirname, '..', 'public', 'js')
+ }
+ },
+ {
+ entry: './client/src/window.ts',
+ devtool: 'inline-source-map',
+ module: {
+ rules: [
+ {
+ test: /\.tsx?$/,
+ use: 'ts-loader',
+ exclude: /node_modules/
+ }
+ ]
+ },
+ resolve: {
+ extensions: ['.tsx', '.ts', '.js']
+ },
+ output: {
+ filename: 'window.bundle.js',
+ path: path.resolve(__dirname, '..', 'public', 'js')
+ }
+ }
+];
diff --git a/how-to/use-interop/cloud-interop/package.json b/how-to/use-interop/cloud-interop/package.json
new file mode 100644
index 00000000..c9391b55
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "container-starter-use-interop--cloud-interop",
+ "version": "36.80.11",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "secondclient": "node ./scripts/launch.mjs http://localhost:5050/second.manifest.fin.json",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-interop/cloud-interop && npm run build"
+ },
+ "author": "adam.saland@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "dependencies": {
+ "@openfin/cloud-interop": "0.36.12"
+ },
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-interop/cloud-interop/public/common/images/icon-blue.png b/how-to/use-interop/cloud-interop/public/common/images/icon-blue.png
new file mode 100644
index 00000000..fc784502
Binary files /dev/null and b/how-to/use-interop/cloud-interop/public/common/images/icon-blue.png differ
diff --git a/how-to/use-interop/cloud-interop/public/common/style/app.css b/how-to/use-interop/cloud-interop/public/common/style/app.css
new file mode 100644
index 00000000..96c4673f
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/public/common/style/app.css
@@ -0,0 +1,929 @@
+@import url('https://fonts.googleapis.com/css2?family=Inter&display=swap');
+
+:root {
+ --brand-background: var(--theme-background-primary, #1e1f23);
+ --brand-border: var(--theme-background4, #2f3136);
+ --brand-primary: var(--theme-brand-primary, #0a76d3);
+ --brand-text: var(--theme-text-default, #ffffff);
+ --brand-text-secondary: var(--theme-text-help, #c9cbd2);
+ --brand-input-background: var(--theme-background5, #383a40);
+ --brand-input-border: var(--theme-background6, #53565f);
+ --brand-input-border-highlight: var(--theme-input-focused, #c9cbd2);
+ --brand-table-header: var(--theme-background1, #111214);
+ --brand-table-header-text: var(--theme-text-default, #ffffff);
+ --brand-table-row-even: var(--theme-background3, #24262b);
+ --brand-table-row-odd: var(--theme-background4, #2f3136);
+ --brand-error: var(--theme-status-critical, #be1d1f);
+ --brand-success: var(--theme-status-success, #35c759);
+
+ accent-color: var(--brand-primary);
+}
+
+.theme-light {
+ --brand-background: var(--theme-background-primary, #fafbfe);
+ --brand-border: var(--theme-background4, #eceef1);
+ --brand-primary: var(--theme-brand-primary, #0a76d3);
+ --brand-text: var(--theme-text-default, #111214);
+ --brand-text-secondary: var(--theme-text-help, #2f3136);
+ --brand-input-background: var(--theme-background5, #dddfe4);
+ --brand-input-border: var(--theme-background6, #c9cbd2);
+ --brand-input-border-highlight: var(--theme-input-focused, #c9cbd2);
+ --brand-table-header: var(--theme-background1, #ffffff);
+ --brand-table-header-text: var(--theme-text-default, #111214);
+ --brand-table-row-even: var(--theme-background3, #eceef1);
+ --brand-table-row-odd: var(--theme-background4, #c9cbd2);
+ --brand-error: var(--theme-status-critical, #be1d1f);
+ --brand-success: var(--theme-status-success, #35c759);
+}
+
+.primary {
+ color: var(--brand-primary);
+}
+
+.error {
+ color: var(--brand-error);
+}
+
+.success {
+ color: var(--brand-success);
+}
+
+::selection {
+ background-color: var(--brand-primary);
+}
+
+* {
+ font-family: Inter, 'Sans Serif', sans-serif;
+ box-sizing: border-box;
+}
+
+html,
+body {
+ height: 100%;
+}
+
+body {
+ display: flex;
+ justify-content: stretch;
+ align-items: stretch;
+ overflow: hidden;
+ padding: 20px;
+ margin: 0;
+ background-color: var(--brand-background);
+ color: var(--brand-text);
+}
+
+body.border {
+ padding: 20px;
+ margin: 0;
+ background-color: var(--brand-background);
+ color: var(--brand-text);
+ border: 1px solid #000000;
+ border-radius: 5px;
+ width: 99%;
+ height: 99%;
+}
+
+body.border-light {
+ border-color: var(--brand-input-border-highlight);
+}
+
+body.small {
+ padding: 15px;
+}
+
+h1 {
+ font-size: 24px;
+ font-weight: 700;
+ line-height: 1;
+ margin-block-start: 0;
+ margin-block-end: 0;
+}
+h1.tag {
+ font-size: 12px;
+ font-weight: normal;
+ margin-top: 5px;
+ color: var(--brand-text-secondary);
+}
+
+h2 {
+ font-size: 20px;
+ font-weight: 700;
+ line-height: 1;
+ margin-block-start: 0;
+ margin-block-end: 0;
+}
+
+h3 {
+ font-size: 16px;
+ font-weight: 700;
+ line-height: 1;
+ margin-block-start: 0;
+ margin-block-end: 0;
+}
+
+h4 {
+ font-size: 14px;
+ font-weight: 700;
+ line-height: 1;
+ margin-block-start: 0;
+ margin-block-end: 0;
+}
+
+h5 {
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 1;
+ margin-block-start: 0;
+ margin-block-end: 0;
+}
+
+p {
+ color: var(--brand-text-secondary);
+ font-size: 12px;
+ margin-block-start: 0;
+ margin-block-end: 0;
+}
+
+::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+}
+::-webkit-scrollbar-track {
+ background: var(--brand-input-background);
+ border-radius: 5px;
+}
+::-webkit-scrollbar-thumb {
+ background: var(--brand-border);
+ border-radius: 5px;
+ border: 1px solid var(--brand-input-border);
+}
+::-webkit-scrollbar-thumb:hover {
+ border: 1px solid var(--brand-input-border-highlight);
+}
+
+main {
+ min-height: 100px;
+}
+
+a {
+ color: var(--brand-primary);
+ font-size: 12px;
+ font-weight: bold;
+ outline: none;
+ text-decoration: none;
+}
+
+a:hover,
+a:focus {
+ text-decoration: underline;
+}
+
+button,
+input[type='button'],
+::-webkit-file-upload-button,
+a.button,
+footer a {
+ background-color: var(--brand-primary);
+ border: 2px solid var(--brand-primary);
+ color: #ffffff;
+ border-radius: 5px;
+ padding: 8px 20px;
+ text-align: left;
+ cursor: pointer;
+ font-size: 12px;
+ font-weight: bold;
+ text-decoration: none;
+ outline: 0;
+ white-space: nowrap;
+ transition-property: background-color, color, opacity;
+ transition-duration: 200ms;
+ transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+a.button:hover,
+footer a:hover {
+ text-decoration: none;
+}
+
+a.button:focus,
+a.button:hover,
+input[type='button']:focus,
+input[type='button']:hover,
+input[type='file']:focus::-webkit-file-upload-button,
+input[type='file']:hover::-webkit-file-upload-button,
+::-webkit-file-upload-button:hover,
+footer a:focus,
+footer a:not(:disabled):hover,
+button:not(:disabled):focus,
+button:not(:disabled):hover {
+ background-image: linear-gradient(rgba(255, 255, 255, 0.1) 0 0);
+}
+
+button.image {
+ width: 40px;
+ height: 40px;
+ padding: 0px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+button.image > img {
+ width: 32px;
+ height: 32px;
+}
+button.secondary {
+ background-color: var(--brand-input-background);
+ color: var(--brand-text);
+ border-color: var(--brand-input-border);
+}
+button.secondary:not(:disabled):hover {
+ background-color: var(--brand-input-background);
+}
+button.plain {
+ border-color: transparent;
+ background-color: transparent;
+ color: var(--brand-primary);
+}
+button.plain:not(:disabled):not(:read-only):hover {
+ border-color: transparent;
+ background-color: transparent;
+}
+
+button.small,
+::-webkit-file-upload-button,
+td button {
+ padding: 5px 10px;
+ font-size: 10px;
+}
+td button.plain {
+ width: auto;
+ height: auto;
+}
+
+button.center {
+ text-align: center;
+}
+
+::-webkit-file-upload-button {
+ margin-right: 10px;
+}
+
+pre {
+ margin: 0;
+ padding: 5px;
+ border-radius: 5px;
+ font-size: 12px;
+ font-family: 'Courier New', Courier, monospace;
+ white-space: pre-wrap;
+ border: 1px solid var(--brand-input-border);
+ background-color: var(--brand-input-background);
+ width: 100%;
+ min-height: 20px;
+}
+
+header {
+ padding-bottom: 10px;
+ border-bottom: 2px solid var(--brand-border);
+}
+
+footer {
+ padding-top: 10px;
+ border-top: 1px solid var(--brand-border);
+}
+
+fieldset {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ border: 0;
+ padding: 0;
+ font-size: 12px;
+ gap: 5px;
+}
+
+fieldset.row {
+ flex-direction: row;
+ align-items: center;
+ gap: 10px;
+}
+
+label {
+ font-size: 12px;
+ font-weight: 600;
+}
+
+select,
+input[type='text'],
+input[type='url'],
+input[type='email'],
+input[type='password'],
+input[type='file'],
+input[type='number'],
+input[type='date'],
+input[type='time'],
+input[type='datetime-local'],
+input[type='month'],
+input[type='week'],
+input[type='color'],
+textarea {
+ border-radius: 5px;
+ border: 1px solid var(--brand-input-border);
+ background-color: var(--brand-input-background);
+ font-size: 12px;
+ outline: 0;
+ color: var(--brand-text);
+ width: 50%;
+ min-width: 200px;
+ padding: 8px 12px;
+ box-shadow: rgb(0 0 0 / 25%) 0px 4px 4px;
+ transition-property: background-color, color, opacity;
+ transition-duration: 200ms;
+ transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+textarea {
+ min-height: 64px;
+ resize: none;
+}
+
+textarea.resizable {
+ resize: both;
+}
+
+select.full,
+input[type='text'].full,
+input[type='email'].full,
+input[type='url'].full,
+input[type='password'].full,
+input[type='file'].full,
+input[type='number'].full,
+input[type='date'].full,
+input[type='time'].full,
+input[type='datetime-local'].full,
+input[type='month'].full,
+input[type='week'].full,
+input[type='range'].full,
+textarea.full {
+ width: 95%;
+}
+
+select:focus,
+select:not(:disabled):hover,
+input[type='text']:not(:read-only):focus,
+input[type='text']:not(:disabled):not(:read-only):hover,
+input[type='email']:not(:read-only):focus,
+input[type='email']:not(:disabled):not(:read-only):hover,
+input[type='url']:not(:read-only):focus,
+input[type='url']:not(:disabled):not(:read-only):hover,
+input[type='password']:not(:read-only):focus,
+input[type='password']:not(:disabled):not(:read-only):hover,
+input[type='file']:not(:read-only):focus,
+input[type='file']:not(:disabled):not(:read-only):hover,
+input[type='number']:not(:read-only):focus,
+input[type='number']:not(:disabled):not(:read-only):hover,
+input[type='date']:not(:read-only):focus,
+input[type='date']:not(:disabled):not(:read-only):hover,
+input[type='time']:not(:read-only):focus,
+input[type='time']:not(:disabled):not(:read-only):hover,
+input[type='datetime-local']:not(:read-only):focus,
+input[type='datetime-local']:not(:disabled):not(:read-only):hover,
+input[type='month']:not(:read-only):focus,
+input[type='month']:not(:disabled):not(:read-only):hover,
+input[type='week']:not(:read-only):focus,
+input[type='week']:not(:disabled):not(:read-only):hover,
+textarea:not(:read-only):focus,
+textarea:not(:disabled):not(:read-only):hover,
+input[type='checkbox']:focus,
+input[type='checkbox']:not(:disabled):hover,
+input[type='radio']:focus,
+input[type='radio']:not(:disabled):hover,
+input[type='color']:focus,
+input[type='color']:not(:disabled):hover {
+ border-color: var(--brand-input-border-highlight);
+}
+
+input[type='date'],
+input[type='time'],
+input[type='datetime-local'],
+input[type='month'],
+input[type='week'] {
+ width: 200px;
+ min-width: auto;
+}
+
+.theme-dark ::-webkit-calendar-picker-indicator {
+ filter: invert(1);
+}
+
+::-webkit-datetime-edit-day-field:focus,
+::-webkit-datetime-edit-month-field:focus,
+::-webkit-datetime-edit-year-field:focus,
+::-webkit-datetime-edit-hour-field:focus,
+::-webkit-datetime-edit-minute-field:focus,
+::-webkit-datetime-edit-week-field:focus {
+ background-color: var(--brand-primary);
+ color: #ffffff;
+}
+
+::-webkit-outer-spin-button,
+::-webkit-inner-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+}
+
+input[type='file'] {
+ padding: 4px 12px;
+}
+
+select {
+ appearance: none;
+}
+
+select:not([multiple]):not(:disabled) {
+ appearance: none;
+ background-image: url("data:image/svg+xml;utf8,");
+ background-repeat: no-repeat;
+ background-size: 12px;
+ background-position: calc(100% - 12px) 12px;
+ background-color: var(--brand-input-background);
+}
+
+.theme-dark select:not([multiple]):not(:disabled) {
+ background-image: url("data:image/svg+xml;utf8,");
+}
+
+option {
+ color: var(--brand-text);
+ padding: 6px;
+ margin-bottom: 1px;
+}
+
+option:hover {
+ background: var(--brand-input-border)
+ linear-gradient(0deg, var(--brand-input-border) 0%, var(--brand-input-border) 100%);
+ border-radius: 5px;
+}
+
+option:checked {
+ background: var(--brand-primary) linear-gradient(0deg, var(--brand-primary) 0%, var(--brand-primary) 100%);
+ color: #ffffff;
+ border-radius: 5px;
+}
+
+input[type='range'] {
+ -webkit-appearance: none;
+ height: 20px;
+ width: 200px;
+ background: transparent;
+ outline: none;
+}
+
+input[type='range']::-webkit-slider-runnable-track {
+ -webkit-appearance: none;
+ height: 10px;
+ border: 1px solid var(--brand-input-border);
+ background-color: var(--brand-input-background);
+ border-radius: 5px;
+ box-shadow: rgb(0 0 0 / 25%) 0px 4px 4px;
+ transition-property: background-color, color, opacity;
+ transition-duration: 200ms;
+ transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+input[type='range']::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ height: 20px;
+ width: 20px;
+ border-radius: 5px;
+ margin-top: -6px;
+ border: 1px solid var(--brand-input-border);
+ background: var(--brand-input-background);
+ cursor: pointer;
+ box-shadow: rgb(0 0 0 / 25%) 0px 4px 4px;
+ transition-property: background-color, color, opacity;
+ transition-duration: 200ms;
+ transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+input[type='range']:hover::-webkit-slider-runnable-track,
+input[type='range']:focus::-webkit-slider-runnable-track,
+input[type='range']:hover::-webkit-slider-thumb,
+input[type='range']:focus::-webkit-slider-thumb {
+ border-color: var(--brand-input-border-highlight);
+}
+
+button:disabled,
+select:disabled,
+input:disabled,
+textarea:disabled,
+footer a:disabled,
+a[disabled] {
+ opacity: 0.3;
+ cursor: default;
+ pointer-events: none;
+ resize: none;
+}
+
+select:invalid,
+input:invalid,
+textarea:invalid {
+ border-color: var(--brand-error);
+}
+
+fieldset > span {
+ margin-left: 10px;
+ width: 50px;
+}
+
+input[type='text'].large,
+input[type='password'].large,
+input[type='file'].large,
+input[type='email'].large,
+input[type='url'].large,
+input[type='date'].large,
+input[type='time'].large {
+ font-size: 20px;
+ padding: 20px 10px;
+}
+
+input[type='text'].center,
+input[type='password'].center,
+input[type='email'].center,
+input[type='url'].center {
+ text-align: center;
+}
+
+input[type='checkbox'],
+input[type='radio'] {
+ appearance: none;
+ border: 1px solid var(--brand-input-border);
+ background-color: var(--brand-input-background);
+ color: var(--brand-input-text);
+ outline: 0;
+ width: 20px;
+ height: 20px;
+ margin: 2px;
+ box-shadow: rgb(0 0 0 / 25%) 0px 4px 4px;
+ transition-property: background-color, color, opacity;
+ transition-duration: 200ms;
+ transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+input[type='radio'] {
+ border-radius: 50%;
+}
+
+input[type='checkbox']::before,
+input[type='radio']::before {
+ content: '';
+ display: none;
+ width: 16px;
+ height: 16px;
+ margin: 1px;
+ background-color: var(--brand-text);
+ opacity: 0.8;
+}
+
+input[type='checkbox']:checked::before {
+ display: inline-block;
+ clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
+}
+input[type='radio']:checked::before {
+ display: inline-block;
+ clip-path: circle(35% at 52% 50%);
+}
+
+input[type='checkbox'] + label,
+input[type='radio'] + label {
+ white-space: nowrap;
+}
+
+input[type='color'] {
+ width: 100px;
+ min-width: auto;
+ padding: 5px;
+}
+
+input[type='color']::-webkit-color-swatch-wrapper {
+ padding: 0;
+ background: transparent;
+}
+
+input[type='color']::-webkit-color-swatch {
+ border-radius: 5px;
+ border: none;
+}
+
+/* This disables the auto zoom on iDevices */
+@supports (-webkit-touch-callout: none) {
+ select,
+ input[type='text'],
+ input[type='url'],
+ input[type='email'],
+ input[type='password'],
+ input[type='file'],
+ input[type='number'],
+ input[type='date'],
+ input[type='time'],
+ input[type='datetime-local'],
+ input[type='month'],
+ input[type='week'],
+ input[type='color'],
+ textarea {
+ font-size: 16px;
+ }
+}
+
+hr {
+ width: 100%;
+ border: 0;
+ border-bottom: 1px solid var(--brand-input-border);
+}
+
+ul {
+ font-size: 12px;
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ list-style-type: none;
+}
+
+li {
+ font-size: 12px;
+ position: relative;
+ padding: 0 0 10px;
+}
+
+li::before {
+ content: ' ';
+ display: inline-block;
+ background-color: var(--brand-primary);
+ width: 8px;
+ height: 8px;
+ border-radius: 2px;
+ position: absolute;
+ left: -13px;
+ top: 3px;
+}
+
+em {
+ font-size: 12px;
+}
+
+.row {
+ display: flex;
+ flex-direction: row;
+}
+
+.col {
+ display: flex;
+ flex-direction: column;
+}
+
+.fill {
+ flex: 1;
+}
+
+.fill_2 {
+ flex: 2;
+}
+
+.scroll {
+ overflow: auto;
+}
+
+.scroll-vertical {
+ overflow-y: auto;
+}
+
+.scroll-horizontal {
+ overflow-x: auto;
+}
+
+.overflow-hidden {
+ overflow: hidden;
+}
+
+.middle {
+ align-items: center;
+}
+
+.bottom {
+ align-items: flex-end;
+}
+
+.spread {
+ justify-content: space-between;
+}
+
+.around {
+ justify-content: space-around;
+}
+
+.left {
+ display: flex;
+ align-items: flex-start;
+}
+
+.center {
+ display: flex;
+ justify-content: center;
+}
+
+.right {
+ display: flex;
+ justify-content: flex-end;
+}
+
+.wrap {
+ flex-wrap: wrap;
+}
+
+.gap5 {
+ gap: 5px;
+}
+
+.gap10 {
+ gap: 10px;
+}
+
+.gap20 {
+ gap: 20px;
+}
+
+.gap40 {
+ gap: 40px;
+}
+
+.pad10 {
+ padding: 10px;
+}
+
+.pad20 {
+ padding: 20px;
+}
+
+.pad0 {
+ padding: 0px;
+}
+
+.table {
+ display: flex;
+ flex: 1;
+ flex-direction: column;
+ font-size: 10px;
+}
+
+table {
+ width: 100%;
+ font-size: 10px;
+ border: 0;
+ border-collapse: collapse;
+}
+
+table,
+.table {
+ border: var(--brand-input-border) 1px solid;
+}
+
+.table-row {
+ display: flex;
+ flex: 1;
+ flex-direction: row;
+}
+
+table > tr:first-child,
+thead > tr,
+.table-row.header {
+ background-color: var(--brand-table-header);
+}
+
+table > tr:nth-child(even),
+.table > div:nth-child(even),
+tbody > tr:nth-child(odd) {
+ background-color: var(--brand-table-row-even);
+}
+
+table > tr:nth-child(odd),
+.table > div:not(:first-child):nth-child(odd),
+tbody > tr:nth-child(even) {
+ background-color: var(--brand-table-row-odd);
+}
+
+th,
+.table-row.header > div {
+ color: var(--brand-table-header-text);
+ font-weight: bold;
+ padding: 10px 5px;
+ text-align: left;
+ word-break: break-word;
+}
+
+.table-row > div {
+ flex: 1;
+}
+
+td,
+.table-row:not(.header) > div {
+ padding: 5px;
+ word-break: break-word;
+ color: var(--brand-text);
+}
+
+.table-row:not(.header) > div {
+ display: flex;
+ align-items: center;
+}
+
+@media screen and (max-width: 736px) {
+ .table-row {
+ flex-direction: column;
+ }
+
+ .table-row.header {
+ display: none;
+ }
+
+ .table-row:not(.header) > div {
+ display: flex;
+ align-items: center;
+ flex: 1;
+ gap: 10px;
+ }
+
+ .table-row:not(.header) > div:before {
+ content: attr(data-name);
+ font-weight: bold;
+ white-space: nowrap;
+ width: 20%;
+ }
+
+ .table-row > div.right {
+ justify-content: flex-start;
+ }
+
+ .table-row > div.center {
+ justify-content: flex-start;
+ }
+}
+
+.border {
+ border: 1px solid var(--brand-input-border);
+ border-radius: 5px;
+}
+
+.drag {
+ user-select: none;
+ -webkit-app-region: drag;
+}
+
+.no-drag {
+ -webkit-app-region: none;
+}
+
+.form {
+ background-color: var(--brand-table-header);
+ border: var(--brand-input-border) 1px solid;
+ border-radius: 5px;
+ padding: 10px;
+ font-size: 12px;
+}
+
+.form-group {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ background-color: var(--brand-table-header);
+ border: var(--brand-input-border) 1px solid;
+ border-radius: 5px;
+ padding: 10px;
+}
+
+.form-group.large {
+ gap: 20px;
+}
+
+.width-full {
+ width: 100%;
+}
+
+.max-width-full {
+ max-width: 100%;
+}
+
+.width-responsive {
+ max-width: fit-content;
+}
+
+.hidden {
+ display: none;
+}
+
+.pointer {
+ cursor: pointer;
+}
+
+.nowrap {
+ white-space: nowrap;
+}
diff --git a/how-to/use-interop/cloud-interop/public/favicon.ico b/how-to/use-interop/cloud-interop/public/favicon.ico
new file mode 100644
index 00000000..0b6e09e6
Binary files /dev/null and b/how-to/use-interop/cloud-interop/public/favicon.ico differ
diff --git a/how-to/use-interop/cloud-interop/public/html/provider.html b/how-to/use-interop/cloud-interop/public/html/provider.html
new file mode 100644
index 00000000..91029415
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/public/html/provider.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+ OpenFin Template
+
+
+
+
+
+
+
+
Platform Provider
+
+
+
diff --git a/how-to/use-interop/cloud-interop/public/html/window.html b/how-to/use-interop/cloud-interop/public/html/window.html
new file mode 100644
index 00000000..4a3e7430
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/public/html/window.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+ Interop
+
+
+
+
+
+
+
+
diff --git a/how-to/use-interop/cloud-interop/public/manifest.fin.json b/how-to/use-interop/cloud-interop/public/manifest.fin.json
new file mode 100644
index 00000000..d5268be7
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/public/manifest.fin.json
@@ -0,0 +1,65 @@
+{
+ "runtime": {
+ "arguments": "--v=1 --inspect --enable-mesh --security-realm=container-interop-use-cloud-platform1",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "platform-1",
+ "icon": "http://localhost:5050/favicon.ico",
+ "autoShow": false,
+ "providerUrl": "http://localhost:5050/html/provider.html",
+ "defaultWindowOptions": {
+ "url": "http://localhost:5050/html/window.html",
+ "contextMenu": true,
+ "defaultWidth": 1100,
+ "defaultHeight": 700,
+ "minHeight": 700,
+ "minWidth": 900,
+ "height": 700,
+ "width": 1100
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "name": "window1",
+ "layout": {
+ "content": [
+ {
+ "type": "row",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "https://samples.openfin.co/dev-extensions/extensions/v18.0.0/interop/interop-api/context/interop-broadcast-view.html"
+ }
+ },
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "https://samples.openfin.co/dev-extensions/extensions/v18.0.0/interop/interop-api/context/interop-broadcast-view.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "customSettings": {
+ "cloudInteropProvider": {
+ "enabled": false,
+ "connectParams": {
+ "url": "",
+ "userId": "",
+ "password": "",
+ "platformId": "cloud-interop",
+ "sourceId": "platform1",
+ "sourceDisplayName": "Platform 1"
+ }
+ }
+ }
+}
diff --git a/how-to/use-interop/cloud-interop/public/second.manifest.fin.json b/how-to/use-interop/cloud-interop/public/second.manifest.fin.json
new file mode 100644
index 00000000..bf6c4f7f
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/public/second.manifest.fin.json
@@ -0,0 +1,68 @@
+{
+ "runtime": {
+ "arguments": "--v=1 --inspect --enable-mesh --security-realm=container-interop-use-cloud-platform2",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "platform-2",
+ "icon": "https://openfin.github.io/golden-prototype/favicon.ico",
+ "autoShow": false,
+ "providerUrl": "http://localhost:5050/html/provider.html",
+ "defaultWindowOptions": {
+ "url": "http://localhost:5050/html/window.html",
+ "contextMenu": true,
+ "defaultWidth": 1100,
+ "defaultHeight": 700,
+ "minHeight": 700,
+ "minWidth": 700,
+ "height": 700,
+ "width": 1100
+ },
+ "defaultViewOptions": {
+ "fdc3InteropApi": "2.0"
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "name": "view",
+ "layout": {
+ "content": [
+ {
+ "type": "row",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "https://samples.openfin.co/dev-extensions/extensions/v18.0.0/interop/fdc3/context/fdc3-broadcast-view.html"
+ }
+ },
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "https://samples.openfin.co/dev-extensions/extensions/v18.0.0/interop/interop-api/context/interop-broadcast-view.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "customSettings": {
+ "cloudInteropProvider": {
+ "enabled": false,
+ "connectParams": {
+ "url": "",
+ "userId": "",
+ "password": "",
+ "platformId": "cloud-interop",
+ "sourceId": "platform2",
+ "sourceDisplayName": "Platform 2"
+ }
+ }
+ }
+}
diff --git a/how-to/use-interop/cloud-interop/public/styles/frame-styles.css b/how-to/use-interop/cloud-interop/public/styles/frame-styles.css
new file mode 100644
index 00000000..14b7200b
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/public/styles/frame-styles.css
@@ -0,0 +1,30 @@
+#body-container {
+ display: flex;
+ transition: 0.8s;
+ -webkit-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ height: 96%;
+ width: 100%;
+}
+
+.face {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1;
+}
+
+.channel-button:after {
+ content: '';
+ padding: 5px;
+ display: inline-block;
+ margin-left: 10px;
+ margin-top: 10px;
+}
+
+#title {
+ color: var(--body-font-color);
+ margin: 0px;
+}
diff --git a/how-to/use-interop/cloud-interop/scripts/kill.mjs b/how-to/use-interop/cloud-interop/scripts/kill.mjs
new file mode 100644
index 00000000..634090b0
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/scripts/kill.mjs
@@ -0,0 +1,34 @@
+/**
+ * This script will kill all OpenFin tasks from running.
+ * Useful if you want to make sure you have nothing left running in the background.
+ */
+import { exec } from 'child_process';
+
+console.log('Kill All OpenFin Tasks');
+console.log('======================');
+console.log();
+
+console.log(`Platform: ${process.platform}`);
+
+const isWindows = process.platform.startsWith('win');
+console.log('Running on Windows:', isWindows);
+
+const cmd = isWindows
+ ? `cmd.exe /c taskkill /F /IM OpenFin.exe /T & cmd.exe /c taskkill /F /IM OpenFinRVM.exe /T`
+ : `pkill -9 OpenFin`;
+
+console.log();
+console.log('Command:', cmd);
+console.log();
+
+exec(cmd, (error, stdout, stderr) => {
+ if (error) {
+ console.log(error.message);
+ return;
+ }
+ if (stderr) {
+ console.log(stderr);
+ return;
+ }
+ console.log(stdout);
+});
diff --git a/how-to/use-interop/cloud-interop/scripts/launch.mjs b/how-to/use-interop/cloud-interop/scripts/launch.mjs
new file mode 100644
index 00000000..50444893
--- /dev/null
+++ b/how-to/use-interop/cloud-interop/scripts/launch.mjs
@@ -0,0 +1,205 @@
+/* eslint-disable unicorn/no-process-exit */
+/**
+ * This script will launch an OpenFin application.
+ * It uses the OpenFin NodeJS adapter to launch the url specified on the command line.
+ * Pressing Ctrl+C/Command+C will terminate the application.
+ */
+import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
+import { setDefaultResultOrder } from 'dns';
+
+/**
+ * Run the process.
+ * @param manifestUrl The manifest to launch.
+ */
+async function run(manifestUrl) {
+ try {
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
+ }
+ } catch (e) {
+ console.error(`Error: Connection failed`);
+ console.error(e.message);
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ * @param exitMethod The method to call if the adapter connection exits.
+ * @returns The fin object representing the connection.
+ */
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
+ try {
+ console.log(`Launching manifest...`);
+ console.log();
+
+ const port = await launch({ manifestUrl });
+
+ // We will use the port to connect from Node to determine when OpenFin exists.
+ const fin = await connect({
+ uuid: `dev-connection-${Date.now()}`, // Supply an addressable Id for the connection
+ address: `ws://127.0.0.1:${port}`, // Connect to the given port.
+ nonPersistent: true // We want OpenFin to exit as our application exists.
+ });
+
+ // Once OpenFin exits we shut down the process.
+ fin.once('disconnected', () => {
+ console.log('Platform disconnected');
+ console.log('Exiting process');
+ process.exit();
+ });
+
+ return fin;
+ } catch (e) {
+ console.error('Error: Failed launching manifest');
+ console.error(e.message);
+ if (e.message.includes('Could not locate')) {
+ console.error('Is the web server running and the manifest JSON valid ?');
+ }
+ }
+}
+
+console.log('Launch Manifest');
+console.log('===============');
+console.log();
+console.log(`Platform: ${process.platform}`);
+
+const launchArgs = process.argv.slice(2);
+const manifest = launchArgs.length > 0 ? launchArgs[0] : 'http://localhost:5050/manifest.fin.json';
+console.log(`Manifest: ${manifest}`);
+
+try {
+ setDefaultResultOrder('ipv4first');
+} catch {
+ // Early versions of node do not support this method, but those earlier versions
+ // also do not have the same issue with interface ordering, so it doesn't matter
+ // that it hasn't been called.
+}
+
+run(manifest).catch((err) => console.error(err));
diff --git a/how-to/use-interop/setup-multi-platform-interop/package.json b/how-to/use-interop/setup-multi-platform-interop/package.json
index 343d4081..d48712d8 100644
--- a/how-to/use-interop/setup-multi-platform-interop/package.json
+++ b/how-to/use-interop/setup-multi-platform-interop/package.json
@@ -1,25 +1,25 @@
{
- "name": "setup-cross-platform-interop",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "secondclient": "node ./scripts/launch.mjs http://localhost:5050/second.manifest.fin.json",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-interop/setup-multi-platform-interop && npm run build"
- },
- "author": "adam.saland@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "setup-cross-platform-interop",
+ "version": "36.80.11",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "secondclient": "node ./scripts/launch.mjs http://localhost:5050/second.manifest.fin.json",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-interop/setup-multi-platform-interop && npm run build"
+ },
+ "author": "adam.saland@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-interop/setup-multi-platform-interop/public/manifest.fin.json b/how-to/use-interop/setup-multi-platform-interop/public/manifest.fin.json
index 4d30ee6e..e943f000 100644
--- a/how-to/use-interop/setup-multi-platform-interop/public/manifest.fin.json
+++ b/how-to/use-interop/setup-multi-platform-interop/public/manifest.fin.json
@@ -1,58 +1,58 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "platform-1",
- "icon": "https://openfin.github.io/golden-prototype/favicon.ico",
- "autoShow": false,
- "providerUrl": "http://localhost:5050/html/provider.html",
- "apiDiagnostics": false,
- "defaultWindowOptions": {
- "url": "http://localhost:5050/html/window.html",
- "contextMenu": true,
- "defaultWidth": 700,
- "defaultHeight": 700,
- "defaultLeft": 0,
- "defaultTop": 0,
- "saveWindowState": false,
- "showBackgroundImages": true,
- "backgroundThrottling": true,
- "minHeight": 700,
- "minWidth": 700,
- "height": 700,
- "width": 700
- }
- },
- "snapshot": {
- "windows": [
- {
- "name": "window1",
- "layout": {
- "content": [
- {
- "type": "row",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "url": "https://samples.openfin.co/dev-extensions/extensions/v1.0.0/interop/interop-api/context/interop-broadcast-view.html"
- }
- },
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "url": "https://samples.openfin.co/dev-extensions/extensions/v1.0.0/interop/interop-api/context/interop-broadcast-view.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "platform-1",
+ "icon": "https://openfin.github.io/golden-prototype/favicon.ico",
+ "autoShow": false,
+ "providerUrl": "http://localhost:5050/html/provider.html",
+ "apiDiagnostics": false,
+ "defaultWindowOptions": {
+ "url": "http://localhost:5050/html/window.html",
+ "contextMenu": true,
+ "defaultWidth": 700,
+ "defaultHeight": 700,
+ "defaultLeft": 0,
+ "defaultTop": 0,
+ "saveWindowState": false,
+ "showBackgroundImages": true,
+ "backgroundThrottling": true,
+ "minHeight": 700,
+ "minWidth": 700,
+ "height": 700,
+ "width": 700
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "name": "window1",
+ "layout": {
+ "content": [
+ {
+ "type": "row",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "https://samples.openfin.co/dev-extensions/extensions/v1.0.0/interop/interop-api/context/interop-broadcast-view.html"
+ }
+ },
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "https://samples.openfin.co/dev-extensions/extensions/v1.0.0/interop/interop-api/context/interop-broadcast-view.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-interop/setup-multi-platform-interop/public/second.manifest.fin.json b/how-to/use-interop/setup-multi-platform-interop/public/second.manifest.fin.json
index 3c6f59c3..8708fa4a 100644
--- a/how-to/use-interop/setup-multi-platform-interop/public/second.manifest.fin.json
+++ b/how-to/use-interop/setup-multi-platform-interop/public/second.manifest.fin.json
@@ -1,60 +1,61 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "platform-2",
- "icon": "https://openfin.github.io/golden-prototype/favicon.ico",
- "autoShow": false,
- "apiDiagnostics": false,
- "defaultWindowOptions": {
- "url": "http://localhost:5050/html/window.html",
- "contextMenu": true,
- "defaultWidth": 700,
- "defaultHeight": 700,
- "defaultLeft": 0,
- "defaultTop": 0,
- "saveWindowState": false,
- "showBackgroundImages": true,
- "backgroundThrottling": true,
- "minHeight": 700,
- "minWidth": 700,
- "height": 700,
- "width": 700
- },
- "defaultViewOptions": {
- "fdc3InteropApi": "1.2"
- }
- },
- "snapshot": {
- "windows": [
- {
- "name": "view",
- "layout": {
- "content": [
- {
- "type": "row",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "url": "https://samples.openfin.co/dev-extensions/extensions/v1.0.0/interop/fdc3/context/fdc3-broadcast-view.html"
- }
- },
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "url": "https://samples.openfin.co/dev-extensions/extensions/v1.0.0/interop/interop-api/context/interop-broadcast-view.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "platform-2",
+ "icon": "https://openfin.github.io/golden-prototype/favicon.ico",
+ "autoShow": false,
+ "apiDiagnostics": false,
+ "providerUrl": "http://localhost:5050/html/provider.html",
+ "defaultWindowOptions": {
+ "url": "http://localhost:5050/html/window.html",
+ "contextMenu": true,
+ "defaultWidth": 700,
+ "defaultHeight": 700,
+ "defaultLeft": 0,
+ "defaultTop": 0,
+ "saveWindowState": false,
+ "showBackgroundImages": true,
+ "backgroundThrottling": true,
+ "minHeight": 700,
+ "minWidth": 700,
+ "height": 700,
+ "width": 700
+ },
+ "defaultViewOptions": {
+ "fdc3InteropApi": "1.2"
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "name": "view",
+ "layout": {
+ "content": [
+ {
+ "type": "row",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "https://samples.openfin.co/dev-extensions/extensions/v1.0.0/interop/fdc3/context/fdc3-broadcast-view.html"
+ }
+ },
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "url": "https://samples.openfin.co/dev-extensions/extensions/v1.0.0/interop/interop-api/context/interop-broadcast-view.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-interop/setup-multi-platform-interop/scripts/launch.mjs b/how-to/use-interop/setup-multi-platform-interop/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-interop/setup-multi-platform-interop/scripts/launch.mjs
+++ b/how-to/use-interop/setup-multi-platform-interop/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-launch-external-process/package.json b/how-to/use-launch-external-process/package.json
index 437fb9c2..5bc46645 100644
--- a/how-to/use-launch-external-process/package.json
+++ b/how-to/use-launch-external-process/package.json
@@ -1,25 +1,25 @@
{
- "name": "launch-external-process",
- "version": "0.0.1",
- "description": "An example of how to use launch external process",
- "main": "index.js",
- "scripts": {
- "dos": "node ./scripts/dos.mjs && node ./scripts/kill.mjs",
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../ && npm install && cd how-to/use-launch-external-process && npm run build"
- },
- "author": "@adam-saland",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "launch-external-process",
+ "version": "36.80.11",
+ "description": "An example of how to use launch external process",
+ "main": "index.js",
+ "scripts": {
+ "dos": "node ./scripts/dos.mjs && node ./scripts/kill.mjs",
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../ && npm install && cd how-to/use-launch-external-process && npm run build"
+ },
+ "author": "@adam-saland",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-launch-external-process/public/manifest.fin.json b/how-to/use-launch-external-process/public/manifest.fin.json
index fccf4c4b..fb8c9556 100644
--- a/how-to/use-launch-external-process/public/manifest.fin.json
+++ b/how-to/use-launch-external-process/public/manifest.fin.json
@@ -1,35 +1,35 @@
{
- "runtime": {
- "version": "36.122.80.10"
- },
- "startup_app": {
- "name": "launch-app-asset",
- "url": "http://localhost:5050/html/app.html",
- "uuid": "launch-app-asset",
- "icon": "http://localhost:5050/common/images/icon-blue.png",
- "autoShow": true,
- "saveWindowState": true,
- "permissions": {
- "System": {
- "launchExternalProcess": true,
- "terminateExternalProcess": true,
- "downloadAsset": true
- }
- }
- },
- "appAssets": [
- {
- "src": "http://localhost:5050/assets/openfin-dotnet-example.zip",
- "version": "3.1",
- "alias": "of-dotnet-example",
- "target": "DotNetCore.exe",
- "mandatory": true
- }
- ],
- "shortcut": {
- "company": "OpenFin",
- "description": "Launch App Asset",
- "icon": "http://localhost:5050/common/images/icon-blue.png",
- "name": "Launch App Asset"
- }
-}
\ No newline at end of file
+ "runtime": {
+ "version": "36.122.80.11"
+ },
+ "startup_app": {
+ "name": "launch-app-asset",
+ "url": "http://localhost:5050/html/app.html",
+ "uuid": "launch-app-asset",
+ "icon": "http://localhost:5050/common/images/icon-blue.png",
+ "autoShow": true,
+ "saveWindowState": true,
+ "permissions": {
+ "System": {
+ "launchExternalProcess": true,
+ "terminateExternalProcess": true,
+ "downloadAsset": true
+ }
+ }
+ },
+ "appAssets": [
+ {
+ "src": "http://localhost:5050/assets/openfin-dotnet-example.zip",
+ "version": "3.1",
+ "alias": "of-dotnet-example",
+ "target": "DotNetCore.exe",
+ "mandatory": true
+ }
+ ],
+ "shortcut": {
+ "company": "OpenFin",
+ "description": "Launch App Asset",
+ "icon": "http://localhost:5050/common/images/icon-blue.png",
+ "name": "Launch App Asset"
+ }
+}
diff --git a/how-to/use-launch-external-process/scripts/launch.mjs b/how-to/use-launch-external-process/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-launch-external-process/scripts/launch.mjs
+++ b/how-to/use-launch-external-process/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-logging-apis/package.json b/how-to/use-logging-apis/package.json
index 5b049f95..99b4ffe4 100644
--- a/how-to/use-logging-apis/package.json
+++ b/how-to/use-logging-apis/package.json
@@ -1,37 +1,37 @@
{
- "name": "use-logging-apis",
- "version": "0.0.1",
- "description": "A demonstration of how to use logging apis",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "server": "node ./server/build/index.js",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build-server": "tsc --project ./server",
- "build": "npm run build-client && npm run build-server",
- "start": "npm run server",
- "setup": "cd ../../ && npm install && cd how-to/use-logging-apis && npm run build"
- },
- "author": "martyn.janes@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/core": "36.80.10",
- "@types/multer": "^1.4.7",
- "@types/node": "^20.4.1",
- "body-parser": "^1.20.2",
- "express": "^4.18.2",
- "@openfin/node-adapter": "36.80.10",
- "source-map-loader": "^4.0.1",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4"
- },
- "dependencies": {
- "connect-busboy": "^1.0.0",
- "multer": "^1.4.5-lts.1",
- "@openfin/core": "36.80.10",
- "@openfin/node-adapter": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "use-logging-apis",
+ "version": "36.80.11",
+ "description": "A demonstration of how to use logging apis",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "server": "node ./server/build/index.js",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build-server": "tsc --project ./server",
+ "build": "npm run build-client && npm run build-server",
+ "start": "npm run server",
+ "setup": "cd ../../ && npm install && cd how-to/use-logging-apis && npm run build"
+ },
+ "author": "martyn.janes@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/core": "36.80.11",
+ "@types/multer": "^1.4.11",
+ "@types/node": "^20.12.11",
+ "body-parser": "^1.20.2",
+ "express": "^4.19.2",
+ "@openfin/node-adapter": "36.80.11",
+ "source-map-loader": "^5.0.0",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4"
+ },
+ "dependencies": {
+ "connect-busboy": "^1.0.0",
+ "multer": "^1.4.5-lts.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11"
+ }
+}
diff --git a/how-to/use-logging-apis/public/manifest.fin.json b/how-to/use-logging-apis/public/manifest.fin.json
index f02cdf0e..462b0145 100644
--- a/how-to/use-logging-apis/public/manifest.fin.json
+++ b/how-to/use-logging-apis/public/manifest.fin.json
@@ -1,25 +1,25 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "licenseKey": "64605fac-add3-48a0-8710-64b38e96a2dd",
- "startup_app": {
- "name": "use-application-logging",
- "uuid": "use-application-logging",
- "description": "An example of using application logging",
- "url": "http://localhost:5050/html/app.html",
- "icon": "http://localhost:5050/favicon.ico",
- "autoShow": true,
- "defaultWidth": 1200,
- "defaultHeight": 800,
- "defaultCentered": true,
- "minWidth": 800,
- "minHeight": 400,
- "enableAppLogging": true,
- "logManagement": {
- "enabled": true,
- "url": "http://localhost:5050"
- }
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "licenseKey": "64605fac-add3-48a0-8710-64b38e96a2dd",
+ "startup_app": {
+ "name": "use-application-logging",
+ "uuid": "use-application-logging",
+ "description": "An example of using application logging",
+ "url": "http://localhost:5050/html/app.html",
+ "icon": "http://localhost:5050/favicon.ico",
+ "autoShow": true,
+ "defaultWidth": 1200,
+ "defaultHeight": 800,
+ "defaultCentered": true,
+ "minWidth": 800,
+ "minHeight": 400,
+ "enableAppLogging": true,
+ "logManagement": {
+ "enabled": true,
+ "url": "http://localhost:5050"
+ }
+ }
+}
diff --git a/how-to/use-logging-apis/scripts/launch.mjs b/how-to/use-logging-apis/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-logging-apis/scripts/launch.mjs
+++ b/how-to/use-logging-apis/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-platform/warn-before-closing-dialog/package.json b/how-to/use-platform/warn-before-closing-dialog/package.json
index 119071a9..b7c64bad 100644
--- a/how-to/use-platform/warn-before-closing-dialog/package.json
+++ b/how-to/use-platform/warn-before-closing-dialog/package.json
@@ -1,23 +1,23 @@
{
- "name": "warn-before-closing-dialog",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-platform/warn-before-closing-dialog && npm run build"
- },
- "license": "ISC",
- "devDependencies": {
- "@openfin/core": "36.80.10",
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4"
- }
-}
\ No newline at end of file
+ "name": "warn-before-closing-dialog",
+ "version": "36.80.11",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-platform/warn-before-closing-dialog && npm run build"
+ },
+ "license": "ISC",
+ "devDependencies": {
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4"
+ }
+}
diff --git a/how-to/use-platform/warn-before-closing-dialog/public/manifest.fin.json b/how-to/use-platform/warn-before-closing-dialog/public/manifest.fin.json
index 8f121521..7bfe3e48 100644
--- a/how-to/use-platform/warn-before-closing-dialog/public/manifest.fin.json
+++ b/how-to/use-platform/warn-before-closing-dialog/public/manifest.fin.json
@@ -1,115 +1,115 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "enableBeforeUnload": true,
- "uuid": "platform-warn",
- "icon": "https://openfin.github.io/golden-prototype/favicon.ico",
- "autoShow": false,
- "providerUrl": "http://localhost:5050/html/provider.html",
- "apiDiagnostics": false,
- "defaultWindowOptions": {
- "contextMenu": true,
- "defaultWidth": 900,
- "defaultHeight": 900,
- "defaultLeft": 0,
- "defaultTop": 0,
- "saveWindowState": false,
- "backgroundThrottling": true,
- "minHeight": 445,
- "minWidth": 354,
- "defaultCentered": true
- }
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "column",
- "id": "no-drop-target",
- "content": [
- {
- "type": "row",
- "content": [
- {
- "type": "stack",
- "content": [
- {
- "type": "component",
- "title": "view1",
- "componentName": "view",
- "componentState": {
- "url": "http://localhost:5050/html/view.html?title=view1",
- "name": "view1",
- "backgroundThrottling": true,
- "componentName": "view"
- }
- }
- ]
- },
- {
- "type": "stack",
- "content": [
- {
- "type": "component",
- "title": "view3",
- "componentName": "view",
- "componentState": {
- "url": "http://localhost:5050/html/view.html?title=view3",
- "name": "view3",
- "backgroundThrottling": true,
- "componentName": "view"
- }
- }
- ]
- }
- ]
- },
- {
- "type": "row",
- "content": [
- {
- "type": "stack",
- "content": [
- {
- "type": "component",
- "title": "view2",
- "componentName": "view",
- "componentState": {
- "url": "http://localhost:5050/html/view.html?title=view2",
- "name": "view2",
- "componentName": "view"
- }
- }
- ]
- },
- {
- "type": "stack",
- "content": [
- {
- "type": "component",
- "title": "view4",
- "componentName": "view",
- "componentState": {
- "url": "http://localhost:5050/html/view.html?title=view4",
- "name": "view4",
- "backgroundThrottling": true,
- "componentName": "view"
- }
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "enableBeforeUnload": true,
+ "uuid": "platform-warn",
+ "icon": "https://openfin.github.io/golden-prototype/favicon.ico",
+ "autoShow": false,
+ "providerUrl": "http://localhost:5050/html/provider.html",
+ "apiDiagnostics": false,
+ "defaultWindowOptions": {
+ "contextMenu": true,
+ "defaultWidth": 900,
+ "defaultHeight": 900,
+ "defaultLeft": 0,
+ "defaultTop": 0,
+ "saveWindowState": false,
+ "backgroundThrottling": true,
+ "minHeight": 445,
+ "minWidth": 354,
+ "defaultCentered": true
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "column",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "row",
+ "content": [
+ {
+ "type": "stack",
+ "content": [
+ {
+ "type": "component",
+ "title": "view1",
+ "componentName": "view",
+ "componentState": {
+ "url": "http://localhost:5050/html/view.html?title=view1",
+ "name": "view1",
+ "backgroundThrottling": true,
+ "componentName": "view"
+ }
+ }
+ ]
+ },
+ {
+ "type": "stack",
+ "content": [
+ {
+ "type": "component",
+ "title": "view3",
+ "componentName": "view",
+ "componentState": {
+ "url": "http://localhost:5050/html/view.html?title=view3",
+ "name": "view3",
+ "backgroundThrottling": true,
+ "componentName": "view"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "row",
+ "content": [
+ {
+ "type": "stack",
+ "content": [
+ {
+ "type": "component",
+ "title": "view2",
+ "componentName": "view",
+ "componentState": {
+ "url": "http://localhost:5050/html/view.html?title=view2",
+ "name": "view2",
+ "componentName": "view"
+ }
+ }
+ ]
+ },
+ {
+ "type": "stack",
+ "content": [
+ {
+ "type": "component",
+ "title": "view4",
+ "componentName": "view",
+ "componentState": {
+ "url": "http://localhost:5050/html/view.html?title=view4",
+ "name": "view4",
+ "backgroundThrottling": true,
+ "componentName": "view"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-platform/warn-before-closing-dialog/scripts/launch.mjs b/how-to/use-platform/warn-before-closing-dialog/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-platform/warn-before-closing-dialog/scripts/launch.mjs
+++ b/how-to/use-platform/warn-before-closing-dialog/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-popup-window/advanced/package.json b/how-to/use-popup-window/advanced/package.json
index b9b0b018..32a9daee 100644
--- a/how-to/use-popup-window/advanced/package.json
+++ b/how-to/use-popup-window/advanced/package.json
@@ -1,25 +1,25 @@
{
- "name": "use-popup-window-advanced",
- "version": "0.0.1",
- "description": "A demonstration that shows how to use an existing window as a popup.",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-popup-window/advanced && npm run build"
- },
- "author": "connor.mccafferty@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/core": "36.80.10",
- "@types/node": "^20.4.1",
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4"
- }
-}
\ No newline at end of file
+ "name": "use-popup-window-advanced",
+ "version": "36.80.11",
+ "description": "A demonstration that shows how to use an existing window as a popup.",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-popup-window/advanced && npm run build"
+ },
+ "author": "connor.mccafferty@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/core": "36.80.11",
+ "@types/node": "^20.12.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4"
+ }
+}
diff --git a/how-to/use-popup-window/advanced/public/manifest.fin.json b/how-to/use-popup-window/advanced/public/manifest.fin.json
index e3fc343b..c7a631bb 100644
--- a/how-to/use-popup-window/advanced/public/manifest.fin.json
+++ b/how-to/use-popup-window/advanced/public/manifest.fin.json
@@ -1,35 +1,35 @@
{
- "licenseKey": "openfin-demo-license-key",
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "how-to-use-popup-window-advanced",
- "autoShow": true
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "licenseKey": "openfin-demo-license-key",
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "how-to-use-popup-window-advanced",
+ "autoShow": true
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-popup-window/advanced/scripts/launch.mjs b/how-to/use-popup-window/advanced/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-popup-window/advanced/scripts/launch.mjs
+++ b/how-to/use-popup-window/advanced/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-popup-window/modal/package.json b/how-to/use-popup-window/modal/package.json
index 2d2d43f6..b36d1e26 100644
--- a/how-to/use-popup-window/modal/package.json
+++ b/how-to/use-popup-window/modal/package.json
@@ -1,25 +1,25 @@
{
- "name": "use-popup-window-modal",
- "version": "0.0.1",
- "description": "A demonstration of a modal popup window.",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-popup-window/modal && npm run build"
- },
- "author": "connor.mccafferty@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/core": "36.80.10",
- "@types/node": "^20.4.1",
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4"
- }
-}
\ No newline at end of file
+ "name": "use-popup-window-modal",
+ "version": "36.80.11",
+ "description": "A demonstration of a modal popup window.",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-popup-window/modal && npm run build"
+ },
+ "author": "connor.mccafferty@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/core": "36.80.11",
+ "@types/node": "^20.12.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4"
+ }
+}
diff --git a/how-to/use-popup-window/modal/public/manifest.fin.json b/how-to/use-popup-window/modal/public/manifest.fin.json
index f6f6c973..ab71cb83 100644
--- a/how-to/use-popup-window/modal/public/manifest.fin.json
+++ b/how-to/use-popup-window/modal/public/manifest.fin.json
@@ -1,35 +1,35 @@
{
- "licenseKey": "openfin-demo-license-key",
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "how-to-use-popup-window-modal",
- "autoShow": true
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "licenseKey": "openfin-demo-license-key",
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "how-to-use-popup-window-modal",
+ "autoShow": true
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-popup-window/modal/scripts/launch.mjs b/how-to/use-popup-window/modal/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-popup-window/modal/scripts/launch.mjs
+++ b/how-to/use-popup-window/modal/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-popup-window/multiple-results/package.json b/how-to/use-popup-window/multiple-results/package.json
index caf724c8..6ea11f68 100644
--- a/how-to/use-popup-window/multiple-results/package.json
+++ b/how-to/use-popup-window/multiple-results/package.json
@@ -1,25 +1,25 @@
{
- "name": "use-popup-window-multiple-results",
- "version": "0.0.1",
- "description": "A demonstration of a popup window that can return multiple results.",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-popup-window/multiple-results && npm run build"
- },
- "author": "connor.mccafferty@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/core": "36.80.10",
- "@types/node": "^20.4.1",
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4"
- }
-}
\ No newline at end of file
+ "name": "use-popup-window-multiple-results",
+ "version": "36.80.11",
+ "description": "A demonstration of a popup window that can return multiple results.",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-popup-window/multiple-results && npm run build"
+ },
+ "author": "connor.mccafferty@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/core": "36.80.11",
+ "@types/node": "^20.12.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4"
+ }
+}
diff --git a/how-to/use-popup-window/multiple-results/public/manifest.fin.json b/how-to/use-popup-window/multiple-results/public/manifest.fin.json
index 0902171d..b81087bc 100644
--- a/how-to/use-popup-window/multiple-results/public/manifest.fin.json
+++ b/how-to/use-popup-window/multiple-results/public/manifest.fin.json
@@ -1,35 +1,35 @@
{
- "licenseKey": "openfin-demo-license-key",
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "how-to-use-popup-window-multiple-results",
- "autoShow": true
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "licenseKey": "openfin-demo-license-key",
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "how-to-use-popup-window-multiple-results",
+ "autoShow": true
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-popup-window/multiple-results/scripts/launch.mjs b/how-to/use-popup-window/multiple-results/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-popup-window/multiple-results/scripts/launch.mjs
+++ b/how-to/use-popup-window/multiple-results/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-popup-window/single-result/package.json b/how-to/use-popup-window/single-result/package.json
index d46a40c4..518afbdd 100644
--- a/how-to/use-popup-window/single-result/package.json
+++ b/how-to/use-popup-window/single-result/package.json
@@ -1,25 +1,25 @@
{
- "name": "use-popup-window-single-result",
- "version": "0.0.1",
- "description": "A demonstration of a single use popup window.",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-poupup-window/single-result && npm run build"
- },
- "author": "connor.mccafferty@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/core": "36.80.10",
- "@types/node": "^20.4.1",
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4"
- }
-}
\ No newline at end of file
+ "name": "use-popup-window-single-result",
+ "version": "36.80.11",
+ "description": "A demonstration of a single use popup window.",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-poupup-window/single-result && npm run build"
+ },
+ "author": "connor.mccafferty@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/core": "36.80.11",
+ "@types/node": "^20.12.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4"
+ }
+}
diff --git a/how-to/use-popup-window/single-result/public/manifest.fin.json b/how-to/use-popup-window/single-result/public/manifest.fin.json
index d9370910..7d1d1216 100644
--- a/how-to/use-popup-window/single-result/public/manifest.fin.json
+++ b/how-to/use-popup-window/single-result/public/manifest.fin.json
@@ -1,35 +1,35 @@
{
- "licenseKey": "openfin-demo-license-key",
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "how-to-use-popup-window-single-result",
- "autoShow": true
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "licenseKey": "openfin-demo-license-key",
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "how-to-use-popup-window-single-result",
+ "autoShow": true
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-popup-window/single-result/scripts/launch.mjs b/how-to/use-popup-window/single-result/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-popup-window/single-result/scripts/launch.mjs
+++ b/how-to/use-popup-window/single-result/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-preloads/basic/package.json b/how-to/use-preloads/basic/package.json
index 239ad232..7812b774 100644
--- a/how-to/use-preloads/basic/package.json
+++ b/how-to/use-preloads/basic/package.json
@@ -1,24 +1,24 @@
{
- "name": "use-preloads-hello-world",
- "version": "0.0.1",
- "description": "A demonstration of how to configure preload scripts",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-preloads/basic && npm run build"
- },
- "author": "john.mandia@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "use-preloads-hello-world",
+ "version": "36.80.11",
+ "description": "A demonstration of how to configure preload scripts",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-preloads/basic && npm run build"
+ },
+ "author": "john.mandia@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-preloads/basic/public/manifest.fin.json b/how-to/use-preloads/basic/public/manifest.fin.json
index 742a5761..025fca0b 100644
--- a/how-to/use-preloads/basic/public/manifest.fin.json
+++ b/how-to/use-preloads/basic/public/manifest.fin.json
@@ -1,54 +1,54 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "how-to-use-preloads-hello-world",
- "autoShow": true,
- "icon": "http://localhost:5050/favicon.ico",
- "preloadScripts": [
- {
- "url": "http://localhost:5050/js/preload-platform.bundle.js"
- }
- ],
- "defaultWindowOptions": {
- "preloadScripts": [
- {
- "url": "http://localhost:5050/js/preload-window.bundle.js"
- }
- ]
- },
- "defaultViewOptions": {
- "preloadScripts": [
- {
- "url": "http://localhost:5050/js/preload-view.bundle.js"
- }
- ]
- }
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "how-to-use-preloads-hello-world",
+ "autoShow": true,
+ "icon": "http://localhost:5050/favicon.ico",
+ "preloadScripts": [
+ {
+ "url": "http://localhost:5050/js/preload-platform.bundle.js"
+ }
+ ],
+ "defaultWindowOptions": {
+ "preloadScripts": [
+ {
+ "url": "http://localhost:5050/js/preload-window.bundle.js"
+ }
+ ]
+ },
+ "defaultViewOptions": {
+ "preloadScripts": [
+ {
+ "url": "http://localhost:5050/js/preload-view.bundle.js"
+ }
+ ]
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-preloads/basic/scripts/launch.mjs b/how-to/use-preloads/basic/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-preloads/basic/scripts/launch.mjs
+++ b/how-to/use-preloads/basic/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-preloads/restart-on-refresh/package.json b/how-to/use-preloads/restart-on-refresh/package.json
index 24a5e3eb..e04d7e9a 100644
--- a/how-to/use-preloads/restart-on-refresh/package.json
+++ b/how-to/use-preloads/restart-on-refresh/package.json
@@ -1,24 +1,24 @@
{
- "name": "use-preloads-restart-on-refresh",
- "version": "0.0.1",
- "description": "A demonstration of how to configure preload scripts to restart on refresh of a view",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../../ && npm install && cd how-to/use-preloads/restart-on-refresh && npm run build"
- },
- "author": "john.mandia@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "use-preloads-restart-on-refresh",
+ "version": "36.80.11",
+ "description": "A demonstration of how to configure preload scripts to restart on refresh of a view",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../../ && npm install && cd how-to/use-preloads/restart-on-refresh && npm run build"
+ },
+ "author": "john.mandia@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-preloads/restart-on-refresh/public/manifest.fin.json b/how-to/use-preloads/restart-on-refresh/public/manifest.fin.json
index 18c9ea8f..2c803cc2 100644
--- a/how-to/use-preloads/restart-on-refresh/public/manifest.fin.json
+++ b/how-to/use-preloads/restart-on-refresh/public/manifest.fin.json
@@ -1,42 +1,42 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "platform": {
- "uuid": "how-to-use-preloads-restart-on-refresh",
- "autoShow": false,
- "icon": "http://localhost:5050/favicon.ico",
- "defaultViewOptions": {
- "preloadScripts": [
- {
- "url": "http://localhost:5050/js/preload-view.bundle.js"
- }
- ]
- }
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "https://www.google.com/search?q=openfin+preload+scripts"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "platform": {
+ "uuid": "how-to-use-preloads-restart-on-refresh",
+ "autoShow": false,
+ "icon": "http://localhost:5050/favicon.ico",
+ "defaultViewOptions": {
+ "preloadScripts": [
+ {
+ "url": "http://localhost:5050/js/preload-view.bundle.js"
+ }
+ ]
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "https://www.google.com/search?q=openfin+preload+scripts"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-preloads/restart-on-refresh/scripts/launch.mjs b/how-to/use-preloads/restart-on-refresh/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-preloads/restart-on-refresh/scripts/launch.mjs
+++ b/how-to/use-preloads/restart-on-refresh/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-security-realms/package.json b/how-to/use-security-realms/package.json
index c2c73804..4e6ef834 100755
--- a/how-to/use-security-realms/package.json
+++ b/how-to/use-security-realms/package.json
@@ -1,24 +1,24 @@
{
- "name": "use-security-realms",
- "version": "0.0.1",
- "description": "A demonstration of how to use OpenFin security realms with native applications",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../ && npm install && cd how-to/use-security-realms && npm run build"
- },
- "author": "adam.saland@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "use-security-realms",
+ "version": "36.80.11",
+ "description": "A demonstration of how to use OpenFin security realms with native applications",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../ && npm install && cd how-to/use-security-realms && npm run build"
+ },
+ "author": "adam.saland@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-security-realms/public/app.fin.json b/how-to/use-security-realms/public/app.fin.json
index d9a58b02..bbfc042b 100644
--- a/how-to/use-security-realms/public/app.fin.json
+++ b/how-to/use-security-realms/public/app.fin.json
@@ -1,19 +1,19 @@
{
- "licenseKey": "64605fac-add3-48a0-8710-64b38e96a2dd",
- "runtime": {
- "version": "36.122.80.10",
- "arguments": "--v=1 --security-realm=PROD-MAIN"
- },
- "shortcut": {
- "company": "OpenFin",
- "description": "PROD Main Application",
- "icon": "http://localhost:5050/favicon.ico",
- "name": "PROD Main Application"
- },
- "startup_app": {
- "name": "prod-main-application",
- "uuid": "prod-main-application",
- "url": "http://localhost:5050/html/app.html",
- "autoShow": true
- }
-}
\ No newline at end of file
+ "licenseKey": "64605fac-add3-48a0-8710-64b38e96a2dd",
+ "runtime": {
+ "version": "36.122.80.11",
+ "arguments": "--v=1 --security-realm=PROD-MAIN"
+ },
+ "shortcut": {
+ "company": "OpenFin",
+ "description": "PROD Main Application",
+ "icon": "http://localhost:5050/favicon.ico",
+ "name": "PROD Main Application"
+ },
+ "startup_app": {
+ "name": "prod-main-application",
+ "uuid": "prod-main-application",
+ "url": "http://localhost:5050/html/app.html",
+ "autoShow": true
+ }
+}
diff --git a/how-to/use-security-realms/public/manifest.fin.json b/how-to/use-security-realms/public/manifest.fin.json
index 178373a0..3e79f9b7 100644
--- a/how-to/use-security-realms/public/manifest.fin.json
+++ b/how-to/use-security-realms/public/manifest.fin.json
@@ -1,45 +1,45 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect --security-realm=PROD-MAIN",
- "version": "36.122.80.10"
- },
- "shortcut": {
- "company": "OpenFin",
- "description": "PROD Main Platform",
- "icon": "http://localhost:5050/favicon.ico",
- "name": "PROD Main Platform"
- },
- "platform": {
- "uuid": "prod-main-platform",
- "autoShow": false,
- "permissions": {
- "System": {
- "launchExternalProcess": true
- }
- }
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/view-app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect --security-realm=PROD-MAIN",
+ "version": "36.122.80.11"
+ },
+ "shortcut": {
+ "company": "OpenFin",
+ "description": "PROD Main Platform",
+ "icon": "http://localhost:5050/favicon.ico",
+ "name": "PROD Main Platform"
+ },
+ "platform": {
+ "uuid": "prod-main-platform",
+ "autoShow": false,
+ "permissions": {
+ "System": {
+ "launchExternalProcess": true
+ }
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/view-app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-security-realms/public/uat/app.fin.json b/how-to/use-security-realms/public/uat/app.fin.json
index e2e36b65..3234ef6d 100644
--- a/how-to/use-security-realms/public/uat/app.fin.json
+++ b/how-to/use-security-realms/public/uat/app.fin.json
@@ -1,34 +1,34 @@
{
- "licenseKey": "64605fac-add3-48a0-8710-64b38e96a2dd",
- "runtime": {
- "version": "36.122.80.10",
- "arguments": "--v=1 --security-realm=UAT-MAIN"
- },
- "shortcut": {
- "company": "OpenFin",
- "description": "UAT Main Application",
- "icon": "http://localhost:5050/favicon.ico",
- "name": "UAT Main Application"
- },
- "startup_app": {
- "name": "uat-main-application",
- "uuid": "uat-main-application",
- "url": "http://localhost:5050/html/app.html",
- "autoShow": true,
- "permissions": {
- "System": {
- "launchExternalProcess": true,
- "downloadAsset": true
- }
- }
- },
- "appAssets": [
- {
- "src": "http://localhost:5050/assets/UseSecurityRealms.zip",
- "version": "0.0.0.1",
- "alias": "security-realms-native",
- "target": "UseSecurityRealms.exe",
- "mandatory": true
- }
- ]
-}
\ No newline at end of file
+ "licenseKey": "64605fac-add3-48a0-8710-64b38e96a2dd",
+ "runtime": {
+ "version": "36.122.80.11",
+ "arguments": "--v=1 --security-realm=UAT-MAIN"
+ },
+ "shortcut": {
+ "company": "OpenFin",
+ "description": "UAT Main Application",
+ "icon": "http://localhost:5050/favicon.ico",
+ "name": "UAT Main Application"
+ },
+ "startup_app": {
+ "name": "uat-main-application",
+ "uuid": "uat-main-application",
+ "url": "http://localhost:5050/html/app.html",
+ "autoShow": true,
+ "permissions": {
+ "System": {
+ "launchExternalProcess": true,
+ "downloadAsset": true
+ }
+ }
+ },
+ "appAssets": [
+ {
+ "src": "http://localhost:5050/assets/UseSecurityRealms.zip",
+ "version": "0.0.0.1",
+ "alias": "security-realms-native",
+ "target": "UseSecurityRealms.exe",
+ "mandatory": true
+ }
+ ]
+}
diff --git a/how-to/use-security-realms/public/uat/manifest.fin.json b/how-to/use-security-realms/public/uat/manifest.fin.json
index ea137d7d..bb92f341 100644
--- a/how-to/use-security-realms/public/uat/manifest.fin.json
+++ b/how-to/use-security-realms/public/uat/manifest.fin.json
@@ -1,45 +1,45 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect --security-realm=UAT-MAIN",
- "version": "36.122.80.10"
- },
- "shortcut": {
- "company": "OpenFin",
- "description": "UAT Main Platform",
- "icon": "http://localhost:5050/favicon.ico",
- "name": "UAT Main Platform"
- },
- "platform": {
- "uuid": "uat-main-platform",
- "autoShow": false,
- "permissions": {
- "System": {
- "launchExternalProcess": true
- }
- }
- },
- "snapshot": {
- "windows": [
- {
- "layout": {
- "content": [
- {
- "type": "stack",
- "id": "no-drop-target",
- "content": [
- {
- "type": "component",
- "componentName": "view",
- "componentState": {
- "processAffinity": "ps_1",
- "url": "http://localhost:5050/html/app.html"
- }
- }
- ]
- }
- ]
- }
- }
- ]
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect --security-realm=UAT-MAIN",
+ "version": "36.122.80.11"
+ },
+ "shortcut": {
+ "company": "OpenFin",
+ "description": "UAT Main Platform",
+ "icon": "http://localhost:5050/favicon.ico",
+ "name": "UAT Main Platform"
+ },
+ "platform": {
+ "uuid": "uat-main-platform",
+ "autoShow": false,
+ "permissions": {
+ "System": {
+ "launchExternalProcess": true
+ }
+ }
+ },
+ "snapshot": {
+ "windows": [
+ {
+ "layout": {
+ "content": [
+ {
+ "type": "stack",
+ "id": "no-drop-target",
+ "content": [
+ {
+ "type": "component",
+ "componentName": "view",
+ "componentState": {
+ "processAffinity": "ps_1",
+ "url": "http://localhost:5050/html/app.html"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ }
+}
diff --git a/how-to/use-security-realms/scripts/launch.mjs b/how-to/use-security-realms/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-security-realms/scripts/launch.mjs
+++ b/how-to/use-security-realms/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/how-to/use-window-options/package.json b/how-to/use-window-options/package.json
index 42420812..653709aa 100644
--- a/how-to/use-window-options/package.json
+++ b/how-to/use-window-options/package.json
@@ -1,24 +1,24 @@
{
- "name": "use-window-options",
- "version": "0.0.1",
- "description": "A demonstration of the different options available when opening windows",
- "main": "index.js",
- "scripts": {
- "kill": "node ./scripts/kill.mjs",
- "client": "node ./scripts/launch.mjs",
- "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
- "build": "npm run build-client",
- "start": "npx --yes http-server ./public -p 5050 -c-1",
- "setup": "cd ../../ && npm install && cd how-to/use-window-options && npm run build"
- },
- "author": "martyn.janes@openfin.co",
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "@openfin/node-adapter": "36.80.10",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
- "webpack-cli": "^5.1.4",
- "@openfin/core": "36.80.10"
- }
-}
\ No newline at end of file
+ "name": "use-window-options",
+ "version": "36.80.11",
+ "description": "A demonstration of the different options available when opening windows",
+ "main": "index.js",
+ "scripts": {
+ "kill": "node ./scripts/kill.mjs",
+ "client": "node ./scripts/launch.mjs",
+ "build-client": "webpack build --config ./client/webpack.config.js --mode=development",
+ "build": "npm run build-client",
+ "start": "npx --yes http-server ./public -p 5050 -c-1",
+ "setup": "cd ../../ && npm install && cd how-to/use-window-options && npm run build"
+ },
+ "author": "martyn.janes@openfin.co",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4",
+ "@openfin/core": "36.80.11"
+ }
+}
diff --git a/how-to/use-window-options/public/manifest.fin.json b/how-to/use-window-options/public/manifest.fin.json
index 1b2500ef..9a1edcc3 100644
--- a/how-to/use-window-options/public/manifest.fin.json
+++ b/how-to/use-window-options/public/manifest.fin.json
@@ -1,19 +1,19 @@
{
- "runtime": {
- "arguments": "--v=1 --inspect",
- "version": "36.122.80.10"
- },
- "startup_app": {
- "name": "use-window-options",
- "uuid": "use-window-options",
- "description": "A guide to OpenFin Window Development",
- "url": "http://localhost:5050/html/app.html",
- "icon": "http://localhost:5050/favicon.ico",
- "autoShow": true,
- "defaultWidth": 1200,
- "defaultHeight": 800,
- "defaultCentered": true,
- "minWidth": 800,
- "minHeight": 400
- }
-}
\ No newline at end of file
+ "runtime": {
+ "arguments": "--v=1 --inspect",
+ "version": "36.122.80.11"
+ },
+ "startup_app": {
+ "name": "use-window-options",
+ "uuid": "use-window-options",
+ "description": "A guide to OpenFin Window Development",
+ "url": "http://localhost:5050/html/app.html",
+ "icon": "http://localhost:5050/favicon.ico",
+ "autoShow": true,
+ "defaultWidth": 1200,
+ "defaultHeight": 800,
+ "defaultCentered": true,
+ "minWidth": 800,
+ "minHeight": 400
+ }
+}
diff --git a/how-to/use-window-options/scripts/launch.mjs b/how-to/use-window-options/scripts/launch.mjs
index fd08a2a4..50444893 100644
--- a/how-to/use-window-options/scripts/launch.mjs
+++ b/how-to/use-window-options/scripts/launch.mjs
@@ -5,6 +5,7 @@
* Pressing Ctrl+C/Command+C will terminate the application.
*/
import { connect, launch } from '@openfin/node-adapter';
+import { exec } from 'child_process';
import { setDefaultResultOrder } from 'dns';
/**
@@ -13,68 +14,10 @@ import { setDefaultResultOrder } from 'dns';
*/
async function run(manifestUrl) {
try {
- let quitRequested = false;
- let quit;
-
- const fin = await launchFromNode(manifestUrl);
-
- if (fin) {
- const manifest = await fin.System.fetchManifest(manifestUrl);
-
- if (manifest.platform?.uuid !== undefined) {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling platform quit');
- const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
- await platform.quit();
- }
- } catch (err) {
- if (err.toString().includes('no longer connected')) {
- console.log('Platform no longer connected');
- console.log('Exiting process');
- process.exit();
- } else {
- console.error(err);
- }
- }
- };
- console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
- } else {
- quit = async () => {
- try {
- if (!quitRequested) {
- quitRequested = true;
- console.log('Calling application quit');
- const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
- await app.quit();
- }
- } catch (err) {
- console.error(err);
- }
- };
- console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
- }
-
- // do something when app is closing
- process.on('exit', async () => {
- console.log('Process exit called');
- await quit();
- });
-
- // catches ctrl+c event
- process.on('SIGINT', async () => {
- console.log('Ctrl + C called');
- await quit();
- });
-
- console.log(`You successfully connected to the manifest: ${manifestUrl}`);
- console.log(`Please wait while the sample loads.`);
- console.log();
- console.log(`If using browser use the Quit option from the main menu.`);
- console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
- console.log();
+ if (process.platform === 'darwin') {
+ await launchFromFinsLink(manifestUrl);
+ } else {
+ await launchFromNodeAdapter(manifestUrl);
}
} catch (e) {
console.error(`Error: Connection failed`);
@@ -82,13 +25,136 @@ async function run(manifestUrl) {
}
}
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl the url to launch
+ */
+async function launchFromNodeAdapter(manifestUrl) {
+ let quitRequested = false;
+ let quit;
+
+ const fin = await connectAndGetFinAPI(manifestUrl);
+
+ if (fin) {
+ const manifest = await fin.System.fetchManifest(manifestUrl);
+
+ if (manifest.platform?.uuid !== undefined) {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling platform quit');
+ const platform = fin.Platform.wrapSync({ uuid: manifest.platform.uuid });
+ await platform.quit();
+ }
+ } catch (err) {
+ if (err.toString().includes('no longer connected')) {
+ console.log('Platform no longer connected');
+ console.log('Exiting process');
+ process.exit();
+ } else {
+ console.error(err);
+ }
+ }
+ };
+ console.log(`Wrapped target platform: ${manifest.platform.uuid}`);
+ } else {
+ quit = async () => {
+ try {
+ if (!quitRequested) {
+ quitRequested = true;
+ console.log('Calling application quit');
+ const app = fin.Application.wrapSync({ uuid: manifest.startup_app.uuid });
+ await app.quit();
+ }
+ } catch (err) {
+ console.error(err);
+ }
+ };
+ console.log(`Wrapped classic app: ${manifest.startup_app.uuid}`);
+ }
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Process exit called');
+ await quit();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ await quit();
+ });
+
+ console.log(`You successfully connected to the manifest: ${manifestUrl}`);
+ console.log(`Please wait while the sample loads.`);
+ console.log();
+ console.log(`Close all platform windows to close the platform.`);
+ console.log(`Otherwise press Ctrl + C (Windows) or Command + C (Mac) to exit and close the sample.`);
+ console.log();
+ }
+}
+
+/**
+ * Launch the manifest using the node adapter.
+ * @param manifestUrl The manifest to launch.
+ */
+async function launchFromFinsLink(manifestUrl) {
+ console.log();
+ console.log(`Launching manifest...`);
+ console.log();
+ const finsLink = manifestUrl.replace('http', 'fin');
+ const finsProcess = exec(`open ${finsLink}`);
+
+ /**
+ * A simple message to inform the user how to quit the platform.
+ */
+ function logQuitMessage() {
+ console.log();
+ console.log('Please quit the platform using:');
+ console.log();
+ console.log('- Process Manager (https://start.openfin.co/pm)');
+ console.log('- run npm run kill to kill all OpenFin processes.');
+ console.log();
+ console.log();
+ }
+
+ finsProcess.stdout.on('data', (data) => {
+ console.log(`stdout: ${data}`);
+ });
+
+ finsProcess.stderr.on('data', (data) => {
+ console.error(`stderr: ${data}`);
+ });
+
+ // do something when app is closing
+ process.on('exit', async () => {
+ console.log('Please wait for the OpenFin application to launch.');
+ logQuitMessage();
+ });
+
+ // catches ctrl+c event
+ process.on('SIGINT', async () => {
+ console.log('Ctrl + C called');
+ logQuitMessage();
+ });
+
+ finsProcess.on('exit', (code) => {
+ if (code === 0) {
+ console.log('Manifest launched successfully');
+ } else {
+ console.log(`Child process exited with code ${code.toString()}`);
+ }
+ });
+}
+
/**
* Launch the manifest using the node adapter.
* @param manifestUrl The manifest to launch.
* @param exitMethod The method to call if the adapter connection exits.
* @returns The fin object representing the connection.
*/
-async function launchFromNode(manifestUrl, exitMethod) {
+async function connectAndGetFinAPI(manifestUrl, exitMethod) {
try {
console.log(`Launching manifest...`);
console.log();
diff --git a/package-lock.json b/package-lock.json
index 7bca9e67..7d1573a0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,446 +1,426 @@
{
"name": "openfin-container-starter",
- "version": "33.77.11",
+ "version": "36.80.11",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openfin-container-starter",
- "version": "33.77.11",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"workspaces": [
"how-to/**"
],
"devDependencies": {
- "eslint": "8.53.0",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "eslint": "8.57.0",
"eslint-config-airbnb": "19.0.4",
- "eslint-config-airbnb-typescript": "17.1.0",
- "eslint-config-prettier": "9.0.0",
+ "eslint-config-airbnb-typescript": "18.0.0",
+ "eslint-config-prettier": "9.1.0",
"eslint-plugin-import": "2.26.0",
- "eslint-plugin-jsdoc": "46.9.0",
- "eslint-plugin-prettier": "5.0.1",
+ "eslint-plugin-jsdoc": "48.2.3",
+ "eslint-plugin-prettier": "5.1.3",
"eslint-plugin-promise": "6.1.1",
- "eslint-plugin-simple-import-sort": "10.0.0",
- "eslint-plugin-unicorn": "49.0.0",
- "eslint-plugin-unused-imports": "3.0.0",
+ "eslint-plugin-simple-import-sort": "12.1.0",
+ "eslint-plugin-unicorn": "52.0.0",
+ "eslint-plugin-unused-imports": "3.2.0",
"fast-glob": "3.3.2",
- "fs-extra": "11.1.1",
- "markdownlint-cli": "0.37.0",
- "prettier": "3.1.0",
- "replace-in-file": "7.0.2",
+ "fs-extra": "11.2.0",
+ "markdownlint-cli": "0.40.0",
+ "prettier": "3.2.5",
+ "replace-in-file": "7.1.0",
"yargs": "17.7.2"
}
},
"how-to/automation-testing/create-window-js": {
"name": "automation-testing-create-window-js",
- "version": "1.0.0",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/automation-cli": "^1.0.13",
- "@openfin/automation-helpers": "^1.0.13",
- "@openfin/automation-native": "^1.0.13",
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "chai": "4.3.7",
+ "@openfin/automation-cli": "^1.2.0",
+ "@openfin/automation-helpers": "^1.2.0",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "chai": "5.1.0",
"mochawesome": "7.1.3"
}
},
"how-to/automation-testing/use-launch-external-process-js": {
"name": "automation-testing-use-window-options-js",
- "version": "1.0.0",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/automation-cli": "^1.0.13",
- "@openfin/automation-helpers": "^1.0.13",
- "@openfin/automation-native": "^1.0.13",
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "chai": "4.3.7",
+ "@openfin/automation-cli": "^1.2.0",
+ "@openfin/automation-helpers": "^1.2.0",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "chai": "5.1.0",
"mochawesome": "7.1.3"
}
},
"how-to/automation-testing/use-window-options-js": {
"name": "automation-testing-use-launch-external-process-js",
- "version": "1.0.0",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/automation-cli": "^1.0.13",
- "@openfin/automation-helpers": "^1.0.13",
- "@openfin/automation-native": "^1.0.13",
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "chai": "4.3.7",
+ "@openfin/automation-cli": "^1.2.0",
+ "@openfin/automation-helpers": "^1.2.0",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "chai": "5.1.0",
"mochawesome": "7.1.3"
}
},
"how-to/container-platform-starter": {
- "version": "1.0.0",
+ "version": "36.80.11",
"license": "ISC",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/create-window": {
"name": "application-window-creation",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/integration-excel": {
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"dependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/excel": "^1.4.1",
- "@openfin/node-adapter": "33.77.11"
+ "@openfin/core": "36.80.11",
+ "@openfin/excel": "^1.5.0",
+ "@openfin/node-adapter": "36.80.11"
},
"devDependencies": {
- "@finos/fdc3": "^2.0.3",
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@finos/fdc3": "^2.1.0",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-a-manifest/create-a-single-page-platform": {
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11"
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11"
}
},
"how-to/use-channel-api/issue-commands-to-a-platform": {
"name": "use-channel-api-issue-commands-to-a-platform",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-content-creation-rules": {
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-dynamic-manifest/basic": {
"name": "use-dynamic-manifest-basic",
- "version": "0.0.1",
+ "version": "36.80.11",
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "express": "^4.19.2",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
+ "webpack-cli": "^5.1.4"
+ }
+ },
+ "how-to/use-interop/cloud-interop": {
+ "name": "container-starter-use-interop--cloud-interop",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
+ "dependencies": {
+ "@openfin/cloud-interop": "0.36.12"
+ },
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "express": "^4.18.2",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-interop/setup-multi-platform-interop": {
"name": "setup-cross-platform-interop",
- "version": "1.0.0",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-launch-external-process": {
"name": "launch-external-process",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-logging-apis": {
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"dependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
"connect-busboy": "^1.0.0",
"multer": "^1.4.5-lts.1"
},
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "@types/multer": "^1.4.7",
- "@types/node": "^20.4.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "@types/multer": "^1.4.11",
+ "@types/node": "^20.12.11",
"body-parser": "^1.20.2",
- "express": "^4.18.2",
- "source-map-loader": "^4.0.1",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "express": "^4.19.2",
+ "source-map-loader": "^5.0.0",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
+ "how-to/use-logging-apis/node_modules/@types/node": {
+ "version": "20.12.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
+ "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
"how-to/use-platform/warn-before-closing-dialog": {
- "version": "1.0.0",
+ "version": "36.80.11",
"license": "ISC",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-popup-window/advanced": {
"name": "use-popup-window-advanced",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "@types/node": "^20.4.1",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "@types/node": "^20.12.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
+ "how-to/use-popup-window/advanced/node_modules/@types/node": {
+ "version": "20.12.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
+ "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
"how-to/use-popup-window/modal": {
"name": "use-popup-window-modal",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "@types/node": "^20.4.1",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "@types/node": "^20.12.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
+ "how-to/use-popup-window/modal/node_modules/@types/node": {
+ "version": "20.12.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
+ "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
"how-to/use-popup-window/multiple-results": {
"name": "use-popup-window-multiple-results",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "@types/node": "^20.4.1",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "@types/node": "^20.12.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
+ "how-to/use-popup-window/multiple-results/node_modules/@types/node": {
+ "version": "20.12.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
+ "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
"how-to/use-popup-window/single-result": {
"name": "use-popup-window-single-result",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "@types/node": "^20.4.1",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "@types/node": "^20.12.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
+ "how-to/use-popup-window/single-result/node_modules/@types/node": {
+ "version": "20.12.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
+ "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
"how-to/use-preloads/basic": {
"name": "use-preloads-hello-world",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-preloads/restart-on-refresh": {
"name": "use-preloads-restart-on-refresh",
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-security-realms": {
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
"how-to/use-window-options": {
- "version": "0.0.1",
+ "version": "36.80.11",
"license": "SEE LICENSE IN LICENSE.MD",
"devDependencies": {
- "@openfin/core": "33.77.11",
- "@openfin/node-adapter": "33.77.11",
- "ts-loader": "^9.4.4",
- "typescript": "^5.1.6",
- "webpack": "^5.88.1",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.4.5",
+ "webpack": "^5.91.0",
"webpack-cli": "^5.1.4"
}
},
- "node_modules/@aashutoshrathi/word-wrap": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true,
"peer": true,
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
- "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.23.4",
- "chalk": "^2.4.2"
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/code-frame/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/code-frame/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/compat-data": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
- "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "version": "7.24.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz",
+ "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==",
"dev": true,
"peer": true,
"engines": {
@@ -448,22 +428,22 @@
}
},
"node_modules/@babel/core": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
- "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz",
+ "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
"dev": true,
"peer": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.23.5",
- "@babel/generator": "^7.23.6",
+ "@babel/code-frame": "^7.24.2",
+ "@babel/generator": "^7.24.5",
"@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helpers": "^7.23.9",
- "@babel/parser": "^7.23.9",
- "@babel/template": "^7.23.9",
- "@babel/traverse": "^7.23.9",
- "@babel/types": "^7.23.9",
+ "@babel/helper-module-transforms": "^7.24.5",
+ "@babel/helpers": "^7.24.5",
+ "@babel/parser": "^7.24.5",
+ "@babel/template": "^7.24.0",
+ "@babel/traverse": "^7.24.5",
+ "@babel/types": "^7.24.5",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -502,15 +482,15 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
- "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz",
+ "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/types": "^7.23.6",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
+ "@babel/types": "^7.24.5",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^2.5.1"
},
"engines": {
@@ -567,13 +547,6 @@
"semver": "bin/semver.js"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "peer": true
- },
"node_modules/@babel/helper-environment-visitor": {
"version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
@@ -612,30 +585,30 @@
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
- "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "version": "7.24.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
+ "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/types": "^7.22.15"
+ "@babel/types": "^7.24.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
- "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz",
+ "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==",
"dev": true,
"peer": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.20"
+ "@babel/helper-module-imports": "^7.24.3",
+ "@babel/helper-simple-access": "^7.24.5",
+ "@babel/helper-split-export-declaration": "^7.24.5",
+ "@babel/helper-validator-identifier": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
@@ -645,9 +618,9 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
+ "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
"dev": true,
"peer": true,
"engines": {
@@ -655,35 +628,35 @@
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz",
+ "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz",
+ "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@babel/types": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.23.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
- "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz",
+ "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==",
"dev": true,
"peer": true,
"engines": {
@@ -691,9 +664,9 @@
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
+ "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -710,29 +683,30 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
- "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz",
+ "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/template": "^7.23.9",
- "@babel/traverse": "^7.23.9",
- "@babel/types": "^7.23.9"
+ "@babel/template": "^7.24.0",
+ "@babel/traverse": "^7.24.5",
+ "@babel/types": "^7.24.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.23.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
- "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
+ "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
+ "@babel/helper-validator-identifier": "^7.24.5",
"chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
@@ -810,9 +784,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
- "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz",
+ "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
"dev": true,
"peer": true,
"bin": {
@@ -888,13 +862,13 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
- "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz",
+ "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.24.0"
},
"engines": {
"node": ">=6.9.0"
@@ -998,13 +972,13 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
- "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz",
+ "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.24.0"
},
"engines": {
"node": ">=6.9.0"
@@ -1014,11 +988,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
- "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
- "dev": true,
- "peer": true,
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz",
+ "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -1027,35 +999,35 @@
}
},
"node_modules/@babel/template": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
- "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+ "version": "7.24.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
+ "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
"dev": true,
"peer": true,
"dependencies": {
"@babel/code-frame": "^7.23.5",
- "@babel/parser": "^7.23.9",
- "@babel/types": "^7.23.9"
+ "@babel/parser": "^7.24.0",
+ "@babel/types": "^7.24.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
- "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz",
+ "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/code-frame": "^7.23.5",
- "@babel/generator": "^7.23.6",
+ "@babel/code-frame": "^7.24.2",
+ "@babel/generator": "^7.24.5",
"@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.9",
- "@babel/types": "^7.23.9",
+ "@babel/helper-split-export-declaration": "^7.24.5",
+ "@babel/parser": "^7.24.5",
+ "@babel/types": "^7.24.5",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -1074,14 +1046,14 @@
}
},
"node_modules/@babel/types": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
- "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz",
+ "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.23.4",
- "@babel/helper-validator-identifier": "^7.22.20",
+ "@babel/helper-string-parser": "^7.24.1",
+ "@babel/helper-validator-identifier": "^7.24.5",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -1129,9 +1101,9 @@
}
},
"node_modules/@es-joy/jsdoccomment": {
- "version": "0.41.0",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.41.0.tgz",
- "integrity": "sha512-aKUhyn1QI5Ksbqcr3fFJj16p99QdjUxXAEuFst1Z47DRyoiMwivIH9MV/ARcJOCXVjPfjITciej8ZD2O/6qUmw==",
+ "version": "0.42.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+ "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
"dev": true,
"dependencies": {
"comment-parser": "1.4.1",
@@ -1212,19 +1184,22 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.53.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz",
- "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@finos/fdc3": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@finos/fdc3/-/fdc3-2.0.3.tgz",
- "integrity": "sha512-sq+iGbjU6yRl7xHhp62nB1tV4biFaHZgUAInzPTJvzXWl9xjZMmXvvbeZW6WGZaCSvjQhJPSrmWs+4z2c73T+g==",
- "dev": true
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@finos/fdc3/-/fdc3-2.1.0.tgz",
+ "integrity": "sha512-GYEYNlWbB2iZhOGiQ6DSYQsXx8sqwyHw6gT0cJnzqGH5+fYxgWUias//2A8XDCrPKZH9Pml/wDDH3HFhvRsvdw==",
+ "dev": true,
+ "optionalDependencies": {
+ "@rollup/rollup-linux-x64-gnu": "4.14.1"
+ }
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.14",
@@ -1276,9 +1251,9 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
"node_modules/@isaacs/cliui": {
@@ -1432,6 +1407,13 @@
"node": ">=8"
}
},
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
@@ -1508,6 +1490,22 @@
}
}
},
+ "node_modules/@jest/core/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@jest/environment": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
@@ -1661,6 +1659,22 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/@jest/reporters/node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
"node_modules/@jest/reporters/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -1674,6 +1688,22 @@
"node": "*"
}
},
+ "node_modules/@jest/reporters/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
"node_modules/@jest/schemas": {
"version": "29.6.3",
"resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
@@ -1779,565 +1809,75 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/@jimp/bmp": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.13.tgz",
- "integrity": "sha512-9edAxu7N2FX7vzkdl5Jo1BbACfycUtBQX+XBMcHA2bk62P8R0otgkHg798frgAk/WxQIzwxqOH6wMiCwrlAzdQ==",
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "bmp-js": "^0.1.0"
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
},
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/@jimp/core": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.13.tgz",
- "integrity": "sha512-qXpA1tzTnlkTku9yqtuRtS/wVntvE6f3m3GNxdTdtmc+O+Wcg9Xo2ABPMh7Nc0AHbMKzwvwgB2JnjZmlmJEObg==",
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "any-base": "^1.1.0",
- "buffer": "^5.2.0",
- "exif-parser": "^0.1.12",
- "file-type": "^16.5.4",
- "load-bmfont": "^1.3.1",
- "mkdirp": "^0.5.1",
- "phin": "^2.9.1",
- "pixelmatch": "^4.0.2",
- "tinycolor2": "^1.4.1"
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/@jimp/custom": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.13.tgz",
- "integrity": "sha512-LTATglVUPGkPf15zX1wTMlZ0+AU7cGEGF6ekVF1crA8eHUWsGjrYTB+Ht4E3HTrCok8weQG+K01rJndCp/l4XA==",
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/core": "^0.16.13"
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/@jimp/gif": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.13.tgz",
- "integrity": "sha512-yFAMZGv3o+YcjXilMWWwS/bv1iSqykFahFMSO169uVMtfQVfa90kt4/kDwrXNR6Q9i6VHpFiGZMlF2UnHClBvg==",
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "gifwrap": "^0.9.2",
- "omggif": "^1.0.9"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
}
},
- "node_modules/@jimp/jpeg": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.13.tgz",
- "integrity": "sha512-BJHlDxzTlCqP2ThqP8J0eDrbBfod7npWCbJAcfkKqdQuFk0zBPaZ6KKaQKyKxmWJ87Z6ohANZoMKEbtvrwz1AA==",
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "jpeg-js": "^0.4.2"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@jimp/plugin-blit": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.16.13.tgz",
- "integrity": "sha512-8Z1k96ZFxlhK2bgrY1JNWNwvaBeI/bciLM0yDOni2+aZwfIIiC7Y6PeWHTAvjHNjphz+XCt01WQmOYWCn0ML6g==",
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
},
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-blur": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.16.13.tgz",
- "integrity": "sha512-PvLrfa8vkej3qinlebyhLpksJgCF5aiysDMSVhOZqwH5nQLLtDE9WYbnsofGw4r0VVpyw3H/ANCIzYTyCtP9Cg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-circle": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.16.13.tgz",
- "integrity": "sha512-RNave7EFgZrb5V5EpdvJGAEHMnDAJuwv05hKscNfIYxf0kR3KhViBTDy+MoTnMlIvaKFULfwIgaZWzyhuINMzA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-color": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.16.13.tgz",
- "integrity": "sha512-xW+9BtEvoIkkH/Wde9ql4nAFbYLkVINhpgAE7VcBUsuuB34WUbcBl/taOuUYQrPEFQJ4jfXiAJZ2H/rvKjCVnQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "tinycolor2": "^1.4.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-contain": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.16.13.tgz",
- "integrity": "sha512-QayTXw4tXMwU6q6acNTQrTTFTXpNRBe+MgTGMDU0lk+23PjlFCO/9sacflelG8lsp7vNHhAxFeHptDMAksEYzg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5",
- "@jimp/plugin-scale": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-cover": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.16.13.tgz",
- "integrity": "sha512-BSsP71GTNaqWRcvkbWuIVH+zK7b3TSNebbhDkFK0fVaUTzHuKMS/mgY4hDZIEVt7Rf5FjadAYtsujHN9w0iSYA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-crop": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5",
- "@jimp/plugin-scale": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-crop": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.16.13.tgz",
- "integrity": "sha512-WEl2tPVYwzYL8OKme6Go2xqiWgKsgxlMwyHabdAU4tXaRwOCnOI7v4021gCcBb9zn/oWwguHuKHmK30Fw2Z/PA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-displace": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.16.13.tgz",
- "integrity": "sha512-qt9WKq8vWrcjySa9DyQ0x/RBMHQeiVjdVSY1SJsMjssPUf0pS74qorcuAkGi89biN3YoGUgPkpqECnAWnYwgGA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-dither": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.16.13.tgz",
- "integrity": "sha512-5/N3yJggbWQTlGZHQYJPmQXEwR52qaXjEzkp1yRBbtdaekXE3BG/suo0fqeoV/csf8ooI78sJzYmIrxNoWVtgQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-fisheye": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.13.tgz",
- "integrity": "sha512-2rZmTdFbT/cF9lEZIkXCYO0TsT114Q27AX5IAo0Sju6jVQbvIk1dFUTnwLDadTo8wkJlFzGqMQ24Cs8cHWOliA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-flip": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.16.13.tgz",
- "integrity": "sha512-EmcgAA74FTc5u7Z+hUO/sRjWwfPPLuOQP5O64x5g4j0T12Bd29IgsYZxoutZo/rb3579+JNa/3wsSEmyVv1EpA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-rotate": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-gaussian": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.13.tgz",
- "integrity": "sha512-A1XKfGQD0iDdIiKqFYi8nZMv4dDVYdxbrmgR7y/CzUHhSYdcmoljLIIsZZM3Iks/Wa353W3vtvkWLuDbQbch1w==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-invert": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.16.13.tgz",
- "integrity": "sha512-xFMrIn7czEZbdbMzZWuaZFnlLGJDVJ82y5vlsKsXRTG2kcxRsMPXvZRWHV57nSs1YFsNqXSbrC8B98n0E32njQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-mask": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.16.13.tgz",
- "integrity": "sha512-wLRYKVBXql2GAYgt6FkTnCfE+q5NomM7Dlh0oIPGAoMBWDyTx0eYutRK6PlUrRK2yMHuroAJCglICTbxqGzowQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-normalize": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.16.13.tgz",
- "integrity": "sha512-3tfad0n9soRna4IfW9NzQdQ2Z3ijkmo21DREHbE6CGcMIxOSvfRdSvf1qQPApxjTSo8LTU4MCi/fidx/NZ0GqQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-print": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.16.13.tgz",
- "integrity": "sha512-0m6i3p01PGRkGAK9r53hDYrkyMq+tlhLOIbsSTmZyh6HLshUKlTB7eXskF5OpVd5ZUHoltlNc6R+ggvKIzxRFw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "load-bmfont": "^1.4.0"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-resize": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.13.tgz",
- "integrity": "sha512-qoqtN8LDknm3fJm9nuPygJv30O3vGhSBD2TxrsCnhtOsxKAqVPJtFVdGd/qVuZ8nqQANQmTlfqTiK9mVWQ7MiQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-rotate": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.16.13.tgz",
- "integrity": "sha512-Ev+Jjmj1nHYw897z9C3R9dYsPv7S2/nxdgfFb/h8hOwK0Ovd1k/+yYS46A0uj/JCKK0pQk8wOslYBkPwdnLorw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blit": ">=0.3.5",
- "@jimp/plugin-crop": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-scale": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.16.13.tgz",
- "integrity": "sha512-05POQaEJVucjTiSGMoH68ZiELc7QqpIpuQlZ2JBbhCV+WCbPFUBcGSmE7w4Jd0E2GvCho/NoMODLwgcVGQA97A==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-shadow": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.16.13.tgz",
- "integrity": "sha512-nmu5VSZ9hsB1JchTKhnnCY+paRBnwzSyK5fhkhtQHHoFD5ArBQ/5wU8y6tCr7k/GQhhGq1OrixsECeMjPoc8Zw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-blur": ">=0.3.5",
- "@jimp/plugin-resize": ">=0.3.5"
- }
- },
- "node_modules/@jimp/plugin-threshold": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.16.13.tgz",
- "integrity": "sha512-+3zArBH0OE3Rhjm4HyAokMsZlIq5gpQec33CncyoSwxtRBM2WAhUVmCUKuBo+Lr/2/4ISoY4BWpHKhMLDix6cA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5",
- "@jimp/plugin-color": ">=0.8.0",
- "@jimp/plugin-resize": ">=0.8.0"
- }
- },
- "node_modules/@jimp/plugins": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.16.13.tgz",
- "integrity": "sha512-CJLdqODEhEVs4MgWCxpWL5l95sCBlkuSLz65cxEm56X5akIsn4LOlwnKoSEZioYcZUBvHhCheH67AyPTudfnQQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/plugin-blit": "^0.16.13",
- "@jimp/plugin-blur": "^0.16.13",
- "@jimp/plugin-circle": "^0.16.13",
- "@jimp/plugin-color": "^0.16.13",
- "@jimp/plugin-contain": "^0.16.13",
- "@jimp/plugin-cover": "^0.16.13",
- "@jimp/plugin-crop": "^0.16.13",
- "@jimp/plugin-displace": "^0.16.13",
- "@jimp/plugin-dither": "^0.16.13",
- "@jimp/plugin-fisheye": "^0.16.13",
- "@jimp/plugin-flip": "^0.16.13",
- "@jimp/plugin-gaussian": "^0.16.13",
- "@jimp/plugin-invert": "^0.16.13",
- "@jimp/plugin-mask": "^0.16.13",
- "@jimp/plugin-normalize": "^0.16.13",
- "@jimp/plugin-print": "^0.16.13",
- "@jimp/plugin-resize": "^0.16.13",
- "@jimp/plugin-rotate": "^0.16.13",
- "@jimp/plugin-scale": "^0.16.13",
- "@jimp/plugin-shadow": "^0.16.13",
- "@jimp/plugin-threshold": "^0.16.13",
- "timm": "^1.6.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/png": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.13.tgz",
- "integrity": "sha512-8cGqINvbWJf1G0Her9zbq9I80roEX0A+U45xFby3tDWfzn+Zz8XKDF1Nv9VUwVx0N3zpcG1RPs9hfheG4Cq2kg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/utils": "^0.16.13",
- "pngjs": "^3.3.3"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/tiff": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.13.tgz",
- "integrity": "sha512-oJY8d9u95SwW00VPHuCNxPap6Q1+E/xM5QThb9Hu+P6EGuu6lIeLaNBMmFZyblwFbwrH+WBOZlvIzDhi4Dm/6Q==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "utif": "^2.0.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/types": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.13.tgz",
- "integrity": "sha512-mC0yVNUobFDjoYLg4hoUwzMKgNlxynzwt3cDXzumGvRJ7Kb8qQGOWJQjQFo5OxmGExqzPphkirdbBF88RVLBCg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/bmp": "^0.16.13",
- "@jimp/gif": "^0.16.13",
- "@jimp/jpeg": "^0.16.13",
- "@jimp/png": "^0.16.13",
- "@jimp/tiff": "^0.16.13",
- "timm": "^1.6.1"
- },
- "peerDependencies": {
- "@jimp/custom": ">=0.3.5"
- }
- },
- "node_modules/@jimp/utils": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.13.tgz",
- "integrity": "sha512-VyCpkZzFTHXtKgVO35iKN0sYR10psGpV6SkcSeV4oF7eSYlR8Bl6aQLCzVeFjvESF7mxTmIiI3/XrMobVrtxDA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "regenerator-runtime": "^0.13.3"
- }
- },
- "node_modules/@jimp/utils/node_modules/regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
- "dev": true,
- "peer": true
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
- "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
- "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
- "dev": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.22",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
- "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
+ "engines": {
+ "node": ">= 8"
}
},
"node_modules/@nodelib/fs.stat": {
@@ -2362,133 +1902,6 @@
"node": ">= 8"
}
},
- "node_modules/@nut-tree/libnut": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/@nut-tree/libnut/-/libnut-2.5.2.tgz",
- "integrity": "sha512-IwlGgalGQjjCrbPq52HTLtsR6MRsGJ6c4GhgHmgwJPD/yBVCzsU5EA2rwDgjKSgK+jiLOpykySDZQ+owhyd1zw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@nut-tree/libnut-darwin": "2.5.2",
- "@nut-tree/libnut-linux": "2.5.2",
- "@nut-tree/libnut-win32": "2.5.2"
- },
- "engines": {
- "node": ">=10.15.3"
- }
- },
- "node_modules/@nut-tree/libnut-darwin": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/@nut-tree/libnut-darwin/-/libnut-darwin-2.5.2.tgz",
- "integrity": "sha512-OKqCgpBbZj2oNQkLM+mM7TyiLBAQsRyN7Q5UXVKbyXnzcQTU1FZBJ1mLGvdfzzspajznL3Mkl08AQE+xYYbTMw==",
- "cpu": [
- "x64",
- "arm64"
- ],
- "dev": true,
- "os": [
- "darwin",
- "linux",
- "win32"
- ],
- "peer": true,
- "dependencies": {
- "bindings": "1.5.0"
- },
- "engines": {
- "node": ">=10.15.3"
- },
- "optionalDependencies": {
- "@nut-tree/node-mac-permissions": "2.2.1"
- }
- },
- "node_modules/@nut-tree/libnut-linux": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/@nut-tree/libnut-linux/-/libnut-linux-2.5.2.tgz",
- "integrity": "sha512-uY6XDuNE8soYRUhV23g6KQN5BRR43MYNLyPnrrQa5Wtfgm6oW9kBRu6JtkWz6Fn6trAWrVAKnbPoTiEgHuGz9w==",
- "cpu": [
- "x64",
- "arm64"
- ],
- "dev": true,
- "os": [
- "darwin",
- "linux",
- "win32"
- ],
- "peer": true,
- "dependencies": {
- "bindings": "1.5.0"
- },
- "engines": {
- "node": ">=10.15.3"
- },
- "optionalDependencies": {
- "@nut-tree/node-mac-permissions": "2.2.1"
- }
- },
- "node_modules/@nut-tree/libnut-win32": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/@nut-tree/libnut-win32/-/libnut-win32-2.5.2.tgz",
- "integrity": "sha512-cnNAQ0pzUMH7hrSjTWRiFfXid3sbSZ78jpv1rA154dlka3wqo6m1OtaX4PLVQK4irZl5REz74iPdHcjeTy9rtg==",
- "cpu": [
- "x64",
- "arm64"
- ],
- "dev": true,
- "os": [
- "darwin",
- "linux",
- "win32"
- ],
- "peer": true,
- "dependencies": {
- "bindings": "1.5.0"
- },
- "engines": {
- "node": ">=10.15.3"
- },
- "optionalDependencies": {
- "@nut-tree/node-mac-permissions": "2.2.1"
- }
- },
- "node_modules/@nut-tree/node-mac-permissions": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@nut-tree/node-mac-permissions/-/node-mac-permissions-2.2.1.tgz",
- "integrity": "sha512-yoijwCqt2yS9UFTv7THGUwZgy2D2TorN703QpYNOergbTJ6vEmeG379pIZDfBuvf56n24RMzKJVoSqr9WIq/Yw==",
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "dependencies": {
- "bindings": "1.5.0",
- "node-addon-api": "5.0.0"
- }
- },
- "node_modules/@nut-tree/nut-js": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@nut-tree/nut-js/-/nut-js-3.1.2.tgz",
- "integrity": "sha512-hi7DBZz9O/t4goeQu3hKeauQbb0PcBmurScl3/t5L3I1pub3ibV24sft8KNSS3INKnGCj7I3Ma5iNHQ24g+95g==",
- "cpu": [
- "x64",
- "arm64"
- ],
- "dev": true,
- "os": [
- "linux",
- "darwin",
- "win32"
- ],
- "peer": true,
- "dependencies": {
- "@nut-tree/libnut": "2.5.2",
- "clipboardy": "2.3.0",
- "jimp": "0.16.13",
- "node-abort-controller": "2.0.0"
- }
- },
"node_modules/@openfin/automation-cli": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@openfin/automation-cli/-/automation-cli-1.2.0.tgz",
@@ -2522,7 +1935,29 @@
"integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
"dev": true,
"engines": {
- "node": ">=16"
+ "node": ">=16"
+ }
+ },
+ "node_modules/@openfin/automation-cli/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@openfin/automation-helpers": {
@@ -2538,26 +1973,25 @@
"webdriver": "8.x"
}
},
- "node_modules/@openfin/automation-native": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@openfin/automation-native/-/automation-native-1.2.0.tgz",
- "integrity": "sha512-AqhfmN4geVnmPr+BuojnDw34z4JkXGMCvoC4xl6uozATtr86O5SYHS+uGzpqymh2eFv9WOyBevA0RqeVzXMuqA==",
- "dev": true,
+ "node_modules/@openfin/cloud-interop": {
+ "version": "0.36.12",
+ "resolved": "https://registry.npmjs.org/@openfin/cloud-interop/-/cloud-interop-0.36.12.tgz",
+ "integrity": "sha512-2fSQEiKjO+D8IhUFKa4pg16yKWj5xunwg0Hii/6A3NYYcaKtSqLiMUuUA9PVKUJ4f7dChBK1kuZdyJ1esYLZDg==",
"dependencies": {
- "@openfin/automation-helpers": "1.2.0"
+ "axios": "^1.6.2",
+ "mqtt": "^5.3.1"
},
"peerDependencies": {
- "@nut-tree/nut-js": "3.x"
+ "@openfin/core": "36.80.11"
}
},
"node_modules/@openfin/core": {
- "version": "33.77.11",
- "resolved": "https://registry.npmjs.org/@openfin/core/-/core-33.77.11.tgz",
- "integrity": "sha512-iqoEezKzZBI9lhDCN3L7ia8TiQJcKnCblm04TfW8OvTV1cXYgii9/F4GBJmqPJ9FX1idudRtPMBQwurZbhFdaA==",
+ "version": "36.80.11",
+ "resolved": "https://registry.npmjs.org/@openfin/core/-/core-36.80.11.tgz",
+ "integrity": "sha512-C0dQROnoxk5p+4ZfSo1gzkzncHhd3jECX/2orQuBNgTu1QHkxfK4ecHONUsIhJO2M3inFP5BTkSmybf+znJbTg==",
"bundleDependencies": [
"openfin-adapter"
],
- "dev": true,
"dependencies": {
"@types/node": "^16.0.0",
"lodash": "^4.17.21",
@@ -2565,21 +1999,15 @@
"ws": "^7.3.0"
}
},
- "node_modules/@openfin/core/node_modules/@types/node": {
- "version": "16.18.79",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.79.tgz",
- "integrity": "sha512-Qd7jdLR5zmnIyMhfDrfPqN5tUCvreVpP3Qrf2oSM+F7SNzlb/MwHISGUkdFHtevfkPJ3iAGyeQI/jsbh9EStgQ==",
- "dev": true
- },
"node_modules/@openfin/excel": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@openfin/excel/-/excel-1.5.0.tgz",
"integrity": "sha512-7mqq8KRn4oqOiIA5MqvzBwQtI6fQhlKuVyiLQnRuj6hPovDyQ93mRr972Nw/34Kn3J/Ovv11RGq5TB850eenEw=="
},
"node_modules/@openfin/node-adapter": {
- "version": "33.77.11",
- "resolved": "https://registry.npmjs.org/@openfin/node-adapter/-/node-adapter-33.77.11.tgz",
- "integrity": "sha512-fNEHgFKPlqGQhq5LoNDwsY+ixs+Z2CJzKnkyw1lgGofKuCwzJ1Mtm4JShrOVRFaQqU9bT7RMn+YlW3A1Uod7oA==",
+ "version": "36.80.11",
+ "resolved": "https://registry.npmjs.org/@openfin/node-adapter/-/node-adapter-36.80.11.tgz",
+ "integrity": "sha512-j8bjHwJnEp084UfIjxQ9WUTIvHC0c2Yt/m9lXYgBpQQrFTKhwERGgFDYBL0jgmXcT6ukLGkSl+KYAO7+v2zrNw==",
"bundleDependencies": [
"openfin-adapter"
],
@@ -2591,12 +2019,6 @@
"ws": "^7.3.0"
}
},
- "node_modules/@openfin/node-adapter/node_modules/@types/node": {
- "version": "16.18.79",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.79.tgz",
- "integrity": "sha512-Qd7jdLR5zmnIyMhfDrfPqN5tUCvreVpP3Qrf2oSM+F7SNzlb/MwHISGUkdFHtevfkPJ3iAGyeQI/jsbh9EStgQ==",
- "dev": true
- },
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -2619,6 +2041,44 @@
"url": "https://opencollective.com/unts"
}
},
+ "node_modules/@promptbook/utils": {
+ "version": "0.48.0-1",
+ "resolved": "https://registry.npmjs.org/@promptbook/utils/-/utils-0.48.0-1.tgz",
+ "integrity": "sha512-X2rOGwNIPVTifQ7ASP3ltEcr5F43TvbRJHQl2iWK6NNWaG8Li4Cdb4jOQu3mXdbtiNmjfP5VotX2W2P/uXV+dg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://buymeacoffee.com/hejny"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/webgptorg/promptbook/blob/main/README.md#%EF%B8%8F-contributing"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "moment": "2.30.1",
+ "prettier": "2.8.1",
+ "spacetrim": "0.11.23"
+ }
+ },
+ "node_modules/@promptbook/utils/node_modules/prettier": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz",
+ "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
"node_modules/@puppeteer/browsers": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.9.1.tgz",
@@ -2641,6 +2101,19 @@
"node": ">=16.3.0"
}
},
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.14.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.1.tgz",
+ "integrity": "sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
@@ -2694,13 +2167,6 @@
"node": ">=14.16"
}
},
- "node_modules/@tokenizer/token": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
- "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==",
- "dev": true,
- "peer": true
- },
"node_modules/@tootallnate/quickjs-emscripten": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
@@ -2709,9 +2175,9 @@
"peer": true
},
"node_modules/@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+ "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
"dev": true,
"peer": true
},
@@ -2801,9 +2267,9 @@
}
},
"node_modules/@types/eslint": {
- "version": "8.56.2",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz",
- "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==",
+ "version": "8.56.10",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz",
+ "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==",
"dev": true,
"dependencies": {
"@types/estree": "*",
@@ -2839,9 +2305,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.17.43",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz",
- "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==",
+ "version": "4.19.0",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz",
+ "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -2928,13 +2394,9 @@
}
},
"node_modules/@types/node": {
- "version": "20.11.16",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
- "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
+ "version": "16.18.97",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.97.tgz",
+ "integrity": "sha512-4muilE1Lbfn57unR+/nT9AFjWk0MtWi5muwCEJqnOvfRQDbSfLCUdN7vCIg8TYuaANfhLOV85ve+FNpiUsbSRg=="
},
"node_modules/@types/normalize-package-data": {
"version": "2.4.4",
@@ -2943,9 +2405,9 @@
"dev": true
},
"node_modules/@types/qs": {
- "version": "6.9.11",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
- "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==",
+ "version": "6.9.15",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
+ "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==",
"dev": true
},
"node_modules/@types/range-parser": {
@@ -2954,10 +2416,24 @@
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
"dev": true
},
+ "node_modules/@types/readable-stream": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.12.tgz",
+ "integrity": "sha512-SCaw+bs9o/HCX1eTa3glTcQgW1oPxof49mqP2Qikik3xzTimNv2M4p43BQHhBuf7CwOJdQW0s1SrWU3MZxz6lw==",
+ "dependencies": {
+ "@types/node": "*",
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/@types/readable-stream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
"node_modules/@types/semver": {
- "version": "7.5.6",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz",
- "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
"dev": true,
"peer": true
},
@@ -2972,14 +2448,14 @@
}
},
"node_modules/@types/serve-static": {
- "version": "1.15.5",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz",
- "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==",
+ "version": "1.15.7",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
"dev": true,
"dependencies": {
"@types/http-errors": "*",
- "@types/mime": "*",
- "@types/node": "*"
+ "@types/node": "*",
+ "@types/send": "*"
}
},
"node_modules/@types/stack-utils": {
@@ -3000,8 +2476,6 @@
"version": "8.5.10",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz",
"integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==",
- "dev": true,
- "peer": true,
"dependencies": {
"@types/node": "*"
}
@@ -3035,34 +2509,34 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
- "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz",
+ "integrity": "sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==",
"dev": true,
"peer": true,
"dependencies": {
- "@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/type-utils": "6.21.0",
- "@typescript-eslint/utils": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "7.8.0",
+ "@typescript-eslint/type-utils": "7.8.0",
+ "@typescript-eslint/utils": "7.8.0",
+ "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
- "ignore": "^5.2.4",
+ "ignore": "^5.3.1",
"natural-compare": "^1.4.0",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
- "eslint": "^7.0.0 || ^8.0.0"
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -3071,27 +2545,27 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
- "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.8.0.tgz",
+ "integrity": "sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==",
"dev": true,
"peer": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
+ "@typescript-eslint/scope-manager": "7.8.0",
+ "@typescript-eslint/types": "7.8.0",
+ "@typescript-eslint/typescript-estree": "7.8.0",
+ "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
+ "eslint": "^8.56.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -3100,17 +2574,17 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
- "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz",
+ "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==",
"dev": true,
"peer": true,
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0"
+ "@typescript-eslint/types": "7.8.0",
+ "@typescript-eslint/visitor-keys": "7.8.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
@@ -3118,26 +2592,26 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
- "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz",
+ "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==",
"dev": true,
"peer": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.21.0",
- "@typescript-eslint/utils": "6.21.0",
+ "@typescript-eslint/typescript-estree": "7.8.0",
+ "@typescript-eslint/utils": "7.8.0",
"debug": "^4.3.4",
- "ts-api-utils": "^1.0.1"
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
+ "eslint": "^8.56.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -3146,13 +2620,13 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
- "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz",
+ "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==",
"dev": true,
"peer": true,
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
@@ -3160,23 +2634,23 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
- "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz",
+ "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==",
"dev": true,
"peer": true,
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/visitor-keys": "6.21.0",
+ "@typescript-eslint/types": "7.8.0",
+ "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
- "minimatch": "9.0.3",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
@@ -3189,43 +2663,43 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
- "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz",
+ "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==",
"dev": true,
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@types/json-schema": "^7.0.12",
- "@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.21.0",
- "@typescript-eslint/types": "6.21.0",
- "@typescript-eslint/typescript-estree": "6.21.0",
- "semver": "^7.5.4"
+ "@types/json-schema": "^7.0.15",
+ "@types/semver": "^7.5.8",
+ "@typescript-eslint/scope-manager": "7.8.0",
+ "@typescript-eslint/types": "7.8.0",
+ "@typescript-eslint/typescript-estree": "7.8.0",
+ "semver": "^7.6.0"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
+ "eslint": "^8.56.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.21.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
- "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz",
+ "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==",
"dev": true,
"peer": true,
"dependencies": {
- "@typescript-eslint/types": "6.21.0",
- "eslint-visitor-keys": "^3.4.1"
+ "@typescript-eslint/types": "7.8.0",
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
- "node": "^16.0.0 || >=18.0.0"
+ "node": "^18.18.0 || >=20.0.0"
},
"funding": {
"type": "opencollective",
@@ -3239,15 +2713,15 @@
"dev": true
},
"node_modules/@wdio/config": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.31.0.tgz",
- "integrity": "sha512-/Ie+Qda9nE5C8TOvCunc8YgLdpkphH0djwwHDlmXzva+y3vpsCbQnA5OP6bodry193cX6timLHzsoc7n3puzDQ==",
+ "version": "8.36.1",
+ "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.36.1.tgz",
+ "integrity": "sha512-yCENnym0CrYuLKMJ3fv00WkjCR8QpPqVohGBkq5FvZOZpVJEpoG86Q8l4HtyRnd6ggMTKCA1vTQ/myhbPmZmaQ==",
"dev": true,
"peer": true,
"dependencies": {
"@wdio/logger": "8.28.0",
- "@wdio/types": "8.31.0",
- "@wdio/utils": "8.31.0",
+ "@wdio/types": "8.36.1",
+ "@wdio/utils": "8.36.1",
"decamelize": "^6.0.0",
"deepmerge-ts": "^5.0.0",
"glob": "^10.2.2",
@@ -3316,16 +2790,16 @@
}
},
"node_modules/@wdio/protocols": {
- "version": "8.29.7",
- "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.29.7.tgz",
- "integrity": "sha512-9hhEePMLmI8fm9F2v4jlg9x4w4jEoZmY3vT6fXy90ne1DFaGWfy/a853nKEagQe/ZzxkN3/cpMBh8mryv9BVjw==",
+ "version": "8.32.0",
+ "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.32.0.tgz",
+ "integrity": "sha512-inLJRrtIGdTz/YPbcsvpSvPlYQFTVtF3OYBwAXhG2FiP1ZwE1CQNLP/xgRGye1ymdGCypGkexRqIx3KBGm801Q==",
"dev": true,
"peer": true
},
"node_modules/@wdio/types": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.31.0.tgz",
- "integrity": "sha512-uHAeJ5JMHCOkLXdwht+uS4QC7Pz3piEcEKGzsz6TJzvTgZLhxRlUfYkkxogbae05DZBHnRKfZD+XWH92cjgsIg==",
+ "version": "8.36.1",
+ "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.36.1.tgz",
+ "integrity": "sha512-kKtyJbypasKo/VQuJ6dTQQwFtHE9qoygjoCZjrQCLGraRSjOEiqZHPR0497wbeCvcgHIYyImbmcylqZNGUE0CQ==",
"dev": true,
"peer": true,
"dependencies": {
@@ -3335,16 +2809,26 @@
"node": "^16.13 || >=18"
}
},
+ "node_modules/@wdio/types/node_modules/@types/node": {
+ "version": "20.12.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
+ "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
"node_modules/@wdio/utils": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.31.0.tgz",
- "integrity": "sha512-gCsNh1ejiwnjnyYBBz1SQs9kT81+QN2JjVgQellR18KS3K30u96+gutXtU9CefKF+48uYw7bJPyx5d4mL1908g==",
+ "version": "8.36.1",
+ "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.36.1.tgz",
+ "integrity": "sha512-xmgPHU11/o9n2FeRmDFkPRC0okiwA1i2xOcR2c3aSpuk99XkAm9RaMn/6u9LFaqsCpgaVxazcYEGSceO7U4hZA==",
"dev": true,
"peer": true,
"dependencies": {
"@puppeteer/browsers": "^1.6.0",
"@wdio/logger": "8.28.0",
- "@wdio/types": "8.31.0",
+ "@wdio/types": "8.36.1",
"decamelize": "^6.0.0",
"deepmerge-ts": "^5.1.0",
"edgedriver": "^5.3.5",
@@ -3361,9 +2845,9 @@
}
},
"node_modules/@webassemblyjs/ast": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
- "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
+ "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
"dev": true,
"dependencies": {
"@webassemblyjs/helper-numbers": "1.11.6",
@@ -3383,9 +2867,9 @@
"dev": true
},
"node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
- "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
+ "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
"dev": true
},
"node_modules/@webassemblyjs/helper-numbers": {
@@ -3406,15 +2890,15 @@
"dev": true
},
"node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
- "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
+ "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6"
+ "@webassemblyjs/wasm-gen": "1.12.1"
}
},
"node_modules/@webassemblyjs/ieee754": {
@@ -3442,28 +2926,28 @@
"dev": true
},
"node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
- "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
+ "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/helper-wasm-section": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6",
- "@webassemblyjs/wasm-opt": "1.11.6",
- "@webassemblyjs/wasm-parser": "1.11.6",
- "@webassemblyjs/wast-printer": "1.11.6"
+ "@webassemblyjs/helper-wasm-section": "1.12.1",
+ "@webassemblyjs/wasm-gen": "1.12.1",
+ "@webassemblyjs/wasm-opt": "1.12.1",
+ "@webassemblyjs/wasm-parser": "1.12.1",
+ "@webassemblyjs/wast-printer": "1.12.1"
}
},
"node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
- "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
+ "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6",
"@webassemblyjs/ieee754": "1.11.6",
"@webassemblyjs/leb128": "1.11.6",
@@ -3471,24 +2955,24 @@
}
},
"node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
- "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
+ "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6",
- "@webassemblyjs/wasm-parser": "1.11.6"
+ "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/helper-buffer": "1.12.1",
+ "@webassemblyjs/wasm-gen": "1.12.1",
+ "@webassemblyjs/wasm-parser": "1.12.1"
}
},
"node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
- "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
+ "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-api-error": "1.11.6",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6",
"@webassemblyjs/ieee754": "1.11.6",
@@ -3497,12 +2981,12 @@
}
},
"node_modules/@webassemblyjs/wast-printer": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
- "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
+ "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
"dev": true,
"dependencies": {
- "@webassemblyjs/ast": "1.11.6",
+ "@webassemblyjs/ast": "1.12.1",
"@xtuc/long": "4.2.2"
}
},
@@ -3562,6 +3046,17 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true
},
+ "node_modules/abort-controller": {
+ "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"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@@ -3616,9 +3111,9 @@
}
},
"node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
"dev": true,
"peer": true,
"dependencies": {
@@ -3716,13 +3211,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/any-base": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz",
- "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==",
- "dev": true,
- "peer": true
- },
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
@@ -3746,27 +3234,6 @@
"resolved": "how-to/create-window",
"link": true
},
- "node_modules/arch": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
- "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "peer": true
- },
"node_modules/are-docs-informative": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
@@ -3822,15 +3289,16 @@
"dev": true
},
"node_modules/array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
"is-string": "^1.0.7"
},
"engines": {
@@ -3850,6 +3318,27 @@
"node": ">=8"
}
},
+ "node_modules/array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/array.prototype.flat": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
@@ -3887,6 +3376,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/array.prototype.toreversed": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz",
+ "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
"node_modules/array.prototype.tosorted": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
@@ -3924,12 +3426,12 @@
}
},
"node_modules/assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
"dev": true,
"engines": {
- "node": "*"
+ "node": ">=12"
}
},
"node_modules/ast-types": {
@@ -3952,15 +3454,10 @@
"dev": true,
"peer": true
},
- "node_modules/asynciterator.prototype": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
- "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "has-symbols": "^1.0.3"
- }
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
},
"node_modules/automation-testing-create-window-js": {
"resolved": "how-to/automation-testing/create-window-js",
@@ -3975,10 +3472,13 @@
"link": true
},
"node_modules/available-typed-arrays": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
- "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dev": true,
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -3996,6 +3496,16 @@
"node": ">=4"
}
},
+ "node_modules/axios": {
+ "version": "1.6.8",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
+ "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/axobject-query": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
@@ -4142,11 +3652,61 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
+ "node_modules/bare-events": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz",
+ "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==",
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/bare-fs": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz",
+ "integrity": "sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "bare-events": "^2.0.0",
+ "bare-path": "^2.0.0",
+ "bare-stream": "^1.0.0"
+ }
+ },
+ "node_modules/bare-os": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz",
+ "integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==",
+ "dev": true,
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/bare-path": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz",
+ "integrity": "sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "bare-os": "^2.1.0"
+ }
+ },
+ "node_modules/bare-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz",
+ "integrity": "sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "streamx": "^2.16.1"
+ }
+ },
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -4160,13 +3720,12 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "peer": true
+ ]
},
"node_modules/basic-ftp": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.4.tgz",
- "integrity": "sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz",
+ "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
"dev": true,
"peer": true,
"engines": {
@@ -4183,38 +3742,51 @@
"node": ">=0.6"
}
},
- "node_modules/binary": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
- "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==",
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"dev": true,
"peer": true,
- "dependencies": {
- "buffers": "~0.1.1",
- "chainsaw": "~0.1.0"
- },
"engines": {
- "node": "*"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "peer": true,
+ "node_modules/bl": {
+ "version": "6.0.12",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.12.tgz",
+ "integrity": "sha512-EnEYHilP93oaOa2MnmNEjAcovPS3JlQZOyzGXi3EyEpPhm9qWvdDp7BmAVEVusGzp8LlwQK56Av+OkDoRjzE0w==",
+ "dependencies": {
+ "@types/readable-stream": "^4.0.0",
+ "buffer": "^6.0.3",
+ "inherits": "^2.0.4",
+ "readable-stream": "^4.2.0"
+ }
+ },
+ "node_modules/bl/node_modules/readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
"engines": {
- "node": ">=8"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "dev": true,
- "peer": true,
+ "node_modules/bl/node_modules/string_decoder": {
+ "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==",
"dependencies": {
- "file-uri-to-path": "1.0.0"
+ "safe-buffer": "~5.2.0"
}
},
"node_modules/bluebird": {
@@ -4224,13 +3796,6 @@
"dev": true,
"peer": true
},
- "node_modules/bmp-js": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
- "integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==",
- "dev": true,
- "peer": true
- },
"node_modules/body-parser": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
@@ -4299,9 +3864,9 @@
"peer": true
},
"node_modules/browserslist": {
- "version": "4.22.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
- "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
"dev": true,
"funding": [
{
@@ -4318,8 +3883,8 @@
}
],
"dependencies": {
- "caniuse-lite": "^1.0.30001580",
- "electron-to-chromium": "^1.4.648",
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
"node-releases": "^2.0.14",
"update-browserslist-db": "^1.0.13"
},
@@ -4354,10 +3919,9 @@
}
},
"node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"funding": [
{
"type": "github",
@@ -4372,30 +3936,19 @@
"url": "https://feross.org/support"
}
],
- "peer": true,
"dependencies": {
"base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
+ "ieee754": "^1.2.1"
}
},
"node_modules/buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/buffer-equal": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
- "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==",
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
"dev": true,
"peer": true,
"engines": {
- "node": ">=0.4.0"
+ "node": "*"
}
},
"node_modules/buffer-from": {
@@ -4403,26 +3956,6 @@
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
- "node_modules/buffer-indexof-polyfill": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
- "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/buffers": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
- "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.2.0"
- }
- },
"node_modules/builtin-modules": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
@@ -4484,29 +4017,17 @@
"node": ">=14.16"
}
},
- "node_modules/cacheable-request/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/call-bind": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz",
- "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"dev": true,
"dependencies": {
+ "es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.3",
- "set-function-length": "^1.2.0"
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -4535,9 +4056,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001585",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz",
- "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==",
+ "version": "1.0.30001617",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz",
+ "integrity": "sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==",
"dev": true,
"funding": [
{
@@ -4555,34 +4076,19 @@
]
},
"node_modules/chai": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz",
- "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==",
- "dev": true,
- "dependencies": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^4.1.2",
- "get-func-name": "^2.0.0",
- "loupe": "^2.3.1",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.5"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/chainsaw": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
- "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.0.tgz",
+ "integrity": "sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==",
"dev": true,
- "peer": true,
"dependencies": {
- "traverse": ">=0.3.0 <0.4"
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.0.0",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=12"
}
},
"node_modules/chalk": {
@@ -4612,15 +4118,12 @@
}
},
"node_modules/check-error": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
- "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
+ "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
"dev": true,
- "dependencies": {
- "get-func-name": "^2.0.2"
- },
"engines": {
- "node": "*"
+ "node": ">= 16"
}
},
"node_modules/chokidar": {
@@ -4674,9 +4177,9 @@
}
},
"node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+ "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
"dev": true,
"funding": [
{
@@ -4689,9 +4192,9 @@
}
},
"node_modules/cjs-module-lexer": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
- "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz",
+ "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==",
"dev": true,
"peer": true
},
@@ -4716,21 +4219,6 @@
"node": ">=0.8.0"
}
},
- "node_modules/clipboardy": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz",
- "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "arch": "^2.1.1",
- "execa": "^1.0.0",
- "is-wsl": "^2.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -4848,13 +4336,24 @@
"node": ">=0.1.90"
}
},
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/commander": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
- "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz",
+ "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==",
"dev": true,
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/comment-parser": {
@@ -4866,6 +4365,11 @@
"node": ">= 12.0.0"
}
},
+ "node_modules/commist": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/commist/-/commist-3.2.0.tgz",
+ "integrity": "sha512-4PIMoPniho+LqXmpS5d3NuGYncG6XWlkBSVGiWycL22dd42OYdUGil2CWuzklaJoNxyxUSpO4MKIBU94viWNAw=="
+ },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -4907,6 +4411,10 @@
"resolved": "how-to/container-platform-starter",
"link": true
},
+ "node_modules/container-starter-use-interop--cloud-interop": {
+ "resolved": "how-to/use-interop/cloud-interop",
+ "link": true
+ },
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -4936,9 +4444,9 @@
"peer": true
},
"node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
+ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
"dev": true,
"engines": {
"node": ">= 0.6"
@@ -4950,6 +4458,19 @@
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
"dev": true
},
+ "node_modules/core-js-compat": {
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+ "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
+ "dev": true,
+ "dependencies": {
+ "browserslist": "^4.23.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -5026,6 +4547,57 @@
"node": ">= 12"
}
},
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/dateformat": {
"version": "4.6.3",
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
@@ -5039,7 +4611,6 @@
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
"dependencies": {
"ms": "2.1.2"
},
@@ -5095,9 +4666,9 @@
}
},
"node_modules/dedent": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz",
- "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz",
+ "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==",
"dev": true,
"peer": true,
"peerDependencies": {
@@ -5110,13 +4681,10 @@
}
},
"node_modules/deep-eql": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz",
- "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.1.tgz",
+ "integrity": "sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==",
"dev": true,
- "dependencies": {
- "type-detect": "^4.0.0"
- },
"engines": {
"node": ">=6"
}
@@ -5167,18 +4735,20 @@
}
},
"node_modules/define-data-property": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz",
- "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dev": true,
"dependencies": {
+ "es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.2",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.1"
+ "gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/define-properties": {
@@ -5213,6 +4783,14 @@
"node": ">= 14"
}
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -5296,13 +4874,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/dom-walk": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
- "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==",
- "dev": true,
- "peer": true
- },
"node_modules/duplexer2": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
@@ -5337,18 +4908,18 @@
}
},
"node_modules/edgedriver": {
- "version": "5.3.9",
- "resolved": "https://registry.npmjs.org/edgedriver/-/edgedriver-5.3.9.tgz",
- "integrity": "sha512-G0wNgFMFRDnFfKaXG2R6HiyVHqhKwdQ3EgoxW3wPlns2wKqem7F+HgkWBcevN7Vz0nN4AXtskID7/6jsYDXcKw==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/edgedriver/-/edgedriver-5.4.0.tgz",
+ "integrity": "sha512-5gA79cSdvB/wucK809OTxKP3hsVyXVROE8DL9vFiReYbknghadioV5pFXRr2kA4MZKJMKNsNCsInmaLeyCf03A==",
"dev": true,
"hasInstallScript": true,
"peer": true,
"dependencies": {
- "@wdio/logger": "^8.16.17",
+ "@wdio/logger": "^8.28.0",
"decamelize": "^6.0.0",
"edge-paths": "^3.0.5",
"node-fetch": "^3.3.2",
- "unzipper": "^0.10.14",
+ "unzipper": "^0.11.4",
"which": "^4.0.0"
},
"bin": {
@@ -5388,9 +4959,9 @@
"dev": true
},
"node_modules/electron-to-chromium": {
- "version": "1.4.659",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz",
- "integrity": "sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg==",
+ "version": "1.4.761",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.761.tgz",
+ "integrity": "sha512-PIbxpiJGx6Bb8dQaonNc6CGTRlVntdLg/2nMa1YhnrwYOORY9a3ZgGN0UQYE6lAcj/lkyduJN7BPt/JiY+jAQQ==",
"dev": true
},
"node_modules/emittery": {
@@ -5432,9 +5003,9 @@
}
},
"node_modules/enhanced-resolve": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
- "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
+ "version": "5.16.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.1.tgz",
+ "integrity": "sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.4",
@@ -5445,9 +5016,9 @@
}
},
"node_modules/entities": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
- "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"dev": true,
"engines": {
"node": ">=0.12"
@@ -5457,9 +5028,9 @@
}
},
"node_modules/envinfo": {
- "version": "7.11.1",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz",
- "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==",
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz",
+ "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==",
"dev": true,
"bin": {
"envinfo": "dist/cli.js"
@@ -5478,50 +5049,57 @@
}
},
"node_modules/es-abstract": {
- "version": "1.22.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
- "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
"dev": true,
"dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.2",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.5",
- "es-set-tostringtag": "^2.0.1",
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
"es-to-primitive": "^1.2.1",
"function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.2",
- "get-symbol-description": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "hasown": "^2.0.0",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
+ "is-shared-array-buffer": "^1.0.3",
"is-string": "^1.0.7",
- "is-typed-array": "^1.1.12",
+ "is-typed-array": "^1.1.13",
"is-weakref": "^1.0.2",
"object-inspect": "^1.13.1",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.1",
- "safe-array-concat": "^1.0.1",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.8",
- "string.prototype.trimend": "^1.0.7",
- "string.prototype.trimstart": "^1.0.7",
- "typed-array-buffer": "^1.0.0",
- "typed-array-byte-length": "^1.0.0",
- "typed-array-byte-offset": "^1.0.0",
- "typed-array-length": "^1.0.4",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.2",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.13"
+ "which-typed-array": "^1.1.15"
},
"engines": {
"node": ">= 0.4"
@@ -5530,6 +5108,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
@@ -5540,43 +5130,58 @@
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.0.15",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz",
- "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==",
+ "version": "1.0.19",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz",
+ "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==",
"dev": true,
"peer": true,
"dependencies": {
- "asynciterator.prototype": "^1.0.0",
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.1",
- "es-set-tostringtag": "^2.0.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
"globalthis": "^1.0.3",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
+ "internal-slot": "^1.0.7",
"iterator.prototype": "^1.1.2",
- "safe-array-concat": "^1.0.1"
+ "safe-array-concat": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/es-module-lexer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz",
- "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.2.tgz",
+ "integrity": "sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==",
"dev": true
},
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-set-tostringtag": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
- "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.2.2",
- "has-tostringtag": "^1.0.0",
- "hasown": "^2.0.0"
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -5657,17 +5262,28 @@
"source-map": "~0.6.1"
}
},
+ "node_modules/escodegen/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "optional": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/eslint": {
- "version": "8.53.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz",
- "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.3",
- "@eslint/js": "8.53.0",
- "@humanwhocodes/config-array": "^0.11.13",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
@@ -5762,24 +5378,23 @@
}
},
"node_modules/eslint-config-airbnb-typescript": {
- "version": "17.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz",
- "integrity": "sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==",
+ "version": "18.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz",
+ "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==",
"dev": true,
"dependencies": {
"eslint-config-airbnb-base": "^15.0.0"
},
"peerDependencies": {
- "@typescript-eslint/eslint-plugin": "^5.13.0 || ^6.0.0",
- "@typescript-eslint/parser": "^5.0.0 || ^6.0.0",
- "eslint": "^7.32.0 || ^8.2.0",
- "eslint-plugin-import": "^2.25.3"
+ "@typescript-eslint/eslint-plugin": "^7.0.0",
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
}
},
"node_modules/eslint-config-prettier": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
- "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+ "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
@@ -5809,9 +5424,9 @@
}
},
"node_modules/eslint-module-utils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
- "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz",
+ "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==",
"dev": true,
"dependencies": {
"debug": "^3.2.7"
@@ -5911,26 +5526,26 @@
"dev": true
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "46.9.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.9.0.tgz",
- "integrity": "sha512-UQuEtbqLNkPf5Nr/6PPRCtr9xypXY+g8y/Q7gPa0YK7eDhh0y2lWprXRnaYbW7ACgIUvpDKy9X2bZqxtGzBG9Q==",
+ "version": "48.2.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.3.tgz",
+ "integrity": "sha512-r9DMAmFs66VNvNqRLLjHejdnJtILrt3xGi+Qx0op0oRfFGVpOR1Hb3BC++MacseHx93d8SKYPhyrC9BS7Os2QA==",
"dev": true,
"dependencies": {
- "@es-joy/jsdoccomment": "~0.41.0",
+ "@es-joy/jsdoccomment": "~0.42.0",
"are-docs-informative": "^0.0.2",
"comment-parser": "1.4.1",
"debug": "^4.3.4",
"escape-string-regexp": "^4.0.0",
"esquery": "^1.5.0",
"is-builtin-module": "^3.2.1",
- "semver": "^7.5.4",
- "spdx-expression-parse": "^3.0.1"
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^4.0.0"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
+ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-jsx-a11y": {
@@ -5989,23 +5604,24 @@
}
},
"node_modules/eslint-plugin-prettier": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz",
- "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
+ "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
"dev": true,
"dependencies": {
"prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.8.5"
+ "synckit": "^0.8.6"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"funding": {
- "url": "https://opencollective.com/prettier"
+ "url": "https://opencollective.com/eslint-plugin-prettier"
},
"peerDependencies": {
"@types/eslint": ">=8.0.0",
"eslint": ">=8.0.0",
+ "eslint-config-prettier": "*",
"prettier": ">=3.0.0"
},
"peerDependenciesMeta": {
@@ -6030,28 +5646,30 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.33.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
- "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
+ "version": "7.34.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz",
+ "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==",
"dev": true,
"peer": true,
"dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "array.prototype.tosorted": "^1.1.1",
+ "array-includes": "^3.1.7",
+ "array.prototype.findlast": "^1.2.4",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.toreversed": "^1.1.2",
+ "array.prototype.tosorted": "^1.1.3",
"doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.12",
+ "es-iterator-helpers": "^1.0.17",
"estraverse": "^5.3.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "object.hasown": "^1.1.2",
- "object.values": "^1.1.6",
+ "object.entries": "^1.1.7",
+ "object.fromentries": "^2.0.7",
+ "object.hasown": "^1.1.3",
+ "object.values": "^1.1.7",
"prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.4",
+ "resolve": "^2.0.0-next.5",
"semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.8"
+ "string.prototype.matchall": "^4.0.10"
},
"engines": {
"node": ">=4"
@@ -6061,9 +5679,9 @@
}
},
"node_modules/eslint-plugin-react-hooks": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
- "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
+ "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
"dev": true,
"peer": true,
"engines": {
@@ -6139,24 +5757,26 @@
}
},
"node_modules/eslint-plugin-simple-import-sort": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz",
- "integrity": "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==",
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.0.tgz",
+ "integrity": "sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==",
"dev": true,
"peerDependencies": {
"eslint": ">=5.0.0"
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "49.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-49.0.0.tgz",
- "integrity": "sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==",
+ "version": "52.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-52.0.0.tgz",
+ "integrity": "sha512-1Yzm7/m+0R4djH0tjDjfVei/ju2w3AzUGjG6q8JnuNIL5xIwsflyCooW5sfBvQp2pMYQFSWWCFONsjCax1EHng==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.22.20",
"@eslint-community/eslint-utils": "^4.4.0",
- "ci-info": "^3.8.0",
+ "@eslint/eslintrc": "^2.1.4",
+ "ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
+ "core-js-compat": "^3.34.0",
"esquery": "^1.5.0",
"indent-string": "^4.0.0",
"is-builtin-module": "^3.2.1",
@@ -6175,13 +5795,13 @@
"url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
},
"peerDependencies": {
- "eslint": ">=8.52.0"
+ "eslint": ">=8.56.0"
}
},
"node_modules/eslint-plugin-unused-imports": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz",
- "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz",
+ "integrity": "sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==",
"dev": true,
"dependencies": {
"eslint-rule-composer": "^0.3.0"
@@ -6190,8 +5810,8 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"peerDependencies": {
- "@typescript-eslint/eslint-plugin": "^6.0.0",
- "eslint": "^8.0.0"
+ "@typescript-eslint/eslint-plugin": "6 - 7",
+ "eslint": "8"
},
"peerDependenciesMeta": {
"@typescript-eslint/eslint-plugin": {
@@ -6340,92 +5960,44 @@
"node": ">= 0.6"
}
},
+ "node_modules/event-target-shim": {
+ "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==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "dev": true,
"engines": {
"node": ">=0.8.x"
}
},
- "node_modules/execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "cross-spawn": "^6.0.0",
- "get-stream": "^4.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/execa/node_modules/cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- },
- "engines": {
- "node": ">=4.8"
- }
- },
- "node_modules/execa/node_modules/path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/execa/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "peer": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/execa/node_modules/shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
"peer": true,
"dependencies": {
- "shebang-regex": "^1.0.0"
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/execa/node_modules/shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
"node_modules/execa/node_modules/signal-exit": {
@@ -6435,26 +6007,6 @@
"dev": true,
"peer": true
},
- "node_modules/execa/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/exif-parser": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz",
- "integrity": "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==",
- "dev": true,
- "peer": true
- },
"node_modules/exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -6483,17 +6035,17 @@
}
},
"node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+ "version": "4.19.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
+ "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
"dev": true,
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.20.1",
+ "body-parser": "1.20.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.5.0",
+ "cookie": "0.6.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
@@ -6524,30 +6076,6 @@
"node": ">= 0.10.0"
}
},
- "node_modules/express/node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -6563,21 +6091,6 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
},
- "node_modules/express/node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dev": true,
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/extract-zip": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
@@ -6674,6 +6187,18 @@
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true
},
+ "node_modules/fast-unique-numbers": {
+ "version": "8.0.13",
+ "resolved": "https://registry.npmjs.org/fast-unique-numbers/-/fast-unique-numbers-8.0.13.tgz",
+ "integrity": "sha512-7OnTFAVPefgw2eBJ1xj2PGGR9FwYzSUso9decayHgCDX4sJkHLdcsYTytTg+tYv+wKF3U8gJuSBz2jJpQV4u/g==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.8",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.1.0"
+ }
+ },
"node_modules/fastest-levenshtein": {
"version": "1.0.16",
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
@@ -6748,31 +6273,6 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/file-type": {
- "version": "16.5.4",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
- "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "readable-web-to-node-stream": "^3.0.0",
- "strtok3": "^6.2.4",
- "token-types": "^4.1.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/file-type?sponsor=1"
- }
- },
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "dev": true,
- "peer": true
- },
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -6858,11 +6358,30 @@
}
},
"node_modules/flatted": {
- "version": "3.2.9",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
- "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
"dev": true
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
@@ -6888,6 +6407,19 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/form-data-encoder": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
@@ -6930,9 +6462,9 @@
}
},
"node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
"dev": true,
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -7081,20 +6613,20 @@
}
},
"node_modules/geckodriver": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-4.3.2.tgz",
- "integrity": "sha512-TNOoy+ULXJWI5XOq7CXD3PAD9TJa4NjMe7nKUXjlIsf+vezuaRsFgPwcgYdEem1K7106wabYsqr7Kqn51g0sJg==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-4.4.0.tgz",
+ "integrity": "sha512-Y/Np2VkAhBkJoFAIY3pKH3rICUcR5rH9VD6EHwh0CqUIh6Opzr/NFwfcQenYfbRT/659R15/35LpA1s6h9wPPg==",
"dev": true,
"hasInstallScript": true,
"peer": true,
"dependencies": {
"@wdio/logger": "^8.28.0",
"decamelize": "^6.0.0",
- "http-proxy-agent": "^7.0.0",
- "https-proxy-agent": "^7.0.2",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.4",
"node-fetch": "^3.3.2",
- "tar-fs": "^3.0.4",
- "unzipper": "^0.10.14",
+ "tar-fs": "^3.0.6",
+ "unzipper": "^0.11.4",
"which": "^4.0.0"
},
"bin": {
@@ -7114,6 +6646,21 @@
"node": ">=16"
}
},
+ "node_modules/geckodriver/node_modules/tar-fs": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz",
+ "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
+ },
+ "optionalDependencies": {
+ "bare-fs": "^2.1.1",
+ "bare-path": "^2.1.0"
+ }
+ },
"node_modules/geckodriver/node_modules/which": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
@@ -7188,9 +6735,9 @@
}
},
"node_modules/get-port": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.0.0.tgz",
- "integrity": "sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz",
+ "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==",
"dev": true,
"peer": true,
"engines": {
@@ -7213,26 +6760,27 @@
}
},
"node_modules/get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true,
"peer": true,
- "dependencies": {
- "pump": "^3.0.0"
- },
"engines": {
- "node": ">=6"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/get-symbol-description": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.1.tgz",
- "integrity": "sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.5",
- "es-errors": "^1.3.0"
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
},
"engines": {
"node": ">= 0.4"
@@ -7242,88 +6790,42 @@
}
},
"node_modules/get-uri": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.2.tgz",
- "integrity": "sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz",
+ "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==",
"dev": true,
"peer": true,
"dependencies": {
"basic-ftp": "^5.0.2",
- "data-uri-to-buffer": "^6.0.0",
+ "data-uri-to-buffer": "^6.0.2",
"debug": "^4.3.4",
- "fs-extra": "^8.1.0"
+ "fs-extra": "^11.2.0"
},
"engines": {
"node": ">= 14"
}
},
"node_modules/get-uri/node_modules/data-uri-to-buffer": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz",
- "integrity": "sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
+ "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
"dev": true,
"peer": true,
"engines": {
"node": ">= 14"
}
},
- "node_modules/get-uri/node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/get-uri/node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
- "peer": true,
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/get-uri/node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/gifwrap": {
- "version": "0.9.4",
- "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.4.tgz",
- "integrity": "sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "image-q": "^4.0.0",
- "omggif": "^1.0.10"
- }
- },
"node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "version": "10.3.12",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz",
+ "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
"dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
+ "jackspeak": "^2.3.6",
"minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.10.2"
},
"bin": {
"glob": "dist/esm/bin.mjs"
@@ -7353,17 +6855,6 @@
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
"dev": true
},
- "node_modules/global": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz",
- "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "min-document": "^2.19.0",
- "process": "^0.11.10"
- }
- },
"node_modules/globals": {
"version": "13.24.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
@@ -7380,12 +6871,13 @@
}
},
"node_modules/globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dev": true,
"dependencies": {
- "define-properties": "^1.1.3"
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -7453,19 +6945,6 @@
"url": "https://github.com/sindresorhus/got?sponsor=1"
}
},
- "node_modules/got/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
@@ -7506,21 +6985,21 @@
}
},
"node_modules/has-property-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
- "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dev": true,
"dependencies": {
- "get-intrinsic": "^1.2.2"
+ "es-define-property": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"dev": true,
"engines": {
"node": ">= 0.4"
@@ -7557,9 +7036,9 @@
}
},
"node_modules/hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.2"
@@ -7578,6 +7057,11 @@
"he": "bin/he"
}
},
+ "node_modules/help-me": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz",
+ "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg=="
+ },
"node_modules/hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
@@ -7615,9 +7099,9 @@
}
},
"node_modules/http-proxy-agent": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
- "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
"dev": true,
"peer": true,
"dependencies": {
@@ -7643,9 +7127,9 @@
}
},
"node_modules/https-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
+ "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
"dev": true,
"peer": true,
"dependencies": {
@@ -7682,7 +7166,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -7696,8 +7179,7 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "peer": true
+ ]
},
"node_modules/ignore": {
"version": "5.3.1",
@@ -7708,23 +7190,6 @@
"node": ">= 4"
}
},
- "node_modules/image-q": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/image-q/-/image-q-4.0.0.tgz",
- "integrity": "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@types/node": "16.9.1"
- }
- },
- "node_modules/image-q/node_modules/@types/node": {
- "version": "16.9.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
- "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==",
- "dev": true,
- "peer": true
- },
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
@@ -7767,9 +7232,9 @@
}
},
"node_modules/import-meta-resolve": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz",
- "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
+ "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
"dev": true,
"peer": true,
"funding": {
@@ -7811,9 +7276,9 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz",
- "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz",
+ "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==",
"dev": true,
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -7846,12 +7311,19 @@
"node": ">=10.13.0"
}
},
- "node_modules/ip": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
- "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
+ "node_modules/ip-address": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+ "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
"dev": true,
- "peer": true
+ "peer": true,
+ "dependencies": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
@@ -7980,13 +7452,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
"dev": true,
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -7995,20 +7467,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
"dev": true,
- "peer": true,
- "bin": {
- "is-docker": "cli.js"
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-extglob": {
@@ -8042,13 +7513,6 @@
"node": ">=8"
}
},
- "node_modules/is-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz",
- "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==",
- "dev": true,
- "peer": true
- },
"node_modules/is-generator-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
@@ -8088,19 +7552,22 @@
}
},
"node_modules/is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
"dev": true,
"peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true,
"engines": {
"node": ">= 0.4"
@@ -8181,35 +7648,44 @@
}
},
"node_modules/is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"dev": true,
"peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"dev": true,
"peer": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-string": {
@@ -8271,11 +7747,14 @@
}
},
"node_modules/is-weakmap": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
"dev": true,
"peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -8293,37 +7772,26 @@
}
},
"node_modules/is-weakset": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
"dev": true,
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "is-docker": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"node_modules/isexe": {
"version": "2.0.0",
@@ -8351,15 +7819,15 @@
}
},
"node_modules/istanbul-lib-instrument": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz",
- "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz",
+ "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==",
"dev": true,
"peer": true,
"dependencies": {
- "@babel/core": "^7.12.3",
- "@babel/parser": "^7.14.7",
- "@istanbuljs/schema": "^0.1.2",
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
"istanbul-lib-coverage": "^3.2.0",
"semver": "^7.5.4"
},
@@ -8397,10 +7865,20 @@
"node": ">=10"
}
},
+ "node_modules/istanbul-lib-source-maps/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/istanbul-reports": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
- "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
+ "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
"dev": true,
"peer": true,
"dependencies": {
@@ -8458,9 +7936,9 @@
}
},
"node_modules/jasmine-core": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz",
- "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz",
+ "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==",
"dev": true,
"peer": true
},
@@ -8516,76 +7994,6 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/jest-changed-files/node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/jest-changed-files/node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-changed-files/node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-changed-files/node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-changed-files/node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true,
- "peer": true
- },
"node_modules/jest-circus": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
@@ -8709,6 +8117,22 @@
"concat-map": "0.0.1"
}
},
+ "node_modules/jest-config/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-config/node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -8843,6 +8267,38 @@
"fsevents": "^2.3.2"
}
},
+ "node_modules/jest-haste-map/node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-haste-map/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
"node_modules/jest-leak-detector": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
@@ -9005,6 +8461,59 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/jest-runner/node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
"node_modules/jest-runtime": {
"version": "29.7.0",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
@@ -9132,16 +8641,32 @@
"integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
"dev": true,
"peer": true,
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-util/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "peer": true,
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">=8"
}
},
"node_modules/jest-validate": {
@@ -9196,19 +8721,17 @@
}
},
"node_modules/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
"dev": true,
- "peer": true,
"dependencies": {
"@types/node": "*",
- "jest-util": "^29.7.0",
"merge-stream": "^2.0.0",
"supports-color": "^8.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": ">= 10.13.0"
}
},
"node_modules/jest-worker/node_modules/supports-color": {
@@ -9216,7 +8739,6 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
- "peer": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9227,34 +8749,15 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/jimp": {
- "version": "0.16.13",
- "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.13.tgz",
- "integrity": "sha512-Bxz8q7V4rnCky9A0ktTNGA9SkNFVWRHodddI/DaAWZJzF7sVUlFYKQ60y9JGqrKpi48ECA/TnfMzzc5C70VByA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@babel/runtime": "^7.7.2",
- "@jimp/custom": "^0.16.13",
- "@jimp/plugins": "^0.16.13",
- "@jimp/types": "^0.16.13",
- "regenerator-runtime": "^0.13.3"
+ "node_modules/js-sdsl": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
+ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
}
},
- "node_modules/jimp/node_modules/regenerator-runtime": {
- "version": "0.13.11",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
- "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
- "dev": true,
- "peer": true
- },
- "node_modules/jpeg-js": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz",
- "integrity": "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==",
- "dev": true,
- "peer": true
- },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -9273,6 +8776,13 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/jsbn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/jsdoc-type-pratt-parser": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
@@ -9354,6 +8864,15 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/jsonpointer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz",
+ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/jsx-ast-utils": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
@@ -9486,36 +9005,12 @@
"dev": true
},
"node_modules/linkify-it": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
- "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
- "dev": true,
- "dependencies": {
- "uc.micro": "^1.0.1"
- }
- },
- "node_modules/listenercount": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
- "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/load-bmfont": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz",
- "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "buffer-equal": "0.0.1",
- "mime": "^1.3.4",
- "parse-bmfont-ascii": "^1.0.3",
- "parse-bmfont-binary": "^1.0.5",
- "parse-bmfont-xml": "^1.1.4",
- "phin": "^2.9.1",
- "xhr": "^2.0.1",
- "xtend": "^4.0.0"
+ "uc.micro": "^2.0.0"
}
},
"node_modules/loader-runner": {
@@ -9528,13 +9023,23 @@
}
},
"node_modules/locate-app": {
- "version": "2.2.16",
- "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.2.16.tgz",
- "integrity": "sha512-sow/QqZf7vaW2upRxPrpv7CVPmHXIyiR3oMJ8NXlul6e9mKasLsbExBueBhelxvjWtl9xXKER8OUndycArGQxw==",
+ "version": "2.4.13",
+ "resolved": "https://registry.npmjs.org/locate-app/-/locate-app-2.4.13.tgz",
+ "integrity": "sha512-hnhghqQKQYQP7v9Ls3af03RE23xtJduXmKRnIgZgB1lsqMhdUFV008ZltWHt7b3HxvWF1vhz4MkCfEKPoCjTIg==",
"dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://buymeacoffee.com/hejny"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/hejny/locate-app/blob/main/README.md#%EF%B8%8F-contributing"
+ }
+ ],
"peer": true,
"dependencies": {
- "n12": "1.8.19",
+ "@promptbook/utils": "0.48.0-1",
"type-fest": "2.13.0",
"userhome": "1.0.0"
}
@@ -9570,8 +9075,7 @@
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash.isempty": {
"version": "4.4.0",
@@ -9661,9 +9165,9 @@
}
},
"node_modules/loupe": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
- "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.0.tgz",
+ "integrity": "sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==",
"dev": true,
"dependencies": {
"get-func-name": "^2.0.1"
@@ -9683,10 +9187,9 @@
}
},
"node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
- "dev": true,
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
+ "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
"engines": {
"node": "14 || >=16.14"
}
@@ -9725,79 +9228,79 @@
}
},
"node_modules/markdown-it": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
- "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"dev": true,
"dependencies": {
"argparse": "^2.0.1",
- "entities": "~3.0.1",
- "linkify-it": "^4.0.1",
- "mdurl": "^1.0.1",
- "uc.micro": "^1.0.5"
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
},
"bin": {
- "markdown-it": "bin/markdown-it.js"
+ "markdown-it": "bin/markdown-it.mjs"
}
},
"node_modules/markdownlint": {
- "version": "0.31.1",
- "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.31.1.tgz",
- "integrity": "sha512-CKMR2hgcIBrYlIUccDCOvi966PZ0kJExDrUi1R+oF9PvqQmCrTqjOsgIvf2403OmJ+CWomuzDoylr6KbuMyvHA==",
+ "version": "0.34.0",
+ "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz",
+ "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==",
"dev": true,
"dependencies": {
- "markdown-it": "13.0.1",
- "markdownlint-micromark": "0.1.7"
+ "markdown-it": "14.1.0",
+ "markdownlint-micromark": "0.1.9"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/DavidAnson"
}
},
"node_modules/markdownlint-cli": {
- "version": "0.37.0",
- "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.37.0.tgz",
- "integrity": "sha512-hNKAc0bWBBuVhJbSWbUhRzavstiB4o1jh3JeSpwC4/dt6eJ54lRfYHRxVdzVp4qGWBKbeE6Pg490PFEfrKjqSg==",
+ "version": "0.40.0",
+ "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.40.0.tgz",
+ "integrity": "sha512-JXhI3dRQcaqwiFYpPz6VJ7aKYheD53GmTz9y4D/d0F1MbZDGOp9pqKlbOfUX/pHP/iAoeiE4wYRmk8/kjLakxA==",
"dev": true,
"dependencies": {
- "commander": "~11.0.0",
+ "commander": "~12.0.0",
"get-stdin": "~9.0.0",
- "glob": "~10.3.4",
- "ignore": "~5.2.4",
+ "glob": "~10.3.12",
+ "ignore": "~5.3.1",
"js-yaml": "^4.1.0",
- "jsonc-parser": "~3.2.0",
- "markdownlint": "~0.31.1",
- "minimatch": "~9.0.3",
- "run-con": "~1.3.2"
+ "jsonc-parser": "~3.2.1",
+ "jsonpointer": "5.0.1",
+ "markdownlint": "~0.34.0",
+ "minimatch": "~9.0.4",
+ "run-con": "~1.3.2",
+ "toml": "~3.0.0"
},
"bin": {
"markdownlint": "markdownlint.js"
},
"engines": {
- "node": ">=16"
- }
- },
- "node_modules/markdownlint-cli/node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
- "dev": true,
- "engines": {
- "node": ">= 4"
+ "node": ">=18"
}
},
"node_modules/markdownlint-micromark": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.7.tgz",
- "integrity": "sha512-BbRPTC72fl5vlSKv37v/xIENSRDYL/7X/XoFzZ740FGEbs9vZerLrIkFRY0rv7slQKxDczToYuMmqQFN61fi4Q==",
+ "version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz",
+ "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==",
"dev": true,
"engines": {
- "node": ">=16"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/DavidAnson"
}
},
"node_modules/mdurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
"dev": true
},
"node_modules/media-typer": {
@@ -9905,16 +9408,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/min-document": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "dom-walk": "^0.1.0"
- }
- },
"node_modules/min-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
@@ -9925,9 +9418,9 @@
}
},
"node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
@@ -9948,9 +9441,9 @@
}
},
"node_modules/minipass": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
- "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.0.tgz",
+ "integrity": "sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==",
"dev": true,
"engines": {
"node": ">=16 || 14 >=14.17"
@@ -9975,9 +9468,9 @@
"peer": true
},
"node_modules/mocha": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
- "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz",
+ "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==",
"dev": true,
"peer": true,
"dependencies": {
@@ -9988,13 +9481,12 @@
"diff": "5.0.0",
"escape-string-regexp": "4.0.0",
"find-up": "5.0.0",
- "glob": "7.2.0",
+ "glob": "8.1.0",
"he": "1.2.0",
"js-yaml": "4.1.0",
"log-symbols": "4.1.0",
"minimatch": "5.0.1",
"ms": "2.1.3",
- "nanoid": "3.3.3",
"serialize-javascript": "6.0.0",
"strip-json-comments": "3.1.1",
"supports-color": "8.1.1",
@@ -10009,10 +9501,6 @@
},
"engines": {
"node": ">= 14.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/mochajs"
}
},
"node_modules/mocha/node_modules/cliui": {
@@ -10035,50 +9523,25 @@
"peer": true
},
"node_modules/mocha/node_modules/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
+ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
"dev": true,
"peer": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
},
"engines": {
- "node": "*"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/mocha/node_modules/glob/node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/mocha/node_modules/glob/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
"node_modules/mocha/node_modules/minimatch": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
@@ -10099,6 +9562,16 @@
"dev": true,
"peer": true
},
+ "node_modules/mocha/node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
"node_modules/mocha/node_modules/string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -10235,11 +9708,132 @@
"node": ">=12"
}
},
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mqtt": {
+ "version": "5.5.5",
+ "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.5.5.tgz",
+ "integrity": "sha512-vWglkVfumjnI53/tV+RMWbDuQL4ldGqc/wFX2EHkMy9sSV7Q0TQK+HcAtmg2QupI8DpcyNpoe2mNhaO/H4ILUg==",
+ "dependencies": {
+ "@types/readable-stream": "^4.0.5",
+ "@types/ws": "^8.5.9",
+ "commist": "^3.2.0",
+ "concat-stream": "^2.0.0",
+ "debug": "^4.3.4",
+ "help-me": "^5.0.0",
+ "lru-cache": "^10.0.1",
+ "minimist": "^1.2.8",
+ "mqtt": "^5.2.0",
+ "mqtt-packet": "^9.0.0",
+ "number-allocator": "^1.0.14",
+ "readable-stream": "^4.4.2",
+ "reinterval": "^1.1.0",
+ "rfdc": "^1.3.0",
+ "split2": "^4.2.0",
+ "worker-timers": "^7.1.4",
+ "ws": "^8.14.2"
+ },
+ "bin": {
+ "mqtt": "build/bin/mqtt.js",
+ "mqtt_pub": "build/bin/pub.js",
+ "mqtt_sub": "build/bin/sub.js"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/mqtt-packet": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-9.0.0.tgz",
+ "integrity": "sha512-8v+HkX+fwbodsWAZIZTI074XIoxVBOmPeggQuDFCGg1SqNcC+uoRMWu7J6QlJPqIUIJXmjNYYHxBBLr1Y/Df4w==",
+ "dependencies": {
+ "bl": "^6.0.8",
+ "debug": "^4.3.4",
+ "process-nextick-args": "^2.0.1"
+ }
+ },
+ "node_modules/mqtt/node_modules/concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "engines": [
+ "node >= 6.0"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/mqtt/node_modules/concat-stream/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/mqtt/node_modules/readable-stream": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
+ "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/mqtt/node_modules/string_decoder": {
+ "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==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/mqtt/node_modules/ws": {
+ "version": "8.17.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
+ "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/multer": {
"version": "1.4.5-lts.1",
@@ -10258,26 +9852,6 @@
"node": ">= 6.0.0"
}
},
- "node_modules/n12": {
- "version": "1.8.19",
- "resolved": "https://registry.npmjs.org/n12/-/n12-1.8.19.tgz",
- "integrity": "sha512-Uew6BYwW/TQ/60SgeOC+q7C+Bgr2sieVbyCZ4xVctXl5ddjJ6j9sVs+i+xbgVBhTym5q7ke2tss7ZdIYjVytOw==",
- "dev": true,
- "peer": true
- },
- "node_modules/nanoid": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
- "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
- "dev": true,
- "peer": true,
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -10309,28 +9883,6 @@
"node": ">= 0.4.0"
}
},
- "node_modules/nice-try": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/node-abort-controller": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-2.0.0.tgz",
- "integrity": "sha512-L8RfEgjBTHAISTuagw51PprVAqNZoG6KSB6LQ6H1bskMVkFs5E71IyjauLBv3XbuomJlguWF/VnRHdJ1gqiAqA==",
- "dev": true,
- "peer": true
- },
- "node_modules/node-addon-api": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.0.0.tgz",
- "integrity": "sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==",
- "dev": true,
- "optional": true,
- "peer": true
- },
"node_modules/node-domexception": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
@@ -10415,9 +9967,9 @@
}
},
"node_modules/normalize-url": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
- "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz",
+ "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
"dev": true,
"peer": true,
"engines": {
@@ -10428,26 +9980,25 @@
}
},
"node_modules/npm-run-path": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
"peer": true,
"dependencies": {
- "path-key": "^2.0.0"
+ "path-key": "^3.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/npm-run-path/node_modules/path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=4"
+ "node_modules/number-allocator": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/number-allocator/-/number-allocator-1.0.14.tgz",
+ "integrity": "sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==",
+ "dependencies": {
+ "debug": "^4.3.1",
+ "js-sdsl": "4.3.0"
}
},
"node_modules/object-assign": {
@@ -10495,29 +10046,30 @@
}
},
"node_modules/object.entries": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
- "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object.fromentries": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -10527,28 +10079,32 @@
}
},
"node_modules/object.hasown": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
- "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz",
+ "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==",
"dev": true,
"peer": true,
"dependencies": {
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/object.values": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -10557,13 +10113,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/omggif": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz",
- "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==",
- "dev": true,
- "peer": true
- },
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
@@ -10611,17 +10160,17 @@
}
},
"node_modules/optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"dependencies": {
- "@aashutoshrathi/word-wrap": "^1.2.3",
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
- "type-check": "^0.4.0"
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
},
"engines": {
"node": ">= 0.8.0"
@@ -10637,16 +10186,6 @@
"node": ">=12.20"
}
},
- "node_modules/p-finally": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
@@ -10707,14 +10246,13 @@
}
},
"node_modules/pac-resolver": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.0.tgz",
- "integrity": "sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz",
+ "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==",
"dev": true,
"peer": true,
"dependencies": {
"degenerator": "^5.0.0",
- "ip": "^1.1.8",
"netmask": "^2.0.2"
},
"engines": {
@@ -10739,52 +10277,6 @@
"node": ">=6"
}
},
- "node_modules/parse-bmfont-ascii": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz",
- "integrity": "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==",
- "dev": true,
- "peer": true
- },
- "node_modules/parse-bmfont-binary": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz",
- "integrity": "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==",
- "dev": true,
- "peer": true
- },
- "node_modules/parse-bmfont-xml": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz",
- "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "xml-parse-from-string": "^1.0.0",
- "xml2js": "^0.4.5"
- }
- },
- "node_modules/parse-bmfont-xml/node_modules/xml2js": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
- "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/parse-headers": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
- "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==",
- "dev": true,
- "peer": true
- },
"node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -10846,12 +10338,12 @@
"dev": true
},
"node_modules/path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz",
+ "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==",
"dev": true,
"dependencies": {
- "lru-cache": "^9.1.1 || ^10.0.0",
+ "lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
@@ -10878,26 +10370,12 @@
}
},
"node_modules/pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/peek-readable": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz",
- "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
+ "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
"dev": true,
- "peer": true,
"engines": {
- "node": ">=8"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/Borewit"
+ "node": ">= 14.16"
}
},
"node_modules/pend": {
@@ -10907,13 +10385,6 @@
"dev": true,
"peer": true
},
- "node_modules/phin": {
- "version": "2.9.3",
- "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz",
- "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==",
- "dev": true,
- "peer": true
- },
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -10942,19 +10413,6 @@
"node": ">= 6"
}
},
- "node_modules/pixelmatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz",
- "integrity": "sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "pngjs": "^3.0.0"
- },
- "bin": {
- "pixelmatch": "bin/pixelmatch"
- }
- },
"node_modules/pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -11028,14 +10486,13 @@
"node": ">=4"
}
},
- "node_modules/pngjs": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
"dev": true,
- "peer": true,
"engines": {
- "node": ">=4.0.0"
+ "node": ">= 0.4"
}
},
"node_modules/prelude-ls": {
@@ -11048,9 +10505,9 @@
}
},
"node_modules/prettier": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
- "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+ "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -11103,9 +10560,9 @@
}
},
"node_modules/pretty-format/node_modules/react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true,
"peer": true
},
@@ -11113,8 +10570,6 @@
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "dev": true,
- "peer": true,
"engines": {
"node": ">= 0.6.0"
}
@@ -11205,9 +10660,7 @@
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
"node_modules/pump": {
"version": "3.0.0",
@@ -11229,10 +10682,19 @@
"node": ">=6"
}
},
+ "node_modules/punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/pure-rand": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
- "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
+ "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
"dev": true,
"funding": [
{
@@ -11456,48 +10918,11 @@
"util-deprecate": "~1.0.1"
}
},
- "node_modules/readable-stream/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
"node_modules/readable-stream/node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
- "node_modules/readable-web-to-node-stream": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz",
- "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/Borewit"
- }
- },
- "node_modules/readable-web-to-node-stream/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -11524,17 +10949,17 @@
}
},
"node_modules/reflect.getprototypeof": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz",
- "integrity": "sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
"dev": true,
"peer": true,
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.0.0",
- "get-intrinsic": "^1.2.3",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
"globalthis": "^1.0.3",
"which-builtin-type": "^1.1.3"
},
@@ -11548,9 +10973,7 @@
"node_modules/regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/regexp-tree": {
"version": "0.1.27",
@@ -11562,14 +10985,15 @@
}
},
"node_modules/regexp.prototype.flags": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
- "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "set-function-name": "^2.0.0"
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -11599,10 +11023,15 @@
"jsesc": "bin/jsesc"
}
},
+ "node_modules/reinterval": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz",
+ "integrity": "sha512-QIRet3SYrGp0HUHO88jVskiG6seqUGC5iAG7AwI/BV4ypGcuqk9Du6YQBUOUqm9c8pw1eyLoIaONifRua1lsEQ=="
+ },
"node_modules/replace-in-file": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-7.0.2.tgz",
- "integrity": "sha512-tPG+Qmqf+x2Rf1WVdb/9B5tFIf6KJ5hs3fgxh1OTzPRUugPPvyAva7NvCJtnSpmyq6r+ABYcuUOqZkm6yzGSUw==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-7.1.0.tgz",
+ "integrity": "sha512-1uZmJ78WtqNYCSuPC9IWbweXkGxPOtk2rKuar8diTw7naVIQZiE3Tm8ACx2PCMXDtVH6N+XxwaRY2qZ2xHPqXw==",
"dev": true,
"dependencies": {
"chalk": "^4.1.2",
@@ -11746,6 +11175,11 @@
"node": ">=0.10.0"
}
},
+ "node_modules/rfdc": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz",
+ "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg=="
+ },
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -11849,13 +11283,13 @@
"peer": true
},
"node_modules/safe-array-concat": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
- "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.5",
- "get-intrinsic": "^1.2.2",
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
"has-symbols": "^1.0.3",
"isarray": "^2.0.5"
},
@@ -11866,11 +11300,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/safe-array-concat/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -11934,24 +11373,24 @@
}
},
"node_modules/selenium-webdriver": {
- "version": "4.17.0",
- "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.17.0.tgz",
- "integrity": "sha512-e2E+2XBlGepzwgFbyQfSwo9Cbj6G5fFfs9MzAS00nC99EewmcS2rwn2MwtgfP7I5p1e7DYv4HQJXtWedsu6DvA==",
+ "version": "4.20.0",
+ "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.20.0.tgz",
+ "integrity": "sha512-s/G44lGQ1xB3tmtX6NNPomlkpL6CxLdmAvp/AGWWwi4qv5Te1+qji7tPSyr6gyuoPpdYiof1rKnWe3luy0MrYA==",
"dev": true,
"peer": true,
"dependencies": {
"jszip": "^3.10.1",
- "tmp": "^0.2.1",
- "ws": ">=8.14.2"
+ "tmp": "^0.2.3",
+ "ws": ">=8.16.0"
},
"engines": {
"node": ">= 14.20.0"
}
},
"node_modules/selenium-webdriver/node_modules/ws": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
- "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+ "version": "8.17.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
+ "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
"dev": true,
"peer": true,
"engines": {
@@ -11971,13 +11410,10 @@
}
},
"node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.1.tgz",
+ "integrity": "sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==",
"dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
"bin": {
"semver": "bin/semver.js"
},
@@ -11985,18 +11421,6 @@
"node": ">=10"
}
},
- "node_modules/semver/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
@@ -12043,11 +11467,10 @@
"dev": true
},
"node_modules/serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
- "peer": true,
"dependencies": {
"randombytes": "^2.1.0"
}
@@ -12068,31 +11491,32 @@
}
},
"node_modules/set-function-length": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
- "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
"dependencies": {
- "define-data-property": "^1.1.2",
+ "define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.3",
+ "get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.1"
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/set-function-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
- "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
"dependencies": {
- "define-data-property": "^1.0.1",
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
"functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -12148,12 +11572,12 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
- "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
@@ -12206,28 +11630,28 @@
}
},
"node_modules/socks": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
- "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz",
+ "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==",
"dev": true,
"peer": true,
"dependencies": {
- "ip": "^2.0.0",
+ "ip-address": "^9.0.5",
"smart-buffer": "^4.2.0"
},
"engines": {
- "node": ">= 10.13.0",
+ "node": ">= 10.0.0",
"npm": ">= 3.0.0"
}
},
"node_modules/socks-proxy-agent": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz",
- "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==",
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz",
+ "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==",
"dev": true,
"peer": true,
"dependencies": {
- "agent-base": "^7.0.2",
+ "agent-base": "^7.1.1",
"debug": "^4.3.4",
"socks": "^2.7.1"
},
@@ -12235,42 +11659,35 @@
"node": ">= 14"
}
},
- "node_modules/socks/node_modules/ip": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
- "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
- "dev": true,
- "peer": true
- },
"node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 8"
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-loader": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-4.0.2.tgz",
- "integrity": "sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz",
+ "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==",
"dev": true,
"dependencies": {
"iconv-lite": "^0.6.3",
"source-map-js": "^1.0.2"
},
"engines": {
- "node": ">= 14.15.0"
+ "node": ">= 18.12.0"
},
"funding": {
"type": "opencollective",
@@ -12293,16 +11710,41 @@
}
},
"node_modules/source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dev": true,
- "peer": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/spacetrim": {
+ "version": "0.11.23",
+ "resolved": "https://registry.npmjs.org/spacetrim/-/spacetrim-0.11.23.tgz",
+ "integrity": "sha512-oC94GKa/6/0MdCuvoinoKYg4ePU6NFV/kXwObmGdshS2ui89EzEFrRqYDcAYuZ/iwq6oe5qnK6lxqk+XJT7SqQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://buymeacoffee.com/hejny"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/hejny/spacetrim/blob/main/README.md#%EF%B8%8F-contributing"
+ }
+ ],
+ "peer": true
+ },
"node_modules/spdx-correct": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
@@ -12313,16 +11755,26 @@
"spdx-license-ids": "^3.0.0"
}
},
+ "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
"node_modules/spdx-exceptions": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz",
- "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
"dev": true
},
"node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+ "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
"dependencies": {
"spdx-exceptions": "^2.1.0",
@@ -12330,25 +11782,23 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.16",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
- "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
"dev": true
},
"node_modules/split2": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
"integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
- "dev": true,
- "peer": true,
"engines": {
"node": ">= 10.x"
}
},
"node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
"dev": true,
"peer": true
},
@@ -12393,14 +11843,17 @@
}
},
"node_modules/streamx": {
- "version": "2.15.7",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.7.tgz",
- "integrity": "sha512-NPEKS5+yjyo597eafGbKW5ujh7Sm6lDLHZQd/lRSz6S0VarpADBJItqfB4PnwpS+472oob1GX5cCY9vzfJpHUA==",
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz",
+ "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==",
"dev": true,
"peer": true,
"dependencies": {
"fast-fifo": "^1.1.0",
"queue-tick": "^1.0.1"
+ },
+ "optionalDependencies": {
+ "bare-events": "^2.2.0"
}
},
"node_modules/string_decoder": {
@@ -12496,35 +11949,42 @@
}
},
"node_modules/string.prototype.matchall": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
- "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "regexp.prototype.flags": "^1.5.0",
- "set-function-name": "^2.0.0",
- "side-channel": "^1.0.4"
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -12534,28 +11994,31 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -12595,16 +12058,6 @@
"node": ">=4"
}
},
- "node_modules/strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/strip-final-newline": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
@@ -12639,24 +12092,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/strtok3": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz",
- "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@tokenizer/token": "^0.3.0",
- "peek-readable": "^4.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/Borewit"
- }
- },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -12746,9 +12181,9 @@
}
},
"node_modules/terser": {
- "version": "5.27.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
- "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
+ "version": "5.31.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz",
+ "integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==",
"dev": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
@@ -12797,60 +12232,12 @@
}
}
},
- "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
- "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
"node_modules/terser/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
- "node_modules/terser/node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
"node_modules/test-exclude": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -12924,31 +12311,14 @@
"dev": true,
"peer": true
},
- "node_modules/timm": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz",
- "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==",
- "dev": true,
- "peer": true
- },
- "node_modules/tinycolor2": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
- "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==",
- "dev": true,
- "peer": true
- },
"node_modules/tmp": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
"dev": true,
"peer": true,
- "dependencies": {
- "rimraf": "^3.0.0"
- },
"engines": {
- "node": ">=8.17.0"
+ "node": ">=14.14"
}
},
"node_modules/tmpl": {
@@ -12989,38 +12359,16 @@
"node": ">=0.6"
}
},
- "node_modules/token-types": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz",
- "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@tokenizer/token": "^0.3.0",
- "ieee754": "^1.2.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/Borewit"
- }
- },
- "node_modules/traverse": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
- "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": "*"
- }
+ "node_modules/toml": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz",
+ "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==",
+ "dev": true
},
"node_modules/ts-api-utils": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz",
- "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+ "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
"dev": true,
"peer": true,
"engines": {
@@ -13107,15 +12455,6 @@
"webpack": "^5.0.0"
}
},
- "node_modules/ts-loader/node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/ts-node": {
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
@@ -13185,8 +12524,7 @@
"node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
- "dev": true
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/type-check": {
"version": "0.4.0",
@@ -13205,6 +12543,7 @@
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"dev": true,
+ "peer": true,
"engines": {
"node": ">=4"
}
@@ -13234,12 +12573,12 @@
}
},
"node_modules/typed-array-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz",
- "integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"is-typed-array": "^1.1.13"
},
@@ -13248,15 +12587,16 @@
}
},
"node_modules/typed-array-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -13266,16 +12606,17 @@
}
},
"node_modules/typed-array-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
- "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
"dev": true,
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -13285,14 +12626,20 @@
}
},
"node_modules/typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -13304,9 +12651,9 @@
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"node_modules/typescript": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
- "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -13317,9 +12664,9 @@
}
},
"node_modules/uc.micro": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
- "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
"dev": true
},
"node_modules/unbox-primitive": {
@@ -13348,6 +12695,31 @@
"through": "^2.3.8"
}
},
+ "node_modules/unbzip2-stream/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"node_modules/undici-types": {
"version": "5.26.5",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
@@ -13373,28 +12745,23 @@
}
},
"node_modules/unzipper": {
- "version": "0.10.14",
- "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz",
- "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==",
+ "version": "0.11.5",
+ "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.11.5.tgz",
+ "integrity": "sha512-lpWMMTvoTTETidcvqsHL/OSdX8fy4/nAe1vOa/WESbscApEamd1gvzn2XteNYvAnTGous8BlCkWxxyv3moxfCA==",
"dev": true,
"peer": true,
"dependencies": {
"big-integer": "^1.6.17",
- "binary": "~0.3.0",
"bluebird": "~3.4.1",
- "buffer-indexof-polyfill": "~1.0.0",
"duplexer2": "~0.1.4",
"fstream": "^1.0.12",
- "graceful-fs": "^4.2.2",
- "listenercount": "~1.0.1",
- "readable-stream": "~2.3.6",
- "setimmediate": "~1.0.4"
+ "graceful-fs": "^4.2.2"
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
- "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "version": "1.0.15",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.15.tgz",
+ "integrity": "sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==",
"dev": true,
"funding": [
{
@@ -13411,7 +12778,7 @@
}
],
"dependencies": {
- "escalade": "^3.1.1",
+ "escalade": "^3.1.2",
"picocolors": "^1.0.0"
},
"bin": {
@@ -13488,16 +12855,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/utif": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz",
- "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "pako": "^1.0.5"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -13553,10 +12910,20 @@
"spdx-expression-parse": "^3.0.0"
}
},
+ "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
"node_modules/validator": {
- "version": "13.11.0",
- "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz",
- "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==",
+ "version": "13.12.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz",
+ "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==",
"dev": true,
"engines": {
"node": ">= 0.10"
@@ -13614,9 +12981,9 @@
"link": true
},
"node_modules/watchpack": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
- "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz",
+ "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==",
"dev": true,
"dependencies": {
"glob-to-regexp": "^0.4.1",
@@ -13627,9 +12994,9 @@
}
},
"node_modules/web-streams-polyfill": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz",
- "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
"dev": true,
"peer": true,
"engines": {
@@ -13637,19 +13004,19 @@
}
},
"node_modules/webdriver": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.31.0.tgz",
- "integrity": "sha512-xDRch3TyjhblofZv6hV+fUJGKJFEg4a3QYB+MocZcwWrXTWDxOuZn9E2xohmABq/3yr1cvSOnhUonvMSTQmnmg==",
+ "version": "8.36.1",
+ "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.36.1.tgz",
+ "integrity": "sha512-547RivYCHStVqtiGQBBcABAkzJbPnAWsxpXGzmj5KL+TOM2JF41N2iQRtUxXqr0jme1Nzzye7WS7Y7iSnK6i1g==",
"dev": true,
"peer": true,
"dependencies": {
"@types/node": "^20.1.0",
"@types/ws": "^8.5.3",
- "@wdio/config": "8.31.0",
+ "@wdio/config": "8.36.1",
"@wdio/logger": "8.28.0",
- "@wdio/protocols": "8.29.7",
- "@wdio/types": "8.31.0",
- "@wdio/utils": "8.31.0",
+ "@wdio/protocols": "8.32.0",
+ "@wdio/types": "8.36.1",
+ "@wdio/utils": "8.36.1",
"deepmerge-ts": "^5.1.0",
"got": "^12.6.1",
"ky": "^0.33.0",
@@ -13659,10 +13026,20 @@
"node": "^16.13 || >=18"
}
},
+ "node_modules/webdriver/node_modules/@types/node": {
+ "version": "20.12.11",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
+ "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
"node_modules/webdriver/node_modules/ws": {
- "version": "8.16.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
- "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
+ "version": "8.17.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz",
+ "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==",
"dev": true,
"peer": true,
"engines": {
@@ -13682,26 +13059,26 @@
}
},
"node_modules/webpack": {
- "version": "5.90.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz",
- "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==",
+ "version": "5.91.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz",
+ "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==",
"dev": true,
"dependencies": {
"@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.5",
- "@webassemblyjs/ast": "^1.11.5",
- "@webassemblyjs/wasm-edit": "^1.11.5",
- "@webassemblyjs/wasm-parser": "^1.11.5",
+ "@webassemblyjs/ast": "^1.12.1",
+ "@webassemblyjs/wasm-edit": "^1.12.1",
+ "@webassemblyjs/wasm-parser": "^1.12.1",
"acorn": "^8.7.1",
"acorn-import-assertions": "^1.9.0",
"browserslist": "^4.21.10",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.15.0",
+ "enhanced-resolve": "^5.16.0",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.9",
+ "graceful-fs": "^4.2.11",
"json-parse-even-better-errors": "^2.3.1",
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
@@ -13709,7 +13086,7 @@
"schema-utils": "^3.2.0",
"tapable": "^2.1.1",
"terser-webpack-plugin": "^5.3.10",
- "watchpack": "^2.4.0",
+ "watchpack": "^2.4.1",
"webpack-sources": "^3.2.3"
},
"bin": {
@@ -13885,33 +13262,43 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/which-builtin-type/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dev": true,
"peer": true,
"dependencies": {
- "is-map": "^2.0.1",
- "is-set": "^2.0.1",
- "is-weakmap": "^2.0.1",
- "is-weakset": "^2.0.1"
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/which-typed-array": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
- "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dev": true,
"dependencies": {
- "available-typed-arrays": "^1.0.6",
- "call-bind": "^1.0.5",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.1"
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -13926,6 +13313,46 @@
"integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
"dev": true
},
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/worker-timers": {
+ "version": "7.1.8",
+ "resolved": "https://registry.npmjs.org/worker-timers/-/worker-timers-7.1.8.tgz",
+ "integrity": "sha512-R54psRKYVLuzff7c1OTFcq/4Hue5Vlz4bFtNEIarpSiCYhpifHU3aIQI29S84o1j87ePCYqbmEJPqwBTf+3sfw==",
+ "dependencies": {
+ "@babel/runtime": "^7.24.5",
+ "tslib": "^2.6.2",
+ "worker-timers-broker": "^6.1.8",
+ "worker-timers-worker": "^7.0.71"
+ }
+ },
+ "node_modules/worker-timers-broker": {
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/worker-timers-broker/-/worker-timers-broker-6.1.8.tgz",
+ "integrity": "sha512-FUCJu9jlK3A8WqLTKXM9E6kAmI/dR1vAJ8dHYLMisLNB/n3GuaFIjJ7pn16ZcD1zCOf7P6H62lWIEBi+yz/zQQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.24.5",
+ "fast-unique-numbers": "^8.0.13",
+ "tslib": "^2.6.2",
+ "worker-timers-worker": "^7.0.71"
+ }
+ },
+ "node_modules/worker-timers-worker": {
+ "version": "7.0.71",
+ "resolved": "https://registry.npmjs.org/worker-timers-worker/-/worker-timers-worker-7.0.71.tgz",
+ "integrity": "sha512-ks/5YKwZsto1c2vmljroppOKCivB/ma97g9y77MAAz2TBBjPPgpoOiS1qYQKIgvGTr2QYPT3XhJWIB6Rj2MVPQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.24.5",
+ "tslib": "^2.6.2"
+ }
+ },
"node_modules/workerpool": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
@@ -14058,7 +13485,6 @@
"version": "7.5.9",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
"integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
- "dev": true,
"engines": {
"node": ">=8.3.0"
},
@@ -14075,26 +13501,6 @@
}
}
},
- "node_modules/xhr": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
- "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "global": "~4.4.0",
- "is-function": "^1.0.1",
- "parse-headers": "^2.0.0",
- "xtend": "^4.0.0"
- }
- },
- "node_modules/xml-parse-from-string": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz",
- "integrity": "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==",
- "dev": true,
- "peer": true
- },
"node_modules/xml2js": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
@@ -14135,10 +13541,11 @@
}
},
"node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "peer": true
},
"node_modules/yargs": {
"version": "17.7.2",
diff --git a/package.json b/package.json
index b61e3bbf..9ec0aac2 100644
--- a/package.json
+++ b/package.json
@@ -1,60 +1,59 @@
{
- "name": "openfin-container-starter",
- "version": "36.80.10",
- "description": "OpenFin Container Starter",
- "scripts": {
- "build": "npm run build --workspaces",
- "package-how-tos": "node ./scripts/package.js --legacy",
- "package": "node ./scripts/package.js",
- "package-for-github": "node ./scripts/package.js --location github",
- "package-for-aws": "node ./scripts/package.js --location aws",
- "prettier": "prettier --config .prettierrc --write .",
- "eslint": "node --max-old-space-size=5120 ./node_modules/eslint/bin/eslint . --ext .js,.mjs,.ts",
- "start": "echo You must be in a folder for a specific how-to to use npm run start e.g. ./how-to/create-window",
- "markdownlint": "markdownlint **/*.md --ignore **/node_modules/**",
- "validate": "npm run prettier & npm run eslint & npm run markdownlint",
- "list-update-packages": "npx --yes npm-check-updates --deep > updatable-packages.txt",
- "update-packages": "npx --yes npm-check-updates --upgrade --deep -x @openfin/core,openfin-adapter,eslint-plugin-import",
- "remove-packages": "npx --yes rimraf --glob **/node_modules && npx rimraf ./package-lock.json",
- "common-update": "node ./scripts/common-update.mjs"
- },
- "workspaces": [
- "how-to/**"
- ],
- "packageExclude": [],
- "packageCustomFolder": "",
- "contributors": [
- "adam.saland@openfin.co",
- "connor.mccafferty@openfin.co",
- "john.mandia@openfin.co",
- "martyn.janes@openfin.co",
- "pj.singh@openfin.co"
- ],
- "license": "SEE LICENSE IN LICENSE.MD",
- "devDependencies": {
- "eslint": "8.53.0",
- "eslint-config-airbnb": "19.0.4",
- "eslint-config-airbnb-typescript": "17.1.0",
- "eslint-config-prettier": "9.0.0",
- "eslint-plugin-import": "2.26.0",
- "eslint-plugin-jsdoc": "46.9.0",
- "eslint-plugin-prettier": "5.0.1",
- "eslint-plugin-promise": "6.1.1",
- "eslint-plugin-simple-import-sort": "10.0.0",
- "eslint-plugin-unicorn": "49.0.0",
- "eslint-plugin-unused-imports": "3.0.0",
- "fast-glob": "3.3.2",
- "fs-extra": "11.1.1",
- "markdownlint-cli": "0.37.0",
- "prettier": "3.1.0",
- "replace-in-file": "7.0.2",
- "yargs": "17.7.2",
- "@openfin/core": "36.80.10",
- "@openfin/node-adapter": "36.80.10"
- },
- "overrides": {
- "parse-bmfont-xml": {
- "xml2js": "0.5.0"
- }
- }
-}
\ No newline at end of file
+ "name": "openfin-container-starter",
+ "version": "36.80.11",
+ "description": "OpenFin Container Starter",
+ "scripts": {
+ "build": "npm run build --workspaces",
+ "package-how-tos": "node ./scripts/package.js --legacy",
+ "package": "node ./scripts/package.js",
+ "package-for-github": "node ./scripts/package.js --location github",
+ "package-for-aws": "node ./scripts/package.js --location aws",
+ "prettier": "prettier --config .prettierrc --write .",
+ "eslint": "node --max-old-space-size=5120 ./node_modules/eslint/bin/eslint . --ext .js,.mjs,.ts",
+ "start": "echo You must be in a folder for a specific how-to to use npm run start e.g. ./how-to/create-window",
+ "markdownlint": "markdownlint **/*.md --ignore **/node_modules/**",
+ "validate": "npm run prettier & npm run eslint & npm run markdownlint",
+ "list-update-packages": "npx --yes npm-check-updates --deep > updatable-packages.txt",
+ "update-packages": "npx --yes npm-check-updates --upgrade --deep -x @openfin/core,openfin-adapter,eslint-plugin-import",
+ "remove-packages": "npx --yes rimraf --glob **/node_modules && npx rimraf ./package-lock.json",
+ "common-update": "node ./scripts/common-update.mjs"
+ },
+ "workspaces": [
+ "how-to/**"
+ ],
+ "packageExclude": [],
+ "packageCustomFolder": "",
+ "contributors": [
+ "adam.saland@openfin.co",
+ "connor.mccafferty@openfin.co",
+ "john.mandia@openfin.co",
+ "martyn.janes@openfin.co"
+ ],
+ "license": "SEE LICENSE IN LICENSE.MD",
+ "devDependencies": {
+ "eslint": "8.57.0",
+ "eslint-config-airbnb": "19.0.4",
+ "eslint-config-airbnb-typescript": "18.0.0",
+ "eslint-config-prettier": "9.1.0",
+ "eslint-plugin-import": "2.26.0",
+ "eslint-plugin-jsdoc": "48.2.3",
+ "eslint-plugin-prettier": "5.1.3",
+ "eslint-plugin-promise": "6.1.1",
+ "eslint-plugin-simple-import-sort": "12.1.0",
+ "eslint-plugin-unicorn": "52.0.0",
+ "eslint-plugin-unused-imports": "3.2.0",
+ "fast-glob": "3.3.2",
+ "fs-extra": "11.2.0",
+ "markdownlint-cli": "0.40.0",
+ "prettier": "3.2.5",
+ "replace-in-file": "7.1.0",
+ "yargs": "17.7.2",
+ "@openfin/core": "36.80.11",
+ "@openfin/node-adapter": "36.80.11"
+ },
+ "overrides": {
+ "parse-bmfont-xml": {
+ "xml2js": "0.5.0"
+ }
+ }
+}