diff --git a/package-lock.json b/package-lock.json index f930d6ad..0d388883 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2609,6 +2609,10 @@ "resolved": "packages/ecc-client-elixir-ro-crate", "link": true }, + "node_modules/@elixir-cloud/service-registry": { + "resolved": "packages/ecc-client-ga4gh-service-registry", + "link": true + }, "node_modules/@elixir-cloud/tes": { "resolved": "packages/ecc-client-ga4gh-tes", "link": true @@ -15492,7 +15496,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -18867,6 +18872,20 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/parse-numeric-range": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", @@ -19884,6 +19903,31 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w==", + "dev": true, + "license": "MIT", + "dependencies": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/read-yaml-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", @@ -25619,6 +25663,27 @@ "node": ">=12" } }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -26189,9 +26254,9 @@ "node": ">=4.2.0" } }, - "packages/ecc-client-ga4gh-tes": { - "name": "@elixir-cloud/tes", - "version": "1.0.1", + "packages/ecc-client-ga4gh-service-registry": { + "name": "@elixir-cloud/service-registry", + "version": "0.1.0", "license": "Apache-2.0", "dependencies": { "@elixir-cloud/design": "*", @@ -26219,11 +26284,12 @@ "typescript": "*" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@custom-elements-manifest/analyzer": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@custom-elements-manifest/analyzer": { "version": "0.4.17", "resolved": "https://registry.npmjs.org/@custom-elements-manifest/analyzer/-/analyzer-0.4.17.tgz", "integrity": "sha512-4eFORsv7W6cH0s7iSEC1urU9ZnDGCTlCh6AvzzkIWhPhFwCI6PyF+xWXj0mxme6UYxpC6lite/cGj42QV/q3Cw==", "dev": true, + "license": "MIT", "dependencies": { "@web/config-loader": "^0.1.3", "chokidar": "^3.5.2", @@ -26239,11 +26305,38 @@ "custom-elements-manifest": "index.js" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@open-wc/eslint-config": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "packages/ecc-client-ga4gh-service-registry/node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "packages/ecc-client-ga4gh-service-registry/node_modules/@open-wc/eslint-config": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/@open-wc/eslint-config/-/eslint-config-9.2.2.tgz", "integrity": "sha512-Sb7J+U8HWBkP7RErsaQiwMHM9k/7hlcYO2K4eE0KtOATakBIPbOaYUjqe7K14haTArJalAhaZ8TSqoB+6UvUwg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/eslint-parser": "^7.19.1", "@babel/plugin-syntax-import-assertions": "^7.20.0", @@ -26266,21 +26359,23 @@ "eslint-plugin-wc": "^1.2.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@open-wc/scoped-elements": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@open-wc/scoped-elements": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", "dev": true, + "license": "MIT", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0", "@open-wc/dedupe-mixin": "^1.4.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@open-wc/testing": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@open-wc/testing": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.2.2.tgz", "integrity": "sha512-byN4dJTd6ZyI9mWmI4lVj30uiu+rYvQr93g64Pd7UFBdAUgb02DHLj6fkJ1gjxA6LC/MeFd7K7mOZ4+vKrMptw==", "dev": true, + "license": "MIT", "dependencies": { "@esm-bundle/chai": "^4.3.4-fix.0", "@open-wc/semantic-dom-diff": "^0.20.0", @@ -26290,22 +26385,24 @@ "chai-a11y-axe": "^1.5.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@open-wc/testing-helpers": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@open-wc/testing-helpers": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.3.2.tgz", "integrity": "sha512-uZMGC/C1m5EiwQsff6KMmCW25TYMQlJt4ilAWIjnelWGFg9HPUiLnlFvAas3ESUP+4OXLO8Oft7p4mHvbYvAEQ==", "dev": true, + "license": "MIT", "dependencies": { "@open-wc/scoped-elements": "^2.2.4", "lit": "^2.0.0 || ^3.0.0", "lit-html": "^2.0.0 || ^3.0.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@rollup/plugin-node-resolve": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@rollup/plugin-node-resolve": { "version": "13.3.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -26321,11 +26418,12 @@ "rollup": "^2.42.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@rollup/pluginutils": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@rollup/pluginutils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", @@ -26338,26 +26436,29 @@ "rollup": "^1.20.0||^2.0.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@types/estree": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true + "dev": true, + "license": "MIT" }, - "packages/ecc-client-ga4gh-tes/node_modules/@types/resolve": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@web/dev-server": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@web/dev-server": { "version": "0.1.38", "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.38.tgz", "integrity": "sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.11", "@types/command-line-args": "^5.0.0", @@ -26382,11 +26483,12 @@ "node": ">=10.0.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@web/dev-server-core": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@web/dev-server-core": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", "dev": true, + "license": "MIT", "dependencies": { "@types/koa": "^2.11.6", "@types/ws": "^7.4.0", @@ -26411,11 +26513,12 @@ "node": ">=10.0.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@web/dev-server-rollup": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@web/dev-server-rollup": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.4.1.tgz", "integrity": "sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==", "dev": true, + "license": "MIT", "dependencies": { "@rollup/plugin-node-resolve": "^13.0.4", "@web/dev-server-core": "^0.4.1", @@ -26428,11 +26531,12 @@ "node": ">=10.0.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/@web/parse5-utils": { + "packages/ecc-client-ga4gh-service-registry/node_modules/@web/parse5-utils": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", "dev": true, + "license": "MIT", "dependencies": { "@types/parse5": "^6.0.1", "parse5": "^6.0.1" @@ -26441,20 +26545,22 @@ "node": ">=10.0.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/ansi-regex": { + "packages/ecc-client-ga4gh-service-registry/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/ansi-styles": { + "packages/ecc-client-ga4gh-service-registry/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, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -26462,22 +26568,24 @@ "node": ">=4" } }, - "packages/ecc-client-ga4gh-tes/node_modules/cliui": { + "packages/ecc-client-ga4gh-service-registry/node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/cliui/node_modules/strip-ansi": { + "packages/ecc-client-ga4gh-service-registry/node_modules/cliui/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -26485,26 +26593,29 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/color-convert": { + "packages/ecc-client-ga4gh-service-registry/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, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, - "packages/ecc-client-ga4gh-tes/node_modules/color-name": { + "packages/ecc-client-ga4gh-service-registry/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 + "dev": true, + "license": "MIT" }, - "packages/ecc-client-ga4gh-tes/node_modules/concurrently": { + "packages/ecc-client-ga4gh-service-registry/node_modules/concurrently": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz", "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^2.4.2", "date-fns": "^2.0.1", @@ -26523,11 +26634,12 @@ "node": ">=6.0.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/concurrently/node_modules/chalk": { + "packages/ecc-client-ga4gh-service-registry/node_modules/concurrently/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, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -26537,11 +26649,12 @@ "node": ">=4" } }, - "packages/ecc-client-ga4gh-tes/node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "packages/ecc-client-ga4gh-service-registry/node_modules/concurrently/node_modules/chalk/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, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -26549,32 +26662,36 @@ "node": ">=4" } }, - "packages/ecc-client-ga4gh-tes/node_modules/concurrently/node_modules/escape-string-regexp": { + "packages/ecc-client-ga4gh-service-registry/node_modules/concurrently/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, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", - "dev": true + "packages/ecc-client-ga4gh-service-registry/node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" }, - "packages/ecc-client-ga4gh-tes/node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "packages/ecc-client-ga4gh-service-registry/node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -26619,11 +26736,12 @@ "url": "https://opencollective.com/eslint" } }, - "packages/ecc-client-ga4gh-tes/node_modules/eslint-plugin-lit-a11y": { + "packages/ecc-client-ga4gh-service-registry/node_modules/eslint-plugin-lit-a11y": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.4.1.tgz", "integrity": "sha512-UljRja/2cVrNtgnCDj5sCT3Larxda4mGqbsPhlksvECo0+KCD8EuUori/P6wFeFqk+pHlkIC3W200E5q85E3VQ==", "dev": true, + "license": "ISC", "dependencies": { "aria-query": "^5.1.3", "axe-core": "^4.3.3", @@ -26641,29 +26759,32 @@ "eslint": ">= 5" } }, - "packages/ecc-client-ga4gh-tes/node_modules/eslint-plugin-lit-a11y/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "packages/ecc-client-ga4gh-service-registry/node_modules/eslint-plugin-lit-a11y/node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dev": true, + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^4.5.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "packages/ecc-client-ga4gh-tes/node_modules/estree-walker": { + "packages/ecc-client-ga4gh-service-registry/node_modules/estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", - "dev": true + "dev": true, + "license": "MIT" }, - "packages/ecc-client-ga4gh-tes/node_modules/globby": { + "packages/ecc-client-ga4gh-service-registry/node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -26679,29 +26800,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/ecc-client-ga4gh-tes/node_modules/has-flag": { + "packages/ecc-client-ga4gh-service-registry/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, + "license": "MIT", "engines": { "node": ">=4" } }, - "packages/ecc-client-ga4gh-tes/node_modules/is-fullwidth-code-point": { + "packages/ecc-client-ga4gh-service-registry/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, - "packages/ecc-client-ga4gh-tes/node_modules/locate-path": { + "packages/ecc-client-ga4gh-service-registry/node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -26710,11 +26834,12 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/lru-cache": { + "packages/ecc-client-ga4gh-service-registry/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, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -26722,11 +26847,12 @@ "node": ">=10" } }, - "packages/ecc-client-ga4gh-tes/node_modules/p-locate": { + "packages/ecc-client-ga4gh-service-registry/node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -26734,52 +26860,17 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ecc-client-ga4gh-tes/node_modules/path-exists": { + "packages/ecc-client-ga4gh-service-registry/node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, - "packages/ecc-client-ga4gh-tes/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "packages/ecc-client-ga4gh-tes/node_modules/read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w==", - "dev": true, - "dependencies": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "packages/ecc-client-ga4gh-tes/node_modules/rollup": { + "packages/ecc-client-ga4gh-service-registry/node_modules/rollup": { "version": "2.79.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", @@ -26795,11 +26886,12 @@ "fsevents": "~2.3.2" } }, - "packages/ecc-client-ga4gh-tes/node_modules/rxjs": { + "packages/ecc-client-ga4gh-service-registry/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "tslib": "^1.9.0" }, @@ -26807,26 +26899,29 @@ "npm": ">=2.0.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/rxjs/node_modules/tslib": { + "packages/ecc-client-ga4gh-service-registry/node_modules/rxjs/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, - "packages/ecc-client-ga4gh-tes/node_modules/slash": { + "packages/ecc-client-ga4gh-service-registry/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "packages/ecc-client-ga4gh-tes/node_modules/source-map": { + "packages/ecc-client-ga4gh-service-registry/node_modules/source-map": { "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "whatwg-url": "^7.0.0" }, @@ -26834,22 +26929,24 @@ "node": ">= 8" } }, - "packages/ecc-client-ga4gh-tes/node_modules/source-map/node_modules/whatwg-url": { + "packages/ecc-client-ga4gh-service-registry/node_modules/source-map/node_modules/whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, + "license": "MIT", "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", "webidl-conversions": "^4.0.2" } }, - "packages/ecc-client-ga4gh-tes/node_modules/string-width": { + "packages/ecc-client-ga4gh-service-registry/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -26859,17 +26956,19 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/string-width/node_modules/emoji-regex": { + "packages/ecc-client-ga4gh-service-registry/node_modules/string-width/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "dev": true, + "license": "MIT" }, - "packages/ecc-client-ga4gh-tes/node_modules/string-width/node_modules/strip-ansi": { + "packages/ecc-client-ga4gh-service-registry/node_modules/string-width/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -26877,11 +26976,12 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/supports-color": { + "packages/ecc-client-ga4gh-service-registry/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -26889,20 +26989,22 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/tr46": { + "packages/ecc-client-ga4gh-service-registry/node_modules/tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/tsup": { + "packages/ecc-client-ga4gh-service-registry/node_modules/tsup": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/tsup/-/tsup-7.2.0.tgz", "integrity": "sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==", "dev": true, + "license": "MIT", "dependencies": { "bundle-require": "^4.0.0", "cac": "^6.7.12", @@ -26943,7 +27045,7 @@ } } }, - "packages/ecc-client-ga4gh-tes/node_modules/tsup/node_modules/rollup": { + "packages/ecc-client-ga4gh-service-registry/node_modules/tsup/node_modules/rollup": { "version": "3.29.5", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", @@ -26960,11 +27062,12 @@ "fsevents": "~2.3.2" } }, - "packages/ecc-client-ga4gh-tes/node_modules/typescript": { + "packages/ecc-client-ga4gh-service-registry/node_modules/typescript": { "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -26973,17 +27076,19 @@ "node": ">=4.2.0" } }, - "packages/ecc-client-ga4gh-tes/node_modules/webidl-conversions": { + "packages/ecc-client-ga4gh-service-registry/node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, - "packages/ecc-client-ga4gh-tes/node_modules/wrap-ansi": { + "packages/ecc-client-ga4gh-service-registry/node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -26993,11 +27098,12 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/wrap-ansi/node_modules/strip-ansi": { + "packages/ecc-client-ga4gh-service-registry/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" }, @@ -27005,7 +27111,833 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-tes/node_modules/y18n": { + "packages/ecc-client-ga4gh-service-registry/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "packages/ecc-client-ga4gh-service-registry/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, + "license": "ISC" + }, + "packages/ecc-client-ga4gh-service-registry/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "packages/ecc-client-ga4gh-service-registry/node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes": { + "name": "@elixir-cloud/tes", + "version": "1.0.1", + "license": "Apache-2.0", + "dependencies": { + "@elixir-cloud/design": "*", + "lit": "^2.8.0" + }, + "devDependencies": { + "@custom-elements-manifest/analyzer": "^0.4.17", + "@elixir-cloud/eslint-config": "*", + "@lit/react": "*", + "@open-wc/eslint-config": "^9.2.1", + "@open-wc/testing": "^3.1.6", + "@typescript-eslint/eslint-plugin": "^5.48.0", + "@typescript-eslint/parser": "^5.48.0", + "@web/dev-server": "^0.1.34", + "@web/test-runner": "^0.19.0", + "commander": "*", + "concurrently": "^5.3.0", + "custom-element-jet-brains-integration": "*", + "custom-element-vs-code-integration": "*", + "eslint": "^8.31.0", + "eslint-config-prettier": "^8.3.0", + "react": "*", + "tslib": "^2.3.1", + "tsup": "^7.2.0", + "typescript": "*" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@custom-elements-manifest/analyzer": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/@custom-elements-manifest/analyzer/-/analyzer-0.4.17.tgz", + "integrity": "sha512-4eFORsv7W6cH0s7iSEC1urU9ZnDGCTlCh6AvzzkIWhPhFwCI6PyF+xWXj0mxme6UYxpC6lite/cGj42QV/q3Cw==", + "dev": true, + "dependencies": { + "@web/config-loader": "^0.1.3", + "chokidar": "^3.5.2", + "command-line-args": "^5.1.2", + "comment-parser": "^1.2.0", + "custom-elements-manifest": "^1.0.0", + "debounce": "^1.2.1", + "globby": "^11.0.4", + "typescript": "^4.3.2" + }, + "bin": { + "cem": "index.js", + "custom-elements-manifest": "index.js" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@open-wc/eslint-config": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@open-wc/eslint-config/-/eslint-config-9.2.2.tgz", + "integrity": "sha512-Sb7J+U8HWBkP7RErsaQiwMHM9k/7hlcYO2K4eE0KtOATakBIPbOaYUjqe7K14haTArJalAhaZ8TSqoB+6UvUwg==", + "dev": true, + "dependencies": { + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-syntax-import-assertions": "^7.20.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-import-exports-imports-resolver": "^1.0.1", + "eslint-plugin-lit": "^1.8.0", + "eslint-plugin-lit-a11y": "^2.3.0", + "eslint-plugin-no-only-tests": "^3.1.0", + "eslint-plugin-wc": "^1.2.0" + }, + "peerDependencies": { + "eslint": ">=7.6.0", + "eslint-plugin-html": "^7.1.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-lit": "^1.3.0", + "eslint-plugin-lit-a11y": "^2.3.0", + "eslint-plugin-no-only-tests": "^3.1.0", + "eslint-plugin-wc": "^1.2.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@open-wc/scoped-elements": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@open-wc/scoped-elements/-/scoped-elements-2.2.4.tgz", + "integrity": "sha512-12X4F4QGPWcvPbxAiJ4v8wQFCOu+laZHRGfTrkoj+3JzACCtuxHG49YbuqVzQ135QPKCuhP9wA0kpGGEfUegyg==", + "dev": true, + "dependencies": { + "@lit/reactive-element": "^1.0.0 || ^2.0.0", + "@open-wc/dedupe-mixin": "^1.4.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@open-wc/testing": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-3.2.2.tgz", + "integrity": "sha512-byN4dJTd6ZyI9mWmI4lVj30uiu+rYvQr93g64Pd7UFBdAUgb02DHLj6fkJ1gjxA6LC/MeFd7K7mOZ4+vKrMptw==", + "dev": true, + "dependencies": { + "@esm-bundle/chai": "^4.3.4-fix.0", + "@open-wc/semantic-dom-diff": "^0.20.0", + "@open-wc/testing-helpers": "^2.3.1", + "@types/chai-dom": "^1.11.0", + "@types/sinon-chai": "^3.2.3", + "chai-a11y-axe": "^1.5.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@open-wc/testing-helpers": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@open-wc/testing-helpers/-/testing-helpers-2.3.2.tgz", + "integrity": "sha512-uZMGC/C1m5EiwQsff6KMmCW25TYMQlJt4ilAWIjnelWGFg9HPUiLnlFvAas3ESUP+4OXLO8Oft7p4mHvbYvAEQ==", + "dev": true, + "dependencies": { + "@open-wc/scoped-elements": "^2.2.4", + "lit": "^2.0.0 || ^3.0.0", + "lit-html": "^2.0.0 || ^3.0.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "packages/ecc-client-ga4gh-tes/node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@web/dev-server": { + "version": "0.1.38", + "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.1.38.tgz", + "integrity": "sha512-WUq7Zi8KeJ5/UZmmpZ+kzUpUlFlMP/rcreJKYg9Lxiz998KYl4G5Rv24akX0piTuqXG7r6h+zszg8V/hdzjCoA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/command-line-args": "^5.0.0", + "@web/config-loader": "^0.1.3", + "@web/dev-server-core": "^0.4.1", + "@web/dev-server-rollup": "^0.4.1", + "camelcase": "^6.2.0", + "command-line-args": "^5.1.1", + "command-line-usage": "^7.0.1", + "debounce": "^1.2.0", + "deepmerge": "^4.2.2", + "ip": "^1.1.5", + "nanocolors": "^0.2.1", + "open": "^8.0.2", + "portfinder": "^1.0.32" + }, + "bin": { + "wds": "dist/bin.js", + "web-dev-server": "dist/bin.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@web/dev-server-core": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", + "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", + "dev": true, + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.3.1", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@web/dev-server-rollup": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.4.1.tgz", + "integrity": "sha512-Ebsv7Ovd9MufeH3exvikBJ7GmrZA5OmHnOgaiHcwMJ2eQBJA5/I+/CbRjsLX97ICj/ZwZG//p2ITRz8W3UfSqg==", + "dev": true, + "dependencies": { + "@rollup/plugin-node-resolve": "^13.0.4", + "@web/dev-server-core": "^0.4.1", + "nanocolors": "^0.2.1", + "parse5": "^6.0.1", + "rollup": "^2.67.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/@web/parse5-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", + "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", + "dev": true, + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/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" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/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" + } + }, + "packages/ecc-client-ga4gh-tes/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 + }, + "packages/ecc-client-ga4gh-tes/node_modules/concurrently": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz", + "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "date-fns": "^2.0.1", + "lodash": "^4.17.15", + "read-pkg": "^4.0.1", + "rxjs": "^6.5.2", + "spawn-command": "^0.0.2-1", + "supports-color": "^6.1.0", + "tree-kill": "^1.2.2", + "yargs": "^13.3.0" + }, + "bin": { + "concurrently": "bin/concurrently.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/concurrently/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" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/concurrently/node_modules/chalk/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" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/concurrently/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" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/es-module-lexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==", + "dev": true + }, + "packages/ecc-client-ga4gh-tes/node_modules/eslint": { + "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.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", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/eslint-plugin-lit-a11y": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-lit-a11y/-/eslint-plugin-lit-a11y-2.4.1.tgz", + "integrity": "sha512-UljRja/2cVrNtgnCDj5sCT3Larxda4mGqbsPhlksvECo0+KCD8EuUori/P6wFeFqk+pHlkIC3W200E5q85E3VQ==", + "dev": true, + "dependencies": { + "aria-query": "^5.1.3", + "axe-core": "^4.3.3", + "axobject-query": "^2.2.0", + "dom5": "^3.0.1", + "emoji-regex": "^10.2.1", + "eslint-plugin-lit": "^1.6.0", + "eslint-rule-extender": "0.0.1", + "language-tags": "^1.0.5", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "requireindex": "~1.2.0" + }, + "peerDependencies": { + "eslint": ">= 5" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/eslint-plugin-lit-a11y/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "packages/ecc-client-ga4gh-tes/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "packages/ecc-client-ga4gh-tes/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" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/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" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "packages/ecc-client-ga4gh-tes/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/source-map/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/string-width/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "packages/ecc-client-ga4gh-tes/node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/tsup": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-7.2.0.tgz", + "integrity": "sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==", + "dev": true, + "dependencies": { + "bundle-require": "^4.0.0", + "cac": "^6.7.12", + "chokidar": "^3.5.1", + "debug": "^4.3.1", + "esbuild": "^0.18.2", + "execa": "^5.0.0", + "globby": "^11.0.3", + "joycon": "^3.0.1", + "postcss-load-config": "^4.0.1", + "resolve-from": "^5.0.0", + "rollup": "^3.2.5", + "source-map": "0.8.0-beta.0", + "sucrase": "^3.20.3", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/tsup/node_modules/rollup": { + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "packages/ecc-client-ga4gh-tes/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "packages/ecc-client-ga4gh-tes/node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", @@ -27035,25 +27967,6 @@ "yargs-parser": "^13.1.2" } }, - "packages/ecc-client-ga4gh-tes/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "packages/ecc-client-ga4gh-tes/node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "packages/ecc-client-ga4gh-tes/node_modules/yargs/node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -27664,19 +28577,6 @@ "node": ">=6" } }, - "packages/ecc-client-ga4gh-wes/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, "packages/ecc-client-ga4gh-wes/node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -27686,29 +28586,6 @@ "node": ">=4" } }, - "packages/ecc-client-ga4gh-wes/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "packages/ecc-client-ga4gh-wes/node_modules/read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w==", - "dev": true, - "dependencies": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "packages/ecc-client-ga4gh-wes/node_modules/rollup": { "version": "2.79.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", @@ -27965,25 +28842,6 @@ "yargs-parser": "^13.1.2" } }, - "packages/ecc-client-ga4gh-wes/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "packages/ecc-client-ga4gh-wes/node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "packages/ecc-client-ga4gh-wes/node_modules/yargs/node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", diff --git a/packages/ecc-client-ga4gh-service-registry/.eslintignore b/packages/ecc-client-ga4gh-service-registry/.eslintignore new file mode 100644 index 00000000..2d704542 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/.eslintignore @@ -0,0 +1,22 @@ +# Never lint node_modules +node_modules + +# Never lint build output +dist +demo + +# Never lint coverage output +coverage + +# Never lint +**/.git +**/.svn +**/.hg +**/node_modules + +/.github/* +CONTRIBUTING.md +LICENSE +README.md +CONTRIBUTORS.md +CODE_OF_CONDUCT.md diff --git a/packages/ecc-client-ga4gh-service-registry/.eslintrc b/packages/ecc-client-ga4gh-service-registry/.eslintrc new file mode 100644 index 00000000..b52800b3 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/.eslintrc @@ -0,0 +1,9 @@ +{ + "extends": ["@open-wc", "@elixir-cloud", "prettier"], + "plugins": ["prettier"], + "rules": { + "camelcase": "warn", + "prettier/prettier": "error", + "no-console": ["error", { "allow": ["warn", "error"] }] + } +} diff --git a/packages/ecc-client-ga4gh-service-registry/.gitignore b/packages/ecc-client-ga4gh-service-registry/.gitignore new file mode 100644 index 00000000..9422c383 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/.gitignore @@ -0,0 +1,42 @@ +/dist +/www +/node_modules +/build +.DS_Store +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +## editors +/.idea +/.vscode + +## system files +.DS_Store + +## npm +/node_modules/ +/npm-debug.log + +## testing +/coverage/ + +## temp folders +/.tmp/ + +## build +/_site/ +/dist/ +/out-tsc/ + +## generated files +/src/react +custom-elements-manifest.config.js + +custom-elements.json \ No newline at end of file diff --git a/packages/ecc-client-ga4gh-service-registry/LICENSE.hbs b/packages/ecc-client-ga4gh-service-registry/LICENSE.hbs new file mode 100644 index 00000000..977ad8c5 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/LICENSE.hbs @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2022 ELIXIR, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD, UK + + Licensed 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. diff --git a/packages/ecc-client-ga4gh-service-registry/README.md b/packages/ecc-client-ga4gh-service-registry/README.md new file mode 100644 index 00000000..c5108c3b --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/README.md @@ -0,0 +1,11 @@ +# @elixir-cloud/service-registry + +The `@elixir-cloud/service-registry` package provides a suite of Web Components designed to interact with the Service Registry API. These components offer a user-friendly interface for managing service registrations within cloud environments. + +[![logo-elixir][logo-elixir]][elixir] +[![logo-elixir-cloud-aai][logo-elixir-cloud-aai]][elixir-cloud-aai] + +[elixir]: https://elixir-europe.org/ +[elixir-cloud-aai]: https://elixir-cloud.dcc.sib.swiss/ +[logo-elixir]: images/logo-elixir.svg +[logo-elixir-cloud-aai]: images/logo-elixir-cloud-aai.svg diff --git a/packages/ecc-client-ga4gh-service-registry/demo/index.html b/packages/ecc-client-ga4gh-service-registry/demo/index.html new file mode 100644 index 00000000..7b11bd24 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/demo/index.html @@ -0,0 +1,20 @@ + + + + + + ecc-client-ga4gh-service-registry + + + +
+ Services component +
+ Register service component +
+ + \ No newline at end of file diff --git a/packages/ecc-client-ga4gh-service-registry/demo/register/index.html b/packages/ecc-client-ga4gh-service-registry/demo/register/index.html new file mode 100644 index 00000000..361f3528 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/demo/register/index.html @@ -0,0 +1,31 @@ + + + + + + + ecc-client-ga4gh-service-registry-create-service + +
+ + + + \ No newline at end of file diff --git a/packages/ecc-client-ga4gh-service-registry/demo/services/index.html b/packages/ecc-client-ga4gh-service-registry/demo/services/index.html new file mode 100644 index 00000000..19066216 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/demo/services/index.html @@ -0,0 +1,31 @@ + + + + + + + ecc-client-ga4gh-service-registry-services + +
+ + + + \ No newline at end of file diff --git a/packages/ecc-client-ga4gh-service-registry/images/logo-elixir-cloud-aai.svg b/packages/ecc-client-ga4gh-service-registry/images/logo-elixir-cloud-aai.svg new file mode 100644 index 00000000..18ecf217 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/images/logo-elixir-cloud-aai.svg @@ -0,0 +1,112 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/packages/ecc-client-ga4gh-service-registry/images/logo-elixir.svg b/packages/ecc-client-ga4gh-service-registry/images/logo-elixir.svg new file mode 100644 index 00000000..af9d4b92 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/images/logo-elixir.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + diff --git a/packages/ecc-client-ga4gh-service-registry/package.json b/packages/ecc-client-ga4gh-service-registry/package.json new file mode 100644 index 00000000..360e0017 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/package.json @@ -0,0 +1,69 @@ +{ + "name": "@elixir-cloud/service-registry", + "description": "Web Component for interacting with Service Registry API", + "license": "Apache-2.0", + "version": "0.1.0", + "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "private": true, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + }, + "./dist/custom-elements.json": "./dist/custom-elements.json", + "./dist/index.js": "./dist/index.js", + "./dist/components/*": "./dist/components/*", + "./dist/react": "./dist/react/index.js", + "./dist/react/*": "./dist/react/*" + }, + "repository": { + "type": "git", + "url": "https://github.com/elixir-cloud-aai/cloud-components.git" + }, + "customElements": "dist/custom-elements.json", + "files": [ + "dist", + "README.md", + "package.json", + "LICENSE" + ], + "scripts": { + "analyze": "cem analyze --litelement", + "build": "node ../../scripts/build.js -p ecc-client-ga4gh-service-registry-", + "dev": "concurrently -r \"npm run build -- --watch\" \"wds\"", + "clean": "rm -rf dist node_modules custom-elements-manifest.config.js", + "test": "wtr --coverage", + "test:watch": "wtr --watch", + "lint": "npx eslint .", + "lint:fix": "npm run lint -- --fix && prettier .", + "prepublish": "npm run build" + }, + "dependencies": { + "@elixir-cloud/design": "*", + "lit": "^2.8.0" + }, + "devDependencies": { + "@custom-elements-manifest/analyzer": "^0.4.17", + "@elixir-cloud/eslint-config": "*", + "@lit/react": "*", + "@open-wc/eslint-config": "^9.2.1", + "@open-wc/testing": "^3.1.6", + "@typescript-eslint/eslint-plugin": "^5.48.0", + "@typescript-eslint/parser": "^5.48.0", + "@web/dev-server": "^0.1.34", + "@web/test-runner": "^0.19.0", + "commander": "*", + "concurrently": "^5.3.0", + "custom-element-jet-brains-integration": "*", + "custom-element-vs-code-integration": "*", + "eslint": "^8.31.0", + "eslint-config-prettier": "^8.3.0", + "react": "*", + "tslib": "^2.3.1", + "tsup": "^7.2.0", + "typescript": "*" + } +} diff --git a/packages/ecc-client-ga4gh-service-registry/src/API/Service/serviceGet.ts b/packages/ecc-client-ga4gh-service-registry/src/API/Service/serviceGet.ts new file mode 100644 index 00000000..0061c2d4 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/API/Service/serviceGet.ts @@ -0,0 +1,49 @@ +import type { Service } from "../../components/services/services.js"; + +export async function fetchServices( + baseURL: string, + authToken?: string +): Promise { + const headers: Record = {}; + + if (authToken) { + headers.Authorization = `Bearer ${authToken}`; + } + + const response = await fetch(`${baseURL}/services`, { + headers, + }); + + if (!response.ok) { + throw new Error("Failed to fetch services"); + } + + const data = await response.json(); + return data; +} + +export async function createService( + baseURL: string, + service: Omit, + authToken?: string +): Promise { + const headers: Record = { + "Content-Type": "application/json", + }; + + if (authToken) { + headers.Authorization = `Bearer ${authToken}`; + } + + const response = await fetch(`${baseURL}/services`, { + method: "POST", + headers, + body: JSON.stringify(service), + }); + + if (!response.ok) { + throw new Error("Failed to create service"); + } + + return response.json(); +} diff --git a/packages/ecc-client-ga4gh-service-registry/src/components/create-service/create-service.styles.ts b/packages/ecc-client-ga4gh-service-registry/src/components/create-service/create-service.styles.ts new file mode 100644 index 00000000..a1fce743 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/components/create-service/create-service.styles.ts @@ -0,0 +1,10 @@ +import { css } from "lit"; + +const styles = css` + :host { + display: block; + padding: 1rem; + } +`; + +export default styles; diff --git a/packages/ecc-client-ga4gh-service-registry/src/components/create-service/create-service.ts b/packages/ecc-client-ga4gh-service-registry/src/components/create-service/create-service.ts new file mode 100644 index 00000000..68e3eb71 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/components/create-service/create-service.ts @@ -0,0 +1,223 @@ +import { html, LitElement } from "lit"; +import { property, state } from "lit/decorators.js"; +import "@elixir-cloud/design/dist/components/form/index.js"; +import type { Field } from "@elixir-cloud/design/dist/components/form/index.js"; +import styles from "./create-service.styles.js"; +import type { ServiceCreatedEvent } from "../../events/index.js"; +import { createService } from "../../API/Service/serviceGet.js"; +import type { Service } from "../services/services.js"; + +export type CreateServiceForm = Omit; + +export default class ECCClientGa4ghServiceRegistryCreateService extends LitElement { + static styles = styles; + + @property({ type: String }) + baseURL = "https://ga4gh-service-registry.rahtiapp.fi/ga4gh/registry/v1"; + + @property({ type: String }) + authToken?: string; + + @state() + private loading = false; + + @state() + private error: string | null = null; + + private formFields: Field[] = [ + { + key: "name", + label: "Service Name", + type: "text", + fieldOptions: { + required: true, + tooltip: "Name of this service. Should be human readable.", + }, + }, + { + key: "type", + label: "Service Type", + type: "group", + fieldOptions: { + required: true, + }, + children: [ + { + key: "group", + label: "Group", + type: "text", + fieldOptions: { + required: true, + default: "org.ga4gh", + tooltip: + "Namespace in reverse domain name format. Use 'org.ga4gh' for implementations compliant with official GA4GH specifications.", + }, + }, + { + key: "artifact", + label: "Artifact", + type: "select", + selectOptions: [ + { label: "TES", value: "tes" }, + { label: "WES", value: "wes" }, + { label: "DRS", value: "drs" }, + ], + fieldOptions: { + required: true, + tooltip: "Name of the API or GA4GH specification implemented", + }, + }, + { + key: "version", + label: "API Version", + type: "text", + fieldOptions: { + required: true, + tooltip: + "Version of the API or specification. GA4GH specifications use semantic versioning.", + }, + }, + ], + }, + { + key: "organization", + label: "Organization", + type: "group", + fieldOptions: { + required: true, + }, + children: [ + { + key: "name", + label: "Organization Name", + type: "text", + fieldOptions: { + required: true, + tooltip: "Name of the organization responsible for the service", + }, + }, + { + key: "url", + label: "Organization URL", + type: "url", + fieldOptions: { + required: true, + tooltip: "URL of the website of the organization", + }, + }, + ], + }, + { + key: "version", + label: "Service Version", + type: "text", + fieldOptions: { + required: true, + tooltip: "Version of the service. Semantic versioning is recommended.", + }, + }, + { + key: "url", + label: "Service URL", + type: "url", + fieldOptions: { + required: true, + tooltip: + "Base URL of the service. For REST API services, this is the URL to which all endpoints should be relative.", + }, + }, + { + key: "description", + label: "Description", + type: "text", + fieldOptions: { + required: true, + tooltip: + "Description of the service. Should be human readable and provide information about the service.", + }, + }, + { + key: "environment", + label: "Environment", + type: "select", + selectOptions: [ + { label: "Production", value: "prod" }, + { label: "Development", value: "dev" }, + { label: "Testing", value: "test" }, + { label: "Staging", value: "staging" }, + ], + fieldOptions: { + required: true, + tooltip: + "Environment the service is running in. Use this to distinguish between production, development and testing/staging deployments.", + }, + }, + { + key: "contactUrl", + label: "Contact URL", + type: "url", + fieldOptions: { + required: true, + tooltip: + "URL of the contact for the provider of this service, e.g. a link to a contact form or an email.", + }, + }, + { + key: "documentationUrl", + label: "Documentation URL", + type: "url", + fieldOptions: { + required: true, + tooltip: + "URL of the documentation of this service. This should help someone learn how to use your service.", + }, + }, + ]; + + private async handleSubmit(e: CustomEvent) { + try { + this.loading = true; + this.error = null; + const formData = e.detail; + + // Keep the nested structure instead of flattening it + const serviceData = { + ...formData.form.data, + createdAt: new Date().toISOString(), + updatedAt: new Date().toISOString(), + // Keep type and organization as objects + } as CreateServiceForm; + + const service = await createService( + this.baseURL, + serviceData, + this.authToken + ); + + this.dispatchEvent( + new CustomEvent("service-created", { + detail: service, + bubbles: true, + composed: true, + }) as ServiceCreatedEvent + ); + } catch (err) { + this.error = + err instanceof Error ? err.message : "Unknown error occurred"; + } finally { + this.loading = false; + } + } + + render() { + return html` + + + `; + } +} diff --git a/packages/ecc-client-ga4gh-service-registry/src/components/create-service/index.ts b/packages/ecc-client-ga4gh-service-registry/src/components/create-service/index.ts new file mode 100644 index 00000000..2a372822 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/components/create-service/index.ts @@ -0,0 +1,15 @@ +import ECCClientGa4ghServiceRegistryCreateService from "./create-service.js"; + +export * from "./create-service.js"; +export default ECCClientGa4ghServiceRegistryCreateService; + +window.customElements.define( + "ecc-client-ga4gh-service-registry-create-service", + ECCClientGa4ghServiceRegistryCreateService +); + +declare global { + interface HTMLElementTagNameMap { + "ecc-client-ga4gh-service-registry-create-service": ECCClientGa4ghServiceRegistryCreateService; + } +} diff --git a/packages/ecc-client-ga4gh-service-registry/src/components/services/index.ts b/packages/ecc-client-ga4gh-service-registry/src/components/services/index.ts new file mode 100644 index 00000000..ec2bd563 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/components/services/index.ts @@ -0,0 +1,15 @@ +import ECCClientGa4ghServiceRegistryServices from "./services.js"; + +export * from "./services.js"; +export default ECCClientGa4ghServiceRegistryServices; + +window.customElements.define( + "ecc-client-ga4gh-service-registry-services", + ECCClientGa4ghServiceRegistryServices +); + +declare global { + interface HTMLElementTagNameMap { + "ecc-client-ga4gh-service-registry-services": ECCClientGa4ghServiceRegistryServices; + } +} diff --git a/packages/ecc-client-ga4gh-service-registry/src/components/services/services.styles.ts b/packages/ecc-client-ga4gh-service-registry/src/components/services/services.styles.ts new file mode 100644 index 00000000..0efe78e3 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/components/services/services.styles.ts @@ -0,0 +1,5 @@ +import { css } from "lit"; + +const styles = css``; + +export default styles; diff --git a/packages/ecc-client-ga4gh-service-registry/src/components/services/services.ts b/packages/ecc-client-ga4gh-service-registry/src/components/services/services.ts new file mode 100644 index 00000000..182be4b7 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/components/services/services.ts @@ -0,0 +1,282 @@ +import { html, LitElement, render } from "lit"; +import { property, state } from "lit/decorators.js"; +import "@elixir-cloud/design/dist/components/collection/index.js"; +import EccUtilsDesignCollection, { + FilterProp, + ItemProp, +} from "@elixir-cloud/design/dist/components/collection"; +import "@elixir-cloud/design/dist/components/details/index.js"; +import EccUtilsDesignDetails, { + Field, + Action, +} from "@elixir-cloud/design/dist/components/details"; +import styles from "./services.styles.js"; +import { fetchServices } from "../../API/Service/serviceGet.js"; + +export interface Service { + id: string; + name: string; + description?: string; + type: { + group: string; + artifact: string; + version: string; + }; + organization: { + name: string; + url: string; + }; + version: string; + url?: string; + contactUrl?: string; + documentationUrl?: string; + createdAt?: string; + updatedAt?: string; + environment?: string; +} + +export default class ECCClientGa4ghServiceRegistryServices extends LitElement { + static styles = styles; + + @property({ type: String }) + baseURL = "https://ga4gh-service-registry.rahtiapp.fi/ga4gh/registry/v1"; + + @property({ type: String }) + authToken?: string; + + @state() + private services: Service[] = []; + + @state() + private loading = true; + + @state() + private error: string | null = null; + + private cache = new Map(); + + @property({ type: Number }) + pageSize = 5; + + @state() + private currentPage = 1; + + private fields: Field[] = [ + { + key: "name", + path: "name", + label: "Name", + }, + { + key: "type", + path: "type", + label: "Type", + }, + { + key: "organization", + path: "organization", + label: "Organization", + }, + { + key: "version", + path: "version", + label: "Version", + }, + { + key: "url", + path: "url", + label: "URL", + }, + ]; + + private filters: FilterProp[] = [ + { + key: "type", + type: "select", + options: ["TES", "WES", "DRS"], + placeholder: "Filter by type", + selectConfig: { + multiple: false, + }, + }, + { + key: "organization", + type: "search", + placeholder: "Search by organization", + }, + ]; + + private columns: ItemProp[] = [ + { + index: 0, + key: "name", + name: "Name", + }, + { + index: 1, + key: "type", + name: "Type", + tag: { + name: "type", + type: "primary", + }, + }, + { + index: 2, + key: "organization", + name: "Organization", + }, + { + index: 3, + key: "version", + name: "Version", + }, + ]; + + async connectedCallback() { + super.connectedCallback(); + await this.fetchServices(); + } + + private async fetchServices() { + try { + const services = await fetchServices(this.baseURL, this.authToken); + this.services = services; + } catch (err) { + // console.error("Error fetching services:", err); + this.error = + err instanceof Error ? err.message : "Unknown error occurred"; + } finally { + this.loading = false; + } + } + + private async _handleExpandItem(event: CustomEvent) { + const eccUtilsDesignCollection = + this.shadowRoot?.querySelector( + "ecc-utils-design-collection" + ); + + if (!eccUtilsDesignCollection) { + // console.error({ + // error: "ecc-utils-design-collection not found", + // breakPoint: "ECCClientGa4ghServiceRegistryServices.handleExpandItem", + // }); + return; + } + + const { target, detail } = event; + + if (!target || !(target instanceof HTMLElement)) { + eccUtilsDesignCollection.error("Target is null or not an HTMLElement"); + return; + } + + const { key } = detail; + const children = target!.shadowRoot?.querySelectorAll( + `slot[name='${key}']` + ); + + const serviceData = this.services.find((service) => service.id === key); + if (!serviceData) { + eccUtilsDesignCollection.error(`Service not found: ${key}`); + return; + } + + this.cache.set(key, serviceData); + + if (children?.length) { + try { + const child = document.createElement("div"); + child.setAttribute("slot", key); + + const button: Action[] = [ + { + key, + label: "Delete", + type: "button", + buttonOptions: { + variant: "danger", + icon: { + url: "https://cdn.iconscout.com/icon/free/png-256/free-delete-2902143-2411575.png", + }, + }, + }, + ]; + + const detailsComponent = html` + `; + + render(detailsComponent, child); + target.appendChild(child); + + const detailsElement = child.querySelector( + "ecc-utils-design-details" + ); + if (detailsElement) { + detailsElement.addEventListener( + "ecc-utils-button-click", + async (buttonEvent: Event) => { + const customEvent = buttonEvent as CustomEvent<{ key: string }>; + const { key: buttonKey } = customEvent.detail; + try { + if (buttonKey === key) { + // TODO: Implement delete service functionality + // console.log("Delete service:", key); + } + } catch (error) { + eccUtilsDesignCollection.error( + `Failed to delete service: ${key}` + ); + } + } + ); + } + } catch (error) { + eccUtilsDesignCollection.error( + `Failed to render details for service: ${key}` + ); + } + } + } + + render() { + const startIndex = (this.currentPage - 1) * this.pageSize; + const endIndex = startIndex + this.pageSize; + const pageItems = this.services.slice(startIndex, endIndex); + + const items = pageItems.map((service, index) => ({ + index: startIndex + index + 1, + key: service.id, + name: service.name, + lazy: true, + tag: { + name: service.type.artifact, + type: "primary" as const, + }, + data: service, + })); + + return html` + { + this.currentPage = e.detail.page; + }} + > + + `; + } +} diff --git a/packages/ecc-client-ga4gh-service-registry/src/events/index.ts b/packages/ecc-client-ga4gh-service-registry/src/events/index.ts new file mode 100644 index 00000000..762e0fce --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/events/index.ts @@ -0,0 +1,15 @@ +import type { Service } from "../components/services/services.js"; + +export interface ServiceCreatedEvent extends CustomEvent { + detail: Service; +} + +export interface ServiceDeletedEvent extends CustomEvent { + detail: { + id: string; + }; +} + +export interface ServiceUpdatedEvent extends CustomEvent { + detail: Service; +} diff --git a/packages/ecc-client-ga4gh-service-registry/src/index.ts b/packages/ecc-client-ga4gh-service-registry/src/index.ts new file mode 100644 index 00000000..01a0fc69 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/src/index.ts @@ -0,0 +1,2 @@ +export * from "./components/services/index.js"; +export * from "./components/create-service/index.js"; diff --git a/packages/ecc-client-ga4gh-service-registry/tsconfig.json b/packages/ecc-client-ga4gh-service-registry/tsconfig.json new file mode 100644 index 00000000..8c445248 --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "es2018", + "module": "esnext", + "moduleResolution": "node", + "noEmitOnError": true, + "lib": ["es2017", "dom"], + "strict": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "experimentalDecorators": true, + "importHelpers": true, + "outDir": "dist", + "sourceMap": true, + "inlineSources": true, + "rootDir": "./", + "declaration": true, + "emitDeclarationOnly": true, + "skipLibCheck": true + }, + "include": ["**/*.ts"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/ecc-client-ga4gh-service-registry/tsconfig.prod.json b/packages/ecc-client-ga4gh-service-registry/tsconfig.prod.json new file mode 100644 index 00000000..7a6b129d --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/tsconfig.prod.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "rootDir": "./src" + }, + "include": ["src"], + "exclude": ["src/**/*.test.ts"] + } + \ No newline at end of file diff --git a/packages/ecc-client-ga4gh-service-registry/web-dev-server.config.mjs b/packages/ecc-client-ga4gh-service-registry/web-dev-server.config.mjs new file mode 100644 index 00000000..3bcf4e1b --- /dev/null +++ b/packages/ecc-client-ga4gh-service-registry/web-dev-server.config.mjs @@ -0,0 +1,14 @@ +/** Use Hot Module replacement by adding --hmr to the start command */ +const hmr = process.argv.includes("--hmr"); + +export default /** @type {import('@web/dev-server').DevServerConfig} */ ({ + open: "/demo/", + /** Use regular watch mode if HMR is not enabled. */ + watch: !hmr, + /** Resolve bare module imports */ + nodeResolve: { + exportConditions: ["browser", "development"], + }, + + plugins: [], +});