From 32f0b9b69494ba677724ad4db2371d71e7873264 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 20 Oct 2023 14:02:43 -0400 Subject: [PATCH 1/5] Installed GraphQL Backend plugin --- package.json | 3 +- packages/backend/package.json | 2 + packages/backend/src/index.ts | 8 + packages/backend/src/plugins/graphql.ts | 18 + packages/backend/src/types.ts | 2 + yarn.lock | 888 +++++++++++++++++++++++- 6 files changed, 905 insertions(+), 16 deletions(-) create mode 100644 packages/backend/src/plugins/graphql.ts diff --git a/package.json b/package.json index ad03b5625..c809a208f 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,8 @@ "@types/hast": "^2.3.4", "@types/recharts": "^1.8.23", "@types/react": "^17.0.59", - "@types/unist": "^2.0.6" + "@types/unist": "^2.0.6", + "graphql": "^16.2.0" }, "devDependencies": { "@backstage/cli": "^0.23.0", diff --git a/packages/backend/package.json b/packages/backend/package.json index 9b014dff5..eff47d9fa 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -40,6 +40,8 @@ "@backstage/plugin-search-backend-node": "^1.2.10", "@backstage/plugin-techdocs-backend": "^1.8.0", "@backstage/plugin-todo-backend": "^0.3.4", + "@frontside/backstage-plugin-graphql-backend": "^0.1.2", + "@frontside/backstage-plugin-graphql-backend-module-catalog": "^0.1.2", "app": "^0.0.0", "better-sqlite3": "^7.5.0", "dockerode": "^3.2.1", diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 1dbd4fe2b..3ce28e356 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -33,6 +33,8 @@ import search from './plugins/search'; import techdocs from './plugins/techdocs'; import todo from './plugins/todo'; import { DefaultIdentityClient } from '@backstage/plugin-auth-node'; +import { CatalogClient } from '@backstage/catalog-client'; +import graphql from './plugins/graphql'; function makeCreateEnv(config: Config) { const root = getRootLogger(); @@ -45,6 +47,9 @@ function makeCreateEnv(config: Config) { discovery, tokenManager, }); + const catalogClient = new CatalogClient({ + discoveryApi: discovery, + }); const cacheManager = CacheManager.fromConfig(config); const taskScheduler = TaskScheduler.fromConfig(config, { databaseManager }); const identity = DefaultIdentityClient.create({ @@ -68,6 +73,7 @@ function makeCreateEnv(config: Config) { permissions, scheduler, identity, + catalogClient, }; }; } @@ -88,6 +94,7 @@ async function main() { const appEnv = createEnv('app'); const badgesEnv = createEnv('badges'); const exploreEnv = createEnv('explore'); + const graphqlEnv = createEnv('graphql'); const apiRouter = Router(); apiRouter.use('/catalog', await catalog(catalogEnv)); @@ -98,6 +105,7 @@ async function main() { apiRouter.use('/proxy', await proxy(proxyEnv)); apiRouter.use('/badges', await badges(badgesEnv)); apiRouter.use('/explore', await explore(exploreEnv)); + apiRouter.use('/graphql', await graphql(graphqlEnv)); apiRouter.use(notFoundHandler()); const service = createServiceBuilder(module) diff --git a/packages/backend/src/plugins/graphql.ts b/packages/backend/src/plugins/graphql.ts new file mode 100644 index 000000000..e338b914f --- /dev/null +++ b/packages/backend/src/plugins/graphql.ts @@ -0,0 +1,18 @@ +import { createRouter } from '@frontside/backstage-plugin-graphql-backend'; +import { + createCatalogLoader, + Catalog, +} from '@frontside/backstage-plugin-graphql-backend-module-catalog'; +import { Router } from 'express'; +import { PluginEnvironment } from '../types'; + +export default async function createPlugin({ + logger, + catalogClient, +}: PluginEnvironment): Promise { + return await createRouter({ + modules: [Catalog()], + logger, + loaders: { ...createCatalogLoader(catalogClient) }, + }); +} diff --git a/packages/backend/src/types.ts b/packages/backend/src/types.ts index c42628273..b8977f824 100644 --- a/packages/backend/src/types.ts +++ b/packages/backend/src/types.ts @@ -11,6 +11,7 @@ import { IdentityApi } from '@backstage/plugin-auth-node'; import { Logger } from 'winston'; import { PermissionEvaluator } from '@backstage/plugin-permission-common'; import { PluginTaskScheduler } from '@backstage/backend-tasks'; +import { CatalogClient } from '@backstage/catalog-client'; export type PluginEnvironment = { logger: Logger; @@ -23,4 +24,5 @@ export type PluginEnvironment = { scheduler: PluginTaskScheduler; permissions: PermissionEvaluator; identity: IdentityApi; + catalogClient: CatalogClient; }; diff --git a/yarn.lock b/yarn.lock index 673219d7d..589041b2a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,6 +22,16 @@ __metadata: languageName: node linkType: hard +"@ampproject/remapping@npm:^2.2.0": + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 + languageName: node + linkType: hard + "@apidevtools/json-schema-ref-parser@npm:^9.0.6": version: 9.0.6 resolution: "@apidevtools/json-schema-ref-parser@npm:9.0.6" @@ -1635,7 +1645,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.10.4": +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13": version: 7.22.13 resolution: "@babel/code-frame@npm:7.22.13" dependencies: @@ -1661,6 +1671,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.22.9": + version: 7.23.2 + resolution: "@babel/compat-data@npm:7.23.2" + checksum: d8dc27437d40907b271161d4c88ffe72ccecb034c730deb1960a417b59a14d7c5ebca8cd80dd458a01cd396a7a329eb48cddcc3791b5a84da33d7f278f7bec6a + languageName: node + linkType: hard + "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.19.6": version: 7.20.2 resolution: "@babel/core@npm:7.20.2" @@ -1684,6 +1701,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.22.9": + version: 7.23.2 + resolution: "@babel/core@npm:7.23.2" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-module-transforms": ^7.23.0 + "@babel/helpers": ^7.23.2 + "@babel/parser": ^7.23.0 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.2 + "@babel/types": ^7.23.0 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: 003897718ded16f3b75632d63cd49486bf67ff206cc7ebd1a10d49e2456f8d45740910d5ec7e42e3faf0deec7a2e96b1a02e766d19a67a8309053f0d4e57c0fe + languageName: node + linkType: hard + "@babel/generator@npm:^7.20.1, @babel/generator@npm:^7.20.2, @babel/generator@npm:^7.7.2": version: 7.20.4 resolution: "@babel/generator@npm:7.20.4" @@ -1695,6 +1735,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" + dependencies: + "@babel/types": ^7.23.0 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 8efe24adad34300f1f8ea2add420b28171a646edc70f2a1b3e1683842f23b8b7ffa7e35ef0119294e1901f45bfea5b3dc70abe1f10a1917ccdfb41bed69be5f1 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-annotate-as-pure@npm:7.16.7" @@ -1737,6 +1789,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-compilation-targets@npm:7.22.15" + dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-validator-option": ^7.22.15 + browserslist: ^4.21.9 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.20.2": version: 7.20.2 resolution: "@babel/helper-create-class-features-plugin@npm:7.20.2" @@ -1801,6 +1866,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 + languageName: node + linkType: hard + "@babel/helper-explode-assignable-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" @@ -1820,6 +1892,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 + languageName: node + linkType: hard + "@babel/helper-hoist-variables@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-hoist-variables@npm:7.18.6" @@ -1829,6 +1911,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.18.9": version: 7.18.9 resolution: "@babel/helper-member-expression-to-functions@npm:7.18.9" @@ -1856,6 +1947,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-module-imports@npm:7.22.15" + dependencies: + "@babel/types": ^7.22.15 + checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.19.6, @babel/helper-module-transforms@npm:^7.20.2": version: 7.20.2 resolution: "@babel/helper-module-transforms@npm:7.20.2" @@ -1872,6 +1972,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-module-transforms@npm:7.23.0" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 6e2afffb058cf3f8ce92f5116f710dda4341c81cfcd872f9a0197ea594f7ce0ab3cb940b0590af2fe99e60d2e5448bfba6bca8156ed70a2ed4be2adc8586c891 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" @@ -1931,6 +2046,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-simple-access@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.18.9": version: 7.20.0 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.20.0" @@ -1949,6 +2073,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.19.4": version: 7.19.4 resolution: "@babel/helper-string-parser@npm:7.19.4" @@ -1963,6 +2096,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-string-parser@npm:7.22.5" + checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.16.7": version: 7.16.7 resolution: "@babel/helper-validator-identifier@npm:7.16.7" @@ -1991,6 +2131,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-validator-option@npm:7.22.15" + checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.18.9": version: 7.19.0 resolution: "@babel/helper-wrap-function@npm:7.19.0" @@ -2014,6 +2161,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.23.2": + version: 7.23.2 + resolution: "@babel/helpers@npm:7.23.2" + dependencies: + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.2 + "@babel/types": ^7.23.0 + checksum: aaf4828df75ec460eaa70e5c9f66e6dadc28dae3728ddb7f6c13187dbf38030e142194b83d81aa8a31bbc35a5529a5d7d3f3cf59d5d0b595f5dd7f9d8f1ced8e + languageName: node + linkType: hard + "@babel/highlight@npm:^7.0.0, @babel/highlight@npm:^7.16.7": version: 7.16.7 resolution: "@babel/highlight@npm:7.16.7" @@ -2065,6 +2223,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.16.8, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/parser@npm:7.23.0" + bin: + parser: ./bin/babel-parser.js + checksum: 453fdf8b9e2c2b7d7b02139e0ce003d1af21947bbc03eb350fb248ee335c9b85e4ab41697ddbdd97079698de825a265e45a0846bb2ed47a2c7c1df833f42a354 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" @@ -3158,6 +3325,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/parser": ^7.22.15 + "@babel/types": ^7.22.15 + checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd + languageName: node + linkType: hard + "@babel/template@npm:^7.3.3": version: 7.16.7 resolution: "@babel/template@npm:7.16.7" @@ -3169,6 +3347,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.23.2": + version: 7.23.2 + resolution: "@babel/traverse@npm:7.23.2" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.0 + "@babel/types": ^7.23.0 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 26a1eea0dde41ab99dde8b9773a013a0dc50324e5110a049f5d634e721ff08afffd54940b3974a20308d7952085ac769689369e9127dea655f868c0f6e1ab35d + languageName: node + linkType: hard + "@babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.19.1, @babel/traverse@npm:^7.20.1, @babel/traverse@npm:^7.7.2": version: 7.20.1 resolution: "@babel/traverse@npm:7.20.1" @@ -3197,6 +3393,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.16.8, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/types@npm:7.23.0" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 215fe04bd7feef79eeb4d33374b39909ce9cad1611c4135a4f7fdf41fe3280594105af6d7094354751514625ea92d0875aba355f53e86a92600f290e77b0e604 + languageName: node + linkType: hard + "@babel/types@npm:^7.18.10, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2": version: 7.20.2 resolution: "@babel/types@npm:7.20.2" @@ -3287,7 +3494,7 @@ __metadata: languageName: node linkType: hard -"@backstage/backend-common@npm:^0.19.8": +"@backstage/backend-common@npm:^0.19.4, @backstage/backend-common@npm:^0.19.8": version: 0.19.8 resolution: "@backstage/backend-common@npm:0.19.8" dependencies: @@ -3378,7 +3585,7 @@ __metadata: languageName: node linkType: hard -"@backstage/backend-plugin-api@npm:^0.6.6": +"@backstage/backend-plugin-api@npm:^0.6.2, @backstage/backend-plugin-api@npm:^0.6.6": version: 0.6.6 resolution: "@backstage/backend-plugin-api@npm:0.6.6" dependencies: @@ -3415,7 +3622,7 @@ __metadata: languageName: node linkType: hard -"@backstage/catalog-client@npm:^1.4.5": +"@backstage/catalog-client@npm:^1.4.3, @backstage/catalog-client@npm:^1.4.5": version: 1.4.5 resolution: "@backstage/catalog-client@npm:1.4.5" dependencies: @@ -3426,7 +3633,7 @@ __metadata: languageName: node linkType: hard -"@backstage/catalog-model@npm:^1.4.3": +"@backstage/catalog-model@npm:^1.4.1, @backstage/catalog-model@npm:^1.4.3": version: 1.4.3 resolution: "@backstage/catalog-model@npm:1.4.3" dependencies: @@ -4205,7 +4412,7 @@ __metadata: languageName: node linkType: hard -"@backstage/plugin-catalog-node@npm:^1.4.7": +"@backstage/plugin-catalog-node@npm:^1.4.3, @backstage/plugin-catalog-node@npm:^1.4.7": version: 1.4.7 resolution: "@backstage/plugin-catalog-node@npm:1.4.7" dependencies: @@ -5360,6 +5567,50 @@ __metadata: languageName: node linkType: hard +"@envelop/core@npm:^4.0.0": + version: 4.0.3 + resolution: "@envelop/core@npm:4.0.3" + dependencies: + "@envelop/types": 4.0.1 + tslib: ^2.5.0 + checksum: b5bed2a0a41577a8adbbc5a3e5fff131212a216f709d4f0f6c1e6a69695674662fc88d532ae17eb71031fe372a4ce682c1e61d84a090779edd1ddfb488f3901c + languageName: node + linkType: hard + +"@envelop/dataloader@npm:^5.0.0": + version: 5.0.3 + resolution: "@envelop/dataloader@npm:5.0.3" + dependencies: + tslib: ^2.5.0 + peerDependencies: + "@envelop/core": ^4.0.3 + dataloader: ^2.0.0 + checksum: d6c3a2300890e146d9dceaaa32edecc3cf068fa7fe08e0aef440b690e5711f95c89c0e7134678d7853759ff623143741a5ecc90e322bfcada000bbbf4ca266b8 + languageName: node + linkType: hard + +"@envelop/graphql-modules@npm:^5.0.0": + version: 5.0.3 + resolution: "@envelop/graphql-modules@npm:5.0.3" + dependencies: + tslib: ^2.5.0 + peerDependencies: + "@envelop/core": ^4.0.3 + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-modules: ^1 || ^2.0.0 + checksum: 9062d5e6e74db40c7369f509e7e3e87753e88446aa5ff5ba7aba48843a50fdd726be3ab425f1d852816bd26ad01e2c2ae7436746f4a16c6f92a314c1139c5689 + languageName: node + linkType: hard + +"@envelop/types@npm:4.0.1": + version: 4.0.1 + resolution: "@envelop/types@npm:4.0.1" + dependencies: + tslib: ^2.5.0 + checksum: 136bdd570118a879044bd9ef8ed4df0460429fa952509b9be724f852b80cdae154c5e95792715194505511b171423808a60eed98c890e6997b4e9d122590bb21 + languageName: node + linkType: hard + "@esbuild-kit/cjs-loader@npm:^2.4.1": version: 2.4.2 resolution: "@esbuild-kit/cjs-loader@npm:2.4.2" @@ -5766,6 +6017,87 @@ __metadata: languageName: node linkType: hard +"@frontside/backstage-plugin-graphql-backend-module-catalog@npm:^0.1.2": + version: 0.1.2 + resolution: "@frontside/backstage-plugin-graphql-backend-module-catalog@npm:0.1.2" + dependencies: + "@backstage/backend-common": ^0.19.4 + "@backstage/backend-plugin-api": ^0.6.2 + "@backstage/catalog-client": ^1.4.3 + "@backstage/catalog-model": ^1.4.1 + "@backstage/plugin-catalog-node": ^1.4.3 + "@frontside/backstage-plugin-graphql-backend": ^0.1.2 + "@frontside/hydraphql": ^0.1.1 + "@graphql-tools/load-files": ^7.0.0 + "@graphql-tools/utils": ^10.0.0 + dataloader: ^2.1.0 + graphql: ^16.6.0 + graphql-modules: ^2.1.0 + graphql-relay: ^0.10.0 + graphql-type-json: ^0.3.2 + checksum: 2a6be15915bd1d053b8d6f20190b8b1211537de22f982bde96adc97e70acdd020dc9d4e312499694cdc0dacb9a93e4a07a6b5ddb9da16b05ccf7ab67f3dd8e70 + languageName: node + linkType: hard + +"@frontside/backstage-plugin-graphql-backend-node@npm:^0.1.1": + version: 0.1.1 + resolution: "@frontside/backstage-plugin-graphql-backend-node@npm:0.1.1" + dependencies: + "@backstage/backend-plugin-api": ^0.6.2 + "@frontside/hydraphql": ^0.1.1 + dataloader: ^2.1.0 + graphql-modules: ^2.1.0 + graphql-yoga: ^4.0.3 + checksum: 22cd200ddfd4049faab5b9d6994149864eef6f82a6a657cc9ddfd8143bd0071b5e350184b7b5ffca41a2ebf5792a05fd962fcbf05c8bdeda1a5a4d17d6c6f842 + languageName: node + linkType: hard + +"@frontside/backstage-plugin-graphql-backend@npm:^0.1.2": + version: 0.1.2 + resolution: "@frontside/backstage-plugin-graphql-backend@npm:0.1.2" + dependencies: + "@backstage/backend-common": ^0.19.4 + "@backstage/backend-plugin-api": ^0.6.2 + "@envelop/core": ^4.0.0 + "@envelop/dataloader": ^5.0.0 + "@envelop/graphql-modules": ^5.0.0 + "@frontside/backstage-plugin-graphql-backend-node": ^0.1.1 + "@frontside/hydraphql": ^0.1.1 + dataloader: ^2.1.0 + express: ^4.17.1 + express-promise-router: ^4.1.0 + graphql: ^16.6.0 + graphql-modules: ^2.1.0 + graphql-yoga: ^4.0.3 + helmet: ^6.0.0 + winston: ^3.2.1 + checksum: 8e9429bf53949a0d64c756896d36348c1daa37a5a2f26889457efc28425894e01bffb6284963229dd4390de7af57c3fa594e2adeed8a21d3171ae6d7e54e71ec + languageName: node + linkType: hard + +"@frontside/hydraphql@npm:^0.1.1": + version: 0.1.1 + resolution: "@frontside/hydraphql@npm:0.1.1" + dependencies: + "@graphql-tools/code-file-loader": ^8.0.0 + "@graphql-tools/graphql-file-loader": ^8.0.0 + "@graphql-tools/load": ^8.0.0 + "@graphql-tools/load-files": ^7.0.0 + "@graphql-tools/merge": ^9.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + graphql-relay: ^0.10.0 + lodash: ^4.17.21 + pascal-case: ^3.1.2 + tslib: ^2.6.2 + peerDependencies: + dataloader: ^2.0.0 + graphql: ^16.0.0 + graphql-modules: ^2.0.0 + checksum: 20b03302e8a609c8f4bad64cda922bfad146822d4ddc34718cae862ada572857022a528d6879c4c9f7b554c2a6e23e1a16205cc8af1498860699696326f74d45 + languageName: node + linkType: hard + "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -5894,6 +6226,51 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/batch-execute@npm:^9.0.1": + version: 9.0.2 + resolution: "@graphql-tools/batch-execute@npm:9.0.2" + dependencies: + "@graphql-tools/utils": ^10.0.5 + dataloader: ^2.2.2 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 35da796959dbdb9bf59c913b2db25ab6db244243a5d3adb011f528841ac4c54f36d0731d2cb5b5ea8d0f2d28b61e34fe47a9afc905072848c1cc362193583f1b + languageName: node + linkType: hard + +"@graphql-tools/code-file-loader@npm:^8.0.0": + version: 8.0.2 + resolution: "@graphql-tools/code-file-loader@npm:8.0.2" + dependencies: + "@graphql-tools/graphql-tag-pluck": 8.0.2 + "@graphql-tools/utils": ^10.0.0 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e8c8db47a61afbfd8ac0d1e607b945ddde56c99ca7df88a80d1e50d3c8910dbdba8979264277afe430fe0a97b69aa52cdb737afc4a4ab3d452d34d84d7317c01 + languageName: node + linkType: hard + +"@graphql-tools/delegate@npm:^10.0.3": + version: 10.0.3 + resolution: "@graphql-tools/delegate@npm:10.0.3" + dependencies: + "@graphql-tools/batch-execute": ^9.0.1 + "@graphql-tools/executor": ^1.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.5 + dataloader: ^2.2.2 + tslib: ^2.5.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 999b04ebcf92bb0978b1d1c059a8b152bd42a4d6aaa47441305fd662d40dcd27f2a2b5b35e3c4da96661a2f15178bee4235af8f918db0788c0f1454555a667b2 + languageName: node + linkType: hard + "@graphql-tools/delegate@npm:^8.4.1, @graphql-tools/delegate@npm:^8.4.2": version: 8.4.3 resolution: "@graphql-tools/delegate@npm:8.4.3" @@ -5910,6 +6287,21 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/executor@npm:^1.0.0": + version: 1.2.0 + resolution: "@graphql-tools/executor@npm:1.2.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + "@graphql-typed-document-node/core": 3.2.0 + "@repeaterjs/repeater": ^3.0.4 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: a6fe10636e433155a8fb76f1be76f4f55e7e54c7473a14c546a7b558819e92b3658f33f1cb646b9523a22d692b95f2cbd5a8e628f4f263fa48f229ddf98a6850 + languageName: node + linkType: hard + "@graphql-tools/graphql-file-loader@npm:^7.3.2": version: 7.3.3 resolution: "@graphql-tools/graphql-file-loader@npm:7.3.3" @@ -5925,6 +6317,51 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/graphql-file-loader@npm:^8.0.0": + version: 8.0.0 + resolution: "@graphql-tools/graphql-file-loader@npm:8.0.0" + dependencies: + "@graphql-tools/import": 7.0.0 + "@graphql-tools/utils": ^10.0.0 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 62c5150132a044c396dddd55b6acfe88e1bee21911bbe7905eb35516e0dd969e18ca558a77bb62c5b243bf877fee0a66a5ef2e7dce611d44ef1d5ad8edda151b + languageName: node + linkType: hard + +"@graphql-tools/graphql-tag-pluck@npm:8.0.2": + version: 8.0.2 + resolution: "@graphql-tools/graphql-tag-pluck@npm:8.0.2" + dependencies: + "@babel/core": ^7.22.9 + "@babel/parser": ^7.16.8 + "@babel/plugin-syntax-import-assertions": ^7.20.0 + "@babel/traverse": ^7.16.8 + "@babel/types": ^7.16.8 + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: ee1dbb3be2b6914d15a3b9e6a1875fe1a1be283a14ced17d38139fa2d168883e0c2258d167f2cb8174d9f74ab13978c78e66e1bde3b968f2e47a8fdf365aa91a + languageName: node + linkType: hard + +"@graphql-tools/import@npm:7.0.0": + version: 7.0.0 + resolution: "@graphql-tools/import@npm:7.0.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + resolve-from: 5.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 24f7f2096b635b84983932b53d2953edf77f2d35f22d892569aa0c8303a5eb1dd5cff5922dc0264cfe22891730a17cf69392a9fd4b1b682a89553d8e16247498 + languageName: node + linkType: hard + "@graphql-tools/import@npm:^6.5.7": version: 6.6.5 resolution: "@graphql-tools/import@npm:6.6.5" @@ -5952,6 +6389,19 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/load-files@npm:^7.0.0": + version: 7.0.0 + resolution: "@graphql-tools/load-files@npm:7.0.0" + dependencies: + globby: 11.1.0 + tslib: ^2.4.0 + unixify: 1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 1240d7caa8092198667f65f7dd18eed09ea748d63804bda0b226c9db5484a20de9a24eaee3a86d24147b2220f4a08d2596a92dd88244c8f7dfc8536e8beb9697 + languageName: node + linkType: hard + "@graphql-tools/load@npm:^7.4.1": version: 7.5.1 resolution: "@graphql-tools/load@npm:7.5.1" @@ -5966,6 +6416,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/load@npm:^8.0.0": + version: 8.0.0 + resolution: "@graphql-tools/load@npm:8.0.0" + dependencies: + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + p-limit: 3.1.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e1126bef8917e8a7e89c12cc95b127de727c04502e57f379d93dd3027ce72dc38b16a52a417263959a938b4660a1d362836eed59f941cd30ee3d5452c793a50d + languageName: node + linkType: hard + "@graphql-tools/merge@npm:^8.2.1": version: 8.2.1 resolution: "@graphql-tools/merge@npm:8.2.1" @@ -5978,6 +6442,18 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/merge@npm:^9.0.0": + version: 9.0.0 + resolution: "@graphql-tools/merge@npm:9.0.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e93794260faa477979bdc22f05da26c0eff02bd82c11565a1197152b70b5ab1c73dc6f8a05caf06737bcb18cb244bd19ee99d62bfc41af3bffb3c17eddb70edf + languageName: node + linkType: hard + "@graphql-tools/schema@npm:8.3.1, @graphql-tools/schema@npm:^8.3.1": version: 8.3.1 resolution: "@graphql-tools/schema@npm:8.3.1" @@ -5992,6 +6468,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/schema@npm:^10.0.0": + version: 10.0.0 + resolution: "@graphql-tools/schema@npm:10.0.0" + dependencies: + "@graphql-tools/merge": ^9.0.0 + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 550e9a4528584a4d108892f1553fb5b2590e63e88b9a9d3c1ad80b01c974ca9947adb9d1448a6969230d90c15dc96e8e84d62f32ef0fde804c389b43ac5bd739 + languageName: node + linkType: hard + "@graphql-tools/url-loader@npm:^7.4.2": version: 7.7.0 resolution: "@graphql-tools/url-loader@npm:7.7.0" @@ -6032,6 +6522,34 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.0.5": + version: 10.0.7 + resolution: "@graphql-tools/utils@npm:10.0.7" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + dset: ^3.1.2 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 9158b53ef6057a2c17605b78eae9dcac0d546f4d214355dd9f505c83a6f459fe6bf24c5e6a849589411d645da68a05200cbbe9129f2eb467afe89274df1032cc + languageName: node + linkType: hard + +"@graphql-tools/wrap@npm:^10.0.0": + version: 10.0.1 + resolution: "@graphql-tools/wrap@npm:10.0.1" + dependencies: + "@graphql-tools/delegate": ^10.0.3 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e94d63301c045688cd7bfd6cff4375de42b344eea3c4e604b9e98d29c3544d2222435e2e3f5ada0c0db690e364af630246ccc56f2b299addc93c2e77d6dd72d1 + languageName: node + linkType: hard + "@graphql-tools/wrap@npm:^8.3.1": version: 8.3.3 resolution: "@graphql-tools/wrap@npm:8.3.3" @@ -6047,6 +6565,46 @@ __metadata: languageName: node linkType: hard +"@graphql-typed-document-node/core@npm:3.2.0, @graphql-typed-document-node/core@npm:^3.1.0, @graphql-typed-document-node/core@npm:^3.1.1": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d + languageName: node + linkType: hard + +"@graphql-yoga/logger@npm:^1.0.0": + version: 1.0.0 + resolution: "@graphql-yoga/logger@npm:1.0.0" + dependencies: + tslib: ^2.5.2 + checksum: 6d4e963b1386fbb68716d8b8192533337998e86d7c013e58816d42392a287d2b3b63f92c2cd89155edd936d51c2c1e44fb2d6487359879a85f113e6be7b838a1 + languageName: node + linkType: hard + +"@graphql-yoga/subscription@npm:^4.0.0": + version: 4.0.0 + resolution: "@graphql-yoga/subscription@npm:4.0.0" + dependencies: + "@graphql-yoga/typed-event-target": ^2.0.0 + "@repeaterjs/repeater": ^3.0.4 + "@whatwg-node/events": ^0.1.0 + tslib: ^2.5.2 + checksum: b0ead0a5e07d8087322b0d426bd8c45218b13e5e7b476a664304ad7836c9eff0f2f71a1698effd6bd3d4703f9d69b7c1e06c89eb892645693dc0ac8dd8f13cc1 + languageName: node + linkType: hard + +"@graphql-yoga/typed-event-target@npm:^2.0.0": + version: 2.0.0 + resolution: "@graphql-yoga/typed-event-target@npm:2.0.0" + dependencies: + "@repeaterjs/repeater": ^3.0.4 + tslib: ^2.5.2 + checksum: 1d6be24b71892714a1e4894da09d64739db2c817997068c09483b6e42b02a7655ffce8938d252711da7b076057c3ea25a021f8d9ad68fd30811f5e0a0941bf1b + languageName: node + linkType: hard + "@grpc/grpc-js@npm:~1.7.0": version: 1.7.3 resolution: "@grpc/grpc-js@npm:1.7.3" @@ -6399,6 +6957,17 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.0": + version: 0.3.3 + resolution: "@jridgewell/gen-mapping@npm:0.3.3" + dependencies: + "@jridgewell/set-array": ^1.0.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.2": version: 0.3.2 resolution: "@jridgewell/gen-mapping@npm:0.3.2" @@ -6417,6 +6986,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + languageName: node + linkType: hard + "@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" @@ -6438,6 +7014,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -6458,6 +7041,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.17": + version: 0.3.20 + resolution: "@jridgewell/trace-mapping@npm:0.3.20" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: cd1a7353135f385909468ff0cf20bdd37e59f2ee49a13a966dedf921943e222082c583ade2b579ff6cd0d8faafcb5461f253e1bf2a9f48fec439211fdbe788f5 + languageName: node + linkType: hard + "@jsdevtools/ono@npm:7.1.3, @jsdevtools/ono@npm:^7.1.3": version: 7.1.3 resolution: "@jsdevtools/ono@npm:7.1.3" @@ -7612,6 +8205,13 @@ __metadata: languageName: node linkType: hard +"@repeaterjs/repeater@npm:^3.0.4": + version: 3.0.4 + resolution: "@repeaterjs/repeater@npm:3.0.4" + checksum: cca0db3e802bc26fcce0b4a574074d9956da53bf43094de03c0e4732d05e13441279a92f0b96e2a7a39da50933684947a138c1213406eaafe39cfd4683d6c0df + languageName: node + linkType: hard + "@rollup/plugin-commonjs@npm:^23.0.0": version: 23.0.7 resolution: "@rollup/plugin-commonjs@npm:23.0.7" @@ -10026,6 +10626,46 @@ __metadata: languageName: node linkType: hard +"@whatwg-node/events@npm:^0.1.0": + version: 0.1.1 + resolution: "@whatwg-node/events@npm:0.1.1" + checksum: 3a356ca23522190201e27446cfd7ebf1cf96815ddb9d1ba5da0a00bbe6c1d28b4094862104411101fbedd47c758b25fe3683033f6a3e80933029efd664c33567 + languageName: node + linkType: hard + +"@whatwg-node/fetch@npm:^0.9.10, @whatwg-node/fetch@npm:^0.9.7": + version: 0.9.13 + resolution: "@whatwg-node/fetch@npm:0.9.13" + dependencies: + "@whatwg-node/node-fetch": ^0.4.17 + urlpattern-polyfill: ^9.0.0 + checksum: ba46887d9ab6e486066d4cf3911dcfaa7d76ee458abfa6d039e5a34415c8be2383fcbb56b2488f97edb941d9d58d3285c4c293def094f1caac8aed06b7a56da9 + languageName: node + linkType: hard + +"@whatwg-node/node-fetch@npm:^0.4.17": + version: 0.4.19 + resolution: "@whatwg-node/node-fetch@npm:0.4.19" + dependencies: + "@whatwg-node/events": ^0.1.0 + busboy: ^1.6.0 + fast-querystring: ^1.1.1 + fast-url-parser: ^1.1.3 + tslib: ^2.3.1 + checksum: 51f6520075d14a4456c773c4105d9b91cbcc1ba819faf5f26e9bf821255a1cd278bf0690e0f323768e54d5389a5b0d0beb0d81fb0ff9f5ab4f877ffb4cf40c2b + languageName: node + linkType: hard + +"@whatwg-node/server@npm:^0.9.1": + version: 0.9.15 + resolution: "@whatwg-node/server@npm:0.9.15" + dependencies: + "@whatwg-node/fetch": ^0.9.10 + tslib: ^2.3.1 + checksum: 55c3e6dd60318a141f4161463639f7b61bca6b3169082febfb04aea6b0ba0015b4dd87ae4714130dbd0f150a1311730746d00e62521b76c89702c823d7d50cef + languageName: node + linkType: hard + "@xmldom/xmldom@npm:^0.7.0, @xmldom/xmldom@npm:^0.7.5": version: 0.7.5 resolution: "@xmldom/xmldom@npm:0.7.5" @@ -11087,6 +11727,8 @@ __metadata: "@backstage/plugin-search-backend-node": ^1.2.10 "@backstage/plugin-techdocs-backend": ^1.8.0 "@backstage/plugin-todo-backend": ^0.3.4 + "@frontside/backstage-plugin-graphql-backend": ^0.1.2 + "@frontside/backstage-plugin-graphql-backend-module-catalog": ^0.1.2 "@types/dockerode": ^3.2.1 "@types/express": ^4.17.6 "@types/express-serve-static-core": ^4.17.5 @@ -11502,6 +12144,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.9": + version: 4.22.1 + resolution: "browserslist@npm:4.22.1" + dependencies: + caniuse-lite: ^1.0.30001541 + electron-to-chromium: ^1.4.535 + node-releases: ^2.0.13 + update-browserslist-db: ^1.0.13 + bin: + browserslist: cli.js + checksum: 7e6b10c53f7dd5d83fd2b95b00518889096382539fed6403829d447e05df4744088de46a571071afb447046abc3c66ad06fbc790e70234ec2517452e32ffd862 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -11615,7 +12271,7 @@ __metadata: languageName: node linkType: hard -"busboy@npm:^1.0.0": +"busboy@npm:^1.0.0, busboy@npm:^1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" dependencies: @@ -11759,6 +12415,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001541": + version: 1.0.30001551 + resolution: "caniuse-lite@npm:1.0.30001551" + checksum: ffdee85b1c130cbebf0aa978ba839f3525f8e304855ba9bf0fbefaac8dd8c40051a7e19ac84a7cf4ba026410abcbe6f8b45560b22ee417c52daecaf955108e65 + languageName: node + linkType: hard + "caseless@npm:~0.12.0": version: 0.12.0 resolution: "caseless@npm:0.12.0" @@ -13355,6 +14018,13 @@ __metadata: languageName: node linkType: hard +"dataloader@npm:^2.1.0, dataloader@npm:^2.2.2": + version: 2.2.2 + resolution: "dataloader@npm:2.2.2" + checksum: 4dabd247089c29f194e94d5434d504f99156c5c214a03463c20f3f17f40398d7e179edee69a27c16e315519ac8739042a810090087ae26449a0e685156a02c65 + languageName: node + linkType: hard + "date-fns@npm:^2.16.1": version: 2.19.0 resolution: "date-fns@npm:2.19.0" @@ -14009,7 +14679,7 @@ __metadata: languageName: node linkType: hard -"dset@npm:^3.1.0": +"dset@npm:^3.1.0, dset@npm:^3.1.1, dset@npm:^3.1.2": version: 3.1.2 resolution: "dset@npm:3.1.2" checksum: 4f8066f517aa0a70af688c66e9a0a5590f0aada76f6edc7ba9ddb309e27d3a6d65c0a2e31ab2a84005d4c791e5327773cdde59b8ab169050330a0dc283663e87 @@ -14068,6 +14738,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.535": + version: 1.4.561 + resolution: "electron-to-chromium@npm:1.4.561" + checksum: 45f4a6e607298c4ce28a3e124fe8a5f471ed7b9092fdf8e6c5229288cba9543f6bbb4f8ffb63c1a9737d21b830562a2b9289cdd3630c90be2f283e71a77ea756 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.4.71": version: 1.4.75 resolution: "electron-to-chromium@npm:1.4.75" @@ -15644,6 +16321,13 @@ __metadata: languageName: node linkType: hard +"fast-decode-uri-component@npm:^1.0.1": + version: 1.0.1 + resolution: "fast-decode-uri-component@npm:1.0.1" + checksum: 427a48fe0907e76f0e9a2c228e253b4d8a8ab21d130ee9e4bb8339c5ba4086235cf9576831f7b20955a752eae4b525a177ff9d5825dd8d416e7726939194fbee + languageName: node + linkType: hard + "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -15699,6 +16383,15 @@ __metadata: languageName: node linkType: hard +"fast-querystring@npm:^1.1.1": + version: 1.1.2 + resolution: "fast-querystring@npm:1.1.2" + dependencies: + fast-decode-uri-component: ^1.0.1 + checksum: 7149f82ee9ac39a9c08c7ffe435b9f6deade76ae5e3675fe1835720513e8c4bc541e666b4b7b1c0c07e08f369dcf4828d00f2bee39889a90a168e1439cf27b0b + languageName: node + linkType: hard + "fast-redact@npm:^2.0.0": version: 2.1.0 resolution: "fast-redact@npm:2.1.0" @@ -15734,6 +16427,15 @@ __metadata: languageName: node linkType: hard +"fast-url-parser@npm:^1.1.3": + version: 1.1.3 + resolution: "fast-url-parser@npm:1.1.3" + dependencies: + punycode: ^1.3.2 + checksum: 5043d0c4a8d775ff58504d56c096563c11b113e4cb8a2668c6f824a1cd4fb3812e2fdf76537eb24a7ce4ae7def6bd9747da630c617cf2a4b6ce0c42514e4f21c + languageName: node + linkType: hard + "fast-xml-parser@npm:4.2.4": version: 4.2.4 resolution: "fast-xml-parser@npm:4.2.4" @@ -16610,7 +17312,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.0, globby@npm:^11.0.1, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": +"globby@npm:11.1.0, globby@npm:^11.0.0, globby@npm:^11.0.1, globby@npm:^11.0.3, globby@npm:^11.0.4, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -16872,6 +17574,29 @@ __metadata: languageName: node linkType: hard +"graphql-modules@npm:^2.1.0": + version: 2.2.0 + resolution: "graphql-modules@npm:2.2.0" + dependencies: + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/wrap": ^10.0.0 + "@graphql-typed-document-node/core": ^3.1.0 + ramda: ^0.29.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 81e36df3869f54274b1ab2d178d96ae649f6261724235566361caa770a6011b02633e211cdd2e57b4720b8fa61c2469618a1dc7e2ed213855bf48a2fbf30a76d + languageName: node + linkType: hard + +"graphql-relay@npm:^0.10.0": + version: 0.10.0 + resolution: "graphql-relay@npm:0.10.0" + peerDependencies: + graphql: ^16.2.0 + checksum: 74b2b608ed7c18cc405d53fa7e482a68442a4dc7c0748bba029c59e1d23c6c6e5b8193c775eb73f6bb0dce49501f66af0453eb0b0f0362374cef9f97528852c0 + languageName: node + linkType: hard + "graphql-sse@npm:^1.0.1": version: 1.0.6 resolution: "graphql-sse@npm:1.0.6" @@ -16892,6 +17617,15 @@ __metadata: languageName: node linkType: hard +"graphql-type-json@npm:^0.3.2": + version: 0.3.2 + resolution: "graphql-type-json@npm:0.3.2" + peerDependencies: + graphql: ">=0.8.0" + checksum: 41620699637a5294937bd61d6e2696edea5a1279ef3d8f4b33716a910635595435381ccd1b74c6fae62c2bc81064c62ae27d3559c8380c0f99bdfdc8ecb249b0 + languageName: node + linkType: hard + "graphql-ws@npm:^5.4.1": version: 5.5.5 resolution: "graphql-ws@npm:5.5.5" @@ -16901,10 +17635,31 @@ __metadata: languageName: node linkType: hard -"graphql@npm:^16.0.0": - version: 16.2.0 - resolution: "graphql@npm:16.2.0" - checksum: 204b5c9991b82561651a28b13dbb2e0e67514171a6a8c045ca4a527b944087344a14519d0426d661b49f2305584b390591abadc82b942f7b65e64e05cb31a584 +"graphql-yoga@npm:^4.0.3": + version: 4.0.5 + resolution: "graphql-yoga@npm:4.0.5" + dependencies: + "@envelop/core": ^4.0.0 + "@graphql-tools/executor": ^1.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 + "@graphql-yoga/logger": ^1.0.0 + "@graphql-yoga/subscription": ^4.0.0 + "@whatwg-node/fetch": ^0.9.7 + "@whatwg-node/server": ^0.9.1 + dset: ^3.1.1 + lru-cache: ^10.0.0 + tslib: ^2.5.2 + peerDependencies: + graphql: ^15.2.0 || ^16.0.0 + checksum: f86617b2a73314631fa19253fb6fd208de7f9befba19bcbe228f8c85df7f741b191de0b0f83f7e2e8f9a13add0325d980b3416cd3566bcc2c2fdca8ef0ab8a48 + languageName: node + linkType: hard + +"graphql@npm:^16.2.0": + version: 16.8.1 + resolution: "graphql@npm:16.8.1" + checksum: 8d304b7b6f708c8c5cc164b06e92467dfe36aff6d4f2cf31dd19c4c2905a0e7b89edac4b7e225871131fd24e21460836b369de0c06532644d15b461d55b1ccc0 languageName: node linkType: hard @@ -19364,6 +20119,15 @@ __metadata: languageName: node linkType: hard +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + "jsonc-parser@npm:^3.0.0": version: 3.0.0 resolution: "jsonc-parser@npm:3.0.0" @@ -20123,6 +20887,15 @@ __metadata: languageName: node linkType: hard +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 + languageName: node + linkType: hard + "lowlight@npm:^1.17.0": version: 1.20.0 resolution: "lowlight@npm:1.20.0" @@ -20133,6 +20906,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.0.0": + version: 10.0.1 + resolution: "lru-cache@npm:10.0.1" + checksum: 06f8d0e1ceabd76bb6f644a26dbb0b4c471b79c7b514c13c6856113879b3bf369eb7b497dad4ff2b7e2636db202412394865b33c332100876d838ad1372f0181 + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -21483,6 +22263,16 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: ^2.0.2 + tslib: ^2.0.3 + checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c + languageName: node + linkType: hard + "node-abi@npm:^2.21.0": version: 2.30.1 resolution: "node-abi@npm:2.30.1" @@ -21610,6 +22400,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.13": + version: 2.0.13 + resolution: "node-releases@npm:2.0.13" + checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 + languageName: node + linkType: hard + "node-releases@npm:^2.0.2": version: 2.0.2 resolution: "node-releases@npm:2.0.2" @@ -22361,6 +23158,16 @@ __metadata: languageName: node linkType: hard +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + languageName: node + linkType: hard + "passport-auth0@npm:^1.4.3": version: 1.4.3 resolution: "passport-auth0@npm:1.4.3" @@ -23713,7 +24520,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^1.2.4": +"punycode@npm:^1.2.4, punycode@npm:^1.3.2": version: 1.4.1 resolution: "punycode@npm:1.4.1" checksum: fa6e698cb53db45e4628559e557ddaf554103d2a96a1d62892c8f4032cd3bc8871796cae9eabc1bc700e2b6677611521ce5bb1d9a27700086039965d0cf34518 @@ -23810,6 +24617,13 @@ __metadata: languageName: node linkType: hard +"ramda@npm:^0.29.0": + version: 0.29.1 + resolution: "ramda@npm:0.29.1" + checksum: df7c627597a66d5f317f6ba77ad17d7ba818efc9c2c4a638440bc23f2c651e823970ea05b05a28895738c0e4b738fadbdc17b2c97b3ad922826febc09c859c44 + languageName: node + linkType: hard + "ramda@npm:~0.29.0": version: 0.29.0 resolution: "ramda@npm:0.29.0" @@ -25563,6 +26377,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + languageName: node + linkType: hard + "semver@npm:^7.1.2, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" @@ -27505,6 +28328,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.0.3, tslib@npm:^2.5.2, tslib@npm:^2.6.2": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad + languageName: node + linkType: hard + "tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.4.1": version: 2.4.1 resolution: "tslib@npm:2.4.1" @@ -27975,7 +28805,7 @@ __metadata: languageName: node linkType: hard -"unixify@npm:^1.0.0": +"unixify@npm:1.0.0, unixify@npm:^1.0.0": version: 1.0.0 resolution: "unixify@npm:1.0.0" dependencies: @@ -27998,6 +28828,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.0.9": version: 1.0.10 resolution: "update-browserslist-db@npm:1.0.10" @@ -28041,6 +28885,13 @@ __metadata: languageName: node linkType: hard +"urlpattern-polyfill@npm:^9.0.0": + version: 9.0.0 + resolution: "urlpattern-polyfill@npm:9.0.0" + checksum: d3658b78a10eaee514c464f5a4336c408c70cf01e9b915cb1df5892b3c49003d1ed4042dc72d1b18493b8b847883e84fbf2bf358abb5dff84b2725d5e8463bcb + languageName: node + linkType: hard + "use-memo-one@npm:^1.1.1": version: 1.1.1 resolution: "use-memo-one@npm:1.1.1" @@ -28263,6 +29114,13 @@ __metadata: languageName: node linkType: hard +"value-or-promise@npm:^1.0.12": + version: 1.0.12 + resolution: "value-or-promise@npm:1.0.12" + checksum: f53a66c75b7447c90bbaf946a757ca09c094629cb80ba742f59c980ec3a69be0a385a0e75505dedb4e757862f1a994ca4beaf083a831f24d3ffb3d4bb18cd1e1 + languageName: node + linkType: hard + "vary@npm:^1, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" From b559eeaaa260da7cbc2941f085ba212a4ea97b9d Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 20 Oct 2023 14:28:49 -0400 Subject: [PATCH 2/5] Added GraphQL Backend to GraphiQL --- packages/app/src/apis.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/app/src/apis.ts b/packages/app/src/apis.ts index faac60df2..63fb2eee9 100644 --- a/packages/app/src/apis.ts +++ b/packages/app/src/apis.ts @@ -48,9 +48,14 @@ export const apis: AnyApiFactory[] = [ }), createApiFactory({ api: graphQlBrowseApiRef, - deps: { errorApi: errorApiRef, githubAuthApi: githubAuthApiRef }, - factory: ({ errorApi, githubAuthApi }) => + deps: { errorApi: errorApiRef, githubAuthApi: githubAuthApiRef, discoveryApi: discoveryApiRef }, + factory: ({ errorApi, githubAuthApi, discoveryApi }) => GraphQLEndpoints.from([ + GraphQLEndpoints.create({ + id: 'backstage', + title: 'GraphQL Backend', + url: discoveryApi.getBaseUrl('graphql') + }), GraphQLEndpoints.github({ id: 'github', title: 'GitHub', From d2a45905f49bee4f2d038532004f91b6439841a4 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 20 Oct 2023 15:23:20 -0400 Subject: [PATCH 3/5] Added demo catalog-info.yaml to static locations --- app-config.yaml | 9 +++++++++ catalog-info.yaml | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/app-config.yaml b/app-config.yaml index 7dfdb2014..2ca4c2fc6 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -32,6 +32,11 @@ backend: database: client: better-sqlite3 connection: ':memory:' + reading: + allow: + - host: https://demo.backstage.io + paths: + - /api/graphql/schema integrations: github: @@ -83,6 +88,10 @@ catalog: - type: url target: https://github.com/backstage/backstage/blob/master/catalog-info.yaml + # The demo site + - type: url + target: https://github.com/backstage/demo/blob/master/catalog-info.yaml + costInsights: engineerCost: 200000 products: diff --git a/catalog-info.yaml b/catalog-info.yaml index ecc9d7b41..137f55ccc 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -9,3 +9,24 @@ spec: type: website owner: backstage/maintainers lifecycle: experimental + consumesApis: + - demo-graphql +--- +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: demo-graphql + description: GraphQL Backend Plugin + links: + - title: GraphQL Backend Plugin + url: https://github.com/thefrontside/playhouse/tree/main/plugins/graphql-backend#graphql-backend + - title: GraphQL Catalog Schema + url: https://github.com/thefrontside/playhouse/tree/main/plugins/graphql-backend-module-catalog#graphql-backend-catalog-module + - title: Schema Directives Docs + url: https://github.com/thefrontside/HydraphQL +spec: + type: graphql + lifecycle: production + owner: backstage/maintainers + definition: + $text: https://demo.backstage.io/api/graphql/schema \ No newline at end of file From 5755b22481e8bf343cea3bb1612780b5e6a77a98 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 20 Oct 2023 15:50:52 -0400 Subject: [PATCH 4/5] Removed links and changed the name --- catalog-info.yaml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/catalog-info.yaml b/catalog-info.yaml index 137f55ccc..fdecdaad7 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -1,7 +1,7 @@ apiVersion: backstage.io/v1alpha1 kind: Component metadata: - name: demo + name: backstage-demo description: An example deployment of a Backstage application. annotations: github.com/project-slug: backstage/demo @@ -17,16 +17,11 @@ kind: API metadata: name: demo-graphql description: GraphQL Backend Plugin - links: - - title: GraphQL Backend Plugin - url: https://github.com/thefrontside/playhouse/tree/main/plugins/graphql-backend#graphql-backend - - title: GraphQL Catalog Schema - url: https://github.com/thefrontside/playhouse/tree/main/plugins/graphql-backend-module-catalog#graphql-backend-catalog-module - - title: Schema Directives Docs - url: https://github.com/thefrontside/HydraphQL spec: type: graphql lifecycle: production owner: backstage/maintainers + apiConsumedBy: + - backstage-demo definition: $text: https://demo.backstage.io/api/graphql/schema \ No newline at end of file From 0fb602377c54fdf970bbdf24463582b2f06cd883 Mon Sep 17 00:00:00 2001 From: Taras Mankovski Date: Fri, 20 Oct 2023 16:51:43 -0400 Subject: [PATCH 5/5] Specify @types/node@18 as a workspace dependency --- package.json | 1 + yarn.lock | 33 +++++++++++++++++---------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index c809a208f..138448e7a 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "@backstage/e2e-test-utils": "^0.1.0", "@playwright/test": "^1.32.3", "@spotify/prettier-config": "^7.0.0", + "@types/node": "^18.0.0", "concurrently": "^6.0.0", "eslint-plugin-jest": "*", "node-fetch": "^2.6.7", diff --git a/yarn.lock b/yarn.lock index 589041b2a..112251a97 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9781,33 +9781,33 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 17.0.8 - resolution: "@types/node@npm:17.0.8" - checksum: f4cadeb9e602027520abc88c77142697e33cf6ac98bb02f8b595a398603cbd33df1f94d01c055c9f13cde0c8eaafc5e396ca72645458d42b4318b845bc7f1d0f +"@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0, @types/node@npm:^20.1.1": + version: 20.8.7 + resolution: "@types/node@npm:20.8.7" + dependencies: + undici-types: ~5.25.1 + checksum: 2173c0c03daefcb60c03a61b1371b28c8fe412e7a40dc6646458b809d14a85fbc7aeb369d957d57f0aaaafd99964e77436f29b3b579232d8f2b20c58abbd1d25 languageName: node linkType: hard "@types/node@npm:^12.0.0, @types/node@npm:^12.7.1": - version: 12.20.41 - resolution: "@types/node@npm:12.20.41" - checksum: ff90d10f9831e86abf1f17581a70a81e5b6c3be97ec0b02972e6c3201fd19a40f6b230d4346ef7aaf023f24fef07a2131aeb68773ef3b14c3a17da8fbe05e439 + version: 12.20.55 + resolution: "@types/node@npm:12.20.55" + checksum: e4f86785f4092706e0d3b0edff8dca5a13b45627e4b36700acd8dfe6ad53db71928c8dee914d4276c7fd3b6ccd829aa919811c9eb708a2c8e4c6eb3701178c37 languageName: node linkType: hard "@types/node@npm:^16.9.2": - version: 16.11.19 - resolution: "@types/node@npm:16.11.19" - checksum: a9ba0cd1e61c8ad50f3fc9c2b37b795bf0286dacb39dcc985da90328abf0c5151dffe9932d20bc9a6a52c3ce7bfc1e5a7c2dc1416480fb84f1c2d70e25caeba0 + version: 16.18.59 + resolution: "@types/node@npm:16.18.59" + checksum: 70f28744d239c48db056ff6355d2eb99305db54d1f9377b3f4458e92ffb4da8962a0c67665452d5f430cea2286ced256dac8f769660007aedd3676cf03ff28ad languageName: node linkType: hard -"@types/node@npm:^20.1.1": - version: 20.8.7 - resolution: "@types/node@npm:20.8.7" - dependencies: - undici-types: ~5.25.1 - checksum: 2173c0c03daefcb60c03a61b1371b28c8fe412e7a40dc6646458b809d14a85fbc7aeb369d957d57f0aaaafd99964e77436f29b3b579232d8f2b20c58abbd1d25 +"@types/node@npm:^18.0.0": + version: 18.18.6 + resolution: "@types/node@npm:18.18.6" + checksum: a847639b8455fd3dfa6dbc2917274c82c9db789f1d41aaf69f94ac6c9e54c3c1dd29be6e1e1ccd7c17e54db3d78d7011bc4e70544c6447ceca253dccc0a187e1 languageName: node linkType: hard @@ -26140,6 +26140,7 @@ __metadata: "@backstage/e2e-test-utils": ^0.1.0 "@playwright/test": ^1.32.3 "@spotify/prettier-config": ^7.0.0 + "@types/node": ^18.0.0 concurrently: ^6.0.0 eslint-plugin-jest: "*" node-fetch: ^2.6.7