This is an automated email from the ASF dual-hosted git repository.

shanedell pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil-vscode.git


The following commit(s) were added to refs/heads/main by this push:
     new 778d818  Multiple updates:
778d818 is described below

commit 778d8182f46b13d1588a2d5582d0642416ac7251
Author: Shane Dell <[email protected]>
AuthorDate: Wed Jul 19 09:12:15 2023 -0400

    Multiple updates:
    
    - Use webpack for doing most packaging tasks instead of using a manual TS 
script for everything.
    - Update webpack to automatically extract out the debugger package to 
./daffodil-debugger-${daffodilVersion}-${extVersion}.
      - This allowed for the code to unzip the debugger in the extension to be 
removed.
      - This also allows for easier running of the debugger.
      - No longer extract the package out to somewhere else on the user system.
        - The extracted debugger folder with the bin and lib dirs are bundled 
with the extension source.
    - Update scalawatch to build scala code then generate the version.ts, this 
will ensure the updated debugger package gets unzipped.
    - Move location of webpack files as now there are two.
      - webpack/ext-dev.webpack.config.js - used when running locally.
      - webpack/ext-package.webpack.config.js - used when creating a package.
    - Remove build/scripts directory.
    - Move build/scripts/yarn-scripts.ts to build/yarn-scripts.ts
    - Remove .vscodeignore, gets automatically created during the packaging to 
ignore node_modules.
    - Remove Backend class and archiveUrl method from Artifact class
    - Remove execSync commands from yarn-scripts.ts
    
    Closes #692
    Closes #711
---
 .gitignore                               |   2 +
 .prettierignore                          |   2 +-
 README.md                                |   3 +-
 build/extension.webpack.config.js        |  57 ----------
 build/package/.vscodeignore              |  36 -------
 build/scripts/package.ts                 |  93 -----------------
 build/{scripts => }/yarn-scripts.ts      |  66 ++++++++++--
 debugger/nodemon.json                    |   2 +-
 package.json                             |  20 ++--
 src/classes/artifact.ts                  |  14 +--
 src/daffodilDebugger/debugger.ts         |  58 +----------
 src/daffodilDebugger/utils.ts            |  25 +----
 src/tests/suite/daffodilDebugger.test.ts |   8 +-
 src/utils.ts                             |  17 ---
 tsconfig.json                            |   2 +-
 webpack/ext-dev.webpack.config.js        | 105 +++++++++++++++++++
 webpack/ext-package.webpack.config.js    | 161 +++++++++++++++++++++++++++++
 yarn.lock                                | 172 ++++++++++++++++++++++++++++++-
 18 files changed, 510 insertions(+), 333 deletions(-)

diff --git a/.gitignore b/.gitignore
index d05bd99..e7cd193 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,6 +60,8 @@ omega-edit-grpc-server*
 
 # ignore tests unzip daffodil-debugger
 daffodil-debugger-*
+**/bin
+**/lib
 
 # ignore generated schema files
 server/sbtXjc/resources/xsd/*.xsd
diff --git a/.prettierignore b/.prettierignore
index 7826943..ea1fade 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -14,7 +14,7 @@
 # limitations under the License.
 
 # Ignore artifacts
-build
+build/package
 coverage
 out
 dist
diff --git a/README.md b/README.md
index e663207..f7af384 100644
--- a/README.md
+++ b/README.md
@@ -67,13 +67,12 @@ Run full package
   ```
 
 * This command performs the following tasks:
-  * Create sbt zip package
+  * Create sbt zip package and unzip it
   * Install dependencies
   * Compiles Extension
   * Packages Extension
   * Creates Files
     ```
-    debugger/target/universal/daffodil-debugger-*.zip
     apache-daffodil-vscode-*.vsix
     ```
 
diff --git a/build/extension.webpack.config.js 
b/build/extension.webpack.config.js
deleted file mode 100644
index a4be276..0000000
--- a/build/extension.webpack.config.js
+++ /dev/null
@@ -1,57 +0,0 @@
-
-/*---------------------------------------------------------------------------------------------
- *  Copyright (c) Microsoft Corporation. All rights reserved.
- *  Licensed under the MIT License. See License.txt in the project root for 
license information.
- 
*--------------------------------------------------------------------------------------------*/
-
-//@ts-check
-'use strict';
-
-//@ts-check
-/** @typedef {import('webpack').Configuration} WebpackConfig **/
-
-const path = require('path');
-
-module.exports = /** @type WebpackConfig */ {
-       context: path.dirname(__dirname),
-       mode: 'none', // this leaves the source code as close as possible to 
the original (when packaging we set this to 'production')
-       target: 'node', // vscode extensions run in a Node.js-context
-       entry: {
-               extension: './src/adapter/extension.ts'
-       },
-       resolve: { // support reading TypeScript and JavaScript files
-               extensions: ['.ts', '.js']
-       },
-       node: {
-               __dirname: false, // leave the __dirname-behaviour intact
-       },
-       module: {
-               rules: [{
-                       test: /\.ts$/,
-                       exclude: /node_modules/,
-                       use: [{
-                               // configure TypeScript loader:
-                               // * enable sources maps for end-to-end source 
maps
-                               loader: 'ts-loader',
-                               options: {
-                                       compilerOptions: {
-                                               'sourceMap': true,
-                                               'declaration': false
-                                       }
-                               }
-                       }]
-               }]
-       },
-       externals: {
-               vscode: "commonjs vscode" // the vscode-module is created 
on-the-fly and must be excluded. Add other modules that cannot be webpack'ed
-       },
-       output: {
-               filename: 'extension.js',
-               path: path.resolve(__dirname, '../dist/ext'),
-               libraryTarget: 'commonjs2',
-               devtoolModuleFilenameTemplate: "../../[resource-path]",
-               hashFunction: "sha512",
-               clean: true, // makes sure the output directory is remade
-       },
-       devtool: 'source-map'
-}
diff --git a/build/package/.vscodeignore b/build/package/.vscodeignore
deleted file mode 100644
index 2ead549..0000000
--- a/build/package/.vscodeignore
+++ /dev/null
@@ -1,36 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-*
-*/**
-!dist/ext/extension.js
-!images/*
-!LICENSE
-!NOTICE
-!package.json
-!README.md
-!debugger/target/universal/daffodil-debugger-*.zip
-!language/*
-!language/syntaxes/*
-!src/launchWizard/launchWizard.js
-!src/styles/styles.css
-!src/omega_edit/omega_edit.js
-!src/omega_edit/interface.html
-!node_modules/@omega-edit/server/bin
-!node_modules/@omega-edit/server/lib
-!src/language/providers/intellisense/DFDLGeneralFormat.dfdl.xsd
-!dist/styles.css
-!dist/views/dataEditor/index.js
-!src/svelte/package.json
diff --git a/build/scripts/package.ts b/build/scripts/package.ts
deleted file mode 100644
index 9a9e587..0000000
--- a/build/scripts/package.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// @ts-nocheck <-- This is needed as this file is basically a JavaScript script
-//                 but with some TypeScript niceness baked in
-const fs = require('fs')
-const path = require('path')
-const glob = require('glob')
-const execSync = require('child_process').execSync
-const pkg_dir = 'dist/package'
-
-async function copyGlob(pattern, dir = '.') {
-  glob(pattern, { cwd: dir }, (error, files) => {
-    for (var i = 0; i < files.length; i++) {
-      let src = path.join(dir, files[i])
-      let dst = path.join(pkg_dir, files[i])
-      let dstDir = path.dirname(dst)
-
-      fs.mkdirSync(dstDir, { recursive: true })
-
-      if (fs.statSync(src).isFile()) {
-        if (src.toString() == 'package.json') {
-          let updatedLines = fs
-            .readFileSync(src, 'utf-8')
-            .replace(
-              '\t\t"postinstall": "cd src/svelte && yarn install",\n',
-              ''
-            )
-
-          fs.writeFileSync(dst, updatedLines, 'utf-8')
-          continue
-        }
-
-        fs.copyFileSync(src, dst)
-      }
-    }
-  })
-}
-
-// Setup package directory
-function setup() {
-  if (fs.existsSync(pkg_dir)) {
-    fs.rmSync(pkg_dir, { recursive: true })
-  }
-
-  fs.mkdirSync(pkg_dir)
-
-  let lines = fs
-    .readFileSync('build/package/.vscodeignore')
-    .toString()
-    .split('\n')
-
-  // Copy all files listed in the .vscodeignore
-  for (var i = 0; i < lines.length; i++) {
-    var line = lines[i]
-
-    if (!line.startsWith('!')) continue
-
-    let pattern = line.substring(1).trim()
-
-    copyGlob(pattern)
-  }
-
-  // Copy required package files into package directory
-  copyGlob('{.,}*', 'build/package') // include hidden files
-
-  fs.copyFileSync('yarn.lock', `${pkg_dir}/yarn.lock`)
-}
-
-// Create VSIX package
-function create() {
-  execSync('yarn install', { cwd: pkg_dir })
-  execSync('yarn vsce package --out ../../', { cwd: pkg_dir })
-}
-
-module.exports = {
-  setup: setup,
-  create: create,
-}
diff --git a/build/scripts/yarn-scripts.ts b/build/yarn-scripts.ts
similarity index 57%
rename from build/scripts/yarn-scripts.ts
rename to build/yarn-scripts.ts
index f4d51d3..9014b7c 100644
--- a/build/scripts/yarn-scripts.ts
+++ b/build/yarn-scripts.ts
@@ -17,19 +17,24 @@
 
 // @ts-nocheck <-- This is needed as this file is basically a JavaScript script
 //                 but with some TypeScript niceness baked in
+const path = require('path')
 const fs = require('fs')
 const glob = require('glob')
 const nodemon = require('nodemon')
 const concurrently = require('concurrently')
 
 function rmFileOrDirectory(path) {
-  if (fs.existsSync(path))
-    fs.rmSync(path, { recursive: true })
+  if (fs.existsSync(path)) fs.rmSync(path, { recursive: true })
 }
 
 function genVersionTS() {
-  const version = 
JSON.stringify(require('../../package.json').version).replace(/"/g, "'")
-  fs.writeFileSync('./src/version.ts', `/*
+  const version = JSON.stringify(require('../package.json').version).replace(
+    /"/g,
+    "'"
+  )
+  fs.writeFileSync(
+    './src/version.ts',
+    `/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -47,13 +52,23 @@ function genVersionTS() {
  */
 
 export const LIB_VERSION = ${version}
-`)
+`
+  )
 }
 
-const nodeclean = () =>
-  ['out', 'dist'].forEach((dir) => rmFileOrDirectory(dir))
+const nodeclean = () => {
+  ;['out', 'dist'].forEach((dir) => rmFileOrDirectory(dir))
+  glob('daffodil-debugger-*', { cwd: '.' }, (err, files) => {
+    if (err) {
+      console.log(err)
+      return
+    }
 
-function scalaclean() {
+    files.forEach((dir) => rmFileOrDirectory(dir))
+  })
+}
+
+const scalaclean = () => {
   glob('**/target', { cwd: '.' }, (err, files) => {
     if (err) {
       console.log(err)
@@ -67,9 +82,9 @@ function scalaclean() {
 function watch() {
   concurrently(
     [
-      "yarn scalawatch",
-      "webpack --watch --devtool nosources-source-map --config 
./build/extension.webpack.config.js",
-      "yarn watch:svelte"
+      'yarn scalawatch',
+      'webpack --watch --devtool nosources-source-map --config 
./webpack/ext-dev.webpack.config.js',
+      'yarn watch:svelte',
     ],
     {
       killOthers: ['failure', 'success'],
@@ -77,9 +92,38 @@ function watch() {
   )
 }
 
+function package() {
+  const pkg_dir = 'dist/package'
+
+  // create .vscodeignore to not package all node_modules into the vsix
+  fs.writeFileSync(
+    path.join(pkg_dir, '.vscodeignore'),
+    `# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+**/node_modules/**/*
+!node_modules/@omega-edit/server/bin
+!node_modules/@omega-edit/server/lib
+`
+  )
+}
+
 module.exports = {
   genVersionTS: genVersionTS,
   nodeclean: nodeclean,
   scalaclean: scalaclean,
   watch: watch,
+  package: package,
 }
diff --git a/debugger/nodemon.json b/debugger/nodemon.json
index d4dd3a0..efb2388 100644
--- a/debugger/nodemon.json
+++ b/debugger/nodemon.json
@@ -3,7 +3,7 @@
     "**/target/**"
   ],
   "verbose": true,
-  "exec": "yarn sbt",
+  "exec": "yarn sbt && yarn gen-version-ts",
   "watch": [
     "debugger",
     "project",
diff --git a/package.json b/package.json
index e4954da..a9c82f5 100644
--- a/package.json
+++ b/package.json
@@ -24,23 +24,22 @@
   },
   "scripts": {
     "postinstall": "cd src/svelte && yarn install",
-    "gen-version-ts": "run-func build/scripts/yarn-scripts.ts genVersionTS",
-    "nodeclean": "run-func build/scripts/yarn-scripts.ts nodeclean",
-    "scalaclean": "run-func build/scripts/yarn-scripts.ts scalaclean",
+    "gen-version-ts": "run-func build/yarn-scripts.ts genVersionTS",
+    "nodeclean": "run-func build/yarn-scripts.ts nodeclean",
+    "scalaclean": "run-func build/yarn-scripts.ts scalaclean",
     "clean": "yarn nodeclean && yarn scalaclean",
     "precompile": "yarn nodeclean && yarn gen-version-ts && cd src/svelte && 
yarn build",
     "compile": "tsc -p ./ && yarn sbt",
     "lint": "yarn prettier src -c && cd src/svelte && yarn lint",
     "lint:fix": "yarn prettier src -w && cd src/svelte && yarn lint:fix",
     "scalawatch": "nodemon --config debugger/nodemon.json",
-    "prewatch": "yarn gen-version-ts",
-    "watch": "run-func build/scripts/yarn-scripts.ts watch",
+    "prewatch": "yarn gen-version-ts && yarn sbt",
+    "watch": "run-func build/yarn-scripts.ts watch",
     "watch:svelte": "cd src/svelte && yarn dev",
-    "webpack": "webpack --mode production --config 
./build/extension.webpack.config.js",
-    "prepackage": "yarn install && yarn compile && yarn webpack",
-    "package": "yarn package-setup && yarn package-create",
-    "package-setup": "run-func build/scripts/package.ts setup",
-    "package-create": "run-func build/scripts/package.ts create",
+    "webpack": "webpack --mode production --config 
./webpack/ext-dev.webpack.config.js",
+    "webpack:pkg": "webpack --mode production --config 
./webpack/ext-package.webpack.config.js",
+    "prepackage": "yarn install && yarn compile && yarn webpack:pkg",
+    "package": "run-func build/yarn-scripts.ts package && yarn --cwd 
dist/package install && yarn --cwd dist/package vsce package --out ../../",
     "pretest": "yarn compile && yarn webpack",
     "test": "sbt test && node ./out/tests/runTest.js",
     "sbt": "sbt debugger/Universal/packageBin"
@@ -66,6 +65,7 @@
     "@vscode/vsce": "2.19.0",
     "chai": "^4.3.7",
     "concurrently": "^7.0.0",
+    "copy-webpack-plugin": "^11.0.0",
     "glob": "8.0.3",
     "mocha": "10.2.0",
     "prettier": "2.8.8",
diff --git a/src/classes/artifact.ts b/src/classes/artifact.ts
index d802dfb..7888dd8 100644
--- a/src/classes/artifact.ts
+++ b/src/classes/artifact.ts
@@ -18,13 +18,10 @@
 import { LIB_VERSION } from '../version'
 import { osCheck } from '../utils'
 
-export class Backend {
-  constructor(readonly owner: string, readonly repo: string) {}
-}
-
 export class Artifact {
   name: string
   archive: string
+  folder: string
   scriptName: string
 
   constructor(
@@ -36,14 +33,7 @@ export class Artifact {
       ? `${type}-${this.version}-${LIB_VERSION}`
       : `${type}-${this.version}`
     this.archive = `${this.name}.zip`
+    this.folder = `${this.name}`
     this.scriptName = osCheck(`${baseScriptName}.bat`, `./${baseScriptName}`)
   }
-
-  archiveUrl = (backend: Backend) => {
-    if (this.type.includes('omega-edit')) {
-      return 
`https://github.com/${backend.owner}/${backend.repo}/releases/download/v${this.version}/${this.archive}`
-    } else {
-      return ''
-    }
-  }
 }
diff --git a/src/daffodilDebugger/debugger.ts b/src/daffodilDebugger/debugger.ts
index c701b6f..a7fb514 100644
--- a/src/daffodilDebugger/debugger.ts
+++ b/src/daffodilDebugger/debugger.ts
@@ -17,42 +17,9 @@
 
 import * as vscode from 'vscode'
 import * as fs from 'fs'
-import XDGAppPaths from 'xdg-app-paths'
 import * as path from 'path'
 import { regexp, getConfig } from '../utils'
-import {
-  daffodilArtifact,
-  daffodilVersion,
-  extractDebugger,
-  runDebugger,
-  stopDebugger,
-  stopDebugging,
-} from './utils'
-
-const xdgAppPaths = XDGAppPaths({ name: 'daffodil-dap' })
-
-// Class for getting release data
-export class Release {
-  name: string
-  zipballUrl: string
-  tarballUrl: string
-  commit: JSON
-  nodeId: string
-
-  constructor(
-    name: string,
-    zipballUrl: string,
-    tarballUrl: string,
-    commit: JSON,
-    nodeId: string
-  ) {
-    this.name = name
-    this.zipballUrl = zipballUrl
-    this.tarballUrl = tarballUrl
-    this.commit = commit
-    this.nodeId = nodeId
-  }
-}
+import { runDebugger, stopDebugger, stopDebugging } from './utils'
 
 // Function to get data file given a folder
 export async function getDataFileFromFolder(dataFolder: string) {
@@ -207,22 +174,9 @@ export async function getDebugger(
   config: vscode.DebugConfiguration
 ) {
   config = getConfig(config) // make sure all config attributes are set
-  const artifact = daffodilArtifact(
-    daffodilVersion(context.asAbsolutePath('./package.json'))
-  )
 
-  // If useExistingServer var set to false make sure version of debugger 
entered is downloaded then ran
   if (!config.useExistingServer) {
     if (vscode.workspace.workspaceFolders !== undefined) {
-      let rootPath = xdgAppPaths.data()
-
-      // If data and app directories for storing debugger does not exist 
create them
-      if (!fs.existsSync(rootPath)) {
-        fs.mkdirSync(rootPath, { recursive: true })
-      }
-
-      await extractDebugger(context, artifact.archive, rootPath)
-
       await stopDebugger()
 
       if (!(await getTDMLConfig(config))) {
@@ -239,16 +193,8 @@ export async function getDebugger(
         workspaceFolder
       )
 
-      // Start debugger in terminal based on scriptName
-
-      /*
-       * For Mac if /bin/bash --login -c not used errors about compiled 
version versus
-       * currently being used java version. Not sure if its needed for linux 
but it
-       * being there will cause no issues.
-       */
-
       await runDebugger(
-        rootPath,
+        context.asAbsolutePath('./'),
         daffodilDebugClasspath,
         context.asAbsolutePath('./package.json'),
         config.debugServer,
diff --git a/src/daffodilDebugger/utils.ts b/src/daffodilDebugger/utils.ts
index 62e068d..93af30d 100644
--- a/src/daffodilDebugger/utils.ts
+++ b/src/daffodilDebugger/utils.ts
@@ -23,7 +23,7 @@ import { deactivate } from '../adapter/extension'
 import { getDaffodilVersion } from './daffodil'
 import { Artifact } from '../classes/artifact'
 import { DFDLDebugger } from '../classes/dfdlDebugger'
-import { osCheck, runScript, unzipFile } from '../utils'
+import { osCheck, runScript } from '../utils'
 
 export const daffodilVersion = (filePath: string): string => {
   return getDaffodilVersion(filePath)
@@ -53,12 +53,6 @@ export async function runDebugger(
     `daffodil-debugger-${dfdlVersion}-${LIB_VERSION}`
   )
 
-  /*
-   * For Mac if /bin/bash --login -c not used errors about compiled version 
versus
-   * currently being used java version. Not sure if its needed for linux but it
-   * being there will cause no issues.
-   */
-
   return await runScript(
     scriptPath,
     artifact.scriptName,
@@ -81,20 +75,3 @@ export async function stopDebugging() {
     await stopDebugger(id)
   })
 }
-
-export async function extractDebugger(
-  context: vscode.ExtensionContext,
-  artifactArchive: string,
-  rootPath: string
-) {
-  // Get daffodil-debugger zip from extension files
-  const filePath = path
-    .join(
-      context.asAbsolutePath('./debugger/target/universal'),
-      artifactArchive
-    )
-    .toString()
-
-  // Unzip file
-  await unzipFile(filePath, rootPath)
-}
diff --git a/src/tests/suite/daffodilDebugger.test.ts 
b/src/tests/suite/daffodilDebugger.test.ts
index f028156..3fbe338 100644
--- a/src/tests/suite/daffodilDebugger.test.ts
+++ b/src/tests/suite/daffodilDebugger.test.ts
@@ -20,7 +20,7 @@ import * as assert from 'assert'
 import * as path from 'path'
 import * as fs from 'fs'
 import { PROJECT_ROOT, PACKAGE_PATH, TEST_SCHEMA } from './common'
-import { getConfig, killProcess, unzipFile } from '../../utils'
+import { getConfig, killProcess } from '../../utils'
 import {
   daffodilArtifact,
   daffodilVersion,
@@ -36,11 +36,6 @@ suite('Daffodil Debugger', () => {
   const dfdlVersion = daffodilVersion(PACKAGE_PATH)
   const artifact = daffodilArtifact(dfdlVersion)
 
-  const SCALA_PATH = path.join(
-    PROJECT_ROOT,
-    'debugger/target/universal',
-    artifact.archive
-  )
   const EXTRACTED_FOLDER = path.join(PROJECT_ROOT, artifact.name)
 
   // debugger options
@@ -81,7 +76,6 @@ suite('Daffodil Debugger', () => {
   ]
 
   before(async () => {
-    await unzipFile(SCALA_PATH, PROJECT_ROOT)
     debuggers.push(
       await runDebugger(
         PROJECT_ROOT,
diff --git a/src/utils.ts b/src/utils.ts
index cf1cfd6..a462047 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -17,7 +17,6 @@
 
 import * as vscode from 'vscode'
 import * as fs from 'fs'
-import * as unzip from 'unzip-stream'
 import * as os from 'os'
 import * as child_process from 'child_process'
 import path from 'path'
@@ -133,22 +132,6 @@ export function getConfig(jsonArgs: object): 
vscode.DebugConfiguration {
   return JSON.parse(JSON.stringify(launchConfigArgs))
 }
 
-export async function unzipFile(zipFilePath: string, extractPath: string) {
-  return await new Promise((resolve, reject) => {
-    let stream = fs
-      .createReadStream(zipFilePath)
-      .pipe(unzip.Extract({ path: `${extractPath}` }) as NodeJS.WritableStream)
-
-    stream.on('close', () => {
-      try {
-        resolve(zipFilePath)
-      } catch (err) {
-        reject(err)
-      }
-    })
-  })
-}
-
 export async function displayTerminalExitStatus(terminal: vscode.Terminal) {
   vscode.window.onDidCloseTerminal((t) => {
     if (t.name === terminal.name && t.processId === terminal.processId) {
diff --git a/tsconfig.json b/tsconfig.json
index d428d08..56a079c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -44,7 +44,7 @@
        },
        "exclude": [
                "node_modules",
-               "build/scripts",
+               "build/yarn-scripts.ts",
                "src/svelte",
                "test-resources"
        ]
diff --git a/webpack/ext-dev.webpack.config.js 
b/webpack/ext-dev.webpack.config.js
new file mode 100644
index 0000000..1d64fef
--- /dev/null
+++ b/webpack/ext-dev.webpack.config.js
@@ -0,0 +1,105 @@
+/*---------------------------------------------------------------------------------------------
+ *  Copyright (c) Microsoft Corporation. All rights reserved.
+ *  Licensed under the MIT License. See License.txt in the project root for 
license information.
+ 
*--------------------------------------------------------------------------------------------*/
+
+//@ts-check
+'use strict'
+
+//@ts-check
+/** @typedef {import('webpack').Configuration} WebpackConfig **/
+
+const path = require('path')
+const unzip = require('unzip-stream')
+const fs = require('fs')
+
+const packageData = JSON.parse(
+  fs.readFileSync(path.resolve('package.json')).toString()
+)
+const pkg_version = packageData['version']
+const daffodilVersion = packageData['daffodilVersion']
+const serverPackage = `daffodil-debugger-${daffodilVersion}-${pkg_version}`
+const zipFilePath = path.resolve(
+  `debugger/target/universal/${serverPackage}.zip`
+)
+
+module.exports = /** @type WebpackConfig */ {
+  context: path.dirname(__dirname),
+  mode: 'none', // this leaves the source code as close as possible to the 
original (when packaging we set this to 'production')
+  target: 'node', // vscode extensions run in a Node.js-context
+  entry: {
+    extension: './src/adapter/extension.ts',
+  },
+  resolve: {
+    // support reading TypeScript and JavaScript files
+    extensions: ['.ts', '.js'],
+  },
+  node: {
+    __dirname: false, // leave the __dirname-behaviour intact
+  },
+  module: {
+    rules: [
+      {
+        test: /\.ts$/,
+        exclude: /node_modules/,
+        use: [
+          {
+            // configure TypeScript loader:
+            // * enable sources maps for end-to-end source maps
+            loader: 'ts-loader',
+            options: {
+              compilerOptions: {
+                sourceMap: true,
+                declaration: false,
+              },
+            },
+          },
+        ],
+      },
+    ],
+  },
+  externals: {
+    vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and 
must be excluded. Add other modules that cannot be webpack'ed
+  },
+  output: {
+    filename: 'extension.js',
+    path: path.resolve(__dirname, '../dist/ext'),
+    libraryTarget: 'commonjs2',
+    devtoolModuleFilenameTemplate: '../../[resource-path]',
+    hashFunction: 'sha512',
+    clean: true, // makes sure the output directory is remade
+  },
+  devtool: 'source-map',
+  plugins: [
+    {
+      // unzip server package file
+      apply: (compiler) => {
+        compiler.hooks.done.tap('extra', async () => {
+          const serverPackageFolder = path.join(
+            path.resolve('dist/package'),
+            serverPackage
+          )
+
+          // remove debugger package folder if exists
+          if (fs.existsSync(serverPackageFolder)) {
+            fs.rmSync(serverPackageFolder, { recursive: true })
+          }
+
+          await new Promise(async (resolve, reject) =>
+            fs
+              .createReadStream(zipFilePath)
+              // @ts-ignore
+              .pipe(unzip.Extract({ path: '.' }))
+              .on('close', async () => {
+                try {
+                  resolve(zipFilePath)
+                } catch (err) {
+                  reject(err)
+                }
+              })
+          )
+        })
+      },
+    },
+  ],
+}
diff --git a/webpack/ext-package.webpack.config.js 
b/webpack/ext-package.webpack.config.js
new file mode 100644
index 0000000..ab342e0
--- /dev/null
+++ b/webpack/ext-package.webpack.config.js
@@ -0,0 +1,161 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+//@ts-check
+'use strict'
+
+//@ts-check
+/** @typedef {import('webpack').Configuration} WebpackConfig **/
+
+// import packages
+const path = require('path')
+const unzip = require('unzip-stream')
+const fs = require('fs')
+const CopyPlugin = require('copy-webpack-plugin')
+
+const pkg_dir = path.resolve('dist/package')
+
+const packageData = JSON.parse(
+  fs.readFileSync(path.resolve('package.json')).toString()
+)
+const pkg_version = packageData['version']
+const daffodilVersion = packageData['daffodilVersion']
+const serverPackage = `daffodil-debugger-${daffodilVersion}-${pkg_version}`
+const zipFilePath = path.resolve(
+  `debugger/target/universal/${serverPackage}.zip`
+)
+
+module.exports = /** @type WebpackConfig */ {
+  context: path.dirname(__dirname),
+  mode: 'none', // this leaves the source code as close as possible to the 
original (when packaging we set this to 'production')
+  target: 'node', // vscode extensions run in a Node.js-context
+  entry: {
+    extension: './src/adapter/extension.ts',
+  },
+  resolve: {
+    // support reading TypeScript and JavaScript files
+    extensions: ['.ts', '.js'],
+  },
+  node: {
+    __dirname: false, // leave the __dirname-behaviour intact
+  },
+  module: {
+    rules: [
+      {
+        test: /\.ts$/,
+        exclude: /node_modules/,
+        use: [
+          {
+            // configure TypeScript loader:
+            // * enable sources maps for end-to-end source maps
+            loader: 'ts-loader',
+            options: {
+              compilerOptions: {
+                sourceMap: true,
+                declaration: false,
+              },
+            },
+          },
+        ],
+      },
+    ],
+  },
+  externals: {
+    vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and 
must be excluded. Add other modules that cannot be webpack'ed
+  },
+  output: {
+    filename: 'extension.js',
+    path: path.resolve(__dirname, '../dist/package/dist/ext'),
+    libraryTarget: 'commonjs2',
+    devtoolModuleFilenameTemplate: '../../[resource-path]',
+    hashFunction: 'sha512',
+    clean: true, // makes sure the output directory is remade
+  },
+  devtool: 'source-map',
+  plugins: [
+    new CopyPlugin({
+      patterns: [
+        // { from: 'build/package/.vscodeignore', to: pkg_dir },
+        { from: 'build/package/LICENSE', to: `${pkg_dir}` },
+        { from: 'build/package/NOTICE', to: `${pkg_dir}` },
+        { from: 'dist/styles.css', to: `${pkg_dir}/dist/styles.css` },
+        {
+          from: 'dist/views/dataEditor/index.js',
+          to: `${pkg_dir}/dist/views/dataEditor/index.js`,
+        },
+        { from: 'images', to: `${pkg_dir}/images` },
+        { from: 'language', to: `${pkg_dir}/language` },
+        { from: 'package.json', to: `${pkg_dir}` },
+        {
+          from: 'node_modules/@omega-edit/server/bin',
+          to: `${pkg_dir}/node_modules/@omega-edit/server/bin`,
+        },
+        {
+          from: 'node_modules/@omega-edit/server/lib',
+          to: `${pkg_dir}/node_modules/@omega-edit/server/lib`,
+        },
+        {
+          from: 
'src/language/providers/intellisense/DFDLGeneralFormat.dfdl.xsd',
+          to: 
`${pkg_dir}/src/language/providers/intellisense/DFDLGeneralFormat.dfdl.xsd`,
+        },
+        {
+          from: 'src/launchWizard/launchWizard.js',
+          to: `${pkg_dir}/src/launchWizard/launchWizard.js`,
+        },
+        {
+          from: 'src/styles/styles.css',
+          to: `${pkg_dir}/src/styles/styles.css`,
+        },
+        {
+          from: 'src/svelte/package.json',
+          to: `${pkg_dir}/src/svelte/package.json`,
+        },
+      ],
+    }),
+    {
+      apply: (compiler) => {
+        compiler.hooks.done.tap('extra', async () => {
+          // remove debugger package folder if exists
+          const serverPackageFolder = path.join(
+            path.resolve('dist/package'),
+            serverPackage
+          )
+
+          // remove debugger package folder if exists
+          if (fs.existsSync(serverPackageFolder)) {
+            fs.rmSync(serverPackageFolder, { recursive: true })
+          }
+
+          // unzip debugger package file
+          await new Promise(async (resolve, reject) =>
+            fs
+              .createReadStream(zipFilePath)
+              // @ts-ignore
+              .pipe(unzip.Extract({ path: 'dist/package' }))
+              .on('close', async () => {
+                try {
+                  resolve(zipFilePath)
+                } catch (err) {
+                  reject(err)
+                }
+              })
+          )
+        })
+      },
+    },
+  ],
+}
diff --git a/yarn.lock b/yarn.lock
index 44bd735..d2e7f34 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -91,6 +91,27 @@
     "@jridgewell/resolve-uri" "3.1.0"
     "@jridgewell/sourcemap-codec" "1.4.14"
 
+"@nodelib/[email protected]":
+  version "2.1.5"
+  resolved 
"https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5";
+  integrity 
sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.5"
+    run-parallel "^1.1.9"
+
+"@nodelib/[email protected]", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.5"
+  resolved 
"https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b";
+  integrity 
sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+  version "1.2.8"
+  resolved 
"https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a";
+  integrity 
sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.5"
+    fastq "^1.6.0"
+
 "@omega-edit/[email protected]":
   version "0.9.63"
   resolved 
"https://registry.yarnpkg.com/@omega-edit/client/-/client-0.9.63.tgz#495479f52beb8cdc4330b97b2981a2cb90ea9f2b";
@@ -252,6 +273,11 @@
   resolved 
"https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3";
   integrity 
sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
 
+"@types/json-schema@^7.0.9":
+  version "7.0.12"
+  resolved 
"https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb";
+  integrity 
sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==
+
 "@types/keyv@^3.1.4":
   version "3.1.4"
   resolved 
"https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6";
@@ -542,11 +568,25 @@ agent-base@6:
   dependencies:
     debug "4"
 
+ajv-formats@^2.1.1:
+  version "2.1.1"
+  resolved 
"https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520";
+  integrity 
sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
+  dependencies:
+    ajv "^8.0.0"
+
 ajv-keywords@^3.5.2:
   version "3.5.2"
   resolved 
"https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d";
   integrity 
sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
 
+ajv-keywords@^5.1.0:
+  version "5.1.0"
+  resolved 
"https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16";
+  integrity 
sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
+  dependencies:
+    fast-deep-equal "^3.1.3"
+
 ajv@^6.12.5:
   version "6.12.6"
   resolved 
"https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4";
@@ -557,6 +597,16 @@ ajv@^6.12.5:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
+ajv@^8.0.0, ajv@^8.9.0:
+  version "8.12.0"
+  resolved 
"https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1";
+  integrity 
sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    json-schema-traverse "^1.0.0"
+    require-from-string "^2.0.2"
+    uri-js "^4.2.2"
+
 [email protected]:
   version "4.1.1"
   resolved 
"https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348";
@@ -1023,6 +1073,18 @@ concurrently@^7.0.0:
     tree-kill "^1.2.2"
     yargs "^17.3.1"
 
+copy-webpack-plugin@^11.0.0:
+  version "11.0.0"
+  resolved 
"https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a";
+  integrity 
sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==
+  dependencies:
+    fast-glob "^3.2.11"
+    glob-parent "^6.0.1"
+    globby "^13.1.1"
+    normalize-path "^3.0.0"
+    schema-utils "^4.0.0"
+    serialize-javascript "^6.0.0"
+
 core-util-is@~1.0.0:
   version "1.0.3"
   resolved 
"https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85";
@@ -1132,6 +1194,13 @@ diff@^4.0.1:
   resolved 
"https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d";
   integrity 
sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
 
+dir-glob@^3.0.1:
+  version "3.0.1"
+  resolved 
"https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f";
+  integrity 
sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+  dependencies:
+    path-type "^4.0.0"
+
 dom-serializer@^2.0.0:
   version "2.0.0"
   resolved 
"https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53";
@@ -1303,11 +1372,22 @@ expand-template@^2.0.3:
   resolved 
"https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c";
   integrity 
sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
 
-fast-deep-equal@^3.1.1:
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
   version "3.1.3"
   resolved 
"https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525";
   integrity 
sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 
+fast-glob@^3.2.11, fast-glob@^3.3.0:
+  version "3.3.0"
+  resolved 
"https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0";
+  integrity 
sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==
+  dependencies:
+    "@nodelib/fs.stat" "^2.0.2"
+    "@nodelib/fs.walk" "^1.2.3"
+    glob-parent "^5.1.2"
+    merge2 "^1.3.0"
+    micromatch "^4.0.4"
+
 fast-json-stable-stringify@^2.0.0:
   version "2.1.0"
   resolved 
"https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633";
@@ -1323,6 +1403,13 @@ fastest-levenshtein@^1.0.12:
   resolved 
"https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5";
   integrity 
sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
 
+fastq@^1.6.0:
+  version "1.15.0"
+  resolved 
"https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a";
+  integrity 
sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
+  dependencies:
+    reusify "^1.0.4"
+
 fd-slicer@~1.1.0:
   version "1.1.0"
   resolved 
"https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
@@ -1435,13 +1522,20 @@ [email protected]:
   resolved 
"https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce";
   integrity 
sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==
 
-glob-parent@~5.1.2:
+glob-parent@^5.1.2, glob-parent@~5.1.2:
   version "5.1.2"
   resolved 
"https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4";
   integrity 
sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
   dependencies:
     is-glob "^4.0.1"
 
+glob-parent@^6.0.1:
+  version "6.0.2"
+  resolved 
"https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3";
+  integrity 
sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+  dependencies:
+    is-glob "^4.0.3"
+
 glob-to-regexp@^0.4.1:
   version "0.4.1"
   resolved 
"https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e";
@@ -1493,6 +1587,17 @@ glob@^8.1.0:
     minimatch "^5.0.1"
     once "^1.3.0"
 
+globby@^13.1.1:
+  version "13.2.2"
+  resolved 
"https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592";
+  integrity 
sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==
+  dependencies:
+    dir-glob "^3.0.1"
+    fast-glob "^3.3.0"
+    ignore "^5.2.4"
+    merge2 "^1.4.1"
+    slash "^4.0.0"
+
 google-protobuf@^3.21.2:
   version "3.21.2"
   resolved 
"https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4";
@@ -1614,6 +1719,11 @@ ignore-by-default@^1.0.1:
   resolved 
"https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
   integrity 
sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==
 
+ignore@^5.2.4:
+  version "5.2.4"
+  resolved 
"https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324";
+  integrity 
sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
+
 immediate@~3.0.5:
   version "3.0.6"
   resolved 
"https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b";
@@ -1679,7 +1789,7 @@ is-fullwidth-code-point@^3.0.0:
   resolved 
"https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d";
   integrity 
sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
 
-is-glob@^4.0.1, is-glob@~4.0.1:
+is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
   version "4.0.3"
   resolved 
"https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084";
   integrity 
sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -1766,6 +1876,11 @@ json-schema-traverse@^0.4.1:
   resolved 
"https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660";
   integrity 
sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
+json-schema-traverse@^1.0.0:
+  version "1.0.0"
+  resolved 
"https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+  integrity 
sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
 json5@^2.1.2:
   version "2.2.3"
   resolved 
"https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283";
@@ -1948,7 +2063,12 @@ merge-stream@^2.0.0:
   resolved 
"https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60";
   integrity 
sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
 
-micromatch@^4.0.0:
+merge2@^1.3.0, merge2@^1.4.1:
+  version "1.4.1"
+  resolved 
"https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae";
+  integrity 
sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromatch@^4.0.0, micromatch@^4.0.4:
   version "4.0.5"
   resolved 
"https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6";
   integrity 
sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
@@ -2277,6 +2397,11 @@ path-parse@^1.0.7:
   resolved 
"https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735";
   integrity 
sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
 
+path-type@^4.0.0:
+  version "4.0.0"
+  resolved 
"https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
+  integrity 
sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
 pathval@^1.1.1:
   version "1.1.1"
   resolved 
"https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d";
@@ -2428,6 +2553,11 @@ qs@^6.9.1:
   dependencies:
     side-channel "^1.0.4"
 
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved 
"https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243";
+  integrity 
sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
 quick-format-unescaped@^4.0.3:
   version "4.0.4"
   resolved 
"https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7";
@@ -2518,6 +2648,11 @@ require-directory@^2.1.1:
   resolved 
"https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
   integrity 
sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
 
+require-from-string@^2.0.2:
+  version "2.0.2"
+  resolved 
"https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909";
+  integrity 
sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
 resolve-alpn@^1.0.0:
   version "1.2.1"
   resolved 
"https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9";
@@ -2551,6 +2686,11 @@ responselike@^2.0.0:
   dependencies:
     lowercase-keys "^2.0.0"
 
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved 
"https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76";
+  integrity 
sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
 rimraf@2:
   version "2.7.1"
   resolved 
"https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec";
@@ -2570,6 +2710,13 @@ run-func@^3.0.0:
   resolved 
"https://registry.yarnpkg.com/run-func/-/run-func-3.0.0.tgz#16b5802afdb8e92d3e0857d16e728295876005cb";
   integrity 
sha512-RZwVzBrD7biV5CiAgwEUdaRGt0hLjBrhn4PqemBuNogH9Sc/8Bv8p+6F6AweU5bxZXsb3Mxltgu+/f+TGi0udA==
 
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved 
"https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee";
+  integrity 
sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
+
 rxjs@^7.0.0:
   version "7.8.0"
   resolved 
"https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4";
@@ -2613,6 +2760,16 @@ schema-utils@^3.1.1, schema-utils@^3.2.0:
     ajv "^6.12.5"
     ajv-keywords "^3.5.2"
 
+schema-utils@^4.0.0:
+  version "4.2.0"
+  resolved 
"https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b";
+  integrity 
sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==
+  dependencies:
+    "@types/json-schema" "^7.0.9"
+    ajv "^8.9.0"
+    ajv-formats "^2.1.1"
+    ajv-keywords "^5.1.0"
+
 selenium-webdriver@^4.8.1:
   version "4.8.2"
   resolved 
"https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.8.2.tgz#2e7cb452133f7a6859879575852ef29f0ab4668c";
@@ -2641,7 +2798,7 @@ [email protected]:
   dependencies:
     randombytes "^2.1.0"
 
-serialize-javascript@^6.0.1:
+serialize-javascript@^6.0.0, serialize-javascript@^6.0.1:
   version "6.0.1"
   resolved 
"https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c";
   integrity 
sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==
@@ -2724,6 +2881,11 @@ simple-update-notifier@^2.0.0:
   dependencies:
     semver "^7.5.3"
 
+slash@^4.0.0:
+  version "4.0.0"
+  resolved 
"https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7";
+  integrity 
sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
+
 sonic-boom@^3.1.0:
   version "3.3.0"
   resolved 
"https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.3.0.tgz#cffab6dafee3b2bcb88d08d589394198bee1838c";

Reply via email to