const fs = require('fs') const fse = require('fs-extra') const crypto = require('crypto') const swaggerUiAssetPath = require('swagger-ui-dist').getAbsoluteFSPath() const resolve = require('path').resolve fse.emptyDirSync(resolve('./static')) // since the original swagger-ui-dist folder contains non UI files const filesToCopy = ['favicon-16x16.png', 'favicon-32x32.png', 'index.html', 'oauth2-redirect.html', 'swagger-ui-bundle.js', 'swagger-ui-bundle.js.map', 'swagger-ui-standalone-preset.js', 'swagger-ui-standalone-preset.js.map', 'swagger-ui.css', 'swagger-ui.css.map', 'swagger-ui.js', 'swagger-ui.js.map'] filesToCopy.forEach(filename => { fse.copySync(`${swaggerUiAssetPath}/${filename}`, resolve(`./static/${filename}`)) }) const newIndex = fs.readFileSync(resolve('./static/index.html'), 'utf8') .replace(/ `) fse.writeFileSync(resolve('./static/index.html'), newIndex) const sha = { script: [], style: [] } function computeCSPHashes (path) { const scriptRegex = /