From d06b30b050ba9e76d270d2692f21aa1664415aea Mon Sep 17 00:00:00 2001 From: Morgan Bentell Date: Wed, 4 Oct 2023 12:08:52 +0200 Subject: [PATCH 1/7] add --mkdocs-config-file-name cli argument to the techdocs-cli serve command Signed-off-by: Morgan Bentell --- .changeset/nine-flies-move.md | 6 +++ packages/techdocs-cli/src/commands/index.ts | 4 ++ .../techdocs-cli/src/commands/serve/serve.ts | 11 +++-- packages/techdocs-cli/src/lib/mkdocsServer.ts | 23 +++++++++-- .../src/stages/generate/helpers.test.ts | 40 ++++++++++++++++--- .../src/stages/generate/helpers.ts | 29 +++++++++++--- 6 files changed, 93 insertions(+), 20 deletions(-) create mode 100644 .changeset/nine-flies-move.md diff --git a/.changeset/nine-flies-move.md b/.changeset/nine-flies-move.md new file mode 100644 index 0000000000..0e7bca2836 --- /dev/null +++ b/.changeset/nine-flies-move.md @@ -0,0 +1,6 @@ +--- +'@techdocs/cli': minor +'@backstage/plugin-techdocs-node': minor +--- + +Add possibility to use a mkdocs config file with a different name than `mkdocs. with the serve command using the `--mkdocs-config-file-name` argument diff --git a/packages/techdocs-cli/src/commands/index.ts b/packages/techdocs-cli/src/commands/index.ts index 3321bb7f43..10a00da513 100644 --- a/packages/techdocs-cli/src/commands/index.ts +++ b/packages/techdocs-cli/src/commands/index.ts @@ -285,6 +285,10 @@ export function registerCommands(program: Command) { 'Port for the preview app to be served on', defaultPreviewAppPort, ) + .option( + '-c, --mkdocs-config-file-name ', + 'Mkdocs config file name', + ) .hook('preAction', command => { if ( command.opts().previewAppPort !== defaultPreviewAppPort && diff --git a/packages/techdocs-cli/src/commands/serve/serve.ts b/packages/techdocs-cli/src/commands/serve/serve.ts index 9e2e521546..5fcf1787d3 100644 --- a/packages/techdocs-cli/src/commands/serve/serve.ts +++ b/packages/techdocs-cli/src/commands/serve/serve.ts @@ -65,11 +65,13 @@ export default async function serve(opts: OptionValues) { const mkdocsExpectedDevAddr = opts.docker ? mkdocsDockerAddr : mkdocsLocalAddr; + const mkdocsConfigFileName = opts.mkdocsConfigFileName; + const siteName = opts.siteName; - const { path: mkdocsYmlPath, configIsTemporary } = await getMkdocsYml( - './', - opts.siteName, - ); + const { path: mkdocsYmlPath, configIsTemporary } = await getMkdocsYml('./', { + name: siteName, + mkdocsConfigFileName, + }); let mkdocsServerHasStarted = false; const mkdocsLogFunc: LogFunc = data => { @@ -104,6 +106,7 @@ export default async function serve(opts: OptionValues) { useDocker: opts.docker, stdoutLogFunc: mkdocsLogFunc, stderrLogFunc: mkdocsLogFunc, + mkdocsConfigFileName: mkdocsYmlPath, }); // Wait until mkdocs server has started so that Backstage starts with docs loaded diff --git a/packages/techdocs-cli/src/lib/mkdocsServer.ts b/packages/techdocs-cli/src/lib/mkdocsServer.ts index 5ca7e47573..42409acb46 100644 --- a/packages/techdocs-cli/src/lib/mkdocsServer.ts +++ b/packages/techdocs-cli/src/lib/mkdocsServer.ts @@ -25,6 +25,7 @@ export const runMkdocsServer = async (options: { dockerOptions?: string[]; stdoutLogFunc?: LogFunc; stderrLogFunc?: LogFunc; + mkdocsConfigFileName?: string; }): Promise => { const port = options.port ?? '8000'; const useDocker = options.useDocker ?? true; @@ -51,6 +52,9 @@ export const runMkdocsServer = async (options: { 'serve', '--dev-addr', `0.0.0.0:${port}`, + ...(options.mkdocsConfigFileName + ? ['--config-file', options.mkdocsConfigFileName] + : []), ], { stdoutLogFunc: options.stdoutLogFunc, @@ -59,8 +63,19 @@ export const runMkdocsServer = async (options: { ); } - return await run('mkdocs', ['serve', '--dev-addr', `127.0.0.1:${port}`], { - stdoutLogFunc: options.stdoutLogFunc, - stderrLogFunc: options.stderrLogFunc, - }); + return await run( + 'mkdocs', + [ + 'serve', + '--dev-addr', + `127.0.0.1:${port}`, + ...(options.mkdocsConfigFileName + ? ['--config-file', options.mkdocsConfigFileName] + : []), + ], + { + stdoutLogFunc: options.stdoutLogFunc, + stderrLogFunc: options.stderrLogFunc, + }, + ); }; diff --git a/plugins/techdocs-node/src/stages/generate/helpers.test.ts b/plugins/techdocs-node/src/stages/generate/helpers.test.ts index 22940e9ce8..5556f8aae4 100644 --- a/plugins/techdocs-node/src/stages/generate/helpers.test.ts +++ b/plugins/techdocs-node/src/stages/generate/helpers.test.ts @@ -540,7 +540,7 @@ describe('helpers', () => { }); describe('getMkdocsYml', () => { - const siteOptions = { + const defaultOptions = { name: mockEntity.metadata.title, }; @@ -550,7 +550,7 @@ describe('helpers', () => { path: mkdocsPath, content, configIsTemporary, - } = await getMkdocsYml(mockDir.path, siteOptions); + } = await getMkdocsYml(mockDir.path, defaultOptions); expect(mkdocsPath).toBe(mockDir.resolve('mkdocs.yml')); expect(content).toBe(mkdocsYml.toString()); @@ -563,14 +563,14 @@ describe('helpers', () => { path: mkdocsPath, content, configIsTemporary, - } = await getMkdocsYml(mockDir.path, siteOptions); + } = await getMkdocsYml(mockDir.path, defaultOptions); expect(mkdocsPath).toBe(mockDir.resolve('mkdocs.yaml')); expect(content).toBe(mkdocsYml.toString()); expect(configIsTemporary).toBe(false); }); it('returns expected contents when default file is present', async () => { - const defaultSiteOptions = { + const options = { name: 'Default Test site name', }; const mockPathExists = jest.spyOn(fs, 'pathExists'); @@ -580,21 +580,49 @@ describe('helpers', () => { path: mkdocsPath, content, configIsTemporary, - } = await getMkdocsYml(mockDir.path, defaultSiteOptions); + } = await getMkdocsYml(mockDir.path, options); expect(mkdocsPath).toBe(mockDir.resolve('mkdocs.yml')); expect(content.split(/[\r\n]+/g)).toEqual( mkdocsDefaultYml.toString().split(/[\r\n]+/g), ); expect(configIsTemporary).toBe(true); + mockPathExists.mockRestore(); }); it('throws when neither .yml nor .yaml nor default file is present', async () => { const invalidInputDir = resolvePath(__filename); - await expect(getMkdocsYml(invalidInputDir, siteOptions)).rejects.toThrow( + await expect( + getMkdocsYml(invalidInputDir, defaultOptions), + ).rejects.toThrow( /Could not read MkDocs YAML config file mkdocs.yml or mkdocs.yaml or default for validation/, ); }); + + it('returns expected content when custom file is specified', async () => { + const options = { mkdocsConfigFileName: 'another-name.yaml' }; + mockDIr.setContent({'mkdocs.yml': mkdocsYml}) + + const { + path: mkdocsPath, + content, + configIsTemporary, + } = await getMkdocsYml(inputDir, options); + + expect(mkdocsPath).toBe(key); + expect(content).toBe(mkdocsYml.toString()); + expect(configIsTemporary).toBe(false); + }); + + it('throws when specifying a specific mkdocs config file that does not exist', async () => { + const options = { mkdocsConfigFileName: 'another-name.yaml' }; + mockDir.setContent({ 'mkdocs.yml': mkdocsDefaultYml }); + + + await expect(getMkdocsYml(inputDir, options)).rejects.toThrow( + /The specified file .* does not exist/, + ); + }); }); describe('validateMkdocsYaml', () => { diff --git a/plugins/techdocs-node/src/stages/generate/helpers.ts b/plugins/techdocs-node/src/stages/generate/helpers.ts index e16293f906..9e24a5edfe 100644 --- a/plugins/techdocs-node/src/stages/generate/helpers.ts +++ b/plugins/techdocs-node/src/stages/generate/helpers.ts @@ -185,21 +185,38 @@ export const generateMkdocsYml = async ( }; /** - * Finds and loads the contents of either an mkdocs.yml or mkdocs.yaml file, - * depending on which is present (MkDocs supports both as of v1.2.2). + * Finds and loads the contents of an mkdocs.yml, mkdocs.yaml file, a file + * with a specified name or an ad-hoc created file with minimal config. * @public * * @param inputDir - base dir to be searched for either an mkdocs.yml or mkdocs.yaml file. - * @param siteOptions - options for the site: `name` property will be used in mkdocs.yml for the - * required `site_name` property, default value is "Documentation Site" + * @param options - ``` + * { + * name: default mkdocs site_name to be used with a ad hoc file default value is "Documentation Site" + * mkdocsConfigFileName (optional): a non-default file name to be used as the config + * }``` */ export const getMkdocsYml = async ( inputDir: string, - siteOptions?: { name?: string }, + options?: { name?: string; mkdocsConfigFileName?: string }, ): Promise<{ path: string; content: string; configIsTemporary: boolean }> => { let mkdocsYmlPath: string; let mkdocsYmlFileString: string; try { + if (options?.mkdocsConfigFileName) { + mkdocsYmlPath = path.join(inputDir, options.mkdocsConfigFileName); + if (!(await fs.pathExists(mkdocsYmlPath))) { + throw new Error(`The specified file ${mkdocsYmlPath} does not exist`); + } + + mkdocsYmlFileString = await fs.readFile(mkdocsYmlPath, 'utf8'); + return { + path: mkdocsYmlPath, + content: mkdocsYmlFileString, + configIsTemporary: false, + }; + } + mkdocsYmlPath = path.join(inputDir, 'mkdocs.yaml'); if (await fs.pathExists(mkdocsYmlPath)) { mkdocsYmlFileString = await fs.readFile(mkdocsYmlPath, 'utf8'); @@ -221,7 +238,7 @@ export const getMkdocsYml = async ( } // No mkdocs file, generate it - await generateMkdocsYml(inputDir, siteOptions); + await generateMkdocsYml(inputDir, options); mkdocsYmlFileString = await fs.readFile(mkdocsYmlPath, 'utf8'); } catch (error) { throw new ForwardedError( From 7939e0e64a0c331e193e444ca8697f4ac49873ba Mon Sep 17 00:00:00 2001 From: Morgan Bentell Date: Wed, 4 Oct 2023 14:03:00 +0200 Subject: [PATCH 2/7] api report Signed-off-by: Morgan Bentell --- plugins/techdocs-node/api-report.md | 6 ++++-- plugins/techdocs-node/src/stages/generate/helpers.ts | 7 ++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/plugins/techdocs-node/api-report.md b/plugins/techdocs-node/api-report.md index 11a9ecaa84..656db6ae36 100644 --- a/plugins/techdocs-node/api-report.md +++ b/plugins/techdocs-node/api-report.md @@ -89,9 +89,10 @@ export const getLocationForEntity: ( // @public @deprecated (undocumented) export const getMkDocsYml: ( inputDir: string, - siteOptions?: + options?: | { name?: string | undefined; + mkdocsConfigFileName?: string | undefined; } | undefined, ) => Promise<{ @@ -103,8 +104,9 @@ export const getMkDocsYml: ( // @public export const getMkdocsYml: ( inputDir: string, - siteOptions?: { + options?: { name?: string; + mkdocsConfigFileName?: string; }, ) => Promise<{ path: string; diff --git a/plugins/techdocs-node/src/stages/generate/helpers.ts b/plugins/techdocs-node/src/stages/generate/helpers.ts index 9e24a5edfe..1450a4afba 100644 --- a/plugins/techdocs-node/src/stages/generate/helpers.ts +++ b/plugins/techdocs-node/src/stages/generate/helpers.ts @@ -190,11 +190,8 @@ export const generateMkdocsYml = async ( * @public * * @param inputDir - base dir to be searched for either an mkdocs.yml or mkdocs.yaml file. - * @param options - ``` - * { - * name: default mkdocs site_name to be used with a ad hoc file default value is "Documentation Site" - * mkdocsConfigFileName (optional): a non-default file name to be used as the config - * }``` + * @param options - name: default mkdocs site_name to be used with a ad hoc file default value is "Documentation Site" + * mkdocsConfigFileName (optional): a non-default file name to be used as the config */ export const getMkdocsYml = async ( inputDir: string, From 60f9546a0dff2fa3a51db49d3ea145c8541bf966 Mon Sep 17 00:00:00 2001 From: Morgan Bentell Date: Wed, 4 Oct 2023 14:06:37 +0200 Subject: [PATCH 3/7] update cli documentation Signed-off-by: Morgan Bentell --- docs/features/techdocs/cli.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/features/techdocs/cli.md b/docs/features/techdocs/cli.md index 87eb67d04a..9704b9b21b 100644 --- a/docs/features/techdocs/cli.md +++ b/docs/features/techdocs/cli.md @@ -95,6 +95,7 @@ Options: --preview-app-bundle-path Preview documentation using a web app other than the included one. --preview-app-port Port where the preview will be served. Can only be used with "--preview-app-bundle-path". (default: "3000") + -c, --mkdocs-config-file-name Yaml file to use as config by mkdocs. -v --verbose Enable verbose output. (default: false) -h, --help display help for command ``` From e4eab7e43b2980fde132fa893a1c499a4fe987af Mon Sep 17 00:00:00 2001 From: Morgan Bentell Date: Wed, 4 Oct 2023 14:18:10 +0200 Subject: [PATCH 4/7] update cli-report Signed-off-by: Morgan Bentell --- packages/techdocs-cli/cli-report.md | 1 + packages/techdocs-cli/package.json | 1 + yarn.lock | 145 ++++++++++++++++++++++++++-- 3 files changed, 138 insertions(+), 9 deletions(-) diff --git a/packages/techdocs-cli/cli-report.md b/packages/techdocs-cli/cli-report.md index 5f148daf24..890718b0d2 100644 --- a/packages/techdocs-cli/cli-report.md +++ b/packages/techdocs-cli/cli-report.md @@ -106,6 +106,7 @@ Options: -v --verbose --preview-app-bundle-path --preview-app-port + -c, --mkdocs-config-file-name -h, --help ``` diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 14120ab801..5846a8bcba 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -40,6 +40,7 @@ "@types/fs-extra": "^9.0.6", "@types/http-proxy": "^1.17.4", "@types/node": "^18.17.8", + "@types/react-dev-utils": "^9.0.12", "@types/serve-handler": "^6.1.0", "@types/webpack-env": "^1.15.3", "find-process": "^1.4.5", diff --git a/yarn.lock b/yarn.lock index 3653ddc25d..e6125acd36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16709,6 +16709,7 @@ __metadata: "@types/fs-extra": ^9.0.6 "@types/http-proxy": ^1.17.4 "@types/node": ^18.17.8 + "@types/react-dev-utils": ^9.0.12 "@types/serve-handler": ^6.1.0 "@types/webpack-env": ^1.15.3 commander: ^9.1.0 @@ -17051,6 +17052,16 @@ __metadata: languageName: node linkType: hard +"@types/clean-css@npm:*": + version: 4.2.7 + resolution: "@types/clean-css@npm:4.2.7" + dependencies: + "@types/node": "*" + source-map: ^0.6.0 + checksum: c6f5fb7bd700d5fa488f0d2a4e7e6f5220c305d186976093b5bace2361590659dcd355c2bf54315840e9bf4423e41d90f303dd0762719b42d04af2089e1d7e49 + languageName: node + linkType: hard + "@types/codemirror@npm:^5.0.0": version: 5.60.10 resolution: "@types/codemirror@npm:5.60.10" @@ -17119,13 +17130,13 @@ __metadata: languageName: node linkType: hard -"@types/connect-history-api-fallback@npm:^1.3.5": - version: 1.3.5 - resolution: "@types/connect-history-api-fallback@npm:1.3.5" +"@types/connect-history-api-fallback@npm:*, @types/connect-history-api-fallback@npm:^1.3.5": + version: 1.5.1 + resolution: "@types/connect-history-api-fallback@npm:1.5.1" dependencies: "@types/express-serve-static-core": "*" "@types/node": "*" - checksum: 464d06e5ab00f113fa89978633d5eb00d225aeb4ebbadc07f6f3bc337aa7cbfcd74957b2a539d6d47f2e128e956a17819973ec7ae62ade2e16e367a6c38b8d3a + checksum: bc5e46663300eba56eaf8ef242156256e2bdadc52bb7d6543f4b37f2945b6a810901c245711f8321fce7d94c7b588b308a86519f3e1f87a80eb87841d808dbdc languageName: node linkType: hard @@ -17538,6 +17549,28 @@ __metadata: languageName: node linkType: hard +"@types/html-minifier@npm:*": + version: 4.0.3 + resolution: "@types/html-minifier@npm:4.0.3" + dependencies: + "@types/clean-css": "*" + "@types/relateurl": "*" + "@types/uglify-js": "*" + checksum: f56c58e7e8dafeed00ee0817911f79c87fefd377fdd4802e5fb8ae32a7711b7a8e588ba7cf0b3a54918f4d8b4f962ff9c0ffb864ec35c71665ea135bfce53892 + languageName: node + linkType: hard + +"@types/html-webpack-plugin@npm:*": + version: 3.2.7 + resolution: "@types/html-webpack-plugin@npm:3.2.7" + dependencies: + "@types/html-minifier": "*" + "@types/tapable": ^1 + "@types/webpack": ^4 + checksum: 6a09dad5f4c9841fb6b1071a7a0f4ed0d1341c63ccd9ba975a9d3bd58ad601ec79993e5cbb09503a2bb5563fe4a95b5fdf82f48fed000b9516a34e8300b25b47 + languageName: node + linkType: hard + "@types/http-cache-semantics@npm:*": version: 4.0.0 resolution: "@types/http-cache-semantics@npm:4.0.0" @@ -17563,7 +17596,7 @@ __metadata: languageName: node linkType: hard -"@types/http-proxy@npm:*, @types/http-proxy@npm:^1.17.4, @types/http-proxy@npm:^1.17.8": +"@types/http-proxy@npm:*, @types/http-proxy@npm:^1.17.4, @types/http-proxy@npm:^1.17.5, @types/http-proxy@npm:^1.17.8": version: 1.17.12 resolution: "@types/http-proxy@npm:1.17.12" dependencies: @@ -18208,6 +18241,19 @@ __metadata: languageName: node linkType: hard +"@types/react-dev-utils@npm:^9.0.12": + version: 9.0.12 + resolution: "@types/react-dev-utils@npm:9.0.12" + dependencies: + "@types/eslint": "*" + "@types/express": "*" + "@types/html-webpack-plugin": "*" + "@types/webpack": ^4 + "@types/webpack-dev-server": 3 + checksum: aef510f48d71823802477043d4899b6d831da36bda8d8a6c51f008032c0be47bb9b7f1b8443b9df816cbcd6eca3f02fe96d586e51bbeaec0288115089c384544 + languageName: node + linkType: hard + "@types/react-dom@npm:^17": version: 17.0.21 resolution: "@types/react-dom@npm:17.0.21" @@ -18356,6 +18402,13 @@ __metadata: languageName: node linkType: hard +"@types/relateurl@npm:*": + version: 0.2.30 + resolution: "@types/relateurl@npm:0.2.30" + checksum: 5d114cdd32963813cf2d5e3146f026124aa53d406cd4711596a1f0823b8a86c319dcb2e23510cd4a4adc5bd20daa00786369f0d7b611072d80ed638fa32d631b + languageName: node + linkType: hard + "@types/request@npm:^2.47.1": version: 2.48.8 resolution: "@types/request@npm:2.48.8" @@ -18531,6 +18584,13 @@ __metadata: languageName: node linkType: hard +"@types/source-list-map@npm:*": + version: 0.1.3 + resolution: "@types/source-list-map@npm:0.1.3" + checksum: a001098786d75b82eef00a6e4f1f7bb73f9f2fdf3e97333f8b741183c3fbf92db91af8bcfc410c7e6c23c4497523a3210f3eee2077b1be93595206f9baf3d909 + languageName: node + linkType: hard + "@types/ssh2-streams@npm:*": version: 0.1.8 resolution: "@types/ssh2-streams@npm:0.1.8" @@ -18612,6 +18672,13 @@ __metadata: languageName: node linkType: hard +"@types/tapable@npm:^1": + version: 1.0.9 + resolution: "@types/tapable@npm:1.0.9" + checksum: 12bc0a0a949334777bd58e6467447004b8f921b38e5d18d0f7fb84f7fe978c6e8df0b8ae2e4519ab10b1e038c24f3f89807c13ef5caa932095dbeace8d3938c6 + languageName: node + linkType: hard + "@types/tar@npm:^6.1.1": version: 6.1.6 resolution: "@types/tar@npm:6.1.6" @@ -18688,6 +18755,15 @@ __metadata: languageName: node linkType: hard +"@types/uglify-js@npm:*": + version: 3.17.2 + resolution: "@types/uglify-js@npm:3.17.2" + dependencies: + source-map: ^0.6.1 + checksum: 6cd3ae5befd2bf147c6a37e94b1454dc85d9102ec1a6ab242268f37fe84ba8373904db2ed56fa418233fd93366bde8e0bb4f49c137b92f165b45c957296ac28a + languageName: node + linkType: hard + "@types/unist@npm:*, @types/unist@npm:^2.0.0": version: 2.0.6 resolution: "@types/unist@npm:2.0.6" @@ -18726,6 +18802,19 @@ __metadata: languageName: node linkType: hard +"@types/webpack-dev-server@npm:3": + version: 3.11.6 + resolution: "@types/webpack-dev-server@npm:3.11.6" + dependencies: + "@types/connect-history-api-fallback": "*" + "@types/express": "*" + "@types/serve-static": "*" + "@types/webpack": ^4 + http-proxy-middleware: ^1.0.0 + checksum: ce801b43593aa84d228d170ec6c2397d40754f138635c5a792d4f85647a59d07250d533299af8c6ea4e83ca7f8ac5feaf7ec03f11ad886faac43f3460b5d3c6e + languageName: node + linkType: hard + "@types/webpack-env@npm:^1.15.2, @types/webpack-env@npm:^1.15.3": version: 1.18.2 resolution: "@types/webpack-env@npm:1.18.2" @@ -18733,6 +18822,31 @@ __metadata: languageName: node linkType: hard +"@types/webpack-sources@npm:*": + version: 3.2.1 + resolution: "@types/webpack-sources@npm:3.2.1" + dependencies: + "@types/node": "*" + "@types/source-list-map": "*" + source-map: ^0.7.3 + checksum: c347c91ac4d3244c3c47519a797d0e73569fbabadfd95ff4ece5b731a2790276b4b484c7038b4a561e025f508d292395f7a072db849120626d7f64040bd1127a + languageName: node + linkType: hard + +"@types/webpack@npm:^4": + version: 4.41.34 + resolution: "@types/webpack@npm:4.41.34" + dependencies: + "@types/node": "*" + "@types/tapable": ^1 + "@types/uglify-js": "*" + "@types/webpack-sources": "*" + anymatch: ^3.0.0 + source-map: ^0.6.0 + checksum: 10bdbd6cabafa58b7d4263bbf23134196c606034f84886ee9906c9951a62ffe9d52f0b74b084cd59ad0ef7521742e958ce9e0794fd7ed04e7ca6bc475455e04d + languageName: node + linkType: hard + "@types/webpack@npm:^5.28.0": version: 5.28.3 resolution: "@types/webpack@npm:5.28.3" @@ -19729,13 +19843,13 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": - version: 3.1.2 - resolution: "anymatch@npm:3.1.2" +"anymatch@npm:^3.0.0, anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" dependencies: normalize-path: ^3.0.0 picomatch: ^2.0.4 - checksum: 985163db2292fac9e5a1e072bf99f1b5baccf196e4de25a0b0b81865ebddeb3b3eb4480734ef0a2ac8c002845396b91aa89121f5b84f93981a4658164a9ec6e9 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 languageName: node linkType: hard @@ -28019,6 +28133,19 @@ __metadata: languageName: node linkType: hard +"http-proxy-middleware@npm:^1.0.0": + version: 1.3.1 + resolution: "http-proxy-middleware@npm:1.3.1" + dependencies: + "@types/http-proxy": ^1.17.5 + http-proxy: ^1.18.1 + is-glob: ^4.0.1 + is-plain-obj: ^3.0.0 + micromatch: ^4.0.2 + checksum: c6f0fe6d5aa58f3757084f1fad8109e7384fdea1b0a5c62f58ac767c42f367a18d3819bed8cbf8b5183f17e3e14fad04322f179c569629004da5fbec9b81a88a + languageName: node + linkType: hard + "http-proxy-middleware@npm:^2.0.0, http-proxy-middleware@npm:^2.0.3, http-proxy-middleware@npm:^2.0.6": version: 2.0.6 resolution: "http-proxy-middleware@npm:2.0.6" From e37e300d0486d4f248834920a46149b515e9b105 Mon Sep 17 00:00:00 2001 From: Morgan Bentell Date: Wed, 4 Oct 2023 14:44:35 +0200 Subject: [PATCH 5/7] remove dep that I didnt want anyway Signed-off-by: Morgan Bentell --- packages/techdocs-cli/package.json | 1 - yarn.lock | 133 +---------------------------- 2 files changed, 3 insertions(+), 131 deletions(-) diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 5846a8bcba..14120ab801 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -40,7 +40,6 @@ "@types/fs-extra": "^9.0.6", "@types/http-proxy": "^1.17.4", "@types/node": "^18.17.8", - "@types/react-dev-utils": "^9.0.12", "@types/serve-handler": "^6.1.0", "@types/webpack-env": "^1.15.3", "find-process": "^1.4.5", diff --git a/yarn.lock b/yarn.lock index e6125acd36..9a6722b533 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16709,7 +16709,6 @@ __metadata: "@types/fs-extra": ^9.0.6 "@types/http-proxy": ^1.17.4 "@types/node": ^18.17.8 - "@types/react-dev-utils": ^9.0.12 "@types/serve-handler": ^6.1.0 "@types/webpack-env": ^1.15.3 commander: ^9.1.0 @@ -17052,16 +17051,6 @@ __metadata: languageName: node linkType: hard -"@types/clean-css@npm:*": - version: 4.2.7 - resolution: "@types/clean-css@npm:4.2.7" - dependencies: - "@types/node": "*" - source-map: ^0.6.0 - checksum: c6f5fb7bd700d5fa488f0d2a4e7e6f5220c305d186976093b5bace2361590659dcd355c2bf54315840e9bf4423e41d90f303dd0762719b42d04af2089e1d7e49 - languageName: node - linkType: hard - "@types/codemirror@npm:^5.0.0": version: 5.60.10 resolution: "@types/codemirror@npm:5.60.10" @@ -17130,7 +17119,7 @@ __metadata: languageName: node linkType: hard -"@types/connect-history-api-fallback@npm:*, @types/connect-history-api-fallback@npm:^1.3.5": +"@types/connect-history-api-fallback@npm:^1.3.5": version: 1.5.1 resolution: "@types/connect-history-api-fallback@npm:1.5.1" dependencies: @@ -17549,28 +17538,6 @@ __metadata: languageName: node linkType: hard -"@types/html-minifier@npm:*": - version: 4.0.3 - resolution: "@types/html-minifier@npm:4.0.3" - dependencies: - "@types/clean-css": "*" - "@types/relateurl": "*" - "@types/uglify-js": "*" - checksum: f56c58e7e8dafeed00ee0817911f79c87fefd377fdd4802e5fb8ae32a7711b7a8e588ba7cf0b3a54918f4d8b4f962ff9c0ffb864ec35c71665ea135bfce53892 - languageName: node - linkType: hard - -"@types/html-webpack-plugin@npm:*": - version: 3.2.7 - resolution: "@types/html-webpack-plugin@npm:3.2.7" - dependencies: - "@types/html-minifier": "*" - "@types/tapable": ^1 - "@types/webpack": ^4 - checksum: 6a09dad5f4c9841fb6b1071a7a0f4ed0d1341c63ccd9ba975a9d3bd58ad601ec79993e5cbb09503a2bb5563fe4a95b5fdf82f48fed000b9516a34e8300b25b47 - languageName: node - linkType: hard - "@types/http-cache-semantics@npm:*": version: 4.0.0 resolution: "@types/http-cache-semantics@npm:4.0.0" @@ -17596,7 +17563,7 @@ __metadata: languageName: node linkType: hard -"@types/http-proxy@npm:*, @types/http-proxy@npm:^1.17.4, @types/http-proxy@npm:^1.17.5, @types/http-proxy@npm:^1.17.8": +"@types/http-proxy@npm:*, @types/http-proxy@npm:^1.17.4, @types/http-proxy@npm:^1.17.8": version: 1.17.12 resolution: "@types/http-proxy@npm:1.17.12" dependencies: @@ -18241,19 +18208,6 @@ __metadata: languageName: node linkType: hard -"@types/react-dev-utils@npm:^9.0.12": - version: 9.0.12 - resolution: "@types/react-dev-utils@npm:9.0.12" - dependencies: - "@types/eslint": "*" - "@types/express": "*" - "@types/html-webpack-plugin": "*" - "@types/webpack": ^4 - "@types/webpack-dev-server": 3 - checksum: aef510f48d71823802477043d4899b6d831da36bda8d8a6c51f008032c0be47bb9b7f1b8443b9df816cbcd6eca3f02fe96d586e51bbeaec0288115089c384544 - languageName: node - linkType: hard - "@types/react-dom@npm:^17": version: 17.0.21 resolution: "@types/react-dom@npm:17.0.21" @@ -18402,13 +18356,6 @@ __metadata: languageName: node linkType: hard -"@types/relateurl@npm:*": - version: 0.2.30 - resolution: "@types/relateurl@npm:0.2.30" - checksum: 5d114cdd32963813cf2d5e3146f026124aa53d406cd4711596a1f0823b8a86c319dcb2e23510cd4a4adc5bd20daa00786369f0d7b611072d80ed638fa32d631b - languageName: node - linkType: hard - "@types/request@npm:^2.47.1": version: 2.48.8 resolution: "@types/request@npm:2.48.8" @@ -18584,13 +18531,6 @@ __metadata: languageName: node linkType: hard -"@types/source-list-map@npm:*": - version: 0.1.3 - resolution: "@types/source-list-map@npm:0.1.3" - checksum: a001098786d75b82eef00a6e4f1f7bb73f9f2fdf3e97333f8b741183c3fbf92db91af8bcfc410c7e6c23c4497523a3210f3eee2077b1be93595206f9baf3d909 - languageName: node - linkType: hard - "@types/ssh2-streams@npm:*": version: 0.1.8 resolution: "@types/ssh2-streams@npm:0.1.8" @@ -18672,13 +18612,6 @@ __metadata: languageName: node linkType: hard -"@types/tapable@npm:^1": - version: 1.0.9 - resolution: "@types/tapable@npm:1.0.9" - checksum: 12bc0a0a949334777bd58e6467447004b8f921b38e5d18d0f7fb84f7fe978c6e8df0b8ae2e4519ab10b1e038c24f3f89807c13ef5caa932095dbeace8d3938c6 - languageName: node - linkType: hard - "@types/tar@npm:^6.1.1": version: 6.1.6 resolution: "@types/tar@npm:6.1.6" @@ -18755,15 +18688,6 @@ __metadata: languageName: node linkType: hard -"@types/uglify-js@npm:*": - version: 3.17.2 - resolution: "@types/uglify-js@npm:3.17.2" - dependencies: - source-map: ^0.6.1 - checksum: 6cd3ae5befd2bf147c6a37e94b1454dc85d9102ec1a6ab242268f37fe84ba8373904db2ed56fa418233fd93366bde8e0bb4f49c137b92f165b45c957296ac28a - languageName: node - linkType: hard - "@types/unist@npm:*, @types/unist@npm:^2.0.0": version: 2.0.6 resolution: "@types/unist@npm:2.0.6" @@ -18802,19 +18726,6 @@ __metadata: languageName: node linkType: hard -"@types/webpack-dev-server@npm:3": - version: 3.11.6 - resolution: "@types/webpack-dev-server@npm:3.11.6" - dependencies: - "@types/connect-history-api-fallback": "*" - "@types/express": "*" - "@types/serve-static": "*" - "@types/webpack": ^4 - http-proxy-middleware: ^1.0.0 - checksum: ce801b43593aa84d228d170ec6c2397d40754f138635c5a792d4f85647a59d07250d533299af8c6ea4e83ca7f8ac5feaf7ec03f11ad886faac43f3460b5d3c6e - languageName: node - linkType: hard - "@types/webpack-env@npm:^1.15.2, @types/webpack-env@npm:^1.15.3": version: 1.18.2 resolution: "@types/webpack-env@npm:1.18.2" @@ -18822,31 +18733,6 @@ __metadata: languageName: node linkType: hard -"@types/webpack-sources@npm:*": - version: 3.2.1 - resolution: "@types/webpack-sources@npm:3.2.1" - dependencies: - "@types/node": "*" - "@types/source-list-map": "*" - source-map: ^0.7.3 - checksum: c347c91ac4d3244c3c47519a797d0e73569fbabadfd95ff4ece5b731a2790276b4b484c7038b4a561e025f508d292395f7a072db849120626d7f64040bd1127a - languageName: node - linkType: hard - -"@types/webpack@npm:^4": - version: 4.41.34 - resolution: "@types/webpack@npm:4.41.34" - dependencies: - "@types/node": "*" - "@types/tapable": ^1 - "@types/uglify-js": "*" - "@types/webpack-sources": "*" - anymatch: ^3.0.0 - source-map: ^0.6.0 - checksum: 10bdbd6cabafa58b7d4263bbf23134196c606034f84886ee9906c9951a62ffe9d52f0b74b084cd59ad0ef7521742e958ce9e0794fd7ed04e7ca6bc475455e04d - languageName: node - linkType: hard - "@types/webpack@npm:^5.28.0": version: 5.28.3 resolution: "@types/webpack@npm:5.28.3" @@ -19843,7 +19729,7 @@ __metadata: languageName: node linkType: hard -"anymatch@npm:^3.0.0, anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: @@ -28133,19 +28019,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-middleware@npm:^1.0.0": - version: 1.3.1 - resolution: "http-proxy-middleware@npm:1.3.1" - dependencies: - "@types/http-proxy": ^1.17.5 - http-proxy: ^1.18.1 - is-glob: ^4.0.1 - is-plain-obj: ^3.0.0 - micromatch: ^4.0.2 - checksum: c6f0fe6d5aa58f3757084f1fad8109e7384fdea1b0a5c62f58ac767c42f367a18d3819bed8cbf8b5183f17e3e14fad04322f179c569629004da5fbec9b81a88a - languageName: node - linkType: hard - "http-proxy-middleware@npm:^2.0.0, http-proxy-middleware@npm:^2.0.3, http-proxy-middleware@npm:^2.0.6": version: 2.0.6 resolution: "http-proxy-middleware@npm:2.0.6" From 55bd8c76d1542832f17f39f4304845d5c8c80faf Mon Sep 17 00:00:00 2001 From: Morgan Bentell Date: Fri, 6 Oct 2023 11:21:08 +0200 Subject: [PATCH 6/7] update after rebase Signed-off-by: Morgan Bentell --- .../techdocs-node/src/stages/generate/helpers.test.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/techdocs-node/src/stages/generate/helpers.test.ts b/plugins/techdocs-node/src/stages/generate/helpers.test.ts index 5556f8aae4..738bb6fc46 100644 --- a/plugins/techdocs-node/src/stages/generate/helpers.test.ts +++ b/plugins/techdocs-node/src/stages/generate/helpers.test.ts @@ -601,15 +601,16 @@ describe('helpers', () => { it('returns expected content when custom file is specified', async () => { const options = { mkdocsConfigFileName: 'another-name.yaml' }; - mockDIr.setContent({'mkdocs.yml': mkdocsYml}) + mockDir.setContent({ 'another-name.yaml': mkdocsYml }); const { path: mkdocsPath, content, configIsTemporary, - } = await getMkdocsYml(inputDir, options); + } = await getMkdocsYml(mockDir.path, options); + + expect(mkdocsPath).toBe(mockDir.resolve('another-name.yaml')); - expect(mkdocsPath).toBe(key); expect(content).toBe(mkdocsYml.toString()); expect(configIsTemporary).toBe(false); }); @@ -618,8 +619,7 @@ describe('helpers', () => { const options = { mkdocsConfigFileName: 'another-name.yaml' }; mockDir.setContent({ 'mkdocs.yml': mkdocsDefaultYml }); - - await expect(getMkdocsYml(inputDir, options)).rejects.toThrow( + await expect(getMkdocsYml(mockDir.path, options)).rejects.toThrow( /The specified file .* does not exist/, ); }); From c65db44f006311a04feb33f328778ed148c607e7 Mon Sep 17 00:00:00 2001 From: Morgan Bentell Date: Fri, 6 Oct 2023 12:12:34 +0200 Subject: [PATCH 7/7] restore lockfile to master version Signed-off-by: Morgan Bentell --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9a6722b533..3653ddc25d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17120,12 +17120,12 @@ __metadata: linkType: hard "@types/connect-history-api-fallback@npm:^1.3.5": - version: 1.5.1 - resolution: "@types/connect-history-api-fallback@npm:1.5.1" + version: 1.3.5 + resolution: "@types/connect-history-api-fallback@npm:1.3.5" dependencies: "@types/express-serve-static-core": "*" "@types/node": "*" - checksum: bc5e46663300eba56eaf8ef242156256e2bdadc52bb7d6543f4b37f2945b6a810901c245711f8321fce7d94c7b588b308a86519f3e1f87a80eb87841d808dbdc + checksum: 464d06e5ab00f113fa89978633d5eb00d225aeb4ebbadc07f6f3bc337aa7cbfcd74957b2a539d6d47f2e128e956a17819973ec7ae62ade2e16e367a6c38b8d3a languageName: node linkType: hard @@ -19730,12 +19730,12 @@ __metadata: linkType: hard "anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" + version: 3.1.2 + resolution: "anymatch@npm:3.1.2" dependencies: normalize-path: ^3.0.0 picomatch: ^2.0.4 - checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + checksum: 985163db2292fac9e5a1e072bf99f1b5baccf196e4de25a0b0b81865ebddeb3b3eb4480734ef0a2ac8c002845396b91aa89121f5b84f93981a4658164a9ec6e9 languageName: node linkType: hard