diff --git a/packages/builder/src/builderStore/store/index.js b/packages/builder/src/builderStore/store/index.js index efd079ae5e..a74caa064a 100644 --- a/packages/builder/src/builderStore/store/index.js +++ b/packages/builder/src/builderStore/store/index.js @@ -113,7 +113,7 @@ const setPackage = (store, initial) => async (pkg) => { initial.pages = pkg.pages initial.hasAppPackage = true initial.screens = values(pkg.screens) - initial.templates = pkg.components.templates + // initial.templates = pkg.components.templates initial.builtins = [getBuiltin("##builtin/screenslot")] initial.appInstances = pkg.application.instances initial.appId = pkg.application._id diff --git a/packages/builder/src/components/userInterface/EventsEditor/EventsEditor.svelte b/packages/builder/src/components/userInterface/EventsEditor/EventsEditor.svelte index 0808e8ca43..1dbb3e01d2 100644 --- a/packages/builder/src/components/userInterface/EventsEditor/EventsEditor.svelte +++ b/packages/builder/src/components/userInterface/EventsEditor/EventsEditor.svelte @@ -36,7 +36,7 @@ const componentDefinition = components[component._component]; events = Object.keys(componentDefinition.props) .filter( - propName => componentDefinition.props[propName].type === EVENT_TYPE + propName => componentDefinition.props[propName] === EVENT_TYPE ) .map(propName => ({ name: propName, diff --git a/packages/builder/src/components/userInterface/pagesParsing/types.js b/packages/builder/src/components/userInterface/pagesParsing/types.js index afe469e36c..e73200a56e 100644 --- a/packages/builder/src/components/userInterface/pagesParsing/types.js +++ b/packages/builder/src/components/userInterface/pagesParsing/types.js @@ -66,7 +66,7 @@ import { // const isEventList = e => isArray(e) && every(isEvent)(e) -// // const EMPTY_STATE = () => ({ [BB_STATE_BINDINGPATH]: "" }); +// const EMPTY_STATE = () => ({ [BB_STATE_BINDINGPATH]: "" }); // export const types = { // string: propType("", isString, defaultDef("string")), diff --git a/packages/builder/src/components/userInterface/temporaryPanelStructure.js b/packages/builder/src/components/userInterface/temporaryPanelStructure.js index 6b54fff2ad..f0f91265b2 100644 --- a/packages/builder/src/components/userInterface/temporaryPanelStructure.js +++ b/packages/builder/src/components/userInterface/temporaryPanelStructure.js @@ -56,7 +56,7 @@ export default { commonProps: {}, children: [ { - _component: "@budibase/standard-components/textfield", + _component: "@budibase/standard-components/input", name: "Textfield", description: "A textfield component that allows the user to input text.", icon: 'ri-edit-box-line', @@ -147,6 +147,7 @@ export default { children: [ { name: 'Table', + _component: "@budibase/materialdesign-components/Datatable", description: 'A component that generates a table from your data.', icon: 'ri-archive-drawer-fill', commonProps: {}, diff --git a/packages/builder/src/pages/[application]/_layout.svelte b/packages/builder/src/pages/[application]/_layout.svelte index b340a89366..1fa03918cf 100644 --- a/packages/builder/src/pages/[application]/_layout.svelte +++ b/packages/builder/src/pages/[application]/_layout.svelte @@ -10,8 +10,6 @@ // Get Package and set store export let application - let ready = false - let promise = getPackage() async function getPackage() { @@ -62,7 +60,7 @@ console.log}> + on:click={() => location = `/${application}`}> diff --git a/packages/client/src/createApp.js b/packages/client/src/createApp.js index d7ad44f91b..5a5ff6fde3 100644 --- a/packages/client/src/createApp.js +++ b/packages/client/src/createApp.js @@ -12,11 +12,6 @@ export const createApp = ( uiFunctions, window ) => { - // const coreApi = createCoreApi(backendDefinition, user) - // backendDefinition.hierarchy = coreApi.templateApi.constructHierarchy( - // backendDefinition.hierarchy - // ) - let routeTo let currentUrl let screenStateManager diff --git a/packages/client/src/render/attachChildren.js b/packages/client/src/render/attachChildren.js index 3e244b495e..bcb5285cb0 100644 --- a/packages/client/src/render/attachChildren.js +++ b/packages/client/src/render/attachChildren.js @@ -40,12 +40,12 @@ export const attachChildren = initialiseOpts => (htmlElement, options) => { if (!componentName || !libName) return - const componentConstructor = componentLibraries[libName][componentName] + const ComponentConstructor = componentLibraries[libName][componentName] const childNodesThisIteration = prepareRenderComponent({ props: childProps, parentNode: treeNode, - componentConstructor, + ComponentConstructor, uiFunctions, htmlElement, anchor, diff --git a/packages/client/src/render/prepareRenderComponent.js b/packages/client/src/render/prepareRenderComponent.js index fe6757dd1c..916ac82960 100644 --- a/packages/client/src/render/prepareRenderComponent.js +++ b/packages/client/src/render/prepareRenderComponent.js @@ -1,5 +1,5 @@ export const prepareRenderComponent = ({ - componentConstructor, + ComponentConstructor, uiFunctions, htmlElement, anchor, @@ -26,7 +26,7 @@ export const prepareRenderComponent = ({ nodesToRender.push(thisNode) thisNode.render = initialProps => { - thisNode.component = new componentConstructor({ + thisNode.component = new ComponentConstructor({ target: htmlElement, props: initialProps, hydrate: false, diff --git a/packages/common/.babelrc b/packages/common/.babelrc deleted file mode 100644 index c52b9d492a..0000000000 --- a/packages/common/.babelrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "presets": ["@babel/preset-env"], - "sourceMaps": "inline", - "retainLines": true, - "plugins": [ - ["@babel/plugin-transform-runtime", - { - "regenerator": true - } - ] - ] -} \ No newline at end of file diff --git a/packages/common/.gitignore b/packages/common/.gitignore deleted file mode 100644 index 3cc4dfd11a..0000000000 --- a/packages/common/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ - -# Logs -logs -*.log - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release -.eslintcache - -# Dependency directory -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git -node_modules -node_modules_ubuntu -node_modules_windows - -# OSX -.DS_Store - -# flow-typed -flow-typed/npm/* -!flow-typed/npm/module_vx.x.x.js - - -.idea -npm-debug.log.* -lib diff --git a/packages/common/.npmignore b/packages/common/.npmignore deleted file mode 100644 index 9fdaeccbc3..0000000000 --- a/packages/common/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!dist/* diff --git a/packages/common/.travis.yml b/packages/common/.travis.yml deleted file mode 100644 index 56e1192d3b..0000000000 --- a/packages/common/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -sudo: required - -notifications: - slack: budibase:Nx2QNi9CP87Nn7ah2A4Qdzyy - -script: -- npm install -- npm install -g jest -- node node_modules/eslint/bin/eslint src/**/*.js -- jest - diff --git a/packages/common/.vscode/launch.json b/packages/common/.vscode/launch.json deleted file mode 100644 index b048bd4f3d..0000000000 --- a/packages/common/.vscode/launch.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Launch Program", - "program": "${workspaceFolder}\\index.js" - } - ] -} \ No newline at end of file diff --git a/packages/common/.vscode/settings.json b/packages/common/.vscode/settings.json deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/common/CONTRIBUTING.md b/packages/common/CONTRIBUTING.md deleted file mode 100644 index 4d1ae8559d..0000000000 --- a/packages/common/CONTRIBUTING.md +++ /dev/null @@ -1,22 +0,0 @@ -### Contributing to budibase-core - -* The contributors are listed in [AUTHORS.md](https://github.com/budibase/budibase-core/blob/master/AUTHORS.md) (add yourself). - -* This project uses a modified version of the MPLv2 license, see [LICENSE](https://github.com/budibase/budibase-core/blob/master/LICENSE). - -* We use the [C4 (Collective Code Construction Contract)](https://rfc.zeromq.org/spec:42/C4/) process for contributions. -Please read this if you are unfamiliar with it. - -* Please maintain the existing code style. - -* Please try to keep your commits small and focussed. - -* If the project diverges from your branch, please rebase instead of merging. This makes the commit graph easier to read. - -#### p.S... - -I am using contribution guidelines from the fantastic [ZeroMQ](https://github.com/zeromq) community. If you are interested why, it's because I believe in the ethos laid out by this community, and written about in depth in the book ["Social Architecture"](https://www.amazon.com/Social-Architecture-Building-line-Communities/dp/1533112452) by Pieter Hintjens. - -I am very much open to evolving this to suit our needs. - -Love from [Mike](https://github.com/mikebudi). diff --git a/packages/common/LICENSE b/packages/common/LICENSE deleted file mode 100644 index a612ad9813..0000000000 --- a/packages/common/LICENSE +++ /dev/null @@ -1,373 +0,0 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. diff --git a/packages/common/lib/common/apiWrapper.js b/packages/common/lib/common/apiWrapper.js deleted file mode 100644 index 49d865fc94..0000000000 --- a/packages/common/lib/common/apiWrapper.js +++ /dev/null @@ -1,129 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = exports.apiWrapperSync = exports.apiWrapper = void 0;var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _fp = require("lodash/fp"); -var _shortid = require("shortid"); -var _errors = require("./errors"); - -var apiWrapper = /*#__PURE__*/function () {var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee( - app, - eventNamespace, - isAuthorized, - eventContext, - func) {var startDate,elapsed,_len,params,_key,result,_args = arguments;return _regenerator["default"].wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0: - - - pushCallStack(app, eventNamespace);if ( - - isAuthorized(app)) {_context.next = 4;break;} - handleNotAuthorized(app, eventContext, eventNamespace);return _context.abrupt("return");case 4: - - - - startDate = Date.now(); - elapsed = function elapsed() {return Date.now() - startDate;};_context.prev = 6;_context.next = 9;return ( - - - app.publish(eventNamespace.onBegin, eventContext));case 9:for (_len = _args.length, params = new Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {params[_key - 5] = _args[_key];}_context.next = 12;return ( - - func.apply(void 0, params));case 12:result = _context.sent;_context.next = 15;return ( - - publishComplete(app, eventContext, eventNamespace, elapsed, result));case 15:return _context.abrupt("return", - result);case 18:_context.prev = 18;_context.t0 = _context["catch"](6);_context.next = 22;return ( - - publishError(app, eventContext, eventNamespace, elapsed, _context.t0));case 22:throw _context.t0;case 23:case "end":return _context.stop();}}}, _callee, null, [[6, 18]]);}));return function apiWrapper(_x, _x2, _x3, _x4, _x5) {return _ref.apply(this, arguments);};}();exports.apiWrapper = apiWrapper; - - - - -var apiWrapperSync = function apiWrapperSync( -app, -eventNamespace, -isAuthorized, -eventContext, -func) - -{ - pushCallStack(app, eventNamespace); - - if (!isAuthorized(app)) { - handleNotAuthorized(app, eventContext, eventNamespace); - return; - } - - var startDate = Date.now(); - var elapsed = function elapsed() {return Date.now() - startDate;}; - - try { - app.publish(eventNamespace.onBegin, eventContext);for (var _len2 = arguments.length, params = new Array(_len2 > 5 ? _len2 - 5 : 0), _key2 = 5; _key2 < _len2; _key2++) {params[_key2 - 5] = arguments[_key2];} - - var result = func.apply(void 0, params); - - publishComplete(app, eventContext, eventNamespace, elapsed, result); - return result; - } catch (error) { - publishError(app, eventContext, eventNamespace, elapsed, error); - throw error; - } -};exports.apiWrapperSync = apiWrapperSync; - -var handleNotAuthorized = function handleNotAuthorized(app, eventContext, eventNamespace) { - var err = new _errors.UnauthorisedError("Unauthorized: ".concat(eventNamespace)); - publishError(app, eventContext, eventNamespace, function () {return 0;}, err); - throw err; -}; - -var pushCallStack = function pushCallStack(app, eventNamespace, seedCallId) { - var callId = (0, _shortid.generate)(); - - var createCallStack = function createCallStack() {return { - seedCallId: !(0, _fp.isUndefined)(seedCallId) ? seedCallId : callId, - threadCallId: callId, - stack: [] };}; - - - if ((0, _fp.isUndefined)(app.calls)) { - app.calls = createCallStack(); - } - - app.calls.stack.push({ - namespace: eventNamespace, - callId: callId }); - -}; - -var popCallStack = function popCallStack(app) { - app.calls.stack.pop(); - if (app.calls.stack.length === 0) { - delete app.calls; - } -}; - -var publishError = /*#__PURE__*/function () {var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2( - app, - eventContext, - eventNamespace, - elapsed, - err) {var ctx;return _regenerator["default"].wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0: - - ctx = (0, _fp.cloneDeep)(eventContext); - ctx.error = err; - ctx.elapsed = elapsed();_context2.next = 5;return ( - app.publish(eventNamespace.onError, ctx));case 5: - popCallStack(app);case 6:case "end":return _context2.stop();}}}, _callee2);}));return function publishError(_x6, _x7, _x8, _x9, _x10) {return _ref2.apply(this, arguments);};}(); - - -var publishComplete = /*#__PURE__*/function () {var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3( - app, - eventContext, - eventNamespace, - elapsed, - result) {var endcontext;return _regenerator["default"].wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0: - - endcontext = (0, _fp.cloneDeep)(eventContext); - endcontext.result = result; - endcontext.elapsed = elapsed();_context3.next = 5;return ( - app.publish(eventNamespace.onComplete, endcontext));case 5: - popCallStack(app);return _context3.abrupt("return", - result);case 7:case "end":return _context3.stop();}}}, _callee3);}));return function publishComplete(_x11, _x12, _x13, _x14, _x15) {return _ref3.apply(this, arguments);};}();var _default = - - -apiWrapper;exports["default"] = _default; -//# sourceMappingURL=apiWrapper.js.map \ No newline at end of file diff --git a/packages/common/lib/common/apiWrapper.js.map b/packages/common/lib/common/apiWrapper.js.map deleted file mode 100644 index a1ed6bc2e7..0000000000 --- a/packages/common/lib/common/apiWrapper.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/common/apiWrapper.js"],"names":["apiWrapper","app","eventNamespace","isAuthorized","eventContext","func","pushCallStack","handleNotAuthorized","startDate","Date","now","elapsed","publish","onBegin","params","result","publishComplete","publishError","apiWrapperSync","error","err","UnauthorisedError","seedCallId","callId","createCallStack","threadCallId","stack","calls","push","namespace","popCallStack","pop","length","ctx","onError","endcontext","onComplete"],"mappings":"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","sourcesContent":["import { cloneDeep, isUndefined } from \"lodash/fp\"\nimport { generate } from \"shortid\"\nimport { UnauthorisedError } from \"./errors\"\n\nexport const apiWrapper = async (\n app,\n eventNamespace,\n isAuthorized,\n eventContext,\n func,\n ...params\n) => {\n pushCallStack(app, eventNamespace)\n\n if (!isAuthorized(app)) {\n handleNotAuthorized(app, eventContext, eventNamespace)\n return\n }\n\n const startDate = Date.now()\n const elapsed = () => Date.now() - startDate\n\n try {\n await app.publish(eventNamespace.onBegin, eventContext)\n\n const result = await func(...params)\n\n await publishComplete(app, eventContext, eventNamespace, elapsed, result)\n return result\n } catch (error) {\n await publishError(app, eventContext, eventNamespace, elapsed, error)\n throw error\n }\n}\n\nexport const apiWrapperSync = (\n app,\n eventNamespace,\n isAuthorized,\n eventContext,\n func,\n ...params\n) => {\n pushCallStack(app, eventNamespace)\n\n if (!isAuthorized(app)) {\n handleNotAuthorized(app, eventContext, eventNamespace)\n return\n }\n\n const startDate = Date.now()\n const elapsed = () => Date.now() - startDate\n\n try {\n app.publish(eventNamespace.onBegin, eventContext)\n\n const result = func(...params)\n\n publishComplete(app, eventContext, eventNamespace, elapsed, result)\n return result\n } catch (error) {\n publishError(app, eventContext, eventNamespace, elapsed, error)\n throw error\n }\n}\n\nconst handleNotAuthorized = (app, eventContext, eventNamespace) => {\n const err = new UnauthorisedError(`Unauthorized: ${eventNamespace}`)\n publishError(app, eventContext, eventNamespace, () => 0, err)\n throw err\n}\n\nconst pushCallStack = (app, eventNamespace, seedCallId) => {\n const callId = generate()\n\n const createCallStack = () => ({\n seedCallId: !isUndefined(seedCallId) ? seedCallId : callId,\n threadCallId: callId,\n stack: [],\n })\n\n if (isUndefined(app.calls)) {\n app.calls = createCallStack()\n }\n\n app.calls.stack.push({\n namespace: eventNamespace,\n callId,\n })\n}\n\nconst popCallStack = app => {\n app.calls.stack.pop()\n if (app.calls.stack.length === 0) {\n delete app.calls\n }\n}\n\nconst publishError = async (\n app,\n eventContext,\n eventNamespace,\n elapsed,\n err\n) => {\n const ctx = cloneDeep(eventContext)\n ctx.error = err\n ctx.elapsed = elapsed()\n await app.publish(eventNamespace.onError, ctx)\n popCallStack(app)\n}\n\nconst publishComplete = async (\n app,\n eventContext,\n eventNamespace,\n elapsed,\n result\n) => {\n const endcontext = cloneDeep(eventContext)\n endcontext.result = result\n endcontext.elapsed = elapsed()\n await app.publish(eventNamespace.onComplete, endcontext)\n popCallStack(app)\n return result\n}\n\nexport default apiWrapper\n"],"file":"apiWrapper.js"} \ No newline at end of file diff --git a/packages/common/lib/common/compileCode.js b/packages/common/lib/common/compileCode.js deleted file mode 100644 index 7a8589f51b..0000000000 --- a/packages/common/lib/common/compileCode.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.compileCode = void 0;var _compilerUtil = require("@nx-js/compiler-util"); -var _fp = require("lodash/fp"); - -var compileCode = function compileCode(code) { - var func; - var safeCode; - - if ((0, _fp.includes)("return ")(code)) { - safeCode = code; - } else { - var trimmed = code.trim(); - trimmed = trimmed.endsWith(";") ? - trimmed.substring(0, trimmed.length - 1) : - trimmed; - safeCode = "return (".concat(trimmed, ")"); - } - - try { - func = (0, _compilerUtil.compileCode)(safeCode); - } catch (e) { - e.message = "Error compiling code : ".concat(code, " : ").concat(e.message); - throw e; - } - - return func; -};exports.compileCode = compileCode; -//# sourceMappingURL=compileCode.js.map \ No newline at end of file diff --git a/packages/common/lib/common/compileCode.js.map b/packages/common/lib/common/compileCode.js.map deleted file mode 100644 index f32cc0ab6c..0000000000 --- a/packages/common/lib/common/compileCode.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/common/compileCode.js"],"names":["compileCode","code","func","safeCode","trimmed","trim","endsWith","substring","length","e","message"],"mappings":"wGAAA;AACA;;AAEO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAAAC,IAAI,EAAI;AACjC,MAAIC,IAAJ;AACA,MAAIC,QAAJ;;AAEA,MAAI,kBAAS,SAAT,EAAoBF,IAApB,CAAJ,EAA+B;AAC7BE,IAAAA,QAAQ,GAAGF,IAAX;AACD,GAFD,MAEO;AACL,QAAIG,OAAO,GAAGH,IAAI,CAACI,IAAL,EAAd;AACAD,IAAAA,OAAO,GAAGA,OAAO,CAACE,QAAR,CAAiB,GAAjB;AACNF,IAAAA,OAAO,CAACG,SAAR,CAAkB,CAAlB,EAAqBH,OAAO,CAACI,MAAR,GAAiB,CAAtC,CADM;AAENJ,IAAAA,OAFJ;AAGAD,IAAAA,QAAQ,qBAAcC,OAAd,MAAR;AACD;;AAED,MAAI;AACFF,IAAAA,IAAI,GAAG,+BAAMC,QAAN,CAAP;AACD,GAFD,CAEE,OAAOM,CAAP,EAAU;AACVA,IAAAA,CAAC,CAACC,OAAF,oCAAsCT,IAAtC,gBAAgDQ,CAAC,CAACC,OAAlD;AACA,UAAMD,CAAN;AACD;;AAED,SAAOP,IAAP;AACD,CAtBM,C","sourcesContent":["import { compileCode as cCode } from \"@nx-js/compiler-util\"\nimport { includes } from \"lodash/fp\"\n\nexport const compileCode = code => {\n let func\n let safeCode\n\n if (includes(\"return \")(code)) {\n safeCode = code\n } else {\n let trimmed = code.trim()\n trimmed = trimmed.endsWith(\";\")\n ? trimmed.substring(0, trimmed.length - 1)\n : trimmed\n safeCode = `return (${trimmed})`\n }\n\n try {\n func = cCode(safeCode)\n } catch (e) {\n e.message = `Error compiling code : ${code} : ${e.message}`\n throw e\n }\n\n return func\n}\n"],"file":"compileCode.js"} \ No newline at end of file diff --git a/packages/common/lib/common/errors.js b/packages/common/lib/common/errors.js deleted file mode 100644 index 2087164021..0000000000 --- a/packages/common/lib/common/errors.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.ConflictError = exports.NotFoundError = exports.ForbiddenError = exports.UnauthorisedError = exports.BadRequestError = void 0;var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));function _createSuper(Derived) {return function () {var Super = (0, _getPrototypeOf2["default"])(Derived),result;if (_isNativeReflectConstruct()) {var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor;result = Reflect.construct(Super, arguments, NewTarget);} else {result = Super.apply(this, arguments);}return (0, _possibleConstructorReturn2["default"])(this, result);};}function _isNativeReflectConstruct() {if (typeof Reflect === "undefined" || !Reflect.construct) return false;if (Reflect.construct.sham) return false;if (typeof Proxy === "function") return true;try {Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));return true;} catch (e) {return false;}}var BadRequestError = /*#__PURE__*/function (_Error) {(0, _inherits2["default"])(BadRequestError, _Error);var _super = _createSuper(BadRequestError); - function BadRequestError(message) {var _this;(0, _classCallCheck2["default"])(this, BadRequestError); - _this = _super.call(this, message); - _this.httpStatusCode = 400;return _this; - }return BadRequestError;}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));exports.BadRequestError = BadRequestError;var - - -UnauthorisedError = /*#__PURE__*/function (_Error2) {(0, _inherits2["default"])(UnauthorisedError, _Error2);var _super2 = _createSuper(UnauthorisedError); - function UnauthorisedError(message) {var _this2;(0, _classCallCheck2["default"])(this, UnauthorisedError); - _this2 = _super2.call(this, message); - _this2.httpStatusCode = 401;return _this2; - }return UnauthorisedError;}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));exports.UnauthorisedError = UnauthorisedError;var - - -ForbiddenError = /*#__PURE__*/function (_Error3) {(0, _inherits2["default"])(ForbiddenError, _Error3);var _super3 = _createSuper(ForbiddenError); - function ForbiddenError(message) {var _this3;(0, _classCallCheck2["default"])(this, ForbiddenError); - _this3 = _super3.call(this, message); - _this3.httpStatusCode = 403;return _this3; - }return ForbiddenError;}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));exports.ForbiddenError = ForbiddenError;var - - -NotFoundError = /*#__PURE__*/function (_Error4) {(0, _inherits2["default"])(NotFoundError, _Error4);var _super4 = _createSuper(NotFoundError); - function NotFoundError(message) {var _this4;(0, _classCallCheck2["default"])(this, NotFoundError); - _this4 = _super4.call(this, message); - _this4.httpStatusCode = 404;return _this4; - }return NotFoundError;}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));exports.NotFoundError = NotFoundError;var - - -ConflictError = /*#__PURE__*/function (_Error5) {(0, _inherits2["default"])(ConflictError, _Error5);var _super5 = _createSuper(ConflictError); - function ConflictError(message) {var _this5;(0, _classCallCheck2["default"])(this, ConflictError); - _this5 = _super5.call(this, message); - _this5.httpStatusCode = 409;return _this5; - }return ConflictError;}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));exports.ConflictError = ConflictError; -//# sourceMappingURL=errors.js.map \ No newline at end of file diff --git a/packages/common/lib/common/errors.js.map b/packages/common/lib/common/errors.js.map deleted file mode 100644 index 833284900a..0000000000 --- a/packages/common/lib/common/errors.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/common/errors.js"],"names":["BadRequestError","message","httpStatusCode","Error","UnauthorisedError","ForbiddenError","NotFoundError","ConflictError"],"mappings":"i9CAAaA,e;AACX,2BAAYC,OAAZ,EAAqB;AACnB,8BAAMA,OAAN;AACA,UAAKC,cAAL,GAAsB,GAAtB,CAFmB;AAGpB,G,yEAJkCC,K;;;AAOxBC,iB;AACX,6BAAYH,OAAZ,EAAqB;AACnB,gCAAMA,OAAN;AACA,WAAKC,cAAL,GAAsB,GAAtB,CAFmB;AAGpB,G,2EAJoCC,K;;;AAO1BE,c;AACX,0BAAYJ,OAAZ,EAAqB;AACnB,gCAAMA,OAAN;AACA,WAAKC,cAAL,GAAsB,GAAtB,CAFmB;AAGpB,G,wEAJiCC,K;;;AAOvBG,a;AACX,yBAAYL,OAAZ,EAAqB;AACnB,gCAAMA,OAAN;AACA,WAAKC,cAAL,GAAsB,GAAtB,CAFmB;AAGpB,G,uEAJgCC,K;;;AAOtBI,a;AACX,yBAAYN,OAAZ,EAAqB;AACnB,gCAAMA,OAAN;AACA,WAAKC,cAAL,GAAsB,GAAtB,CAFmB;AAGpB,G,uEAJgCC,K","sourcesContent":["export class BadRequestError extends Error {\n constructor(message) {\n super(message)\n this.httpStatusCode = 400\n }\n}\n\nexport class UnauthorisedError extends Error {\n constructor(message) {\n super(message)\n this.httpStatusCode = 401\n }\n}\n\nexport class ForbiddenError extends Error {\n constructor(message) {\n super(message)\n this.httpStatusCode = 403\n }\n}\n\nexport class NotFoundError extends Error {\n constructor(message) {\n super(message)\n this.httpStatusCode = 404\n }\n}\n\nexport class ConflictError extends Error {\n constructor(message) {\n super(message)\n this.httpStatusCode = 409\n }\n}\n"],"file":"errors.js"} \ No newline at end of file diff --git a/packages/common/lib/common/eventAggregator.js b/packages/common/lib/common/eventAggregator.js deleted file mode 100644 index cc30849911..0000000000 --- a/packages/common/lib/common/eventAggregator.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = exports.createEventAggregator = void 0;var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _fp = require("lodash/fp");function _createForOfIteratorHelper(o) {if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) {var i = 0;var F = function F() {};return { s: F, n: function n() {if (i >= o.length) return { done: true };return { done: false, value: o[i++] };}, e: function e(_e) {throw _e;}, f: F };}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var it,normalCompletion = true,didErr = false,err;return { s: function s() {it = o[Symbol.iterator]();}, n: function n() {var step = it.next();normalCompletion = step.done;return step;}, e: function e(_e2) {didErr = true;err = _e2;}, f: function f() {try {if (!normalCompletion && it["return"] != null) it["return"]();} finally {if (didErr) throw err;}} };}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(n);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;} - -var publish = function publish(handlers) {return /*#__PURE__*/function () {var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(eventName) {var context,_iterator,_step,handler,_args = arguments;return _regenerator["default"].wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:context = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};if ( - (0, _fp.has)(eventName)(handlers)) {_context.next = 3;break;}return _context.abrupt("return");case 3:_iterator = _createForOfIteratorHelper( - - handlers[eventName]);_context.prev = 4;_iterator.s();case 6:if ((_step = _iterator.n()).done) {_context.next = 12;break;}handler = _step.value;_context.next = 10;return ( - handler(eventName, context));case 10:_context.next = 6;break;case 12:_context.next = 17;break;case 14:_context.prev = 14;_context.t0 = _context["catch"](4);_iterator.e(_context.t0);case 17:_context.prev = 17;_iterator.f();return _context.finish(17);case 20:case "end":return _context.stop();}}}, _callee, null, [[4, 14, 17, 20]]);}));return function (_x) {return _ref.apply(this, arguments);};}();}; - - - -var subscribe = function subscribe(handlers) {return function (eventName, handler) { - if (!(0, _fp.has)(eventName)(handlers)) { - handlers[eventName] = []; - } - handlers[eventName].push(handler); - };}; - -var createEventAggregator = function createEventAggregator() { - var handlers = {}; - var eventAggregator = { - publish: publish(handlers), - subscribe: subscribe(handlers) }; - - return eventAggregator; -};exports.createEventAggregator = createEventAggregator;var _default = - -createEventAggregator;exports["default"] = _default; -//# sourceMappingURL=eventAggregator.js.map \ No newline at end of file diff --git a/packages/common/lib/common/eventAggregator.js.map b/packages/common/lib/common/eventAggregator.js.map deleted file mode 100644 index 8c8719202d..0000000000 --- a/packages/common/lib/common/eventAggregator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/common/eventAggregator.js"],"names":["publish","handlers","eventName","context","handler","subscribe","push","createEventAggregator","eventAggregator"],"mappings":"iZAAA,+B;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAAAC,QAAQ,6HAAI,iBAAOC,SAAP,oLAAkBC,OAAlB,2DAA4B,EAA5B;AACrB,2BAAID,SAAJ,EAAeD,QAAf,CADqB;;AAGJA,cAAAA,QAAQ,CAACC,SAAD,CAHJ,sGAGfE,OAHe;AAIlBA,gBAAAA,OAAO,CAACF,SAAD,EAAYC,OAAZ,CAJW,gTAAJ,mEAAxB;;;;AAQA,IAAME,SAAS,GAAG,SAAZA,SAAY,CAAAJ,QAAQ,UAAI,UAACC,SAAD,EAAYE,OAAZ,EAAwB;AACpD,QAAI,CAAC,aAAIF,SAAJ,EAAeD,QAAf,CAAL,EAA+B;AAC7BA,MAAAA,QAAQ,CAACC,SAAD,CAAR,GAAsB,EAAtB;AACD;AACDD,IAAAA,QAAQ,CAACC,SAAD,CAAR,CAAoBI,IAApB,CAAyBF,OAAzB;AACD,GALyB,EAA1B;;AAOO,IAAMG,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AACzC,MAAMN,QAAQ,GAAG,EAAjB;AACA,MAAMO,eAAe,GAAG;AACtBR,IAAAA,OAAO,EAAEA,OAAO,CAACC,QAAD,CADM;AAEtBI,IAAAA,SAAS,EAAEA,SAAS,CAACJ,QAAD,CAFE,EAAxB;;AAIA,SAAOO,eAAP;AACD,CAPM,C;;AASQD,qB","sourcesContent":["import { has } from \"lodash/fp\"\n\nconst publish = handlers => async (eventName, context = {}) => {\n if (!has(eventName)(handlers)) return\n\n for (const handler of handlers[eventName]) {\n await handler(eventName, context)\n }\n}\n\nconst subscribe = handlers => (eventName, handler) => {\n if (!has(eventName)(handlers)) {\n handlers[eventName] = []\n }\n handlers[eventName].push(handler)\n}\n\nexport const createEventAggregator = () => {\n const handlers = {}\n const eventAggregator = {\n publish: publish(handlers),\n subscribe: subscribe(handlers),\n }\n return eventAggregator\n}\n\nexport default createEventAggregator\n"],"file":"eventAggregator.js"} \ No newline at end of file diff --git a/packages/common/lib/common/events.js b/packages/common/lib/common/events.js deleted file mode 100644 index 59b1e5599a..0000000000 --- a/packages/common/lib/common/events.js +++ /dev/null @@ -1,86 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = exports.eventsList = exports.events = void 0;var _fp = require("lodash/fp"); - -var commonPlus = function commonPlus(extra) {return (0, _fp.union)(["onBegin", "onComplete", "onError"])(extra);}; - -var common = function common() {return commonPlus([]);}; - -var _events = { - recordApi: { - save: commonPlus(["onInvalid", "onRecordUpdated", "onRecordCreated"]), - "delete": common(), - getContext: common(), - getNew: common(), - load: common(), - validate: common(), - uploadFile: common(), - downloadFile: common() }, - - indexApi: { - buildIndex: common(), - listItems: common(), - "delete": common(), - aggregates: common() }, - - collectionApi: { - getAllowedRecordTypes: common(), - initialise: common(), - "delete": common() }, - - authApi: { - authenticate: common(), - authenticateTemporaryAccess: common(), - createTemporaryAccess: common(), - createUser: common(), - enableUser: common(), - disableUser: common(), - loadAccessLevels: common(), - getNewAccessLevel: common(), - getNewUser: common(), - getNewUserAuth: common(), - getUsers: common(), - saveAccessLevels: common(), - isAuthorized: common(), - changeMyPassword: common(), - setPasswordFromTemporaryCode: common(), - scorePassword: common(), - isValidPassword: common(), - validateUser: common(), - validateAccessLevels: common(), - setUserAccessLevels: common() }, - - templateApi: { - saveApplicationHierarchy: common(), - saveActionsAndTriggers: common() }, - - actionsApi: { - execute: common() } }; - - - -var _eventsList = []; - -var makeEvent = function makeEvent(area, method, name) {return "".concat(area, ":").concat(method, ":").concat(name);};var _loop = function _loop( - -areaKey) {var _loop2 = function _loop2( - _methodKey) { - _events[areaKey][_methodKey] = (0, _fp.reduce)(function (obj, s) { - obj[s] = makeEvent(areaKey, _methodKey, s); - return obj; - }, {})(_events[areaKey][_methodKey]);};for (var _methodKey in _events[areaKey]) {_loop2(_methodKey); - }};for (var areaKey in _events) {_loop(areaKey); -} - -for (var _areaKey in _events) { - for (var methodKey in _events[_areaKey]) { - for (var name in _events[_areaKey][methodKey]) { - _eventsList.push(_events[_areaKey][methodKey][name]); - } - } -} - -var events = _events;exports.events = events; - -var eventsList = _eventsList;exports.eventsList = eventsList;var _default = - -{ events: _events, eventsList: _eventsList };exports["default"] = _default; -//# sourceMappingURL=events.js.map \ No newline at end of file diff --git a/packages/common/lib/common/events.js.map b/packages/common/lib/common/events.js.map deleted file mode 100644 index edf1c04791..0000000000 --- a/packages/common/lib/common/events.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/common/events.js"],"names":["commonPlus","extra","common","_events","recordApi","save","getContext","getNew","load","validate","uploadFile","downloadFile","indexApi","buildIndex","listItems","aggregates","collectionApi","getAllowedRecordTypes","initialise","authApi","authenticate","authenticateTemporaryAccess","createTemporaryAccess","createUser","enableUser","disableUser","loadAccessLevels","getNewAccessLevel","getNewUser","getNewUserAuth","getUsers","saveAccessLevels","isAuthorized","changeMyPassword","setPasswordFromTemporaryCode","scorePassword","isValidPassword","validateUser","validateAccessLevels","setUserAccessLevels","templateApi","saveApplicationHierarchy","saveActionsAndTriggers","actionsApi","execute","_eventsList","makeEvent","area","method","name","areaKey","methodKey","obj","s","push","events","eventsList"],"mappings":"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","sourcesContent":["import { union, reduce } from \"lodash/fp\"\n\nconst commonPlus = extra => union([\"onBegin\", \"onComplete\", \"onError\"])(extra)\n\nconst common = () => commonPlus([])\n\nconst _events = {\n recordApi: {\n save: commonPlus([\"onInvalid\", \"onRecordUpdated\", \"onRecordCreated\"]),\n delete: common(),\n getContext: common(),\n getNew: common(),\n load: common(),\n validate: common(),\n uploadFile: common(),\n downloadFile: common(),\n },\n indexApi: {\n buildIndex: common(),\n listItems: common(),\n delete: common(),\n aggregates: common(),\n },\n collectionApi: {\n getAllowedRecordTypes: common(),\n initialise: common(),\n delete: common(),\n },\n authApi: {\n authenticate: common(),\n authenticateTemporaryAccess: common(),\n createTemporaryAccess: common(),\n createUser: common(),\n enableUser: common(),\n disableUser: common(),\n loadAccessLevels: common(),\n getNewAccessLevel: common(),\n getNewUser: common(),\n getNewUserAuth: common(),\n getUsers: common(),\n saveAccessLevels: common(),\n isAuthorized: common(),\n changeMyPassword: common(),\n setPasswordFromTemporaryCode: common(),\n scorePassword: common(),\n isValidPassword: common(),\n validateUser: common(),\n validateAccessLevels: common(),\n setUserAccessLevels: common(),\n },\n templateApi: {\n saveApplicationHierarchy: common(),\n saveActionsAndTriggers: common(),\n },\n actionsApi: {\n execute: common(),\n },\n}\n\nconst _eventsList = []\n\nconst makeEvent = (area, method, name) => `${area}:${method}:${name}`\n\nfor (const areaKey in _events) {\n for (const methodKey in _events[areaKey]) {\n _events[areaKey][methodKey] = reduce((obj, s) => {\n obj[s] = makeEvent(areaKey, methodKey, s)\n return obj\n }, {})(_events[areaKey][methodKey])\n }\n}\n\nfor (const areaKey in _events) {\n for (const methodKey in _events[areaKey]) {\n for (const name in _events[areaKey][methodKey]) {\n _eventsList.push(_events[areaKey][methodKey][name])\n }\n }\n}\n\nexport const events = _events\n\nexport const eventsList = _eventsList\n\nexport default { events: _events, eventsList: _eventsList }\n"],"file":"events.js"} \ No newline at end of file diff --git a/packages/common/lib/common/index.js b/packages/common/lib/common/index.js deleted file mode 100644 index e31e55402e..0000000000 --- a/packages/common/lib/common/index.js +++ /dev/null @@ -1,307 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "events", { enumerable: true, get: function get() {return _events.events;} });exports["default"] = exports.retry = exports.pause = exports.pushAll = exports.isArrayOfString = exports.toNumberOrNull = exports.toBoolOrNull = exports.toDateOrNull = exports.isSafeInteger = exports.awEx = exports.getHashCode = exports.contains = exports.StartsWith = exports.memberMatches = exports.defaultCase = exports.isOneOf = exports.isValue = exports.switchCase = exports.handleErrorWithUndefined = exports.handleErrorWith = exports.executesWithoutException = exports.causesException = exports.tryAwaitOrIgnore = exports.tryOrIgnore = exports.defineError = exports.tryAwaitOr = exports.tryOr = exports.isNonEmptyString = exports.isNonEmptyArray = exports.isAsync = exports.isNotEmpty = exports.all = exports.none = exports.mapIfSomethingOrBlank = exports.mapIfSomethingOrDefault = exports.somethingOrDefault = exports.somethingOrGetDefault = exports.isNothingOrEmpty = exports.isNothing = exports.isSomething = exports.insensitiveEquals = exports.anyTrue = exports.allTrue = exports.isNotNaN = exports.isNonNull = exports.isDefined = exports.not = exports.getOrDefault = exports.ifExists = exports.getIndexKeyFromFileKey = exports.dirIndex = exports.appDefinitionFile = exports.templateDefinitions = exports.fieldDefinitions = exports.configFolder = exports.getFileFromKey = exports.getDirFomKey = exports.splitKey = exports.joinKey = exports.safeKey = exports.keySep = exports.$ = exports.$$ = void 0;var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _lodash = require("lodash"); - - - - - - - - - - -var _fp = require("lodash/fp"); - - - - - - - - - - - - - - - - - -var _events = require("./events.js");function _createForOfIteratorHelper(o) {if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) {var i = 0;var F = function F() {};return { s: F, n: function n() {if (i >= o.length) return { done: true };return { done: false, value: o[i++] };}, e: function e(_e) {throw _e;}, f: F };}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var it,normalCompletion = true,didErr = false,err;return { s: function s() {it = o[Symbol.iterator]();}, n: function n() {var step = it.next();normalCompletion = step.done;return step;}, e: function e(_e2) {didErr = true;err = _e2;}, f: function f() {try {if (!normalCompletion && it["return"] != null) it["return"]();} finally {if (didErr) throw err;}} };}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(n);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;} - -// this is the combinator function -var $$ = function $$() {for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {funcs[_key] = arguments[_key];}return function (arg) {return (0, _lodash.flow)(funcs)(arg);};}; - -// this is the pipe function -exports.$$ = $$;var $ = function $(arg, funcs) {return $$.apply(void 0, (0, _toConsumableArray2["default"])(funcs))(arg);};exports.$ = $; - -var keySep = "/";exports.keySep = keySep; -var trimKeySep = function trimKeySep(str) {return (0, _lodash.trim)(str, keySep);}; -var splitByKeySep = function splitByKeySep(str) {return (0, _fp.split)(keySep)(str);}; -var safeKey = function safeKey(key) {return ( - (0, _lodash.replace)("".concat(keySep).concat(trimKeySep(key)), "".concat(keySep).concat(keySep), keySep));};exports.safeKey = safeKey; -var joinKey = function joinKey() {for (var _len2 = arguments.length, strs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {strs[_key2] = arguments[_key2];} - var paramsOrArray = strs.length === 1 & (0, _fp.isArray)(strs[0]) ? strs[0] : strs; - return $(paramsOrArray, [ - (0, _fp.filter)(function (s) {return !(0, _fp.isUndefined)(s) && !(0, _fp.isNull)(s) && s.toString().length > 0;}), - (0, _fp.join)(keySep), - safeKey]); - -};exports.joinKey = joinKey; -var splitKey = $$(trimKeySep, splitByKeySep);exports.splitKey = splitKey; -var getDirFomKey = $$(splitKey, _lodash.dropRight, function (p) {return joinKey.apply(void 0, (0, _toConsumableArray2["default"])(p));});exports.getDirFomKey = getDirFomKey; -var getFileFromKey = $$(splitKey, _lodash.takeRight, _lodash.head);exports.getFileFromKey = getFileFromKey; - -var configFolder = "".concat(keySep, ".config");exports.configFolder = configFolder; -var fieldDefinitions = joinKey(configFolder, "fields.json");exports.fieldDefinitions = fieldDefinitions; -var templateDefinitions = joinKey(configFolder, "templates.json");exports.templateDefinitions = templateDefinitions; -var appDefinitionFile = joinKey(configFolder, "appDefinition.json");exports.appDefinitionFile = appDefinitionFile; -var dirIndex = function dirIndex(folderPath) {return ( - joinKey.apply(void 0, [configFolder, "dir"].concat((0, _toConsumableArray2["default"])(splitKey(folderPath)), ["dir.idx"])));};exports.dirIndex = dirIndex; -var getIndexKeyFromFileKey = $$(getDirFomKey, dirIndex);exports.getIndexKeyFromFileKey = getIndexKeyFromFileKey; - -var ifExists = function ifExists(val, exists, notExists) {return ( - (0, _fp.isUndefined)(val) ? - (0, _fp.isUndefined)(notExists) ? - function () {}() : - notExists() : - exists());};exports.ifExists = ifExists; - -var getOrDefault = function getOrDefault(val, defaultVal) {return ( - ifExists( - val, - function () {return val;}, - function () {return defaultVal;}));};exports.getOrDefault = getOrDefault; - - -var not = function not(func) {return function (val) {return !func(val);};};exports.not = not; -var isDefined = not(_fp.isUndefined);exports.isDefined = isDefined; -var isNonNull = not(_fp.isNull);exports.isNonNull = isNonNull; -var isNotNaN = not(_fp.isNaN);exports.isNotNaN = isNotNaN; - -var allTrue = function allTrue() {for (var _len3 = arguments.length, funcArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {funcArgs[_key3] = arguments[_key3];}return function (val) {return ( - (0, _fp.reduce)( - function (result, conditionFunc) {return ( - ((0, _fp.isNull)(result) || result == true) && conditionFunc(val));}, - null)( - funcArgs));};};exports.allTrue = allTrue; - -var anyTrue = function anyTrue() {for (var _len4 = arguments.length, funcArgs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {funcArgs[_key4] = arguments[_key4];}return function (val) {return ( - (0, _fp.reduce)( - function (result, conditionFunc) {return result == true || conditionFunc(val);}, - null)( - funcArgs));};};exports.anyTrue = anyTrue; - -var insensitiveEquals = function insensitiveEquals(str1, str2) {return ( - str1.trim().toLowerCase() === str2.trim().toLowerCase());};exports.insensitiveEquals = insensitiveEquals; - -var isSomething = allTrue(isDefined, isNonNull, isNotNaN);exports.isSomething = isSomething; -var isNothing = not(isSomething);exports.isNothing = isNothing; -var isNothingOrEmpty = function isNothingOrEmpty(v) {return isNothing(v) || (0, _fp.isEmpty)(v);};exports.isNothingOrEmpty = isNothingOrEmpty; -var somethingOrGetDefault = function somethingOrGetDefault(getDefaultFunc) {return function (val) {return ( - isSomething(val) ? val : getDefaultFunc());};};exports.somethingOrGetDefault = somethingOrGetDefault; -var somethingOrDefault = function somethingOrDefault(val, defaultVal) {return ( - somethingOrGetDefault((0, _fp.constant)(defaultVal))(val));};exports.somethingOrDefault = somethingOrDefault; - -var mapIfSomethingOrDefault = function mapIfSomethingOrDefault(mapFunc, defaultVal) {return function (val) {return ( - isSomething(val) ? mapFunc(val) : defaultVal);};};exports.mapIfSomethingOrDefault = mapIfSomethingOrDefault; - -var mapIfSomethingOrBlank = function mapIfSomethingOrBlank(mapFunc) {return ( - mapIfSomethingOrDefault(mapFunc, ""));};exports.mapIfSomethingOrBlank = mapIfSomethingOrBlank; - -var none = function none(predicate) {return function (collection) {return !(0, _fp.some)(predicate)(collection);};};exports.none = none; - -var all = function all(predicate) {return function (collection) {return ( - none(function (v) {return !predicate(v);})(collection));};};exports.all = all; - -var isNotEmpty = function isNotEmpty(ob) {return !(0, _fp.isEmpty)(ob);};exports.isNotEmpty = isNotEmpty; -var isAsync = function isAsync(fn) {return fn.constructor.name === "AsyncFunction";};exports.isAsync = isAsync; -var isNonEmptyArray = allTrue(_fp.isArray, isNotEmpty);exports.isNonEmptyArray = isNonEmptyArray; -var isNonEmptyString = allTrue(_fp.isString, isNotEmpty);exports.isNonEmptyString = isNonEmptyString; -var tryOr = function tryOr(failFunc) {return function (func) { - try {for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {args[_key5 - 1] = arguments[_key5];} - return func.apply.apply(func, [null].concat(args)); - } catch (_) { - return failFunc(); - } - };};exports.tryOr = tryOr; - -var tryAwaitOr = function tryAwaitOr(failFunc) {return /*#__PURE__*/function () {var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(func) {var _len6,args,_key6,_args = arguments;return _regenerator["default"].wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:_context.prev = 0;for (_len6 = _args.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {args[_key6 - 1] = _args[_key6];}_context.next = 4;return ( - - func.apply.apply(func, [null].concat(args)));case 4:return _context.abrupt("return", _context.sent);case 7:_context.prev = 7;_context.t0 = _context["catch"](0);_context.next = 11;return ( - - failFunc());case 11:return _context.abrupt("return", _context.sent);case 12:case "end":return _context.stop();}}}, _callee, null, [[0, 7]]);}));return function (_x) {return _ref.apply(this, arguments);};}();};exports.tryAwaitOr = tryAwaitOr; - - - -var defineError = function defineError(func, errorPrefix) { - try { - return func(); - } catch (err) { - err.message = "".concat(errorPrefix, " : ").concat(err.message); - throw err; - } -};exports.defineError = defineError; - -var tryOrIgnore = tryOr(function () {});exports.tryOrIgnore = tryOrIgnore; -var tryAwaitOrIgnore = tryAwaitOr( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {return _regenerator["default"].wrap(function _callee2$(_context2) {while (1) {switch (_context2.prev = _context2.next) {case 0:case "end":return _context2.stop();}}}, _callee2);})));exports.tryAwaitOrIgnore = tryAwaitOrIgnore; -var causesException = function causesException(func) { - try { - func(); - return false; - } catch (e) { - return true; - } -};exports.causesException = causesException; - -var executesWithoutException = function executesWithoutException(func) {return !causesException(func);};exports.executesWithoutException = executesWithoutException; - -var handleErrorWith = function handleErrorWith(returnValInError) {return ( - tryOr((0, _fp.constant)(returnValInError)));};exports.handleErrorWith = handleErrorWith; - -var handleErrorWithUndefined = handleErrorWith(undefined);exports.handleErrorWithUndefined = handleErrorWithUndefined; - -var switchCase = function switchCase() {for (var _len7 = arguments.length, cases = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {cases[_key7] = arguments[_key7];}return function (value) { - var nextCase = function nextCase() {return (0, _lodash.head)(cases)[0](value);}; - var nextResult = function nextResult() {return (0, _lodash.head)(cases)[1](value);}; - - if ((0, _fp.isEmpty)(cases)) return; // undefined - if (nextCase() === true) return nextResult(); - return switchCase.apply(void 0, (0, _toConsumableArray2["default"])((0, _lodash.tail)(cases)))(value); - };};exports.switchCase = switchCase; - -var isValue = function isValue(val1) {return function (val2) {return val1 === val2;};};exports.isValue = isValue; -var isOneOf = function isOneOf() {for (var _len8 = arguments.length, vals = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {vals[_key8] = arguments[_key8];}return function (val) {return (0, _fp.includes)(val)(vals);};};exports.isOneOf = isOneOf; -var defaultCase = (0, _fp.constant)(true);exports.defaultCase = defaultCase; -var memberMatches = function memberMatches(member, match) {return function (obj) {return match(obj[member]);};};exports.memberMatches = memberMatches; - -var StartsWith = function StartsWith(searchFor) {return function (searchIn) {return ( - (0, _lodash.startsWith)(searchIn, searchFor));};};exports.StartsWith = StartsWith; - -var contains = function contains(val) {return function (array) {return (0, _lodash.findIndex)(array, function (v) {return v === val;}) > -1;};};exports.contains = contains; - -var getHashCode = function getHashCode(s) { - var hash = 0; - var i; - var _char; - var l; - if (s.length == 0) return hash; - for (i = 0, l = s.length; i < l; i++) { - _char = s.charCodeAt(i); - hash = (hash << 5) - hash + _char; - hash |= 0; // Convert to 32bit integer - } - - // converting to string, but dont want a "-" prefixed - if (hash < 0) { - return "n".concat((hash * -1).toString()); - } - return hash.toString(); -}; - -// thanks to https://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/ -exports.getHashCode = getHashCode;var awEx = /*#__PURE__*/function () {var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(promise) {var result;return _regenerator["default"].wrap(function _callee3$(_context3) {while (1) {switch (_context3.prev = _context3.next) {case 0:_context3.prev = 0;_context3.next = 3;return ( - - promise);case 3:result = _context3.sent;return _context3.abrupt("return", - [undefined, result]);case 7:_context3.prev = 7;_context3.t0 = _context3["catch"](0);return _context3.abrupt("return", - - [_context3.t0, undefined]);case 10:case "end":return _context3.stop();}}}, _callee3, null, [[0, 7]]);}));return function awEx(_x2) {return _ref3.apply(this, arguments);};}();exports.awEx = awEx; - - - -var isSafeInteger = function isSafeInteger(n) {return ( - (0, _fp.isInteger)(n) && - n <= Number.MAX_SAFE_INTEGER && - n >= 0 - Number.MAX_SAFE_INTEGER);};exports.isSafeInteger = isSafeInteger; - -var toDateOrNull = function toDateOrNull(s) {return ( - (0, _fp.isNull)(s) ? null : (0, _fp.isDate)(s) ? s : new Date(s));};exports.toDateOrNull = toDateOrNull; -var toBoolOrNull = function toBoolOrNull(s) {return (0, _fp.isNull)(s) ? null : s === "true" || s === true;};exports.toBoolOrNull = toBoolOrNull; -var toNumberOrNull = function toNumberOrNull(s) {return (0, _fp.isNull)(s) ? null : (0, _fp.toNumber)(s);};exports.toNumberOrNull = toNumberOrNull; - -var isArrayOfString = function isArrayOfString(opts) {return (0, _fp.isArray)(opts) && all(_fp.isString)(opts);};exports.isArrayOfString = isArrayOfString; - -var pushAll = function pushAll(target, items) {var _iterator = _createForOfIteratorHelper( - items),_step;try {for (_iterator.s(); !(_step = _iterator.n()).done;) {var i = _step.value;target.push(i);}} catch (err) {_iterator.e(err);} finally {_iterator.f();} -};exports.pushAll = pushAll; - -var pause = /*#__PURE__*/function () {var _ref4 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(duration) {return _regenerator["default"].wrap(function _callee4$(_context4) {while (1) {switch (_context4.prev = _context4.next) {case 0:return _context4.abrupt("return", - new Promise(function (res) {return setTimeout(res, duration);}));case 1:case "end":return _context4.stop();}}}, _callee4);}));return function pause(_x3) {return _ref4.apply(this, arguments);};}();exports.pause = pause; - -var retry = /*#__PURE__*/function () {var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(fn, retries, delay) {var _len9,args,_key9,_args6 = arguments;return _regenerator["default"].wrap(function _callee6$(_context6) {while (1) {switch (_context6.prev = _context6.next) {case 0:for (_len9 = _args6.length, args = new Array(_len9 > 3 ? _len9 - 3 : 0), _key9 = 3; _key9 < _len9; _key9++) {args[_key9 - 3] = _args6[_key9];}_context6.prev = 1;_context6.next = 4;return ( - - fn.apply(void 0, args));case 4:return _context6.abrupt("return", _context6.sent);case 7:_context6.prev = 7;_context6.t0 = _context6["catch"](1);if (!( - - retries > 1)) {_context6.next = 13;break;}_context6.next = 12;return ( - pause(delay).then( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark( - function _callee5() {return _regenerator["default"].wrap(function _callee5$(_context5) {while (1) {switch (_context5.prev = _context5.next) {case 0:_context5.next = 2;return retry.apply(void 0, [fn, retries - 1, delay].concat(args));case 2:return _context5.abrupt("return", _context5.sent);case 3:case "end":return _context5.stop();}}}, _callee5);}))));case 12:return _context6.abrupt("return", _context6.sent);case 13:throw _context6.t0;case 14:case "end":return _context6.stop();}}}, _callee6, null, [[1, 7]]);}));return function retry(_x4, _x5, _x6) {return _ref5.apply(this, arguments);};}();exports.retry = retry;var _default = - - - - - - - - -{ - ifExists: ifExists, - getOrDefault: getOrDefault, - isDefined: isDefined, - isNonNull: isNonNull, - isNotNaN: isNotNaN, - allTrue: allTrue, - isSomething: isSomething, - mapIfSomethingOrDefault: mapIfSomethingOrDefault, - mapIfSomethingOrBlank: mapIfSomethingOrBlank, - configFolder: configFolder, - fieldDefinitions: fieldDefinitions, - isNothing: isNothing, - not: not, - switchCase: switchCase, - defaultCase: defaultCase, - StartsWith: StartsWith, - contains: contains, - templateDefinitions: templateDefinitions, - handleErrorWith: handleErrorWith, - handleErrorWithUndefined: handleErrorWithUndefined, - tryOr: tryOr, - tryOrIgnore: tryOrIgnore, - tryAwaitOr: tryAwaitOr, - tryAwaitOrIgnore: tryAwaitOrIgnore, - dirIndex: dirIndex, - keySep: keySep, - $: $, - $$: $$, - getDirFomKey: getDirFomKey, - getFileFromKey: getFileFromKey, - splitKey: splitKey, - somethingOrDefault: somethingOrDefault, - getIndexKeyFromFileKey: getIndexKeyFromFileKey, - joinKey: joinKey, - somethingOrGetDefault: somethingOrGetDefault, - appDefinitionFile: appDefinitionFile, - isValue: isValue, - all: all, - isOneOf: isOneOf, - memberMatches: memberMatches, - defineError: defineError, - anyTrue: anyTrue, - isNonEmptyArray: isNonEmptyArray, - causesException: causesException, - executesWithoutException: executesWithoutException, - none: none, - getHashCode: getHashCode, - awEx: awEx, - events: _events.events, - eventsList: _events.eventsList, - isNothingOrEmpty: isNothingOrEmpty, - isSafeInteger: isSafeInteger, - toNumber: _fp.toNumber, - toDate: toDateOrNull, - toBool: toBoolOrNull, - isArrayOfString: isArrayOfString, - insensitiveEquals: insensitiveEquals, - pause: pause, - retry: retry, - pushAll: pushAll };exports["default"] = _default; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/common/lib/common/index.js.map b/packages/common/lib/common/index.js.map deleted file mode 100644 index 775e613d7a..0000000000 --- a/packages/common/lib/common/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/common/index.js"],"names":["$$","funcs","arg","$","keySep","trimKeySep","str","splitByKeySep","safeKey","key","joinKey","strs","paramsOrArray","length","s","toString","splitKey","getDirFomKey","dropRight","p","getFileFromKey","takeRight","head","configFolder","fieldDefinitions","templateDefinitions","appDefinitionFile","dirIndex","folderPath","getIndexKeyFromFileKey","ifExists","val","exists","notExists","getOrDefault","defaultVal","not","func","isDefined","isUndefined","isNonNull","isNull","isNotNaN","isNaN","allTrue","funcArgs","result","conditionFunc","anyTrue","insensitiveEquals","str1","str2","trim","toLowerCase","isSomething","isNothing","isNothingOrEmpty","v","somethingOrGetDefault","getDefaultFunc","somethingOrDefault","mapIfSomethingOrDefault","mapFunc","mapIfSomethingOrBlank","none","predicate","collection","all","isNotEmpty","ob","isAsync","fn","constructor","name","isNonEmptyArray","isArray","isNonEmptyString","isString","tryOr","failFunc","args","apply","_","tryAwaitOr","defineError","errorPrefix","err","message","tryOrIgnore","tryAwaitOrIgnore","causesException","e","executesWithoutException","handleErrorWith","returnValInError","handleErrorWithUndefined","undefined","switchCase","cases","value","nextCase","nextResult","isValue","val1","val2","isOneOf","vals","defaultCase","memberMatches","member","match","obj","StartsWith","searchFor","searchIn","contains","array","getHashCode","hash","i","char","l","charCodeAt","awEx","promise","isSafeInteger","n","Number","MAX_SAFE_INTEGER","toDateOrNull","Date","toBoolOrNull","toNumberOrNull","isArrayOfString","opts","pushAll","target","items","push","pause","duration","Promise","res","setTimeout","retry","retries","delay","then","events","eventsList","toNumber","toDate","toBool"],"mappings":"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","sourcesContent":["import {\n head,\n tail,\n findIndex,\n startsWith,\n dropRight,\n flow,\n takeRight,\n trim,\n replace,\n} from \"lodash\"\nimport {\n some,\n reduce,\n isEmpty,\n isArray,\n join,\n isString,\n isInteger,\n isDate,\n toNumber,\n isUndefined,\n isNaN,\n isNull,\n constant,\n split,\n includes,\n filter,\n} from \"lodash/fp\"\nimport { events, eventsList } from \"./events.js\"\n\n// this is the combinator function\nexport const $$ = (...funcs) => arg => flow(funcs)(arg)\n\n// this is the pipe function\nexport const $ = (arg, funcs) => $$(...funcs)(arg)\n\nexport const keySep = \"/\"\nconst trimKeySep = str => trim(str, keySep)\nconst splitByKeySep = str => split(keySep)(str)\nexport const safeKey = key =>\n replace(`${keySep}${trimKeySep(key)}`, `${keySep}${keySep}`, keySep)\nexport const joinKey = (...strs) => {\n const paramsOrArray = (strs.length === 1) & isArray(strs[0]) ? strs[0] : strs\n return $(paramsOrArray, [\n filter(s => !isUndefined(s) && !isNull(s) && s.toString().length > 0),\n join(keySep),\n safeKey,\n ])\n}\nexport const splitKey = $$(trimKeySep, splitByKeySep)\nexport const getDirFomKey = $$(splitKey, dropRight, p => joinKey(...p))\nexport const getFileFromKey = $$(splitKey, takeRight, head)\n\nexport const configFolder = `${keySep}.config`\nexport const fieldDefinitions = joinKey(configFolder, \"fields.json\")\nexport const templateDefinitions = joinKey(configFolder, \"templates.json\")\nexport const appDefinitionFile = joinKey(configFolder, \"appDefinition.json\")\nexport const dirIndex = folderPath =>\n joinKey(configFolder, \"dir\", ...splitKey(folderPath), \"dir.idx\")\nexport const getIndexKeyFromFileKey = $$(getDirFomKey, dirIndex)\n\nexport const ifExists = (val, exists, notExists) =>\n isUndefined(val)\n ? isUndefined(notExists)\n ? (() => {})()\n : notExists()\n : exists()\n\nexport const getOrDefault = (val, defaultVal) =>\n ifExists(\n val,\n () => val,\n () => defaultVal\n )\n\nexport const not = func => val => !func(val)\nexport const isDefined = not(isUndefined)\nexport const isNonNull = not(isNull)\nexport const isNotNaN = not(isNaN)\n\nexport const allTrue = (...funcArgs) => val =>\n reduce(\n (result, conditionFunc) =>\n (isNull(result) || result == true) && conditionFunc(val),\n null\n )(funcArgs)\n\nexport const anyTrue = (...funcArgs) => val =>\n reduce(\n (result, conditionFunc) => result == true || conditionFunc(val),\n null\n )(funcArgs)\n\nexport const insensitiveEquals = (str1, str2) =>\n str1.trim().toLowerCase() === str2.trim().toLowerCase()\n\nexport const isSomething = allTrue(isDefined, isNonNull, isNotNaN)\nexport const isNothing = not(isSomething)\nexport const isNothingOrEmpty = v => isNothing(v) || isEmpty(v)\nexport const somethingOrGetDefault = getDefaultFunc => val =>\n isSomething(val) ? val : getDefaultFunc()\nexport const somethingOrDefault = (val, defaultVal) =>\n somethingOrGetDefault(constant(defaultVal))(val)\n\nexport const mapIfSomethingOrDefault = (mapFunc, defaultVal) => val =>\n isSomething(val) ? mapFunc(val) : defaultVal\n\nexport const mapIfSomethingOrBlank = mapFunc =>\n mapIfSomethingOrDefault(mapFunc, \"\")\n\nexport const none = predicate => collection => !some(predicate)(collection)\n\nexport const all = predicate => collection =>\n none(v => !predicate(v))(collection)\n\nexport const isNotEmpty = ob => !isEmpty(ob)\nexport const isAsync = fn => fn.constructor.name === \"AsyncFunction\"\nexport const isNonEmptyArray = allTrue(isArray, isNotEmpty)\nexport const isNonEmptyString = allTrue(isString, isNotEmpty)\nexport const tryOr = failFunc => (func, ...args) => {\n try {\n return func.apply(null, ...args)\n } catch (_) {\n return failFunc()\n }\n}\n\nexport const tryAwaitOr = failFunc => async (func, ...args) => {\n try {\n return await func.apply(null, ...args)\n } catch (_) {\n return await failFunc()\n }\n}\n\nexport const defineError = (func, errorPrefix) => {\n try {\n return func()\n } catch (err) {\n err.message = `${errorPrefix} : ${err.message}`\n throw err\n }\n}\n\nexport const tryOrIgnore = tryOr(() => {})\nexport const tryAwaitOrIgnore = tryAwaitOr(async () => {})\nexport const causesException = func => {\n try {\n func()\n return false\n } catch (e) {\n return true\n }\n}\n\nexport const executesWithoutException = func => !causesException(func)\n\nexport const handleErrorWith = returnValInError =>\n tryOr(constant(returnValInError))\n\nexport const handleErrorWithUndefined = handleErrorWith(undefined)\n\nexport const switchCase = (...cases) => value => {\n const nextCase = () => head(cases)[0](value)\n const nextResult = () => head(cases)[1](value)\n\n if (isEmpty(cases)) return // undefined\n if (nextCase() === true) return nextResult()\n return switchCase(...tail(cases))(value)\n}\n\nexport const isValue = val1 => val2 => val1 === val2\nexport const isOneOf = (...vals) => val => includes(val)(vals)\nexport const defaultCase = constant(true)\nexport const memberMatches = (member, match) => obj => match(obj[member])\n\nexport const StartsWith = searchFor => searchIn =>\n startsWith(searchIn, searchFor)\n\nexport const contains = val => array => findIndex(array, v => v === val) > -1\n\nexport const getHashCode = s => {\n let hash = 0\n let i\n let char\n let l\n if (s.length == 0) return hash\n for (i = 0, l = s.length; i < l; i++) {\n char = s.charCodeAt(i)\n hash = (hash << 5) - hash + char\n hash |= 0 // Convert to 32bit integer\n }\n\n // converting to string, but dont want a \"-\" prefixed\n if (hash < 0) {\n return `n${(hash * -1).toString()}`\n }\n return hash.toString()\n}\n\n// thanks to https://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/\nexport const awEx = async promise => {\n try {\n const result = await promise\n return [undefined, result]\n } catch (error) {\n return [error, undefined]\n }\n}\n\nexport const isSafeInteger = n =>\n isInteger(n) &&\n n <= Number.MAX_SAFE_INTEGER &&\n n >= 0 - Number.MAX_SAFE_INTEGER\n\nexport const toDateOrNull = s =>\n isNull(s) ? null : isDate(s) ? s : new Date(s)\nexport const toBoolOrNull = s => (isNull(s) ? null : s === \"true\" || s === true)\nexport const toNumberOrNull = s => (isNull(s) ? null : toNumber(s))\n\nexport const isArrayOfString = opts => isArray(opts) && all(isString)(opts)\n\nexport const pushAll = (target, items) => {\n for (let i of items) target.push(i)\n}\n\nexport const pause = async duration =>\n new Promise(res => setTimeout(res, duration))\n\nexport const retry = async (fn, retries, delay, ...args) => {\n try {\n return await fn(...args)\n } catch (err) {\n if (retries > 1) {\n return await pause(delay).then(\n async () => await retry(fn, retries - 1, delay, ...args)\n )\n }\n throw err\n }\n}\n\nexport { events } from \"./events.js\"\n\nexport default {\n ifExists,\n getOrDefault,\n isDefined,\n isNonNull,\n isNotNaN,\n allTrue,\n isSomething,\n mapIfSomethingOrDefault,\n mapIfSomethingOrBlank,\n configFolder,\n fieldDefinitions,\n isNothing,\n not,\n switchCase,\n defaultCase,\n StartsWith,\n contains,\n templateDefinitions,\n handleErrorWith,\n handleErrorWithUndefined,\n tryOr,\n tryOrIgnore,\n tryAwaitOr,\n tryAwaitOrIgnore,\n dirIndex,\n keySep,\n $,\n $$,\n getDirFomKey,\n getFileFromKey,\n splitKey,\n somethingOrDefault,\n getIndexKeyFromFileKey,\n joinKey,\n somethingOrGetDefault,\n appDefinitionFile,\n isValue,\n all,\n isOneOf,\n memberMatches,\n defineError,\n anyTrue,\n isNonEmptyArray,\n causesException,\n executesWithoutException,\n none,\n getHashCode,\n awEx,\n events,\n eventsList,\n isNothingOrEmpty,\n isSafeInteger,\n toNumber,\n toDate: toDateOrNull,\n toBool: toBoolOrNull,\n isArrayOfString,\n insensitiveEquals,\n pause,\n retry,\n pushAll,\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/packages/common/lib/common/validationCommon.js b/packages/common/lib/common/validationCommon.js deleted file mode 100644 index 0bc100e158..0000000000 --- a/packages/common/lib/common/validationCommon.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.applyRule = exports.applyRuleSet = exports.validationError = exports.makerule = exports.stringNotEmpty = void 0;var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _fp = require("lodash/fp"); -var _index = require("./index");function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {(0, _defineProperty2["default"])(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;} - -var stringNotEmpty = function stringNotEmpty(s) {return (0, _index.isSomething)(s) && s.trim().length > 0;};exports.stringNotEmpty = stringNotEmpty; - -var makerule = function makerule(field, error, isValid) {return { field: field, error: error, isValid: isValid };};exports.makerule = makerule; - -var validationError = function validationError(rule, item) {return _objectSpread({}, rule, { item: item });};exports.validationError = validationError; - -var applyRuleSet = function applyRuleSet(ruleSet) {return function (itemToValidate) {return ( - (0, _index.$)(ruleSet, [(0, _fp.map)(applyRule(itemToValidate)), (0, _fp.filter)(_index.isSomething)]));};};exports.applyRuleSet = applyRuleSet; - -var applyRule = function applyRule(itemTovalidate) {return function (rule) {return ( - rule.isValid(itemTovalidate) ? null : validationError(rule, itemTovalidate));};};exports.applyRule = applyRule; -//# sourceMappingURL=validationCommon.js.map \ No newline at end of file diff --git a/packages/common/lib/common/validationCommon.js.map b/packages/common/lib/common/validationCommon.js.map deleted file mode 100644 index 421ded1c61..0000000000 --- a/packages/common/lib/common/validationCommon.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/common/validationCommon.js"],"names":["stringNotEmpty","s","trim","length","makerule","field","error","isValid","validationError","rule","item","applyRuleSet","ruleSet","itemToValidate","applyRule","isSomething","itemTovalidate"],"mappings":"wXAAA;AACA,gC;;AAEO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,CAAC,UAAI,wBAAYA,CAAZ,KAAkBA,CAAC,CAACC,IAAF,GAASC,MAAT,GAAkB,CAAxC,EAAxB,C;;AAEA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAQC,KAAR,EAAeC,OAAf,UAA4B,EAAEF,KAAK,EAALA,KAAF,EAASC,KAAK,EAALA,KAAT,EAAgBC,OAAO,EAAPA,OAAhB,EAA5B,EAAjB,C;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,IAAD,EAAOC,IAAP,4BAAsBD,IAAtB,IAA4BC,IAAI,EAAJA,IAA5B,KAAxB,C;;AAEA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAAAC,OAAO,UAAI,UAAAC,cAAc;AACnD,oBAAED,OAAF,EAAW,CAAC,aAAIE,SAAS,CAACD,cAAD,CAAb,CAAD,EAAiC,gBAAOE,kBAAP,CAAjC,CAAX,CADmD,GAAlB,EAA5B,C;;AAGA,IAAMD,SAAS,GAAG,SAAZA,SAAY,CAAAE,cAAc,UAAI,UAAAP,IAAI;AAC7CA,MAAAA,IAAI,CAACF,OAAL,CAAaS,cAAb,IAA+B,IAA/B,GAAsCR,eAAe,CAACC,IAAD,EAAOO,cAAP,CADR,GAAR,EAAhC,C","sourcesContent":["import { filter, map } from \"lodash/fp\"\nimport { $, isSomething } from \"./index\"\n\nexport const stringNotEmpty = s => isSomething(s) && s.trim().length > 0\n\nexport const makerule = (field, error, isValid) => ({ field, error, isValid })\n\nexport const validationError = (rule, item) => ({ ...rule, item })\n\nexport const applyRuleSet = ruleSet => itemToValidate =>\n $(ruleSet, [map(applyRule(itemToValidate)), filter(isSomething)])\n\nexport const applyRule = itemTovalidate => rule =>\n rule.isValid(itemTovalidate) ? null : validationError(rule, itemTovalidate)\n"],"file":"validationCommon.js"} \ No newline at end of file diff --git a/packages/common/lib/index.js b/packages/common/lib/index.js deleted file mode 100644 index 3c1489059f..0000000000 --- a/packages/common/lib/index.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "events", { enumerable: true, get: function get() {return _events.events;} });Object.defineProperty(exports, "safeParseField", { enumerable: true, get: function get() {return _types.safeParseField;} });Object.defineProperty(exports, "schemaValidator", { enumerable: true, get: function get() {return _schemaValidation["default"];} });var _events = require("./common/events"); -var _types = require("./schema/types"); -var _schemaValidation = _interopRequireDefault(require("./schemaValidation")); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/common/lib/index.js.map b/packages/common/lib/index.js.map deleted file mode 100644 index b4928fba39..0000000000 --- a/packages/common/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.js"],"names":[],"mappings":"6gBAAA;AACA;AACA","sourcesContent":["export { events } from \"./common/events\";\nexport { safeParseField } from \"./schema/types\";\nexport { default as schemaValidator } from \"./schemaValidation\";"],"file":"index.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/createActions.js b/packages/common/lib/schema/createActions.js deleted file mode 100644 index 4e48aa6dc6..0000000000 --- a/packages/common/lib/schema/createActions.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.createAction = exports.createTrigger = void 0;var createTrigger = function createTrigger() {return { - actionName: "", - eventName: "", - // function, has access to event context, - // returns object that is used as parameter to action - // only used if triggered by event - optionsCreator: "", - // action runs if true, - // has access to event context - condition: "" };};exports.createTrigger = createTrigger; - - -var createAction = function createAction() {return { - name: "", - behaviourSource: "", - // name of function in actionSource - behaviourName: "", - // parameter passed into behaviour. - // any other parms passed at runtime e.g. - // by trigger, or manually, will be merged into this - initialOptions: {} };};exports.createAction = createAction; -//# sourceMappingURL=createActions.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/createActions.js.map b/packages/common/lib/schema/createActions.js.map deleted file mode 100644 index 2362409748..0000000000 --- a/packages/common/lib/schema/createActions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/schema/createActions.js"],"names":["createTrigger","actionName","eventName","optionsCreator","condition","createAction","name","behaviourSource","behaviourName","initialOptions"],"mappings":"iIAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,WAAO;AAClCC,IAAAA,UAAU,EAAE,EADsB;AAElCC,IAAAA,SAAS,EAAE,EAFuB;AAGlC;AACA;AACA;AACAC,IAAAA,cAAc,EAAE,EANkB;AAOlC;AACA;AACAC,IAAAA,SAAS,EAAE,EATuB,EAAP,EAAtB,C;;;AAYA,IAAMC,YAAY,GAAG,SAAfA,YAAe,WAAO;AACjCC,IAAAA,IAAI,EAAE,EAD2B;AAEjCC,IAAAA,eAAe,EAAE,EAFgB;AAGjC;AACAC,IAAAA,aAAa,EAAE,EAJkB;AAKjC;AACA;AACA;AACAC,IAAAA,cAAc,EAAE,EARiB,EAAP,EAArB,C","sourcesContent":["export const createTrigger = () => ({\n actionName: \"\",\n eventName: \"\",\n // function, has access to event context,\n // returns object that is used as parameter to action\n // only used if triggered by event\n optionsCreator: \"\",\n // action runs if true,\n // has access to event context\n condition: \"\",\n})\n\nexport const createAction = () => ({\n name: \"\",\n behaviourSource: \"\",\n // name of function in actionSource\n behaviourName: \"\",\n // parameter passed into behaviour.\n // any other parms passed at runtime e.g.\n // by trigger, or manually, will be merged into this\n initialOptions: {},\n})\n"],"file":"createActions.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/fields.js b/packages/common/lib/schema/fields.js deleted file mode 100644 index ab3e75d48e..0000000000 --- a/packages/common/lib/schema/fields.js +++ /dev/null @@ -1,97 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.addField = exports.validateAllFields = exports.validateField = exports.getNewField = exports.allowedTypes = exports.fieldErrors = void 0;var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _fp = require("lodash/fp"); -var _common = require("../common"); - - - - - - -var _index = require("./types/index.js"); -var _validationCommon = require("../common/validationCommon"); -var _errors = require("../common/errors"); -var _shortid = require("shortid"); - -var fieldErrors = { - AddFieldValidationFailed: "Add field validation: " };exports.fieldErrors = fieldErrors; - - -var allowedTypes = function allowedTypes() {return (0, _fp.keys)(_index.all);};exports.allowedTypes = allowedTypes; - -var getNewField = function getNewField(type) {return { - id: (0, _shortid.generate)(), - name: "", // how field is referenced internally - type: type, - typeOptions: (0, _index.getDefaultOptions)(type), - label: "", // how field is displayed - getInitialValue: "default", // function that gets value when initially created - getUndefinedValue: "default" // function that gets value when field undefined on record - };};exports.getNewField = getNewField; - -var fieldRules = function fieldRules(allFields) {return [ - (0, _validationCommon.makerule)("name", "field name is not set", function (f) {return (0, _common.isNonEmptyString)(f.name);}), - (0, _validationCommon.makerule)("type", "field type is not set", function (f) {return (0, _common.isNonEmptyString)(f.type);}), - (0, _validationCommon.makerule)("label", "field label is not set", function (f) {return (0, _common.isNonEmptyString)(f.label);}), - (0, _validationCommon.makerule)("getInitialValue", "getInitialValue function is not set", function (f) {return ( - (0, _common.isNonEmptyString)(f.getInitialValue));}), - - (0, _validationCommon.makerule)("getUndefinedValue", "getUndefinedValue function is not set", function (f) {return ( - (0, _common.isNonEmptyString)(f.getUndefinedValue));}), - - (0, _validationCommon.makerule)( - "name", - "field name is duplicated", - function (f) {return (0, _common.isNothingOrEmpty)(f.name) || (0, _fp.countBy)("name")(allFields)[f.name] === 1;}), - - (0, _validationCommon.makerule)( - "type", - "type is unknown", - function (f) {return (0, _common.isNothingOrEmpty)(f.type) || (0, _fp.some)(function (t) {return f.type === t;})(allowedTypes());})];}; - - - -var typeOptionsRules = function typeOptionsRules(field) { - var type = _index.all[field.type]; - if ((0, _common.isNothing)(type)) return []; - - var def = function def(optName) {return type.optionDefinitions[optName];}; - - return (0, _common.$)(field.typeOptions, [ - _fp.keys, - (0, _fp.filter)(function (o) {return (0, _common.isSomething)(def(o)) && (0, _common.isSomething)(def(o).isValid);}), - (0, _fp.map)(function (o) {return ( - (0, _validationCommon.makerule)("typeOptions.".concat(o), "".concat(def(o).requirementDescription), function (field) {return ( - def(o).isValid(field.typeOptions[o]));}));})]); - - - -}; - -var validateField = function validateField(allFields) {return function (field) { - var everySingleField = (0, _fp.includes)(field)(allFields) ? - allFields : [].concat((0, _toConsumableArray2["default"])( - allFields), [field]); - return (0, _validationCommon.applyRuleSet)([].concat((0, _toConsumableArray2["default"])( - fieldRules(everySingleField)), (0, _toConsumableArray2["default"])( - typeOptionsRules(field))))( - field); - };};exports.validateField = validateField; - -var validateAllFields = function validateAllFields(recordNode) {return ( - (0, _common.$)(recordNode.fields, [(0, _fp.map)(validateField(recordNode.fields)), _fp.flatten]));};exports.validateAllFields = validateAllFields; - -var addField = function addField(recordTemplate, field) { - if ((0, _common.isNothingOrEmpty)(field.label)) { - field.label = field.name; - } - var validationMessages = validateField([].concat((0, _toConsumableArray2["default"])(recordTemplate.fields), [field]))( - field); - - if (validationMessages.length > 0) { - var errors = (0, _fp.map)(function (m) {return m.error;})(validationMessages); - throw new _errors.BadRequestError("".concat( - fieldErrors.AddFieldValidationFailed, " ").concat(errors.join(", "))); - - } - recordTemplate.fields.push(field); -};exports.addField = addField; -//# sourceMappingURL=fields.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/fields.js.map b/packages/common/lib/schema/fields.js.map deleted file mode 100644 index db27a134e4..0000000000 --- a/packages/common/lib/schema/fields.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/schema/fields.js"],"names":["fieldErrors","AddFieldValidationFailed","allowedTypes","all","getNewField","type","id","name","typeOptions","label","getInitialValue","getUndefinedValue","fieldRules","allFields","f","t","typeOptionsRules","field","def","optName","optionDefinitions","keys","o","isValid","requirementDescription","validateField","everySingleField","validateAllFields","recordNode","fields","flatten","addField","recordTemplate","validationMessages","length","errors","m","error","BadRequestError","join","push"],"mappings":"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","sourcesContent":["import { some, map, filter, keys, includes, countBy, flatten } from \"lodash/fp\"\nimport {\n isSomething,\n $,\n isNonEmptyString,\n isNothingOrEmpty,\n isNothing,\n} from \"../common\"\nimport { all, getDefaultOptions } from \"./types/index.js\"\nimport { applyRuleSet, makerule } from \"../common/validationCommon\"\nimport { BadRequestError } from \"../common/errors\"\nimport { generate } from \"shortid\"\n\nexport const fieldErrors = {\n AddFieldValidationFailed: \"Add field validation: \",\n}\n\nexport const allowedTypes = () => keys(all)\n\nexport const getNewField = type => ({\n id: generate(),\n name: \"\", // how field is referenced internally\n type,\n typeOptions: getDefaultOptions(type),\n label: \"\", // how field is displayed\n getInitialValue: \"default\", // function that gets value when initially created\n getUndefinedValue: \"default\", // function that gets value when field undefined on record\n})\n\nconst fieldRules = allFields => [\n makerule(\"name\", \"field name is not set\", f => isNonEmptyString(f.name)),\n makerule(\"type\", \"field type is not set\", f => isNonEmptyString(f.type)),\n makerule(\"label\", \"field label is not set\", f => isNonEmptyString(f.label)),\n makerule(\"getInitialValue\", \"getInitialValue function is not set\", f =>\n isNonEmptyString(f.getInitialValue)\n ),\n makerule(\"getUndefinedValue\", \"getUndefinedValue function is not set\", f =>\n isNonEmptyString(f.getUndefinedValue)\n ),\n makerule(\n \"name\",\n \"field name is duplicated\",\n f => isNothingOrEmpty(f.name) || countBy(\"name\")(allFields)[f.name] === 1\n ),\n makerule(\n \"type\",\n \"type is unknown\",\n f => isNothingOrEmpty(f.type) || some(t => f.type === t)(allowedTypes())\n ),\n]\n\nconst typeOptionsRules = field => {\n const type = all[field.type]\n if (isNothing(type)) return []\n\n const def = optName => type.optionDefinitions[optName]\n\n return $(field.typeOptions, [\n keys,\n filter(o => isSomething(def(o)) && isSomething(def(o).isValid)),\n map(o =>\n makerule(`typeOptions.${o}`, `${def(o).requirementDescription}`, field =>\n def(o).isValid(field.typeOptions[o])\n )\n ),\n ])\n}\n\nexport const validateField = allFields => field => {\n const everySingleField = includes(field)(allFields)\n ? allFields\n : [...allFields, field]\n return applyRuleSet([\n ...fieldRules(everySingleField),\n ...typeOptionsRules(field),\n ])(field)\n}\n\nexport const validateAllFields = recordNode =>\n $(recordNode.fields, [map(validateField(recordNode.fields)), flatten])\n\nexport const addField = (recordTemplate, field) => {\n if (isNothingOrEmpty(field.label)) {\n field.label = field.name\n }\n const validationMessages = validateField([...recordTemplate.fields, field])(\n field\n )\n if (validationMessages.length > 0) {\n const errors = map(m => m.error)(validationMessages)\n throw new BadRequestError(\n `${fieldErrors.AddFieldValidationFailed} ${errors.join(\", \")}`\n )\n }\n recordTemplate.fields.push(field)\n}\n"],"file":"fields.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/fullSchema.js b/packages/common/lib/schema/fullSchema.js deleted file mode 100644 index 9be170d805..0000000000 --- a/packages/common/lib/schema/fullSchema.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.fullSchema = void 0;var fullSchema = function fullSchema(models, views) { - var findModel = function findModel(idOrName) {return ( - models.find( - function (m) {return m.id === idOrName || m.name.toLowerCase() === idOrName.toLowerCase();}));}; - - - var findView = function findView(idOrName) {return ( - views.find( - function (m) {return m.id === idOrName || m.name.toLowerCase() === idOrName.toLowerCase();}));}; - - - var findField = function findField(modelIdOrName, fieldName) { - var model = models.find( - function (m) {return ( - m.id === modelIdOrName || - m.name.toLowerCase() === modelIdOrName.toLowerCase());}); - - return model.fields.find( - function (f) {return f.name.toLowerCase() === fieldName.toLowerCase();}); - - }; - - var viewsForModel = function viewsForModel(modelId) {return views.filter(function (v) {return v.modelId === modelId;});}; - - return { - models: models, - views: views, - findModel: findModel, - findField: findField, - findView: findView, - viewsForModel: viewsForModel }; - -};exports.fullSchema = fullSchema; -//# sourceMappingURL=fullSchema.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/fullSchema.js.map b/packages/common/lib/schema/fullSchema.js.map deleted file mode 100644 index 5eece533a2..0000000000 --- a/packages/common/lib/schema/fullSchema.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/schema/fullSchema.js"],"names":["fullSchema","models","views","findModel","idOrName","find","m","id","name","toLowerCase","findView","findField","modelIdOrName","fieldName","model","fields","f","viewsForModel","modelId","filter","v"],"mappings":"uGAAO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,MAAD,EAASC,KAAT,EAAmB;AAC3C,MAAMC,SAAS,GAAG,SAAZA,SAAY,CAAAC,QAAQ;AACxBH,MAAAA,MAAM,CAACI,IAAP;AACE,gBAAAC,CAAC,UAAIA,CAAC,CAACC,EAAF,KAASH,QAAT,IAAqBE,CAAC,CAACE,IAAF,CAAOC,WAAP,OAAyBL,QAAQ,CAACK,WAAT,EAAlD,EADH,CADwB,GAA1B;;;AAKA,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAAAN,QAAQ;AACvBF,MAAAA,KAAK,CAACG,IAAN;AACE,gBAAAC,CAAC,UAAIA,CAAC,CAACC,EAAF,KAASH,QAAT,IAAqBE,CAAC,CAACE,IAAF,CAAOC,WAAP,OAAyBL,QAAQ,CAACK,WAAT,EAAlD,EADH,CADuB,GAAzB;;;AAKA,MAAME,SAAS,GAAG,SAAZA,SAAY,CAACC,aAAD,EAAgBC,SAAhB,EAA8B;AAC9C,QAAMC,KAAK,GAAGb,MAAM,CAACI,IAAP;AACZ,cAAAC,CAAC;AACCA,QAAAA,CAAC,CAACC,EAAF,KAASK,aAAT;AACAN,QAAAA,CAAC,CAACE,IAAF,CAAOC,WAAP,OAAyBG,aAAa,CAACH,WAAd,EAF1B,GADW,CAAd;;AAKA,WAAOK,KAAK,CAACC,MAAN,CAAaV,IAAb;AACL,cAAAW,CAAC,UAAIA,CAAC,CAACR,IAAF,CAAOC,WAAP,OAAyBI,SAAS,CAACJ,WAAV,EAA7B,EADI,CAAP;;AAGD,GATD;;AAWA,MAAMQ,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,OAAO,UAAIhB,KAAK,CAACiB,MAAN,CAAa,UAAAC,CAAC,UAAIA,CAAC,CAACF,OAAF,KAAcA,OAAlB,EAAd,CAAJ,EAA7B;;AAEA,SAAO;AACLjB,IAAAA,MAAM,EAANA,MADK;AAELC,IAAAA,KAAK,EAALA,KAFK;AAGLC,IAAAA,SAAS,EAATA,SAHK;AAILQ,IAAAA,SAAS,EAATA,SAJK;AAKLD,IAAAA,QAAQ,EAARA,QALK;AAMLO,IAAAA,aAAa,EAAbA,aANK,EAAP;;AAQD,CAhCM,C","sourcesContent":["export const fullSchema = (models, views) => {\n const findModel = idOrName =>\n models.find(\n m => m.id === idOrName || m.name.toLowerCase() === idOrName.toLowerCase()\n )\n\n const findView = idOrName =>\n views.find(\n m => m.id === idOrName || m.name.toLowerCase() === idOrName.toLowerCase()\n )\n\n const findField = (modelIdOrName, fieldName) => {\n const model = models.find(\n m =>\n m.id === modelIdOrName ||\n m.name.toLowerCase() === modelIdOrName.toLowerCase()\n )\n return model.fields.find(\n f => f.name.toLowerCase() === fieldName.toLowerCase()\n )\n }\n\n const viewsForModel = modelId => views.filter(v => v.modelId === modelId)\n\n return {\n models,\n views,\n findModel,\n findField,\n findView,\n viewsForModel,\n }\n}\n"],"file":"fullSchema.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/models.js b/packages/common/lib/schema/models.js deleted file mode 100644 index 5350f416a6..0000000000 --- a/packages/common/lib/schema/models.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.canDeleteModel = exports.newModel = void 0;var _shortid = require("shortid");function _createForOfIteratorHelper(o) {if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) {var i = 0;var F = function F() {};return { s: F, n: function n() {if (i >= o.length) return { done: true };return { done: false, value: o[i++] };}, e: function e(_e) {throw _e;}, f: F };}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var it,normalCompletion = true,didErr = false,err;return { s: function s() {it = o[Symbol.iterator]();}, n: function n() {var step = it.next();normalCompletion = step.done;return step;}, e: function e(_e2) {didErr = true;err = _e2;}, f: function f() {try {if (!normalCompletion && it["return"] != null) it["return"]();} finally {if (didErr) throw err;}} };}function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (typeof o === "string") return _arrayLikeToArray(o, minLen);var n = Object.prototype.toString.call(o).slice(8, -1);if (n === "Object" && o.constructor) n = o.constructor.name;if (n === "Map" || n === "Set") return Array.from(n);if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);}function _arrayLikeToArray(arr, len) {if (len == null || len > arr.length) len = arr.length;for (var i = 0, arr2 = new Array(len); i < len; i++) {arr2[i] = arr[i];}return arr2;} - -var newModel = function newModel() {return { - _id: (0, _shortid.generate)(), - name: "", - type: "model", - key: "name", - schema: { - type: "object", - properties: { - name: { type: "string" } }, - - required: ["name"] } };}; - - - -/** - * - * @param {Array} models - * @param {string} modelId - * @returns {} - */exports.newModel = newModel; -var canDeleteModel = function canDeleteModel(models, modelId) { - var errors = [];var _iterator = _createForOfIteratorHelper( - - models),_step;try {for (_iterator.s(); !(_step = _iterator.n()).done;) {var model = _step.value; - var links = model.fields.filter( - function (f) {return f.type === "link" && f.typeOptions.modelId === modelId;});var _iterator2 = _createForOfIteratorHelper( - - - links),_step2;try {for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {var link = _step2.value; - errors.push("The \"".concat( - model.name, "\" model links to this model, via field \"").concat(link.name, "\"")); - - }} catch (err) {_iterator2.e(err);} finally {_iterator2.f();} - }} catch (err) {_iterator.e(err);} finally {_iterator.f();} - - return { - errors: errors, - canDelete: errors.length > 0 }; - -};exports.canDeleteModel = canDeleteModel; -//# sourceMappingURL=models.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/models.js.map b/packages/common/lib/schema/models.js.map deleted file mode 100644 index 372868c188..0000000000 --- a/packages/common/lib/schema/models.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/schema/models.js"],"names":["newModel","_id","name","type","key","schema","properties","required","canDeleteModel","models","modelId","errors","model","links","fields","filter","f","typeOptions","link","push","canDelete","length"],"mappings":"8HAAA,kC;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,WAAO;AAC7BC,IAAAA,GAAG,EAAE,wBADwB;AAE7BC,IAAAA,IAAI,EAAE,EAFuB;AAG7BC,IAAAA,IAAI,EAAE,OAHuB;AAI7BC,IAAAA,GAAG,EAAE,MAJwB;AAK7BC,IAAAA,MAAM,EAAE;AACNF,MAAAA,IAAI,EAAE,QADA;AAENG,MAAAA,UAAU,EAAE;AACVJ,QAAAA,IAAI,EAAE,EAAEC,IAAI,EAAE,QAAR,EADI,EAFN;;AAKNI,MAAAA,QAAQ,EAAE,CAAC,MAAD,CALJ,EALqB,EAAP,EAAjB;;;;AAcP;;;;;;AAMO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,OAAT,EAAqB;AACjD,MAAMC,MAAM,GAAG,EAAf,CADiD;;AAG/BF,EAAAA,MAH+B,aAGjD,oDAA0B,KAAjBG,KAAiB;AACxB,UAAMC,KAAK,GAAGD,KAAK,CAACE,MAAN,CAAaC,MAAb;AACZ,gBAAAC,CAAC,UAAIA,CAAC,CAACb,IAAF,KAAW,MAAX,IAAqBa,CAAC,CAACC,WAAF,CAAcP,OAAd,KAA0BA,OAAnD,EADW,CAAd,CADwB;;;AAKPG,MAAAA,KALO,cAKxB,uDAAwB,KAAfK,IAAe;AACtBP,UAAAA,MAAM,CAACQ,IAAP;AACUP,UAAAA,KAAK,CAACV,IADhB,uDAC+DgB,IAAI,CAAChB,IADpE;;AAGD,SATuB;AAUzB,KAbgD;;AAejD,SAAO;AACLS,IAAAA,MAAM,EAANA,MADK;AAELS,IAAAA,SAAS,EAAET,MAAM,CAACU,MAAP,GAAgB,CAFtB,EAAP;;AAID,CAnBM,C","sourcesContent":["import { generate } from \"shortid\"\n\nexport const newModel = () => ({\n _id: generate(),\n name: \"\",\n type: \"model\",\n key: \"name\",\n schema: {\n type: \"object\",\n properties: {\n name: { type: \"string\" },\n },\n required: [\"name\"],\n },\n})\n\n/**\n *\n * @param {Array} models\n * @param {string} modelId\n * @returns {}\n */\nexport const canDeleteModel = (models, modelId) => {\n const errors = []\n\n for (let model of models) {\n const links = model.fields.filter(\n f => f.type === \"link\" && f.typeOptions.modelId === modelId\n )\n\n for (let link of links) {\n errors.push(\n `The \"${model.name}\" model links to this model, via field \"${link.name}\"`\n )\n }\n }\n\n return {\n errors,\n canDelete: errors.length > 0,\n }\n}\n"],"file":"models.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/types/datetime.js b/packages/common/lib/schema/types/datetime.js deleted file mode 100644 index 982e98bdb7..0000000000 --- a/packages/common/lib/schema/types/datetime.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _default2 = { - isType: function isType(schema) {return ( - schema.anyOf && - schema.anyOf.filter(function (s) {return s.type === "string" && s.format === "date-time";}). - length > 0);}, - - fromSchema: function fromSchema(schema) {return { - type: "datetime", - "default": schema["default"] };}, - - toSchema: function toSchema() {return { - anyOf: [{ type: "string", format: "date-time" }, { "const": "" }], - "default": "" };}, - - "default": function _default() {return { - type: "datetime", - "default": "" };} };exports["default"] = _default2; -//# sourceMappingURL=datetime.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/types/datetime.js.map b/packages/common/lib/schema/types/datetime.js.map deleted file mode 100644 index 88fa78ccad..0000000000 --- a/packages/common/lib/schema/types/datetime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../../src/schema/types/datetime.js"],"names":["isType","schema","anyOf","filter","s","type","format","length","fromSchema","toSchema"],"mappings":"uHAAe;AACbA,EAAAA,MAAM,EAAE,gBAAAC,MAAM;AACZA,MAAAA,MAAM,CAACC,KAAP;AACAD,MAAAA,MAAM,CAACC,KAAP,CAAaC,MAAb,CAAoB,UAAAC,CAAC,UAAIA,CAAC,CAACC,IAAF,KAAW,QAAX,IAAuBD,CAAC,CAACE,MAAF,KAAa,WAAxC,EAArB;AACGC,MAAAA,MADH,GACY,CAHA,GADD;;AAMbC,EAAAA,UAAU,EAAE,oBAAAP,MAAM,UAAK;AACrBI,MAAAA,IAAI,EAAE,UADe;AAErB,iBAASJ,MAAM,WAFM,EAAL,EANL;;AAUbQ,EAAAA,QAAQ,EAAE,4BAAO;AACfP,MAAAA,KAAK,EAAE,CAAC,EAAEG,IAAI,EAAE,QAAR,EAAkBC,MAAM,EAAE,WAA1B,EAAD,EAA0C,EAAE,SAAO,EAAT,EAA1C,CADQ;AAEf,iBAAS,EAFM,EAAP,EAVG;;AAcb,aAAS,4BAAO;AACdD,MAAAA,IAAI,EAAE,UADQ;AAEd,iBAAS,EAFK,EAAP,EAdI,E","sourcesContent":["export default {\n isType: schema =>\n schema.anyOf &&\n schema.anyOf.filter(s => s.type === \"string\" && s.format === \"date-time\")\n .length > 0,\n\n fromSchema: schema => ({\n type: \"datetime\",\n default: schema.default,\n }),\n toSchema: () => ({\n anyOf: [{ type: \"string\", format: \"date-time\" }, { const: \"\" }],\n default: \"\",\n }),\n default: () => ({\n type: \"datetime\",\n default: \"\",\n }),\n}\n"],"file":"datetime.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/types/index.js b/packages/common/lib/schema/types/index.js deleted file mode 100644 index 86a6412828..0000000000 --- a/packages/common/lib/schema/types/index.js +++ /dev/null @@ -1,54 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.listTypes = listTypes;exports.newField = newField;exports.fieldsToSchema = fieldsToSchema;exports.schemaToFields = schemaToFields;var _boolean2 = _interopRequireDefault(require("./boolean")); -var _datetime = _interopRequireDefault(require("./datetime")); -var _link = _interopRequireDefault(require("./link")); -var _number = _interopRequireDefault(require("./number")); -var _select = _interopRequireDefault(require("./select")); -var _text = _interopRequireDefault(require("./text")); - -var allTypes = { - "boolean": _boolean2["default"], - datetime: _datetime["default"], - link: _link["default"], - number: _number["default"], - select: _select["default"], - text: _text["default"] }; - - -function listTypes() { - return Object.keys(allTypes); -} - -function newField(name, type) { - var field = allTypes[type]["default"](); - field.name = name; - field.required = false; - return field; -} - -function fieldsToSchema(fields) { - var required = fields.filter(function (f) {return f.required;}).map(function (f) {return f.name;}); - - return { - type: "object", - required: required, - properties: fields.reduce(function (sch, field) { - sch[field.name] = allTypes[field.type].toSchema(field); - return sch; - }, {}) }; - -} - -function schemaToFields(modelSchema) { - return Object.keys(modelSchema.properties).map(function (key) { - var schema = modelSchema.properties[key]; - for (var type in allTypes) { - if (allTypes[type].isType(schema)) { - var field = allTypes[type].fromSchema(schema); - field.required = modelSchema.required.includes(key); - field.name = key; - return field; - } - } - }); -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/types/index.js.map b/packages/common/lib/schema/types/index.js.map deleted file mode 100644 index ea3fbbc665..0000000000 --- a/packages/common/lib/schema/types/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../../src/schema/types/index.js"],"names":["allTypes","datetime","link","number","select","text","listTypes","Object","keys","newField","name","type","field","required","fieldsToSchema","fields","filter","f","map","properties","reduce","sch","toSchema","schemaToFields","modelSchema","key","schema","isType","fromSchema","includes"],"mappings":"0SAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMA,QAAQ,GAAG;AACf,iCADe;AAEfC,EAAAA,QAAQ,EAARA,oBAFe;AAGfC,EAAAA,IAAI,EAAJA,gBAHe;AAIfC,EAAAA,MAAM,EAANA,kBAJe;AAKfC,EAAAA,MAAM,EAANA,kBALe;AAMfC,EAAAA,IAAI,EAAJA,gBANe,EAAjB;;;AASO,SAASC,SAAT,GAAqB;AAC1B,SAAOC,MAAM,CAACC,IAAP,CAAYR,QAAZ,CAAP;AACD;;AAEM,SAASS,QAAT,CAAkBC,IAAlB,EAAwBC,IAAxB,EAA8B;AACnC,MAAMC,KAAK,GAAGZ,QAAQ,CAACW,IAAD,CAAR,aAAd;AACAC,EAAAA,KAAK,CAACF,IAAN,GAAaA,IAAb;AACAE,EAAAA,KAAK,CAACC,QAAN,GAAiB,KAAjB;AACA,SAAOD,KAAP;AACD;;AAEM,SAASE,cAAT,CAAwBC,MAAxB,EAAgC;AACrC,MAAMF,QAAQ,GAAGE,MAAM,CAACC,MAAP,CAAc,UAAAC,CAAC,UAAIA,CAAC,CAACJ,QAAN,EAAf,EAA+BK,GAA/B,CAAmC,UAAAD,CAAC,UAAIA,CAAC,CAACP,IAAN,EAApC,CAAjB;;AAEA,SAAO;AACLC,IAAAA,IAAI,EAAE,QADD;AAELE,IAAAA,QAAQ,EAARA,QAFK;AAGLM,IAAAA,UAAU,EAAEJ,MAAM,CAACK,MAAP,CAAc,UAACC,GAAD,EAAMT,KAAN,EAAgB;AACxCS,MAAAA,GAAG,CAACT,KAAK,CAACF,IAAP,CAAH,GAAkBV,QAAQ,CAACY,KAAK,CAACD,IAAP,CAAR,CAAqBW,QAArB,CAA8BV,KAA9B,CAAlB;AACA,aAAOS,GAAP;AACD,KAHW,EAGT,EAHS,CAHP,EAAP;;AAQD;;AAEM,SAASE,cAAT,CAAwBC,WAAxB,EAAqC;AAC1C,SAAOjB,MAAM,CAACC,IAAP,CAAYgB,WAAW,CAACL,UAAxB,EAAoCD,GAApC,CAAwC,UAAAO,GAAG,EAAI;AACpD,QAAMC,MAAM,GAAGF,WAAW,CAACL,UAAZ,CAAuBM,GAAvB,CAAf;AACA,SAAK,IAAId,IAAT,IAAiBX,QAAjB,EAA2B;AACzB,UAAIA,QAAQ,CAACW,IAAD,CAAR,CAAegB,MAAf,CAAsBD,MAAtB,CAAJ,EAAmC;AACjC,YAAMd,KAAK,GAAGZ,QAAQ,CAACW,IAAD,CAAR,CAAeiB,UAAf,CAA0BF,MAA1B,CAAd;AACAd,QAAAA,KAAK,CAACC,QAAN,GAAiBW,WAAW,CAACX,QAAZ,CAAqBgB,QAArB,CAA8BJ,GAA9B,CAAjB;AACAb,QAAAA,KAAK,CAACF,IAAN,GAAae,GAAb;AACA,eAAOb,KAAP;AACD;AACF;AACF,GAVM,CAAP;AAWD","sourcesContent":["import boolean from \"./boolean\"\nimport datetime from \"./datetime\"\nimport link from \"./link\"\nimport number from \"./number\"\nimport select from \"./select\"\nimport text from \"./text\"\n\nconst allTypes = {\n boolean,\n datetime,\n link,\n number,\n select,\n text,\n}\n\nexport function listTypes() {\n return Object.keys(allTypes)\n}\n\nexport function newField(name, type) {\n const field = allTypes[type].default()\n field.name = name\n field.required = false\n return field\n}\n\nexport function fieldsToSchema(fields) {\n const required = fields.filter(f => f.required).map(f => f.name)\n\n return {\n type: \"object\",\n required,\n properties: fields.reduce((sch, field) => {\n sch[field.name] = allTypes[field.type].toSchema(field)\n return sch\n }, {}),\n }\n}\n\nexport function schemaToFields(modelSchema) {\n return Object.keys(modelSchema.properties).map(key => {\n const schema = modelSchema.properties[key]\n for (let type in allTypes) {\n if (allTypes[type].isType(schema)) {\n const field = allTypes[type].fromSchema(schema)\n field.required = modelSchema.required.includes(key)\n field.name = key\n return field\n }\n }\n })\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/types/link.js b/packages/common/lib/schema/types/link.js deleted file mode 100644 index cc7013df2b..0000000000 --- a/packages/common/lib/schema/types/link.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _default2 = { - isType: function isType(schema) {return schema.type === "object" && schema.properties.modelId;}, - - fromSchema: function fromSchema(schema) {return { - type: "link", - modelId: schema.properties.modelId["const"], - viewId: schema.properties.viewId["const"], - "default": schema["default"] };}, - - - toSchema: function toSchema(field) {return { - type: "object", - properties: { - _id: { type: "string" }, - viewId: field.viewId ? { "const": field.viewId } : undefined, - modelId: field.modelId ? { "const": field.modelId } : undefined }, - - required: ["_id"], - "default": { _id: "" } };}, - - - "default": function _default() {return { - type: "link", - modelId: null, - viewId: null };} };exports["default"] = _default2; -//# sourceMappingURL=link.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/types/link.js.map b/packages/common/lib/schema/types/link.js.map deleted file mode 100644 index 285c2ef594..0000000000 --- a/packages/common/lib/schema/types/link.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../../src/schema/types/link.js"],"names":["isType","schema","type","properties","modelId","fromSchema","viewId","toSchema","field","_id","undefined","required"],"mappings":"uHAAe;AACbA,EAAAA,MAAM,EAAE,gBAAAC,MAAM,UAAIA,MAAM,CAACC,IAAP,KAAgB,QAAhB,IAA4BD,MAAM,CAACE,UAAP,CAAkBC,OAAlD,EADD;;AAGbC,EAAAA,UAAU,EAAE,oBAAAJ,MAAM,UAAK;AACrBC,MAAAA,IAAI,EAAE,MADe;AAErBE,MAAAA,OAAO,EAAEH,MAAM,CAACE,UAAP,CAAkBC,OAAlB,SAFY;AAGrBE,MAAAA,MAAM,EAAEL,MAAM,CAACE,UAAP,CAAkBG,MAAlB,SAHa;AAIrB,iBAASL,MAAM,WAJM,EAAL,EAHL;;;AAUbM,EAAAA,QAAQ,EAAE,kBAAAC,KAAK,UAAK;AAClBN,MAAAA,IAAI,EAAE,QADY;AAElBC,MAAAA,UAAU,EAAE;AACVM,QAAAA,GAAG,EAAE,EAAEP,IAAI,EAAE,QAAR,EADK;AAEVI,QAAAA,MAAM,EAAEE,KAAK,CAACF,MAAN,GAAe,EAAE,SAAOE,KAAK,CAACF,MAAf,EAAf,GAAyCI,SAFvC;AAGVN,QAAAA,OAAO,EAAEI,KAAK,CAACJ,OAAN,GAAgB,EAAE,SAAOI,KAAK,CAACJ,OAAf,EAAhB,GAA2CM,SAH1C,EAFM;;AAOlBC,MAAAA,QAAQ,EAAE,CAAC,KAAD,CAPQ;AAQlB,iBAAS,EAAEF,GAAG,EAAE,EAAP,EARS,EAAL,EAVF;;;AAqBb,aAAS,4BAAO;AACdP,MAAAA,IAAI,EAAE,MADQ;AAEdE,MAAAA,OAAO,EAAE,IAFK;AAGdE,MAAAA,MAAM,EAAE,IAHM,EAAP,EArBI,E","sourcesContent":["export default {\n isType: schema => schema.type === \"object\" && schema.properties.modelId,\n\n fromSchema: schema => ({\n type: \"link\",\n modelId: schema.properties.modelId.const,\n viewId: schema.properties.viewId.const,\n default: schema.default,\n }),\n\n toSchema: field => ({\n type: \"object\",\n properties: {\n _id: { type: \"string\" },\n viewId: field.viewId ? { const: field.viewId } : undefined,\n modelId: field.modelId ? { const: field.modelId } : undefined,\n },\n required: [\"_id\"],\n default: { _id: \"\" },\n }),\n\n default: () => ({\n type: \"link\",\n modelId: null,\n viewId: null,\n }),\n}\n"],"file":"link.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/types/number.js b/packages/common/lib/schema/types/number.js deleted file mode 100644 index ef20ee930e..0000000000 --- a/packages/common/lib/schema/types/number.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _default2 = { - isType: function isType(schema) {return schema.type === "number";}, - fromSchema: function fromSchema(schema) {return schema;}, - toSchema: function toSchema(field) {return { - type: "number", - maximum: field.maximum, - minimum: field.minimum, - "default": undefined };}, - - "default": function _default() {return { - type: "number", - maximum: null, - minimum: null };} };exports["default"] = _default2; -//# sourceMappingURL=number.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/types/number.js.map b/packages/common/lib/schema/types/number.js.map deleted file mode 100644 index f9cd61350d..0000000000 --- a/packages/common/lib/schema/types/number.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../../src/schema/types/number.js"],"names":["isType","schema","type","fromSchema","toSchema","field","maximum","minimum","undefined"],"mappings":"uHAAe;AACbA,EAAAA,MAAM,EAAE,gBAAAC,MAAM,UAAIA,MAAM,CAACC,IAAP,KAAgB,QAApB,EADD;AAEbC,EAAAA,UAAU,EAAE,oBAAAF,MAAM,UAAIA,MAAJ,EAFL;AAGbG,EAAAA,QAAQ,EAAE,kBAAAC,KAAK,UAAK;AAClBH,MAAAA,IAAI,EAAE,QADY;AAElBI,MAAAA,OAAO,EAAED,KAAK,CAACC,OAFG;AAGlBC,MAAAA,OAAO,EAAEF,KAAK,CAACE,OAHG;AAIlB,iBAASC,SAJS,EAAL,EAHF;;AASb,aAAS,4BAAO;AACdN,MAAAA,IAAI,EAAE,QADQ;AAEdI,MAAAA,OAAO,EAAE,IAFK;AAGdC,MAAAA,OAAO,EAAE,IAHK,EAAP,EATI,E","sourcesContent":["export default {\n isType: schema => schema.type === \"number\",\n fromSchema: schema => schema,\n toSchema: field => ({\n type: \"number\",\n maximum: field.maximum,\n minimum: field.minimum,\n default: undefined,\n }),\n default: () => ({\n type: \"number\",\n maximum: null,\n minimum: null,\n }),\n}\n"],"file":"number.js"} \ No newline at end of file diff --git a/packages/common/lib/schema/views.js b/packages/common/lib/schema/views.js deleted file mode 100644 index 5b846c4fa5..0000000000 --- a/packages/common/lib/schema/views.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.newView = void 0;var _shortid = require("shortid"); - -var newView = function newView() {var modelId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;return { - id: (0, _shortid.generate)(), - name: "", - modelId: modelId };};exports.newView = newView; -//# sourceMappingURL=views.js.map \ No newline at end of file diff --git a/packages/common/lib/schema/views.js.map b/packages/common/lib/schema/views.js.map deleted file mode 100644 index 07be3044e4..0000000000 --- a/packages/common/lib/schema/views.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/schema/views.js"],"names":["newView","modelId","id","name"],"mappings":"oGAAA;;AAEO,IAAMA,OAAO,GAAG,SAAVA,OAAU,QAACC,OAAD,uEAAW,IAAX,QAAqB;AAC1CC,IAAAA,EAAE,EAAE,wBADsC;AAE1CC,IAAAA,IAAI,EAAE,EAFoC;AAG1CF,IAAAA,OAAO,EAAPA,OAH0C,EAArB,EAAhB,C","sourcesContent":["import { generate } from \"shortid\"\n\nexport const newView = (modelId = null) => ({\n id: generate(),\n name: \"\",\n modelId,\n})\n"],"file":"views.js"} \ No newline at end of file diff --git a/packages/common/lib/schemaValidation/index.js b/packages/common/lib/schemaValidation/index.js deleted file mode 100644 index 9acd111c2e..0000000000 --- a/packages/common/lib/schemaValidation/index.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _ajv = _interopRequireDefault(require("ajv")); - -var ajv = new _ajv["default"]();var _default = - -ajv;exports["default"] = _default; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/packages/common/lib/schemaValidation/index.js.map b/packages/common/lib/schemaValidation/index.js.map deleted file mode 100644 index 009b82c4cf..0000000000 --- a/packages/common/lib/schemaValidation/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/schemaValidation/index.js"],"names":["ajv","Ajv"],"mappings":"4LAAA;;AAEA,IAAMA,GAAG,GAAG,IAAIC,eAAJ,EAAZ,C;;AAEeD,G","sourcesContent":["import Ajv from \"ajv\";\n\nconst ajv = new Ajv();\n\nexport default ajv;"],"file":"index.js"} \ No newline at end of file diff --git a/packages/common/package.json b/packages/common/package.json deleted file mode 100644 index 0f2cc7af28..0000000000 --- a/packages/common/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "@budibase/common", - "version": "0.0.32", - "description": "core javascript library for budibase", - "main": "lib/index.js", - "files": [ - "dist/**", - "!dist/node_modules" - ], - "directories": { - "test": "test" - }, - "scripts": { - "test": "jest", - "build": "npx babel src --out-dir lib --source-maps" - }, - "keywords": [ - "budibase" - ], - "author": "Budibase", - "license": "MPL-2.0", - "jest": { - "testURL": "http://jest-breaks-if-this-does-not-exist", - "moduleNameMapper": { - "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/internals/mocks/fileMock.js", - "\\.(css|less|sass|scss)$": "identity-obj-proxy" - }, - "moduleFileExtensions": [ - "js", - "mjs" - ], - "moduleDirectories": [ - "node_modules" - ], - "transform": { - "^.+\\.mjs$": "babel-jest", - "^.+\\.js$": "babel-jest" - } - }, - "devDependencies": { - "@babel/cli": "^7.4.4", - "@babel/core": "^7.4.5", - "@babel/plugin-transform-runtime": "^7.4.4", - "@babel/preset-env": "^7.4.5", - "@babel/runtime": "^7.4.5", - "babel-jest": "^25.3.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", - "cross-env": "^5.1.4", - "jest": "^24.8.0", - "readable-stream": "^3.1.1", - "regenerator-runtime": "^0.11.1", - "rimraf": "^2.6.2" - }, - "dependencies": { - "@nx-js/compiler-util": "^2.0.0", - "ajv": "^6.12.0", - "bcryptjs": "^2.4.3", - "date-fns": "^1.29.0", - "lodash": "^4.17.13", - "shortid": "^2.2.8" - }, - "devEngines": { - "node": ">=7.x", - "npm": ">=4.x", - "yarn": ">=0.21.3" - }, - "gitHead": "b1f4f90927d9e494e513220ef060af28d2d42455" -} diff --git a/packages/common/readme.md b/packages/common/readme.md deleted file mode 100644 index 2d1e02970e..0000000000 --- a/packages/common/readme.md +++ /dev/null @@ -1,21 +0,0 @@ -## Getting Started - -Install packages: - -`npm install` - -Next, run the tests. Install jest, globally: - -`npm install -g jest` - -And finally, run - -`jest` - -## Documentation - -A work in progress, lives here: https://github.com/Budibase/docs/blob/master/budibase-core.md - - - - diff --git a/packages/common/src/common/apiWrapper.js b/packages/common/src/common/apiWrapper.js deleted file mode 100644 index 54a9a36acc..0000000000 --- a/packages/common/src/common/apiWrapper.js +++ /dev/null @@ -1,128 +0,0 @@ -import { cloneDeep, isUndefined } from "lodash/fp" -import { generate } from "shortid" -import { UnauthorisedError } from "./errors" - -export const apiWrapper = async ( - app, - eventNamespace, - isAuthorized, - eventContext, - func, - ...params -) => { - pushCallStack(app, eventNamespace) - - if (!isAuthorized(app)) { - handleNotAuthorized(app, eventContext, eventNamespace) - return - } - - const startDate = Date.now() - const elapsed = () => Date.now() - startDate - - try { - await app.publish(eventNamespace.onBegin, eventContext) - - const result = await func(...params) - - await publishComplete(app, eventContext, eventNamespace, elapsed, result) - return result - } catch (error) { - await publishError(app, eventContext, eventNamespace, elapsed, error) - throw error - } -} - -export const apiWrapperSync = ( - app, - eventNamespace, - isAuthorized, - eventContext, - func, - ...params -) => { - pushCallStack(app, eventNamespace) - - if (!isAuthorized(app)) { - handleNotAuthorized(app, eventContext, eventNamespace) - return - } - - const startDate = Date.now() - const elapsed = () => Date.now() - startDate - - try { - app.publish(eventNamespace.onBegin, eventContext) - - const result = func(...params) - - publishComplete(app, eventContext, eventNamespace, elapsed, result) - return result - } catch (error) { - publishError(app, eventContext, eventNamespace, elapsed, error) - throw error - } -} - -const handleNotAuthorized = (app, eventContext, eventNamespace) => { - const err = new UnauthorisedError(`Unauthorized: ${eventNamespace}`) - publishError(app, eventContext, eventNamespace, () => 0, err) - throw err -} - -const pushCallStack = (app, eventNamespace, seedCallId) => { - const callId = generate() - - const createCallStack = () => ({ - seedCallId: !isUndefined(seedCallId) ? seedCallId : callId, - threadCallId: callId, - stack: [], - }) - - if (isUndefined(app.calls)) { - app.calls = createCallStack() - } - - app.calls.stack.push({ - namespace: eventNamespace, - callId, - }) -} - -const popCallStack = app => { - app.calls.stack.pop() - if (app.calls.stack.length === 0) { - delete app.calls - } -} - -const publishError = async ( - app, - eventContext, - eventNamespace, - elapsed, - err -) => { - const ctx = cloneDeep(eventContext) - ctx.error = err - ctx.elapsed = elapsed() - await app.publish(eventNamespace.onError, ctx) - popCallStack(app) -} - -const publishComplete = async ( - app, - eventContext, - eventNamespace, - elapsed, - result -) => { - const endcontext = cloneDeep(eventContext) - endcontext.result = result - endcontext.elapsed = elapsed() - await app.publish(eventNamespace.onComplete, endcontext) - popCallStack(app) - return result -} - -export default apiWrapper diff --git a/packages/common/src/common/compileCode.js b/packages/common/src/common/compileCode.js deleted file mode 100644 index 5e442c89a5..0000000000 --- a/packages/common/src/common/compileCode.js +++ /dev/null @@ -1,26 +0,0 @@ -import { compileCode as cCode } from "@nx-js/compiler-util" -import { includes } from "lodash/fp" - -export const compileCode = code => { - let func - let safeCode - - if (includes("return ")(code)) { - safeCode = code - } else { - let trimmed = code.trim() - trimmed = trimmed.endsWith(";") - ? trimmed.substring(0, trimmed.length - 1) - : trimmed - safeCode = `return (${trimmed})` - } - - try { - func = cCode(safeCode) - } catch (e) { - e.message = `Error compiling code : ${code} : ${e.message}` - throw e - } - - return func -} diff --git a/packages/common/src/common/errors.js b/packages/common/src/common/errors.js deleted file mode 100644 index 455b334c71..0000000000 --- a/packages/common/src/common/errors.js +++ /dev/null @@ -1,34 +0,0 @@ -export class BadRequestError extends Error { - constructor(message) { - super(message) - this.httpStatusCode = 400 - } -} - -export class UnauthorisedError extends Error { - constructor(message) { - super(message) - this.httpStatusCode = 401 - } -} - -export class ForbiddenError extends Error { - constructor(message) { - super(message) - this.httpStatusCode = 403 - } -} - -export class NotFoundError extends Error { - constructor(message) { - super(message) - this.httpStatusCode = 404 - } -} - -export class ConflictError extends Error { - constructor(message) { - super(message) - this.httpStatusCode = 409 - } -} diff --git a/packages/common/src/common/eventAggregator.js b/packages/common/src/common/eventAggregator.js deleted file mode 100644 index 152d5a4677..0000000000 --- a/packages/common/src/common/eventAggregator.js +++ /dev/null @@ -1,27 +0,0 @@ -import { has } from "lodash/fp" - -const publish = handlers => async (eventName, context = {}) => { - if (!has(eventName)(handlers)) return - - for (const handler of handlers[eventName]) { - await handler(eventName, context) - } -} - -const subscribe = handlers => (eventName, handler) => { - if (!has(eventName)(handlers)) { - handlers[eventName] = [] - } - handlers[eventName].push(handler) -} - -export const createEventAggregator = () => { - const handlers = {} - const eventAggregator = { - publish: publish(handlers), - subscribe: subscribe(handlers), - } - return eventAggregator -} - -export default createEventAggregator diff --git a/packages/common/src/common/events.js b/packages/common/src/common/events.js deleted file mode 100644 index 82501fbf9d..0000000000 --- a/packages/common/src/common/events.js +++ /dev/null @@ -1,85 +0,0 @@ -import { union, reduce } from "lodash/fp" - -const commonPlus = extra => union(["onBegin", "onComplete", "onError"])(extra) - -const common = () => commonPlus([]) - -const _events = { - recordApi: { - save: commonPlus(["onInvalid", "onRecordUpdated", "onRecordCreated"]), - delete: common(), - getContext: common(), - getNew: common(), - load: common(), - validate: common(), - uploadFile: common(), - downloadFile: common(), - }, - indexApi: { - buildIndex: common(), - listItems: common(), - delete: common(), - aggregates: common(), - }, - collectionApi: { - getAllowedRecordTypes: common(), - initialise: common(), - delete: common(), - }, - authApi: { - authenticate: common(), - authenticateTemporaryAccess: common(), - createTemporaryAccess: common(), - createUser: common(), - enableUser: common(), - disableUser: common(), - loadAccessLevels: common(), - getNewAccessLevel: common(), - getNewUser: common(), - getNewUserAuth: common(), - getUsers: common(), - saveAccessLevels: common(), - isAuthorized: common(), - changeMyPassword: common(), - setPasswordFromTemporaryCode: common(), - scorePassword: common(), - isValidPassword: common(), - validateUser: common(), - validateAccessLevels: common(), - setUserAccessLevels: common(), - }, - templateApi: { - saveApplicationHierarchy: common(), - saveActionsAndTriggers: common(), - }, - actionsApi: { - execute: common(), - }, -} - -const _eventsList = [] - -const makeEvent = (area, method, name) => `${area}:${method}:${name}` - -for (const areaKey in _events) { - for (const methodKey in _events[areaKey]) { - _events[areaKey][methodKey] = reduce((obj, s) => { - obj[s] = makeEvent(areaKey, methodKey, s) - return obj - }, {})(_events[areaKey][methodKey]) - } -} - -for (const areaKey in _events) { - for (const methodKey in _events[areaKey]) { - for (const name in _events[areaKey][methodKey]) { - _eventsList.push(_events[areaKey][methodKey][name]) - } - } -} - -export const events = _events - -export const eventsList = _eventsList - -export default { events: _events, eventsList: _eventsList } diff --git a/packages/common/src/common/index.js b/packages/common/src/common/index.js deleted file mode 100644 index 7c91ef9d67..0000000000 --- a/packages/common/src/common/index.js +++ /dev/null @@ -1,307 +0,0 @@ -import { - head, - tail, - findIndex, - startsWith, - dropRight, - flow, - takeRight, - trim, - replace, -} from "lodash" -import { - some, - reduce, - isEmpty, - isArray, - join, - isString, - isInteger, - isDate, - toNumber, - isUndefined, - isNaN, - isNull, - constant, - split, - includes, - filter, -} from "lodash/fp" -import { events, eventsList } from "./events.js" - -// this is the combinator function -export const $$ = (...funcs) => arg => flow(funcs)(arg) - -// this is the pipe function -export const $ = (arg, funcs) => $$(...funcs)(arg) - -export const keySep = "/" -const trimKeySep = str => trim(str, keySep) -const splitByKeySep = str => split(keySep)(str) -export const safeKey = key => - replace(`${keySep}${trimKeySep(key)}`, `${keySep}${keySep}`, keySep) -export const joinKey = (...strs) => { - const paramsOrArray = (strs.length === 1) & isArray(strs[0]) ? strs[0] : strs - return $(paramsOrArray, [ - filter(s => !isUndefined(s) && !isNull(s) && s.toString().length > 0), - join(keySep), - safeKey, - ]) -} -export const splitKey = $$(trimKeySep, splitByKeySep) -export const getDirFomKey = $$(splitKey, dropRight, p => joinKey(...p)) -export const getFileFromKey = $$(splitKey, takeRight, head) - -export const configFolder = `${keySep}.config` -export const fieldDefinitions = joinKey(configFolder, "fields.json") -export const templateDefinitions = joinKey(configFolder, "templates.json") -export const appDefinitionFile = joinKey(configFolder, "appDefinition.json") -export const dirIndex = folderPath => - joinKey(configFolder, "dir", ...splitKey(folderPath), "dir.idx") -export const getIndexKeyFromFileKey = $$(getDirFomKey, dirIndex) - -export const ifExists = (val, exists, notExists) => - isUndefined(val) - ? isUndefined(notExists) - ? (() => {})() - : notExists() - : exists() - -export const getOrDefault = (val, defaultVal) => - ifExists( - val, - () => val, - () => defaultVal - ) - -export const not = func => val => !func(val) -export const isDefined = not(isUndefined) -export const isNonNull = not(isNull) -export const isNotNaN = not(isNaN) - -export const allTrue = (...funcArgs) => val => - reduce( - (result, conditionFunc) => - (isNull(result) || result == true) && conditionFunc(val), - null - )(funcArgs) - -export const anyTrue = (...funcArgs) => val => - reduce( - (result, conditionFunc) => result == true || conditionFunc(val), - null - )(funcArgs) - -export const insensitiveEquals = (str1, str2) => - str1.trim().toLowerCase() === str2.trim().toLowerCase() - -export const isSomething = allTrue(isDefined, isNonNull, isNotNaN) -export const isNothing = not(isSomething) -export const isNothingOrEmpty = v => isNothing(v) || isEmpty(v) -export const somethingOrGetDefault = getDefaultFunc => val => - isSomething(val) ? val : getDefaultFunc() -export const somethingOrDefault = (val, defaultVal) => - somethingOrGetDefault(constant(defaultVal))(val) - -export const mapIfSomethingOrDefault = (mapFunc, defaultVal) => val => - isSomething(val) ? mapFunc(val) : defaultVal - -export const mapIfSomethingOrBlank = mapFunc => - mapIfSomethingOrDefault(mapFunc, "") - -export const none = predicate => collection => !some(predicate)(collection) - -export const all = predicate => collection => - none(v => !predicate(v))(collection) - -export const isNotEmpty = ob => !isEmpty(ob) -export const isAsync = fn => fn.constructor.name === "AsyncFunction" -export const isNonEmptyArray = allTrue(isArray, isNotEmpty) -export const isNonEmptyString = allTrue(isString, isNotEmpty) -export const tryOr = failFunc => (func, ...args) => { - try { - return func.apply(null, ...args) - } catch (_) { - return failFunc() - } -} - -export const tryAwaitOr = failFunc => async (func, ...args) => { - try { - return await func.apply(null, ...args) - } catch (_) { - return await failFunc() - } -} - -export const defineError = (func, errorPrefix) => { - try { - return func() - } catch (err) { - err.message = `${errorPrefix} : ${err.message}` - throw err - } -} - -export const tryOrIgnore = tryOr(() => {}) -export const tryAwaitOrIgnore = tryAwaitOr(async () => {}) -export const causesException = func => { - try { - func() - return false - } catch (e) { - return true - } -} - -export const executesWithoutException = func => !causesException(func) - -export const handleErrorWith = returnValInError => - tryOr(constant(returnValInError)) - -export const handleErrorWithUndefined = handleErrorWith(undefined) - -export const switchCase = (...cases) => value => { - const nextCase = () => head(cases)[0](value) - const nextResult = () => head(cases)[1](value) - - if (isEmpty(cases)) return // undefined - if (nextCase() === true) return nextResult() - return switchCase(...tail(cases))(value) -} - -export const isValue = val1 => val2 => val1 === val2 -export const isOneOf = (...vals) => val => includes(val)(vals) -export const defaultCase = constant(true) -export const memberMatches = (member, match) => obj => match(obj[member]) - -export const StartsWith = searchFor => searchIn => - startsWith(searchIn, searchFor) - -export const contains = val => array => findIndex(array, v => v === val) > -1 - -export const getHashCode = s => { - let hash = 0 - let i - let char - let l - if (s.length == 0) return hash - for (i = 0, l = s.length; i < l; i++) { - char = s.charCodeAt(i) - hash = (hash << 5) - hash + char - hash |= 0 // Convert to 32bit integer - } - - // converting to string, but dont want a "-" prefixed - if (hash < 0) { - return `n${(hash * -1).toString()}` - } - return hash.toString() -} - -// thanks to https://blog.grossman.io/how-to-write-async-await-without-try-catch-blocks-in-javascript/ -export const awEx = async promise => { - try { - const result = await promise - return [undefined, result] - } catch (error) { - return [error, undefined] - } -} - -export const isSafeInteger = n => - isInteger(n) && - n <= Number.MAX_SAFE_INTEGER && - n >= 0 - Number.MAX_SAFE_INTEGER - -export const toDateOrNull = s => - isNull(s) ? null : isDate(s) ? s : new Date(s) -export const toBoolOrNull = s => (isNull(s) ? null : s === "true" || s === true) -export const toNumberOrNull = s => (isNull(s) ? null : toNumber(s)) - -export const isArrayOfString = opts => isArray(opts) && all(isString)(opts) - -export const pushAll = (target, items) => { - for (let i of items) target.push(i) -} - -export const pause = async duration => - new Promise(res => setTimeout(res, duration)) - -export const retry = async (fn, retries, delay, ...args) => { - try { - return await fn(...args) - } catch (err) { - if (retries > 1) { - return await pause(delay).then( - async () => await retry(fn, retries - 1, delay, ...args) - ) - } - throw err - } -} - -export { events } from "./events.js" - -export default { - ifExists, - getOrDefault, - isDefined, - isNonNull, - isNotNaN, - allTrue, - isSomething, - mapIfSomethingOrDefault, - mapIfSomethingOrBlank, - configFolder, - fieldDefinitions, - isNothing, - not, - switchCase, - defaultCase, - StartsWith, - contains, - templateDefinitions, - handleErrorWith, - handleErrorWithUndefined, - tryOr, - tryOrIgnore, - tryAwaitOr, - tryAwaitOrIgnore, - dirIndex, - keySep, - $, - $$, - getDirFomKey, - getFileFromKey, - splitKey, - somethingOrDefault, - getIndexKeyFromFileKey, - joinKey, - somethingOrGetDefault, - appDefinitionFile, - isValue, - all, - isOneOf, - memberMatches, - defineError, - anyTrue, - isNonEmptyArray, - causesException, - executesWithoutException, - none, - getHashCode, - awEx, - events, - eventsList, - isNothingOrEmpty, - isSafeInteger, - toNumber, - toDate: toDateOrNull, - toBool: toBoolOrNull, - isArrayOfString, - insensitiveEquals, - pause, - retry, - pushAll, -} diff --git a/packages/common/src/common/validationCommon.js b/packages/common/src/common/validationCommon.js deleted file mode 100644 index 51029e1fc6..0000000000 --- a/packages/common/src/common/validationCommon.js +++ /dev/null @@ -1,14 +0,0 @@ -import { filter, map } from "lodash/fp" -import { $, isSomething } from "./index" - -export const stringNotEmpty = s => isSomething(s) && s.trim().length > 0 - -export const makerule = (field, error, isValid) => ({ field, error, isValid }) - -export const validationError = (rule, item) => ({ ...rule, item }) - -export const applyRuleSet = ruleSet => itemToValidate => - $(ruleSet, [map(applyRule(itemToValidate)), filter(isSomething)]) - -export const applyRule = itemTovalidate => rule => - rule.isValid(itemTovalidate) ? null : validationError(rule, itemTovalidate) diff --git a/packages/common/src/index.js b/packages/common/src/index.js deleted file mode 100644 index d5e715d6ce..0000000000 --- a/packages/common/src/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export { events } from "./common/events"; -export { safeParseField } from "./schema/types"; -export { default as schemaValidator } from "./schemaValidation"; \ No newline at end of file diff --git a/packages/common/src/schema/createActions.js b/packages/common/src/schema/createActions.js deleted file mode 100644 index 148e6aaa15..0000000000 --- a/packages/common/src/schema/createActions.js +++ /dev/null @@ -1,22 +0,0 @@ -export const createTrigger = () => ({ - actionName: "", - eventName: "", - // function, has access to event context, - // returns object that is used as parameter to action - // only used if triggered by event - optionsCreator: "", - // action runs if true, - // has access to event context - condition: "", -}) - -export const createAction = () => ({ - name: "", - behaviourSource: "", - // name of function in actionSource - behaviourName: "", - // parameter passed into behaviour. - // any other parms passed at runtime e.g. - // by trigger, or manually, will be merged into this - initialOptions: {}, -}) diff --git a/packages/common/src/schema/fields.js b/packages/common/src/schema/fields.js deleted file mode 100644 index 0a11acf596..0000000000 --- a/packages/common/src/schema/fields.js +++ /dev/null @@ -1,96 +0,0 @@ -import { some, map, filter, keys, includes, countBy, flatten } from "lodash/fp" -import { - isSomething, - $, - isNonEmptyString, - isNothingOrEmpty, - isNothing, -} from "../common" -import { all, getDefaultOptions } from "./types/index.js" -import { applyRuleSet, makerule } from "../common/validationCommon" -import { BadRequestError } from "../common/errors" -import { generate } from "shortid" - -export const fieldErrors = { - AddFieldValidationFailed: "Add field validation: ", -} - -export const allowedTypes = () => keys(all) - -export const getNewField = type => ({ - id: generate(), - name: "", // how field is referenced internally - type, - typeOptions: getDefaultOptions(type), - label: "", // how field is displayed - getInitialValue: "default", // function that gets value when initially created - getUndefinedValue: "default", // function that gets value when field undefined on record -}) - -const fieldRules = allFields => [ - makerule("name", "field name is not set", f => isNonEmptyString(f.name)), - makerule("type", "field type is not set", f => isNonEmptyString(f.type)), - makerule("label", "field label is not set", f => isNonEmptyString(f.label)), - makerule("getInitialValue", "getInitialValue function is not set", f => - isNonEmptyString(f.getInitialValue) - ), - makerule("getUndefinedValue", "getUndefinedValue function is not set", f => - isNonEmptyString(f.getUndefinedValue) - ), - makerule( - "name", - "field name is duplicated", - f => isNothingOrEmpty(f.name) || countBy("name")(allFields)[f.name] === 1 - ), - makerule( - "type", - "type is unknown", - f => isNothingOrEmpty(f.type) || some(t => f.type === t)(allowedTypes()) - ), -] - -const typeOptionsRules = field => { - const type = all[field.type] - if (isNothing(type)) return [] - - const def = optName => type.optionDefinitions[optName] - - return $(field.typeOptions, [ - keys, - filter(o => isSomething(def(o)) && isSomething(def(o).isValid)), - map(o => - makerule(`typeOptions.${o}`, `${def(o).requirementDescription}`, field => - def(o).isValid(field.typeOptions[o]) - ) - ), - ]) -} - -export const validateField = allFields => field => { - const everySingleField = includes(field)(allFields) - ? allFields - : [...allFields, field] - return applyRuleSet([ - ...fieldRules(everySingleField), - ...typeOptionsRules(field), - ])(field) -} - -export const validateAllFields = recordNode => - $(recordNode.fields, [map(validateField(recordNode.fields)), flatten]) - -export const addField = (recordTemplate, field) => { - if (isNothingOrEmpty(field.label)) { - field.label = field.name - } - const validationMessages = validateField([...recordTemplate.fields, field])( - field - ) - if (validationMessages.length > 0) { - const errors = map(m => m.error)(validationMessages) - throw new BadRequestError( - `${fieldErrors.AddFieldValidationFailed} ${errors.join(", ")}` - ) - } - recordTemplate.fields.push(field) -} diff --git a/packages/common/src/schema/fullSchema.js b/packages/common/src/schema/fullSchema.js deleted file mode 100644 index 85a9f63106..0000000000 --- a/packages/common/src/schema/fullSchema.js +++ /dev/null @@ -1,33 +0,0 @@ -export const fullSchema = (models, views) => { - const findModel = idOrName => - models.find( - m => m.id === idOrName || m.name.toLowerCase() === idOrName.toLowerCase() - ) - - const findView = idOrName => - views.find( - m => m.id === idOrName || m.name.toLowerCase() === idOrName.toLowerCase() - ) - - const findField = (modelIdOrName, fieldName) => { - const model = models.find( - m => - m.id === modelIdOrName || - m.name.toLowerCase() === modelIdOrName.toLowerCase() - ) - return model.fields.find( - f => f.name.toLowerCase() === fieldName.toLowerCase() - ) - } - - const viewsForModel = modelId => views.filter(v => v.modelId === modelId) - - return { - models, - views, - findModel, - findField, - findView, - viewsForModel, - } -} diff --git a/packages/common/src/schema/models.js b/packages/common/src/schema/models.js deleted file mode 100644 index ccef59623c..0000000000 --- a/packages/common/src/schema/models.js +++ /dev/null @@ -1,42 +0,0 @@ -import { generate } from "shortid" - -export const newModel = () => ({ - _id: generate(), - name: "", - type: "model", - key: "name", - schema: { - type: "object", - properties: { - name: { type: "string" }, - }, - required: ["name"], - }, -}) - -/** - * - * @param {Array} models - * @param {string} modelId - * @returns {} - */ -export const canDeleteModel = (models, modelId) => { - const errors = [] - - for (let model of models) { - const links = model.fields.filter( - f => f.type === "link" && f.typeOptions.modelId === modelId - ) - - for (let link of links) { - errors.push( - `The "${model.name}" model links to this model, via field "${link.name}"` - ) - } - } - - return { - errors, - canDelete: errors.length > 0, - } -} diff --git a/packages/common/src/schema/types/boolean.js b/packages/common/src/schema/types/boolean.js deleted file mode 100644 index 8b5f12baed..0000000000 --- a/packages/common/src/schema/types/boolean.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - isType: schema => schema.type === "boolean", - fromSchema: schema => schema, - toSchema: field => ({ - type: "boolean", - default: field.default, - }), - default: () => ({ - type: "boolean", - default: false, - }), -} diff --git a/packages/common/src/schema/types/datetime.js b/packages/common/src/schema/types/datetime.js deleted file mode 100644 index 80efe286bb..0000000000 --- a/packages/common/src/schema/types/datetime.js +++ /dev/null @@ -1,19 +0,0 @@ -export default { - isType: schema => - schema.anyOf && - schema.anyOf.filter(s => s.type === "string" && s.format === "date-time") - .length > 0, - - fromSchema: schema => ({ - type: "datetime", - default: schema.default, - }), - toSchema: () => ({ - anyOf: [{ type: "string", format: "date-time" }, { const: "" }], - default: "", - }), - default: () => ({ - type: "datetime", - default: "", - }), -} diff --git a/packages/common/src/schema/types/index.js b/packages/common/src/schema/types/index.js deleted file mode 100644 index 433eb0850a..0000000000 --- a/packages/common/src/schema/types/index.js +++ /dev/null @@ -1,53 +0,0 @@ -import boolean from "./boolean" -import datetime from "./datetime" -import link from "./link" -import number from "./number" -import select from "./select" -import text from "./text" - -const allTypes = { - boolean, - datetime, - link, - number, - select, - text, -} - -export function listTypes() { - return Object.keys(allTypes) -} - -export function newField(name, type) { - const field = allTypes[type].default() - field.name = name - field.required = false - return field -} - -export function fieldsToSchema(fields) { - const required = fields.filter(f => f.required).map(f => f.name) - - return { - type: "object", - required, - properties: fields.reduce((sch, field) => { - sch[field.name] = allTypes[field.type].toSchema(field) - return sch - }, {}), - } -} - -export function schemaToFields(modelSchema) { - return Object.keys(modelSchema.properties).map(key => { - const schema = modelSchema.properties[key] - for (let type in allTypes) { - if (allTypes[type].isType(schema)) { - const field = allTypes[type].fromSchema(schema) - field.required = modelSchema.required.includes(key) - field.name = key - return field - } - } - }) -} diff --git a/packages/common/src/schema/types/link.js b/packages/common/src/schema/types/link.js deleted file mode 100644 index deaa895c25..0000000000 --- a/packages/common/src/schema/types/link.js +++ /dev/null @@ -1,27 +0,0 @@ -export default { - isType: schema => schema.type === "object" && schema.properties.modelId, - - fromSchema: schema => ({ - type: "link", - modelId: schema.properties.modelId.const, - viewId: schema.properties.viewId.const, - default: schema.default, - }), - - toSchema: field => ({ - type: "object", - properties: { - _id: { type: "string" }, - viewId: field.viewId ? { const: field.viewId } : undefined, - modelId: field.modelId ? { const: field.modelId } : undefined, - }, - required: ["_id"], - default: { _id: "" }, - }), - - default: () => ({ - type: "link", - modelId: null, - viewId: null, - }), -} diff --git a/packages/common/src/schema/types/number.js b/packages/common/src/schema/types/number.js deleted file mode 100644 index 94733bace1..0000000000 --- a/packages/common/src/schema/types/number.js +++ /dev/null @@ -1,15 +0,0 @@ -export default { - isType: schema => schema.type === "number", - fromSchema: schema => schema, - toSchema: field => ({ - type: "number", - maximum: field.maximum, - minimum: field.minimum, - default: undefined, - }), - default: () => ({ - type: "number", - maximum: null, - minimum: null, - }), -} diff --git a/packages/common/src/schema/types/select.js b/packages/common/src/schema/types/select.js deleted file mode 100644 index 0deb998f99..0000000000 --- a/packages/common/src/schema/types/select.js +++ /dev/null @@ -1,21 +0,0 @@ -export default { - isType: schema => schema.type === "string" && schema.enum, - - fromSchema: schema => ({ - type: "select", - enum: schema.enum, - default: schema.default, - }), - - toSchema: field => ({ - type: "string", - enum: field.enum, - default: field.default, - }), - - default: () => ({ - type: "select", - enum: [], - default: "", - }), -} diff --git a/packages/common/src/schema/types/text.js b/packages/common/src/schema/types/text.js deleted file mode 100644 index eb0c938b42..0000000000 --- a/packages/common/src/schema/types/text.js +++ /dev/null @@ -1,24 +0,0 @@ -export default { - isType: schema => schema.type === "string" && !schema.format, - - fromSchema: schema => ({ - type: "text", - maxLength: schema.maxLength, - minLength: schema.minLength, - default: schema.default, - }), - - toSchema: field => ({ - type: "string", - maxLength: field.maxLength, - minLength: field.minLength, - default: "", - }), - - default: () => ({ - type: "text", - maxLength: null, - minLength: 0, - default: "", - }), -} diff --git a/packages/common/src/schema/views.js b/packages/common/src/schema/views.js deleted file mode 100644 index 0d95267d0a..0000000000 --- a/packages/common/src/schema/views.js +++ /dev/null @@ -1,7 +0,0 @@ -import { generate } from "shortid" - -export const newView = (modelId = null) => ({ - id: generate(), - name: "", - modelId, -}) diff --git a/packages/common/src/schemaValidation/index.js b/packages/common/src/schemaValidation/index.js deleted file mode 100644 index 83b1cc43e5..0000000000 --- a/packages/common/src/schemaValidation/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import Ajv from "ajv"; - -const ajv = new Ajv(); - -export default ajv; \ No newline at end of file diff --git a/packages/common/src/testUtils/testSchema.js b/packages/common/src/testUtils/testSchema.js deleted file mode 100644 index bb2613926f..0000000000 --- a/packages/common/src/testUtils/testSchema.js +++ /dev/null @@ -1,38 +0,0 @@ -import { newModel } from "../schema/models" -import { newView } from "../schema/views" -import { fullSchema } from "../schema/fullSchema" -import { newField, schemaToFields, fieldsToSchema } from "../schema/types" - -export function testSchema() { - const addFieldToModel = (model, field) => { - const defaultField = newField(field.name, field.type || "text") - Object.assign(defaultField, field) - const currentFields = schemaToFields(model.schema) - model.schema = fieldsToSchema([...currentFields, field]) - } - - const contactModel = newModel() - contactModel.name = "Contact" - addFieldToModel(contactModel, { name: "Is Active", type: "boolean" }) - addFieldToModel(contactModel, { name: "Created", type: "datetime" }) - addFieldToModel(contactModel, { - name: "Status", - type: "select", - enum: ["new", "complete"], - }) - - const activeContactsView = newView(contactModel.id) - activeContactsView.name = "Active Contacts" - activeContactsView.map = "if (doc['Is Active']) emit(doc.Name, doc)" - - const dealModel = newModel() - dealModel.name = "Deal" - addFieldToModel(dealModel, { name: "Estimated Value", type: "number" }) - addFieldToModel(dealModel, { - name: "Contact", - type: "link", - modelId: contactModel.id, - }) - - return fullSchema([contactModel, dealModel], [activeContactsView]) -} diff --git a/packages/common/test/common.spec.js b/packages/common/test/common.spec.js deleted file mode 100644 index cd850dcb1f..0000000000 --- a/packages/common/test/common.spec.js +++ /dev/null @@ -1,216 +0,0 @@ -import common, { isOneOf } from "../src/common" -import _ from "lodash" - -const lessThan = than => compare => compare < than - -describe("common > switchCase", () => { - test("should return on first matching case", () => { - const result = common.switchCase( - [lessThan(1), _.constant("first")], - [lessThan(2), _.constant("second")], - [lessThan(3), _.constant("third")] - )(1) - - expect(result).toBe("second") - }) - - test("should return undefined if case not matched", () => { - const result = common.switchCase( - [lessThan(1), _.constant("first")], - [lessThan(2), _.constant("second")], - [lessThan(3), _.constant("third")] - )(10) - - expect(_.isUndefined(result)).toBeTruthy() - }) -}) - -describe("common > allTrue", () => { - test("should only return true when all conditions are met", () => { - const result1 = common.allTrue(lessThan(3), lessThan(5), lessThan(10))(1) - - expect(result1).toBeTruthy() - - const result2 = common.allTrue(lessThan(3), lessThan(5), lessThan(10))(7) - - expect(result2).toBeFalsy() - }) -}) - -describe("common > anyTrue", () => { - test("should return true when one or more condition is met", () => { - const result1 = common.anyTrue(lessThan(3), lessThan(5), lessThan(10))(5) - - expect(result1).toBeTruthy() - - const result2 = common.anyTrue(lessThan(3), lessThan(5), lessThan(10))(4) - - expect(result2).toBeTruthy() - }) - - test("should return false when no conditions are met", () => { - const result1 = common.anyTrue(lessThan(3), lessThan(5), lessThan(10))(15) - - expect(result1).toBeFalsy() - }) -}) - -const s = common.keySep - -describe("common > getDirFromKey", () => { - test("should drop the final part of the path", () => { - const key = `${s}one${s}two${s}three${s}last` - const expectedDIr = `${s}one${s}two${s}three` - const result = common.getDirFomKey(key) - expect(result).toBe(expectedDIr) - }) - - test("should add leading /", () => { - const key = `one${s}two${s}three${s}last` - const expectedDIr = `${s}one${s}two${s}three` - const result = common.getDirFomKey(key) - expect(result).toBe(expectedDIr) - }) -}) - -describe("common > getFileFromKey", () => { - test("should get the final part of the path", () => { - const key = `one${s}two${s}three${s}last` - const expectedFile = "last" - const result = common.getFileFromKey(key) - expect(result).toBe(expectedFile) - }) -}) - -describe("common > getIndexKeyFromFileKey", () => { - test("should get the index key of the file's directory", () => { - const key = `one${s}two${s}three${s}file` - const expectedFile = common.dirIndex(`one${s}two${s}three`) - const result = common.getIndexKeyFromFileKey(key) - expect(result).toBe(expectedFile) - }) -}) - -describe("common > somethingOrDefault", () => { - test("should use value if value is something", () => { - const result = common.somethingOrDefault("something", "default") - expect(result).toBe("something") - }) - test("should use value if value is empty sting", () => { - const result = common.somethingOrDefault("", "default") - expect(result).toBe("") - }) - test("should use value if value is empty array", () => { - const result = common.somethingOrDefault([], ["default"]) - expect(result.length).toBe(0) - }) - test("should use default if value is null", () => { - const result = common.somethingOrDefault(null, "default") - expect(result).toBe("default") - }) - test("should use default if value is undefined", () => { - const result = common.somethingOrDefault({}.notDefined, "default") - expect(result).toBe("default") - }) -}) - -describe("common > dirIndex", () => { - it("should match /config/dir//dir.idx to path", () => { - var result = common.dirIndex("some/path") - expect(result).toBe(`${s}.config${s}dir${s}some${s}path${s}dir.idx`) - }) -}) - -describe("common > joinKey", () => { - it("should join an array with the key separator and leading separator", () => { - var result = common.joinKey("this", "is", "a", "path") - expect(result).toBe(`${s}this${s}is${s}a${s}path`) - }) -}) - -describe("common > combinator ($$)", () => { - it("combines single params functions and returns a func", () => { - const f1 = str => str + " hello" - const f2 = str => str + " there" - const combined = common.$$(f1, f2) - const result = combined("mike says") - expect(result).toBe("mike says hello there") - }) -}) - -describe("common > pipe ($)", () => { - it("combines single params functions and executes with given param", () => { - const f1 = str => str + " hello" - const f2 = str => str + " there" - const result = common.$("mike says", [f1, f2]) - expect(result).toBe("mike says hello there") - }) -}) - -describe("common > IsOneOf", () => { - it("should return true when supplied value is in list of given vals", () => { - expect(common.isOneOf("odo", "make")("odo")).toBe(true) - - expect(common.isOneOf(1, 33, 9)(9)).toBe(true) - - expect(common.isOneOf(true, false, "")(true)).toBe(true) - }) - - it("should return false when supplied value is not in list of given vals", () => { - expect(common.isOneOf("odo", "make")("bob")).toBe(false) - - expect(common.isOneOf(1, 33, 9)(999)).toBe(false) - - expect(common.isOneOf(1, false, "")(true)).toBe(false) - }) -}) - -describe("defineError", () => { - it("should prefix and exception with message, and rethrow", () => { - expect(() => - common.defineError(() => { - throw new Error("there") - }, "hello") - ).toThrowError("hello : there") - }) - - it("should return function value when no exception", () => { - const result = common.defineError(() => 1, "no error") - expect(result).toBe(1) - }) -}) - -describe("retry", () => { - let counter = 0 - - it("should retry once", async () => { - var result = await common.retry(async () => 1, 3, 50) - expect(result).toBe(1) - }) - - it("should retry twice", async () => { - var result = await common.retry( - async () => { - counter++ - if (counter < 2) throw "error" - return counter - }, - 3, - 50 - ) - expect(result).toBe(2) - }) - - it("throws error after 3 retries", async () => { - expect( - common.retry( - async () => { - counter++ - throw counter - }, - 3, - 50 - ) - ).rejects.toThrowError(4) - }) -}) diff --git a/packages/common/test/getNewRecord.spec.js b/packages/common/test/getNewRecord.spec.js deleted file mode 100644 index bc3a900f5c..0000000000 --- a/packages/common/test/getNewRecord.spec.js +++ /dev/null @@ -1,32 +0,0 @@ -import { testSchema } from "./testSchema.mjs" -import { isNonEmptyString } from "../src/common" -import { getNewRecord } from "../src/records/getNewRecord.mjs" - -describe("getNewRecord", () => { - it("should get object with generated id and key (full path)", async () => { - const schema = testSchema() - const record = getNewRecord(schema, "Contact") - - expect(record._id).toBeDefined() - expect(isNonEmptyString(record._id)).toBeTruthy() - expect(record._rev).not.toBeDefined() - expect(record._modelId).toBe(schema.findModel("Contact").id) - }) - - it("should create object with all declared fields, using default values", async () => { - const schema = testSchema() - const contact = getNewRecord(schema, "Contact") - - expect(contact.Name).toBe(null) - expect(contact.Created).toBe(null) - expect(contact["Is Active"]).toBe(null) - }) - - it("should create object with all declared fields, and use inital values", async () => { - const schema = testSchema() - schema.findField("Contact", "Name").getInitialValue = "Default Name" - const contact = getNewRecord(schema, "Contact") - - expect(contact.Name).toBe("Default Name") - }) -}) diff --git a/packages/common/test/support/jasmine.json b/packages/common/test/support/jasmine.json deleted file mode 100644 index 89452f1277..0000000000 --- a/packages/common/test/support/jasmine.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "spec_dir": "test", - "spec_files": [ - "**/*[sS]pec.js" - ], - "helpers": [ - "helpers/**/*.js" - ], - "stopSpecOnExpectationFailure": false, - "random": false -} diff --git a/packages/common/test/templateApi.actionsValidation.spec.js b/packages/common/test/templateApi.actionsValidation.spec.js deleted file mode 100644 index cda6fce6f8..0000000000 --- a/packages/common/test/templateApi.actionsValidation.spec.js +++ /dev/null @@ -1,110 +0,0 @@ -import { validateActions, validateTrigger } from "../src/templateApi/validate" -import { createValidActionsAndTriggers } from "./specHelpers" - -describe("templateApi actions validation", () => { - it("should return no errors when all actions are valid", () => { - const { allActions } = createValidActionsAndTriggers() - const result = validateActions(allActions) - expect(result).toEqual([]) - }) - - it("should return error for empty behaviourName", () => { - const { allActions, logMessage } = createValidActionsAndTriggers() - logMessage.behaviourName = "" - const result = validateActions(allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("behaviourName") - }) - - it("should return error for empty behaviourSource", () => { - const { allActions, logMessage } = createValidActionsAndTriggers() - logMessage.behaviourSource = "" - const result = validateActions(allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("behaviourSource") - }) - - it("should return error for empty name", () => { - const { allActions, logMessage } = createValidActionsAndTriggers() - logMessage.name = "" - const result = validateActions(allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("name") - }) - - it("should return error for duplicate name", () => { - const { - allActions, - logMessage, - measureCallTime, - } = createValidActionsAndTriggers() - logMessage.name = measureCallTime.name - const result = validateActions(allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("") - }) -}) - -describe("tempalteApi triggers validation", () => { - it("should return error when actionName is empty", () => { - const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers() - logOnErrorTrigger.actionName = "" - const result = validateTrigger(logOnErrorTrigger, allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("actionName") - }) - - it("should return error when eventName is empty", () => { - const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers() - logOnErrorTrigger.eventName = "" - const result = validateTrigger(logOnErrorTrigger, allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("eventName") - }) - - it("should return error when eventName does not exist in allowed events", () => { - const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers() - logOnErrorTrigger.eventName = "non existant event name" - const result = validateTrigger(logOnErrorTrigger, allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("eventName") - }) - - it("should return error when actionName does not exist in supplied actions", () => { - const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers() - logOnErrorTrigger.actionName = "non existent action name" - const result = validateTrigger(logOnErrorTrigger, allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("actionName") - }) - - it("should return error when optionsCreator is invalid javascript", () => { - const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers() - logOnErrorTrigger.optionsCreator = "this is nonsense" - const result = validateTrigger(logOnErrorTrigger, allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("optionsCreator") - }) - - it("should return error when condition is invalid javascript", () => { - const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers() - logOnErrorTrigger.condition = "this is nonsense" - const result = validateTrigger(logOnErrorTrigger, allActions) - expect(result.length).toBe(1) - expect(result[0].field).toEqual("condition") - }) - - it("should not return error when condition is empty", () => { - const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers() - logOnErrorTrigger.condition = "" - const result = validateTrigger(logOnErrorTrigger, allActions) - expect(result.length).toBe(0) - }) - - it("should not return error when optionsCreator is empty", () => { - const { allActions, logOnErrorTrigger } = createValidActionsAndTriggers() - logOnErrorTrigger.optionsCreator = "" - const result = validateTrigger(logOnErrorTrigger, allActions) - expect(result.length).toBe(0) - }) -}) diff --git a/packages/common/test/templateApi.canDelete.spec.js b/packages/common/test/templateApi.canDelete.spec.js deleted file mode 100644 index 8751068ba3..0000000000 --- a/packages/common/test/templateApi.canDelete.spec.js +++ /dev/null @@ -1,86 +0,0 @@ -import { - setupApphierarchy, - basicAppHierarchyCreator_WithFields, - stubEventHandler, - basicAppHierarchyCreator_WithFields_AndIndexes, -} from "./specHelpers" -import { canDeleteIndex } from "../src/templateApi/canDeleteIndex" -import { canDeleteRecord } from "../src/templateApi/canDeleteRecord" - -describe("canDeleteIndex", () => { - it("should return no errors if deltion is valid", async () => { - const { appHierarchy } = await setupApphierarchy( - basicAppHierarchyCreator_WithFields - ) - - const partnerIndex = appHierarchy.root.indexes.find(i => i.name === "partner_index") - - const result = canDeleteIndex(partnerIndex) - - expect(result.canDelete).toBe(true) - expect(result.errors).toEqual([]) - }) - - it("should return errors if index is a lookup for a reference field", async () => { - const { appHierarchy } = await setupApphierarchy( - basicAppHierarchyCreator_WithFields - ) - - const customerIndex = appHierarchy.root.indexes.find(i => i.name === "customer_index") - - const result = canDeleteIndex(customerIndex) - - expect(result.canDelete).toBe(false) - expect(result.errors.length).toBe(1) - }) - - it("should return errors if index is a manyToOne index for a reference field", async () => { - const { appHierarchy } = await setupApphierarchy( - basicAppHierarchyCreator_WithFields - ) - - const referredToCustomersIndex = appHierarchy.customerRecord.indexes.find(i => i.name === "referredToCustomers") - - const result = canDeleteIndex(referredToCustomersIndex) - - expect(result.canDelete).toBe(false) - expect(result.errors.length).toBe(1) - }) -}) - - -describe("canDeleteRecord", () => { - it("should return no errors when deletion is valid", async () => { - const { appHierarchy } = await setupApphierarchy( - basicAppHierarchyCreator_WithFields - ) - - appHierarchy.root.indexes = appHierarchy.root.indexes.filter(i => !i.allowedRecordNodeIds.includes(appHierarchy.customerRecord.nodeId)) - const result = canDeleteRecord(appHierarchy.customerRecord) - - expect(result.canDelete).toBe(true) - expect(result.errors).toEqual([]) - }) - - it("should return errors when record is referenced by hierarchal index", async () => { - const { appHierarchy } = await setupApphierarchy( - basicAppHierarchyCreator_WithFields - ) - - const result = canDeleteRecord(appHierarchy.customerRecord) - - expect(result.canDelete).toBe(false) - expect(result.errors.some(e => e.includes("customer_index"))).toBe(true) - }) - - it("should return errors when record has a child which cannot be deleted", async () => { - const { appHierarchy } = await setupApphierarchy( - basicAppHierarchyCreator_WithFields_AndIndexes - ) - - const result = canDeleteRecord(appHierarchy.customerRecord) - - expect(result.canDelete).toBe(false) - expect(result.errors.some(e => e.includes("Outstanding Invoices"))).toBe(true) - }) -}) \ No newline at end of file diff --git a/packages/common/test/templateApi.fields.spec.js b/packages/common/test/templateApi.fields.spec.js deleted file mode 100644 index fc1a700c30..0000000000 --- a/packages/common/test/templateApi.fields.spec.js +++ /dev/null @@ -1,124 +0,0 @@ -import { isDefined, join, fieldDefinitions, $ } from "../src/common" -import { getMemoryTemplateApi } from "./specHelpers" -import { fieldErrors } from "../src/templateApi/fields" - -const getRecordTemplate = templateApi => - $(templateApi.getNewRootLevel(), [templateApi.getNewRecordTemplate]) - -const getValidField = templateApi => { - const field = templateApi.getNewField("string") - field.name = "forename" - field.label = "forename" - return field -} - -const testMemberIsNotSet = membername => async () => { - const { templateApi } = await getMemoryTemplateApi() - const field = getValidField(templateApi) - field[membername] = "" - const errorsNotSet = templateApi.validateField([field])(field) - expect(errorsNotSet.length).toBe(1) - expect(errorsNotSet[0].error.includes("is not set")).toBeTruthy() -} - -const testMemberIsNotDefined = membername => async () => { - const { templateApi } = await getMemoryTemplateApi() - const field = getValidField(templateApi) - delete field[membername] - const errorsNotSet = templateApi.validateField([field])(field) - expect(errorsNotSet.length).toBe(1) - expect(errorsNotSet[0].error.includes("is not set")).toBeTruthy() -} - -describe("validateField", () => { - it("should return error when name is not set", testMemberIsNotSet("name")) - - it( - "should return error when name is not defined", - testMemberIsNotDefined("name") - ) - - it("should return error when type is not set", testMemberIsNotSet("type")) - - it( - "should return error when type is not defined", - testMemberIsNotDefined("type") - ) - - it( - "should return error when label is not defined", - testMemberIsNotDefined("label") - ) - - it( - "should return error when getInitialValue is not defined", - testMemberIsNotDefined("getInitialValue") - ) - - it( - "should return error when getInitialValue is not set", - testMemberIsNotSet("getInitialValue") - ) - - it( - "should return error when getUndefinedValue is not defined", - testMemberIsNotDefined("getUndefinedValue") - ) - - it( - "should return error when getUndefinedValue is not set", - testMemberIsNotSet("getUndefinedValue") - ) - - it("should return no errors when valid field is supplied", async () => { - const { templateApi } = await getMemoryTemplateApi() - const field = getValidField(templateApi) - const errors = templateApi.validateField([field])(field) - expect(errors.length).toBe(0) - }) - - it("should return error when field with same name exists already", async () => { - const { templateApi } = await getMemoryTemplateApi() - const field1 = getValidField(templateApi) - field1.name = "surname" - - const field2 = getValidField(templateApi) - field2.name = "surname" - const errors = templateApi.validateField([field1, field2])(field2) - expect(errors.length).toBe(1) - expect(errors[0].error).toBe("field name is duplicated") - expect(errors[0].field).toBe("name") - }) - - it("should return error when field is not one of allowed types", async () => { - const { templateApi } = await getMemoryTemplateApi() - const field = getValidField(templateApi) - field.type = "sometype" - const errors = templateApi.validateField([field])(field) - expect(errors.length).toBe(1) - expect(errors[0].error).toBe("type is unknown") - expect(errors[0].field).toBe("type") - }) -}) - -describe("addField", () => { - it("should throw exception when field is invalid", async () => { - const { templateApi } = await getMemoryTemplateApi() - const record = getRecordTemplate(templateApi) - const field = getValidField(templateApi) - field.name = "" - expect(() => templateApi.addField(record, field)).toThrow( - new RegExp("^" + fieldErrors.AddFieldValidationFailed, "i") - ) - }) - - it("should add field when field is valid", async () => { - const { templateApi } = await getMemoryTemplateApi() - const record = getRecordTemplate(templateApi) - const field = getValidField(templateApi) - field.name = "some_new_field" - templateApi.addField(record, field) - expect(record.fields.length).toBe(1) - expect(record.fields[0]).toBe(field) - }) -}) diff --git a/packages/common/test/types.spec.js b/packages/common/test/types.spec.js deleted file mode 100644 index ca4db5d447..0000000000 --- a/packages/common/test/types.spec.js +++ /dev/null @@ -1,240 +0,0 @@ -import { newField, fieldsToSchema, schemaToFields } from "../src/schema/types" - -describe("fields to JSON schema", () => { - - it("should convert text field to string", () => { - - const field = newField("surname", "text") - const schema = fieldsToSchema([field]) - - expect(schema.properties.surname.type).toBe("string") - expect(schema.properties.surname.format).toBeUndefined() - expect(schema.properties.surname.default).toBe("") - }) - - it("should add required field", () => { - - const field = newField("surname", "text") - let schema = fieldsToSchema([field]) - expect(schema.required).toEqual([]) - - field.required = true - schema = fieldsToSchema([field]) - - expect(schema.required).toEqual(["surname"]) - }) - - it("should convert boolean field to boolean", () => { - - const field = newField("active", "boolean") - const schema = fieldsToSchema([field]) - - expect(schema.properties.active.type).toBe("boolean") - expect(schema.properties.active.default).toBe(false) - }) - - it("should convert datetime field to formatted string", () => { - - const field = newField("surname", "datetime") - const schema = fieldsToSchema([field]) - - const datetimeCondition = schema.properties.surname.anyOf.find(s => s.type === "string" && s.format === "date-time") - expect(datetimeCondition).toBeDefined() - - const blankCondition = schema.properties.surname.anyOf.find(s => s.const === "") - expect(blankCondition).toBeDefined() - - expect(schema.properties.surname.default).toBe("") - - }) - - it("should convert link field to object", () => { - - const field = newField("contact", "link") - field.modelId = "1234" - field.viewId = "5678" - const schema = fieldsToSchema([field]) - - expect(schema.properties.contact.type).toBe("object") - expect(schema.properties.contact.required).toEqual(["_id"]) - expect(schema.properties.contact.default).toEqual({ _id: "" }) - expect(schema.properties.contact.properties).toEqual({ - _id: { type: "string" }, - modelId: { const: "1234" }, - viewId: { const: "5678" }, - }) - }) - - it("should convert number field to number", () => { - - const field = newField("age", "number") - field.maximum = 1234 - field.minimum = -5678 - const schema = fieldsToSchema([field]) - - expect(schema.properties).toEqual({ - age: { type: "number", maximum: 1234, minimum: -5678} - }) - }) - - it("should convert select to text with enum", () => { - - const field = newField("status", "select") - field.enum = ["new", "complete"] - const schema = fieldsToSchema([field]) - - expect(schema.properties).toEqual({ - status: { - type: "string", - enum: ["new", "complete"], - default: "", - } - }) - }) -}) - -describe("JSON Schema to fields", () => { - - it("should convert unformatted string to text", () => { - const schema = schemaWithProperty("name", - { - type: "string", - maxLength: 100, - minLength: 4, - }) - const fields = schemaToFields(schema) - - expect(fields).toEqual([ - { - name: "name", - type: "text", - maxLength: 100, - minLength: 4, - required: false, - } - ]) - }) - - it("should convert date-time formatted string to datetime", () => { - const schema = schemaWithProperty("createdDate", - { - anyOf: [ - { - type: "string", - format: "date-time", - }, - { const: "" }, - ] - }) - const fields = schemaToFields(schema) - - expect(fields).toEqual([ - { - name: "createdDate", - type: "datetime", - required: false, - } - ]) - }) - - it("should convert number to number", () => { - const schema = schemaWithProperty("age", - { - type: "number", - maximum: 100, - minimum: 3, - }) - const fields = schemaToFields(schema) - - expect(fields).toEqual([ - { - name: "age", - type: "number", - required: false, - maximum: 100, - minimum: 3, - } - ]) - }) - - it("should convert string with enum to select", () => { - const schema = schemaWithProperty("status", - { - type: "string", - enum: ["new", "complete"] - }) - const fields = schemaToFields(schema) - - expect(fields).toEqual([ - { - name: "status", - type: "select", - required: false, - enum: ["new", "complete"], - } - ]) - }) - - it("should convert boolean to boolean", () => { - const schema = schemaWithProperty("active", - { - type: "boolean", - }) - const fields = schemaToFields(schema) - - expect(fields).toEqual([ - { - name: "active", - type: "boolean", - required: false, - } - ]) - }) - - it("should convert object with modelId & viewId to link", () => { - const schema = schemaWithProperty("contact", - { - type: "object", - properties: { - _id: { type: "string" }, - modelId: { const: "1234" }, - viewId: { const: null }, - } - }) - const fields = schemaToFields(schema) - - expect(fields).toEqual([ - { - name: "contact", - type: "link", - required: false, - modelId: "1234", - viewId: null, - } - ]) - }) - - it("should flag required field", () => { - const schema = schemaWithProperty("name", - { - type: "string", - maxLength: 100, - minLength: 4, - }) - schema.required = ["name"] - const fields = schemaToFields(schema) - - expect(fields[0].required).toBe(true) - }) - - function schemaWithProperty(name, prop) { - const schema = { - type: "object", - properties: {}, - required: [], - } - schema.properties[name] = prop - return schema - } - -}) \ No newline at end of file diff --git a/packages/common/test/validateRecord.spec.js b/packages/common/test/validateRecord.spec.js deleted file mode 100644 index f74f1a464e..0000000000 --- a/packages/common/test/validateRecord.spec.js +++ /dev/null @@ -1,137 +0,0 @@ -import { testSchema } from "./testSchema.mjs" -import { validateRecord } from "../src/records/validateRecord.js" -import { getNewRecord } from "../src/records/getNewRecord.mjs" - -describe("validateRecord", () => { - it("should return errors when any fields do not parse", () => { - const schema = testSchema() - const record = getNewRecord(schema, "Contact") - - record.Name = "Ledog" - record["Is Active"] = "hello" - record.Created = "not a date" - - const validationResult = validateRecord(schema, record) - - expect(validationResult.isValid).toBe(false) - expect(validationResult.errors.length).toBe(2) - }) - - it("should return errors when mandatory field is empty", () => { - const schema = testSchema() - const record = getNewRecord(schema, "Contact") - record.Name = "" - - const validationResult = validateRecord(schema, record) - - expect(validationResult.isValid).toBe(false) - expect(validationResult.errors.length).toBe(1) - }) - - it("should return error when string field is beyond maxLength", () => { - const schema = testSchema() - schema.findField("Contact", "Name").typeOptions.maxLength = 5 - const record = getNewRecord(schema, "Contact") - record.Name = "more than 5 characters" - - const validationResult = validateRecord(schema, record) - expect(validationResult.isValid).toBe(false) - expect(validationResult.errors.length).toBe(1) - }) - - it("should return error when number field is > maxValue", () => { - const schema = testSchema() - schema.findField("Deal", "Estimated Value").typeOptions.maxValue = 5 - const record = getNewRecord(schema, "Deal") - record["Estimated Value"] = 10 - - const validationResult = validateRecord(schema, record) - expect(validationResult.isValid).toBe(false) - expect(validationResult.errors.length).toBe(1) - }) - - it("should return error when number field is < minValue", () => { - const schema = testSchema() - schema.findField("Deal", "Estimated Value").typeOptions.minValue = 5 - const record = getNewRecord(schema, "Deal") - record["Estimated Value"] = 1 - - const result = validateRecord(schema, record) - expect(result.isValid).toBe(false) - expect(result.errors.length).toBe(1) - }) - - it("should return error when number has too many decimal places", () => { - const schema = testSchema() - schema.findField("Deal", "Estimated Value").typeOptions.decimalPlaces = 2 - const record = getNewRecord(schema, "Deal") - record["Estimated Value"] = 1.123 - - const result = validateRecord(schema, record) - expect(result.isValid).toBe(false) - expect(result.errors.length).toBe(1) - }) - - it("should return error when datetime field is > maxValue", () => { - const schema = testSchema() - schema.findField("Contact", "Created").typeOptions.maxValue = new Date(2020, 1, 1) - const record = getNewRecord(schema, "Contact") - record.Name = "Bob" - record.Created = new Date(2020, 1, 2) - - const result = validateRecord(schema, record) - expect(result.isValid).toBe(false) - expect(result.errors.length).toBe(1) - }) - - it("should return error when number field is < minValue", () => { - const schema = testSchema() - schema.findField("Contact", "Created").typeOptions.minValue = new Date(2020, 1, 2) - const record = getNewRecord(schema, "Contact") - record.Name = "Bob" - record.Created = new Date(2020, 1, 1) - - const result = validateRecord(schema, record) - expect(result.isValid).toBe(false) - expect(result.errors.length).toBe(1) - }) - - it("should return error when string IS NOT one of declared values, and only declared values are allowed", () => { - const schema = testSchema() - schema.findField("Contact", "Status").typeOptions.allowDeclaredValuesOnly = true - schema.findField("Contact", "Status").typeOptions.values = ["thedog"] - const record = getNewRecord(schema, "Contact") - record.Status = "not allowed" - record.Name = "Bob" - - const result = validateRecord(schema, record) - expect(result.isValid).toBe(false) - expect(result.errors.length).toBe(1) - }) - - it("should not return error when string IS one of declared values, and only declared values are allowed", () => { - const schema = testSchema() - schema.findField("Contact", "Status").typeOptions.allowDeclaredValuesOnly = true - schema.findField("Contact", "Status").typeOptions.values = ["thedog"] - const record = getNewRecord(schema, "Contact") - record.Status = "thedog" - record.Name = "Bob" - - const result = validateRecord(schema, record) - expect(result.isValid).toBe(true) - expect(result.errors.length).toBe(0) - }) - - it("should not return error when string IS NOT one of declared values, but any values are allowed", () => { - const schema = testSchema() - schema.findField("Contact", "Status").typeOptions.allowDeclaredValuesOnly = false - schema.findField("Contact", "Status").typeOptions.values = ["thedog"] - const record = getNewRecord(schema, "Contact") - record.Status = "not one of the values" - record.Name = "Bob" - - const result = validateRecord(schema, record) - expect(result.isValid).toBe(true) - expect(result.errors.length).toBe(0) - }) -}) diff --git a/packages/common/yarn.lock b/packages/common/yarn.lock deleted file mode 100644 index eb44c05837..0000000000 --- a/packages/common/yarn.lock +++ /dev/null @@ -1,5040 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/cli@^7.4.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.8.4.tgz#505fb053721a98777b2b175323ea4f090b7d3c1c" - integrity sha512-XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag== - dependencies: - commander "^4.0.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.1.0" - glob "^7.0.0" - lodash "^4.17.13" - make-dir "^2.1.0" - slash "^2.0.0" - source-map "^0.5.0" - optionalDependencies: - chokidar "^2.1.8" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" - integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== - dependencies: - browserslist "^4.9.1" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.1.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30" - integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helpers" "^7.5.5" - "@babel/parser" "^7.5.5" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.4.5", "@babel/core@^7.7.5": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.4.0", "@babel/generator@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf" - integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ== - dependencies: - "@babel/types" "^7.5.5" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.9.0", "@babel/generator@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" - integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== - dependencies: - "@babel/types" "^7.9.5" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-compilation-targets@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" - integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== - dependencies: - "@babel/compat-data" "^7.8.6" - browserslist "^4.9.1" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== - dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - 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.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== - dependencies: - lodash "^4.17.13" - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== - -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helpers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e" - integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g== - dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== - dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b" - integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g== - -"@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== - -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - -"@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz#3fd65911306d8746014ec0d0cf78f0e39a149116" - integrity sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.9.5" - -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" - integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7" - integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-dynamic-import@^7.8.0": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" - integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" - -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" - integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== - dependencies: - "@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.1.0" - -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-destructuring@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" - integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" - integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-modules-amd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" - integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-commonjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" - integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== - dependencies: - "@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.0" - -"@babel/plugin-transform-modules-systemjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" - integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== - dependencies: - "@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.0" - -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== - dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" - integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-runtime@^7.4.4": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b" - integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/preset-env@^7.4.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f" - integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ== - dependencies: - "@babel/compat-data" "^7.9.0" - "@babel/helper-compilation-targets" "^7.8.7" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.5" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.5" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.9.5" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.0" - "@babel/plugin-transform-modules-commonjs" "^7.9.0" - "@babel/plugin-transform-modules-systemjs" "^7.9.0" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.9.5" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.5" - browserslist "^4.9.1" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.4.5", "@babel/runtime@^7.8.4": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb" - integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.5.5" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.5.5" - "@babel/types" "^7.5.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" - integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== - 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.0" - "@babel/types" "^7.9.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" - integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" - integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== - dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@cnakazawa/watch@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef" - integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" - integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== - -"@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== - dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" - -"@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" - integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== - dependencies: - "@jest/console" "^24.7.1" - "@jest/reporters" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" - micromatch "^3.1.10" - p-each-series "^1.0.0" - realpath-native "^1.1.0" - rimraf "^2.5.4" - slash "^2.0.0" - strip-ansi "^5.0.0" - -"@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== - dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - -"@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" - integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - istanbul-lib-coverage "^2.0.2" - istanbul-lib-instrument "^3.0.1" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - node-notifier "^5.4.2" - slash "^2.0.0" - source-map "^0.6.0" - string-length "^2.0.0" - -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== - dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" - micromatch "^3.1.10" - pirates "^4.0.1" - realpath-native "^1.1.0" - slash "^2.0.0" - source-map "^0.6.1" - write-file-atomic "2.4.1" - -"@jest/transform@^25.3.0": - version "25.3.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.3.0.tgz#083c5447d5307d9b9494d6968115b647460e71f1" - integrity sha512-W01p8kTDvvEX6kd0tJc7Y5VdYyFaKwNWy1HQz6Jqlhu48z/8Gxp+yFCDVj+H8Rc7ezl3Mg0hDaGuFVkmHOqirg== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^25.3.0" - babel-plugin-istanbul "^6.0.0" - chalk "^3.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.3" - jest-haste-map "^25.3.0" - jest-regex-util "^25.2.6" - jest-util "^25.3.0" - micromatch "^4.0.2" - pirates "^4.0.1" - realpath-native "^2.0.0" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" - -"@jest/types@^25.3.0": - version "25.3.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.3.0.tgz#88f94b277a1d028fd7117bc1f74451e0fc2131e7" - integrity sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^3.0.0" - -"@nx-js/compiler-util@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@nx-js/compiler-util/-/compiler-util-2.0.0.tgz#c74c12165fa2f017a292bb79af007e8fce0af297" - integrity sha512-AxSQbwj9zqt8DYPZ6LwZdytqnwfiOEdcFdq4l8sdjkZmU2clTht7RDLCI8xvkp7KqgcNaOGlTeCM55TULWruyQ== - -"@types/babel__core@^7.1.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f" - integrity sha512-cfCCrFmiGY/yq0NuKNxIQvZFy9kY/1immpSpTngOnyIbD4+eJOG5mxphhHDv3CHL9GltO4GcKr54kGBg3RNdbg== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__core@^7.1.7": - version "7.1.7" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" - integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc" - integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f" - integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw== - dependencies: - "@babel/types" "^7.3.0" - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" - integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== - -"@types/istanbul-lib-report@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" - integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" - integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== - -"@types/yargs-parser@*": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.0.0.tgz#453743c5bbf9f1bed61d959baab5b06be029b2d0" - integrity sha512-wBlsw+8n21e6eTd4yVv8YD/E3xq0O6nNnJIquutAsFGE7EyMKz7W6RNT6BRu1SmdgmlCZ9tb0X+j+D6HGr8pZw== - -"@types/yargs@^13.0.0": - version "13.0.2" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.2.tgz#a64674fc0149574ecd90ba746e932b5a5f7b3653" - integrity sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^15.0.0": - version "15.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" - integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== - dependencies: - "@types/yargs-parser" "*" - -abab@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" - integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== - -acorn-globals@^4.1.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.3.tgz#a86f75b69680b8780d30edd21eee4e0ea170c05e" - integrity sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn@^5.5.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== - -acorn@^6.0.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== - -ajv@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-escapes@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.0.0, ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== - dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" - -babel-jest@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.3.0.tgz#999d0c19e8427f66b796bf9ea233eedf087b957c" - integrity sha512-qiXeX1Cmw4JZ5yQ4H57WpkO0MZ61Qj+YnsVUwAMnDV5ls+yHon11XjarDdgP7H8lTmiEi6biiZA8y3Tmvx6pCg== - dependencies: - "@jest/transform" "^25.3.0" - "@jest/types" "^25.3.0" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^25.3.0" - chalk "^3.0.0" - slash "^3.0.0" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-istanbul@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" - integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - find-up "^3.0.0" - istanbul-lib-instrument "^3.3.0" - test-exclude "^5.2.3" - -babel-plugin-istanbul@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" - integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^4.0.0" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== - dependencies: - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.6.tgz#2af07632b8ac7aad7d414c1e58425d5fc8e84909" - integrity sha512-qE2xjMathybYxjiGFJg0mLFrz0qNp83aNZycWDY/SuHiZNq+vQfRQtuINqyXyue1ELd8Rd+1OhFSLjms8msMbw== - dependencies: - "@types/babel__traverse" "^7.0.6" - -babel-plugin-transform-es2015-modules-commonjs@^6.26.2: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-current-node-syntax@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" - integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== - dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" - -babel-preset-jest@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.3.0.tgz#9ab40aee52a19bdc52b8b1ec2403d5914ac3d86b" - integrity sha512-tjdvLKNMwDI9r+QWz9sZUQGTq1dpoxjUqFUpEasAc7MOtHg9XuLT2fx0udFG+k1nvMV0WvHHVAN7VmCZ+1Zxbw== - dependencies: - babel-plugin-jest-hoist "^25.2.6" - babel-preset-current-node-syntax "^0.1.2" - -babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bcryptjs@^2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" - integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== - -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browserslist@^4.8.3, browserslist@^4.9.1: - version "4.11.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" - integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== - dependencies: - caniuse-lite "^1.0.30001038" - electron-to-chromium "^1.3.390" - node-releases "^1.1.53" - pkg-up "^2.0.0" - -bser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" - integrity sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30001038: - version "1.0.30001039" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz#b3814a1c38ffeb23567f8323500c09526a577bbe" - integrity sha512-SezbWCTT34eyFoWHgx8UWso7YtvtM7oosmFoXbCkdC6qJzRfBTeTgE9REtKtiuKXuMwWTZEvdnFNGAyVMorv8Q== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" - integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== - -commander@~2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -convert-source-map@^1.1.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -convert-source-map@^1.4.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.6.2: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" - integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== - dependencies: - browserslist "^4.8.3" - semver "7.0.0" - -core-js@^2.4.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" - integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cross-env@^5.1.4: - version "5.2.0" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2" - integrity sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg== - dependencies: - cross-spawn "^6.0.5" - is-windows "^1.0.0" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -date-fns@^1.29.0: - version "1.30.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" - integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== - -debug@^2.2.0, debug@^2.3.3, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= - -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.3.390: - version "1.3.398" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.398.tgz#4c01e29091bf39e578ac3f66c1f157d92fa5725d" - integrity sha512-BJjxuWLKFbM5axH3vES7HKMQgAknq9PZHBkMK/rEXUQG9i1Iw5R+6hGkm6GtsQSANjSUrh/a6m32nzCNDNo/+w== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.5.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escodegen@^1.9.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -exec-sh@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b" - integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== - dependencies: - "@jest/types" "^24.9.0" - ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= - dependencies: - bser "^2.0.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.1, glob@^7.1.2: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -graceful-fs@^4.1.11, graceful-fs@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== - -graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -handlebars@^4.1.2: - version "4.7.3" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee" - integrity sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg== - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hosted-git-info@^2.1.4: - version "2.8.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" - integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-windows@^1.0.0, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - -istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== - -istanbul-lib-instrument@^3.0.1, istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== - dependencies: - "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-report@^2.0.4: - version "2.0.8" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz#5a8113cd746d43c4889eba36ab10e7d50c9b4f33" - integrity sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ== - dependencies: - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - supports-color "^6.1.0" - -istanbul-lib-source-maps@^3.0.1: - version "3.0.6" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz#284997c48211752ec486253da97e3879defba8c8" - integrity sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^2.0.5" - make-dir "^2.1.0" - rimraf "^2.6.3" - source-map "^0.6.1" - -istanbul-reports@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" - integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== - dependencies: - handlebars "^4.1.2" - -jest-changed-files@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" - integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== - dependencies: - "@jest/types" "^24.9.0" - execa "^1.0.0" - throat "^4.0.0" - -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" - integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== - dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - exit "^0.1.2" - import-local "^2.0.0" - is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - prompts "^2.0.1" - realpath-native "^1.1.0" - yargs "^13.3.0" - -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" - -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== - dependencies: - chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== - dependencies: - detect-newline "^2.1.0" - -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== - dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - jsdom "^11.5.1" - -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== - -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== - dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" - fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" - -jest-haste-map@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.3.0.tgz#b7683031c9c9ddc0521d311564108b244b11e4c6" - integrity sha512-LjXaRa+F8wwtSxo9G+hHD/Cp63PPQzvaBL9XCVoJD2rrcJO0Zr2+YYzAFWWYJ5GlPUkoaJFJtOuk0sL6MJY80A== - dependencies: - "@jest/types" "^25.3.0" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.3" - jest-serializer "^25.2.6" - jest-util "^25.3.0" - jest-worker "^25.2.6" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - which "^2.0.2" - optionalDependencies: - fsevents "^2.1.2" - -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^24.9.0" - is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== - dependencies: - chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== - dependencies: - "@jest/types" "^24.9.0" - -jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== - -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" - integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== - -jest-regex-util@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" - integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== - -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" - integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== - dependencies: - "@jest/types" "^24.9.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" - -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== - dependencies: - "@jest/types" "^24.9.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" - -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" - -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== - -jest-serializer@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.2.6.tgz#3bb4cc14fe0d8358489dbbefbb8a4e708ce039b7" - integrity sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ== - -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" - -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" - -jest-util@^25.3.0: - version "25.3.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.3.0.tgz#e3b0064165818f10d78514696fd25efba82cf049" - integrity sha512-dc625P/KS/CpWTJJJxKc4bA3A6c+PJGBAqS8JTJqx4HqPoKNqXg/Ec8biL2Z1TabwK7E7Ilf0/ukSEXM1VwzNA== - dependencies: - "@jest/types" "^25.3.0" - chalk "^3.0.0" - is-ci "^2.0.0" - make-dir "^3.0.0" - -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== - dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" - -jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" - integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== - dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - ansi-escapes "^3.0.0" - chalk "^2.0.1" - jest-util "^24.9.0" - string-length "^2.0.0" - -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== - dependencies: - merge-stream "^2.0.0" - supports-color "^6.1.0" - -jest-worker@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.6.tgz#d1292625326794ce187c38f51109faced3846c58" - integrity sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA== - dependencies: - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest@^24.8.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" - integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== - dependencies: - import-local "^2.0.0" - jest-cli "^24.9.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== - dependencies: - minimist "^1.2.5" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.4: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== - dependencies: - semver "^6.0.0" - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -nan@^2.12.1: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - -nanoid@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.0.4.tgz#4889355c9ce8e24efad7c65945a4a2875ac3e8f4" - integrity sha512-sOJnBmY3TJQBVIBqKHoifuwygrocXg3NjS9rZSMnVl05XWSHK7Qxb177AIZQyMDjP86bz+yneozj/h9qsPLcCA== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -neo-async@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-modules-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" - integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= - -node-notifier@^5.4.2: - version "5.4.3" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" - integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== - dependencies: - growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" - -node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -nwsapi@^2.0.7: - version "2.1.4" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" - integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -p-each-series@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= - dependencies: - p-reduce "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.0.5: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" - integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== - dependencies: - node-modules-regexp "^1.0.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -prompts@^2.0.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.2.1.tgz#f901dd2a2dfee080359c0e20059b24188d75ad35" - integrity sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.3" - -psl@^1.1.24, psl@^1.1.28: - version "1.3.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.0.tgz#e1ebf6a3b5564fa8376f3da2275da76d875ca1bd" - integrity sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -react-is@^16.8.4: - version "16.9.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb" - integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw== - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" - read-pkg "^3.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -readable-stream@^2.0.2: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== - dependencies: - util.promisify "^1.0.0" - -realpath-native@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" - integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== - -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== - dependencies: - regenerate "^1.4.0" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== - -regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== - dependencies: - "@babel/runtime" "^7.8.4" - private "^0.1.8" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.5.4: - version "4.5.5" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411" - integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== - 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" - -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== - -regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== - dependencies: - jsesc "~0.5.0" - -regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -request-promise-core@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" - integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== - dependencies: - lodash "^4.17.11" - -request-promise-native@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" - integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== - dependencies: - request-promise-core "1.1.2" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.87.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -shortid@^2.2.8: - version "2.2.14" - resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.14.tgz#80db6aafcbc3e3a46850b3c88d39e051b84c8d18" - integrity sha512-4UnZgr9gDdA1kaKj/38IiudfC3KHKhDc1zi/HSxd9FQDR0VLwH3/y79tZJLsVYPsJgIjeHjqIWaWVRJUj9qZOQ== - dependencies: - nanoid "^2.0.0" - -signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -sisteransi@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.3.tgz#98168d62b79e3a5e758e27ae63c4a053d748f4eb" - integrity sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.6: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" - integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= - dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" - integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= - -tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tough-cookie@^2.3.3, tough-cookie@^2.3.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -uglify-js@^3.1.4: - version "3.7.7" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.7.tgz#21e52c7dccda80a53bf7cde69628a7e511aec9c9" - integrity sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA== - dependencies: - commander "~2.20.3" - source-map "~0.6.1" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= - dependencies: - browser-process-hrtime "^0.1.2" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" - integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" - integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" diff --git a/packages/core/src/appInitialise/databaseManager.js b/packages/core/src/appInitialise/databaseManager.js deleted file mode 100644 index ff1b85505e..0000000000 --- a/packages/core/src/appInitialise/databaseManager.js +++ /dev/null @@ -1,34 +0,0 @@ -import { isNothing } from "../common" - -export const getDatabaseManager = databaseManager => ({ - createEmptyMasterDb: createEmptyMasterDb(databaseManager), - createEmptyInstanceDb: createEmptyInstanceDb(databaseManager), - getInstanceDbRootConfig: databaseManager.getInstanceDbRootConfig, - masterDatastoreConfig: getMasterDatastoreConfig(databaseManager), - getInstanceDatastoreConfig: getInstanceDatastoreConfig(databaseManager), -}) - -const getMasterDatastoreConfig = databaseManager => - databaseManager.getDatastoreConfig("master") - -const getInstanceDatastoreConfig = databaseManager => ( - applicationId, - instanceId -) => databaseManager.getDatastoreConfig(applicationId, instanceId) - -const createEmptyMasterDb = databaseManager => async () => - await databaseManager.createEmptyDb("master") - -const createEmptyInstanceDb = databaseManager => async ( - applicationId, - instanceId -) => { - if (isNothing(applicationId)) { - throw new Error("CreateDb: application id not supplied") - } - if (isNothing(instanceId)) { - throw new Error("CreateDb: instance id not supplied") - } - - return await databaseManager.createEmptyDb(applicationId, instanceId) -} diff --git a/packages/core/src/index.js b/packages/core/src/index.js index c84a82e58f..6c77eb337d 100644 --- a/packages/core/src/index.js +++ b/packages/core/src/index.js @@ -105,7 +105,6 @@ export { getIndexApi } from "./indexApi" export { setupDatastore } from "./appInitialise" export { getActionsApi } from "./actionsApi" export { initialiseData } from "./appInitialise/initialiseData" -export { getDatabaseManager } from "./appInitialise/databaseManager" export { hierarchy } export { common } export { crypto } diff --git a/packages/server/api/controllers/auth.js b/packages/server/api/controllers/auth.js index bd76d4259b..5eec10c5d3 100644 --- a/packages/server/api/controllers/auth.js +++ b/packages/server/api/controllers/auth.js @@ -2,14 +2,6 @@ const jwt = require("jsonwebtoken"); const CouchDB = require("../../db"); const bcrypt = require("../../utilities/bcrypt"); -exports.forgotPassword = async ctx => { -}; - -exports.setPassword = async ctx => { }; - -exports.changePassword = async ctx => { -}; - exports.authenticate = async ctx => { const { username, password } = ctx.request.body; @@ -17,7 +9,7 @@ exports.authenticate = async ctx => { if (!password) ctx.throw(400, "Password Required"); // query couch for their username - const db = new CouchDB(ctx.params.instanceId); + const db = new CouchDB(ctx.params.clientId); const dbUser = await db.query("by_username", { include_docs: true, key: username diff --git a/packages/server/api/controllers/record.js b/packages/server/api/controllers/record.js index 3ee2ab42f6..80a8c2cb3c 100644 --- a/packages/server/api/controllers/record.js +++ b/packages/server/api/controllers/record.js @@ -1,5 +1,7 @@ const CouchDB = require("../../db"); -const { schemaValidator } = require("../../../common/lib"); +const Ajv = require("ajv"); + +const ajv = new Ajv(); exports.save = async function(ctx) { const db = new CouchDB(ctx.params.instanceId); @@ -7,7 +9,7 @@ exports.save = async function(ctx) { // validation with ajv const model = await db.get(record.modelId) - const validate = schemaValidator.compile({ + const validate = ajv.compile({ properties: model.schema }); const valid = validate(record) diff --git a/packages/server/api/controllers/static.js b/packages/server/api/controllers/static.js index 1ec58c75b9..e89684fdf5 100644 --- a/packages/server/api/controllers/static.js +++ b/packages/server/api/controllers/static.js @@ -20,9 +20,8 @@ exports.serveApp = async function(ctx) { // TODO: Hook up to JWT auth in real app // TODO: serve CSS and other assets - // resolve unauthenticated page if user not authenticated // resolve main page if user authenticated - await send(ctx, "/index.html", { root: appPath }) + await send(ctx, ctx.file, { root: appPath }) } exports.serveComponentLibrary = async function(ctx) { diff --git a/packages/server/api/index.js b/packages/server/api/index.js index 507be539a4..06b5eb016f 100644 --- a/packages/server/api/index.js +++ b/packages/server/api/index.js @@ -1,30 +1,23 @@ const Router = require("@koa/router") -const session = require("../middleware/session") +const authenticated = require("../middleware/authenticated"); const compress = require("koa-compress"); const zlib = require("zlib"); const { resolve } = require("path") const { homedir } = require("os") -const send = require("koa-send") const { - componentLibraryInfo, -} = require("../utilities/builder") -const { - // componentRoutes, + authRoutes, pageRoutes, userRoutes, - authenticatedRoutes + recordRoutes, + instanceRoutes, + clientRoutes, + applicationRoutes, + modelRoutes, + viewRoutes, + staticRoutes, + componentRoutes } = require("./routes"); -const recordRoutes = require("./routes/neo/record"); -const instanceRoutes = require("./routes/neo/instance"); -const neoUserRoutes = require("./routes/neo/user"); -const clientRoutes = require("./routes/neo/client"); -const applicationRoutes = require("./routes/neo/application"); -const modelsRoutes = require("./routes/neo/model"); -const viewsRoutes = require("./routes/neo/view"); -const staticRoutes = require("./routes/neo/static"); -const componentRoutes = require("./routes/neo/component"); - module.exports = app => { const router = new Router() @@ -38,107 +31,15 @@ module.exports = app => { flush: zlib.Z_SYNC_FLUSH, } })) - // .use(session(app)) + .use(authenticated) .use(async (ctx, next) => { // TODO: temp dev middleware // ctx.sessionId = ctx.session._sessCtx.externalKey // ctx.session.accessed = true - ctx.isAuthenticated = true; ctx.config = { latestPackagesFolder: resolve(homedir(), ".budibase") } await next(); }); - // .use(async (ctx, next) => { - // ctx.sessionId = ctx.session._sessCtx.externalKey - // ctx.session.accessed = true - // ctx.config = config - - // const pathParts = ctx.path.split("/") - - // if (pathParts.length < 2) { - // ctx.throw(StatusCodes.NOT_FOUND, "App Name not declared") - // } - - // const appname = pathParts[1] - // ctx.set("x-bbappname", appname) - - // if (appname === "_builder") { - // if (!config.dev) { - // ctx.response.status = StatusCodes.FORBIDDEN - // ctx.body = "run in dev mode to access builder" - // return - // } - - // // Builder URLs should have admin access to the API - // if (ctx.path.startsWith("/_builder/instance/_master")) { - // const { - // instance, - // publicPath, - // sharedPath, - // } = await ctx.master.getFullAccessApiForMaster() - // ctx.instance = instance - // ctx.publicPath = publicPath - // ctx.sharedPath = sharedPath - // ctx.isAuthenticated = !!ctx.instance - // } else if (ctx.path.startsWith("/_builder/instance")) { - // const builderAppName = pathParts[3] - // const instanceId = pathParts[4] - // const { - // bbInstance, - // publicPath, - // sharedPath, - // } = await ctx.master.getFullAccessApiForInstanceId( - // builderAppName, - // instanceId - // ) - // ctx.instance = bbInstance - // ctx.publicPath = publicPath - // ctx.sharedPath = sharedPath - // ctx.isAuthenticated = !!ctx.instance - // } - - // await next() - // } else { - // const instance = await ctx.master.getInstanceApiForSession( - // appname, - // ctx.sessionId - // ) - - // ctx.instance = instance.instance - // ctx.publicPath = instance.publicPath - // ctx.sharedPath = instance.sharedPath - // ctx.isAuthenticated = !!instance.instance - - // await next() - // } - // }) - - router - // .get("/_builder", async ctx => { - // await send(ctx, "/index.html", { root: builderPath }) - // }) - // .get("/_builder/:appname/componentlibrary", async ctx => { - // const info = await componentLibraryInfo( - // ctx.config, - // ctx.params.appname, - // ctx.query.lib - // ) - // await send(ctx, info.components._lib || "index.js", { root: info.libDir }) - // }) - // .get("/_builder/*", async (ctx, next) => { - // const path = ctx.path.replace("/_builder", "") - - // const isFile = new RegExp(/(.+\..{1,5})/g).test(path) - - // if (path.startsWith("/api/") || path.startsWith("/instance/")) { - // await next() - // } else if (isFile) { - // await send(ctx, path, { root: builderPath }) - // } else { - // await send(ctx, "/index.html", { root: builderPath }) - // } - // }) - // Neo // error handling middleware router.use(async (ctx, next) => { try { @@ -153,25 +54,17 @@ module.exports = app => { } }); - // Legacy Routes - router.use(userRoutes.routes()); - router.use(userRoutes.allowedMethods()); - // router.use(appsRoutes.routes()) - // router.use(appsRoutes.allowedMethods()); - // router.use(componentRoutes.routes()); - // router.use(componentRoutes.allowedMethods()); + router.use(authRoutes.routes()); + router.use(authRoutes.allowedMethods()); + router.use(pageRoutes.routes()); router.use(pageRoutes.allowedMethods()); - // Neo Routes - router.use(staticRoutes.routes()); - router.use(staticRoutes.allowedMethods()); + router.use(viewRoutes.routes()); + router.use(viewRoutes.allowedMethods()); - router.use(viewsRoutes.routes()); - router.use(viewsRoutes.allowedMethods()); - - router.use(modelsRoutes.routes()); - router.use(modelsRoutes.allowedMethods()); + router.use(modelRoutes.routes()); + router.use(modelRoutes.allowedMethods()); router.use(applicationRoutes.routes()); router.use(applicationRoutes.allowedMethods()); @@ -182,26 +75,19 @@ module.exports = app => { router.use(clientRoutes.routes()); router.use(clientRoutes.allowedMethods()); - router.use(neoUserRoutes.routes()); - router.use(neoUserRoutes.allowedMethods()); + router.use(userRoutes.routes()); + router.use(userRoutes.allowedMethods()); router.use(recordRoutes.routes()); router.use(recordRoutes.allowedMethods()); router.use(instanceRoutes.routes()); router.use(instanceRoutes.allowedMethods()); - // end of Neo - // router - // .get("/:appname", async ctx => { - // await send(ctx, "/index.html", { root: ctx.publicPath }) - // }) - // .get("/:appname/*", routeHandlers.appDefault) - // .get("/_builder/instance/:appname/:instanceid/*", routeHandlers.appDefault) + router.use(staticRoutes.routes()); + router.use(staticRoutes.allowedMethods()); - - // router.use(authenticatedRoutes.routes()); - // router.use(authenticatedRoutes.allowedMethods()); + router.redirect("/", "/_builder"); return router } diff --git a/packages/server/api/routes/neo/application.js b/packages/server/api/routes/application.js similarity index 75% rename from packages/server/api/routes/neo/application.js rename to packages/server/api/routes/application.js index 7de14cdf59..aa6eaec629 100644 --- a/packages/server/api/routes/neo/application.js +++ b/packages/server/api/routes/application.js @@ -1,5 +1,5 @@ const Router = require("@koa/router"); -const controller = require("../../controllers/application"); +const controller = require("../controllers/application"); const router = Router(); diff --git a/packages/server/api/routes/neo/auth.js b/packages/server/api/routes/auth.js similarity index 62% rename from packages/server/api/routes/neo/auth.js rename to packages/server/api/routes/auth.js index 947b1c4092..9e866d89d9 100644 --- a/packages/server/api/routes/neo/auth.js +++ b/packages/server/api/routes/auth.js @@ -1,5 +1,5 @@ const Router = require("@koa/router"); -const controller = require("../../controllers/auth"); +const controller = require("../controllers/auth"); const router = Router(); diff --git a/packages/server/api/routes/authenticated.js b/packages/server/api/routes/authenticated.js deleted file mode 100644 index f0c973e704..0000000000 --- a/packages/server/api/routes/authenticated.js +++ /dev/null @@ -1,132 +0,0 @@ -const Router = require("@koa/router"); -const StatusCodes = require("../../utilities/statusCodes") -const routeHandlers = require("../../middleware/routeHandlers") - -const router = Router(); - -// async function isAuthenticated(ctx, next) { -// if (ctx.isAuthenticated) { -// await next() -// } else { -// ctx.response.status = StatusCodes.UNAUTHORIZED -// } -// } - -// router.use(isAuthenticated) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/upgradeData", -// routeHandlers.upgradeData -// ) - -// router.post("/:appname/api/changeMyPassword", routeHandlers.changeMyPassword) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/changeMyPassword", -// routeHandlers.changeMyPassword -// ) - -// router.post( -// "/:appname/api/executeAction/:actionname", -// routeHandlers.executeAction -// ) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/executeAction/:actionname", -// routeHandlers.executeAction -// ) - -// router.post("/:appname/api/createUser", routeHandlers.createUser) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/createUser", -// routeHandlers.createUser -// ) - -// router.post("/:appname/api/enableUser", routeHandlers.enableUser) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/enableUser", -// routeHandlers.enableUser -// ) - -// router.post("/:appname/api/disableUser", routeHandlers.disableUser) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/disableUser", -// routeHandlers.disableUser -// ) - -// router.get("/:appname/api/users", routeHandlers.getUsers) - -// router.get( -// "/_builder/instance/:appname/:instanceid/api/users", -// routeHandlers.getUsers -// ) - -// router.get("/:appname/api/accessLevels", routeHandlers.getAccessLevels) - -// router.get( -// "/_builder/instance/:appname/:instanceid/api/accessLevels", -// routeHandlers.getAccessLevels -// ) - -// router.get("/:appname/api/listRecords/*", routeHandlers.listRecordsGet) - -// router.get( -// "/_builder/instance/:appname/:instanceid/api/listRecords/*", -// routeHandlers.listRecordsGet -// ) - -// router.post("/:appname/api/listRecords/*", routeHandlers.listRecordsPost) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/listRecords/*", -// routeHandlers.listRecordsPost -// ) - -// router.post("/:appname/api/aggregates/*", routeHandlers.aggregatesPost) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/aggregates/*", -// routeHandlers.aggregatesPost -// ) - -// router.post("/:appname/api/files/*", routeHandlers.postFiles) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/files/*", -// routeHandlers.postFiles -// ) - -// router.post("/:appname/api/record/*", routeHandlers.saveRecord) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/record/*", -// routeHandlers.saveRecord -// ) - -// router.get("/:appname/api/lookup_field/*", routeHandlers.lookupField) - -// router.get( -// "/_builder/instance/:appname/:instanceid/api/lookup_field/*", -// routeHandlers.lookupField -// ) - -// router.get("/:appname/api/record/*", routeHandlers.getRecord) - -// router.get( -// "/_builder/instance/:appname/:instanceid/api/record/*", -// routeHandlers.getRecord -// ) - -// router.del("/:appname/api/record/*", routeHandlers.deleteRecord) - -// router.del( -// "/_builder/instance/:appname/:instanceid/api/record/*", -// routeHandlers.deleteRecord -// ) - -// router.post("/:appname/api/apphierarchy", routeHandlers.saveAppHierarchy) - -module.exports = router \ No newline at end of file diff --git a/packages/server/api/routes/neo/client.js b/packages/server/api/routes/client.js similarity index 73% rename from packages/server/api/routes/neo/client.js rename to packages/server/api/routes/client.js index c5d478e36d..15ddafa63a 100644 --- a/packages/server/api/routes/neo/client.js +++ b/packages/server/api/routes/client.js @@ -1,5 +1,5 @@ const Router = require("@koa/router"); -const controller = require("../../controllers/client"); +const controller = require("../controllers/client"); const router = Router(); diff --git a/packages/server/api/routes/neo/component.js b/packages/server/api/routes/component.js similarity index 66% rename from packages/server/api/routes/neo/component.js rename to packages/server/api/routes/component.js index 96050883d5..6543f99764 100644 --- a/packages/server/api/routes/neo/component.js +++ b/packages/server/api/routes/component.js @@ -1,5 +1,5 @@ const Router = require("@koa/router"); -const controller = require("../../controllers/component"); +const controller = require("../controllers/component"); const router = Router(); diff --git a/packages/server/api/routes/components.js b/packages/server/api/routes/components.js deleted file mode 100644 index 7fe33cb876..0000000000 --- a/packages/server/api/routes/components.js +++ /dev/null @@ -1,47 +0,0 @@ -const Router = require("@koa/router"); -const send = require("koa-send") -const StatusCodes = require("../../utilities/statusCodes") -const { - componentLibraryInfo, -} = require("../../utilities/builder") - - -const router = Router(); - -// router.get("/_builder/:appname/componentlibrary", async ctx => { -// const info = await componentLibraryInfo( -// ctx.config, -// ctx.params.appname, -// ctx.query.lib -// ) -// await send(ctx, info.components._lib || "index.js", { root: info.libDir }) -// }) - -// router.get("/_builder/api/:appname/components", async ctx => { -// try { -// ctx.body = getComponentDefinitions( -// ctx.config, -// ctx.params.appname, -// ctx.query.lib -// ) -// ctx.response.status = StatusCodes.OK -// } catch (e) { -// if (e.status) { -// ctx.response.status = e.status -// } else { -// throw e -// } -// } -// }) - -// router.get("/_builder/api/:appname/componentlibrary", async ctx => { -// const info = await componentLibraryInfo( -// ctx.config, -// ctx.params.appname, -// ctx.query.lib ? decodeURI(ctx.query.lib) : "" -// ) -// ctx.body = info.components -// ctx.response.status = StatusCodes.OK -// }) - -module.exports = router \ No newline at end of file diff --git a/packages/server/api/routes/index.js b/packages/server/api/routes/index.js index a2cb216c60..38277d6a75 100644 --- a/packages/server/api/routes/index.js +++ b/packages/server/api/routes/index.js @@ -1,11 +1,25 @@ +const authRoutes = require("./auth"); const pageRoutes = require("./pages"); -const componentRoutes = require("./components"); const userRoutes = require("./user"); -const authenticatedRoutes = require("./authenticated"); +const recordRoutes = require("./record"); +const instanceRoutes = require("./instance"); +const clientRoutes = require("./client"); +const applicationRoutes = require("./application"); +const modelRoutes = require("./model"); +const viewRoutes = require("./view"); +const staticRoutes = require("./static"); +const componentRoutes = require("./component"); module.exports = { + authRoutes, pageRoutes, - componentRoutes, userRoutes, - authenticatedRoutes + recordRoutes, + instanceRoutes, + clientRoutes, + applicationRoutes, + modelRoutes, + viewRoutes, + staticRoutes, + componentRoutes }; \ No newline at end of file diff --git a/packages/server/api/routes/neo/instance.js b/packages/server/api/routes/instance.js similarity index 71% rename from packages/server/api/routes/neo/instance.js rename to packages/server/api/routes/instance.js index cbf8567200..f2ca95e00b 100644 --- a/packages/server/api/routes/neo/instance.js +++ b/packages/server/api/routes/instance.js @@ -1,5 +1,5 @@ const Router = require("@koa/router"); -const controller = require("../../controllers/instance"); +const controller = require("../controllers/instance"); const router = Router(); diff --git a/packages/server/api/routes/neo/model.js b/packages/server/api/routes/model.js similarity index 69% rename from packages/server/api/routes/neo/model.js rename to packages/server/api/routes/model.js index 7166cd3429..c4f7096d20 100644 --- a/packages/server/api/routes/neo/model.js +++ b/packages/server/api/routes/model.js @@ -1,5 +1,5 @@ -const Router = require("@koa/router"); -const controller = require("../../controllers/model"); +const Router = require("@koa/router"); +const controller = require("../controllers/model"); const router = Router(); diff --git a/packages/server/api/routes/neo/page.js b/packages/server/api/routes/neo/page.js deleted file mode 100644 index 942730835b..0000000000 --- a/packages/server/api/routes/neo/page.js +++ /dev/null @@ -1,12 +0,0 @@ -const Router = require("@koa/router"); -const controller = require("../../controllers/page"); - -const router = Router(); - -router - .get("/api/:instanceId/pages", controller.fetch) - .post("/api/:instanceId/pages", controller.save) - .delete("/api/:instanceId/:pageId/:revId", controller.destroy); - - -module.exports = router; \ No newline at end of file diff --git a/packages/server/api/routes/neo/user.js b/packages/server/api/routes/neo/user.js deleted file mode 100644 index 9b5c4c325e..0000000000 --- a/packages/server/api/routes/neo/user.js +++ /dev/null @@ -1,11 +0,0 @@ -const Router = require("@koa/router"); -const controller = require("../../controllers/user"); - -const router = Router(); - -router - .get("/api/:instanceId/users", controller.fetch) - .post("/api/:instanceId/users", controller.create) - .delete("/api/:instanceId/users/:userId", controller.destroy); - -module.exports = router; \ No newline at end of file diff --git a/packages/server/api/routes/neo/record.js b/packages/server/api/routes/record.js similarity index 86% rename from packages/server/api/routes/neo/record.js rename to packages/server/api/routes/record.js index 322df794f0..fb0b543dc1 100644 --- a/packages/server/api/routes/neo/record.js +++ b/packages/server/api/routes/record.js @@ -1,5 +1,5 @@ const Router = require("@koa/router") -const controller = require("../../controllers/record") +const controller = require("../controllers/record") const router = Router() diff --git a/packages/server/api/routes/neo/screen.js b/packages/server/api/routes/screen.js similarity index 75% rename from packages/server/api/routes/neo/screen.js rename to packages/server/api/routes/screen.js index 4aa0d4ed8a..da2033eb9f 100644 --- a/packages/server/api/routes/neo/screen.js +++ b/packages/server/api/routes/screen.js @@ -1,5 +1,5 @@ const Router = require("@koa/router"); -const controller = require("../../controllers/screen"); +const controller = require("../controllers/screen"); const router = Router(); diff --git a/packages/server/api/routes/neo/static.js b/packages/server/api/routes/static.js similarity index 71% rename from packages/server/api/routes/neo/static.js rename to packages/server/api/routes/static.js index 015c8cb043..056ee03256 100644 --- a/packages/server/api/routes/neo/static.js +++ b/packages/server/api/routes/static.js @@ -1,5 +1,5 @@ const Router = require("@koa/router"); -const controller = require("../../controllers/static"); +const controller = require("../controllers/static"); const router = Router(); @@ -9,7 +9,7 @@ router await next(); }) .get("/_builder/:file*", controller.serveBuilder) - .get("/_app/:appId", controller.serveApp) - .get("/:appId/componentlibrary", controller.serveComponentLibrary); + .get("/:appId/componentlibrary", controller.serveComponentLibrary) + .get("/:appId/:file*", controller.serveApp); module.exports = router; \ No newline at end of file diff --git a/packages/server/api/routes/neo/tests/application.spec.js b/packages/server/api/routes/tests/application.spec.js similarity index 100% rename from packages/server/api/routes/neo/tests/application.spec.js rename to packages/server/api/routes/tests/application.spec.js diff --git a/packages/server/api/routes/neo/tests/client.spec.js b/packages/server/api/routes/tests/client.spec.js similarity index 100% rename from packages/server/api/routes/neo/tests/client.spec.js rename to packages/server/api/routes/tests/client.spec.js diff --git a/packages/server/api/routes/neo/tests/couchTestUtils.js b/packages/server/api/routes/tests/couchTestUtils.js similarity index 97% rename from packages/server/api/routes/neo/tests/couchTestUtils.js rename to packages/server/api/routes/tests/couchTestUtils.js index 342d20edd7..72bcba5f87 100644 --- a/packages/server/api/routes/neo/tests/couchTestUtils.js +++ b/packages/server/api/routes/tests/couchTestUtils.js @@ -1,4 +1,4 @@ -const CouchDB = require("../../../../db"); +const CouchDB = require("../../../db"); const CLIENT_DB_ID = "client-testing"; const TEST_APP_ID = "test-app"; diff --git a/packages/server/api/routes/neo/tests/instance.spec.js b/packages/server/api/routes/tests/instance.spec.js similarity index 100% rename from packages/server/api/routes/neo/tests/instance.spec.js rename to packages/server/api/routes/tests/instance.spec.js diff --git a/packages/server/api/routes/neo/tests/model.spec.js b/packages/server/api/routes/tests/model.spec.js similarity index 100% rename from packages/server/api/routes/neo/tests/model.spec.js rename to packages/server/api/routes/tests/model.spec.js diff --git a/packages/server/api/routes/neo/tests/record.spec.js b/packages/server/api/routes/tests/record.spec.js similarity index 100% rename from packages/server/api/routes/neo/tests/record.spec.js rename to packages/server/api/routes/tests/record.spec.js diff --git a/packages/server/api/routes/neo/tests/user.spec.js b/packages/server/api/routes/tests/user.spec.js similarity index 100% rename from packages/server/api/routes/neo/tests/user.spec.js rename to packages/server/api/routes/tests/user.spec.js diff --git a/packages/server/api/routes/neo/tests/view.spec.js b/packages/server/api/routes/tests/view.spec.js similarity index 98% rename from packages/server/api/routes/neo/tests/view.spec.js rename to packages/server/api/routes/tests/view.spec.js index 0fe298440b..e0dc089c73 100644 --- a/packages/server/api/routes/neo/tests/view.spec.js +++ b/packages/server/api/routes/tests/view.spec.js @@ -1,5 +1,5 @@ const supertest = require("supertest"); -const app = require("../../../../app"); +const app = require("../../../app"); const { createInstanceDatabase, createModel, destroyDatabase } = require("./couchTestUtils"); diff --git a/packages/server/api/routes/user.js b/packages/server/api/routes/user.js index 8be529cb42..c12a6b194d 100644 --- a/packages/server/api/routes/user.js +++ b/packages/server/api/routes/user.js @@ -1,32 +1,11 @@ -const Router = require("@koa/router") +const Router = require("@koa/router"); +const controller = require("../controllers/user"); -const router = new Router() +const router = Router(); -// router.post("/:appname/api/authenticate", routeHandlers.authenticate) +router + .get("/api/:instanceId/users", controller.fetch) + .post("/api/:instanceId/users", controller.create) + .delete("/api/:instanceId/users/:userId", controller.destroy); -// router.post( -// "/_builder/instance/:appname/:instanceid/api/authenticate", -// routeHandlers.authenticate -// ) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/setPasswordFromTemporaryCode", -// routeHandlers.setPasswordFromTemporaryCode -// ) - -// router.post( -// "/_builder/instance/:appname/:instanceid/api/createTemporaryAccess", -// routeHandlers.createTemporaryAccess -// ) - -// router.post( -// "/:appname/api/createTemporaryAccess", -// routeHandlers.createTemporaryAccess -// ) - -// router.post( -// "/:appname/api/setPasswordFromTemporaryCode", -// routeHandlers.setPasswordFromTemporaryCode -// ) - -module.exports = router \ No newline at end of file +module.exports = router; \ No newline at end of file diff --git a/packages/server/api/routes/neo/view.js b/packages/server/api/routes/view.js similarity index 80% rename from packages/server/api/routes/neo/view.js rename to packages/server/api/routes/view.js index fbd956d954..461a7b3158 100644 --- a/packages/server/api/routes/neo/view.js +++ b/packages/server/api/routes/view.js @@ -1,5 +1,5 @@ const Router = require("@koa/router"); -const controller = require("../../controllers/view"); +const controller = require("../controllers/view"); const router = Router(); diff --git a/packages/server/app.js b/packages/server/app.js index e77a6d65ce..a936c4aa1d 100644 --- a/packages/server/app.js +++ b/packages/server/app.js @@ -8,8 +8,10 @@ module.exports = async () => { app.keys = Object.keys(process.env) .filter(k => k.startsWith("COOKIE_KEY_")) .map(k => process.env[k]) + app.use(koaBody({ multipart: true })) app.use(logger()) app.use(router(app).routes()) + return app.listen(process.env.PORT || 4001) } diff --git a/packages/server/index.js b/packages/server/index.js index 844742e17c..9e23381607 100644 --- a/packages/server/index.js +++ b/packages/server/index.js @@ -1,9 +1,11 @@ require("dotenv").config() const app = require("./app") -;(async () => { +async function startServer() { const server = await app() server.on("listening", () => { console.log(`Budibase Server listening on port ${process.env.PORT}`) }) -})() +} + +startServer(); \ No newline at end of file diff --git a/packages/server/middleware/authenticated.js b/packages/server/middleware/authenticated.js index c54f55d6ed..2adad08f40 100644 --- a/packages/server/middleware/authenticated.js +++ b/packages/server/middleware/authenticated.js @@ -1,12 +1,18 @@ const jwt = require("jsonwebtoken"); module.exports = async (ctx, next) => { - if (!ctx.headers.authorization) ctx.throw(403, "No token provided"); + if (!ctx.headers.authorization) { + ctx.isAuthenticated = false + await next(); + return; + }; + // if (!ctx.headers.authorization) ctx.throw(403, "No token provided"); const [_, token] = ctx.headers.authorization.split(" "); try { ctx.request.jwtPayload = jwt.verify(token, ctx.config.jwtSecret); + ctx.isAuthenticated = true; } catch (err) { ctx.throw(err.status || 403, err.text); } diff --git a/packages/server/package.json b/packages/server/package.json index 302a6ca1f4..40f711f37c 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -21,6 +21,7 @@ "@budibase/client": "^0.0.32", "@budibase/core": "^0.0.32", "@koa/router": "^8.0.0", + "ajv": "^6.12.2", "bcryptjs": "^2.4.3", "dotenv": "^8.2.0", "fs-extra": "^8.1.0", diff --git a/packages/server/utilities/builder/buildPage.js b/packages/server/utilities/builder/buildPage.js index cbe3e08349..8e69a21f0d 100644 --- a/packages/server/utilities/builder/buildPage.js +++ b/packages/server/utilities/builder/buildPage.js @@ -1,9 +1,5 @@ const { appPackageFolder } = require("../createAppPackage") -const { componentLibraryInfo } = require("./componentLibraryInfo") const { - stat, - ensureDir, - pathExists, constants, copyFile, writeFile, @@ -50,7 +46,7 @@ const copyClientLib = async (appPath, pageName) => { const buildIndexHtml = async (config, appname, pageName, appPath, pkg) => { const appPublicPath = publicPath(appPath, pageName) - const appRootPath = rootPath(config, appname) + const appRootPath = appname const stylesheetUrl = s => s.startsWith("http") ? s : `/${rootPath(config, appname)}/${s}` @@ -81,38 +77,6 @@ const buildFrontendAppDefinition = async (config, appname, pageName, pkg) => { const appPublicPath = publicPath(appPath, pageName) const appRootPath = rootPath(config, appname) - const componentLibraries = [] - - for (let lib of pkg.page.componentLibraries) { - const info = await componentLibraryInfo(appPath, lib) - const libFile = info.components._lib || "index.js" - const source = join(info.libDir, libFile) - const moduleDir = join( - appPublicPath, - "lib", - info.libDir.replace(appPath, "") - ) - const destPath = join(moduleDir, libFile) - - await ensureDir(dirname(destPath)) - - componentLibraries.push({ - importPath: destPath.replace(appPublicPath, "").replace(/\\/g, "/"), - libName: lib, - }) - - let shouldCopy = !(await pathExists(destPath)) - if (!shouldCopy) { - const destStat = await stat(destPath) - const sourceStat = await stat(source) - shouldCopy = destStat.ctimeMs !== sourceStat.ctimeMs - } - - if (shouldCopy) { - await copyFile(source, destPath, constants.COPYFILE_FICLONE) - } - } - const filename = join(appPublicPath, "clientFrontendDefinition.js") if (pkg.page._css) { @@ -126,7 +90,6 @@ const buildFrontendAppDefinition = async (config, appname, pageName, pkg) => { } const clientUiDefinition = JSON.stringify({ - componentLibraries: componentLibraries, appRootPath: appRootPath, page: pkg.page, screens: pkg.screens, @@ -134,8 +97,10 @@ const buildFrontendAppDefinition = async (config, appname, pageName, pkg) => { await writeFile( filename, - `window['##BUDIBASE_FRONTEND_DEFINITION##'] = ${clientUiDefinition}; -window['##BUDIBASE_FRONTEND_FUNCTIONS##'] = ${pkg.uiFunctions}` + ` + window['##BUDIBASE_FRONTEND_DEFINITION##'] = ${clientUiDefinition}; + window['##BUDIBASE_FRONTEND_FUNCTIONS##'] = ${pkg.uiFunctions}; + ` ) } diff --git a/packages/server/utilities/builder/componentLibraryInfo.js b/packages/server/utilities/builder/componentLibraryInfo.js deleted file mode 100644 index 0eef51c42b..0000000000 --- a/packages/server/utilities/builder/componentLibraryInfo.js +++ /dev/null @@ -1,77 +0,0 @@ -const { readJSON, exists } = require("fs-extra") -const { resolve, join, dirname } = require("path") - -/** - * @param {string} appPath - budibase application name - * @param {string} libname - component library name - * @returns {string} directory name of component definitions for a specific budibase application. - */ -const getLibDir = (appPath, libname) => { - try { - const componentsFile = require.resolve(join(libname, "components.json"), { - paths: [appPath], - }) - return dirname(componentsFile) - } catch (e) { - console.log(e) - } -} - -const getComponentsFilepath = libPath => resolve(libPath, "components.json") - -module.exports.componentsFilepath = (appPath, libname) => - getComponentsFilepath(getLibDir(appPath, libname)) - -/** - * @param {string} appPath - the path to a budibase application - * @param {string} libname - the name of the component libary to use for namespacing - * @returns {object} tree of components namespaced by their component library name. - */ -module.exports.componentLibraryInfo = async (appPath, libname) => { - const libDir = getLibDir(appPath, libname) - const componentsPath = resolve(libDir, "components.json") - - const componentDefinitionExists = await exists(componentsPath) - - if (!componentDefinitionExists) { - const e = new Error( - `could not find components definition file at ${componentsPath}` - ) - e.statusCode = 404 - throw e - } - - const addNamespace = name => `${libname}/${name}` - - try { - const componentDefinitions = await readJSON(componentsPath) - const namespacedComponents = { _lib: componentDefinitions._lib } - for (let componentKey in componentDefinitions) { - if (componentKey === "_lib" || componentKey === "_templates") continue - const namespacedName = addNamespace(componentKey) - componentDefinitions[componentKey].name = namespacedName - namespacedComponents[namespacedName] = componentDefinitions[componentKey] - } - - const namespacedTemplates = { _lib: componentDefinitions._lib } - for (let templateKey in componentDefinitions._templates || {}) { - const template = componentDefinitions._templates[templateKey] - if (template.component) - template.component = addNamespace(template.component) - const namespacedName = addNamespace(templateKey) - template.name = namespacedName - namespacedTemplates[namespacedName] = - componentDefinitions._templates[templateKey] - } - - return { - components: namespacedComponents, - templates: namespacedTemplates, - libDir, - componentsPath, - } - } catch (e) { - const err = `could not parse JSON - ${componentsPath} : ${e.message}` - throw new Error(err) - } -} diff --git a/packages/server/utilities/builder/componentTree.js b/packages/server/utilities/builder/componentTree.js deleted file mode 100644 index 9ef016101f..0000000000 --- a/packages/server/utilities/builder/componentTree.js +++ /dev/null @@ -1,649 +0,0 @@ -module.exports = { - "components": { - "@budibase/standard-components/button": { - "name": "@budibase/standard-components/button", - "description": "an html