diff --git a/frontend/src/mathjax-adapter.ts b/frontend/src/mathjax-adapter.ts index 1ccafb6..40c4919 100644 --- a/frontend/src/mathjax-adapter.ts +++ b/frontend/src/mathjax-adapter.ts @@ -1,6 +1,5 @@ import {LitElement, html} from 'lit-element'; import {TemplateResult} from "lit-html"; - declare let window: { MathJax: { typesetShadow: (arg0: ShadowRoot | null, arg1: () => void) => void, @@ -10,21 +9,8 @@ declare let window: { }; export abstract class MathjaxAdapter extends LitElement { - protected execTypeset() { - if (window.MathJax !== undefined) { - window.MathJax.typesetShadow(this.shadowRoot, () => this.calculateSteps()); - } - } - - - render(): TemplateResult { - return html` -
-
`; - } - - connectedCallback() { - super.connectedCallback(); + constructor() { + super(); if (window.MathJax === undefined || !window.MathJax.isInitialized) { window.addEventListener('mathjax-initialized', () => this.execTypeset()); } else { @@ -32,6 +18,20 @@ export abstract class MathjaxAdapter extends LitElement { } } + protected execTypeset() { + if (window.MathJax !== undefined) { + window.MathJax.typesetShadow(this.shadowRoot, () => this.calculateSteps()); + } + } + // @ts-ignore + + + render(): TemplateResult { + return html` +
+
`; + } + protected abstract showStep(n: number): void; protected abstract calculateSteps(): void; diff --git a/frontend/src/mathjax-setup.js b/frontend/src/mathjax-setup.js new file mode 100644 index 0000000..e12a355 --- /dev/null +++ b/frontend/src/mathjax-setup.js @@ -0,0 +1,114 @@ +window.MathJax = { + loader: {load: ['[tex]/bussproofs', '[tex]/html', '[tex]/action']}, + tex: { + packages: {'[+]': ['bussproofs', 'html', 'action']}, + inlineMath: [['$', '$'], ['\\(', '\\)']] + }, + startup: { + ready: () => { + const mathjax = MathJax._.mathjax.mathjax; + const HTMLAdaptor = MathJax._.adaptors.HTMLAdaptor.HTMLAdaptor; + const HTMLHandler = MathJax._.handlers.html.HTMLHandler.HTMLHandler; + const AbstractHandler = MathJax._.core.Handler.AbstractHandler.prototype; + const startup = MathJax.startup; + + // + // Extend HTMLAdaptor to handle shadowDOM as the document + // + class ShadowAdaptor extends HTMLAdaptor { + create(kind, ns) { + const document = (this.document.createElement ? this.document : this.window.document); + return (ns ? + document.createElementNS(ns, kind) : + document.createElement(kind)); + } + + text(text) { + const document = (this.document.createTextNode ? this.document : this.window.document); + return document.createTextNode(text); + } + + head(doc) { + return doc.head || (doc.getElementById("mjx-document") || {}).firstChild || doc; + } + + body(doc) { + return doc.body || (doc.getElementById("mjx-document") || {}).lastChild || doc; + } + + root(doc) { + return doc.documentElement || doc.getElementById("mjx-document") || doc; + } + } + + // + // Extend HTMLHandler to handle shadowDOM as document + // + class ShadowHandler extends HTMLHandler { + create(document, options) { + const adaptor = this.adaptor; + if (typeof (document) === 'string') { + document = adaptor.parse(document, 'text/html'); + } else if ((document instanceof adaptor.window.HTMLElement || + document instanceof adaptor.window.DocumentFragment) && + !(document instanceof window.ShadowRoot)) { + let child = document; + document = adaptor.parse('', 'text/html'); + adaptor.append(adaptor.body(document), child); + } + // + // We can't use super.create() here, since that doesn't + // handle shadowDOM correctly, so call HTMLHandler's parent class + // directly instead. + // + return AbstractHandler.create.call(this, document, options); + } + } + + // + // Register the new handler and adaptor + // + startup.registerConstructor('HTMLHandler', ShadowHandler); + startup.registerConstructor('browserAdaptor', () => new ShadowAdaptor(window)); + + // + // A service function that creates a new MathDocument from the + // shadow root with the configured input and output jax, and then + // renders the document. The MathDocument is returned in case + // you need to rerender the shadowRoot later. + // + MathJax.typesetShadow = function (root, callback) { + const InputJax = startup.getInputJax(); + const OutputJax = startup.getOutputJax(); + const html = mathjax.document(root, {InputJax, OutputJax}); + html.render(); + if (callback != null) { + callback(html); + } + return html; + } + + // + // Now do the usual startup now that the extensions are in place + // + let event = new Event('mathjax-initialized', { + bubbles: true, + composed: true, + detail: "composed" + }) + MathJax.startup.defaultReady(); + MathJax.startup.promise.then(() => { + console.log("MathJax initialized"); + MathJax.isInitialized = true; + document.dispatchEvent(event); + }) + } + } +}; + +(function () { + let script = document.createElement('script'); + script.src = 'http://cdn.jsdelivr.net/npm/mathjax@3.1.2/es5/tex-svg.js'; + // script.async = true; + document.head.appendChild(script); +})(); \ No newline at end of file diff --git a/package.json b/package.json index 63c7436..9aeefa1 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "typicalc", + "name": "no-name", "license": "UNLICENSED", "dependencies": { "@polymer/iron-icon": "3.0.1", @@ -68,81 +68,133 @@ "webpack-dev-server": "3.11.0", "webpack-merge": "4.2.2" }, + "vaadin": { "dependencies": { + "lit-element": "2.3.1", "@vaadin/router": "1.7.2", "@polymer/polymer": "3.2.0", - "@webcomponents/webcomponentsjs": "^2.2.10", "@vaadin/vaadin-grid": "5.7.7", "@vaadin/vaadin-icons": "4.3.2", "@vaadin/vaadin-split-layout": "4.3.0", "@vaadin/vaadin-combo-box": "5.4.7", + "@vaadin/vaadin-core-shrinkwrap": "18.0.5", + "@vaadin/vaadin-upload": "4.4.1", "@vaadin/vaadin-dialog": "2.5.2", "@vaadin/vaadin-select": "2.4.0", "@vaadin/vaadin-app-layout": "2.2.0", "@vaadin/vaadin-item": "2.3.0", "@vaadin/vaadin-notification": "1.6.0", "@vaadin/vaadin-progress-bar": "1.3.0", + "@vaadin/vaadin-date-time-picker": "1.4.0", "@vaadin/vaadin-ordered-layout": "1.4.0", + "@vaadin/vaadin-login": "1.2.0", "@vaadin/vaadin-button": "2.4.0", + "@vaadin/vaadin-date-picker": "4.4.1", "@vaadin/vaadin-text-field": "2.8.2", "@vaadin/vaadin-menu-bar": "1.2.1", + "@vaadin/vaadin-custom-field": "1.3.0", "@vaadin/vaadin-form-layout": "2.3.0", + "@vaadin/vaadin-accordion": "1.2.0", "@polymer/iron-list": "3.1.0", - "@vaadin/vaadin-confirm-dialog": "1.3.0", "@vaadin/vaadin-list-box": "1.4.0", + "@vaadin/vaadin-checkbox": "2.5.0", "@vaadin/vaadin-details": "1.2.0", "@polymer/iron-icon": "3.0.1", - "@vaadin/vaadin-context-menu": "4.5.0", - "@vaadin/vaadin-lumo-styles": "1.6.0", - "@vaadin/vaadin-material-styles": "1.3.2", - "@vaadin/vaadin-custom-field": "1.3.0", - "lit-element": "2.3.1", - "@vaadin/vaadin-avatar": "1.0.3", - "open": "^7.2.1", - "@vaadin/vaadin-crud": "1.3.0", - "@vaadin/vaadin-cookie-consent": "1.2.0", - "@vaadin/vaadin-core-shrinkwrap": "18.0.5", - "@vaadin/vaadin-upload": "4.4.1", - "@vaadin/vaadin-board": "2.2.0", - "@vaadin/vaadin-charts": "7.0.0", - "@vaadin/vaadin-grid-pro": "2.2.2", - "@vaadin/vaadin-shrinkwrap": "18.0.5", - "@vaadin/vaadin-date-time-picker": "1.4.0", - "@vaadin/vaadin-login": "1.2.0", - "@vaadin/vaadin-date-picker": "4.4.1", - "@vaadin/vaadin-accordion": "1.2.0", - "@vaadin/vaadin-checkbox": "2.5.0", "@vaadin/vaadin-time-picker": "2.4.0", + "@vaadin/vaadin-avatar": "1.0.3", + "@vaadin/vaadin-context-menu": "4.5.0", "@vaadin/vaadin-tabs": "3.2.0", "@vaadin/vaadin-radio-button": "1.5.1", "@vaadin/vaadin-rich-text-editor": "1.3.0", "@vaadin-component-factory/vcf-tooltip": "1.3.13" + + "@vaadin/vaadin-lumo-styles": "1.6.0", + "@vaadin/vaadin-material-styles": "1.3.2", + "open": "^7.2.1" }, "devDependencies": { - "webpack-babel-multi-target-plugin": "2.3.3", - "copy-webpack-plugin": "5.1.2", "compression-webpack-plugin": "4.0.1", - "raw-loader": "4.0.0", "webpack-cli": "3.3.11", + "css-loader": "4.2.1", + "script-ext-html-webpack-plugin": "2.1.4", + "validator": "13.1.17", + "awesome-typescript-loader": "5.2.1", + "lit-css-loader": "0.0.4", + "lit-html": "1.2.1", + "@types/validator": "13.1.0", + "copy-webpack-plugin": "5.1.2", + "lit-element": "2.3.1", "webpack": "4.42.0", "html-webpack-plugin": "3.2.0", - "script-ext-html-webpack-plugin": "2.1.4", - "awesome-typescript-loader": "5.2.1", + "chokidar": "^3.4.0", "typescript": "4.0.3", "webpack-merge": "4.2.2", "webpack-dev-server": "3.11.0", - "terser": "4.6.7", - "progress-webpack-plugin": "0.0.24", - "lit-element": "2.3.1", - "chokidar": "^3.4.0", - "validator": "13.1.17", - "lit-html": "1.2.1", - "@types/validator": "13.1.0", - "css-loader": "4.2.1", - "lit-css-loader": "0.0.4", "extract-loader": "5.1.0" }, - "hash": "9a8381007196d77745c03255bc222102472ce461f37b2742f39962e71d14929a" + "hash": "8a8bb65418f58834b30cd258cd47da52573731720ea8967d4078487cb1253498" + }, + "dependencies": { + "lit-element": "2.3.1", + "@vaadin/router": "1.7.2", + "@polymer/polymer": "3.2.0", + "@vaadin/flow-frontend": "./target/flow-frontend", + "@vaadin/form": "./target/flow-frontend/form", + "@vaadin/vaadin-grid": "5.7.7", + "@vaadin/vaadin-icons": "4.3.2", + "@vaadin/vaadin-split-layout": "4.3.0", + "@vaadin/vaadin-combo-box": "5.4.7", + "@vaadin/vaadin-core-shrinkwrap": "18.0.5", + "@vaadin/vaadin-upload": "4.4.1", + "@vaadin/vaadin-dialog": "2.5.2", + "@vaadin/vaadin-select": "2.4.0", + "@vaadin/vaadin-app-layout": "2.2.0", + "@vaadin/vaadin-item": "2.3.0", + "@vaadin/vaadin-notification": "1.6.0", + "@vaadin/vaadin-progress-bar": "1.3.0", + "@vaadin/vaadin-date-time-picker": "1.4.0", + "@vaadin/vaadin-ordered-layout": "1.4.0", + "@vaadin/vaadin-login": "1.2.0", + "@vaadin/vaadin-button": "2.4.0", + "@vaadin/vaadin-date-picker": "4.4.1", + "@vaadin/vaadin-text-field": "2.8.2", + "@vaadin/vaadin-menu-bar": "1.2.1", + "@vaadin/vaadin-custom-field": "1.3.0", + "@vaadin/vaadin-form-layout": "2.3.0", + "@vaadin/vaadin-accordion": "1.2.0", + "@polymer/iron-list": "3.1.0", + "@vaadin/vaadin-list-box": "1.4.0", + "@vaadin/vaadin-checkbox": "2.5.0", + "@vaadin/vaadin-details": "1.2.0", + "@polymer/iron-icon": "3.0.1", + "@vaadin/vaadin-time-picker": "2.4.0", + "@vaadin/vaadin-avatar": "1.0.3", + "@vaadin/vaadin-context-menu": "4.5.0", + "@vaadin/vaadin-tabs": "3.2.0", + "@vaadin/vaadin-radio-button": "1.5.1", + "@vaadin/vaadin-lumo-styles": "1.6.0", + "@vaadin/vaadin-material-styles": "1.3.2", + "open": "^7.2.1" + }, + "devDependencies": { + "compression-webpack-plugin": "4.0.1", + "webpack-cli": "3.3.11", + "css-loader": "4.2.1", + "script-ext-html-webpack-plugin": "2.1.4", + "validator": "13.1.17", + "awesome-typescript-loader": "5.2.1", + "lit-css-loader": "0.0.4", + "lit-html": "1.2.1", + "@types/validator": "13.1.0", + "copy-webpack-plugin": "5.1.2", + "lit-element": "2.3.1", + "webpack": "4.42.0", + "html-webpack-plugin": "3.2.0", + "chokidar": "^3.4.0", + "typescript": "4.0.3", + "webpack-merge": "4.2.2", + "webpack-dev-server": "3.11.0", + "extract-loader": "5.1.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ac2c01..907e06c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,874 +51,15 @@ devDependencies: html-webpack-plugin: 3.2.0_webpack@4.42.0 lit-css-loader: 0.0.4 lit-html: 1.2.1 - progress-webpack-plugin: 0.0.24 - raw-loader: 4.0.0_webpack@4.42.0 script-ext-html-webpack-plugin: 2.1.4_f9f57bd8a148b6edc3192202e3fa66cb - terser: 4.6.7 typescript: 4.0.3 validator: 13.1.17 webpack: 4.42.0_webpack@4.42.0 - webpack-babel-multi-target-plugin: 2.3.3_f17e7dc3686dc4072a83e169fb8b83a8 webpack-cli: 3.3.11_webpack@4.42.0 webpack-dev-server: 3.11.0_a99e8271b7943dfdc7dfc6c27536d940 webpack-merge: 4.2.2 lockfileVersion: 5.1 packages: - /@babel/cli/7.8.4_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - commander: 4.1.1 - convert-source-map: 1.7.0 - fs-readdir-recursive: 1.1.0 - glob: 7.1.6 - lodash: 4.17.15 - make-dir: 2.1.0 - slash: 2.0.0 - source-map: 0.5.7 - dev: true - hasBin: true - optionalDependencies: - chokidar: 3.4.0 - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag== - /@babel/code-frame/7.8.3: - dependencies: - '@babel/highlight': 7.9.0 - dev: true - resolution: - integrity: sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - /@babel/compat-data/7.9.0: - dependencies: - browserslist: 4.12.0 - invariant: 2.2.4 - semver: 5.7.1 - dev: true - resolution: - integrity: sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== - /@babel/core/7.9.0: - dependencies: - '@babel/code-frame': 7.8.3 - '@babel/generator': 7.9.5 - '@babel/helper-module-transforms': 7.9.0 - '@babel/helpers': 7.9.2 - '@babel/parser': 7.9.4 - '@babel/template': 7.8.6 - '@babel/traverse': 7.9.5 - '@babel/types': 7.9.5 - convert-source-map: 1.7.0 - debug: 4.1.1 - gensync: 1.0.0-beta.1 - json5: 2.1.3 - lodash: 4.17.15 - resolve: 1.17.0 - semver: 5.7.1 - source-map: 0.5.7 - dev: true - engines: - node: '>=6.9.0' - resolution: - integrity: sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - /@babel/generator/7.9.5: - dependencies: - '@babel/types': 7.9.5 - jsesc: 2.5.2 - lodash: 4.17.15 - source-map: 0.5.7 - dev: true - resolution: - integrity: sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== - /@babel/helper-annotate-as-pure/7.8.3: - dependencies: - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - /@babel/helper-builder-binary-assignment-operator-visitor/7.8.3: - dependencies: - '@babel/helper-explode-assignable-expression': 7.8.3 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== - /@babel/helper-compilation-targets/7.8.7_@babel+core@7.9.0: - dependencies: - '@babel/compat-data': 7.9.0 - '@babel/core': 7.9.0 - browserslist: 4.12.0 - invariant: 2.2.4 - levenary: 1.1.1 - semver: 5.7.1 - dev: true - peerDependencies: - '@babel/core': ^7.0.0 - resolution: - integrity: sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== - /@babel/helper-create-regexp-features-plugin/7.8.8_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-annotate-as-pure': 7.8.3 - '@babel/helper-regex': 7.8.3 - regexpu-core: 4.7.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0 - resolution: - integrity: sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - /@babel/helper-define-map/7.8.3: - dependencies: - '@babel/helper-function-name': 7.9.5 - '@babel/types': 7.9.5 - lodash: 4.17.15 - dev: true - resolution: - integrity: sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - /@babel/helper-explode-assignable-expression/7.8.3: - dependencies: - '@babel/traverse': 7.9.5 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== - /@babel/helper-function-name/7.9.5: - dependencies: - '@babel/helper-get-function-arity': 7.8.3 - '@babel/template': 7.8.6 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - /@babel/helper-get-function-arity/7.8.3: - dependencies: - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - /@babel/helper-hoist-variables/7.8.3: - dependencies: - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== - /@babel/helper-member-expression-to-functions/7.8.3: - dependencies: - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - /@babel/helper-module-imports/7.8.3: - dependencies: - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - /@babel/helper-module-transforms/7.9.0: - dependencies: - '@babel/helper-module-imports': 7.8.3 - '@babel/helper-replace-supers': 7.8.6 - '@babel/helper-simple-access': 7.8.3 - '@babel/helper-split-export-declaration': 7.8.3 - '@babel/template': 7.8.6 - '@babel/types': 7.9.5 - lodash: 4.17.15 - dev: true - resolution: - integrity: sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - /@babel/helper-optimise-call-expression/7.8.3: - dependencies: - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - /@babel/helper-plugin-utils/7.8.3: - dev: true - resolution: - integrity: sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - /@babel/helper-regex/7.8.3: - dependencies: - lodash: 4.17.15 - dev: true - resolution: - integrity: sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - /@babel/helper-remap-async-to-generator/7.8.3: - dependencies: - '@babel/helper-annotate-as-pure': 7.8.3 - '@babel/helper-wrap-function': 7.8.3 - '@babel/template': 7.8.6 - '@babel/traverse': 7.9.5 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== - /@babel/helper-replace-supers/7.8.6: - dependencies: - '@babel/helper-member-expression-to-functions': 7.8.3 - '@babel/helper-optimise-call-expression': 7.8.3 - '@babel/traverse': 7.9.5 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== - /@babel/helper-simple-access/7.8.3: - dependencies: - '@babel/template': 7.8.6 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - /@babel/helper-split-export-declaration/7.8.3: - dependencies: - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - /@babel/helper-validator-identifier/7.9.5: - dev: true - resolution: - integrity: sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - /@babel/helper-wrap-function/7.8.3: - dependencies: - '@babel/helper-function-name': 7.9.5 - '@babel/template': 7.8.6 - '@babel/traverse': 7.9.5 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== - /@babel/helpers/7.9.2: - dependencies: - '@babel/template': 7.8.6 - '@babel/traverse': 7.9.5 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - /@babel/highlight/7.9.0: - dependencies: - '@babel/helper-validator-identifier': 7.9.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - resolution: - integrity: sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - /@babel/parser/7.9.4: - dev: true - engines: - node: '>=6.0.0' - hasBin: true - resolution: - integrity: sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== - /@babel/plugin-proposal-async-generator-functions/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/helper-remap-async-to-generator': 7.8.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== - /@babel/plugin-proposal-dynamic-import/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== - /@babel/plugin-proposal-json-strings/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== - /@babel/plugin-proposal-nullish-coalescing-operator/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== - /@babel/plugin-proposal-numeric-separator/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-syntax-numeric-separator': 7.8.3_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - /@babel/plugin-proposal-object-rest-spread/7.9.5_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-parameters': 7.9.5_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg== - /@babel/plugin-proposal-optional-catch-binding/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== - /@babel/plugin-proposal-optional-chaining/7.9.0_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== - /@babel/plugin-proposal-unicode-property-regex/7.8.8_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-create-regexp-features-plugin': 7.8.8_@babel+core@7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - engines: - node: '>=4' - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - /@babel/plugin-syntax-numeric-separator/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - /@babel/plugin-syntax-top-level-await/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== - /@babel/plugin-transform-arrow-functions/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== - /@babel/plugin-transform-async-to-generator/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-module-imports': 7.8.3 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/helper-remap-async-to-generator': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== - /@babel/plugin-transform-block-scoped-functions/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== - /@babel/plugin-transform-block-scoping/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - lodash: 4.17.15 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== - /@babel/plugin-transform-classes/7.9.5_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-annotate-as-pure': 7.8.3 - '@babel/helper-define-map': 7.8.3 - '@babel/helper-function-name': 7.9.5 - '@babel/helper-optimise-call-expression': 7.8.3 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/helper-replace-supers': 7.8.6 - '@babel/helper-split-export-declaration': 7.8.3 - globals: 11.12.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== - /@babel/plugin-transform-computed-properties/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== - /@babel/plugin-transform-destructuring/7.9.5_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== - /@babel/plugin-transform-dotall-regex/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-create-regexp-features-plugin': 7.8.8_@babel+core@7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - /@babel/plugin-transform-duplicate-keys/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== - /@babel/plugin-transform-exponentiation-operator/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.8.3 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== - /@babel/plugin-transform-for-of/7.9.0_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== - /@babel/plugin-transform-function-name/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-function-name': 7.9.5 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== - /@babel/plugin-transform-literals/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== - /@babel/plugin-transform-member-expression-literals/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== - /@babel/plugin-transform-modules-amd/7.9.0_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-module-transforms': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - babel-plugin-dynamic-import-node: 2.3.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== - /@babel/plugin-transform-modules-commonjs/7.9.0_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-module-transforms': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/helper-simple-access': 7.8.3 - babel-plugin-dynamic-import-node: 2.3.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== - /@babel/plugin-transform-modules-systemjs/7.9.0_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-hoist-variables': 7.8.3 - '@babel/helper-module-transforms': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - babel-plugin-dynamic-import-node: 2.3.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== - /@babel/plugin-transform-modules-umd/7.9.0_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-module-transforms': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== - /@babel/plugin-transform-named-capturing-groups-regex/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-create-regexp-features-plugin': 7.8.8_@babel+core@7.9.0 - dev: true - peerDependencies: - '@babel/core': ^7.0.0 - resolution: - integrity: sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== - /@babel/plugin-transform-new-target/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== - /@babel/plugin-transform-object-super/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/helper-replace-supers': 7.8.6 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== - /@babel/plugin-transform-parameters/7.9.5_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-get-function-arity': 7.8.3 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== - /@babel/plugin-transform-property-literals/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== - /@babel/plugin-transform-regenerator/7.8.7_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - regenerator-transform: 0.14.4 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== - /@babel/plugin-transform-reserved-words/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== - /@babel/plugin-transform-runtime/7.9.0_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-module-imports': 7.8.3 - '@babel/helper-plugin-utils': 7.8.3 - resolve: 1.17.0 - semver: 5.7.1 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== - /@babel/plugin-transform-shorthand-properties/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== - /@babel/plugin-transform-spread/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== - /@babel/plugin-transform-sticky-regex/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/helper-regex': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== - /@babel/plugin-transform-template-literals/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-annotate-as-pure': 7.8.3 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== - /@babel/plugin-transform-typeof-symbol/7.8.4_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== - /@babel/plugin-transform-unicode-regex/7.8.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-create-regexp-features-plugin': 7.8.8_@babel+core@7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== - /@babel/preset-env/7.9.5_@babel+core@7.9.0: - dependencies: - '@babel/compat-data': 7.9.0 - '@babel/core': 7.9.0 - '@babel/helper-compilation-targets': 7.8.7_@babel+core@7.9.0 - '@babel/helper-module-imports': 7.8.3 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-proposal-async-generator-functions': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-proposal-dynamic-import': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-proposal-json-strings': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-proposal-numeric-separator': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-proposal-object-rest-spread': 7.9.5_@babel+core@7.9.0 - '@babel/plugin-proposal-optional-catch-binding': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-proposal-optional-chaining': 7.9.0_@babel+core@7.9.0 - '@babel/plugin-proposal-unicode-property-regex': 7.8.8_@babel+core@7.9.0 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.9.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-syntax-numeric-separator': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-syntax-top-level-await': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-arrow-functions': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-async-to-generator': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-block-scoped-functions': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-block-scoping': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-classes': 7.9.5_@babel+core@7.9.0 - '@babel/plugin-transform-computed-properties': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-destructuring': 7.9.5_@babel+core@7.9.0 - '@babel/plugin-transform-dotall-regex': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-duplicate-keys': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-exponentiation-operator': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-for-of': 7.9.0_@babel+core@7.9.0 - '@babel/plugin-transform-function-name': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-literals': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-member-expression-literals': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-modules-amd': 7.9.0_@babel+core@7.9.0 - '@babel/plugin-transform-modules-commonjs': 7.9.0_@babel+core@7.9.0 - '@babel/plugin-transform-modules-systemjs': 7.9.0_@babel+core@7.9.0 - '@babel/plugin-transform-modules-umd': 7.9.0_@babel+core@7.9.0 - '@babel/plugin-transform-named-capturing-groups-regex': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-new-target': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-object-super': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-parameters': 7.9.5_@babel+core@7.9.0 - '@babel/plugin-transform-property-literals': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-regenerator': 7.8.7_@babel+core@7.9.0 - '@babel/plugin-transform-reserved-words': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-shorthand-properties': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-spread': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-sticky-regex': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-template-literals': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-typeof-symbol': 7.8.4_@babel+core@7.9.0 - '@babel/plugin-transform-unicode-regex': 7.8.3_@babel+core@7.9.0 - '@babel/preset-modules': 0.1.3_@babel+core@7.9.0 - '@babel/types': 7.9.5 - browserslist: 4.12.0 - core-js-compat: 3.6.5 - invariant: 2.2.4 - levenary: 1.1.1 - semver: 5.7.1 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ== - /@babel/preset-modules/0.1.3_@babel+core@7.9.0: - dependencies: - '@babel/core': 7.9.0 - '@babel/helper-plugin-utils': 7.8.3 - '@babel/plugin-proposal-unicode-property-regex': 7.8.8_@babel+core@7.9.0 - '@babel/plugin-transform-dotall-regex': 7.8.3_@babel+core@7.9.0 - '@babel/types': 7.9.5 - esutils: 2.0.3 - dev: true - peerDependencies: - '@babel/core': ^7.0.0-0 - resolution: - integrity: sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - /@babel/runtime/7.9.2: - dependencies: - regenerator-runtime: 0.13.5 - dev: true - resolution: - integrity: sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== - /@babel/template/7.8.6: - dependencies: - '@babel/code-frame': 7.8.3 - '@babel/parser': 7.9.4 - '@babel/types': 7.9.5 - dev: true - resolution: - integrity: sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - /@babel/traverse/7.9.5: - dependencies: - '@babel/code-frame': 7.8.3 - '@babel/generator': 7.9.5 - '@babel/helper-function-name': 7.9.5 - '@babel/helper-split-export-declaration': 7.8.3 - '@babel/parser': 7.9.4 - '@babel/types': 7.9.5 - debug: 4.1.1 - globals: 11.12.0 - lodash: 4.17.15 - dev: true - resolution: - integrity: sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== - /@babel/types/7.9.5: - dependencies: - '@babel/helper-validator-identifier': 7.9.5 - lodash: 4.17.15 - to-fast-properties: 2.0.0 - dev: true - resolution: - integrity: sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== /@npmcli/move-file/1.0.1: dependencies: mkdirp: 1.0.4 @@ -1739,12 +880,6 @@ packages: node: '>=6' resolution: integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - /ansi-escapes/3.2.0: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== /ansi-html/0.0.7: dev: true engines: @@ -1758,12 +893,6 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - /ansi-regex/3.0.0: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= /ansi-regex/4.1.0: dev: true engines: @@ -2043,23 +1172,6 @@ packages: dev: true resolution: integrity: sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - /babel-loader/8.1.0_@babel+core@7.9.0+webpack@4.42.0: - dependencies: - '@babel/core': 7.9.0 - find-cache-dir: 2.1.0 - loader-utils: 1.4.0 - mkdirp: 0.5.5 - pify: 4.0.1 - schema-utils: 2.7.1 - webpack: 4.42.0_webpack@4.42.0 - dev: true - engines: - node: '>= 6.9' - peerDependencies: - '@babel/core': ^7.0.0 - webpack: '>=2' - resolution: - integrity: sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== /babel-messages/6.23.0: dependencies: babel-runtime: 6.26.0 @@ -2076,12 +1188,6 @@ packages: dev: true resolution: integrity: sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= - /babel-plugin-dynamic-import-node/2.3.3: - dependencies: - object.assign: 4.1.0 - dev: true - resolution: - integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== /babel-plugin-syntax-async-functions/6.13.0: dev: true resolution: @@ -2560,16 +1666,6 @@ packages: hasBin: true resolution: integrity: sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - /browserslist/4.12.0: - dependencies: - caniuse-lite: 1.0.30001048 - electron-to-chromium: 1.3.423 - node-releases: 1.1.53 - pkg-up: 2.0.0 - dev: true - hasBin: true - resolution: - integrity: sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== /btoa/1.2.1: dev: true engines: @@ -2784,14 +1880,6 @@ packages: node: '>=6' resolution: integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - /cli-cursor/2.1.0: - dependencies: - restore-cursor: 2.0.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= /cliui/5.0.0: dependencies: string-width: 3.1.0 @@ -2831,12 +1919,6 @@ packages: dev: true resolution: integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - /commander/4.1.1: - dev: true - engines: - node: '>= 6' - resolution: - integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== /commondir/1.0.1: dev: true resolution: @@ -2980,13 +2062,6 @@ packages: webpack: ^4.0.0 || ^5.0.0 resolution: integrity: sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ== - /core-js-compat/3.6.5: - dependencies: - browserslist: 4.12.0 - semver: 7.0.0 - dev: true - resolution: - integrity: sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== /core-js/2.6.11: deprecated: 'core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.' dev: true @@ -3688,14 +2763,6 @@ packages: dev: true resolution: integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - /figures/2.0.0: - dependencies: - escape-string-regexp: 1.0.5 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= /fill-range/4.0.0: dependencies: extend-shallow: 2.0.1 @@ -3749,14 +2816,6 @@ packages: node: '>=8' resolution: integrity: sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - /find-up/2.1.0: - dependencies: - locate-path: 2.0.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c= /find-up/3.0.0: dependencies: locate-path: 3.0.0 @@ -3841,10 +2900,6 @@ packages: node: '>= 8' resolution: integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - /fs-readdir-recursive/1.1.0: - dev: true - resolution: - integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== /fs-write-stream-atomic/1.0.10: dependencies: graceful-fs: 4.2.4 @@ -3872,12 +2927,6 @@ packages: dev: true resolution: integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - /gensync/1.0.0-beta.1: - dev: true - engines: - node: '>=6.9.0' - resolution: - integrity: sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== /get-caller-file/2.0.5: dev: true engines: @@ -3964,12 +3013,6 @@ packages: node: '>=6' resolution: integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - /globals/11.12.0: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== /globals/9.18.0: dev: true engines: @@ -4636,13 +3679,6 @@ packages: hasBin: true resolution: integrity: sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - /jsesc/2.5.2: - dev: true - engines: - node: '>=4' - hasBin: true - resolution: - integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== /json-parse-better-errors/1.0.2: dev: true resolution: @@ -4716,20 +3752,6 @@ packages: node: '>=6' resolution: integrity: sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - /leven/3.1.0: - dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - /levenary/1.1.1: - dependencies: - leven: 3.1.0 - dev: true - engines: - node: '>= 6' - resolution: - integrity: sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== /lit-css-loader/0.0.4: dev: true resolution: @@ -4788,15 +3810,6 @@ packages: node: '>=8.9.0' resolution: integrity: sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - /locate-path/2.0.0: - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= /locate-path/3.0.0: dependencies: p-locate: 3.0.0 @@ -4826,16 +3839,6 @@ packages: node: '>=4' resolution: integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - /log-update/2.3.0: - dependencies: - ansi-escapes: 3.2.0 - cli-cursor: 2.1.0 - wrap-ansi: 3.0.1 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-iDKP19HOeTiykoN0bwsbwSayRwg= /loglevel/1.6.8: dev: true engines: @@ -5025,12 +4028,6 @@ packages: hasBin: true resolution: integrity: sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - /mimic-fn/1.2.0: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== /mimic-fn/2.1.0: dev: true engines: @@ -5247,10 +4244,6 @@ packages: dev: true resolution: integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - /node-releases/1.1.53: - dev: true - resolution: - integrity: sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== /normalize-path/3.0.0: dev: true engines: @@ -5366,14 +4359,6 @@ packages: dev: true resolution: integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - /onetime/2.0.1: - dependencies: - mimic-fn: 1.2.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= /open/7.3.1: dependencies: is-docker: 2.1.1 @@ -5441,14 +4426,6 @@ packages: node: '>=6' resolution: integrity: sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - /p-limit/1.3.0: - dependencies: - p-try: 1.0.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== /p-limit/2.3.0: dependencies: p-try: 2.2.0 @@ -5457,14 +4434,6 @@ packages: node: '>=6' resolution: integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - /p-locate/2.0.0: - dependencies: - p-limit: 1.3.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= /p-locate/3.0.0: dependencies: p-limit: 2.3.0 @@ -5503,12 +4472,6 @@ packages: node: '>=6' resolution: integrity: sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - /p-try/1.0.0: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= /p-try/2.2.0: dev: true engines: @@ -5684,14 +4647,6 @@ packages: node: '>=8' resolution: integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - /pkg-up/2.0.0: - dependencies: - find-up: 2.1.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-yBmscoBZpGHKscOImivjxJoATX8= /portfinder/1.0.26: dependencies: async: 2.6.3 @@ -5791,15 +4746,6 @@ packages: node: '>= 0.6.0' resolution: integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - /progress-webpack-plugin/0.0.24: - dependencies: - chalk: 2.4.2 - figures: 2.0.0 - log-update: 2.3.0 - webpack: 4.42.0_webpack@4.42.0 - dev: true - resolution: - integrity: sha512-MF13Kr1tuOpK60KL4TIlVxzaDy30uZ6R7bYhtdWmRww867MGReoYg0eBVbit4Hk19Y5mqDMNbFL83fzwGfCK/g== /promise-inflight/1.0.1: dev: true resolution: @@ -5916,18 +4862,6 @@ packages: node: '>= 0.8' resolution: integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - /raw-loader/4.0.0_webpack@4.42.0: - dependencies: - loader-utils: 1.4.0 - schema-utils: 2.7.1 - webpack: 4.42.0_webpack@4.42.0 - dev: true - engines: - node: '>= 10.13.0' - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - resolution: - integrity: sha512-iINUOYvl1cGEmfoaLjnZXt4bKfT2LJnZZib5N/LLyAphC+Dd11vNP9CNVb38j+SAJpFI1uo8j9frmih53ASy7Q== /readable-stream/2.3.7: dependencies: core-util-is: 1.0.2 @@ -5958,14 +4892,6 @@ packages: node: '>=8.10.0' resolution: integrity: sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - /regenerate-unicode-properties/8.2.0: - dependencies: - regenerate: 1.4.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== /regenerate/1.4.0: dev: true resolution: @@ -5974,10 +4900,6 @@ packages: dev: true resolution: integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - /regenerator-runtime/0.13.5: - dev: true - resolution: - integrity: sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== /regenerator-transform/0.10.1: dependencies: babel-runtime: 6.26.0 @@ -5986,13 +4908,6 @@ packages: dev: true resolution: integrity: sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - /regenerator-transform/0.14.4: - dependencies: - '@babel/runtime': 7.9.2 - private: 0.1.8 - dev: true - resolution: - integrity: sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== /regex-not/1.0.2: dependencies: extend-shallow: 3.0.2 @@ -6019,27 +4934,10 @@ packages: dev: true resolution: integrity: sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= - /regexpu-core/4.7.0: - dependencies: - regenerate: 1.4.0 - regenerate-unicode-properties: 8.2.0 - regjsgen: 0.5.1 - regjsparser: 0.6.4 - unicode-match-property-ecmascript: 1.0.4 - unicode-match-property-value-ecmascript: 1.2.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== /regjsgen/0.2.0: dev: true resolution: integrity: sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - /regjsgen/0.5.1: - dev: true - resolution: - integrity: sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== /regjsparser/0.1.5: dependencies: jsesc: 0.5.0 @@ -6047,13 +4945,6 @@ packages: hasBin: true resolution: integrity: sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - /regjsparser/0.6.4: - dependencies: - jsesc: 0.5.0 - dev: true - hasBin: true - resolution: - integrity: sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== /relateurl/0.2.7: dev: true engines: @@ -6138,15 +5029,6 @@ packages: dev: true resolution: integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - /restore-cursor/2.0.0: - dependencies: - onetime: 2.0.1 - signal-exit: 3.0.3 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368= /ret/0.1.15: dev: true engines: @@ -6257,11 +5139,6 @@ packages: hasBin: true resolution: integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - /semver/7.0.0: - dev: true - hasBin: true - resolution: - integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== /semver/7.3.2: dev: true engines: @@ -6383,12 +5260,6 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - /slash/2.0.0: - dev: true - engines: - node: '>=6' - resolution: - integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== /snapdragon-node/2.1.1: dependencies: define-property: 1.0.0 @@ -6572,15 +5443,6 @@ packages: dev: true resolution: integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - /string-width/2.1.1: - dependencies: - is-fullwidth-code-point: 2.0.0 - strip-ansi: 4.0.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== /string-width/3.1.0: dependencies: emoji-regex: 7.0.3 @@ -6645,14 +5507,6 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - /strip-ansi/4.0.0: - dependencies: - ansi-regex: 3.0.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8= /strip-ansi/5.2.0: dependencies: ansi-regex: 4.1.0 @@ -6767,12 +5621,6 @@ packages: node: '>=0.10.0' resolution: integrity: sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - /to-fast-properties/2.0.0: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= /to-object-path/0.3.0: dependencies: kind-of: 3.2.2 @@ -6871,33 +5719,6 @@ packages: hasBin: true resolution: integrity: sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - /unicode-canonical-property-names-ecmascript/1.0.4: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - /unicode-match-property-ecmascript/1.0.4: - dependencies: - unicode-canonical-property-names-ecmascript: 1.0.4 - unicode-property-aliases-ecmascript: 1.1.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - /unicode-match-property-value-ecmascript/1.2.0: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - /unicode-property-aliases-ecmascript/1.1.0: - dev: true - engines: - node: '>=4' - resolution: - integrity: sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== /union-value/1.0.1: dependencies: arr-union: 3.1.0 @@ -7047,29 +5868,6 @@ packages: dev: true resolution: integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - /webpack-babel-multi-target-plugin/2.3.3_f17e7dc3686dc4072a83e169fb8b83a8: - dependencies: - '@babel/cli': 7.8.4_@babel+core@7.9.0 - '@babel/core': 7.9.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.9.0 - '@babel/plugin-transform-runtime': 7.9.0_@babel+core@7.9.0 - '@babel/preset-env': 7.9.5_@babel+core@7.9.0 - '@babel/runtime': 7.9.2 - babel-loader: 8.1.0_@babel+core@7.9.0+webpack@4.42.0 - core-js: 2.6.11 - tapable: 1.1.3 - webpack: 4.42.0_webpack@4.42.0 - webpack-dev-server: 3.11.0_a99e8271b7943dfdc7dfc6c27536d940 - webpack-merge: 4.2.2 - webpack-sources: 1.4.3 - dev: true - optionalDependencies: - html-webpack-plugin: 3.2.0_webpack@4.42.0 - peerDependencies: - webpack: ^4.19.0 - webpack-dev-server: ^3.1.0 - resolution: - integrity: sha512-MJmv8YcP6ex4UgmFyafe8aTH7J9pcg90gFpeanb/48FRSqRpgdoidqmq3bNzHSvI1nOXeyT3EW2dmLYwMhmm2A== /webpack-cli/3.3.11_webpack@4.42.0: dependencies: chalk: 2.4.2 @@ -7263,15 +6061,6 @@ packages: dev: true resolution: integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - /wrap-ansi/3.0.1: - dependencies: - string-width: 2.1.1 - strip-ansi: 4.0.0 - dev: true - engines: - node: '>=4' - resolution: - integrity: sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= /wrap-ansi/5.1.0: dependencies: ansi-styles: 3.2.1 @@ -7400,14 +6189,10 @@ specifiers: lit-element: 2.3.1 lit-html: 1.2.1 open: ^7.2.1 - progress-webpack-plugin: 0.0.24 - raw-loader: 4.0.0 script-ext-html-webpack-plugin: 2.1.4 - terser: 4.6.7 typescript: 4.0.3 validator: 13.1.17 webpack: 4.42.0 - webpack-babel-multi-target-plugin: 2.3.3 webpack-cli: 3.3.11 webpack-dev-server: 3.11.0 webpack-merge: 4.2.2 diff --git a/src/main/java/edu/kit/typicalc/model/Tree.java b/src/main/java/edu/kit/typicalc/model/Tree.java index bc118c5..a3919a1 100644 --- a/src/main/java/edu/kit/typicalc/model/Tree.java +++ b/src/main/java/edu/kit/typicalc/model/Tree.java @@ -150,7 +150,19 @@ public class Tree implements TermVisitorTree { } @Override - public InferenceStep visit(VarTerm varTerm, Map typeAssumptions, Type conclusionType) { - return null; // TODO + public InferenceStep visit(VarTerm varTerm, Map typeAssumptions, Type conclusionType) + throws IllegalStateException { + TypeAbstraction premiseAbs = typeAssumptions.get(varTerm); + if (premiseAbs == null) { + throw new IllegalStateException("Cannot create VarStep for VarTerm '" + + varTerm.getName() + "' without appropriate type assumption"); + } + Type instantiation = premiseAbs.instantiate(typeVarFactory); + + Constraint newConstraint = new Constraint(conclusionType, instantiation); + constraints.add(newConstraint); + + Conclusion conclusion = new Conclusion(typeAssumptions, varTerm, conclusionType); + return stepFactory.createVarStep(premiseAbs, instantiation, conclusion, newConstraint); } } diff --git a/src/main/java/edu/kit/typicalc/model/step/StepFactory.java b/src/main/java/edu/kit/typicalc/model/step/StepFactory.java index 2058031..d2adb02 100644 --- a/src/main/java/edu/kit/typicalc/model/step/StepFactory.java +++ b/src/main/java/edu/kit/typicalc/model/step/StepFactory.java @@ -2,6 +2,7 @@ package edu.kit.typicalc.model.step; import edu.kit.typicalc.model.Conclusion; import edu.kit.typicalc.model.Constraint; +import edu.kit.typicalc.model.type.Type; import edu.kit.typicalc.model.type.TypeAbstraction; /** @@ -34,14 +35,16 @@ public interface StepFactory { * @return the created ConstStep */ ConstStep createConstStep(Conclusion conclusion, Constraint constraint); + /** * Creates a VarStep. * @param typeAbstraction the type abstraction of this step + * @param instantiatedTypeAbs an instantiation of the type abstraction used in this step * @param conclusion the conclusion of this step * @param constraint the constraint that can be derived from this step * @return the created AbsStep */ - VarStep createVarStep(TypeAbstraction typeAbstraction, Conclusion conclusion, - Constraint constraint); + VarStep createVarStep(TypeAbstraction typeAbstraction, Type instantiatedTypeAbs, + Conclusion conclusion, Constraint constraint); //TODO LetStep } diff --git a/src/main/java/edu/kit/typicalc/model/step/StepFactoryDefault.java b/src/main/java/edu/kit/typicalc/model/step/StepFactoryDefault.java index 22f6645..459d0fe 100644 --- a/src/main/java/edu/kit/typicalc/model/step/StepFactoryDefault.java +++ b/src/main/java/edu/kit/typicalc/model/step/StepFactoryDefault.java @@ -2,12 +2,14 @@ package edu.kit.typicalc.model.step; import edu.kit.typicalc.model.Conclusion; import edu.kit.typicalc.model.Constraint; +import edu.kit.typicalc.model.type.Type; import edu.kit.typicalc.model.type.TypeAbstraction; /** * A factory to create InferenceStep objects when let polymorphism is not used. */ public class StepFactoryDefault implements StepFactory { + /** * Creates an AbsStepDefault. * @param premise the premise of this step @@ -15,6 +17,7 @@ public class StepFactoryDefault implements StepFactory { * @param constraint the constraint that can be derived from this step * @return the created AbsStepDefault */ + @Override public AbsStepDefault createAbsStep(InferenceStep premise, Conclusion conclusion, Constraint constraint) { return new AbsStepDefault(premise, conclusion, constraint); } @@ -27,28 +30,34 @@ public class StepFactoryDefault implements StepFactory { * @param constraint the constraint that can be derived from this step * @return the created AppStepDefault */ + @Override public AppStepDefault createAppStep(InferenceStep premise1, InferenceStep premise2, Conclusion conclusion, Constraint constraint) { return new AppStepDefault(premise1, premise2, conclusion, constraint); } + /** * Creates an ConstStepDefault. * @param conclusion the conclusion of this step * @param constraint the constraint that can be derived from this step * @return the created ConstStepDefault */ + @Override public ConstStepDefault createConstStep(Conclusion conclusion, Constraint constraint) { return new ConstStepDefault(conclusion, constraint); } + /** * Creates a VarStepDefault. * @param typeAbstraction the type abstraction of this step + * @param instantiatedTypeAbs an instantiation of the type abstraction used in this step * @param conclusion the conclusion of this step * @param constraint the constraint that can be derived from this step * @return the created AbsStepDefault */ - public VarStepDefault createVarStep(TypeAbstraction typeAbstraction, Conclusion conclusion, - Constraint constraint) { - return new VarStepDefault(typeAbstraction, conclusion, constraint); + @Override + public VarStepDefault createVarStep(TypeAbstraction typeAbstraction, Type instantiatedTypeAbs, + Conclusion conclusion, Constraint constraint) { + return new VarStepDefault(typeAbstraction, instantiatedTypeAbs, conclusion, constraint); } } diff --git a/src/main/java/edu/kit/typicalc/model/step/StepFactoryWithLet.java b/src/main/java/edu/kit/typicalc/model/step/StepFactoryWithLet.java index 1468666..a311018 100644 --- a/src/main/java/edu/kit/typicalc/model/step/StepFactoryWithLet.java +++ b/src/main/java/edu/kit/typicalc/model/step/StepFactoryWithLet.java @@ -2,12 +2,14 @@ package edu.kit.typicalc.model.step; import edu.kit.typicalc.model.Conclusion; import edu.kit.typicalc.model.Constraint; +import edu.kit.typicalc.model.type.Type; import edu.kit.typicalc.model.type.TypeAbstraction; /** * A factory to create InferenceStep objects when let polymorphism is used. */ public class StepFactoryWithLet implements StepFactory { + /** * Creates an AbsStepWithLet. * @param premise the premise of this step @@ -15,6 +17,7 @@ public class StepFactoryWithLet implements StepFactory { * @param constraint the constraint that can be derived from this step * @return the created AbsStepWithLet */ + @Override public AbsStepWithLet createAbsStep(InferenceStep premise, Conclusion conclusion, Constraint constraint) { return new AbsStepWithLet(premise, conclusion, constraint); } @@ -27,28 +30,35 @@ public class StepFactoryWithLet implements StepFactory { * @param constraint the constraint that can be derived from this step * @return the created AppStepDefault */ + @Override public AppStepDefault createAppStep(InferenceStep premise1, InferenceStep premise2, Conclusion conclusion, Constraint constraint) { return new AppStepDefault(premise1, premise2, conclusion, constraint); } + /** * Creates an ConstStepDefault. * @param conclusion the conclusion of this step * @param constraint the constraint that can be derived from this step * @return the created ConstStepDefault */ + @Override public ConstStepDefault createConstStep(Conclusion conclusion, Constraint constraint) { return new ConstStepDefault(conclusion, constraint); } + /** * Creates a VarStepWithLet. + * * @param typeAbstraction the type abstraction of this step + * @param instantiatedTypeAbs an instantiation of the type abstraction used in this step * @param conclusion the conclusion of this step * @param constraint the constraint that can be derived from this step * @return the created VarStepWithLet */ - public VarStepWithLet createVarStep(TypeAbstraction typeAbstraction, Conclusion conclusion, - Constraint constraint) { - return new VarStepWithLet(typeAbstraction, conclusion, constraint); + @Override + public VarStepWithLet createVarStep(TypeAbstraction typeAbstraction, Type instantiatedTypeAbs, + Conclusion conclusion, Constraint constraint) { + return new VarStepWithLet(typeAbstraction, instantiatedTypeAbs, conclusion, constraint); } } diff --git a/src/main/java/edu/kit/typicalc/model/step/VarStep.java b/src/main/java/edu/kit/typicalc/model/step/VarStep.java index f5b1b53..9dd89a1 100644 --- a/src/main/java/edu/kit/typicalc/model/step/VarStep.java +++ b/src/main/java/edu/kit/typicalc/model/step/VarStep.java @@ -2,6 +2,7 @@ package edu.kit.typicalc.model.step; import edu.kit.typicalc.model.Conclusion; import edu.kit.typicalc.model.Constraint; +import edu.kit.typicalc.model.type.Type; import edu.kit.typicalc.model.type.TypeAbstraction; /** @@ -9,24 +10,40 @@ import edu.kit.typicalc.model.type.TypeAbstraction; * abstraction that is identified as the type of the variable in the premise of the step. */ public abstract class VarStep extends InferenceStep { - private TypeAbstraction typeAbstractionInPremise; + + private final TypeAbstraction typeAbstractionInPremise; + private final Type instantiatedTypeAbs; /** * Initializes a new VarStep with the given values. + * + * @param typeAbstractionInPremise the type abstraction in the premise of this step + * @param instantiatedTypeAbs an instantiation of the type abstraction used in this step * @param conclusion the conclusion of this step * @param constraint the constraint added in this step - * @param typeAbstractionInPremise the type abstraction in the premise of this step */ - protected VarStep(TypeAbstraction typeAbstractionInPremise, Conclusion conclusion, Constraint constraint) { + protected VarStep(TypeAbstraction typeAbstractionInPremise, Type instantiatedTypeAbs, Conclusion conclusion, + Constraint constraint) { super(conclusion, constraint); this.typeAbstractionInPremise = typeAbstractionInPremise; + this.instantiatedTypeAbs = instantiatedTypeAbs; } /** * Returns the type abstraction in the premise of the step, that is identified as the * variable’s type. + * * @return the type abstraction in the premise of this step */ public TypeAbstraction getTypeAbsInPremise() { return typeAbstractionInPremise; } + + /** + * Returns the instantiation of the type abstraction. + * + * @return the instantiation of the type abstraction. + */ + public Type getInstantiatedTypeAbs() { + return instantiatedTypeAbs; + } } diff --git a/src/main/java/edu/kit/typicalc/model/step/VarStepDefault.java b/src/main/java/edu/kit/typicalc/model/step/VarStepDefault.java index 73583e0..eec0be1 100644 --- a/src/main/java/edu/kit/typicalc/model/step/VarStepDefault.java +++ b/src/main/java/edu/kit/typicalc/model/step/VarStepDefault.java @@ -2,17 +2,21 @@ package edu.kit.typicalc.model.step; import edu.kit.typicalc.model.Conclusion; import edu.kit.typicalc.model.Constraint; +import edu.kit.typicalc.model.type.Type; import edu.kit.typicalc.model.type.TypeAbstraction; public class VarStepDefault extends VarStep { /** * Initializes a new VarStep with the given values. + * + * @param typeAbstractionInPremise the type abstraction in the premise of this step + * @param instantiatedTypeAbs an instantiation of the type abstraction used in this step * @param conclusion the conclusion of this step * @param constraint the constraint added in this step - * @param typeAbstractionInPremise the type abstraction in the premise of this step */ - public VarStepDefault(TypeAbstraction typeAbstractionInPremise, Conclusion conclusion, Constraint constraint) { - super(typeAbstractionInPremise, conclusion, constraint); + public VarStepDefault(TypeAbstraction typeAbstractionInPremise, Type instantiatedTypeAbs, Conclusion conclusion, + Constraint constraint) { + super(typeAbstractionInPremise, instantiatedTypeAbs, conclusion, constraint); } /** diff --git a/src/main/java/edu/kit/typicalc/model/step/VarStepWithLet.java b/src/main/java/edu/kit/typicalc/model/step/VarStepWithLet.java index 6217d49..831816c 100644 --- a/src/main/java/edu/kit/typicalc/model/step/VarStepWithLet.java +++ b/src/main/java/edu/kit/typicalc/model/step/VarStepWithLet.java @@ -2,17 +2,21 @@ package edu.kit.typicalc.model.step; import edu.kit.typicalc.model.Conclusion; import edu.kit.typicalc.model.Constraint; +import edu.kit.typicalc.model.type.Type; import edu.kit.typicalc.model.type.TypeAbstraction; public class VarStepWithLet extends VarStep { /** * Initializes a new VarStep with the given values. + * + * @param typeAbstractionInPremise the type abstraction in the premise of this step + * @param instantiatedTypeAbs an instantiation of the type abstraction used in this step * @param conclusion the conclusion of this step * @param constraint the constraint added in this step - * @param typeAbstractionInPremise the type abstraction in the premise of this step */ - public VarStepWithLet(TypeAbstraction typeAbstractionInPremise, Conclusion conclusion, Constraint constraint) { - super(typeAbstractionInPremise, conclusion, constraint); + public VarStepWithLet(TypeAbstraction typeAbstractionInPremise, Type instantiatedTypeAbs, Conclusion conclusion, + Constraint constraint) { + super(typeAbstractionInPremise, instantiatedTypeAbs, conclusion, constraint); } /** diff --git a/src/main/java/edu/kit/typicalc/model/term/TermVisitorTree.java b/src/main/java/edu/kit/typicalc/model/term/TermVisitorTree.java index 65e1dad..2166daa 100644 --- a/src/main/java/edu/kit/typicalc/model/term/TermVisitorTree.java +++ b/src/main/java/edu/kit/typicalc/model/term/TermVisitorTree.java @@ -75,5 +75,6 @@ public interface TermVisitorTree { * of the returned inference step will be assigned * @return an {@link edu.kit.typicalc.model.step.VarStep} */ - InferenceStep visit(VarTerm varTerm, Map typeAssumptions, Type conclusionType); + InferenceStep visit(VarTerm varTerm, Map typeAssumptions, Type conclusionType) + throws IllegalStateException; } diff --git a/src/main/java/edu/kit/typicalc/model/type/TypeAbstraction.java b/src/main/java/edu/kit/typicalc/model/type/TypeAbstraction.java index 52763be..60343ee 100644 --- a/src/main/java/edu/kit/typicalc/model/type/TypeAbstraction.java +++ b/src/main/java/edu/kit/typicalc/model/type/TypeAbstraction.java @@ -1,5 +1,7 @@ package edu.kit.typicalc.model.type; +import edu.kit.typicalc.model.TypeVariableFactory; + import java.util.List; public class TypeAbstraction { @@ -9,4 +11,7 @@ public class TypeAbstraction { public TypeAbstraction(Type type) { } + public Type instantiate(TypeVariableFactory typeVarFactory) { + return null; + } } diff --git a/src/main/java/edu/kit/typicalc/view/content/infocontent/StartPageView.java b/src/main/java/edu/kit/typicalc/view/content/infocontent/StartPageView.java index 681beaa..645906a 100644 --- a/src/main/java/edu/kit/typicalc/view/content/infocontent/StartPageView.java +++ b/src/main/java/edu/kit/typicalc/view/content/infocontent/StartPageView.java @@ -1,9 +1,8 @@ package edu.kit.typicalc.view.content.infocontent; import com.vaadin.flow.component.button.Button; -import com.vaadin.flow.component.notification.Notification; +import com.vaadin.flow.component.dependency.JsModule; import com.vaadin.flow.component.orderedlayout.VerticalLayout; -import com.vaadin.flow.component.textfield.TextArea; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import com.vaadin.flow.router.RouteAlias; @@ -13,23 +12,17 @@ import edu.kit.typicalc.view.main.MathjaxDisplay; @Route(value = "home", layout = MainViewImpl.class) @PageTitle("Typicalc") @RouteAlias(value = "", layout = MainViewImpl.class) +@JsModule("./src/mathjax-setup.js") public class StartPageView extends VerticalLayout { - private TextArea name; private Button sayHello; public StartPageView() { // todo implement correctly setId("start-page"); - name = new TextArea("translation test"); - name.setValue(getTranslation("abs-rule")); - name.setWidthFull(); add(new MathjaxDisplay()); sayHello = new Button("Say hello"); - add(name, sayHello); - sayHello.addClickListener(e -> { - Notification.show("Hello " + name.getValue()); - }); + add(sayHello); } } diff --git a/src/main/java/edu/kit/typicalc/view/main/MathjaxDisplay.java b/src/main/java/edu/kit/typicalc/view/main/MathjaxDisplay.java index 22cfde8..283183f 100644 --- a/src/main/java/edu/kit/typicalc/view/main/MathjaxDisplay.java +++ b/src/main/java/edu/kit/typicalc/view/main/MathjaxDisplay.java @@ -16,7 +16,7 @@ public class MathjaxDisplay extends LitTemplate { * Creates the hello world template. */ public MathjaxDisplay() { - content.add("testtestetstest"); + content.add(getTranslation("abs-rule")); } } diff --git a/src/main/java/edu/kit/typicalc/view/main/UpperBar.java b/src/main/java/edu/kit/typicalc/view/main/UpperBar.java index 9940ad2..233805d 100644 --- a/src/main/java/edu/kit/typicalc/view/main/UpperBar.java +++ b/src/main/java/edu/kit/typicalc/view/main/UpperBar.java @@ -2,7 +2,6 @@ package edu.kit.typicalc.view.main; import com.vaadin.flow.component.applayout.DrawerToggle; import com.vaadin.flow.component.dependency.CssImport; -import com.vaadin.flow.component.dialog.Dialog; import com.vaadin.flow.component.html.H1; import com.vaadin.flow.component.icon.Icon; import com.vaadin.flow.component.icon.VaadinIcon; diff --git a/src/main/resources/language/translation_de.properties b/src/main/resources/language/translation_de.properties index 77cc255..3aff95b 100644 --- a/src/main/resources/language/translation_de.properties +++ b/src/main/resources/language/translation_de.properties @@ -1,5 +1,6 @@ root.close=Schließen root.copyLatex=Kopiere Latex-Code +root.typicalc=Typicalc abs-rule=\\begin{prooftree}\ \\AxiomC{$\\Gamma=\\vdash t_1 : \\tau_1 \\rightarrow \\tau_2$}\ @@ -13,4 +14,6 @@ abs-rule=\\begin{prooftree}\ test=hello world root.typicalc=Typicalc root.lambda=\u03BB -root.typeInfer=Typisieren \ No newline at end of file +root.typeInfer=Typisieren + + diff --git a/src/main/resources/language/translation_en.properties b/src/main/resources/language/translation_en.properties index fe352c0..e0fa3f2 100644 --- a/src/main/resources/language/translation_en.properties +++ b/src/main/resources/language/translation_en.properties @@ -1,3 +1,7 @@ +root.close=Close +root.copyLatex=Copy latex code +root.typicalc=Typicalc + abs-rule=\ \\begin{prooftree}\n\ \\AxiomC{$\\Gamma=\\vdash t_1 : \\tau_1 \\rightarrow \\tau_2$}\n\ @@ -6,7 +10,3 @@ abs-rule=\ \\LeftLabel{APP}\n\ \\BinaryInfC{$\\Gamma \\vdash t_1 \\ t_2 : \\tau_2$}\n\ \\end{prooftree} - -test=hello world -root.close=Close -root.copyLatex=Copy latex code \ No newline at end of file