mirror of
https://github.com/cypress-io/cypress.git
synced 2026-05-02 21:10:47 -05:00
feat: rollup-dev-server for CT (#15215)
This commit is contained in:
+13
@@ -1055,6 +1055,16 @@ jobs:
|
||||
name: Run tests
|
||||
command: yarn workspace @cypress/webpack-dev-server test
|
||||
|
||||
npm-rollup-dev-server:
|
||||
<<: *defaults
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: ~/
|
||||
- check-conditional-ci
|
||||
- run:
|
||||
name: Run tests
|
||||
command: yarn workspace @cypress/rollup-dev-server test
|
||||
|
||||
npm-webpack-batteries-included-preprocessor:
|
||||
<<: *defaults
|
||||
steps:
|
||||
@@ -1734,6 +1744,9 @@ linux-workflow: &linux-workflow
|
||||
- npm-webpack-dev-server:
|
||||
requires:
|
||||
- build
|
||||
- npm-rollup-dev-server:
|
||||
requires:
|
||||
- build
|
||||
- npm-webpack-preprocessor:
|
||||
requires:
|
||||
- build
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"plugins": [
|
||||
"cypress",
|
||||
"@cypress/dev"
|
||||
],
|
||||
"extends": [
|
||||
"plugin:@cypress/dev/general",
|
||||
"plugin:@cypress/dev/tests",
|
||||
"plugin:@cypress/dev/react"
|
||||
],
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"env": {
|
||||
"cypress/globals": true
|
||||
},
|
||||
"globals": {
|
||||
"jest": "readonly"
|
||||
},
|
||||
"rules": {
|
||||
"no-console": "off",
|
||||
"mocha/no-global-tests": "off",
|
||||
"@typescript-eslint/no-unused-vars": "off",
|
||||
"react/jsx-filename-extension": [
|
||||
"warn",
|
||||
{
|
||||
"extensions": [
|
||||
".js",
|
||||
".jsx",
|
||||
".tsx"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"lib/*"
|
||||
],
|
||||
"rules": {
|
||||
"no-console": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"**/*.json"
|
||||
],
|
||||
"rules": {
|
||||
"quotes": "off",
|
||||
"comma-dangle": "off"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
# 🍣 + 🌲 Cypress Component Testing w/ Rollup
|
||||
|
||||
> **Note** this package is not meant to be used outside of cypress component testing.
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"pluginsFile": "cypress/plugins.js",
|
||||
"testFiles": "**/*.spec.*",
|
||||
"componentFolder": "cypress/components",
|
||||
"supportFile": "cypress/support/support.js",
|
||||
"video": false
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// import { mount } from '@cypress/vue'
|
||||
// Currently error: Vue is not defined.
|
||||
|
||||
xdescribe('Vue TODO: make this work', () => {
|
||||
it('mounts', () => {
|
||||
const mount = (comp) => {}
|
||||
const App = {
|
||||
template: `<div>Hello Vue</div>`,
|
||||
}
|
||||
|
||||
mount(App)
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,3 @@
|
||||
export const someModule = () => {
|
||||
return 'This is a module'
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
describe('Support files', () => {
|
||||
it('can load a support file', () => {
|
||||
const $body = Cypress.$('body')
|
||||
|
||||
// Visual cue to help debug
|
||||
const $supportNode = Cypress.$(`<h1>Support file hasn't been loaded 😿</h1>`)
|
||||
|
||||
$body.append($supportNode)
|
||||
|
||||
// @ts-ignore
|
||||
expect(window.supportFileWasLoaded).to.be.true
|
||||
$supportNode.text('Support file was loaded! ⚡️')
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
const { startDevServer } = require('@cypress/rollup-dev-server')
|
||||
const rollupConfig = require('../rollup.config.js').default
|
||||
|
||||
module.exports = (on, config) => {
|
||||
on('dev-server:start', async (options) => {
|
||||
return startDevServer({ options, rollupConfig })
|
||||
})
|
||||
|
||||
return config
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
before(() => {
|
||||
window.supportFileWasLoaded = true
|
||||
})
|
||||
@@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>Components App</title>
|
||||
<script>
|
||||
function appendTargetIfNotExists(id, tag = 'div', parent = document.body) {
|
||||
let node = document.getElementById(id)
|
||||
|
||||
if (!node) {
|
||||
node = document.createElement(tag)
|
||||
node.setAttribute('id', id)
|
||||
parent.appendChild(node)
|
||||
}
|
||||
|
||||
node.innerHTML = ''
|
||||
|
||||
return node
|
||||
}
|
||||
|
||||
const Cypress = window.Cypress = parent.Cypress
|
||||
|
||||
const importsToLoad = [
|
||||
() => import('{{{specPath}}}'),
|
||||
() => {
|
||||
{{{supportFile}}}
|
||||
}
|
||||
]
|
||||
|
||||
Cypress.onSpecWindow(window, importsToLoad)
|
||||
Cypress.action('app:window:before:load', window)
|
||||
|
||||
beforeEach(() => {
|
||||
const root = appendTargetIfNotExists('__cy_root')
|
||||
|
||||
root.appendChild(appendTargetIfNotExists('__cy_app'))
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
module.exports = require('./dist')
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "@cypress/rollup-dev-server",
|
||||
"version": "0.0.0-development",
|
||||
"description": "Launches Rollup Dev Server for Component Testing",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"build-prod": "tsc",
|
||||
"cy:open": "node ../../scripts/start.js --component-testing --project ${PWD}",
|
||||
"cy:run": "node ../../scripts/cypress.js run-ct --project ${PWD}",
|
||||
"test": "yarn cy:run",
|
||||
"watch": "tsc -w"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": "4.3.2",
|
||||
"mustache": "4.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cypress/vue": "0.0.0-development",
|
||||
"@rollup/plugin-typescript": "8.2.0",
|
||||
"@types/mustache": "4.1.1",
|
||||
"nollup": "0.15.2",
|
||||
"rollup": "2.39.1",
|
||||
"vue": "2.6.12"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"rollup": ">= 2"
|
||||
},
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/cypress-io/cypress.git"
|
||||
},
|
||||
"homepage": "https://github.com/cypress-io/cypress/tree/master/npm/rollup-dev-server#readme",
|
||||
"bugs": "https://github.com/cypress-io/cypress/issues/new?template=1-bug-report.md",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import tsPlugin from '@rollup/plugin-typescript'
|
||||
import resolvePlugin from '@rollup/plugin-node-resolve'
|
||||
import commonjsPlugin from '@rollup/plugin-commonjs'
|
||||
|
||||
export default {
|
||||
plugins: [
|
||||
resolvePlugin(),
|
||||
commonjsPlugin(),
|
||||
tsPlugin({
|
||||
module: 'esnext',
|
||||
}),
|
||||
],
|
||||
output: {
|
||||
format: 'es',
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
import { EventEmitter } from 'events'
|
||||
import { debug as debugFn } from 'debug'
|
||||
import { start as createDevServer } from './startServer'
|
||||
import { Server } from 'http'
|
||||
import { RollupOptions } from 'rollup'
|
||||
const debug = debugFn('cypress:rollup-dev-server:rollup')
|
||||
|
||||
interface Options {
|
||||
specs: Cypress.Cypress['spec'][] // Why isn't this working? It works for webpack-dev-server
|
||||
config: Record<string, string>
|
||||
devServerEvents: EventEmitter
|
||||
[key: string]: unknown
|
||||
}
|
||||
|
||||
export interface StartDevServer {
|
||||
/* this is the Cypress options object */
|
||||
options: Options
|
||||
rollupConfig?: RollupOptions // TODO: user's rollup configuration.
|
||||
}
|
||||
|
||||
export interface ResolvedDevServerConfig {
|
||||
port: number
|
||||
server: Server
|
||||
}
|
||||
|
||||
export async function startDevServer (startDevServerArgs: StartDevServer): Promise<ResolvedDevServerConfig> {
|
||||
const { server, port } = await createDevServer(startDevServerArgs)
|
||||
|
||||
return new Promise(async (resolve) => {
|
||||
server.listen(port, 'localhost', () => {
|
||||
resolve({ port, server })
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
import { resolve } from 'path'
|
||||
import { readFileSync } from 'fs'
|
||||
import { render } from 'mustache'
|
||||
import { Express } from 'express'
|
||||
|
||||
const indexHtmlPath = resolve(__dirname, '../index-template.html')
|
||||
const readIndexHtml = () => readFileSync(indexHtmlPath).toString()
|
||||
|
||||
/**
|
||||
* Rormat the requested spec file.
|
||||
* Nollup writes everything to a single directory (eg /dist)
|
||||
* All outputted files are *.js.
|
||||
* RunnerCt requests specs using the original filename including extension.
|
||||
*
|
||||
* Example usage:
|
||||
* formatSpecName('/cypress/component/foo.spec.tsx') //=> 'foo.spec.js'
|
||||
*/
|
||||
function formatSpecName (filename: string) {
|
||||
const split = filename.split('/')
|
||||
const name = split[split.length - 1]
|
||||
const pos = name.lastIndexOf('.')
|
||||
const newName = `${name.substr(0, pos < 0 ? name.length : pos)}.js`
|
||||
|
||||
return `/${newName}`
|
||||
}
|
||||
|
||||
function handleIndex (indexHtml: string, projectRoot: string, supportFilePath: string, cypressSpecPath: string) {
|
||||
const specPath = `/${cypressSpecPath}`
|
||||
|
||||
console.log(supportFilePath)
|
||||
const supportFile = readFileSync(supportFilePath).toString()
|
||||
|
||||
return render(indexHtml, {
|
||||
supportFile,
|
||||
specPath: formatSpecName(specPath),
|
||||
})
|
||||
}
|
||||
|
||||
export const makeHtmlPlugin = (
|
||||
projectRoot: string,
|
||||
supportFilePath: string,
|
||||
server: Express,
|
||||
) => {
|
||||
const indexHtml = readIndexHtml()
|
||||
|
||||
server.use('/index.html', (req, res) => {
|
||||
const html = handleIndex(
|
||||
indexHtml,
|
||||
projectRoot,
|
||||
supportFilePath,
|
||||
req.headers.__cypress_spec_path as string,
|
||||
)
|
||||
|
||||
res.end(html)
|
||||
})
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
import { StartDevServer } from '.'
|
||||
import { makeHtmlPlugin } from './makeHtmlPlugin'
|
||||
import http from 'http'
|
||||
import { resolve } from 'path'
|
||||
import NollupDevMiddleware from 'nollup/lib/dev-middleware'
|
||||
import express from 'express'
|
||||
import { RollupOptions, Plugin } from 'rollup'
|
||||
|
||||
/**
|
||||
* Inject HMR runtime into each bundle, since Nollup
|
||||
* does not do this.
|
||||
*/
|
||||
function injectHmrPlugin (): Plugin {
|
||||
return {
|
||||
name: 'MyPlugin',
|
||||
transform: (code) => {
|
||||
return {
|
||||
// inject HMR runtime
|
||||
// TODO: see if this ruins the source map
|
||||
code: `
|
||||
if (module) {
|
||||
module.hot.accept(() => {
|
||||
window.location.reload()
|
||||
})
|
||||
}
|
||||
|
||||
${code}
|
||||
`,
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
interface NollupDevServer {
|
||||
port: number
|
||||
server: http.Server
|
||||
}
|
||||
|
||||
export async function start (devServerOptions: StartDevServer): Promise<NollupDevServer> {
|
||||
const config = devServerOptions.options.specs
|
||||
.map<RollupOptions>((spec) => {
|
||||
return {
|
||||
...devServerOptions.rollupConfig,
|
||||
input: spec.absolute,
|
||||
plugins: (devServerOptions.rollupConfig.plugins || []).concat(
|
||||
injectHmrPlugin(),
|
||||
),
|
||||
}
|
||||
})
|
||||
|
||||
const app = express()
|
||||
const server = http.createServer(app)
|
||||
const contentBase = resolve(__dirname, devServerOptions.options.config.projectRoot)
|
||||
/* random port between 3000 and 23000 */
|
||||
const port = parseInt(((Math.random() * 20000) + 3000).toFixed(0), 10)
|
||||
|
||||
const nollup = NollupDevMiddleware(app, config, {
|
||||
contentBase,
|
||||
port,
|
||||
publicPath: '/',
|
||||
hot: true,
|
||||
}, server)
|
||||
|
||||
app.use(nollup)
|
||||
|
||||
makeHtmlPlugin(
|
||||
devServerOptions.options.config.projectRoot,
|
||||
devServerOptions.options.config.supportFile,
|
||||
app,
|
||||
)
|
||||
|
||||
return {
|
||||
port,
|
||||
server,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
/* Basic Options */
|
||||
"target": "es2015" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */,
|
||||
"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
|
||||
"skipLibCheck": true,
|
||||
"lib": [
|
||||
"es2015",
|
||||
"dom"
|
||||
] /* Specify library files to be included in the compilation: */,
|
||||
"allowJs": true /* Allow javascript files to be compiled. */,
|
||||
// "checkJs": true, /* Report errors in .js files. */
|
||||
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
|
||||
"declaration": true /* Generates corresponding '.d.ts' file. */,
|
||||
// "sourceMap": true, /* Generates corresponding '.map' file. */
|
||||
// "outFile": "./", /* Concatenate and emit output to single file. */
|
||||
"outDir": "dist" /* Redirect output structure to the directory. */,
|
||||
// "rootDir": "src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
|
||||
// "removeComments": true, /* Do not emit comments to output. */
|
||||
// "noEmit": true, /* Do not emit outputs. */
|
||||
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
|
||||
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
|
||||
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
|
||||
|
||||
/* Strict Type-Checking Options */
|
||||
"strict": false /* Enable all strict type-checking options. */,
|
||||
"noImplicitAny": false,
|
||||
|
||||
/* Module Resolution Options */
|
||||
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
|
||||
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
|
||||
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
|
||||
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
|
||||
// "typeRoots": [], /* List of folders to include type definitions from. */
|
||||
"types": ["cypress"] /* Type declaration files to be included in compilation. */,
|
||||
"allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
|
||||
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
||||
|
||||
/* Source Map Options */
|
||||
// "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
|
||||
// "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */
|
||||
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
|
||||
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
|
||||
|
||||
/* Experimental Options */
|
||||
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
||||
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
|
||||
"esModuleInterop": true
|
||||
},
|
||||
"include": ["src"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
||||
@@ -4818,6 +4818,14 @@
|
||||
is-module "^1.0.0"
|
||||
resolve "^1.19.0"
|
||||
|
||||
"@rollup/plugin-typescript@8.2.0":
|
||||
version "8.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.2.0.tgz#3e2059cbcae916785d8d7bf07816210c829f817c"
|
||||
integrity sha512-5DyVsb7L+ehLfNPu/nat8Gq3uJGzku4bMFPt90XahtgiSBf7z9YKPLqFUJKMT41W/mJ98SVGDPOhzikGrr/Lhg==
|
||||
dependencies:
|
||||
"@rollup/pluginutils" "^3.1.0"
|
||||
resolve "^1.17.0"
|
||||
|
||||
"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
|
||||
@@ -6942,6 +6950,11 @@ acorn@^7.0.0, acorn@^7.1.1, acorn@^7.2.0, acorn@^7.4.0:
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
|
||||
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
||||
|
||||
acorn@^8.0.4:
|
||||
version "8.0.5"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz#a3bfb872a74a6a7f661bc81b9849d9cac12601b7"
|
||||
integrity sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg==
|
||||
|
||||
add-dom-event-listener@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310"
|
||||
@@ -10830,6 +10843,21 @@ chokidar@^1.0.1:
|
||||
optionalDependencies:
|
||||
fsevents "^1.0.0"
|
||||
|
||||
chokidar@^3.0.0:
|
||||
version "3.5.1"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
|
||||
integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
|
||||
dependencies:
|
||||
anymatch "~3.1.1"
|
||||
braces "~3.0.2"
|
||||
glob-parent "~5.1.0"
|
||||
is-binary-path "~2.1.0"
|
||||
is-glob "~4.0.1"
|
||||
normalize-path "~3.0.0"
|
||||
readdirp "~3.5.0"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.1"
|
||||
|
||||
chownr@^1.1.1, chownr@^1.1.2, chownr@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
|
||||
@@ -13000,7 +13028,7 @@ debug@4.3.2:
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
|
||||
debug@^3.0.0, debug@^3.0.1, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
|
||||
version "3.2.7"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
||||
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
|
||||
@@ -14616,7 +14644,7 @@ es6-promise@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
|
||||
integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=
|
||||
|
||||
es6-promise@^4.0.3:
|
||||
es6-promise@^4.0.3, es6-promise@^4.1.1:
|
||||
version "4.2.8"
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
|
||||
integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
|
||||
@@ -15641,6 +15669,20 @@ expect@^26.6.2:
|
||||
jest-message-util "^26.6.2"
|
||||
jest-regex-util "^26.0.0"
|
||||
|
||||
express-history-api-fallback@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/express-history-api-fallback/-/express-history-api-fallback-2.2.1.tgz#3a2ad27f7bebc90fc533d110d7c6d83097bcd057"
|
||||
integrity sha1-OirSf3vryQ/FM9EQ18bYMJe80Fc=
|
||||
|
||||
express-http-proxy@^1.5.1:
|
||||
version "1.6.2"
|
||||
resolved "https://registry.yarnpkg.com/express-http-proxy/-/express-http-proxy-1.6.2.tgz#e87152e45958cee4b91da2fdaa20a1ffd581204a"
|
||||
integrity sha512-soP7UXySFdLbeeMYL1foBkEoZj6HELq9BDAOCr1sLRpqjPaFruN5o6+bZeC+7U4USWIl4JMKEiIvTeKJ2WQdlQ==
|
||||
dependencies:
|
||||
debug "^3.0.1"
|
||||
es6-promise "^4.1.1"
|
||||
raw-body "^2.3.0"
|
||||
|
||||
express-session@1.16.1:
|
||||
version "1.16.1"
|
||||
resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.16.1.tgz#251ff9776c59382301de6c8c33411af357ed439c"
|
||||
@@ -15660,6 +15702,13 @@ express-useragent@1.0.12:
|
||||
resolved "https://registry.yarnpkg.com/express-useragent/-/express-useragent-1.0.12.tgz#5bae0109a925ec9b35417f31a4e8ad13f191253a"
|
||||
integrity sha1-W64BCakl7Js1QX8xpOitE/GRJTo=
|
||||
|
||||
express-ws@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/express-ws/-/express-ws-4.0.0.tgz#dabd8dc974516418902a41fe6e30ed949b4d36c4"
|
||||
integrity sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==
|
||||
dependencies:
|
||||
ws "^5.2.0"
|
||||
|
||||
express@4.17.1, express@^4.16.2, express@^4.16.3, express@^4.17.1:
|
||||
version "4.17.1"
|
||||
resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
|
||||
@@ -18526,6 +18575,17 @@ http-errors@1.7.2:
|
||||
statuses ">= 1.5.0 < 2"
|
||||
toidentifier "1.0.0"
|
||||
|
||||
http-errors@1.7.3, http-errors@~1.7.0, http-errors@~1.7.2:
|
||||
version "1.7.3"
|
||||
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
|
||||
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
|
||||
dependencies:
|
||||
depd "~1.1.2"
|
||||
inherits "2.0.4"
|
||||
setprototypeof "1.1.1"
|
||||
statuses ">= 1.5.0 < 2"
|
||||
toidentifier "1.0.0"
|
||||
|
||||
http-errors@^1.6.3:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
|
||||
@@ -18547,17 +18607,6 @@ http-errors@~1.6.2:
|
||||
setprototypeof "1.1.0"
|
||||
statuses ">= 1.4.0 < 2"
|
||||
|
||||
http-errors@~1.7.0, http-errors@~1.7.2:
|
||||
version "1.7.3"
|
||||
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
|
||||
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
|
||||
dependencies:
|
||||
depd "~1.1.2"
|
||||
inherits "2.0.4"
|
||||
setprototypeof "1.1.1"
|
||||
statuses ">= 1.5.0 < 2"
|
||||
toidentifier "1.0.0"
|
||||
|
||||
http-mitm-proxy@0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/http-mitm-proxy/-/http-mitm-proxy-0.7.0.tgz#82933137ae1c06713961afe50f38ca84cf80bb0c"
|
||||
@@ -23065,6 +23114,11 @@ mime-db@1.45.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0:
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
|
||||
integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
|
||||
|
||||
mime-db@1.46.0:
|
||||
version "1.46.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"
|
||||
integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==
|
||||
|
||||
mime-db@~1.33.0:
|
||||
version "1.33.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
|
||||
@@ -23098,6 +23152,13 @@ mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.21, mime-types@~2.1.17,
|
||||
dependencies:
|
||||
mime-db "1.45.0"
|
||||
|
||||
mime-types@^2.1.24:
|
||||
version "2.1.29"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2"
|
||||
integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==
|
||||
dependencies:
|
||||
mime-db "1.46.0"
|
||||
|
||||
mime@1.6.0, mime@^1.2.11, mime@^1.3.4, mime@^1.4.1, mime@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
||||
@@ -24509,6 +24570,24 @@ node-uuid@^1.4.1:
|
||||
resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907"
|
||||
integrity sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=
|
||||
|
||||
nollup@0.15.2:
|
||||
version "0.15.2"
|
||||
resolved "https://registry.yarnpkg.com/nollup/-/nollup-0.15.2.tgz#245f3711ee2fe43f67446e568aa9f5c4de89563a"
|
||||
integrity sha512-QZR7GH0msnUpLt+R3h3XOucJoxzgrax9eq+ddfs7Ck2gW1ETKyktdGjOohtRd8xr6sie6/IUHqq3J2TaMJLvEA==
|
||||
dependencies:
|
||||
"@rollup/pluginutils" "^3.0.8"
|
||||
acorn "^8.0.4"
|
||||
chokidar "^3.0.0"
|
||||
convert-source-map "^1.5.1"
|
||||
express "^4.16.3"
|
||||
express-history-api-fallback "^2.2.1"
|
||||
express-http-proxy "^1.5.1"
|
||||
express-ws "^4.0.0"
|
||||
magic-string "^0.25.7"
|
||||
mime-types "^2.1.24"
|
||||
source-map "^0.5.6"
|
||||
source-map-fast "npm:source-map@0.7.3"
|
||||
|
||||
nomnom@^1.5.x, nomnom@^1.8.1:
|
||||
version "1.8.1"
|
||||
resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
|
||||
@@ -27986,6 +28065,16 @@ raw-body@2.4.0:
|
||||
iconv-lite "0.4.24"
|
||||
unpipe "1.0.0"
|
||||
|
||||
raw-body@^2.3.0:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
|
||||
integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
|
||||
dependencies:
|
||||
bytes "3.1.0"
|
||||
http-errors "1.7.3"
|
||||
iconv-lite "0.4.24"
|
||||
unpipe "1.0.0"
|
||||
|
||||
raw-body@~1.1.0:
|
||||
version "1.1.7"
|
||||
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425"
|
||||
@@ -29804,6 +29893,13 @@ rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.8.2:
|
||||
dependencies:
|
||||
estree-walker "^0.6.1"
|
||||
|
||||
rollup@2.39.1:
|
||||
version "2.39.1"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.39.1.tgz#7afd4cefd8a332c5102a8063d301fde1f31a9173"
|
||||
integrity sha512-9rfr0Z6j+vE+eayfNVFr1KZ+k+jiUl2+0e4quZafy1x6SFCjzFspfRSO2ZZQeWeX9noeDTUDgg6eCENiEPFvQg==
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.1"
|
||||
|
||||
rollup@^2.38.5:
|
||||
version "2.39.0"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.39.0.tgz#be4f98c9e421793a8fec82c854fb567c35e22ab6"
|
||||
@@ -31178,6 +31274,11 @@ source-list-map@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
|
||||
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
|
||||
|
||||
"source-map-fast@npm:source-map@0.7.3", source-map@0.7.3, source-map@^0.7.3:
|
||||
version "0.7.3"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
||||
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
||||
|
||||
source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
|
||||
version "0.5.3"
|
||||
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
|
||||
@@ -31228,11 +31329,6 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
source-map@0.7.3, source-map@^0.7.3:
|
||||
version "0.7.3"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
||||
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
||||
|
||||
source-map@0.8.0-beta.0:
|
||||
version "0.8.0-beta.0"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11"
|
||||
|
||||
Reference in New Issue
Block a user