From 6af65c5a8c25346f85ccd5192e5501f91386ff87 Mon Sep 17 00:00:00 2001 From: Oliver Foster Date: Thu, 18 Aug 2022 16:54:19 +0100 Subject: [PATCH 1/3] Initial commit --- .eslintignore | 6 +- .eslintrc.json | 36 +- .gitignore | 17 +- .gitmodules | 5 - Gruntfile.js | 8 +- build/course/config.json | 1 + build/course/en/articles.json | 1 + build/course/en/blocks.json | 1 + build/course/en/components.json | 1 + build/course/en/contentObjects.json | 1 + build/course/en/course.json | 253 + .../course/en/images/accordion-full.png | Bin .../course/en/images/full-width.png | Bin {src => build}/course/en/images/gmcq.png | Bin .../course/en/images/hotgraphic.png | Bin {src => build}/course/en/images/menu-item.png | Bin {src => build}/course/en/images/narrative.png | Bin .../course/en/images/single-width.png | Bin .../course/en/images/vanilla-swatch.jpg | Bin {src => build}/course/en/video/c-40.jpg | Bin {src => build}/course/en/video/c-40.mp4 | Bin {src => build}/course/en/video/c-40.vtt | 0 gitmodules.js | 82 - grunt/.eslintrc | 5 - grunt/config/build-config.js | 15 +- grunt/config/clean.js | 10 +- grunt/config/connect.js | 8 +- grunt/config/copy.js | 214 +- grunt/config/handlebars.js | 12 +- grunt/config/javascript.js | 98 +- grunt/config/jsonlint.js | 2 +- grunt/config/less.js | 40 +- grunt/config/replace.js | 28 +- grunt/config/scripts.js | 7 +- grunt/config/watch.js | 65 +- grunt/helpers.js | 287 +- grunt/helpers/Framework.js | 7 +- grunt/helpers/Plugins.js | 20 +- grunt/helpers/Schemas.js | 6 +- grunt/helpers/Translate.js | 35 +- grunt/helpers/data/Language.js | 2 +- grunt/helpers/plugins/Plugin.js | 62 +- grunt/helpers/schema/ModelSchema.js | 5 +- grunt/helpers/schema/Schema.js | 17 +- grunt/tasks/_log-server.js | 5 + grunt/tasks/_log-vars.js | 36 + grunt/tasks/build-config.js | 16 +- grunt/tasks/compress.js | 6 +- grunt/tasks/handlebars.js | 82 +- grunt/tasks/help.js | 35 +- grunt/tasks/javascript.js | 232 +- grunt/tasks/less.js | 70 +- grunt/tasks/less/replaceUrls.js | 8 +- grunt/tasks/less/visitors.js | 2 +- grunt/tasks/scripts.js | 28 +- grunt/tasks/server-build.js | 2 +- grunt/tasks/translate.js | 8 +- jsconfig.json | 9 +- package-lock.json | 4550 ++++++++--------- package.json | 25 +- src/.npmrc | 1 + src/core | 1 - src/course/config.json | 77 - src/course/en/articles.json | 76 - src/course/en/blocks.json | 236 - src/course/en/components.json | 1088 ---- src/course/en/contentObjects.json | 74 - src/course/en/course.json | 146 - src/package.json | 48 + 69 files changed, 3102 insertions(+), 5116 deletions(-) delete mode 100644 .gitmodules create mode 100644 build/course/config.json create mode 100644 build/course/en/articles.json create mode 100644 build/course/en/blocks.json create mode 100644 build/course/en/components.json create mode 100644 build/course/en/contentObjects.json create mode 100644 build/course/en/course.json rename {src => build}/course/en/images/accordion-full.png (100%) rename {src => build}/course/en/images/full-width.png (100%) rename {src => build}/course/en/images/gmcq.png (100%) rename {src => build}/course/en/images/hotgraphic.png (100%) rename {src => build}/course/en/images/menu-item.png (100%) rename {src => build}/course/en/images/narrative.png (100%) rename {src => build}/course/en/images/single-width.png (100%) rename {src => build}/course/en/images/vanilla-swatch.jpg (100%) rename {src => build}/course/en/video/c-40.jpg (100%) rename {src => build}/course/en/video/c-40.mp4 (100%) rename {src => build}/course/en/video/c-40.vtt (100%) delete mode 100644 gitmodules.js delete mode 100644 grunt/.eslintrc create mode 100644 grunt/tasks/_log-server.js create mode 100644 grunt/tasks/_log-vars.js create mode 100644 src/.npmrc delete mode 160000 src/core delete mode 100644 src/course/config.json delete mode 100755 src/course/en/articles.json delete mode 100644 src/course/en/blocks.json delete mode 100755 src/course/en/components.json delete mode 100755 src/course/en/contentObjects.json delete mode 100755 src/course/en/course.json create mode 100644 src/package.json diff --git a/.eslintignore b/.eslintignore index b265da64e..ed4478238 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1 @@ -# Ignore library files. -/src/core/libraries/*.js - -# Ignore built output. -/build/ +!**/src/node_modules/adapt-*/ diff --git a/.eslintrc.json b/.eslintrc.json index c9233886e..ba4aa8fea 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -10,14 +10,13 @@ "plugin:react/recommended" ], "globals": { - "Promise": true, "requirejs": true, - "Backbone": true, - "$": true, - "ENUM": true, - "Modernizr": true, - "_": true, - "Handlebars": true, + "Backbone": "off", + "$": "off", + "ENUM": "off", + "Modernizr": "off", + "_": "off", + "Handlebars": "off", "Atomics": "readonly", "SharedArrayBuffer": "readonly" }, @@ -31,6 +30,29 @@ "requirejs" ], "rules": { + "no-restricted-globals": [ + "error", + { + "name": "ENUM", + "message": "Use: import ENUM from 'enum';" + }, + { + "name": "Backbone", + "message": "Use: import Backbone from 'backbone';" + }, + { + "name": "Handlebars", + "message": "Use: import Handlebars from 'handlebars';" + }, + { + "name": "_", + "message": "Use: import _ from 'underscore';" + }, + { + "name": "$", + "message": "Use: import $ from 'jquery';" + } + ], "indent": ["error", 2, { "SwitchCase": 1 }], "array-bracket-spacing": "off", "semi": ["error", "always"], diff --git a/.gitignore b/.gitignore index b4b2ec84a..d4e1978bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,7 @@ -src/components -src/theme -src/menu -src/extensions -src/less -src/less/adapt.less -src/plugins.js -build -bower_components +build/* +!build/course +!build/course/* +build/course/*/language_data_manifest.js node_modules -.DS_Store -.idea \ No newline at end of file +src/node_modules/ +src/package-lock.json diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 21645a5fe..000000000 --- a/.gitmodules +++ /dev/null @@ -1,5 +0,0 @@ -[submodule "src/core"] - path = src/core - branch = master - url = https://github.com/adaptlearning/adapt-contrib-core - installBranch = v6.13.1 diff --git a/Gruntfile.js b/Gruntfile.js index e4166a1b6..b841db396 100755 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,8 +1,8 @@ -var path = require('path'); +const path = require('path'); module.exports = function(grunt) { - var helpers = require('./grunt/helpers')(grunt); - + const helpers = require('./grunt/helpers')(grunt); + grunt.option('helpers', helpers); require('time-grunt')(grunt); require('load-grunt-config')(grunt, { data: helpers.generateConfigData(), @@ -14,7 +14,5 @@ module.exports = function(grunt) { } } }); - - grunt.config('helpers', helpers); grunt.registerTask('default', ['help']); }; diff --git a/build/course/config.json b/build/course/config.json new file mode 100644 index 000000000..35be17189 --- /dev/null +++ b/build/course/config.json @@ -0,0 +1 @@ +{"_defaultLanguage":"en","_defaultDirection":"ltr","_questionWeight":1,"_logging":{"_isEnabled":true,"_level":"debug","_console":true,"_warnFirstOnly":true},"_accessibility":{"_isEnabled":true,"_isSkipNavigationEnabled":true,"_ariaLevels":{"_menu":1,"_menuGroup":2,"_menuItem":2,"_page":1,"_article":2,"_block":3,"_component":4,"_componentItem":5,"_notify":1},"_options":{"_isFocusOutlineKeyboardOnlyEnabled":true,"_isFocusOutlineDisabled":false,"_isFocusAssignmentEnabled":true,"_isFocusOnClickEnabled":true,"_isFocusNextOnDisabled":true,"_isScrollDisableEnabled":true,"_isAriaHiddenManagementEnabled":true,"_isPopupManagementEnabled":true,"_isPopupWrapFocusEnabled":true,"_isPopupAriaHiddenManagementEnabled":true,"_isPopupTabIndexManagementEnabled":true,"_warn":true,"_warnFirstOnly":true}},"_fixes":{"_imgLazyLoad":true},"_drawer":{"_showEasing":"easeOutQuart","_hideEasing":"easeInQuart","_duration":400},"_completionCriteria":{"_requireContentCompleted":false,"_requireAssessmentCompleted":true,"_shouldSubmitScore":true},"_spoor":{"_isEnabled":true,"_tracking":{"_shouldStoreResponses":true,"_shouldStoreAttempts":false,"_shouldRecordInteractions":true},"_reporting":{"_comment":"Your options here are 'completed', 'passed', 'failed', and 'incomplete'","_onTrackingCriteriaMet":"completed","_onAssessmentFailure":"incomplete","_resetStatusOnLanguageChange":false}},"_disableAnimationFor":[],"_disableAnimation":false,"_scrollingContainer":{"_isEnabled":false,"_limitToSelector":""},"build":{"strictMode":true}} \ No newline at end of file diff --git a/build/course/en/articles.json b/build/course/en/articles.json new file mode 100644 index 000000000..31b86dbe9 --- /dev/null +++ b/build/course/en/articles.json @@ -0,0 +1 @@ +[{"_id":"a-05","_parentId":"co-05","_type":"article","_classes":"","title":"a-05","displayTitle":"","body":"","instruction":""},{"_id":"a-10","_parentId":"co-10","_type":"article","_classes":"","title":"a-10","displayTitle":"","body":"","instruction":""},{"_id":"a-15","_parentId":"co-15","_type":"article","_classes":"","title":"a-15","displayTitle":"","body":"","_assessment":{"_isEnabled":true,"_id":"a-15","_isPercentageBased":true,"_scoreToPass":75,"_includeInTotalScore":true,"_assessmentWeight":1,"_suppressMarking":false,"_allowResetIfPassed":false,"_banks":{"_isEnabled":true,"_split":"2,2","_randomisation":true},"_questions":{"_resetType":"hard","_canShowFeedback":false,"_canShowMarking":false,"_canShowModelAnswer":false},"_isResetOnRevisit":true,"_attempts":"infinite"},"_trickle":{"_isEnabled":true,"_button":{"_isEnabled":true,"startText":"Continue"}}},{"_id":"a-20","_parentId":"co-15","_type":"article","_classes":"","title":"a-20","displayTitle":"","body":""}] \ No newline at end of file diff --git a/build/course/en/blocks.json b/build/course/en/blocks.json new file mode 100644 index 000000000..7848d4ef1 --- /dev/null +++ b/build/course/en/blocks.json @@ -0,0 +1 @@ +[{"_id":"b-05","_parentId":"a-05","_type":"block","_classes":"","title":"b-05","displayTitle":"","body":"","instruction":"","_trackingId":0,"_onScreen":{"_isEnabled":true,"_classes":"fade-in-bottom","_percentInviewVertical":50}},{"_id":"b-10","_parentId":"a-05","_type":"block","_classes":"","title":"b-10","displayTitle":"","body":"","instruction":"","_trackingId":1},{"_id":"b-15","_parentId":"a-05","_type":"block","_classes":"","title":"b-15","displayTitle":"","body":"","instruction":"","_trackingId":2},{"_id":"b-20","_parentId":"a-05","_type":"block","_classes":"","title":"b-20","displayTitle":"","body":"","instruction":"","_trackingId":3},{"_id":"b-25","_parentId":"a-05","_type":"block","_classes":"","title":"b-25","displayTitle":"","body":"","_trackingId":4},{"_id":"b-30","_parentId":"a-05","_type":"block","_classes":"","title":"b-30","displayTitle":"","body":"","_trackingId":5},{"_id":"b-35","_parentId":"a-05","_type":"block","_classes":"","title":"b-35","displayTitle":"","body":"","_trackingId":6},{"_id":"b-40","_parentId":"a-10","_type":"block","_classes":"","title":"b-40","displayTitle":"","body":"","_trackingId":7},{"_id":"b-45","_parentId":"a-10","_type":"block","_classes":"","title":"b-45","displayTitle":"","body":"","_trackingId":8},{"_id":"b-50","_parentId":"a-10","_type":"block","_classes":"","title":"b-50","displayTitle":"","body":"","_trackingId":9},{"_id":"b-55","_parentId":"a-10","_type":"block","_classes":"","title":"b-55","displayTitle":"","body":"","_trackingId":10},{"_id":"b-60","_parentId":"a-10","_type":"block","_classes":"","title":"b-60","displayTitle":"","body":"","_trackingId":11},{"_id":"b-65","_parentId":"a-15","_type":"block","_classes":"","title":"b-65","displayTitle":"","body":"","_assessment":{"_quizBankID":1},"_trackingId":12},{"_id":"b-75","_parentId":"a-15","_type":"block","_classes":"","title":"b-75","displayTitle":"","body":"","_assessment":{"_quizBankID":1},"_trackingId":13},{"_id":"b-80","_parentId":"a-15","_type":"block","_classes":"","title":"b-80","displayTitle":"","body":"","_assessment":{"_quizBankID":1},"_trackingId":14},{"_id":"b-85","_parentId":"a-15","_type":"block","_classes":"","title":"b-85","displayTitle":"","body":"","_assessment":{"_quizBankID":2},"_trackingId":15},{"_id":"b-90","_parentId":"a-15","_type":"block","_classes":"","title":"b-90","displayTitle":"","body":"","_assessment":{"_quizBankID":2},"_trackingId":16},{"_id":"b-95","_parentId":"a-15","_type":"block","_classes":"","title":"b-95","displayTitle":"","body":"","_assessment":{"_quizBankID":2},"_trackingId":17},{"_id":"b-100","_parentId":"a-20","_type":"block","_classes":"background-color-inverted","title":"b-100","displayTitle":"","body":"","_trickle":{"_isEnabled":true,"_button":{"_isEnabled":true,"text":"Show results"}},"_trackingId":18},{"_id":"b-105","_parentId":"a-20","_type":"block","_classes":"","title":"b-105","displayTitle":"","body":"","_trackingId":19}] \ No newline at end of file diff --git a/build/course/en/components.json b/build/course/en/components.json new file mode 100644 index 000000000..421982938 --- /dev/null +++ b/build/course/en/components.json @@ -0,0 +1 @@ +[{"_id":"c-05","_parentId":"b-05","_type":"component","_component":"text","_classes":"","_layout":"left","title":"Introduction","displayTitle":"","body":"Adapt allows you to combine Text and Graphic components on the scrolling page to create rich and varied learning experiences. In addition, a wide range of interactive components are also available to help encourage deeper engagement with the material.

These presentation components can be structured in any way to help you create learning experiences that meet the needs of your learners.

In addition, if your course is being launched from an LMS or LRS, you can personalise the course content by having the learner's name dynamically displayed in the body, instruction or feedback text.","instruction":"{{_globals._learnerInfo.firstname}}, scroll down to see what presentation components are available as part of the core bundle.","_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-10","_parentId":"b-05","_type":"component","_component":"graphic","_classes":"","_layout":"right","_isOptional":true,"title":"c-10","displayTitle":"","body":"","instruction":"","_graphic":{"large":"course/en/images/single-width.png","small":"course/en/images/full-width.png","alt":"","attribution":""}},{"_id":"c-15","_parentId":"b-10","_type":"component","_component":"text","_classes":"","_layout":"left","title":"Text","displayTitle":"Text","body":"The simple Text component can often be the best choice for imparting information, particularly when used in conjunction with complementary graphics. In this example we’ve used the Blank component to the right to create a window through to the block background.

Remember, content doesn’t always warrant an interaction so less can often be really be more. Instead, look to intersperse more interactive components with text and graphics where they add the maximum value.

Component can either be single or spanned.","instruction":"","_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-20","_parentId":"b-10","_type":"component","_component":"blank","_classes":"","_layout":"right","title":"c-20","_isOptional":true},{"_id":"c-25","_parentId":"b-15","_type":"component","_component":"graphic","_classes":"","_layout":"full","title":"Graphic","displayTitle":"Graphic","body":"This is the Graphic component body. You can introduce your graphic or you may just want to let the graphics do the talking.

Component can either be single or spanned.","instruction":"","_graphic":{"src":"course/en/images/full-width.png","alt":"","attribution":""},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-30","_parentId":"b-20","_type":"component","_component":"narrative","_classes":"","_layout":"full","_comment":"setCompletionOn = inview | allItems","_setCompletionOn":"allItems","_hasNavigationInTextArea":false,"title":"Narrative","displayTitle":"Narrative","body":"The Narrative component lets you scroll through a series of images each with some accompanying text.

This component is always spanned.","instruction":"Select the next and back arrows to find out more.","mobileInstruction":"Select the plus icon followed by the next arrow to find out more.","_items":[{"title":"Narrative item 1","body":"Narratives are particularly good for showing dialogue between two or more characters, with each step of the conversation being accompanied by an image. This photo story approach can be used to provide context for the learning to follow, to illustrate real-world application of the learning or to show the impact on people when the learning hasn’t been applied correctly.","_graphic":{"src":"course/en/images/narrative.png","alt":"alt text"},"strapline":"Narrative item 1"},{"title":"Narrative item 2","body":"It can also be used to present case studies, where the different displays are used to set the scene, show the key events and then the outcome.","_graphic":{"src":"course/en/images/narrative.png","alt":"alt text"},"strapline":"Narrative item 2"},{"title":"Narrative item 3","body":"This component can also be useful when you want to illustrate the constituent steps that make up a larger process.","_graphic":{"src":"course/en/images/narrative.png","alt":"alt text"},"strapline":"Narrative item 3"}],"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-35","_parentId":"b-25","_type":"component","_component":"hotgraphic","_classes":"","_layout":"full","_comment":"setCompletionOn = inview | allItems","_setCompletionOn":"allItems","_canCycleThroughPagination":false,"_hidePagination":false,"_isNarrativeOnMobile":true,"_useNumberedPins":false,"_useGraphicsAsPins":false,"title":"Hot Graphic","displayTitle":"Hot Graphic","body":"You can add interactivity to an image by using the Hot Graphic. This component allows you to position icons over an image. When an icon is selected, content associated with its corresponding location is displayed in a window over the image. This component will fall back to a Narrative when viewed on mobile.

This component is always spanned.","instruction":"Select the icons to find out more.","mobileInstruction":"Select the plus icon followed by the next arrow to find out more.","_graphic":{"src":"course/en/images/hotgraphic.png","alt":"alt text"},"_items":[{"title":"Hot Graphic item 1","body":"This is display text associated with item 1.","_graphic":{"src":"course/en/images/single-width.png","alt":"","_classes":""},"strapline":"Hot Graphic strapline 1","_classes":"","_top":42,"_left":8.5},{"title":"Hot Graphic item 2","body":"This is display text associated with item 2.","_graphic":{"src":"course/en/images/single-width.png","alt":"","_classes":""},"strapline":"Hot Graphic strapline 2","_classes":"","_top":62,"_left":26.5},{"title":"Hot Graphic item 3","body":"This is display text associated with item 3.","_graphic":{"src":"course/en/images/single-width.png","alt":"","_classes":""},"strapline":"Hot Graphic strapline 3","_classes":"","_top":62,"_left":49}],"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-40","_parentId":"b-30","_type":"component","_component":"media","_classes":"","_layout":"full","_comment":"_setCompletionOn = inview | play | ended","_setCompletionOn":"play","_useClosedCaptions":true,"_allowFullScreen":true,"title":"Media","displayTitle":"Media","body":"Sometimes we need to make use of rich media to really drive home a point, bring a complex subject to life or simply use audio to literally do the talking. This is when the Media component comes to the fore.

Component can be either single or spanned.","instruction":"Select the play button to start the video.","_media":{"mp4":"course/en/video/c-40.mp4","poster":"course/en/video/c-40.jpg","cc":[{"srclang":"en","src":"course/en/video/c-40.vtt"}]},"_playerOptions":{"alwaysShowControls":true,"toggleCaptionsButtonWhenOnlyOne":true,"iPadUseNativeControls":true,"iPhoneUseNativeControls":true,"AndroidUseNativeControls":true},"_transcript":{"_inlineTranscript":true,"_externalTranscript":false,"inlineTranscriptButton":"Transcript","inlineTranscriptCloseButton":"Close Transcript","inlineTranscriptBody":"Responsive design means you can create a course once but view it on a wide range of browsers, devices or operating systems. This is achieved by using fluid layouts to ensure the presentation of content is tailored to suit the size of the screen. This means you can start a course on your laptop and finish it later on your mobile or tablet. We call it Adapt","transcriptLinkButton":"Transcript","transcriptLink":""},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-45","_parentId":"b-35","_type":"component","_component":"accordion","_classes":"","_layout":"full","title":"Accordion","displayTitle":"Accordion","body":"You can use the Accordion component to present learners with a series of headings which, once selected, expand to reveal associated text. Select each of the headings below to find out more about how accordions can be used.

These components can be either single or spanned. If spanned they can also contain a graphic.","instruction":"Select the headings to find out more.","_items":[{"title":"Lists","body":"This is display text 1 and we’re using it to discuss lists.

If you need to present a list that can stand alone as a piece of content, but which can also be explored in more detail, accordions are a great choice.","_classes":"align-image-left","_graphic":{"src":"course/en/images/single-width.png","alt":""}},{"title":"Steps in a process","body":"This is display text 2 and now we’re discussing how accordions can be great at presenting a process.

The headings can be used to present the high-level stages in the process, which once selected, provide a more extensive explanation of what happens at that specific point.","_classes":"align-image-right","_graphic":{"src":"course/en/images/single-width.png","alt":""}},{"title":"Recaps","body":"This is display text 3 and we’re now talking about using accordions to provide the learner with a summary.

Each accordion item corresponds to a key piece of learning presented on the page. When this item is selected a short summary of the learning point is provided.","_graphic":{"src":"course/en/images/accordion-full.png","alt":""}}],"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-60","_parentId":"b-40","_type":"component","_component":"mcq","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":true,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":1,"title":"Multiple Choice Question","displayTitle":"Multiple Choice Question","body":"In what year was the first recorded instance of a large scale assessment that consists solely of multiple choice questions?","instruction":"Choose one option and select Submit.","_items":[{"text":"1917","_shouldBeSelected":true},{"text":"1888","_shouldBeSelected":false},{"text":"1953","_shouldBeSelected":false},{"text":"1977","_shouldBeSelected":false}],"_feedback":{"title":"Feedback title","correct":"Correct feedback","_incorrect":{"final":"Incorrect feedback"}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-62","_parentId":"b-40","_type":"component","_component":"mcq","_classes":"","_layout":"right","_attempts":3,"_questionWeight":1,"_canShowModelAnswer":true,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":4,"title":"Multiple Choice Question","displayTitle":"Multiple Choice Question","body":"In what year was the first recorded instance of a large scale assessment that consists solely of multiple choice questions?","instruction":"Choose one option and select Submit.","_items":[{"text":"1917","_shouldBeSelected":true},{"text":"1888","_shouldBeSelected":false},{"text":"1953","_shouldBeSelected":false},{"text":"1977","_shouldBeSelected":false}],"_feedback":{"title":"Feedback title","correct":"Correct feedback","_incorrect":{"notFinal":"Incorrect not final feedback","final":"Incorrect final feedback"},"_partlyCorrect":{"notFinal":"Partly correct not final feedback","final":"Partly correct final feedback"}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-63","_parentId":"b-40","_type":"component","_component":"mcq","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":true,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":1,"title":"Multiple Choice Question","displayTitle":"Multiple Choice Question","body":"In what year was the first recorded instance of a large scale assessment that consists solely of multiple choice questions?","instruction":"Choose one option and select Submit.","_items":[{"text":"1917","_shouldBeSelected":true},{"text":"1888","_shouldBeSelected":false},{"text":"1953","_shouldBeSelected":false},{"text":"1977","_shouldBeSelected":false}],"_feedback":{"title":"Feedback global title","_classes":"","_correct":{"title":"","body":"Correct feedback final","_classes":"","_imageAlignment":"left","_graphic":{"_src":"","alt":"test"}},"_incorrectFinal":{"title":"","body":"Incorrect feedback final","_src":"","_classes":"","_imageAlignment":"left"}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-64","_parentId":"b-40","_type":"component","_component":"mcq","_classes":"","_layout":"right","_attempts":3,"_questionWeight":1,"_canShowModelAnswer":true,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":4,"title":"Multiple Choice Question","displayTitle":"Multiple Choice Question","body":"In what year was the first recorded instance of a large scale assessment that consists solely of multiple choice questions?","instruction":"Choose one option and select Submit.","_items":[{"text":"1917","_shouldBeSelected":true},{"text":"1888","_shouldBeSelected":false},{"text":"1953","_shouldBeSelected":false},{"text":"1977","_shouldBeSelected":false}],"_feedback":{"title":"Feedback global title","_classes":"","_correct":{"title":"","body":"Correct feedback text","_classes":"","_imageAlignment":"left","_graphic":{"_src":"","alt":"test"}},"_incorrectFinal":{"title":"Feedback incorrect feedback title","body":"Incorrect final feedback","_src":"","_classes":"","_imageAlignment":"left"},"_incorrectNotFinal":{"title":"","body":"Incorrect not final feedback","_src":"","_classes":"","_imageAlignment":"left"},"_partlyCorrectFinal":{"title":"Feedback partly correct feedback title","body":"Partly correct final feedback","_src":"","_classes":"","_imageAlignment":"left"},"_partlyCorrectNotFinal":{"title":"","body":"Partly correct not final feedback","_src":"","_classes":"","_imageAlignment":"left"}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-65","_parentId":"b-45","_type":"component","_component":"gmcq","_classes":"","_layout":"full","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":true,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":1,"title":"Graphical Multiple Choice Question","displayTitle":"Graphical Multiple Choice Question","body":"The Graphical Multiple Choice Question is an alternative to the standard MCQ, and allows you to ask a question and present the options as graphics (with accompanying captions). This component is always spanned.","instruction":"Choose option 2 and select Submit.","_columns":3,"_items":[{"text":"Option 1","_shouldBeSelected":false,"_graphic":{"large":"course/en/images/gmcq.png","small":"course/en/images/gmcq.png","alt":"alt text"}},{"text":"Option 2","_shouldBeSelected":true,"_graphic":{"large":"course/en/images/gmcq.png","small":"course/en/images/gmcq.png","alt":"alt text"}},{"text":"Option 3","_shouldBeSelected":false,"_graphic":{"large":"course/en/images/gmcq.png","small":"course/en/images/gmcq.png","alt":"alt text"}}],"_feedback":{"title":"Feedback","correct":"Correct feedback text.

That’s correct. Option 2 is what we were looking for!","_incorrect":{"final":"Incorrect feedback text.

Sorry, that’s not right. In fact Option 2 is what we were looking for (the clue was in the instruction text!)."}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-70","_parentId":"b-50","_type":"component","_component":"textinput","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":true,"_shouldDisplayAttempts":false,"_isRandom":true,"_allowsAnyCase":true,"_allowsPunctuation":true,"title":"Text Input","displayTitle":"Text Input","body":"Can you name one of the three companies that established Adapt as a community-led open source project?","instruction":"Input your answer and select Submit.","_answers":[["City & Guilds Kineo","Kineo"],["Learning Pool"],["Sponge"]],"_items":[{"prefix":"","placeholder":"Enter answer here","suffix":""}],"_feedback":{"title":"Feedback","correct":"Correct answer feedback.

That’s correct. The Adapt open source project was established by Kineo, Learning Pool and Sponge. At the time of writing, there are a total of nine official collaborators.

Component facts: Text input components let learners enter their own answers, which is great for questions that require a bit more flexibility, like those with answers that could be written as both full words and numbers.","_partlyCorrect":{"final":"Partially correct answer feedback.

That’s partially correct. The Adapt open source project was established by Kineo, Learning Pool and Sponge. At the time of writing, there are a total of nine official collaborators.

Component facts: Text input components let learners enter their own answers, which is great for questions that require a bit more flexibility, like those with answers that could be written as both full words and numbers."},"_incorrect":{"final":"Incorrect answer feedback.

Sorry, that’s not right. The Adapt open source project was established by Kineo, Learning Pool and Sponge. At the time of writing, there are a total of nine official collaborators.

Component facts: Text input components let learners enter their own answers, which is great for questions that require a bit more flexibility, like those with answers that could be written as both full words and numbers."}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-72","_parentId":"b-50","_type":"component","_component":"graphic","_classes":"","_layout":"right","_isOptional":true,"title":"c-72","displayTitle":"","body":"","instruction":"","_graphic":{"src":"course/en/images/single-width.png","alt":"","attribution":""}},{"_id":"c-75","_parentId":"b-55","_type":"component","_component":"matching","_classes":"","_layout":"full","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":true,"_shouldDisplayAttempts":false,"_isRandom":true,"title":"Matching","displayTitle":"Matching","body":"Can you identify some of the key facts and figures associated with the Adapt Open Source project?","instruction":"Choose an option from each dropdown list and select Submit.","placeholder":"Select an option","_items":[{"text":"The Adapt Open Source project was formed in:","_options":[{"text":"2008","_isCorrect":false},{"text":"2010","_isCorrect":false},{"text":"2013","_isCorrect":true},{"text":"2015","_isCorrect":false}]},{"text":"Adapt adheres to level 'AA' of the WCAG version 2, but when were these published?","_options":[{"text":"2008","_isCorrect":true},{"text":"2010","_isCorrect":false},{"text":"2013","_isCorrect":false},{"text":"2015","_isCorrect":false}]},{"text":"Which of these languages would benefit from using the recent addition of Right To Left (RTL) language support within Adapt?","_options":[{"text":"Portuguese","_isCorrect":false},{"text":"Hebrew","_isCorrect":true},{"text":"Finnish","_isCorrect":false},{"text":"Esperanto","_isCorrect":false}]}],"_feedback":{"title":"Feedback","correct":"Correct answer feedback.

Yes, that’s right. Adapt was established as an Open Source project in 2013. The Web Accessibility Initiative (WAI) published the WCAG 2.0 guidelines in 2008 and Hebrew is the only language of the four shown which reads right to left.

Component facts: The Matching component lets you match a series of questions or statements with the corresponding options from the dropdown box. Component is either single or spanned.","_partlyCorrect":{"final":"Partially correct answer feedback.

That’s partially correct. Adapt was established as an Open Source project in 2013. The Web Accessibility Initiative (WAI) published the WCAG 2.0 guidelines in 2008 and Hebrew is the only language of the four shown which reads right to left.

Component facts: The Matching component lets you match a series of questions or statements with the corresponding options from the dropdown box. Component is either single or spanned."},"_incorrect":{"final":"Incorrect answer feedback.

Sorry, that’s not right. Adapt was established as an Open Source project in 2013. The Web Accessibility Initiative (WAI) published the WCAG 2.0 guidelines in 2008 and Hebrew is the only language of the four shown which reads right to left.

Component facts: The Matching component lets you match a series of questions or statements with the corresponding options from the dropdown box. Component is either single or spanned."}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-80","_parentId":"b-60","_type":"component","_component":"slider","_classes":"","_layout":"full","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":true,"_shouldDisplayAttempts":false,"_showNumber":true,"_showScaleIndicator":true,"_scaleStart":1,"_scaleEnd":10,"title":"Slider","displayTitle":"Slider","body":"Working memory is thought to be responsible for our ability to temporarily hold and manipulate information, but according to a paper by Miller (1956) what ‘magic number’ describes its capacity?","instruction":"Drag the slider to make your choice and select Submit.","labelStart":"","labelEnd":"","_correctAnswer":"","_correctRange":{"_bottom":5,"_top":9},"_feedback":{"title":"Feedback","correct":"Correct answer feedback.

Yes, that’s right. According to Miller’s paper 7 +/- 2 chunks of information was the limited capacity of working memory. Various theories from the field of cognitive psychology such as Miller’s magical number, chunking, the forgetting curve and spaced repetition have all influenced learning theory over the last 50 years or so.

Component facts: The correct answer for a Slider component can be an exact number or a range. In this instance we have set the correct answer to a range of 5-9 due to the correct answer being seven plus or minus two. Component is either single or spanned.","_incorrect":{"final":"Incorrect answer feedback.

Sorry, that’s not right. According to Miller’s paper 7 +/- 2 chunks of information was the limited capacity of working memory. Various theories from the field of cognitive psychology such as Miller’s magical number, chunking, the forgetting curve and spaced repetition have all influenced learning theory over the last 50 years or so.

Component facts: The correct answer for a Slider component can be an exact number or a range. In this instance we have set the correct answer to a range of 5-9 due to the correct answer being seven plus or minus two. Component is either single or spanned."}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":true}},{"_id":"c-90","_parentId":"b-65","_type":"component","_component":"mcq","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":false,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":4,"title":"To scroll or not to scroll?","displayTitle":"To scroll or not to scroll?","body":"Can you identify a few of the benefits that a vertical scrolling approach offers over the traditional back and next approach?","instruction":"Choose one or more options and select Submit.","_items":[{"text":"Scrolling is common place on the web and therefore familiar to the learner","_shouldBeSelected":true},{"text":"Scrolling reduces the need for unnecessary navigation as pages can be as long (or as short) as they need to be","_shouldBeSelected":true},{"text":"Scrolling helps ensure designs are more mobile friendly","_shouldBeSelected":true},{"text":"Scrolling means you no longer need to first gain learners attention","_shouldBeSelected":false}],"_feedback":{"title":"","correct":"","_partlyCorrect":{"final":""},"_incorrect":{"final":""}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-95","_parentId":"b-65","_type":"component","_component":"graphic","_classes":"","_layout":"right","_isOptional":true,"title":"c-95","displayTitle":"","body":"","instruction":"","_graphic":{"src":"course/en/images/single-width.png","alt":"","attribution":""}},{"_id":"c-100","_parentId":"b-75","_type":"component","_component":"mcq","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":false,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":5,"title":"Do you know your plugins?","displayTitle":"Do you know your plugins?","body":"Which of the following are types of Adapt plugins?","instruction":"Choose one or more options and select Submit.","_items":[{"text":"Component","_shouldBeSelected":true},{"text":"Extension","_shouldBeSelected":true},{"text":"Schema","_shouldBeSelected":false},{"text":"Block","_shouldBeSelected":false},{"text":"App Wrapper","_shouldBeSelected":false}],"_feedback":{"title":"","correct":"","_partlyCorrect":{"final":""},"_incorrect":{"final":""}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-105","_parentId":"b-75","_type":"component","_component":"graphic","_classes":"","_layout":"right","_isOptional":true,"title":"c-105","displayTitle":"","body":"","instruction":"","_graphic":{"src":"course/en/images/single-width.png","alt":"","attribution":""}},{"_id":"c-110","_parentId":"b-80","_type":"component","_component":"mcq","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":false,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":1,"title":"It’s as simple as A, B, C","displayTitle":"It’s as simple as A, B, C","body":"Can you identify the missing word in the following sequence?
Article / ..... / Component.","instruction":"Choose an option and select Submit.","_items":[{"text":"Block","_shouldBeSelected":true},{"text":"Bridge","_shouldBeSelected":false},{"text":"Brace","_shouldBeSelected":false},{"text":"Base","_shouldBeSelected":false},{"text":"Bearing","_shouldBeSelected":false}],"_feedback":{"title":"","correct":"","_incorrect":{"final":""}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-115","_parentId":"b-80","_type":"component","_component":"graphic","_classes":"","_layout":"right","_isOptional":true,"title":"c-115","displayTitle":"","body":"","instruction":"","_graphic":{"src":"course/en/images/single-width.png","alt":"","attribution":""}},{"_id":"c-120","_parentId":"b-85","_type":"component","_component":"mcq","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":false,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":4,"title":"Content Objects","displayTitle":"Content Objects","body":"What would you be referring to when describing a Content Object within Adapt?","instruction":"Choose one or more options and select Submit.","_items":[{"text":"Page","_shouldBeSelected":true},{"text":"Menu","_shouldBeSelected":true},{"text":"Component","_shouldBeSelected":false},{"text":"Course configuration options","_shouldBeSelected":false}],"_feedback":{"title":"","correct":"","_partlyCorrect":{"final":""},"_incorrect":{"final":""}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-125","_parentId":"b-85","_type":"component","_component":"graphic","_classes":"","_layout":"right","_isOptional":true,"title":"c-95","displayTitle":"","body":"","instruction":"","_graphic":{"src":"course/en/images/single-width.png","alt":"","attribution":""}},{"_id":"c-130","_parentId":"b-90","_type":"component","_component":"mcq","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":false,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":1,"title":"Adding titles to icons","displayTitle":"Adding titles to icons","body":"What JSON file would you need to edit in order to add a title to an icon in the navigation bar?","instruction":"Choose an option and select Submit.","_items":[{"text":"course.json","_shouldBeSelected":true},{"text":"config.json","_shouldBeSelected":false},{"text":"contentObjects.json","_shouldBeSelected":false},{"text":"components.json","_shouldBeSelected":false}],"_feedback":{"title":"","correct":"","_incorrect":{"final":""}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-135","_parentId":"b-90","_type":"component","_component":"graphic","_classes":"","_layout":"right","_isOptional":true,"title":"c-95","displayTitle":"","body":"","instruction":"","_graphic":{"src":"course/en/images/single-width.png","alt":"","attribution":""}},{"_id":"c-140","_parentId":"b-95","_type":"component","_component":"mcq","_classes":"","_layout":"left","_attempts":1,"_questionWeight":1,"_canShowModelAnswer":false,"_shouldDisplayAttempts":false,"_isRandom":true,"_selectable":4,"title":"Control the scroll","displayTitle":"Control the scroll","body":"The Trickle extension makes it possible to control how the learner scrolls down the page, but what elements of a page can it be applied to?","instruction":"Choose an option and select Submit.","_items":[{"text":"Article","_shouldBeSelected":true},{"text":"Block","_shouldBeSelected":true},{"text":"Component","_shouldBeSelected":false},{"text":"Other extensions","_shouldBeSelected":false}],"_feedback":{"title":"","correct":"","_partlyCorrect":{"final":""},"_incorrect":{"final":""}},"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-145","_parentId":"b-95","_type":"component","_component":"graphic","_classes":"","_layout":"right","_isOptional":true,"title":"c-95","displayTitle":"","body":"","instruction":"","_graphic":{"src":"course/en/images/single-width.png","alt":"","attribution":""}},{"_id":"c-147","_parentId":"b-100","_type":"component","_component":"text","_classes":"","_layout":"full","title":"Scoring bands","displayTitle":"","body":"The Assessment Results component allows you to specify the assessment pass mark, and provide tailored feedback to as many scoring bands as you wish.

In this short assessment we set the pass mark at 75% or above and provided four scoring bands, each of which has some accompanying feedback. The four scoring bands were:


So, how did you do? Let’s find out.","_canReset":true,"_isResetOnRevisit":"hard","_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}},{"_id":"c-150","_parentId":"b-105","_type":"component","_component":"assessmentResults","_classes":"","_layout":"full","_isVisibleBeforeCompletion":false,"_assessmentId":"a-15","title":"Results","displayTitle":"Results","body":"","instruction":"","_retry":{"button":"Retry Assessment","_comment":"use {{attempts}}, {{attemptsSpent}} and {{attemptsLeft}} to display attempts","feedback":""},"_comment":"use {{score}}, {{maxScore}} and {{scoreAsPercent}} to display score and percentage","_completionBody":"{{{feedback}}}","_bands":[{"_score":0,"feedback":"You didn’t pass, achieving a score of {{scoreAsPercent}}%.

You didn’t do so well in the Adapt assessment demo, but don’t worry. There’s lots of information about the Adapt basics on our site. We’d also suggest you pay a visit to the forum or chat room and ask our ever-helpful community to answer any questions that you might have.","_allowRetry":true},{"_score":50,"feedback":"You didn’t pass, achieving a score of {{scoreAsPercent}}%.

You already know some of the Adapt basics but please explore our site for more information. Also pay a visit to the forum or chat room and ask our ever-helpful community to answer any questions that you might have.","_allowRetry":true},{"_score":75,"feedback":"You passed, achieving a score of {{scoreAsPercent}}%.

You’re clearly already pretty knowledgeable about Adapt so, if you haven’t already, please consider sharing your expertise on the Adapt community forums.","_allowRetry":true},{"_score":100,"feedback":"You passed, achieving a score of {{scoreAsPercent}}%.

You’re clearly already a black belt in Adapt! If you haven’t already, please consider sharing your expertise on the Adapt community forums.","_allowRetry":false}],"_pageLevelProgress":{"_isEnabled":true,"_isCompletionIndicatorEnabled":false}}] \ No newline at end of file diff --git a/build/course/en/contentObjects.json b/build/course/en/contentObjects.json new file mode 100644 index 000000000..d85938881 --- /dev/null +++ b/build/course/en/contentObjects.json @@ -0,0 +1 @@ +[{"_id":"co-05","_parentId":"course","_type":"page","_classes":"","_htmlClasses":"","title":"Presentation Components","displayTitle":"Presentation Components","body":"Find out what presentation components are available within the core bundle and how you might consider using them within your courses.","pageBody":"","instruction":"Scroll down to see what presentation components are available as part of the v5 core bundle.","_graphic":{"src":"course/en/images/menu-item.png","alt":""},"linkText":"View","duration":"2 mins","_pageLevelProgress":{"_isEnabled":true,"_showPageCompletion":false,"_excludeAssessments":false,"_isCompletionIndicatorEnabled":false}},{"_id":"co-10","_parentId":"course","_type":"page","_classes":"","_htmlClasses":"","title":"Question Components","displayTitle":"Question Components","body":"Discover what question components are available within the framework, along with some tips on how to use them.","pageBody":"Without a range of question components, we can’t easily measure if learners are meeting the intended course objectives, provide guidance and feedback if they’re not, or give them opportunities to practise in a ‘safe environment’.

Discover what question components are available within the framework, along with some tips on how to use them.","instruction":"Scroll down to see what question components are available as part of the v5 core bundle.","_graphic":{"src":"course/en/images/menu-item.png","alt":""},"linkText":"View","duration":"2 mins","_pageLevelProgress":{"_isEnabled":true,"_showPageCompletion":false,"_excludeAssessments":false,"_isCompletionIndicatorEnabled":false}},{"_id":"co-15","_parentId":"course","_type":"page","_classes":"assessment","_htmlClasses":"","title":"Adapt Assessment","displayTitle":"Adapt Assessment","body":"Find out more about the assessment functionality introduced in Adapt v2, including randomised banks and an improved results feature.","pageBody":"We’ve put together a very short quiz to demonstrate the new assessment functionality. In this simple example there are two banks that each contain three questions with two being taken from each bank at random. The order in which the questions are presented is then also randomised, as is the order of each question’s options.","instruction":"Think you can get a perfect score? Scroll down to attempt the first question.","_graphic":{"src":"course/en/images/menu-item.png","alt":""},"linkText":"View","duration":"2 mins","_pageLevelProgress":{"_isEnabled":true,"_showPageCompletion":false,"_excludeAssessments":false,"_isCompletionIndicatorEnabled":false}}] \ No newline at end of file diff --git a/build/course/en/course.json b/build/course/en/course.json new file mode 100644 index 000000000..1ba8dbe31 --- /dev/null +++ b/build/course/en/course.json @@ -0,0 +1,253 @@ +{ + "_id": "course", + "_type": "course", + "_classes": "", + "_htmlClasses": "", + "title": "Adapt v6", + "displayTitle": "Adapt Version 6", + "description": "A sample course demonstrating the capabilities of the Adapt Framework", + "body": "Welcome to the demonstration build for version 6 of the Adapt framework.", + "instruction": "", + "_buttons": { + "_submit": { + "buttonText": "Submit", + "ariaLabel": "Submit" + }, + "_reset": { + "buttonText": "Reset", + "ariaLabel": "Reset" + }, + "_showCorrectAnswer": { + "buttonText": "Show correct answer", + "ariaLabel": "Show correct answer" + }, + "_hideCorrectAnswer": { + "buttonText": "Show your answer", + "ariaLabel": "Show your answer" + }, + "_showFeedback": { + "buttonText": "Show feedback", + "ariaLabel": "Show feedback" + }, + "remainingAttemptsText": "attempts remaining", + "remainingAttemptText": "final attempt", + "disabledAriaLabel": "This button is disabled at the moment" + }, + "_globals": { + "_learnerInfo": { + "id": "student.name@example.org", + "name": "Name, Student", + "firstname": "Student", + "lastname": "Name" + }, + "_accessibility": { + "skipNavigationText": "Skip navigation", + "_ariaLabels": { + "answeredIncorrectly": "You answered incorrectly", + "answeredCorrectly": "You answered correctly", + "selectedAnswer": "selected", + "unselectedAnswer": "not selected", + "skipNavigation": "Skip Navigation", + "previous": "Back", + "navigationDrawer": "Open course resources.", + "close": "Close", + "closeDrawer": "Close drawer", + "closeResources": "Close resources", + "drawer": "Top of side drawer", + "closePopup": "Close popup", + "next": "Next", + "done": "Done", + "complete": "Completed", + "incomplete": "Incomplete", + "incorrect": "Incorrect", + "correct": "Correct", + "locked": "Locked", + "visited": "Visited" + } + }, + "_extensions": { + "_drawer": { + "_navOrder": 0 + }, + "_languagePicker": { + "navigationBarLabel": "Select course language", + "languageSelector": "Language selector" + }, + "_pageLevelProgress": { + "pageLevelProgress": "Page sections", + "pageLevelProgressIndicatorBar": "Page progress. Use this to listen to the list of regions in this topic and whether they're completed. You can jump directly to any that are incomplete or which sound particularly interesting. {{percentageComplete}}%", + "pageLevelProgressMenuBar": "Page completion {{percentageComplete}}%", + "pageLevelProgressEnd": "You have reached the end of the list of page sections.", + "optionalContent": "Optional content", + "_navOrder": 0 + }, + "_resources": { + "resources": "Additional resources." + }, + "_trickle": { + "incompleteContent": "There is incomplete content above. You must complete this before you can proceed through the course." + }, + "_tutor": { + "hideFeedback": "Hide feedback" + } + }, + "_components": { + "_accordion": { + "ariaRegion": "List of expandable sections. Select each button to expand the content." + }, + "_assessmentResults": { + "ariaRegion": "Assessment results." + }, + "_gmcq": { + "ariaRegion": "Multiple choice question", + "ariaCorrectAnswer": "The correct answer is {{{correctAnswer}}}", + "ariaCorrectAnswers": "The correct answers are {{{correctAnswer}}}", + "ariaUserAnswer": "The answer you chose was {{{userAnswer}}}", + "ariaUserAnswers": "The answers you chose were {{{userAnswer}}}" + }, + "_graphic": { + "ariaRegion": "", + "scrollAriaLabel": "Use the scrollbar to pan the image left and right. {{#if _graphic.alt}}{{_graphic.alt}}{{/if}}" + }, + "_hotgraphic": { + "ariaRegion": "Image with selectable areas. Select each button to show more information.", + "popupPagination": "{{itemNumber}} / {{totalItems}}" + }, + "_matching": { + "ariaRegion": "Matching. Select from lists and then submit.", + "ariaCorrectAnswer": "The correct answer for {{{itemText}}} is {{{correctAnswer}}}", + "ariaUserAnswer": "The answer you chose for {{{itemText}}} was {{{userAnswer}}}" + }, + "_mcq": { + "ariaRegion": "Multiple choice question", + "ariaCorrectAnswer": "The correct answer is {{{correctAnswer}}}", + "ariaCorrectAnswers": "The correct answers are {{{correctAnswer}}}", + "ariaUserAnswer": "The answer you chose was {{{userAnswer}}}", + "ariaUserAnswers": "The answers you chose were {{{userAnswer}}}" + }, + "_media": { + "ariaRegion": "Media player{{#any _transcript._inlineTranscript _transcript._externalTranscript}} and transcript{{/any}}.", + "skipToTranscript": "Skip to transcript", + "playText": "Play", + "pauseText": "Pause", + "stopText": "Stop", + "audioPlayerText": "Audio Player", + "videoPlayerText": "Video Player", + "tracksText": "Captions/Subtitles", + "timeSliderText": "Time Slider", + "muteText": "Mute Toggle", + "unmuteStatusText": "Unmute", + "muteStatusText": "Mute", + "volumeSliderText": "Volume Slider", + "fullscreenText": "Fullscreen", + "goFullscreenText": "Go Fullscreen", + "turnOffFullscreenText": "Turn off Fullscreen", + "noneText": "None", + "skipBackText": "Skip back %1 seconds", + "allyVolumeControlText": "Use Up/Down Arrow keys to increase or decrease volume.", + "progessHelpText": "Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds." + }, + "_narrative": { + "ariaRegion": "Slide show. Select the next button to progress.", + "previous": "{{#if title}}Back to {{{title}}} (item {{itemNumber}} of {{totalItems}}){{else}}{{_globals._accessibility._ariaLabels.previous}}{{/if}}", + "next": "{{#if title}}Forward to {{{title}}} (item {{itemNumber}} of {{totalItems}}){{else}}{{_globals._accessibility._ariaLabels.next}}{{/if}}" + }, + "_slider": { + "ariaRegion": "Slider. Respond to the question by selecting a value on the scale and then submit.", + "ariaCorrectAnswer": "The correct answer is {{{correctAnswer}}}", + "ariaCorrectAnswerRange": "The correct answer is any value from {{{bottom}}} to {{{top}}}", + "ariaUserAnswer": "The answer you chose was {{{userAnswer}}}", + "labelStart": "Start of the scale", + "labelEnd": "End of the scale" + }, + "_text": { + "ariaRegion": "" + }, + "_textinput": { + "ariaRegion": "Text input. Type your answer and then submit." + } + }, + "_menu": { + "_boxMenu": { + "durationLabel": "Duration:" + } + } + }, + "_latestTrackingId": 19, + "_pageLevelProgress": { + "_isEnabled": true, + "_showPageCompletion": false, + "_isCompletionIndicatorEnabled": false, + "_isShownInNavigationBar": true + }, + "_resources": { + "_isEnabled": true, + "title": "Resources", + "description": "View resources for this course by clicking here.", + "_filterButtons": { + "all": "All", + "document": "Document", + "media": "Media", + "link": "Link" + }, + "_filterAria": { + "allAria": "View all resources", + "documentAria": "View document resources", + "mediaAria": "View media resources", + "linkAria": "View resource links" + }, + "_resourcesItems": [ + { + "_type": "document", + "title": "Vanilla Theme Swatch", + "description": "See the swatch for the vanilla theme by clicking here.", + "_link": "course/en/images/vanilla-swatch.jpg" + }, + { + "_type": "media", + "title": "Adapt Learning YouTube Channel", + "description": "Fancy catching up on some Adapt material? Click here.", + "_link": "https://www.youtube.com/channel/UCW8SlSFuCc--B66Gf9fAEcQ" + }, + { + "_type": "link", + "title": "Adapt Project Site", + "description": "View the project's web site by clicking here.", + "_link": "https://www.adaptlearning.org/" + }, + { + "_type": "link", + "title": "Framework chat", + "description": "Join the framework chat room by clicking here.", + "_link": "https://gitter.im/adaptlearning/adapt_framework" + } + ] + }, + "_start": { + "_isEnabled": false, + "_startIds": [ + { + "_id": "co-05", + "_skipIfComplete": true, + "_className": "" + } + ], + "_force": false, + "_isMenuDisabled": false + }, + "_assessment": { + "_isPercentageBased": true, + "_scoreToPass": 75, + "_correctToPass": 75 + }, + "_bookmarking": { + "_isEnabled": true, + "_level": "component", + "title": "Resume?", + "body": "Would you like to resume the course from the location you were at last time?", + "_buttons": { + "yes": "Yes", + "no": "No" + } + } +} diff --git a/src/course/en/images/accordion-full.png b/build/course/en/images/accordion-full.png similarity index 100% rename from src/course/en/images/accordion-full.png rename to build/course/en/images/accordion-full.png diff --git a/src/course/en/images/full-width.png b/build/course/en/images/full-width.png similarity index 100% rename from src/course/en/images/full-width.png rename to build/course/en/images/full-width.png diff --git a/src/course/en/images/gmcq.png b/build/course/en/images/gmcq.png similarity index 100% rename from src/course/en/images/gmcq.png rename to build/course/en/images/gmcq.png diff --git a/src/course/en/images/hotgraphic.png b/build/course/en/images/hotgraphic.png similarity index 100% rename from src/course/en/images/hotgraphic.png rename to build/course/en/images/hotgraphic.png diff --git a/src/course/en/images/menu-item.png b/build/course/en/images/menu-item.png similarity index 100% rename from src/course/en/images/menu-item.png rename to build/course/en/images/menu-item.png diff --git a/src/course/en/images/narrative.png b/build/course/en/images/narrative.png similarity index 100% rename from src/course/en/images/narrative.png rename to build/course/en/images/narrative.png diff --git a/src/course/en/images/single-width.png b/build/course/en/images/single-width.png similarity index 100% rename from src/course/en/images/single-width.png rename to build/course/en/images/single-width.png diff --git a/src/course/en/images/vanilla-swatch.jpg b/build/course/en/images/vanilla-swatch.jpg similarity index 100% rename from src/course/en/images/vanilla-swatch.jpg rename to build/course/en/images/vanilla-swatch.jpg diff --git a/src/course/en/video/c-40.jpg b/build/course/en/video/c-40.jpg similarity index 100% rename from src/course/en/video/c-40.jpg rename to build/course/en/video/c-40.jpg diff --git a/src/course/en/video/c-40.mp4 b/build/course/en/video/c-40.mp4 similarity index 100% rename from src/course/en/video/c-40.mp4 rename to build/course/en/video/c-40.mp4 diff --git a/src/course/en/video/c-40.vtt b/build/course/en/video/c-40.vtt similarity index 100% rename from src/course/en/video/c-40.vtt rename to build/course/en/video/c-40.vtt diff --git a/gitmodules.js b/gitmodules.js deleted file mode 100644 index 25039e2ef..000000000 --- a/gitmodules.js +++ /dev/null @@ -1,82 +0,0 @@ -const ChildProcess = require('child_process'); -const fs = require('fs'); -const path = require('path'); - -/** - * Fetch and parse .gitmodules - * @returns {Object} - */ -function getModuleConfig() { - const gitModulesPath = path.join(__dirname, './.gitmodules'); - if (!fs.existsSync(gitModulesPath)) return false; - const boundaryRegExp = /\[submodule\s+"(.*?)"\]/; - const propertyRegExp = /(.*?)\s*=\s*(.*)/; - const str = fs.readFileSync(gitModulesPath).toString(); - const lines = str.split('\n'); - const ret = {}; - for (let i = 0; i < lines.length; i++) { - const line = lines[i]; - const result = line.match(boundaryRegExp); - if (!result || result.length < 2) continue; - const submodule = result[1]; - const obj = {}; - if (!submodule) continue; - let subline = lines[++i]; - while (subline && subline.trim()) { - subline = lines[i]; - if (!subline || subline.match(boundaryRegExp)) { - i--; - break; - } - subline = subline.trim(); - const result = subline.match(propertyRegExp); - const key = result[1]; - const value = result[2]; - if (key && value) obj[key] = value; - i++; - } - ret[submodule] = obj; - } - return ret; -} - -const modules = getModuleConfig(); -if (!modules) process.exit(); - -// Fix PATH environment variables for git bash in both the terminal and AAT -const GITCOMPATIBILITY = `${process.env.PROGRAMFILES}\\Git\\bin;${process.env.PROGRAMFILES}\\Git\\mingw64\\libexec\\git-core;${process.env.APPDATA}\\..\\Local\\Programs\\Git\\mingw64\\libexec\\git-core`; -const env = Object.assign({}, process.env, { - Path: `${process.env.Path};${GITCOMPATIBILITY}`, - PATH: `${process.env.PATH};${GITCOMPATIBILITY}`, -}); - -// Clone submodules -for (const subPath in modules) { - const dirPath = path.join(__dirname, subPath); - const url = modules[subPath].url; - const hasPackageJSON = fs.existsSync(path.join(dirPath, 'package.json')); - if (hasPackageJSON) continue; - console.log(`Cleaning ${subPath}`); - // rmSync was introduced in node v14.14.0 - fs[fs.rmSync ? 'rmSync' : 'rmdirSync'](dirPath, { recursive: true, force: true }); - console.log(`Cloning submodule ${url} into ${subPath}`); - ChildProcess.execSync(`git clone ${url} ${subPath}`, { - cwd: __dirname, - env, - stdio: 'inherit' - }); -} - -// Ensure submodules are on the appropriate branch -for (const subPath in modules) { - const dirPath = path.join(__dirname, subPath); - const branch = (modules[subPath].installBranch || modules[subPath].branch); - const hasGit = fs.existsSync(path.join(dirPath, '.git')); - if (!hasGit) continue; - console.log(`Switching submodule ${subPath} to branch ${branch}`); - ChildProcess.execSync(`git checkout ${branch}`, { - cwd: dirPath, - env, - stdio: 'inherit' - }); -} diff --git a/grunt/.eslintrc b/grunt/.eslintrc deleted file mode 100644 index 814778fda..000000000 --- a/grunt/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "env": { - "es6": true - } -} \ No newline at end of file diff --git a/grunt/config/build-config.js b/grunt/config/build-config.js index 26a99aaf0..2cbab8855 100644 --- a/grunt/config/build-config.js +++ b/grunt/config/build-config.js @@ -1,11 +1,9 @@ -module.exports = function(grunt, options) { +module.exports = function(grunt) { return { options: { - filter: function(filepath) { - return grunt.config('helpers').includedFilter(filepath); - }, + filter: filepath => grunt.option('helpers').includedFilter(filepath), allowedProperties: { - bower: [ + package: [ 'name', 'version', 'framework', @@ -18,13 +16,6 @@ module.exports = function(grunt, options) { 'main', 'keywords', 'licence' - ], - package: [ - 'name', - 'version', - 'description', - 'repository', - 'license' ] } } diff --git a/grunt/config/clean.js b/grunt/config/clean.js index 0f7a94bb7..e9353c5a4 100644 --- a/grunt/config/clean.js +++ b/grunt/config/clean.js @@ -1,20 +1,14 @@ module.exports = { dist: { src: [ - '<%= sourcedir %>components/components.js', - '<%= sourcedir %>extensions/extensions.js', - '<%= sourcedir %>menu/menu.js', - '<%= sourcedir %>theme/theme.js', - '<%= sourcedir %>less', - '<%= sourcedir %>templates', - '<%= sourcedir %>plugins.js', '<%= outputdir %>adapt/js/adapt.min.js.map', '<%= outputdir %>.cache' ] }, output: { src: [ - '<%= outputdir %>/*', + '<%= outputdir %>*', + '!<%= outputdir %>course', '!<%= outputdir %>.cache' ] }, diff --git a/grunt/config/connect.js b/grunt/config/connect.js index d5768cc0f..127252cef 100644 --- a/grunt/config/connect.js +++ b/grunt/config/connect.js @@ -1,12 +1,12 @@ module.exports = function(grunt, options) { - var port = parseInt(grunt.option('port')) || 9001; - var host = grunt.option('host') || 'localhost'; + const port = parseInt(grunt.option('port')) || 9001; + const host = grunt.option('host') || 'localhost'; return { server: { options: { - port: port, + port, base: '<%= outputdir %>', keepalive: true, open: true @@ -14,7 +14,7 @@ module.exports = function(grunt, options) { }, spoorOffline: { options: { - port: port, + port, base: '<%= outputdir %>', keepalive: true, open: 'http://' + host + ':' + port + '/scorm_test_harness.html' diff --git a/grunt/config/copy.js b/grunt/config/copy.js index e0e885379..bdeb25285 100644 --- a/grunt/config/copy.js +++ b/grunt/config/copy.js @@ -1,193 +1,50 @@ module.exports = function(grunt, options) { - var _ = require('underscore'); + const _ = require('underscore'); - var getUnixPath = function(filepath) { + const getUnixPath = function(filepath) { // convert to unix style slashes return filepath.replace(/\\/g, '/'); }; - var collate = function(collateAtFolderName, destFolder, srcFileName) { + const collate = function(collateAtFolderName, destFolder, srcFileName) { destFolder = getUnixPath(destFolder); srcFileName = getUnixPath(srcFileName); // ignore if the srcFileName ends with the collateAtFolderName - var nameParts = srcFileName.split('/'); + const nameParts = srcFileName.split('/'); if (nameParts[nameParts.length - 1] === collateAtFolderName) { return destFolder; } - var startOfCollatePath = srcFileName.indexOf(collateAtFolderName) + collateAtFolderName.length + 1; - var collatedFilePath = destFolder + srcFileName.substr(startOfCollatePath); + const startOfCollatePath = srcFileName.indexOf(collateAtFolderName) + collateAtFolderName.length + 1; + const collatedFilePath = destFolder + srcFileName.substr(startOfCollatePath); return collatedFilePath; }; - var nonServerTasks = { - courseAssets: { + const mandatoryTasks = { + assets: { files: [ { expand: true, - src: ['<%= languages %>/**/*', '!**/*.<%= jsonext %>'], - cwd: '<%= sourcedir %><%= coursedir %>/', - dest: '<%= outputdir %><%= coursedir %>/' - } - ] - }, - courseJson: { - files: [ - { - expand: true, - src: ['<%= languages %>/*.<%= jsonext %>', '*.<%= jsonext %>'], - cwd: '<%= sourcedir %><%= coursedir %>/', - dest: '<%= outputdir %><%= coursedir %>/' - } - ] - } - }; - - var mandatoryTasks = { - coreAssets: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>core/assets/**'], + src: ['<%= sourcedir %>node_modules/*/assets/**'], dest: '<%= outputdir %>assets/', - rename: _.partial(collate, 'assets') + filter: filepath => grunt.option('helpers').includedFilter(filepath), + rename: _.partial(collate, 'assets'), + order: grunt.option('helpers').orderFilesByPluginType } ] }, - componentAssets: { + fonts: { files: [ { expand: true, - src: ['<%= sourcedir %>components/**/assets/**'], - dest: '<%= outputdir %>assets/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'assets') - } - ] - }, - componentFonts: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>components/**/fonts/**'], + src: ['<%= sourcedir %>node_modules/*/fonts/**'], dest: '<%= outputdir %>fonts/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'fonts') - } - ] - }, - extensionAssets: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>extensions/**/assets/**'], - dest: '<%= outputdir %>assets/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'assets') - } - ] - }, - extensionFonts: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>extensions/**/fonts/**'], - dest: '<%= outputdir %>fonts/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'fonts') - } - ] - }, - menuAssets: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>menu/<%= menu %>/assets/**'], - dest: '<%= outputdir %>assets/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'assets') - } - ] - }, - coreFonts: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>core/fonts/**'], - dest: '<%= outputdir %>fonts/', - filter: 'isFile', - rename: _.partial(collate, 'fonts') - } - ] - }, - menuFonts: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>menu/<%= menu %>/fonts/**'], - dest: '<%= outputdir %>fonts/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'fonts') - } - ] - }, - themeAssets: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>theme/<%= theme %>/assets/**'], - dest: '<%= outputdir %>assets/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'assets') - } - ] - }, - themeFonts: { - files: [ - { - expand: true, - src: ['<%= sourcedir %>theme/<%= theme %>/fonts/**'], - dest: '<%= outputdir %>fonts/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'fonts') - } - ] - }, - coreLibraries: { - files: [ - { - expand: true, - src: ['core/libraries/**/*'], - cwd: '<%= sourcedir %>', - dest: '<%= outputdir %>libraries/', - rename: _.partial(collate, 'libraries') + filter: filepath => grunt.option('helpers').includedFilter(filepath), + rename: _.partial(collate, 'fonts'), + order: grunt.option('helpers').orderFilesByPluginType } ] }, @@ -195,25 +52,11 @@ module.exports = function(grunt, options) { files: [ { expand: true, - src: ['components/**/libraries/**/*', 'extensions/**/libraries/**/*', 'menu/<%= menu %>/libraries/**/*', 'theme/<%= theme %>/libraries/**/*'], - cwd: '<%= sourcedir %>', + src: ['<%= sourcedir %>node_modules/**/libraries/**/*'], dest: '<%= outputdir %>libraries/', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'libraries') - } - ] - }, - coreRequired: { - files: [ - { - expand: true, - src: ['core/required/**/*'], - cwd: '<%= sourcedir %>', - dest: '<%= outputdir %>', - rename: _.partial(collate, 'required') + filter: filepath => grunt.option('helpers').includedFilter(filepath), + rename: _.partial(collate, 'libraries'), + order: grunt.option('helpers').orderFilesByPluginType } ] }, @@ -221,21 +64,16 @@ module.exports = function(grunt, options) { files: [ { expand: true, - src: ['components/**/required/**/*', 'extensions/**/required/**/*', 'menu/<%= menu %>/required/**/*', 'theme/<%= theme %>/required/**/*'], - cwd: '<%= sourcedir %>', + src: ['<%= sourcedir %>node_modules/*/required/**/*'], dest: '<%= outputdir %>', - filter: function(filepath) { - return grunt.config('helpers') - .includedFilter(filepath); - }, - rename: _.partial(collate, 'required') + filter: filepath => grunt.option('helpers').includedFilter(filepath), + rename: _.partial(collate, 'required'), + order: grunt.option('helpers').orderFilesByPluginType } ] } }; - if (grunt.option('outputdir')) return mandatoryTasks; - - return _.extend({}, nonServerTasks, mandatoryTasks); + return mandatoryTasks; }; diff --git a/grunt/config/handlebars.js b/grunt/config/handlebars.js index 9077f99b4..864266340 100644 --- a/grunt/config/handlebars.js +++ b/grunt/config/handlebars.js @@ -1,4 +1,4 @@ -var path = require('path'); +const path = require('path'); module.exports = function(grunt) { return { @@ -7,7 +7,7 @@ module.exports = function(grunt) { amd: 'handlebars', namespace: 'Handlebars.templates', processName: function(filePath) { - var newFilePath = filePath.split('/'); + let newFilePath = filePath.split('/'); newFilePath = newFilePath[newFilePath.length - 1].replace(/\.[^/.]+$/, ''); return newFilePath; }, @@ -17,11 +17,7 @@ module.exports = function(grunt) { files: [ { src: [ - '<%= sourcedir %>core/**/*.hbs', - '<%= sourcedir %>components/**/*.hbs', - '<%= sourcedir %>extensions/**/*.hbs', - '<%= sourcedir %>menu/<%= menu %>/**/*.hbs', - '<%= sourcedir %>theme/<%= theme %>/**/*.hbs' + '<%= sourcedir %>/node_modules/**/*.hbs' ], follow: true, dest: '<%= outputdir %>templates.js', @@ -31,7 +27,7 @@ module.exports = function(grunt) { return true; } - return grunt.config('helpers').includedFilter(filepath); + return grunt.option('helpers').includedFilter(filepath); } } ] diff --git a/grunt/config/javascript.js b/grunt/config/javascript.js index 204ac6d41..21b366515 100644 --- a/grunt/config/javascript.js +++ b/grunt/config/javascript.js @@ -2,61 +2,26 @@ module.exports = function(grunt, options) { return { dev: { options: { - name: 'core/js/app', - baseUrl: '<%= sourcedir %>', + baseUrl: '<%= sourcedir %>node_modules/', out: '<%= outputdir %>adapt/js/adapt.min.js', cachePath: '<%= outputdir %>.cache', - // fetch these bower plugins an add them as dependencies to the app.js plugins: [ - '<%= sourcedir %>components/*/bower.json', - '<%= sourcedir %>extensions/*/bower.json', - '<%= sourcedir %>menu/<%= menu %>/bower.json', - '<%= sourcedir %>theme/<%= theme %>/bower.json' + '<%= sourcedir %>/node_modules/adapt-*/package.json', + '<%= sourcedir %>/node_modules/adapt-*/*/bower.json' ], - pluginsPath: '<%= sourcedir %>plugins.js', - pluginsModule: 'plugins', pluginsFilter: function(filepath) { - return grunt.config('helpers').includedFilter(filepath); + return grunt.option('helpers').includedFilter(filepath); }, - umdImports: [ - ], reactTemplates: [ - '<%= sourcedir %>core/templates/**/*.jsx', - '<%= sourcedir %>components/*/templates/**/*.jsx', - '<%= sourcedir %>extensions/*/templates/**/*.jsx', - '<%= sourcedir %>menu/*/templates/**/*.jsx', - '<%= sourcedir %>theme/*/templates/**/*.jsx' + '<%= sourcedir %>/node_modules/adapt-*/templates/**/*.jsx' ], externalMap: { '.*/libraries/(?!mediaelement-fullscreen-hook)+': 'libraries/' }, external: { - jquery: 'empty:', - underscore: 'empty:', - backbone: 'empty:', - modernizr: 'empty:', - handlebars: 'empty:', - velocity: 'empty:', - imageReady: 'empty:', - inview: 'empty:', - a11y: 'empty:', - scrollTo: 'empty:', - libraries: 'empty:', - bowser: 'empty:', - 'core/js/libraries/bowser': 'empty:', - 'coreJS/libraries/bowser': 'empty:', - react: 'empty:', - 'react-dom': 'empty:', - 'object.assign': 'empty:', - 'html-react-parser': 'empty:', - semver: 'empty:' + libraries: 'empty:' }, map: { - coreJS: 'core/js', - coreViews: 'core/js/views', - coreModels: 'core/js/models', - coreCollections: 'core/js/collections', - coreHelpers: 'core/js/helpers', // This library from the media component has a circular reference to core/js/adapt, it should be loaded after Adapt // It needs to be moved from the libraries folder to the js folder 'libraries/mediaelement-fullscreen-hook': '../libraries/mediaelement-fullscreen-hook' @@ -66,68 +31,33 @@ module.exports = function(grunt, options) { // newer configuration files: { '<%= outputdir %>adapt/js/adapt.min.js': [ - '<%= sourcedir %>/**/*.js', - '<%= sourcedir %>/**/*.jsx' + '<%= sourcedir %>/node_modules/adapt-*/**/*.js', + '<%= sourcedir %>/node_modules/adapt-*/**/*.jsx' ] } }, compile: { options: { - name: 'core/js/app', - baseUrl: '<%= sourcedir %>', + baseUrl: '<%= sourcedir %>node_modules/', out: '<%= outputdir %>adapt/js/adapt.min.js', cachePath: '<%= outputdir %>.cache', - // fetch these bower plugins an add them as dependencies to the app.js plugins: [ - '<%= sourcedir %>components/*/bower.json', - '<%= sourcedir %>extensions/*/bower.json', - '<%= sourcedir %>menu/<%= menu %>/bower.json', - '<%= sourcedir %>theme/<%= theme %>/bower.json' + '<%= sourcedir %>/node_modules/adapt-*/*/package.json', + '<%= sourcedir %>/node_modules/adapt-*/*/bower.json' ], - pluginsPath: '<%= sourcedir %>/plugins.js', - pluginsModule: 'plugins', pluginsFilter: function(filepath) { - return grunt.config('helpers').includedFilter(filepath); + return grunt.option('helpers').includedFilter(filepath); }, - umdImports: [ - ], reactTemplates: [ - '<%= sourcedir %>core/templates/**/*.jsx', - '<%= sourcedir %>components/*/templates/**/*.jsx', - '<%= sourcedir %>extensions/*/templates/**/*.jsx', - '<%= sourcedir %>menu/*/templates/**/*.jsx', - '<%= sourcedir %>theme/*/templates/**/*.jsx' + '<%= sourcedir %>/node_modules/adapt-*/templates/**/*.jsx' ], externalMap: { '.*/libraries/(?!mediaelement-fullscreen-hook)+': 'libraries/' }, external: { - jquery: 'empty:', - underscore: 'empty:', - backbone: 'empty:', - modernizr: 'empty:', - handlebars: 'empty:', - velocity: 'empty:', - imageReady: 'empty:', - inview: 'empty:', - a11y: 'empty:', - scrollTo: 'empty:', - libraries: 'empty:', - bowser: 'empty:', - 'core/js/libraries/bowser': 'empty:', - 'coreJS/libraries/bowser': 'empty:', - react: 'empty:', - 'react-dom': 'empty:', - 'object.assign': 'empty:', - 'html-react-parser': 'empty:', - semver: 'empty:' + libraries: 'empty:' }, map: { - coreJS: 'core/js', - coreViews: 'core/js/views', - coreModels: 'core/js/models', - coreCollections: 'core/js/collections', - coreHelpers: 'core/js/helpers', // This library from the media component has a circular reference to core/js/adapt, it should be loaded after Adapt // It needs to be moved from the libraries folder to the js folder 'libraries/mediaelement-fullscreen-hook': '../libraries/mediaelement-fullscreen-hook' diff --git a/grunt/config/jsonlint.js b/grunt/config/jsonlint.js index 3764fa272..4e5fd6c22 100644 --- a/grunt/config/jsonlint.js +++ b/grunt/config/jsonlint.js @@ -1,3 +1,3 @@ module.exports = { - src: ['<%= sourcedir %><%= coursedir %>/<%=languages%>/*.<%=jsonext%>'] + src: ['<%= outputdir %><%= coursedir %>/<%=languages%>/*.<%=jsonext%>'] }; diff --git a/grunt/config/less.js b/grunt/config/less.js index e1fad73c6..ccecb6e8d 100644 --- a/grunt/config/less.js +++ b/grunt/config/less.js @@ -1,6 +1,6 @@ module.exports = function(grunt, options) { - var convertSlashes = /\\/g; - var path = require('path'); + const convertSlashes = /\\/g; + const path = require('path'); function alphanumericOrder(a, b) { return a > b ? 1 : a < b ? -1 : 0; @@ -14,15 +14,15 @@ module.exports = function(grunt, options) { /** * If not in the same folder sort alphanumerically */ - var aParsed = path.parse(a); - var bParsed = path.parse(b); + const aParsed = path.parse(a); + const bParsed = path.parse(b); if (aParsed.dir !== bParsed.dir) return alphanumericOrder(a, b); /** * If names don't start with the same phrase sort alphanumerically */ - var aStartsB = bParsed.name.startsWith(aParsed.name); - var bStartsA = aParsed.name.startsWith(bParsed.name); + const aStartsB = bParsed.name.startsWith(aParsed.name); + const bStartsA = aParsed.name.startsWith(bParsed.name); if (!aStartsB && !bStartsA) return alphanumericOrder(a, b); /** @@ -43,7 +43,7 @@ module.exports = function(grunt, options) { } function includedFilter(filepath) { - return grunt.config('helpers').includedFilter(filepath); + return grunt.option('helpers').includedFilter(filepath); } return { @@ -51,13 +51,10 @@ module.exports = function(grunt, options) { options: { baseUrl: '<%= sourcedir %>', mandatory: [ - '<%= sourcedir %>core/less/**/*.less' + '<%= sourcedir %>/node_modules/adapt-contrib-core/**/*.less' ], src: [ - '<%= sourcedir %>components/**/*.less', - '<%= sourcedir %>extensions/**/*.less', - '<%= sourcedir %>menu/<%= menu %>/**/*.less', - '<%= sourcedir %>theme/<%= theme %>/**/*.less' + '<%= sourcedir %>/node_modules/adapt-*/**/*.less' ], config: '<%= outputdir %><%= coursedir %>/config.<%= jsonext %>', sourcemaps: true, @@ -69,9 +66,9 @@ module.exports = function(grunt, options) { order: sortLESSFilePaths, replaceUrls: [ { - 'action': 'Replace url(../../assets/ with url(assets/', - 'find': /\.\.\/\.\.\/assets\//, - 'replaceWith': 'assets/' + action: 'Replace url(../../assets/ with url(assets/', + find: /\.\.\/\.\.\/assets\//, + replaceWith: 'assets/' } ] }, @@ -86,13 +83,10 @@ module.exports = function(grunt, options) { options: { baseUrl: '<%= sourcedir %>', mandatory: [ - '<%= sourcedir %>core/less/**/*.less' + '<%= sourcedir %>/node_modules/adapt-contrib-core/**/*.less' ], src: [ - '<%= sourcedir %>components/**/*.less', - '<%= sourcedir %>extensions/**/*.less', - '<%= sourcedir %>menu/<%= menu %>/**/*.less', - '<%= sourcedir %>theme/<%= theme %>/**/*.less' + '<%= sourcedir %>/node_modules/adapt-*/**/*.less' ], config: '<%= outputdir %><%= coursedir %>/config.<%= jsonext %>', sourcemaps: false, @@ -104,9 +98,9 @@ module.exports = function(grunt, options) { order: sortLESSFilePaths, replaceUrls: [ { - 'action': 'Replace url(../../assets/ with url(assets/', - 'find': /\.\.\/\.\.\/assets\//, - 'replaceWith': 'assets/' + action: 'Replace url(../../assets/ with url(assets/', + find: /\.\.\/\.\.\/assets\//, + replaceWith: 'assets/' } ] } diff --git a/grunt/config/replace.js b/grunt/config/replace.js index 31272c262..23fe6f973 100644 --- a/grunt/config/replace.js +++ b/grunt/config/replace.js @@ -4,12 +4,12 @@ module.exports = function(grunt, options) { const Helpers = require('../helpers')(grunt); - var filterNullValues = function(obj) { + const filterNullValues = function(obj) { // hack to fix bug https://github.com/adaptlearning/adapt_framework/issues/1867 - var value; + let value; if (obj instanceof Array) { - for (var i = obj.length - 1; i >= 0; i--) { + for (let i = obj.length - 1; i >= 0; i--) { value = obj[i]; if (value === null) { obj.splice(i, 1); @@ -18,7 +18,7 @@ module.exports = function(grunt, options) { } } } else if (typeof obj === 'object') { - for (var k in obj) { + for (const k in obj) { value = obj[k]; if (value === null) { delete obj[k]; @@ -32,7 +32,7 @@ module.exports = function(grunt, options) { }; - var generatePatterns = function() { + const generatePatterns = function() { const framework = Helpers.getFramework({ useOutputData: true }); const data = framework.getData(); @@ -42,25 +42,25 @@ module.exports = function(grunt, options) { const courseJson = data.getLanguage(defaultLanguage).getCourseFileItem().item; // Backwards compatibility for courses missing 'description' - if (!courseJson.hasOwnProperty('description')) { + if (!Object.prototype.hasOwnProperty.call(courseJson, 'description')) { courseJson.description = ''; } // A shim for edge cases where xAPI has not been configured. - if (!configJson.hasOwnProperty('_xapi')) { + if (!Object.prototype.hasOwnProperty.call(configJson, '_xapi')) { configJson._xapi = { - '_activityID': '', - '_isEnabled': false + _activityID: '', + _isEnabled: false }; } else { // xAPI has been enabled, check if the activityID has been set. - if (configJson._xapi.hasOwnProperty('_activityID') && configJson._xapi._activityID === '') { + if (Object.prototype.hasOwnProperty.call(configJson._xapi, '_activityID') && configJson._xapi._activityID === '') { grunt.log.writeln('WARNING: xAPI activityID has not been set'); } } // Shim to preserve the 'adapt_manifest' identifier. - var spoor = configJson._spoor; + const spoor = configJson._spoor; if (spoor) { spoor._advancedSettings = spoor._advancedSettings || {}; spoor._advancedSettings._manifestIdentifier = spoor._advancedSettings._manifestIdentifier || 'adapt_manifest'; @@ -68,9 +68,9 @@ module.exports = function(grunt, options) { // Combine the course, config and build JSON to pass to replace. return { - 'course': filterNullValues(courseJson), - 'config': filterNullValues(configJson), - 'build': filterNullValues(Helpers.generateConfigData()) + course: filterNullValues(courseJson), + config: filterNullValues(configJson), + build: filterNullValues(Helpers.generateConfigData()) }; } catch (ex) { return {}; diff --git a/grunt/config/scripts.js b/grunt/config/scripts.js index 128d81ce8..296793af8 100644 --- a/grunt/config/scripts.js +++ b/grunt/config/scripts.js @@ -4,13 +4,10 @@ module.exports = function(grunt, options) { outputdir: '<%= outputdir %>', sourcedir: '<%= sourcedir %>', plugins: [ - '<%= sourcedir %>components/*/bower.json', - '<%= sourcedir %>extensions/*/bower.json', - '<%= sourcedir %>menu/<%= menu %>/bower.json', - '<%= sourcedir %>theme/<%= theme %>/bower.json' + '<%= sourcedir %>/node_modules/adapt-*/*/package.json' ], pluginsFilter: function(filepath) { - return grunt.config('helpers').includedFilter(filepath) && grunt.config('helpers').scriptSafeFilter(filepath); + return grunt.option('helpers').includedFilter(filepath) && grunt.option('helpers').scriptSafeFilter(filepath); } } }; diff --git a/grunt/config/watch.js b/grunt/config/watch.js index 989018dcd..c486efd4c 100644 --- a/grunt/config/watch.js +++ b/grunt/config/watch.js @@ -1,74 +1,43 @@ -// TODO excludes module.exports = { - bowerJson: { - files: ['<%= sourcedir %>*/*/bower.json'], + courseJson: { + files: ['<%= outputdir %><%= coursedir %>/**/*.<%= jsonext %>', '<%= outputdir %><%= coursedir %>/*/language_data_manifest.js', '<%= sourcedir %>/node_modules/adapt-*/**/*.schema', '<%= sourcedir %>/node_modules/adapt-*/**/*.schema.json'], + tasks: ['language-data-manifests', 'jsonlint', 'check-json', 'newer:copy:courseJson', 'schema-defaults'] + }, + packageJson: { + files: ['<%= sourcedir %>/node_modules/adapt-*/package.json', '<%= sourcedir %>/node_modules/adapt-*/bower.json'], tasks: ['dev'] }, scripts: { - files: ['<%= sourcedir %>*/*/scripts/*'], + files: ['<%= sourcedir %>/node_modules/adapt-*/scripts/**/*.js'], tasks: ['dev'] }, less: { - files: ['<%= sourcedir %>**/*.less'], + files: ['<%= sourcedir %>/node_modules/adapt-*/**/*.less'], tasks: ['less:dev'] }, handlebars: { - files: ['<%= sourcedir %>**/*.hbs'], + files: ['<%= sourcedir %>/node_modules/adapt-*/**/*.hbs'], tasks: ['handlebars', 'javascript:dev'] }, - courseJson: { - files: ['<%= sourcedir %><%= coursedir %>/**/*.<%= jsonext %>', '<%= outputdir %><%= coursedir %>/*/language_data_manifest.js'], - tasks: ['language-data-manifests', 'jsonlint', 'check-json', 'newer:copy:courseJson', 'schema-defaults'] - }, - courseAssets: { - files: ['<%= sourcedir %><%= coursedir %>/<%=languages%>/*', '!<%= sourcedir %><%= coursedir %>/<%=languages%>/*.<%= jsonext %>'], - tasks: ['newer:copy:courseAssets'] - }, js: { - files: ['<%= sourcedir %>**/*.js', '<%= sourcedir %>**/*.jsx'], - options: { - spawn: false - }, + files: ['<%= sourcedir %>/node_modules/adapt-*/**/*.js', '<%= sourcedir %>/node_modules/adapt-*/**/*.jsx'], + options: { spawn: false }, tasks: ['javascript:dev', 'clean:temp'] }, - componentsAssets: { - files: ['<%= sourcedir %>components/**/assets/**'], + assets: { + files: ['<%= sourcedir %>/node_modules/adapt-*/assets/**'], tasks: ['newer:copy:componentAssets'] }, - componentsFonts: { - files: ['<%= sourcedir %>components/**/fonts/**'], + fonts: { + files: ['<%= sourcedir %>/node_modules/adapt-*/fonts/**'], tasks: ['newer:copy:componentFonts'] }, - extensionsAssets: { - files: ['<%= sourcedir %>extensions/**/assets/**'], - tasks: ['newer:copy:extensionAssets'] - }, - extensionsFonts: { - files: ['<%= sourcedir %>extensions/**/fonts/**'], - tasks: ['newer:copy:extensionFonts'] - }, - menuAssets: { - files: ['<%= sourcedir %>menu/<%= menu %>/**/assets/**'], - tasks: ['newer:copy:menuAssets'] - }, - menuFonts: { - files: ['<%= sourcedir %>menu/<%= menu %>/**/fonts/**'], - tasks: ['newer:copy:menuFonts'] - }, - themeAssets: { - files: ['<%= sourcedir %>theme/<%= theme %>/**/assets/**'], - tasks: ['newer:copy:themeAssets'] - }, - themeFonts: { - files: ['<%= sourcedir %>theme/<%= theme %>/**/fonts/**'], - tasks: ['newer:copy:themeFonts'] - }, libraries: { - files: ['<%= sourcedir %>core/libraries/**/*', '<%= sourcedir %>*/*/libraries/**/*'], + files: ['<%= sourcedir %>/node_modules/adapt-*/libraries/**'], tasks: ['newer:copy:libraries'] }, required: { - files: ['<%= sourcedir %>core/required/**/*', '<%= sourcedir %>*/*/required/**/*'], + files: ['<%= sourcedir %>/node_modules/adapt-*/required/**'], tasks: ['newer:copy:required'] } }; diff --git a/grunt/helpers.js b/grunt/helpers.js index a874dba3a..021112db4 100644 --- a/grunt/helpers.js +++ b/grunt/helpers.js @@ -1,150 +1,92 @@ -var _ = require('underscore'); -var fs = require('fs-extra'); -var path = require('path'); +const _ = require('underscore'); +const fs = require('fs-extra'); +const path = require('path'); // extends grunt.file.expand with { order: cb(filePaths) } require('grunt-file-order'); const Framework = require('./helpers/Framework'); module.exports = function(grunt) { - var convertSlashes = /\\/g; + const convertSlashes = /\\/g; - // grunt tasks - - grunt.registerTask('_log-server', 'Logs out user-defined build variables', function() { - grunt.log.ok(`Starting server in '${grunt.config('outputdir')}' using port ${grunt.config('connect.server.options.port')}`); - }); - grunt.registerTask('_log-vars', 'Logs out user-defined build variables', function() { - var includes = grunt.config('includes'); - var excludes = grunt.config('excludes'); - var productionExcludes = grunt.config('productionExcludes'); - - if (includes && excludes) { - grunt.fail.fatal('Cannot specify includes and excludes. Please check your config.json configuration.'); - } - - if (includes) { - let count = includes.length; - grunt.log.writeln('The following will be included in the build:'); - for (let i = 0; i < count; i++) { grunt.log.writeln('- ' + includes[i]); } - grunt.log.writeln(''); - } - if (excludes) { - let count = excludes.length; - grunt.log.writeln('The following will be excluded from the build:'); - for (let i = 0; i < count; i++) { grunt.log.writeln('- ' + excludes[i]); } - grunt.log.writeln(''); - } - if (productionExcludes) { - const count = productionExcludes.length; - grunt.log.writeln('The following will be excluded from the build in production:'); - for (let i = 0; i < count; i++) { grunt.log.writeln('- ' + productionExcludes[i]); } - grunt.log.writeln(''); - } - - grunt.log.ok(`Using source at '${grunt.config('sourcedir')}'`); - grunt.log.ok(`Building to '${grunt.config('outputdir')}'`); - if (grunt.config('theme') !== '**') grunt.log.ok(`Using theme '${grunt.config('theme')}'`); - if (grunt.config('menu') !== '**') grunt.log.ok(`Using menu ${grunt.config('menu')}'`); - if (grunt.config('languages') !== '**') grunt.log.ok(`The following languages will be included in the build '${grunt.config('languages')}'`); - }); - - // privates - var generateIncludedRegExp = function() { - var includes = grunt.config('includes') || []; - var pluginTypes = exports.defaults.pluginTypes; - - // Return a more specific plugin regExp including src path. - var re = _.map(includes, function(plugin) { - return _.map(pluginTypes, function(type) { - // eslint-disable-next-line no-useless-escape - return exports.defaults.sourcedir + type + '\/' + plugin + '\/'; - }).join('|'); - }).join('|'); - // eslint-disable-next-line no-useless-escape - var core = exports.defaults.sourcedir + `core\/`; - return new RegExp(core + '|' + re, 'i'); + const appendSlash = function(dir) { + if (!dir) return; + const lastChar = dir.substring(dir.length - 1, dir.length); + if (lastChar === path.sep) return dir; + return dir + path.sep; }; - var generateNestedIncludedRegExp = function() { - var includes = grunt.config('includes') || []; - var folderRegEx = 'less/plugins'; - - // Return a more specific plugin regExp including src path. - var re = _.map(includes, function(plugin) { + const getIncludedRegExp = function() { + const generateIncludedRegExp = function() { + const includes = grunt.config('includes') || []; + // TODO: resolve and add dependencies to includes from plugins + const pluginTypes = exports.defaults.pluginTypes; + // Return a more specific plugin regExp including src path. // eslint-disable-next-line no-useless-escape - return exports.defaults.sourcedir + '([^\/]*)\/([^\/]*)\/' + folderRegEx + '\/' + plugin + '\/'; - }).join('|'); - return new RegExp(re, 'i'); - }; - - var generateExcludedRegExp = function() { - var excludes = grunt.config('excludes') || []; - if (grunt.config('type') === 'production') { - const productionExcludes = grunt.config('productionExcludes') || []; - excludes.push(...productionExcludes); - } - var pluginTypes = exports.defaults.pluginTypes; - - // Return a more specific plugin regExp including src path. - var re = _.map(excludes, function(plugin) { - return _.map(pluginTypes, function(type) { - // eslint-disable-next-line no-useless-escape - return exports.defaults.sourcedir + type + '\/' + plugin + '\/'; - }).join('|'); - }).join('|'); - return new RegExp(re, 'i'); - }; - - var generateScriptSafeRegExp = function() { - let includes = grunt.config('scriptSafe') || []; - let re = ''; - let count = includes.length; - - for (var i = 0; i < count; i++) { + const re = _.map(includes, plugin => _.map(pluginTypes, type => exports.defaults.sourcedir + type + '\/' + plugin + '\/').join('|')).join('|'); // eslint-disable-next-line no-useless-escape - re += '\/' + includes[i].toLowerCase() + '\/'; - if (i < includes.length - 1) re += '|'; - } - return new RegExp(re, 'i'); - }; - - var appendSlash = function(dir) { - if (dir) { - var lastChar = dir.substring(dir.length - 1, dir.length); - if (lastChar !== path.sep) return dir + path.sep; - } - }; - - // eslint-disable-next-line no-unused-vars - var includedProcess = function(content, filepath) { - if (!exports.isPathIncluded(filepath)) return ''; - else return content; - }; - - var getIncludedRegExp = function() { - var configValue = grunt.config('includedRegExp'); + const core = exports.defaults.sourcedir + 'core\/'; + return new RegExp(core + '|' + re, 'i'); + }; + const configValue = grunt.config('includedRegExp'); return configValue || grunt.config('includedRegExp', generateIncludedRegExp()); }; - var getNestedIncludedRegExp = function() { - var configValue = grunt.config('nestedIncludedRegExp'); + const getNestedIncludedRegExp = function() { + const generateNestedIncludedRegExp = function() { + const includes = grunt.config('includes') || []; + const folderRegEx = 'less/plugins'; + // Return a more specific plugin regExp including src path. + // eslint-disable-next-line no-useless-escape + const re = _.map(includes, plugin => exports.defaults.sourcedir + '([^\/]*)\/([^\/]*)\/' + folderRegEx + '\/' + plugin + '\/').join('|'); + return new RegExp(re, 'i'); + }; + const configValue = grunt.config('nestedIncludedRegExp'); return configValue || grunt.config('nestedIncludedRegExp', generateNestedIncludedRegExp()); }; - var getExcludedRegExp = function() { - var configValue = grunt.config('excludedRegExp'); + const getExcludedRegExp = function() { + const generateExcludedRegExp = function() { + const excludes = grunt.config('excludes') || []; + if (grunt.config('type') === 'production') { + const productionExcludes = grunt.config('productionExcludes') || []; + excludes.push(...productionExcludes); + } + const pluginTypes = exports.defaults.pluginTypes; + // Return a more specific plugin regExp including src path. + // eslint-disable-next-line no-useless-escape + const re = _.map(excludes, plugin => _.map(pluginTypes, type => exports.defaults.sourcedir + type + '\/' + plugin + '\/').join('|')).join('|'); + return new RegExp(re, 'i'); + }; + const configValue = grunt.config('excludedRegExp'); return configValue || grunt.config('excludedRegExp', generateExcludedRegExp()); }; - var getScriptSafeRegExp = function() { - var configValue = grunt.config('scriptSafeRegExp'); + const getScriptSafeRegExp = function() { + const generateScriptSafeRegExp = function() { + const includes = grunt.config('scriptSafe') || []; + let re = ''; + const count = includes.length; + for (let i = 0; i < count; i++) { + // eslint-disable-next-line no-useless-escape + re += '\/' + includes[i].toLowerCase() + '\/'; + if (i < includes.length - 1) re += '|'; + } + return new RegExp(re, 'i'); + }; + const configValue = grunt.config('scriptSafeRegExp'); return configValue || grunt.config('scriptSafeRegExp', generateScriptSafeRegExp()); }; - // exported + const getSortedPluginPaths = function() { + const pluginsContainer = exports.getFramework().getPlugins(); + const plugins = pluginsContainer.plugins; + const sortedPluginPaths = plugins.map((plugin) => plugin.sourcePath); + return sortedPluginPaths; + }; - var exports = { + // exported + const exports = { defaults: { sourcedir: 'src/', @@ -159,6 +101,7 @@ module.exports = function(grunt) { ], pluginTypes: [ + 'core', 'components', 'extensions', 'menu', @@ -170,18 +113,25 @@ module.exports = function(grunt) { ] }, + orderFilesByPluginType: function(files) { + if (files.length <= 1) return files; + const sortedPluginPaths = getSortedPluginPaths(); + files.sort((a, b) => sortedPluginPaths.findIndex(pluginPath => a.startsWith(pluginPath)) - sortedPluginPaths.findIndex(pluginPath => b.startsWith(pluginPath))); + return files; + }, + getIncludes: function(buildIncludes, configData) { - var dependencies = []; + const dependencies = []; // Iterate over the plugin types. - for (var i = 0; i < exports.defaults.pluginTypes.length; i++) { - var pluginTypeDir = path.join(configData.sourcedir, exports.defaults.pluginTypes[i]); + for (let i = 0; i < exports.defaults.pluginTypes.length; i++) { + const pluginTypeDir = path.join(configData.sourcedir, exports.defaults.pluginTypes[i]); // grab a list of the installed (and included) plugins for this type - var plugins = _.intersection(fs.readdirSync(pluginTypeDir), buildIncludes); - for (var j = 0; j < plugins.length; j++) { + const plugins = _.intersection(fs.readdirSync(pluginTypeDir), buildIncludes); + for (let j = 0; j < plugins.length; j++) { try { - var bowerJson = grunt.file.readJSON(path.join(pluginTypeDir, plugins[j], 'bower.json')); - for (var key in bowerJson.dependencies) { + const bowerJson = grunt.file.readJSON(path.join(pluginTypeDir, plugins[j], 'bower.json')); + for (const key in bowerJson.dependencies) { if (!_.contains(buildIncludes, key)) dependencies.push(key); } } catch (error) { @@ -195,16 +145,16 @@ module.exports = function(grunt) { generateConfigData: function() { - var root = __dirname.split(path.sep).slice(0, -1).join(path.sep); - var adaptJSON = fs.readJSONSync(`${root}/adapt.json`); - var sourcedir = appendSlash(grunt.option('sourcedir')) || exports.defaults.sourcedir; - var outputdir = appendSlash(grunt.option('outputdir')) || exports.defaults.outputdir; - var cachepath = grunt.option('cachepath') || null; - var tempdir = outputdir + '.temp/'; - var jsonext = grunt.option('jsonext') || exports.defaults.jsonext; - var coursedir = grunt.option('coursedir') || adaptJSON.coursedir || exports.defaults.coursedir; + const root = __dirname.split(path.sep).slice(0, -1).join(path.sep); + const adaptJSON = fs.readJSONSync(`${root}/adapt.json`); + const sourcedir = appendSlash(grunt.option('sourcedir')) || exports.defaults.sourcedir; + const outputdir = appendSlash(grunt.option('outputdir')) || exports.defaults.outputdir; + const cachepath = grunt.option('cachepath') || null; + const tempdir = outputdir + '.temp/'; + const jsonext = grunt.option('jsonext') || exports.defaults.jsonext; + const coursedir = grunt.option('coursedir') || adaptJSON.coursedir || exports.defaults.coursedir; - var languageFolders = ''; + let languageFolders = ''; if (grunt.option('languages') && grunt.option('languages').split(',').length > 1) { languageFolders = '{' + grunt.option('languages') + '}'; } else { @@ -212,13 +162,14 @@ module.exports = function(grunt) { } // Selectively load the course.json ('outputdir' passed by server-build) - var configDir = grunt.option('outputdir') ? outputdir : sourcedir; + const configDir = outputdir; // add root path if necessary, and point to course/config.json - var configPath = path.join(path.resolve(root, configDir), coursedir, 'config.' + jsonext); + const configPath = path.join(path.resolve(root, configDir), coursedir, 'config.' + jsonext); + let buildConfig; try { - var buildConfig = grunt.file.readJSON(configPath).build || {}; + buildConfig = grunt.file.readJSON(configPath).build || {}; } catch (error) { grunt.log.error(error); process.exit(); @@ -226,16 +177,16 @@ module.exports = function(grunt) { const isDevelopmentBuild = process.argv.some(arg => (arg === 'dev' || arg.includes(':dev'))); - var data = { + const data = { type: isDevelopmentBuild ? 'development' : 'production', - root: root, - sourcedir: sourcedir, - outputdir: outputdir, + root, + sourcedir, + outputdir, configdir: configDir, - coursedir: coursedir, - cachepath: cachepath, - tempdir: tempdir, - jsonext: jsonext, + coursedir, + cachepath, + tempdir, + jsonext, trackingIdType: grunt.option('trackingidtype') || 'block', theme: grunt.option('theme') || exports.defaults.theme, menu: grunt.option('menu') || exports.defaults.menu, @@ -254,7 +205,7 @@ module.exports = function(grunt) { return item.trim(); }); } - if (buildConfig.hasOwnProperty('strictMode')) data.strictMode = buildConfig.strictMode; + if (Object.prototype.hasOwnProperty.call(buildConfig, 'strictMode')) data.strictMode = buildConfig.strictMode; const framework = new Framework({ rootPath: data.root, @@ -264,7 +215,7 @@ module.exports = function(grunt) { includedFilter: exports.includedFilter, jsonext: data.jsonext, trackingIdType: data.trackingIdType, - useOutputData: Boolean(grunt.option('outputdir')), + useOutputData: true, log: grunt.log.ok, warn: grunt.log.error }); @@ -281,19 +232,19 @@ module.exports = function(grunt) { * assumption: all folders are plugins */ getInstalledPluginsByType: function(type) { - var pluginDir = grunt.config('sourcedir') + type + '/'; + const pluginDir = grunt.config('sourcedir') + '/node_modules/'; if (!grunt.file.isDir(pluginDir)) return []; // fail silently // return all sub-folders, and save for later return grunt.option(type, grunt.file.expand({ filter: 'isDirectory', cwd: pluginDir - }, '*')); + }, 'adapt-*')); }, isPluginInstalled: function(pluginName) { - var types = ['components', 'extensions', 'theme', 'menu']; - for (var i = 0, len = types.length; i < len; i++) { - var plugins = grunt.option(types[i]) || this.getInstalledPluginsByType(types[i]); + const types = ['components', 'extensions', 'theme', 'menu']; + for (let i = 0, len = types.length; i < len; i++) { + const plugins = grunt.option(types[i]) || this.getInstalledPluginsByType(types[i]); if (plugins.indexOf(pluginName) !== -1) return true; } return false; @@ -302,16 +253,16 @@ module.exports = function(grunt) { isPathIncluded: function(pluginPath) { pluginPath = pluginPath.replace(convertSlashes, '/'); - var includes = grunt.config('includes'); - var excludes = grunt.config('excludes') || (grunt.config('type') === 'production' && grunt.config('productionExcludes')); + const includes = grunt.config('includes'); + const excludes = grunt.config('excludes') || (grunt.config('type') === 'production' && grunt.config('productionExcludes')); // carry on as normal if no includes/excludes if (!includes && !excludes) return true; // Very basic check to see if the file path string contains any // of the included list of plugin string names. - var isIncluded = includes && pluginPath.search(getIncludedRegExp()) !== -1; - var isExcluded = excludes && pluginPath.search(getExcludedRegExp()) !== -1; + const isIncluded = includes && pluginPath.search(getIncludedRegExp()) !== -1; + const isExcluded = excludes && pluginPath.search(getExcludedRegExp()) !== -1; // Exclude any plugins that don't match any part of the full file path string. if (isExcluded || isIncluded === false) { @@ -321,13 +272,13 @@ module.exports = function(grunt) { // Check the LESS plugins folder exists. // The LESS 'plugins' folder doesn't exist, so add the file, // as the plugin has already been found in the previous check. - var nestedPluginsPath = !!pluginPath.match(/(?:.)+(?:\/less\/plugins)/g); + const nestedPluginsPath = !!pluginPath.match(/(?:.)+(?:\/less\/plugins)/g); if (!nestedPluginsPath) { return true; } // The LESS 'plugins' folder exists, so check that any plugins in this folder are allowed. - var hasPluginSubDirectory = !!pluginPath.match(getNestedIncludedRegExp()); + const hasPluginSubDirectory = !!pluginPath.match(getNestedIncludedRegExp()); if (hasPluginSubDirectory) { return true; } @@ -340,9 +291,9 @@ module.exports = function(grunt) { isPluginScriptSafe: function(pluginPath) { pluginPath = pluginPath.replace(convertSlashes, '/'); - var includes = grunt.config('scriptSafe'); - var isExplicitlyDefined = (includes && pluginPath.search(getScriptSafeRegExp()) !== -1); - var isIncluded = grunt.option('allowscripts') || includes[0] === '*' || isExplicitlyDefined; + const includes = grunt.config('scriptSafe'); + const isExplicitlyDefined = (includes && pluginPath.search(getScriptSafeRegExp()) !== -1); + const isIncluded = grunt.option('allowscripts') || includes[0] === '*' || isExplicitlyDefined; return isIncluded; @@ -357,7 +308,7 @@ module.exports = function(grunt) { }, /** @returns {Framework} */ - getFramework: function({ useOutputData = Boolean(grunt.option('outputdir')) } = {}) { + getFramework: function() { const buildConfig = exports.generateConfigData(); const framework = new Framework({ rootPath: buildConfig.root, @@ -367,7 +318,7 @@ module.exports = function(grunt) { includedFilter: exports.includedFilter, jsonext: buildConfig.jsonext, trackingIdType: buildConfig.trackingIdType, - useOutputData, + useOutputData: true, log: grunt.log.ok, warn: grunt.log.error }); diff --git a/grunt/helpers/Framework.js b/grunt/helpers/Framework.js index 5f547e9a4..b80b512f1 100644 --- a/grunt/helpers/Framework.js +++ b/grunt/helpers/Framework.js @@ -35,7 +35,7 @@ class Framework { includedFilter = function() { return true; }, jsonext = 'json', trackingIdType = 'block', - useOutputData = false, + useOutputData = true, log = console.log, warn = console.warn } = {}) { @@ -106,7 +106,8 @@ class Framework { /** @returns {Plugins} */ getPlugins({ - includedFilter = this.includedFilter + includedFilter = this.includedFilter, + sortBy = 'type' } = {}) { const plugins = new Plugins({ framework: this.framework, @@ -115,7 +116,7 @@ class Framework { log: this.log, warn: this.warn }); - plugins.load(); + plugins.load().sortBy(sortBy); return plugins; } diff --git a/grunt/helpers/Plugins.js b/grunt/helpers/Plugins.js index 02f9a3f33..bfb51bc4f 100644 --- a/grunt/helpers/Plugins.js +++ b/grunt/helpers/Plugins.js @@ -49,8 +49,7 @@ class Plugins { */ get pluginLocations() { return [ - `${this.sourcePath}core/`, - `${this.sourcePath}!(core|${this.courseDir})/*/` + `${this.sourcePath}node_modules/adapt-*` ]; } @@ -58,20 +57,31 @@ class Plugins { load() { this.plugins = globs.sync(this.pluginLocations).map(sourcePath => { if (!this.includedFilter(sourcePath)) { - return; + return null; } - let plugin = new Plugin({ + const plugin = new Plugin({ framework: this.framework, - sourcePath, + sourcePath: sourcePath + '/', log: this.log, warn: this.warn }); plugin.load(); + if (!plugin.isAdaptPlugin) return null; return plugin; }).filter(Boolean); return this; } + sortBy(by = 'type') { + switch (by) { + case 'type': { + const types = { core: 1, component: 2, extension: 3, menu: 4, theme: 5 }; + this.plugins.sort((a, b) => (types[a.type] || 0) - (types[b.type] || 0)); + } + } + return this; + } + /** @returns {JSONFileItem} */ getAllPackageJSONFileItems() { return this.plugins.reduce((items, plugin) => { diff --git a/grunt/helpers/Schemas.js b/grunt/helpers/Schemas.js index 11c51c077..7efb3a9b5 100644 --- a/grunt/helpers/Schemas.js +++ b/grunt/helpers/Schemas.js @@ -66,7 +66,7 @@ class Schemas { const json = fs.readJSONSync(filePath); const isExtensionSchema = Boolean(json.properties.pluginLocations); const InferredSchemaClass = (isExtensionSchema ? ExtensionSchema : ModelSchema); - const inferredSchemaName = (plugin.name === 'core') ? + const inferredSchemaName = (plugin.name === 'core' || plugin.name === 'adapt-contrib-core') ? path.parse(filePath).name.split('.')[0] : // if core, get schema name from file name isExtensionSchema ? plugin.name : // assume schema name is plugin name @@ -137,7 +137,7 @@ class Schemas { if (!extensionParts) { return; } - for (let modelName in extensionParts) { + for (const modelName in extensionParts) { const extensionPart = extensionParts[modelName]; /** * Check if the sub-schema part has any defined properties. @@ -187,7 +187,7 @@ class Schemas { * @returns {ModelSchemas} */ getSchemasForModelJSON(json) { - let schemas = []; + const schemas = []; if (json._type) { if (json._type === 'menu' || json._type === 'page') { schemas.push(this.getModelSchemaByName('contentobject')); diff --git a/grunt/helpers/Translate.js b/grunt/helpers/Translate.js index 1117a877c..a343e6bfc 100644 --- a/grunt/helpers/Translate.js +++ b/grunt/helpers/Translate.js @@ -48,7 +48,7 @@ class Translate { languagePath = path.join(process.cwd(), 'languagefiles'), outputPath = '', courseDir = 'course', - useOutputData = false, + useOutputData = true, isTest = false, log = console.log, warn = console.warn @@ -126,8 +126,8 @@ class Translate { function recursiveJSONProcess(data, level, path, lookupPath, id, file, component) { if (level === 0) { // at the root - id = data.hasOwnProperty('_id') ? data._id : null; - component = data.hasOwnProperty('_component') ? data._component : null; + id = Object.prototype.hasOwnProperty.call(data, '_id') ? data._id : null; + component = Object.prototype.hasOwnProperty.call(data, '_component') ? data._component : null; } if (Array.isArray(data)) { for (let i = 0; i < data.length; i++) { @@ -136,16 +136,16 @@ class Translate { return; } if (typeof data === 'object') { - for (let attribute in data) { + for (const attribute in data) { recursiveJSONProcess(data[attribute], level += 1, path + attribute + '/', lookupPath + attribute + '/', id, file, component); } return; } if (data && translatablePaths.includes(lookupPath)) { exportTextData.push({ - file: file, - id: id, - path: path, + file, + id, + path, value: data }); } @@ -174,7 +174,7 @@ class Translate { fs.mkdirpSync(outputFolder); if (this.format === 'json' || this.format === 'raw') { - const filePath = path.join(outputFolder, `export.json`); + const filePath = path.join(outputFolder, 'export.json'); this.log(`Exporting json to ${filePath}`); fs.writeJSONSync(filePath, exportTextData, { spaces: 2 }); return; @@ -182,7 +182,7 @@ class Translate { // create csv for each file const outputGroupedByFile = exportTextData.reduce((prev, current) => { - if (!prev.hasOwnProperty(current.file)) { + if (!Object.prototype.hasOwnProperty.call(prev, current.file)) { prev[current.file] = []; } prev[current.file].push([`${current.file}/${current.id}${current.path}`, current.value]); @@ -218,7 +218,7 @@ class Translate { async import() { if (this.isTest) { - this.log(`!TEST IMPORT, not changing data.`); + this.log('!TEST IMPORT, not changing data.'); } // check that a targetLang has been specified @@ -282,7 +282,7 @@ class Translate { importData = fs.readJSONSync(langFiles[0]); break; case 'csv': - default: + default: { importData = []; const lines = []; await async.each(langFiles, (filename, done) => { @@ -327,7 +327,7 @@ class Translate { throw new Error(`Too few columns detected: expected 2, found ${line.length} in ${filename}`); } if (line.length !== 2 && !hasWarnedTruncated) { - this.log(`Truncating, too many columns detected: expected 2, found extra ${line.length-2} in ${filename}`); + this.log(`Truncating, too many columns detected: expected 2, found extra ${line.length - 2} in ${filename}`); hasWarnedTruncated = true; } line.length = 2; @@ -339,8 +339,8 @@ class Translate { lines.forEach(line => { const [ file, id, ...path ] = line[0].split('/'); importData.push({ - file: file, - id: id, + file, + id, path: path.filter(Boolean).join('/'), value: line[1] }); @@ -349,17 +349,20 @@ class Translate { throw new Error(`Error processing CSV files: ${err}`); }); break; + } } // check import validity const item = importData[0]; - const isValid = item.hasOwnProperty('file') && item.hasOwnProperty('id') && item.hasOwnProperty('path') && item.hasOwnProperty('value'); + const isValid = Object.prototype.hasOwnProperty.call(item, 'file') && + Object.prototype.hasOwnProperty.call(item, 'id') && + Object.prototype.hasOwnProperty.call(item, 'path') && + Object.prototype.hasOwnProperty.call(item, 'value'); if (!isValid) { throw new Error('Sorry, the imported File is not valid'); } // maintain output order with original translate tasks - // TODO: could probably improve this with read order rather than file order const typeSortLevel = { course: 1, contentObjects: 2, diff --git a/grunt/helpers/data/Language.js b/grunt/helpers/data/Language.js index c72c21d4d..003e42db6 100644 --- a/grunt/helpers/data/Language.js +++ b/grunt/helpers/data/Language.js @@ -262,7 +262,7 @@ class Language { }); this.save(); - this.log(`Tracking IDs ${wasAdded ? `were added to` : `are ok for`} course/${this.name}. The latest tracking ID is ${course._latestTrackingId}\n`); + this.log(`Tracking IDs ${wasAdded ? 'were added to' : 'are ok for'} course/${this.name}. The latest tracking ID is ${course._latestTrackingId}\n`); return this; } diff --git a/grunt/helpers/plugins/Plugin.js b/grunt/helpers/plugins/Plugin.js index ad6670b22..951157955 100644 --- a/grunt/helpers/plugins/Plugin.js +++ b/grunt/helpers/plugins/Plugin.js @@ -65,6 +65,10 @@ class Plugin { return this; } + get isAdaptPlugin() { + return Boolean(this.packageJSONFile.firstFileItem.item.keywords?.includes('adapt-plugin')); + } + /** * Informs the Schemas API from where to fetch the schemas defined in this * plugin. @@ -82,6 +86,7 @@ class Plugin { */ get packageJSONLocations() { return [ + `${this.sourcePath}package.json`, `${this.sourcePath}bower.json` ]; } @@ -101,19 +106,66 @@ class Plugin { * @returns {string} */ get type() { - if (this.name === 'core') { - return 'component'; - } const config = this.packageJSONFile.firstFileItem.item; const configKeys = Object.keys(config); - const typeKeyName = ['component', 'extension', 'menu', 'theme']; - const foundType = configKeys.find(key => typeKeyName.includes(key)); + const typeKeyName = ['core', 'component', 'extension', 'menu', 'theme']; + const foundType = configKeys.find(key => typeKeyName.includes(key)) || (this.packageJSONFile.firstFileItem.item.keywords?.includes('adapt-core') && 'core'); if (!foundType) { throw new Error('Unknown plugin type'); } return foundType; } + /** + * Returns the plugin folder name for adapt_framework <=v5 + * @returns {string} + */ + get legacyFolder() { + const typeToFolderMapping = { + component: 'components', + extension: 'extensions', + menu: 'menu', + theme: 'theme' + }; + return typeToFolderMapping[this.type]; + } + + /** + * Returns the plugin main path. + * @returns {string} + */ + get main() { + const config = this.packageJSONFile.firstFileItem.item; + return config.main; + } + + /** + * Returns the client-side module name mappings + * @returns {Object} + */ + get compilationMap() { + const config = this.packageJSONFile.firstFileItem.item; + return config.adapt_framework?.compilationMap || {}; + } + + /** + * Returns the client-side external library name mappings + * @returns {Object} + */ + get externalPaths() { + const config = this.packageJSONFile.firstFileItem.item; + return config.adapt_framework?.externalPaths || {}; + } + + /** + * Returns the client-side external library name redirections + * @returns {Object} + */ + get runtimeRedirects() { + const config = this.packageJSONFile.firstFileItem.item; + return config.adapt_framework?.runtimeRedirects || {}; + } + /** * @returns {string} */ diff --git a/grunt/helpers/schema/ModelSchema.js b/grunt/helpers/schema/ModelSchema.js index 4bdcd7d82..69514bcc7 100644 --- a/grunt/helpers/schema/ModelSchema.js +++ b/grunt/helpers/schema/ModelSchema.js @@ -17,7 +17,7 @@ class ModelSchema extends GlobalsSchema { next(attributePath + description.name + '/'); break; case 'array': - if (!description.hasOwnProperty('items')) { + if (!Object.prototype.hasOwnProperty.call(description, 'items')) { // handles 'inputType': 'List' edge-case break; } @@ -27,7 +27,7 @@ class ModelSchema extends GlobalsSchema { next(attributePath); } break; - case 'string': + case 'string': { // check if attribute should be picked const value = Boolean(description.translatable); if (value === false) { @@ -36,6 +36,7 @@ class ModelSchema extends GlobalsSchema { // add value to store paths[attributePath + description.name + '/'] = value; break; + } } }, '/'); return Object.keys(paths); diff --git a/grunt/helpers/schema/Schema.js b/grunt/helpers/schema/Schema.js index fd1ef4ee9..72aa331c2 100644 --- a/grunt/helpers/schema/Schema.js +++ b/grunt/helpers/schema/Schema.js @@ -62,9 +62,9 @@ class Schema { const recursiveSchemaNodeProperties = (properties, ...args) => { let rtnValue = false; // process properties - for (let attributeName in properties) { + for (const attributeName in properties) { let description = properties[attributeName]; - if (description.hasOwnProperty('editorOnly') || !description.hasOwnProperty('type')) { + if (Object.prototype.hasOwnProperty.call(description, 'editorOnly') || !Object.prototype.hasOwnProperty.call(description, 'type')) { // go to next attribute continue; } @@ -77,13 +77,14 @@ class Schema { switch (description.type) { case 'object': return recursiveSchemaNodeProperties(description.properties, ...args); - case 'array': + case 'array': { if (description.items.type === 'object') { return recursiveSchemaNodeProperties(description.items.properties, ...args); } const next = {}; next[attributeName] = description.items; return recursiveSchemaNodeProperties(next, ...args); + } } }, stop: () => { @@ -128,8 +129,8 @@ class Schema { let defaultValue; switch (description.type) { case 'object': - defaultValue = description.hasOwnProperty('default') && options.fillObjects ? description.default : {}; - if (!output.hasOwnProperty(description.name)) { + defaultValue = Object.prototype.hasOwnProperty.call(description, 'default') && options.fillObjects ? description.default : {}; + if (!Object.prototype.hasOwnProperty.call(output, description.name)) { output[description.name] = defaultValue; hasChanged = true; } @@ -139,8 +140,8 @@ class Schema { } break; case 'array': - defaultValue = description.hasOwnProperty('default') && options.fillObjects ? description.default : []; - if (!output.hasOwnProperty(description.name)) { + defaultValue = Object.prototype.hasOwnProperty.call(description, 'default') && options.fillObjects ? description.default : []; + if (!Object.prototype.hasOwnProperty.call(output, description.name)) { output[description.name] = defaultValue; hasChanged = true; } @@ -151,7 +152,7 @@ class Schema { break; default: defaultValue = description.default; - if (description.hasOwnProperty('default') && !output.hasOwnProperty(description.name)) { + if (Object.prototype.hasOwnProperty.call(description, 'default') && !Object.prototype.hasOwnProperty.call(output, description.name)) { output[description.name] = defaultValue; hasChanged = true; } diff --git a/grunt/tasks/_log-server.js b/grunt/tasks/_log-server.js new file mode 100644 index 000000000..c807a8bfc --- /dev/null +++ b/grunt/tasks/_log-server.js @@ -0,0 +1,5 @@ +module.exports = function(grunt) { + grunt.registerTask('_log-server', 'Logs out user-defined build variables', function() { + grunt.log.ok(`Starting server in '${grunt.config('outputdir')}' using port ${grunt.config('connect.server.options.port')}`); + }); +}; diff --git a/grunt/tasks/_log-vars.js b/grunt/tasks/_log-vars.js new file mode 100644 index 000000000..100cd707c --- /dev/null +++ b/grunt/tasks/_log-vars.js @@ -0,0 +1,36 @@ +module.exports = function (grunt) { + grunt.registerTask('_log-vars', 'Logs out user-defined build variables', function() { + const includes = grunt.config('includes'); + const excludes = grunt.config('excludes'); + const productionExcludes = grunt.config('productionExcludes'); + + if (includes && excludes) { + grunt.fail.fatal('Cannot specify includes and excludes. Please check your config.json configuration.'); + } + + if (includes) { + const count = includes.length; + grunt.log.writeln('The following will be included in the build:'); + for (let i = 0; i < count; i++) { grunt.log.writeln('- ' + includes[i]); } + grunt.log.writeln(''); + } + if (excludes) { + const count = excludes.length; + grunt.log.writeln('The following will be excluded from the build:'); + for (let i = 0; i < count; i++) { grunt.log.writeln('- ' + excludes[i]); } + grunt.log.writeln(''); + } + if (productionExcludes) { + const count = productionExcludes.length; + grunt.log.writeln('The following will be excluded from the build in production:'); + for (let i = 0; i < count; i++) { grunt.log.writeln('- ' + productionExcludes[i]); } + grunt.log.writeln(''); + } + + grunt.log.ok(`Using source at '${grunt.config('sourcedir')}'`); + grunt.log.ok(`Building to '${grunt.config('outputdir')}'`); + if (grunt.config('theme') !== '**') grunt.log.ok(`Using theme '${grunt.config('theme')}'`); + if (grunt.config('menu') !== '**') grunt.log.ok(`Using menu ${grunt.config('menu')}'`); + if (grunt.config('languages') !== '**') grunt.log.ok(`The following languages will be included in the build '${grunt.config('languages')}'`); + }); +}; diff --git a/grunt/tasks/build-config.js b/grunt/tasks/build-config.js index eb52942b4..8f79b19a1 100644 --- a/grunt/tasks/build-config.js +++ b/grunt/tasks/build-config.js @@ -1,16 +1,16 @@ module.exports = function(grunt) { - var Helpers = require('../helpers')(grunt); - var path = require('path'); - var _ = require('underscore'); + const Helpers = require('../helpers')(grunt); + const path = require('path'); + const _ = require('underscore'); grunt.registerTask('build-config', 'Create build config file', function() { - var options = this.options({}); + const options = this.options({}); - var buildConfig = Helpers.generateConfigData(); - var buildConfigPath = path.join(buildConfig.outputdir, 'adapt/js/build.min.js'); + const buildConfig = Helpers.generateConfigData(); + const buildConfigPath = path.join(buildConfig.outputdir, 'adapt/js/build.min.js'); - var allowedProperties = options.allowedProperties || {}; + const allowedProperties = options.allowedProperties || {}; const framework = Helpers.getFramework(); @@ -30,7 +30,7 @@ module.exports = function(grunt) { }); // remove path specific variables - var hideAttributes = ['outputdir', 'sourcedir', 'root']; + const hideAttributes = ['outputdir', 'sourcedir', 'root']; hideAttributes.forEach(function(attrName) { delete buildConfig[attrName]; }); diff --git a/grunt/tasks/compress.js b/grunt/tasks/compress.js index c0ae4f317..813d65b4c 100644 --- a/grunt/tasks/compress.js +++ b/grunt/tasks/compress.js @@ -5,7 +5,7 @@ module.exports = function(grunt) { const fs = require('fs-extra'); const globs = require('globs'); async function compressImages() { - grunt.log.ok(`Compressing images...`); + grunt.log.ok('Compressing images...'); let imagemin; let imageminJpegtran; let imageminPngquant; @@ -16,7 +16,7 @@ module.exports = function(grunt) { imageminPngquant = require('imagemin-pngquant'); imageminSvgo = require('imagemin-svgo'); } catch (err) { - grunt.log.error(`Optional imagemin dependencies were not installed.`); + grunt.log.error('Optional imagemin dependencies were not installed.'); return; } const sourceFiles = globs.sync(options.images.src); @@ -28,7 +28,7 @@ module.exports = function(grunt) { }), imageminSvgo({ plugins: [ - {removeViewBox: false} + { removeViewBox: false } ] }) ] diff --git a/grunt/tasks/handlebars.js b/grunt/tasks/handlebars.js index 95ed2ac05..9abdf0e9f 100644 --- a/grunt/tasks/handlebars.js +++ b/grunt/tasks/handlebars.js @@ -7,43 +7,43 @@ */ 'use strict'; -var chalk = require('chalk'); -var nsdeclare = require('nsdeclare'); +const chalk = require('chalk'); +const nsdeclare = require('nsdeclare'); module.exports = function(grunt) { - var _ = grunt.util._; + const _ = grunt.util._; // content conversion for templates - var defaultProcessContent = function(content) { + const defaultProcessContent = function(content) { return content; }; // AST processing for templates - var defaultProcessAST = function(ast) { + const defaultProcessAST = function(ast) { return ast; }; // filename conversion for templates - var defaultProcessName = function(name) { + const defaultProcessName = function(name) { return name; }; // filename conversion for partials - var defaultProcessPartialName = function(filepath) { - var pieces = _.last(filepath.split('/')).split('.'); - var name = _(pieces).without(_.last(pieces)).join('.'); // strips file extension + const defaultProcessPartialName = function(filepath) { + const pieces = _.last(filepath.split('/')).split('.'); + let name = _(pieces).without(_.last(pieces)).join('.'); // strips file extension if (name.charAt(0) === '_') { name = name.substr(1, name.length); // strips leading _ character } return name; }; - var extractGlobalNamespace = function(nsDeclarations) { + const extractGlobalNamespace = function(nsDeclarations) { // Extract global namespace from any existing namespace declaration. // The purpose of this method is too fix an issue with AMD when using namespace as a function where the // nsInfo.namespace will contains the last namespace, not the global namespace. - var declarations = _.keys(nsDeclarations); + const declarations = _.keys(nsDeclarations); // no declaration found if (!declarations.length) { @@ -57,12 +57,12 @@ module.exports = function(grunt) { // We only need to take any declaration to extract the global namespace. // Another option might be find the shortest declaration which is the global one. // eslint-disable-next-line no-useless-escape - var matches = declarations[0].match(/(this\[[^\[]+\])/g); + const matches = declarations[0].match(/(this\[[^\[]+\])/g); return matches[0]; }; grunt.registerMultiTask('handlebars', 'Compile handlebars templates and partials.', function() { - var options = this.options({ + const options = this.options({ namespace: 'JST', separator: grunt.util.linefeed + grunt.util.linefeed, wrapped: true, @@ -73,43 +73,43 @@ module.exports = function(grunt) { }); // assign regex for partials directory detection - var partialsPathRegex = options.partialsPathRegex || /./; + const partialsPathRegex = options.partialsPathRegex || /./; // assign regex for partial detection - var isPartialRegex = options.partialRegex || /^_/; + const isPartialRegex = options.partialRegex || /^_/; // assign transformation functions - var processContent = options.processContent || defaultProcessContent; - var processName = options.processName || defaultProcessName; - var processPartialName = options.processPartialName || defaultProcessPartialName; - var processAST = options.processAST || defaultProcessAST; - var useNamespace = options.namespace !== false; + const processContent = options.processContent || defaultProcessContent; + const processName = options.processName || defaultProcessName; + const processPartialName = options.processPartialName || defaultProcessPartialName; + const processAST = options.processAST || defaultProcessAST; + const useNamespace = options.namespace !== false; // assign compiler options - var compilerOptions = options.compilerOptions || {}; - var filesCount = 0; + const compilerOptions = options.compilerOptions || {}; + let filesCount = 0; this.files.forEach(function(f) { - var declarations = []; - var partials = {}; - var templates = {}; + const declarations = []; + const partials = {}; + const templates = {}; // template identifying parts - var ast, compiled, filename; + let ast, compiled, filename; // Namespace info for current template - var nsInfo; + let nsInfo; // Map of already declared namespace parts - var nsDeclarations = {}; + const nsDeclarations = {}; // nsdeclare options when fetching namespace info - var nsDeclareOptions = { + const nsDeclareOptions = { response: 'details', declared: nsDeclarations }; // Just get the namespace info for a given template - var getNamespaceInfo = _.memoize(function(filepath) { + const getNamespaceInfo = _.memoize(function(filepath) { if (!useNamespace) { return undefined; } @@ -129,9 +129,9 @@ module.exports = function(grunt) { return true; }) .forEach(function(filepath) { - var src = processContent(grunt.file.read(filepath), filepath); + const src = processContent(grunt.file.read(filepath), filepath); - var Handlebars = require('handlebars'); + const Handlebars = require('handlebars'); try { // parse the handlebars template into it's AST ast = processAST(Handlebars.parse(src)); @@ -142,13 +142,13 @@ module.exports = function(grunt) { compiled = `Handlebars.template(${compiled})`; } } catch (e) { - const title = `Handlebars failed to compile ${filepath}.` + const title = `Handlebars failed to compile ${filepath}.`; e.message = `${title}\n${e.message}`; console.error(e.toString()); grunt.fail.fatal(title); } - var stringifiedFileName; + let stringifiedFileName; // register partial or add template to namespace if (partialsPathRegex.test(filepath) && isPartialRegex.test(_.last(filepath.split('/')))) { filename = processPartialName(filepath); @@ -186,16 +186,16 @@ module.exports = function(grunt) { } }); - var output = declarations.concat(_.values(partials), _.values(templates)); + const output = declarations.concat(_.values(partials), _.values(templates)); if (output.length < 1) { grunt.log.warn('Destination not written because compiled files were empty.'); } else { if (useNamespace) { if (options.node) { - output.unshift(`Handlebars = glob.Handlebars || require('handlebars');`); - output.unshift(`var glob = ('undefined' === typeof window) ? global : window,`); + output.unshift('Handlebars = glob.Handlebars || require(\'handlebars\');'); + output.unshift('var glob = (\'undefined\' === typeof window) ? global : window,'); - var nodeExport = `if (typeof exports === 'object' && exports) {`; + let nodeExport = 'if (typeof exports === \'object\' && exports) {'; nodeExport += `module.exports = ${nsInfo.namespace};}`; output.push(nodeExport); @@ -206,15 +206,15 @@ module.exports = function(grunt) { if (options.amd) { // Wrap the file in an AMD define fn. if (typeof options.amd === 'boolean') { - output.unshift(`define(['handlebars'], function(Handlebars) {`); + output.unshift('define([\'handlebars\'], function(Handlebars) {'); } else if (typeof options.amd === 'string') { output.unshift(`define(['${options.amd}'], function(Handlebars) {`); } else if (typeof options.amd === 'function') { output.unshift(`define(['${options.amd(filename, ast, compiled)}'], function(Handlebars) {`); } else if (Array.isArray(options.amd)) { // convert options.amd to a string of dependencies for require([...]) - var amdString = ''; - for (var i = 0; i < options.amd.length; i++) { + let amdString = ''; + for (let i = 0; i < options.amd.length; i++) { if (i !== 0) { amdString += ', '; } diff --git a/grunt/tasks/help.js b/grunt/tasks/help.js index 749fa9d43..644d17d6e 100644 --- a/grunt/tasks/help.js +++ b/grunt/tasks/help.js @@ -1,14 +1,14 @@ -var fs = require('fs'); -var path = require('path'); +const fs = require('fs'); +const path = require('path'); /* * Lists out the available tasks along with their descriptions. * Tasks in the array below will not be listed. */ module.exports = function(grunt) { grunt.registerTask('help', function() { - var chalk = require('chalk'); // for some nice colouring - var columnify = require('columnify'); // deals with formatting - var config = grunt.config('help') || { + const chalk = require('chalk'); // for some nice colouring + const columnify = require('columnify'); // deals with formatting + const config = grunt.config('help') || { maxConsoleWidth: '80' }; @@ -18,14 +18,14 @@ module.exports = function(grunt) { grunt.log.writeln('See below for the list of available tasks:'); grunt.log.writeln(''); - var maxTaskLength = 0; - var taskData = getTaskData(); + let maxTaskLength = 0; + const taskData = getTaskData(); - for (var task in taskData) { + for (const task in taskData) { if (task.length > maxTaskLength) maxTaskLength = task.length; } - var options = { + const options = { maxWidth: config.maxConsoleWidth - maxTaskLength, showHeaders: false, columnSplitter: ' ' @@ -41,24 +41,23 @@ module.exports = function(grunt) { }); }; -// TODO: this only includes tasks in /tasks...might not be good enough function getTaskData() { - var taskData = {}; - var files = fs.readdirSync(__dirname); - var re = /grunt.register(Multi)?Task\('(.+?)', '(.*?)',/g; + const taskData = {}; + const files = fs.readdirSync(__dirname); + const re = /grunt.register(Multi)?Task\('(.+?)', '(.*?)',/g; - for (var i = 0, count = files.length; i < count; i++) { + for (let i = 0, count = files.length; i < count; i++) { // reset RegExp re.lastIndex = 0; - var filePath = path.join(__dirname, files[i]); - var fileStat = fs.statSync(filePath); + const filePath = path.join(__dirname, files[i]); + const fileStat = fs.statSync(filePath); // skip directories if (fileStat.isDirectory()) continue; - var file = fs.readFileSync(filePath, 'utf8'); - var match = ''; + const file = fs.readFileSync(filePath, 'utf8'); + let match = ''; while ((match = re.exec(file))) { taskData[match[2]] = match[3] || ''; } diff --git a/grunt/tasks/javascript.js b/grunt/tasks/javascript.js index 8561a6911..04df5b2e0 100644 --- a/grunt/tasks/javascript.js +++ b/grunt/tasks/javascript.js @@ -10,7 +10,14 @@ module.exports = function(grunt) { const fs = require('fs-extra'); const rollup = require('rollup'); const { babel, getBabelOutputPlugin } = require('@rollup/plugin-babel'); + const { nodeResolve } = require('@rollup/plugin-node-resolve'); + const commonjs = require('@rollup/plugin-commonjs'); + const replace = require('@rollup/plugin-replace'); + const { terser } = require('rollup-plugin-terser'); + + const resolve = require('resolve'); const { deflate, unzip, constants } = require('zlib'); + const MagicString = require('magic-string'); const cwd = process.cwd().replace(convertSlashes, '/') + '/'; const isDisableCache = process.argv.includes('--disable-cache'); @@ -127,44 +134,54 @@ module.exports = function(grunt) { const cachePath = buildConfig.cachepath ?? options.cachePath; const isSourceMapped = Boolean(options.generateSourceMaps); const basePath = path.resolve(cwd + '/' + options.baseUrl).replace(convertSlashes, '/') + '/'; + + const framework = Helpers.getFramework(); + const pluginsObject = framework.getPlugins(); + const corePlugin = pluginsObject.plugins.find(plugin => plugin.type === 'core'); + try { await restoreCache(cachePath, basePath); - const pluginsPath = path.resolve(cwd, options.pluginsPath).replace(convertSlashes, '/'); - - // Make src/plugins.js to attach the plugins dynamically - if (!fs.existsSync(pluginsPath)) { - fs.writeFileSync(pluginsPath, ''); - } // Collect all plugin entry points for injection - const pluginPaths = []; - for (let i = 0, l = options.plugins.length; i < l; i++) { - const src = options.plugins[i]; - grunt.file.expand({ - filter: options.pluginsFilter - }, src).forEach(function(bowerJSONPath) { - if (bowerJSONPath === undefined) return; - const pluginPath = path.dirname(bowerJSONPath); - const bowerJSON = grunt.file.readJSON(bowerJSONPath); - const requireJSRootPath = pluginPath.substr(options.baseUrl.length); - const requireJSMainPath = path.join(requireJSRootPath, bowerJSON.main); - const ext = path.extname(requireJSMainPath); - const requireJSMainPathNoExt = requireJSMainPath.slice(0, -ext.length).replace(convertSlashes, '/'); - pluginPaths.push(requireJSMainPathNoExt); - }); - } + const pluginPaths = pluginsObject.plugins.map(plugin => { + if (plugin.name === corePlugin.name) return null; + const requireJSRootPath = plugin.sourcePath.substr(options.baseUrl.length); + const requireJSMainPath = path.join(requireJSRootPath, plugin.main); + const ext = path.extname(requireJSMainPath); + const requireJSMainPathNoExt = requireJSMainPath.slice(0, -ext.length).replace(convertSlashes, '/'); + return requireJSMainPathNoExt; + }).filter(Boolean); // Collect react templates const reactTemplatePaths = []; options.reactTemplates.forEach(pattern => { grunt.file.expand({ filter: options.pluginsFilter - }, pattern).forEach(templatePath => reactTemplatePaths.push(templatePath.replace(convertSlashes, '/'))); + }, pattern).forEach(templatePath => { + const requireJSRootPath = templatePath.substr(options.baseUrl.length); + return reactTemplatePaths.push(requireJSRootPath.replace(convertSlashes, '/')); + }); }); // Process remapping and external model configurations - const mapParts = Object.keys(options.map); - const externalParts = Object.keys(options.external); + const pluginMap = pluginsObject.plugins.reduce((map, plugin) => ({ ...map, ...plugin.compilationMap }), {}); + const pluginExternals = pluginsObject.plugins.reduce((paths, plugin) => ({ ...paths, ...plugin.externalPaths }), {}); + const pluginRedirects = pluginsObject.plugins.reduce((redirects, plugin) => ({ ...redirects, ...plugin.runtimeRedirects }), {}); + const maps = { ...options.map, ...pluginMap }; + const externals = { ...options.external, ...pluginExternals }; + const backwardCompatibleRedirects = pluginsObject.plugins.reduce((redirects, plugin) => { + const part = `${plugin.name}/`; + redirects[part] = redirects[part] || []; + if (plugin.type === 'core') { + redirects[part].push('core/'); + return redirects; + } + redirects[part].push(`${plugin.legacyFolder}/${plugin.name}/`); + return redirects; + }, pluginRedirects); + const mapped = {}; + const mapParts = Object.keys(maps).sort((a, b) => b.localeCompare(a)); + const externalParts = Object.keys(externals); const externalMap = options.externalMap; const findFile = function(filename) { @@ -177,8 +194,6 @@ module.exports = function(grunt) { return filename; }; - const umdImports = options.umdImports.map(filename => findFile(path.resolve(basePath, filename))); - // Rework modules names and inject plugins const adaptLoader = function() { return { @@ -191,13 +206,35 @@ module.exports = function(grunt) { // Ignore as injected rollup module return null; } + if (moduleId.startsWith(basePath)) { + moduleId = moduleId.substr(basePath.length); + } const mapPart = mapParts.find(part => moduleId.startsWith(part)); if (mapPart) { // Remap module, usually coreJS/adapt to core/js/adapt etc - moduleId = moduleId.replace(mapPart, options.map[mapPart]); + const original = moduleId; + moduleId = moduleId.replace(mapPart, maps[mapPart]); + mapped[moduleId] = original; } // Remap ../libraries/ or core/js/libraries/ to libraries/ moduleId = Object.entries(externalMap).reduce((moduleId, [ match, replaceWith ]) => moduleId.replace((new RegExp(match, 'g')), replaceWith), moduleId); + + const externalPart = externalParts.find(part => moduleId.startsWith(part)); + const isEmpty = Boolean(options.external[externalPart]); + if (isEmpty) { + // External module as is defined as 'empty:', libraries/ bower handlebars etc + return { + id: moduleId, + external: true + }; + } + try { + // TODO: Cache resolved external modules + if (!moduleId.includes('adapt-') && resolve.sync(moduleId, { basedir: path.resolve(cwd, options.baseUrl) })) { + return null; + } + } catch (err) {} + const isRelative = (moduleId[0] === '.'); if (isRelative) { if (!parentId) { @@ -215,15 +252,6 @@ module.exports = function(grunt) { external: false }; } - const externalPart = externalParts.find(part => moduleId.startsWith(part)); - const isEmpty = (options.external[externalPart] === 'empty:'); - if (isEmpty) { - // External module as is defined as 'empty:', libraries/ bower handlebars etc - return { - id: moduleId, - external: true - }; - } const isES6Import = !fs.existsSync(moduleId); if (isES6Import) { // ES6 imports start inside ./src so need correcting @@ -254,17 +282,39 @@ module.exports = function(grunt) { if (isRollupHelper) { return null; } - const isPlugins = (moduleId.includes('/' + options.pluginsModule + '.js')); - if (!isPlugins) { + const isStart = (moduleId.includes('/' + options.baseUrl + corePlugin.name + corePlugin.main)); + if (!isStart) { return null; } - // Dynamically construct plugins.js with plugin dependencies - code = `define([${pluginPaths.map(filename => { - return `"${filename}"`; + + const magicString = new MagicString(code); + + const matches = [...String(code).matchAll(/import .*;/g)]; + const last = matches[matches.length - 1]; + const end = last.index + last[0].length; + + const headerPart = `\n${Object.keys(pluginExternals).map(filename => { + return `import '${filename}';\n`; + }).join('')}`; + const original = code.substr(0, end); + const newPart = `\n${pluginPaths.map(filename => { + return `import '${filename}';\n`; }).concat(reactTemplatePaths.map(filename => { - return `"${filename}"`; - })).join(',')}], function() {});`; - return code; + return `import '${filename}';\n`; + })).join('')}`; + + magicString.remove(0, end); + magicString.prepend(headerPart + original + newPart); + + return { + code: magicString.toString(), + map: isSourceMapped + ? magicString.generateMap({ + filename: moduleId, + includeContent: true + }) + : false + }; } }; @@ -274,20 +324,33 @@ module.exports = function(grunt) { grunt.log.ok(`Targets: ${targets || fs.readFileSync('.browserslistrc').toString().replace(/#+[^\n]+\n/gm, '').replace(/\r/g, '').split('\n').filter(Boolean).join(', ')}`); const inputOptions = { - input: './' + options.baseUrl + options.name, + input: './' + options.baseUrl + corePlugin.name + corePlugin.main, shimMissingExports: true, + external: externalParts, + treeshake: false, plugins: [ adaptLoader({}), adaptInjectPlugins({}), + replace({ + 'process.env.NODE_ENV': isSourceMapped ? JSON.stringify('development') : JSON.stringify('production'), + preventAssignment: true + }), + commonjs({ + exclude: ['**/node_modules/adapt-*/**'], + sourceMap: isSourceMapped + }), + !isSourceMapped && terser(), + nodeResolve({ + browser: true, + preferBuiltins: false + }), babel({ babelHelpers: 'bundled', extensions, minified: false, compact: false, comments: false, - exclude: [ - '**/node_modules/**' - ], + exclude: [ '**/node_modules/core-js/**' ], presets: [ [ '@babel/preset-react', @@ -298,7 +361,7 @@ module.exports = function(grunt) { [ '@babel/preset-env', { - useBuiltIns: 'entry', + useBuiltIns: 'usage', corejs: 3, exclude: [ // Breaks lockingModel.js, set function vs set variable @@ -318,8 +381,11 @@ module.exports = function(grunt) { ignoreNestedRequires: true, defineFunctionName: '__AMD', defineModuleId: (moduleId) => moduleId.replace(convertSlashes, '/').replace(basePath, '').replace('.js', ''), + includes: [ + '**/node_modules/adapt-*/**' + ], excludes: [ - '**/templates/**/*.jsx' + '**/node_modules/adapt-*/templates/**/*.jsx' ] } ], @@ -327,7 +393,7 @@ module.exports = function(grunt) { 'transform-react-templates', { includes: [ - '**/templates/**/*.jsx' + '**/node_modules/adapt-*/templates/**/*.jsx' ], importRegisterFunctionFromModule: path.resolve(basePath, 'core/js/reactHelpers.js').replace(convertSlashes, '/'), registerFunctionName: 'register', @@ -336,22 +402,18 @@ module.exports = function(grunt) { ] ] }) - ] + ].filter(Boolean) }; - const umdImport = () => { - return umdImports.map(filename => { - let code = fs.readFileSync(filename).toString(); - code = code - .replace('require("object-assign")', 'Object.assign') - .replace('define.amd', 'define.noop'); - return code; - }).join('\n'); - }; + checkCache([]); + inputOptions.cache = cache; + const bundle = await rollup.rollup(inputOptions); + await saveCache(cachePath, basePath, bundle.cache); const outputOptions = { file: options.out, format: 'amd', + interop: false, plugins: [ !isSourceMapped && getBabelOutputPlugin({ minified: true, @@ -360,13 +422,41 @@ module.exports = function(grunt) { allowAllFormats: true }) ].filter(Boolean), - intro: umdImport(), - footer: `// Allow ES export default to be exported as amd modules -window.__AMD = function(id, value) { - window.define(id, function() { return value; }); // define for external use - window.require([id]); // force module to load - return value; // return for export -};`, + banner: `(function() { +// This section is for legacy requirejs support +var compilationMap = ${JSON.stringify(mapped, null, 2)}; +var externalPaths = ${JSON.stringify(pluginExternals, null, 2)}; +requirejs.config({ + paths: externalPaths +}); +var runtimeRedirects = ${JSON.stringify(backwardCompatibleRedirects, null, 2)}; +var runtimeRedirectParts = Object.keys(runtimeRedirects); +window.__AMD = function(defineId, value) { + function register(id) { + window.define(id, function() { return value; }); + window.require([id]); + } + var compilationId = compilationMap[defineId]; + if (compilationId) register(compilationId) + var redirectPart; + for (var i = 0, l = runtimeRedirectParts.length; i < l; i++) { + var part = runtimeRedirectParts[i]; + if (defineId.substr(0, part.length) !== part) continue; + redirectPart = part; + break; + } + if (redirectPart) { + var runtimePartRedirects = runtimeRedirects[redirectPart]; + for (var i = 0, l = runtimePartRedirects.length; i < l; i++) { + var runtimeRedirectPart = runtimePartRedirects[i]; + var redirectId = defineId.replace(redirectPart, runtimeRedirectPart); + register(redirectId); + } + } + register(defineId) + return value; +}; +})();`, sourcemap: isSourceMapped, sourcemapPathTransform: (relativeSourcePath) => { // Rework sourcemap paths to overlay at the appropriate root @@ -378,10 +468,6 @@ window.__AMD = function(id, value) { strict: isStrictMode }; - checkCache([pluginsPath]); - inputOptions.cache = cache; - const bundle = await rollup.rollup(inputOptions); - await saveCache(cachePath, basePath, bundle.cache); await bundle.write(outputOptions); // Remove old sourcemap if no longer required diff --git a/grunt/tasks/less.js b/grunt/tasks/less.js index 82bdc220f..fca7144f9 100644 --- a/grunt/tasks/less.js +++ b/grunt/tasks/less.js @@ -1,46 +1,46 @@ module.exports = function(grunt) { - var convertSlashes = /\\/g; + const convertSlashes = /\\/g; grunt.registerMultiTask('less', 'Compile LESS files to CSS', function() { - var less = require('less'); - var _ = require('underscore'); - var path = require('path'); - var Visitors = require('./less/visitors'); - var done = this.async(); - var options = this.options({}); - - var rootPath = path.join(path.resolve(options.baseUrl), '../') + const less = require('less'); + const _ = require('underscore'); + const path = require('path'); + const Visitors = require('./less/visitors'); + const done = this.async(); + const options = this.options({}); + + const rootPath = path.join(path.resolve(options.baseUrl), '../') .replace(convertSlashes, '/'); - var cwd = process.cwd(); + const cwd = process.cwd(); - var imports = ''; - var src = ''; + let imports = ''; + let src = ''; if (options.src && options.config) { - var screenSize = { - 'small': 520, - 'medium': 760, - 'large': 900 + let screenSize = { + small: 520, + medium: 760, + large: 900 }; try { - var configjson = JSON.parse(grunt.file.read(options.config) + const configjson = JSON.parse(grunt.file.read(options.config) .toString()); screenSize = configjson.screenSize || screenSize; } catch (e) {} - var screensizeEmThreshold = 300; - var baseFontSize = 16; + const screensizeEmThreshold = 300; + const baseFontSize = 16; // Check to see if the screen size value is larger than the em threshold // If value is larger than em threshold, convert value (assumed px) to ems // Otherwise assume value is in ems - var largeEmBreakpoint = screenSize.large > screensizeEmThreshold ? + const largeEmBreakpoint = screenSize.large > screensizeEmThreshold ? screenSize.large / baseFontSize : screenSize.large; - var mediumEmBreakpoint = screenSize.medium > screensizeEmThreshold ? + const mediumEmBreakpoint = screenSize.medium > screensizeEmThreshold ? screenSize.medium / baseFontSize : screenSize.medium; - var smallEmBreakpoint = screenSize.small > screensizeEmThreshold ? + const smallEmBreakpoint = screenSize.small > screensizeEmThreshold ? screenSize.small / baseFontSize : screenSize.small; @@ -58,7 +58,7 @@ module.exports = function(grunt) { }, src) .forEach(function(lessPath) { lessPath = path.normalize(lessPath); - var trimmed = lessPath.substr(rootPath.length); + const trimmed = lessPath.substr(rootPath.length); imports += "@import '" + trimmed + "';\n"; }); } @@ -74,24 +74,24 @@ module.exports = function(grunt) { }, src) .forEach(function(lessPath) { lessPath = path.normalize(lessPath); - var trimmed = lessPath.substr(rootPath.length); + const trimmed = lessPath.substr(rootPath.length); imports += "@import '" + trimmed + "';\n"; }); } } - var sourcemaps; + let sourcemaps; if (options.sourcemaps) { sourcemaps = { - 'sourceMap': { - 'sourceMapFileInline': false, - 'outputSourceFiles': true, - 'sourceMapBasepath': 'src', - 'sourceMapURL': options.mapFilename + sourceMap: { + sourceMapFileInline: false, + outputSourceFiles: true, + sourceMapBasepath: 'src/node_modules', + sourceMapURL: options.mapFilename } }; } else { - var sourceMapPath = path.join(options.dest, options.mapFilename); + const sourceMapPath = path.join(options.dest, options.mapFilename); if (grunt.file.exists(sourceMapPath)) { grunt.file.delete(sourceMapPath, { force: true @@ -104,11 +104,11 @@ module.exports = function(grunt) { } } - var visitors = new Visitors(options); + const visitors = new Visitors(options); - var lessOptions = _.extend({ - 'compress': options.compress, - 'plugins': [ + const lessOptions = _.extend({ + compress: options.compress, + plugins: [ visitors ] }, sourcemaps); diff --git a/grunt/tasks/less/replaceUrls.js b/grunt/tasks/less/replaceUrls.js index 2d58f48ec..be0f4826f 100644 --- a/grunt/tasks/less/replaceUrls.js +++ b/grunt/tasks/less/replaceUrls.js @@ -1,6 +1,6 @@ 'use strict'; -var less = require('less'); +const less = require('less'); class ReplaceUrls { @@ -46,7 +46,7 @@ class ReplaceUrls { } this._options.replaceUrls.forEach(function(replaceObject) { - var matches = URLNode.value.value.match(replaceObject.find); + const matches = URLNode.value.value.match(replaceObject.find); if (!matches) return; // If action required by user, warn them @@ -66,8 +66,8 @@ class ReplaceUrls { } flushLog() { - for (var filename in this._actions) { - var action = this._actions[filename]; + for (const filename in this._actions) { + const action = this._actions[filename]; // Output blank line to separate outputs console.log(''); console.log('Take action:', action.replaceObject.action); diff --git a/grunt/tasks/less/visitors.js b/grunt/tasks/less/visitors.js index f8b423bed..05b77afe0 100644 --- a/grunt/tasks/less/visitors.js +++ b/grunt/tasks/less/visitors.js @@ -1,6 +1,6 @@ 'use strict'; -var ReplaceUrls = require('./replaceUrls'); +const ReplaceUrls = require('./replaceUrls'); class LessPluginPreprocess { diff --git a/grunt/tasks/scripts.js b/grunt/tasks/scripts.js index 69eafbcd9..4d27a1cbb 100644 --- a/grunt/tasks/scripts.js +++ b/grunt/tasks/scripts.js @@ -4,18 +4,18 @@ module.exports = function(grunt) { if (!mode) return; - var path = require('path'); - var fs = require('fs'); - var options = this.options({}); - var chalk = require('chalk'); - var async = require('async'); - var taskCallback = this.async(); + const path = require('path'); + const fs = require('fs'); + const options = this.options({}); + const chalk = require('chalk'); + const async = require('async'); + const taskCallback = this.async(); if (options.plugins) { - var paths = []; - for (var i = 0, l = options.plugins.length; i < l; i++) { - var src = options.plugins[i]; + let paths = []; + for (let i = 0, l = options.plugins.length; i < l; i++) { + const src = options.plugins[i]; paths = paths.concat(grunt.file.expand({ filter: options.pluginsFilter }, src)); @@ -24,21 +24,21 @@ module.exports = function(grunt) { async.each(paths, function(bowerJSONPath, done) { if (bowerJSONPath === undefined) return done(); - var bowerJSON = grunt.file.readJSON(bowerJSONPath); + const bowerJSON = grunt.file.readJSON(bowerJSONPath); if (!bowerJSON.scripts) return done(); - var plugindir = path.dirname(bowerJSONPath); - var script = bowerJSON.scripts[mode]; + const plugindir = path.dirname(bowerJSONPath); + const script = bowerJSON.scripts[mode]; if (!script) return done(); try { - var buildModule = require(path.join(process.cwd(), plugindir, script)); + const buildModule = require(path.join(process.cwd(), plugindir, script)); buildModule(fs, path, grunt.log.writeln, { sourcedir: options.sourcedir, outputdir: options.outputdir, - plugindir: plugindir + plugindir }, done); } catch (err) { grunt.log.writeln(chalk.red(err)); diff --git a/grunt/tasks/server-build.js b/grunt/tasks/server-build.js index 33cebe188..464c49fa1 100644 --- a/grunt/tasks/server-build.js +++ b/grunt/tasks/server-build.js @@ -3,7 +3,7 @@ */ module.exports = function(grunt) { grunt.registerTask('server-build', 'Builds the course without JSON [used by the authoring tool]', function(mode) { - var requireMode = (mode === 'dev') ? 'dev' : 'compile'; + const requireMode = (mode === 'dev') ? 'dev' : 'compile'; grunt.task.run([ '_log-vars', diff --git a/grunt/tasks/translate.js b/grunt/tasks/translate.js index e2f7c73bb..35594ee0a 100644 --- a/grunt/tasks/translate.js +++ b/grunt/tasks/translate.js @@ -31,16 +31,16 @@ module.exports = function(grunt) { translate.import().then(next, err => { switch (err.number) { case 10001: // Target language option is missing - grunt.log.error(err + `\nPlease add --targetLang=`); + grunt.log.error(err + '\nPlease add --targetLang='); break; case 10002: // Import source folder does not exist. - grunt.log.error(err + `\nPlease create this folder in the languagefiles directory.`); + grunt.log.error(err + '\nPlease create this folder in the languagefiles directory.'); break; case 10003: // Import destination folder already exists. - grunt.log.error(err + `\nTo replace the content in this folder, please add a --replace flag to the grunt task.`); + grunt.log.error(err + '\nTo replace the content in this folder, please add a --replace flag to the grunt task.'); break; case 10014: // Could not detect delimiter - grunt.log.error(err + `\nTo specify a delimiter, please add a --csvDelimiter=',' flag to the grunt task. Only , ; | tab and space are supported.`); + grunt.log.error(err + '\nTo specify a delimiter, please add a --csvDelimiter=\',\' flag to the grunt task. Only , ; | tab and space are supported.'); break; default: grunt.log.error(err); diff --git a/jsconfig.json b/jsconfig.json index 0ccb50e26..9a02aa814 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,15 +1,14 @@ { "include": [ - "src/core/js/**/*.js", - "src/*/*/js/**/*.js" + "src/node_modules/adapt-*/js/**/*.js", + "src/node_modules/adapt-*/templates/**/*.jsx", ], "compilerOptions": { "module": "amd", - "target": "es2015", + "target": "es2020", "baseUrl": "src/" }, "exclude": [ - "node_modules", - "**/node_modules/*" + ] } diff --git a/package-lock.json b/package-lock.json index cfe623e2f..06642520c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,195 +1,133 @@ { "name": "adapt_framework", - "version": "5.20.2", + "version": "6.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "requires": { - "@babel/highlight": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - } + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.8.tgz", - "integrity": "sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==" + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" }, "@babel/core": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.10.tgz", - "integrity": "sha512-pbiIdZbCiMx/MM6toR+OfXarYix3uz0oVsnNtfdAGTcCTu3w/JGF8JhirevXLBJUu0WguSZI12qpKnx7EeMyLA==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.10", - "@babel/types": "^7.16.8", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "json5": "^2.2.1", + "semver": "^6.3.0" } }, "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" }, "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } } } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" } }, "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.10.tgz", - "integrity": "sha512-wDeej0pu3WN/ffTxMNCPW5UCiOav8IcLRxSIyp/9+IF2xJUM9h/OYjg0IJLHaL6F8oU8kqMz9nc1vryXhMsgXg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", + "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", - "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", + "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^4.7.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", + "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -197,699 +135,337 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" }, "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", - "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.9" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", + "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", "requires": { - "@babel/types": "^7.16.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.9" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==" + }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", + "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", + "requires": { + "@babel/helper-function-name": "^7.18.9", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.11", + "@babel/types": "^7.18.10" } }, "@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.10.tgz", - "integrity": "sha512-Sm/S9Or6nN8uiFsQU1yodyDW3MWXQhFeqzMPM+t8MJjM+pLsnFVxFZzkpXKvUXh+Gz9cbMoYYs484+Jw/NTEFQ==" + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", - "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", + "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/plugin-transform-parameters": "^7.18.8" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-private-methods": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz", - "integrity": "sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-async-generators": { @@ -914,13 +490,6 @@ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-syntax-dynamic-import": { @@ -939,6 +508,14 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", + "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -948,18 +525,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -1016,13 +586,6 @@ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-syntax-top-level-await": { @@ -1031,645 +594,361 @@ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "requires": { "@babel/helper-plugin-utils": "^7.14.5" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", + "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", + "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-destructuring": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", - "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", + "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", + "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - } } }, "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", + "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" } }, "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", - "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", + "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.10" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" + "@babel/plugin-transform-react-jsx": "^7.18.6" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", "requires": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", + "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/preset-env": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.10.tgz", - "integrity": "sha512-iCac3fZn9oOcLqc1N2/copPiX7aoxzsvjeDdXoZobrlbQ6YGgS3bL9HyldOJ8V8AY5P7pFynCATrn7M4dMw0Yg==", - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.7", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "requires": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1679,66 +958,45 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "core-js-compat": "^3.22.1", "semver": "^6.3.0" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/preset-modules": { @@ -1754,99 +1012,60 @@ } }, "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" } }, "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/traverse": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.10.tgz", - "integrity": "sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.10", - "@babel/types": "^7.16.8", + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", + "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.11", + "@babel/types": "^7.18.10", "debug": "^4.1.0", "globals": "^11.1.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", - "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" } }, @@ -1874,25 +1093,34 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -1907,14 +1135,11 @@ "argparse": "^2.0.1" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "type-fest": { "version": "0.20.2", @@ -1925,9 +1150,9 @@ } }, "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -1935,66 +1160,126 @@ "minimatch": "^3.0.4" } }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "requires": { - "@nodelib/fs.stat": "2.0.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" }, "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "requires": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "@octokit/auth-token": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.0.tgz", - "integrity": "sha512-MDNFUBcJIptB9At7HiV7VCvU3NcL4GnfCQaP8C5lrxWrRPMJBnemYtehaKSOlaM7AYxeRyj9etenu8LVpSpVaQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", + "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", "dev": true, "requires": { - "@octokit/types": "^6.0.3" + "@octokit/types": "^7.0.0" } }, "@octokit/core": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.4.tgz", - "integrity": "sha512-sUpR/hc4Gc7K34o60bWC7WUH6Q7T6ftZ2dUmepSyJr9PRF76/qqkWjE2SOEzCqLA5W83SaISymwKtxks+96hPQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz", + "integrity": "sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA==", "dev": true, "requires": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", "@octokit/request": "^6.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^6.0.3", + "@octokit/types": "^7.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" } }, "@octokit/endpoint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.0.tgz", - "integrity": "sha512-Kz/mIkOTjs9rV50hf/JK9pIDl4aGwAtT8pry6Rpy+hVXkAPhXanNQRxMoq6AeRgDCZR6t/A1zKniY2V1YhrzlQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.1.tgz", + "integrity": "sha512-/wTXAJwt0HzJ2IeE4kQXO+mBScfzyCkI0hMtkIaqyXd9zg76OpOfNQfHL9FlaxAV2RsNiOXZibVWloy8EexENg==", "dev": true, "requires": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" }, @@ -2008,29 +1293,29 @@ } }, "@octokit/graphql": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.0.tgz", - "integrity": "sha512-1ZZ8tX4lUEcLPvHagfIVu5S2xpHYXAmgN0+95eAOPoaVPzCfUXJtA5vASafcpWcO86ze0Pzn30TAx72aB2aguQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", + "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", "dev": true, "requires": { "@octokit/request": "^6.0.0", - "@octokit/types": "^6.0.3", + "@octokit/types": "^7.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/openapi-types": { - "version": "12.10.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.10.1.tgz", - "integrity": "sha512-P+SukKanjFY0ZhsK6wSVnQmxTP2eVPPE8OPSNuxaMYtgVzwJZgfGdwlYjf4RlRU4vLEw4ts2fsE2icG4nZ5ddQ==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.2.0.tgz", + "integrity": "sha512-1BhjsVrCe2cyE36Rorpeq331bcYzdb9ksCpkFdAN6RVtW67YdO3Pl4YXDC5dF2D1ia76MssJdn5RV+Gj9Fu7dQ==", "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-3.0.0.tgz", - "integrity": "sha512-fvw0Q5IXnn60D32sKeLIxgXCEZ7BTSAjJd8cFAE6QU5qUp0xo7LjFUjjX1J5D7HgN355CN4EXE4+Q1/96JaNUA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.0.0.tgz", + "integrity": "sha512-g4GJMt/7VDmIMMdQenN6bmsmRoZca1c7IxOdF2yMiMwQYrE2bmmypGQeQSD5rsaffsFMCUS7Br4pMVZamareYA==", "dev": true, "requires": { - "@octokit/types": "^6.39.0" + "@octokit/types": "^7.0.0" } }, "@octokit/plugin-request-log": { @@ -2040,24 +1325,24 @@ "dev": true }, "@octokit/plugin-rest-endpoint-methods": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.1.2.tgz", - "integrity": "sha512-sAfSKtLHNq0UQ2iFuI41I6m5SK6bnKFRJ5kUjDRVbmQXiRVi4aQiIcgG4cM7bt+bhSiWL4HwnTxDkWFlKeKClA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.3.0.tgz", + "integrity": "sha512-qEu2wn6E7hqluZwIEUnDxWROvKjov3zMIAi4H4d7cmKWNMeBprEXZzJe8pE5eStUYC1ysGhD0B7L6IeG1Rfb+g==", "dev": true, "requires": { - "@octokit/types": "^6.40.0", + "@octokit/types": "^7.0.0", "deprecation": "^2.3.1" } }, "@octokit/request": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.0.tgz", - "integrity": "sha512-7IAmHnaezZrgUqtRShMlByJK33MT9ZDnMRgZjnRrRV9a/jzzFwKGz0vxhFU6i7VMLraYcQ1qmcAOin37Kryq+Q==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", + "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", "dev": true, "requires": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^6.16.1", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" @@ -2072,35 +1357,35 @@ } }, "@octokit/request-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.0.tgz", - "integrity": "sha512-WBtpzm9lR8z4IHIMtOqr6XwfkGvMOOILNLxsWvDwtzm/n7f5AWuqJTXQXdDtOvPfTDrH4TPhEvW2qMlR4JFA2w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", + "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", "dev": true, "requires": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^7.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, "@octokit/rest": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.3.tgz", - "integrity": "sha512-5arkTsnnRT7/sbI4fqgSJ35KiFaN7zQm0uQiQtivNQLI8RQx8EHwJCajcTUwmaCMNDg7tdCvqAnc7uvHHPxrtQ==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz", + "integrity": "sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA==", "dev": true, "requires": { "@octokit/core": "^4.0.0", - "@octokit/plugin-paginate-rest": "^3.0.0", + "@octokit/plugin-paginate-rest": "^4.0.0", "@octokit/plugin-request-log": "^1.0.4", "@octokit/plugin-rest-endpoint-methods": "^6.0.0" } }, "@octokit/types": { - "version": "6.40.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.40.0.tgz", - "integrity": "sha512-MFZOU5r8SwgJWDMhrLUSvyJPtVsqA6VnbVI3TNbsmw+Jnvrktzvq2fYES/6RiJA/5Ykdwq4mJmtlYUfW7CGjmw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.1.0.tgz", + "integrity": "sha512-+ClA0jRc9zGFj5mfQeQNfgTlelzhpAexbAueQG1t2Xn8yhgnsjkF8bgLcUUpwrpqkv296uXyiGwkqXRSU7KYzQ==", "dev": true, "requires": { - "@octokit/openapi-types": "^12.10.0" + "@octokit/openapi-types": "^13.1.0" } }, "@prantlf/jsonlint": { @@ -2110,38 +1395,76 @@ "requires": { "ajv": "6.10.2", "commander": "4.0.1" + } + }, + "@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "22.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz", + "integrity": "sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "commondir": "^1.0.1", + "estree-walker": "^2.0.1", + "glob": "^7.1.6", + "is-reference": "^1.2.1", + "magic-string": "^0.25.7", + "resolve": "^1.17.0" }, "dependencies": { - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "sourcemap-codec": "^1.4.8" } - }, - "commander": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", - "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==" - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" } } }, - "@rollup/plugin-babel": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", - "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", + "@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/plugin-replace": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-4.0.0.tgz", + "integrity": "sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } } }, "@rollup/pluginutils": { @@ -2602,12 +1925,30 @@ "p-is-promise": "^3.0.0" } }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, "p-is-promise": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", "dev": true }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -2678,9 +2019,9 @@ "dev": true }, "@types/backbone": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@types/backbone/-/backbone-1.4.14.tgz", - "integrity": "sha512-85ldQ99fiYTJFBlZuAJRaCdvTZKZ2p1fSs3fVf+6Ub6k1X0g0hNJ0qJ/2FOByyyAQYLtbEz3shX5taKQfBKBDw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@types/backbone/-/backbone-1.4.15.tgz", + "integrity": "sha512-WWeKtYlsIMtDyLbbhkb96taJMEbfQBnuz7yw1u0pkphCOtksemoWhIXhK74VRCY9hbjnsH3rsJu2uUiFtnsEYg==", "requires": { "@types/jquery": "*", "@types/underscore": "*" @@ -2692,9 +2033,9 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "optional": true, "requires": { "@types/minimatch": "*", @@ -2702,9 +2043,9 @@ } }, "@types/jquery": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.13.tgz", - "integrity": "sha512-ZxJrup8nz/ZxcU0vantG+TPdboMhB24jad2uSap50zE7Q9rUeYlCF25kFMSmHR33qoeOgqcdHEp3roaookC0Sg==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", "requires": { "@types/sizzle": "*" } @@ -2716,9 +2057,9 @@ "dev": true }, "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "@types/minimist": { "version": "1.2.2", @@ -2727,10 +2068,9 @@ "dev": true }, "@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", - "optional": true + "version": "18.7.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.6.tgz", + "integrity": "sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -2745,11 +2085,19 @@ "dev": true }, "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==", "optional": true }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "requires": { + "@types/node": "*" + } + }, "@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", @@ -2782,19 +2130,18 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" }, "acorn-jsx": { "version": "5.3.2", @@ -2819,23 +2166,14 @@ "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - } } }, "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "requires": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -2859,9 +2197,9 @@ } }, "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -2914,7 +2252,7 @@ "archive-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", - "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", "optional": true, "requires": { "file-type": "^4.2.0" @@ -2923,7 +2261,7 @@ "file-type": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", - "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", + "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==", "optional": true } } @@ -2939,7 +2277,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" } } }, @@ -2962,7 +2300,7 @@ "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "optional": true }, "array-ify": { @@ -3018,6 +2356,19 @@ "es-shim-unscopables": "^1.0.0" } }, + "array.prototype.reduce": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz", + "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==", + "optional": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, "arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -3026,15 +2377,15 @@ "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "integrity": "sha512-N+aAxov+CKVS3JuhDIQFr24XvZvwE96Wlhk9dytTg/GmwWoghdOvR8dspx8MVz71O+Y0pA3UPqHF68D6iy8UvQ==", "requires": { "util": "0.10.3" } }, "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "async-limiter": { "version": "1.0.1", @@ -3050,36 +2401,36 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", + "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.2", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", - "integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.20.0" + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.2" } }, "babel-plugin-transform-amd-to-es6": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-amd-to-es6/-/babel-plugin-transform-amd-to-es6-0.6.1.tgz", - "integrity": "sha512-r9QxY3RC/uPGaYf5cyZ34+ZMtQO5srB+pxfaO4HOz5rm0iwu6SAbeDTwQD1DnwqZr+egVTpseSbjwPGyZZJcGw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-amd-to-es6/-/babel-plugin-transform-amd-to-es6-0.6.2.tgz", + "integrity": "sha512-WOSRwdKyyGDKYKyB2BGXJnO1SXlQMKmVPInNHRPprAq9EZVWGR6tY8MrARuNfEyIUiRHtdH+JGewZiDHm9hz5g==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "minimatch": "^3.0.4" @@ -3095,9 +2446,9 @@ } }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-js": { "version": "1.5.1", @@ -3116,12 +2467,12 @@ "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, "beeper": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=" + "integrity": "sha512-3vqtKL1N45I5dV0RdssXZG7X6pCqQrWPNOlBPZPrd+QkE2HEhR57Z04m0KtpbsZH73j+a3F8UD1TQnn+ExTvIA==" }, "before-after-hook": { "version": "2.2.2", @@ -3273,7 +2624,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "optional": true } } @@ -3312,7 +2663,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "optional": true } } @@ -3329,7 +2680,7 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "optional": true } } @@ -3367,13 +2718,13 @@ "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "optional": true }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", "optional": true, "requires": { "prepend-http": "^2.0.0" @@ -3394,7 +2745,7 @@ "body": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", - "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "integrity": "sha512-chUsBxGRtuElD6fmw1gHLpvnKdVLK302peeFa9ZqAEk8TyzZ3fygLyUEDDPTJvL9+Bor0dIwn6ePOsRM2y0zQQ==", "requires": { "continuable-cache": "^0.3.1", "error": "^7.0.0", @@ -3405,7 +2756,7 @@ "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "optional": true }, "bottleneck": { @@ -3432,15 +2783,14 @@ } }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" } }, "buffer": { @@ -3472,15 +2822,25 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "optional": true }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", "optional": true }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==" + }, "builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", @@ -3519,12 +2879,12 @@ "bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=" + "integrity": "sha512-/x68VkHLeTl3/Ll8IvxdwzhrT+IyKc52e/oyHhA2RwqPqswSnjVbSddfPRwAsJtbilMAPSRWwAlpxdYsSWOTKQ==" }, "cacheable-request": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", "optional": true, "requires": { "clone-response": "1.0.2", @@ -3539,7 +2899,7 @@ "lowercase-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", "optional": true } } @@ -3562,13 +2922,13 @@ "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", "optional": true }, "camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", "optional": true, "requires": { "camelcase": "^2.0.0", @@ -3576,9 +2936,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001300", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz", - "integrity": "sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA==" + "version": "1.0.30001378", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001378.tgz", + "integrity": "sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==" }, "cardinal": { "version": "2.1.1", @@ -3637,34 +2997,17 @@ "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==" }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", "optional": true, "requires": { "mimic-response": "^1.0.0" @@ -3697,27 +3040,31 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" + "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==" }, "columnify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", + "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", "requires": { - "strip-ansi": "^3.0.0", + "strip-ansi": "^6.0.1", "wcwidth": "^1.0.0" } }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "optional": true + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", + "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, "compare-func": { "version": "2.0.0", @@ -3732,12 +3079,12 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "optional": true, "requires": { "ini": "^1.3.4", @@ -3766,7 +3113,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -3778,22 +3125,30 @@ "console-stream": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", - "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=", + "integrity": "sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==", "optional": true }, "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "optional": true + } } }, "continuable-cache": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", - "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=" + "integrity": "sha512-TF30kpKhTH8AGCG3dut0rdd/19B7Z+qCnrMoBLpyQu/2drZdNrrpcjPEoJeSVsQM+8KmWG5O56oPDjSSUsuTyA==" }, "conventional-changelog-angular": { "version": "5.0.13", @@ -3867,11 +3222,14 @@ "lru-cache": "^6.0.0" } }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } }, "lru-cache": { "version": "6.0.0", @@ -3930,6 +3288,15 @@ } } }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -4130,11 +3497,14 @@ "lru-cache": "^6.0.0" } }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } }, "lru-cache": { "version": "6.0.0", @@ -4176,10 +3546,19 @@ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" } }, "parse-json": { @@ -4349,19 +3728,19 @@ } }, "copy-anything": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", - "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "requires": { - "is-what": "^3.12.0" + "is-what": "^3.14.1" } }, "core-js-compat": { - "version": "3.20.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz", - "integrity": "sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", + "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", "requires": { - "browserslist": "^4.19.1", + "browserslist": "^4.21.3", "semver": "7.0.0" }, "dependencies": { @@ -4373,9 +3752,9 @@ } }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "cosmiconfig": { "version": "7.0.1", @@ -4401,19 +3780,13 @@ "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true } } }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", "optional": true, "requires": { "lru-cache": "^4.0.1", @@ -4472,14 +3845,6 @@ "requires": { "mdn-data": "2.0.4", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } } }, "css-what": { @@ -4498,9 +3863,9 @@ }, "dependencies": { "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "optional": true, "requires": { "mdn-data": "2.0.14", @@ -4512,12 +3877,6 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true } } }, @@ -4550,7 +3909,7 @@ "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", "optional": true, "requires": { "array-find-index": "^1.0.1" @@ -4559,7 +3918,7 @@ "date-time": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/date-time/-/date-time-1.1.0.tgz", - "integrity": "sha1-GIdtC9pMGf5w3Tv0sDTygbEqQLY=", + "integrity": "sha512-RrxZQ06cdKe7YQ5oqIxs3GMc7W3vXscy7Ds+aZIqmxA59QnVtTiCseA4jbzVUub9xCbo9GuYVZo0OrZLYXnnmw==", "requires": { "time-zone": "^0.1.0" } @@ -4570,9 +3929,9 @@ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -4580,7 +3939,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" }, "decamelize-keys": { "version": "1.1.0", @@ -4595,7 +3954,7 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", "optional": true }, "decompress": { @@ -4626,17 +3985,23 @@ "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "optional": true } } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "optional": true } } }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", "optional": true, "requires": { "mimic-response": "^1.0.0" @@ -4656,7 +4021,7 @@ "file-type": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", "optional": true } } @@ -4696,7 +4061,7 @@ "file-type": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", "optional": true } } @@ -4704,7 +4069,7 @@ "decompress-unzip": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", "optional": true, "requires": { "file-type": "^3.8.0", @@ -4716,18 +4081,24 @@ "file-type": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", "optional": true }, "get-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", "optional": true, "requires": { "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "optional": true } } }, @@ -4738,15 +4109,20 @@ "dev": true }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", "requires": { "clone": "^1.0.2" } @@ -4813,14 +4189,14 @@ "dev": true }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==" }, "dir-glob": { "version": "3.0.1", @@ -4828,13 +4204,6 @@ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "requires": { "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - } } }, "doctrine": { @@ -4857,9 +4226,9 @@ }, "dependencies": { "domelementtype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", - "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "optional": true } } @@ -4911,7 +4280,7 @@ "file-type": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", "optional": true }, "make-dir": { @@ -4922,12 +4291,6 @@ "requires": { "pify": "^3.0.0" } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "optional": true } } }, @@ -4946,9 +4309,9 @@ } }, "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", "optional": true }, "duplexify": { @@ -4973,12 +4336,12 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "electron-to-chromium": { - "version": "1.4.49", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.49.tgz", - "integrity": "sha512-k/0t1TRfonHIp8TJKfjBu2cKj8MqYTiEpOhci+q7CVEE5xnCQnx1pTa+V8b/sdhe4S3PR4p4iceEQWhGrKQORQ==" + "version": "1.4.224", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.224.tgz", + "integrity": "sha512-dOujC5Yzj0nOVE23iD5HKqrRSDj2SD7RazpZS/b/WX85MtO6/LzKDF4TlYZTBteB+7fvSg5JpWh0sN7fImNF8w==" }, "emoji-regex": { "version": "8.0.0", @@ -4989,7 +4352,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "end-of-stream": { "version": "1.4.4", @@ -5158,6 +4521,12 @@ "unbox-primitive": "^1.0.2" } }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "optional": true + }, "es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", @@ -5185,21 +4554,22 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.22.0.tgz", + "integrity": "sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -5209,14 +4579,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.3.3", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -5235,12 +4608,6 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -5257,9 +4624,9 @@ "dev": true }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -5292,36 +4659,26 @@ "which": "^2.0.1" } }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, "glob-parent": { @@ -5334,14 +4691,28 @@ } }, "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5357,15 +4728,39 @@ "argparse": "^2.0.1" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" } }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -5387,14 +4782,11 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "supports-color": { "version": "7.2.0", @@ -5450,13 +4842,12 @@ } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -5467,66 +4858,34 @@ "requires": { "ms": "^2.1.1" } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true } } }, "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, "requires": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "eslint-plugin-import": { @@ -5568,15 +4927,6 @@ "esutils": "^2.0.2" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5601,48 +4951,6 @@ "semver": "^7.3.7" }, "dependencies": { - "eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5652,15 +4960,6 @@ "yallist": "^4.0.0" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "semver": { "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", @@ -5690,6 +4989,33 @@ "minimatch": "^3.0.4", "resolve": "^1.10.1", "semver": "^6.1.0" + }, + "dependencies": { + "eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "dev": true, + "requires": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } } }, "eslint-plugin-promise": { @@ -5726,26 +5052,18 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" + "esutils": "^2.0.2" } }, "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } @@ -5767,12 +5085,6 @@ } } }, - "eslint-plugin-standard": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz", - "integrity": "sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==", - "dev": true - }, "eslint-scope": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", @@ -5784,18 +5096,18 @@ } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } @@ -5807,12 +5119,12 @@ "dev": true }, "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", "dev": true, "requires": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } @@ -5859,17 +5171,17 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "eventemitter2": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=" + "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ==" }, "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==" }, "exec-buffer": { "version": "3.2.0", @@ -5884,12 +5196,6 @@ "tempfile": "^2.0.0" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "optional": true - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5904,7 +5210,7 @@ "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", "optional": true, "requires": { "cross-spawn": "^5.0.1", @@ -5923,17 +5229,25 @@ "optional": true, "requires": { "pify": "^2.2.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "optional": true + } } }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "requires": { "homedir-polyfill": "^1.0.1" } @@ -5972,10 +5286,9 @@ } }, "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==" }, "fast-glob": { "version": "3.2.11", @@ -5997,19 +5310,22 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fast-xml-parser": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", - "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==", - "optional": true + "version": "3.21.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz", + "integrity": "sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==", + "optional": true, + "requires": { + "strnum": "^1.0.4" + } }, "fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "requires": { "reusify": "^1.0.4" } @@ -6017,7 +5333,7 @@ "faye-websocket": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", "requires": { "websocket-driver": ">=0.5.1" } @@ -6025,7 +5341,7 @@ "fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "optional": true, "requires": { "pend": "~1.2.0" @@ -6034,7 +5350,7 @@ "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", "requires": { "escape-string-regexp": "^1.0.5", "object-assign": "^4.1.0" @@ -6052,7 +5368,7 @@ "file-sync-cmp": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=" + "integrity": "sha512-0k45oWBokCqh2MOexeYKpyqmGKG+8mQ2Wd8iawx+uWd/weWJQAZ6SoPybagdCI4xFisag8iAR77WPm4h3pTfxA==" }, "file-type": { "version": "12.4.2", @@ -6063,7 +5379,7 @@ "filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", "optional": true }, "filenamify": { @@ -6110,14 +5426,14 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", "optional": true, "requires": { "path-exists": "^2.0.0", @@ -6136,7 +5452,7 @@ "findup-sync": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "integrity": "sha512-z8Nrwhi6wzxNMIbxlrTzuUW6KWuKkogZ/7OdDVq+0+kxn77KUH1nipx8iU6suqkHqc4y6n7a9A8IpmxY/pTjWg==", "requires": { "glob": "~5.0.0" }, @@ -6144,7 +5460,7 @@ "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", "requires": { "inflight": "^1.0.4", "inherits": "2", @@ -6183,20 +5499,20 @@ } }, "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", "dev": true }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" }, "for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "requires": { "for-in": "^1.0.1" } @@ -6204,12 +5520,12 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -6240,7 +5556,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.2", @@ -6267,7 +5583,7 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, "functions-have-names": { @@ -6295,13 +5611,13 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, "get-proxy": { @@ -6316,13 +5632,13 @@ "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", "optional": true }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", "optional": true }, "get-symbol-description": { @@ -6365,14 +5681,14 @@ } }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -6383,16 +5699,6 @@ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" - }, - "dependencies": { - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - } } }, "global-modules": { @@ -6408,7 +5714,7 @@ "global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "requires": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -6447,13 +5753,36 @@ } }, "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", "requires": { "glob": "~7.1.1", - "lodash": "~4.17.10", + "lodash": "^4.17.21", "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "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" + } + }, + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "got": { @@ -6479,9 +5808,15 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true }, "grunt": { "version": "1.5.3", @@ -6505,6 +5840,19 @@ "rimraf": "~3.0.2" }, "dependencies": { + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "requires": { + "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" + } + }, "grunt-cli": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz", @@ -6535,6 +5883,14 @@ "requires": { "safer-buffer": ">= 2.1.2 < 3" } + }, + "minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "requires": { + "brace-expansion": "^1.1.7" + } } } }, @@ -6547,32 +5903,17 @@ "async": "^3.1.0", "indent-string": "^4.0.0", "pad-stream": "^2.0.0" - }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - } } }, "grunt-contrib-clean": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-2.0.0.tgz", - "integrity": "sha512-g5ZD3ORk6gMa5ugZosLDQl3dZO7cI3R14U75hTM+dVLVxdMNJCPVmwf9OUt4v4eWgpKKWWoVK9DZc1amJp4nQw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-2.0.1.tgz", + "integrity": "sha512-uRvnXfhiZt8akb/ZRDHJpQQtkkVkqc/opWO4Po/9ehC2hPxgptB9S6JHDC/Nxswo4CJSM0iFPT/Iym3cEMWzKA==", "requires": { - "async": "^2.6.1", + "async": "^3.2.3", "rimraf": "^2.6.2" }, "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -6600,9 +5941,9 @@ }, "dependencies": { "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "requires": { "lodash": "^4.17.14" } @@ -6612,21 +5953,26 @@ "grunt-contrib-copy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", + "integrity": "sha512-gFRFUB0ZbLcjKb67Magz1yOHGBkyU6uL29hiEW1tdQ9gQt72NuMKIy/kS6dsCbV0cZ0maNCb0s6y+uT1FKU7jA==", "requires": { "chalk": "^1.1.1", "file-sync-cmp": "^0.1.0" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -6635,10 +5981,18 @@ "supports-color": "^2.0.0" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" } } }, @@ -6665,9 +6019,9 @@ }, "dependencies": { "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "requires": { "lodash": "^4.17.14" } @@ -6677,12 +6031,12 @@ "grunt-file-order": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/grunt-file-order/-/grunt-file-order-1.0.0.tgz", - "integrity": "sha1-cP6KqqrUnijEnlo+Bdixffq2DQ8=" + "integrity": "sha512-ZTJwhwPTmZb9NEQRiq9jxQXzeNgkGuuQBf4J8uNnqx3ifhBHzZmSLqmroNzU/Qgwdvl0kviZJ8TfqoMpihhNKw==" }, "grunt-json-minify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/grunt-json-minify/-/grunt-json-minify-1.1.0.tgz", - "integrity": "sha1-oguaMBbR6P7Qx5Vgx3uUcB9k9vs=" + "integrity": "sha512-JQae6Fr6wT19cres4jh24uyiMggDv6I/uPpU9w5c9zu2no05VgBvghPZiIulUiFFlFcRh+4828QCHrSoJ8JQKw==" }, "grunt-jsonlint": { "version": "2.1.3", @@ -6789,7 +6143,7 @@ "grunt-newer": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/grunt-newer/-/grunt-newer-1.3.0.tgz", - "integrity": "sha1-g8y3od2ny9irI7BZAk6+YUrS80I=", + "integrity": "sha512-HEbcE3pTueSx2IT/WR9F/pJaGioy1+bDu0RPS1JZn8cPHaAGc8BIkcbEHato9Bhoy6ip1R43wY4gfgO6d7utnA==", "requires": { "async": "^1.5.2", "rimraf": "^2.5.2" @@ -6798,7 +6152,7 @@ "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" }, "rimraf": { "version": "2.7.1", @@ -6869,7 +6223,7 @@ "gzip-size": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "integrity": "sha512-6s8trQiK+OMzSaCSVXX+iqIcLV9tC+E73jrJrJTyS4h/AJhlxHvzFKqM1YLDJWRGgHX8uLkBeXkA0njNj39L4w==", "requires": { "duplexer": "^0.1.1" } @@ -6884,13 +6238,6 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "hard-rejection": { @@ -6910,9 +6257,16 @@ "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "requires": { "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + } } }, "has-bigints": { @@ -6923,7 +6277,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-property-descriptors": { "version": "1.0.0", @@ -6978,7 +6332,7 @@ "hooker": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=" + "integrity": "sha512-t+UerCsQviSymAInD01Pw+Dn/usmz1sRO+3Zk1+lx8eg+WKpD2ulcwWqHHL0+aseRBr+3+vIhiG1K1JTwaIcTA==" }, "hosted-git-info": { "version": "2.8.9", @@ -6994,7 +6348,7 @@ "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -7005,19 +6359,19 @@ "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" } } }, "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" }, "http-proxy-agent": { "version": "5.0.0", @@ -7033,7 +6387,7 @@ "https-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" + "integrity": "sha512-EjDQFbgJr1vDD/175UJeSX3ncQ3+RUnCL5NkthQGHvF4VNHlzTy8ifJfTqz47qiPRqaFH58+CbuG3x51WuB1XQ==" }, "https-proxy-agent": { "version": "5.0.1", @@ -7073,7 +6427,7 @@ "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "optional": true }, "imagemin": { @@ -7153,9 +6507,9 @@ } }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "optional": true }, "npm-run-path": { @@ -7252,22 +6606,18 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "optional": true, - "requires": { - "repeating": "^2.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -7296,12 +6646,12 @@ "interpret": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==" }, "into-stream": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", "optional": true, "requires": { "from2": "^2.1.1", @@ -7311,7 +6661,7 @@ "irregular-plurals": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", - "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=" + "integrity": "sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q==" }, "is-absolute": { "version": "1.0.0", @@ -7325,7 +6675,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-bigint": { "version": "1.0.4", @@ -7344,28 +6694,39 @@ "has-tostringtag": "^1.0.0" } }, + "is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "requires": { + "builtin-modules": "^3.3.0" + } + }, "is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "requires": { "has": "^1.0.3" } }, "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" }, "is-finite": { "version": "1.1.0", @@ -7389,13 +6750,18 @@ "is-jpg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", - "integrity": "sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc=", + "integrity": "sha512-ODlO0ruzhkzD3sdynIainVP5eoOFNN85rxA1+cwwnPe4dKyX0r5+hxNO5XpCrxlHcmb9vkOit9mhRD2JVuimHg==", "optional": true }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, "is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", "optional": true }, "is-negative-zero": { @@ -7451,7 +6817,7 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" }, "is-plain-object": { "version": "2.0.4", @@ -7467,6 +6833,14 @@ "integrity": "sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g==", "optional": true }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "requires": { + "@types/estree": "*" + } + }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -7501,7 +6875,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "optional": true }, "is-string": { @@ -7513,20 +6887,20 @@ } }, "is-svg": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.3.1.tgz", - "integrity": "sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.3.2.tgz", + "integrity": "sha512-mM90duy00JGMyjqIVHu9gNTjywdZV+8qNasX8cm/EEYZ53PHDgajvbBwNVvty5dwSAxLUD3p3bdo+7sR/UMrpw==", "optional": true, "requires": { "fast-xml-parser": "^3.19.0" } }, "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" } }, "is-text-path": { @@ -7549,7 +6923,7 @@ "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "optional": true }, "is-weakref": { @@ -7573,22 +6947,22 @@ "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" }, "issue-parser": { "version": "6.0.0", @@ -7619,10 +6993,35 @@ "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", "dev": true }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "jit-grunt": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/jit-grunt/-/jit-grunt-0.10.0.tgz", - "integrity": "sha1-AIw6f+Hpa9DYTiYOofoXg0V/ecI=" + "integrity": "sha512-eT/f4c9wgZ3buXB7X1JY1w6uNtAV0bhrbOGf/mFmBb0CDNLUETJ/VRoydayWOI54tOoam0cz9RooVCn3QY1WoA==" }, "jpegtran-bin": { "version": "5.0.2", @@ -7670,7 +7069,7 @@ "jshint-stylish": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz", - "integrity": "sha1-JCCCosA1rgP9gQROBXDMQgjPbmE=", + "integrity": "sha512-7ySPIM1/gONcJ1isbd1IPKuBzQ/iDTvofILFSsIaMrWZUO7OJkV9kdU0O6O1pxM+bNj/9mbJ31LyXgQgOhIa0A==", "requires": { "beeper": "^1.1.0", "chalk": "^1.0.0", @@ -7680,15 +7079,20 @@ "text-table": "^0.2.0" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -7697,17 +7101,25 @@ "supports-color": "^2.0.0" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" } } }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", "optional": true }, "json-parse-better-errors": { @@ -7730,7 +7142,7 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { @@ -7740,17 +7152,14 @@ "dev": true }, "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "requires": { "graceful-fs": "^4.1.6" } @@ -7762,13 +7171,13 @@ "dev": true }, "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" } }, "junk": { @@ -7828,12 +7237,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "optional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true } } }, @@ -7942,7 +7345,7 @@ "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", "optional": true, "requires": { "graceful-fs": "^4.1.2", @@ -7950,15 +7353,30 @@ "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "optional": true + } } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "^4.1.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + } } }, "lodash": { @@ -7975,7 +7393,7 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "lodash.escaperegexp": { "version": "4.1.2", @@ -7986,7 +7404,7 @@ "lodash.isfinite": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", - "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=" + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==" }, "lodash.ismatch": { "version": "4.4.0", @@ -8021,20 +7439,25 @@ "log-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", "requires": { "chalk": "^1.0.0" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -8043,17 +7466,25 @@ "supports-color": "^2.0.0" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" } } }, "logalot": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", - "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", + "integrity": "sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==", "optional": true, "requires": { "figures": "^1.3.5", @@ -8063,7 +7494,7 @@ "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", "optional": true }, "loose-envify": { @@ -8078,7 +7509,7 @@ "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", "optional": true, "requires": { "currently-unhandled": "^0.4.1", @@ -8094,13 +7525,24 @@ "lpad-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", - "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", + "integrity": "sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==", "optional": true, "requires": { "get-stdin": "^4.0.1", "indent-string": "^2.1.0", "longest": "^1.0.0", "meow": "^3.3.0" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "optional": true, + "requires": { + "repeating": "^2.0.0" + } + } } }, "lru-cache": { @@ -8113,6 +7555,14 @@ "yallist": "^2.1.2" } }, + "magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -8133,17 +7583,17 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==" }, "marked": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz", - "integrity": "sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA==", + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.18.tgz", + "integrity": "sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw==", "dev": true }, "marked-terminal": { @@ -8171,7 +7621,7 @@ "maxmin": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", - "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", + "integrity": "sha512-NWlApBjW9az9qRPaeg7CX4sQBWwytqz32bIEo1PW9pRW+kBP9KLRfJO3UC+TV31EcQZEUq7eMzikC7zt3zPJcw==", "requires": { "chalk": "^1.0.0", "figures": "^1.0.1", @@ -8179,15 +7629,20 @@ "pretty-bytes": "^3.0.0" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -8196,10 +7651,18 @@ "supports-color": "^2.0.0" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" } } }, @@ -8212,7 +7675,7 @@ "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", "optional": true, "requires": { "camelcase-keys": "^2.0.0", @@ -8244,13 +7707,6 @@ "requires": { "braces": "^3.0.2", "picomatch": "^2.3.1" - }, - "dependencies": { - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - } } }, "mime": { @@ -8259,16 +7715,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "1.46.0" + "mime-db": "1.52.0" } }, "mimic-fn": { @@ -8289,9 +7745,9 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -8359,7 +7815,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, @@ -8381,21 +7837,21 @@ } }, "native-request": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", - "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.1.0.tgz", + "integrity": "sha512-uZ5rQaeRn15XmpgE0xoPL8YWqcX90VtCFglYwAgkvKM5e8fog+vePLAhHxuuv/gRkrQxIeh5U3q9sMNUrENqWw==", "optional": true }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "neo-async": { "version": "2.6.2", @@ -8435,7 +7891,7 @@ "node-http2": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/node-http2/-/node-http2-4.0.1.tgz", - "integrity": "sha1-Fk/1O13SLITwrxQrh3xerraAmVk=", + "integrity": "sha512-AP21BjQsOAMTCJCCkdXUUMa1o7/Qx+yAWHnHZbCf8RhZ+hKMjB9rUkAtnfayk/yGj1qapZ5eBHZJBpk1dqdNlw==", "requires": { "assert": "1.4.1", "events": "1.1.1", @@ -8448,14 +7904,14 @@ } }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", "requires": { "abbrev": "1" } @@ -8492,13 +7948,13 @@ "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", "optional": true }, "sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", "optional": true, "requires": { "is-plain-obj": "^1.0.0" @@ -8507,19 +7963,19 @@ } }, "npm": { - "version": "8.13.2", - "resolved": "https://registry.npmjs.org/npm/-/npm-8.13.2.tgz", - "integrity": "sha512-aS6q/QKxkw9mTX8gR7Ft38BcRkW1i+h3sI1yAFmfQ30Yl1a1G4ZX3oNGDzaLCilU5ThFZQBS1F4ZSZsrVxJ7HA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-8.18.0.tgz", + "integrity": "sha512-G07/yKvNUwhwxYhk8BxcuDPB/4s+y755i6CnH3lf9LQBHP5siUx66WbuNGWEnN3xaBER4+IR3OWApKX7eBO5Dw==", "dev": true, "requires": { "@isaacs/string-locale-compare": "^1.1.0", "@npmcli/arborist": "^5.0.4", "@npmcli/ci-detect": "^2.0.0", - "@npmcli/config": "^4.1.0", + "@npmcli/config": "^4.2.1", "@npmcli/fs": "^2.1.0", "@npmcli/map-workspaces": "^2.0.3", "@npmcli/package-json": "^2.0.0", - "@npmcli/run-script": "^4.1.5", + "@npmcli/run-script": "^4.2.1", "abbrev": "~1.1.1", "archy": "~1.0.0", "cacache": "^16.1.1", @@ -8547,24 +8003,25 @@ "libnpmsearch": "^5.0.2", "libnpmteam": "^4.0.2", "libnpmversion": "^3.0.1", - "make-fetch-happen": "^10.1.8", + "make-fetch-happen": "^10.2.0", "minipass": "^3.1.6", "minipass-pipeline": "^1.2.4", "mkdirp": "^1.0.4", "mkdirp-infer-owner": "^2.0.0", "ms": "^2.1.2", - "node-gyp": "^9.0.0", - "nopt": "^5.0.0", + "node-gyp": "^9.1.0", + "nopt": "^6.0.0", "npm-audit-report": "^3.0.0", "npm-install-checks": "^5.0.0", - "npm-package-arg": "^9.0.2", + "npm-package-arg": "^9.1.0", "npm-pick-manifest": "^7.0.1", - "npm-profile": "^6.1.0", - "npm-registry-fetch": "^13.1.1", + "npm-profile": "^6.2.0", + "npm-registry-fetch": "^13.3.1", "npm-user-validate": "^1.0.1", "npmlog": "^6.0.2", "opener": "^1.5.2", - "pacote": "^13.6.1", + "p-map": "^4.0.0", + "pacote": "^13.6.2", "parse-conflict-json": "^2.0.2", "proc-log": "^2.0.1", "qrcode-terminal": "^0.12.0", @@ -8601,7 +8058,7 @@ "dev": true }, "@npmcli/arborist": { - "version": "5.2.3", + "version": "5.6.0", "bundled": true, "dev": true, "requires": { @@ -8613,15 +8070,17 @@ "@npmcli/name-from-folder": "^1.0.1", "@npmcli/node-gyp": "^2.0.0", "@npmcli/package-json": "^2.0.0", + "@npmcli/query": "^1.1.1", "@npmcli/run-script": "^4.1.3", "bin-links": "^3.0.0", "cacache": "^16.0.6", "common-ancestor-path": "^1.0.1", "json-parse-even-better-errors": "^2.3.1", "json-stringify-nice": "^1.1.4", + "minimatch": "^5.1.0", "mkdirp": "^1.0.4", "mkdirp-infer-owner": "^2.0.0", - "nopt": "^5.0.0", + "nopt": "^6.0.0", "npm-install-checks": "^5.0.0", "npm-package-arg": "^9.0.0", "npm-pick-manifest": "^7.0.0", @@ -8647,14 +8106,14 @@ "dev": true }, "@npmcli/config": { - "version": "4.1.0", + "version": "4.2.1", "bundled": true, "dev": true, "requires": { "@npmcli/map-workspaces": "^2.0.2", "ini": "^3.0.0", "mkdirp-infer-owner": "^2.0.0", - "nopt": "^5.0.0", + "nopt": "^6.0.0", "proc-log": "^2.0.0", "read-package-json-fast": "^2.0.3", "semver": "^7.3.5", @@ -8670,7 +8129,7 @@ } }, "@npmcli/fs": { - "version": "2.1.0", + "version": "2.1.2", "bundled": true, "dev": true, "requires": { @@ -8679,7 +8138,7 @@ } }, "@npmcli/git": { - "version": "3.0.1", + "version": "3.0.2", "bundled": true, "dev": true, "requires": { @@ -8704,7 +8163,7 @@ } }, "@npmcli/map-workspaces": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "requires": { @@ -8726,7 +8185,7 @@ } }, "@npmcli/move-file": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "requires": { @@ -8760,8 +8219,18 @@ "infer-owner": "^1.0.4" } }, + "@npmcli/query": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "npm-package-arg": "^9.1.0", + "postcss-selector-parser": "^6.0.10", + "semver": "^7.3.7" + } + }, "@npmcli/run-script": { - "version": "4.1.5", + "version": "4.2.1", "bundled": true, "dev": true, "requires": { @@ -8833,7 +8302,7 @@ "dev": true }, "are-we-there-yet": { - "version": "3.0.0", + "version": "3.0.1", "bundled": true, "dev": true, "requires": { @@ -8852,7 +8321,7 @@ "dev": true }, "bin-links": { - "version": "3.0.1", + "version": "3.0.2", "bundled": true, "dev": true, "requires": { @@ -8886,7 +8355,7 @@ } }, "cacache": { - "version": "16.1.1", + "version": "16.1.2", "bundled": true, "dev": true, "requires": { @@ -9010,6 +8479,11 @@ "bundled": true, "dev": true }, + "cssesc": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, "debug": { "version": "4.3.4", "bundled": true, @@ -9265,7 +8739,7 @@ } }, "ip": { - "version": "1.1.8", + "version": "2.0.0", "bundled": true, "dev": true }, @@ -9283,7 +8757,7 @@ } }, "is-core-module": { - "version": "2.9.0", + "version": "2.10.0", "bundled": true, "dev": true, "requires": { @@ -9321,12 +8795,12 @@ "dev": true }, "just-diff": { - "version": "5.0.2", + "version": "5.1.1", "bundled": true, "dev": true }, "just-diff-apply": { - "version": "5.2.0", + "version": "5.4.1", "bundled": true, "dev": true }, @@ -9357,13 +8831,14 @@ } }, "libnpmexec": { - "version": "4.0.8", + "version": "4.0.11", "bundled": true, "dev": true, "requires": { "@npmcli/arborist": "^5.0.0", "@npmcli/ci-detect": "^2.0.0", - "@npmcli/run-script": "^4.1.3", + "@npmcli/fs": "^2.1.1", + "@npmcli/run-script": "^4.2.0", "chalk": "^4.1.0", "mkdirp-infer-owner": "^2.0.0", "npm-package-arg": "^9.0.1", @@ -9372,6 +8847,7 @@ "proc-log": "^2.0.0", "read": "^1.0.7", "read-package-json-fast": "^2.0.2", + "semver": "^7.3.7", "walk-up-path": "^1.0.0" } }, @@ -9453,12 +8929,12 @@ } }, "lru-cache": { - "version": "7.9.0", + "version": "7.13.2", "bundled": true, "dev": true }, "make-fetch-happen": { - "version": "10.1.8", + "version": "10.2.1", "bundled": true, "dev": true, "requires": { @@ -9489,7 +8965,7 @@ } }, "minipass": { - "version": "3.1.6", + "version": "3.3.4", "bundled": true, "dev": true, "requires": { @@ -9505,7 +8981,7 @@ } }, "minipass-fetch": { - "version": "2.1.0", + "version": "2.1.1", "bundled": true, "dev": true, "requires": { @@ -9588,7 +9064,7 @@ "dev": true }, "node-gyp": { - "version": "9.0.0", + "version": "9.1.0", "bundled": true, "dev": true, "requires": { @@ -9633,19 +9109,27 @@ "requires": { "brace-expansion": "^1.1.7" } + }, + "nopt": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1" + } } } }, "nopt": { - "version": "5.0.0", + "version": "6.0.0", "bundled": true, "dev": true, "requires": { - "abbrev": "1" + "abbrev": "^1.0.0" } }, "normalize-package-data": { - "version": "4.0.0", + "version": "4.0.1", "bundled": true, "dev": true, "requires": { @@ -9685,11 +9169,12 @@ "dev": true }, "npm-package-arg": { - "version": "9.0.2", + "version": "9.1.0", "bundled": true, "dev": true, "requires": { "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", "semver": "^7.3.5", "validate-npm-package-name": "^4.0.0" } @@ -9717,7 +9202,7 @@ } }, "npm-profile": { - "version": "6.1.0", + "version": "6.2.1", "bundled": true, "dev": true, "requires": { @@ -9726,7 +9211,7 @@ } }, "npm-registry-fetch": { - "version": "13.1.1", + "version": "13.3.1", "bundled": true, "dev": true, "requires": { @@ -9777,7 +9262,7 @@ } }, "pacote": { - "version": "13.6.1", + "version": "13.6.2", "bundled": true, "dev": true, "requires": { @@ -9819,6 +9304,15 @@ "bundled": true, "dev": true }, + "postcss-selector-parser": { + "version": "6.0.10", + "bundled": true, + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, "proc-log": { "version": "2.0.1", "bundled": true, @@ -10005,11 +9499,11 @@ "dev": true }, "socks": { - "version": "2.6.2", + "version": "2.7.0", "bundled": true, "dev": true, "requires": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" } }, @@ -10194,7 +9688,7 @@ "dev": true }, "write-file-atomic": { - "version": "4.0.1", + "version": "4.0.2", "bundled": true, "dev": true, "requires": { @@ -10217,20 +9711,12 @@ "requires": { "config-chain": "^1.1.11", "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "optional": true - } } }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "optional": true, "requires": { "path-key": "^2.0.0" @@ -10239,7 +9725,7 @@ "nsdeclare": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/nsdeclare/-/nsdeclare-0.1.0.tgz", - "integrity": "sha1-ENqhU2QjgtPPLAGpFvTrIKEosZ8=" + "integrity": "sha512-Wb+BpXFfacpp1cgrQoO5Q2wKHACuMlUE6uayGFFLF3yVuXejBp5Rflk991hWvTQbUuQslXTIvBNOHqYTvzBSjA==" }, "nth-check": { "version": "1.0.2", @@ -10253,12 +9739,12 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { "version": "1.12.2", @@ -10271,20 +9757,20 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "requires": { "array-each": "^1.0.1", "array-slice": "^1.0.0", @@ -10315,14 +9801,15 @@ } }, "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", + "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", "optional": true, "requires": { + "array.prototype.reduce": "^1.0.4", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.1" } }, "object.hasown": { @@ -10338,7 +9825,7 @@ "object.map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", "requires": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" @@ -10347,7 +9834,7 @@ "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "requires": { "isobject": "^3.0.1" } @@ -10365,7 +9852,7 @@ "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "requires": { "ee-first": "1.1.1" } @@ -10378,7 +9865,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } @@ -10433,12 +9920,12 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==" }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" }, "osenv": { "version": "0.1.5", @@ -10473,7 +9960,7 @@ "p-event": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", - "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", + "integrity": "sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==", "optional": true, "requires": { "p-timeout": "^1.1.1" @@ -10491,13 +9978,13 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "optional": true }, "p-is-promise": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", "optional": true }, "p-limit": { @@ -10509,12 +9996,11 @@ } }, "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "^2.2.0" + "p-limit": "^2.0.0" } }, "p-map": { @@ -10526,7 +10012,7 @@ "p-map-series": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", - "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", + "integrity": "sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==", "optional": true, "requires": { "p-reduce": "^1.0.0" @@ -10541,7 +10027,7 @@ "p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "integrity": "sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==", "optional": true }, "p-retry": { @@ -10557,7 +10043,7 @@ "p-timeout": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==", "optional": true, "requires": { "p-finally": "^1.0.0" @@ -10571,7 +10057,7 @@ "pad-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-2.0.0.tgz", - "integrity": "sha1-O+vzTNpJWXISpmny/kF9ZGp8ulY=", + "integrity": "sha512-3QeQw19K48BQzUGZ9dEf/slX5Jbfy5ZeBTma2XICketO7kFNK7omF00riVcecOKN+DSiJZcK2em1eYKaVOeXKg==", "requires": { "pumpify": "^1.3.3", "split2": "^2.1.1", @@ -10590,7 +10076,7 @@ "parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "requires": { "is-absolute": "^1.0.0", "map-cache": "^0.2.0", @@ -10600,7 +10086,7 @@ "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "optional": true, "requires": { "error-ex": "^1.2.0" @@ -10609,12 +10095,12 @@ "parse-ms": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", - "integrity": "sha1-VjRtR0nXjyNDDKDHE4UK75GqNh0=" + "integrity": "sha512-LpH1Cf5EYuVjkBvCDBYvkUPh+iv2bk3FHflxHkpCYT0/FZ1d3N3uJaLiHr4yGuMcFUhv6eAivitTvWZI4B/chg==" }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==" }, "parseurl": { "version": "1.3.3", @@ -10624,7 +10110,7 @@ "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", "optional": true, "requires": { "pinkie-promise": "^2.0.0" @@ -10633,12 +10119,12 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "optional": true }, "path-parse": { @@ -10649,7 +10135,7 @@ "path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "requires": { "path-root-regex": "^0.1.0" } @@ -10657,23 +10143,17 @@ "path-root-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==" }, "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "optional": true }, "picocolors": { @@ -10682,26 +10162,25 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "optional": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "optional": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "optional": true, "requires": { "pinkie": "^2.0.0" @@ -10788,12 +10267,6 @@ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -10817,49 +10290,26 @@ "requires": { "locate-path": "^3.0.0" } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" } } }, "plur": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", - "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", + "integrity": "sha512-WhcHk576xg9y/iv6RWOuroZgsqvCbJN+XGvAypCJwLAYs2iWDp5LUmvaCdV6JR2O0SMBf8l6p7A94AyLCFVMlQ==", "requires": { "irregular-plurals": "^1.0.0" } }, "pngquant-bin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-6.0.0.tgz", - "integrity": "sha512-oXWAS9MQ9iiDAJRdAZ9KO1mC5UwhzKkJsmetiu0iqIjJuW7JsuLhmc4JdRm7uJkIWRzIAou/Vq2VcjfJwz30Ow==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-6.0.1.tgz", + "integrity": "sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ==", "optional": true, "requires": { "bin-build": "^3.0.0", "bin-wrapper": "^4.0.1", - "execa": "^4.0.0", - "logalot": "^2.0.0" + "execa": "^4.0.0" }, "dependencies": { "cross-spawn": { @@ -10900,9 +10350,9 @@ } }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "optional": true }, "npm-run-path": { @@ -10966,9 +10416,9 @@ }, "dependencies": { "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "requires": { "lodash": "^4.17.14" } @@ -10984,13 +10434,13 @@ "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", "optional": true }, "pretty-bytes": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", - "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", + "integrity": "sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==", "requires": { "number-is-nan": "^1.0.0" } @@ -10998,7 +10448,7 @@ "pretty-ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz", - "integrity": "sha1-QlfCVt8/sLRR1q/6qwIYhBJpgdw=", + "integrity": "sha512-H2enpsxzDhuzRl3zeSQpQMirn8dB0Z/gxW96j06tMfTviUWvX14gjKb7qd1gtkUyYhDPuoNe00K5PqNvy2oQNg==", "requires": { "is-finite": "^1.0.1", "parse-ms": "^1.0.0", @@ -11008,7 +10458,7 @@ "plur": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", - "integrity": "sha1-24XGgU9eXlo7Se/CjWBP7GKXUVY=" + "integrity": "sha512-qSnKBSZeDY8ApxwhfVIwKwF36KVJqb1/9nzYYq3j3vdwocULCXT8f8fQGkiw1Nk9BGfxiDagEe/pwakA+bOBqw==" } } }, @@ -11031,19 +10481,19 @@ "proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "optional": true }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "optional": true }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "optional": true }, "pump": { @@ -11068,17 +10518,20 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" }, "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } }, "query-string": { "version": "5.1.1", @@ -11094,12 +10547,12 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==" }, "queue-microtask": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", - "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "quick-lru": { "version": "4.0.1", @@ -11107,6 +10560,14 @@ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -11115,7 +10576,7 @@ "raw-body": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", - "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "integrity": "sha512-WmJJU2e9Y6M5UzTOkHaM7xJGAPQD8PNzx3bAd2+uhZAim6wDk6dAZxPVYLF67XhbR4hmKGh33Lpmh4XWrCH5Mg==", "requires": { "bytes": "1", "string_decoder": "0.10" @@ -11124,7 +10585,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" } } }, @@ -11138,14 +10599,6 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - } } }, "react-is": { @@ -11157,18 +10610,37 @@ "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", "optional": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "optional": true + } } }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", "optional": true, "requires": { "find-up": "^1.0.0", @@ -11200,11 +10672,22 @@ "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", "optional": true, "requires": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "optional": true, + "requires": { + "repeating": "^2.0.0" + } + } } }, "redeyed": { @@ -11222,9 +10705,9 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", "requires": { "regenerate": "^1.4.2" } @@ -11235,9 +10718,9 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", "requires": { "@babel/runtime": "^7.8.4" } @@ -11259,14 +10742,14 @@ "dev": true }, "regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", + "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" } @@ -11281,14 +10764,14 @@ } }, "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" }, "regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", "requires": { "jsesc": "~0.5.0" }, @@ -11296,14 +10779,14 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" } } }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", "optional": true, "requires": { "is-finite": "^1.0.0" @@ -11344,7 +10827,7 @@ "resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -11366,7 +10849,7 @@ "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", "optional": true, "requires": { "lowercase-keys": "^1.0.0" @@ -11392,13 +10875,24 @@ } }, "rollup": { - "version": "2.61.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz", - "integrity": "sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==", + "version": "2.78.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.0.tgz", + "integrity": "sha512-4+YfbQC9QEVvKTanHhIAFVUFSRsezvQF8vFOJwtGfb9Bb+r014S+qryr9PSmw8x6sMnPkmFBGAvIFVQxvJxjtg==", "requires": { "fsevents": "~2.3.2" } }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -11415,7 +10909,7 @@ "safe-json-parse": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", - "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=" + "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==" }, "safefs": { "version": "6.16.0", @@ -11443,6 +10937,14 @@ "optional": true, "requires": { "commander": "^2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "optional": true + } } }, "semantic-release": { @@ -11564,6 +11066,15 @@ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -11582,6 +11093,15 @@ "path-key": "^3.0.0" } }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, "p-reduce": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", @@ -11719,7 +11239,7 @@ "semver-truncate": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", - "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "integrity": "sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==", "optional": true, "requires": { "semver": "^5.3.0" @@ -11734,23 +11254,23 @@ } }, "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.7.2", + "http-errors": "2.0.0", "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", + "ms": "2.1.3", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "debug": { @@ -11764,43 +11284,59 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } }, "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" } } }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "requires": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -11822,25 +11358,25 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" } } }, "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.1" + "send": "0.18.0" } }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, "setprototypeof": { "version": "1.1.0", @@ -11850,7 +11386,7 @@ "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "optional": true, "requires": { "shebang-regex": "^1.0.0" @@ -11859,7 +11395,7 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "optional": true }, "side-channel": { @@ -11873,9 +11409,9 @@ } }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "signale": { "version": "1.4.0", @@ -11907,7 +11443,7 @@ "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", "optional": true, "requires": { "is-plain-obj": "^1.0.0" @@ -11916,16 +11452,30 @@ "sort-keys-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", "optional": true, "requires": { "sort-keys": "^1.0.0" } }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" }, "spawn-error-forwarder": { "version": "1.0.0", @@ -11957,9 +11507,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" }, "split": { "version": "1.0.1", @@ -11986,7 +11536,7 @@ "squeak": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", - "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", + "integrity": "sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==", "optional": true, "requires": { "chalk": "^1.0.0", @@ -11994,16 +11544,22 @@ "lpad-align": "^1.0.1" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "optional": true + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "optional": true }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "optional": true, "requires": { "ansi-styles": "^2.2.1", @@ -12013,10 +11569,19 @@ "supports-color": "^2.0.0" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "optional": true } } @@ -12030,12 +11595,12 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "integrity": "sha512-nmQnY9D9TlnfQIkYJCCWxvCcQODilFRZIw14gCMYQVXOiY4E1Ze1VMxB+6y3qdXHpTordULo2qWloHmNcNAQYw==", "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -12067,21 +11632,36 @@ "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", "optional": true }, "string-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "integrity": "sha512-MNCACnufWUf3pQ57O5WTBMkKhzYIaKEcUioO0XHrTMafrbBaNk4IyDOLHBv5xbXO0jLLdsYWeFjpjG2hVHRDtw==", "requires": { "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, "string-template": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" + "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" }, "string-width": { "version": "4.2.3", @@ -12092,23 +11672,6 @@ "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } } }, "string.prototype.matchall": { @@ -12156,17 +11719,17 @@ } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" } }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "optional": true, "requires": { "is-utf8": "^0.2.0" @@ -12184,7 +11747,7 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "optional": true }, "strip-final-newline": { @@ -12195,16 +11758,16 @@ "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", "optional": true, "requires": { "get-stdin": "^4.0.1" } }, "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true }, "strip-outer": { @@ -12216,6 +11779,12 @@ "escape-string-regexp": "^1.0.2" } }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "optional": true + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -12278,12 +11847,12 @@ }, "dependencies": { "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "optional": true, "requires": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" } } } @@ -12306,13 +11875,13 @@ "temp-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", "optional": true }, "tempfile": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", - "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", + "integrity": "sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==", "optional": true, "requires": { "temp-dir": "^1.0.0", @@ -12352,6 +11921,24 @@ } } }, + "terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, "text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -12361,12 +11948,12 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, "through2": { "version": "2.0.5", @@ -12391,15 +11978,20 @@ "text-table": "^0.2.0" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -12408,28 +12000,36 @@ "supports-color": "^2.0.0" } }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" } } }, "time-zone": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz", - "integrity": "sha1-Sncotqwo2w4Aj1FAQ/1VW9VXO0Y=" + "integrity": "sha512-S5CjtVIkeBTnlsaZP3gjsTb78ClBe74sEcgEoBwAVUKnTRDAGqUtLLIZHMsIyqOWjt9DGQpLMMoD8ZKIfP2ddQ==" }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", "optional": true }, "timers-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", + "integrity": "sha512-O7UB405+hxP2OWqlBdlUMxZVEdsi8NOWL2c730Cs6zeO1l1AkxygvTm6yC4nTw84iGbFcqxbIkkrdNKzq/3Fvg==", "requires": { "setimmediate": "^1.0.4" } @@ -12466,7 +12066,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-regex-range": { "version": "5.0.1", @@ -12477,9 +12077,9 @@ } }, "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "tr46": { "version": "0.0.3", @@ -12496,13 +12096,13 @@ "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", "optional": true }, "trim-repeated": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", "optional": true, "requires": { "escape-string-regexp": "^1.0.2" @@ -12545,7 +12145,7 @@ "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "optional": true, "requires": { "safe-buffer": "^5.0.1" @@ -12572,9 +12172,9 @@ "integrity": "sha512-EbOu+9szY13mhl0EsvLXnR+pTCa3gTHQQPLdce72ujcC9fRHXlVFBNXtHeRhgzLxLlKUh4zA9C0tezLDgshf+A==" }, "uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-EWhx3fHy3M9JbaeTnO+rEqzCe1wtyQClv6q3YWq0voOj4E+bMZBErVS1GAHPDiRGONYq34M1/d8KuQMgvi6Gjw==" + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg==" }, "ultron": { "version": "1.1.1", @@ -12605,17 +12205,17 @@ "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==" }, "underscore": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", - "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==" + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.4.tgz", + "integrity": "sha512-BQFnUDuAQ4Yf/cYY5LNrK9NCJFKriaRbD9uR1fTeXnBeoa97W0i41qkZfGO9pSo8I5KzjAcSY2XYtdf0oKd7KQ==" }, "underscore-deep-extend": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/underscore-deep-extend/-/underscore-deep-extend-1.1.5.tgz", - "integrity": "sha1-liuh+LO7Lir9GC7Yby5SdVQ8Ur0=" + "integrity": "sha512-Snk/OnraiskaFowKhKrxbE/UzYvYmsE3gHNrGWKCb7gceuz3ebFRwxw9X9wgklrIUt6xDxR5TcE1yj0LneOmnQ==" }, "underscore.string": { "version": "3.3.6", @@ -12673,14 +12273,23 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", "optional": true }, + "update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -12699,12 +12308,12 @@ "uri-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", - "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=" + "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==" }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -12719,7 +12328,7 @@ "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==", "optional": true, "requires": { "prepend-http": "^1.0.1" @@ -12728,13 +12337,13 @@ "url-to-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", "optional": true }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", "requires": { "inherits": "2.0.1" }, @@ -12742,14 +12351,14 @@ "inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==" } } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "util.promisify": { "version": "1.0.1", @@ -12766,7 +12375,7 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, "uuid": { "version": "3.4.0", @@ -12800,7 +12409,7 @@ "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "requires": { "defaults": "^1.0.3" } @@ -12878,7 +12487,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" }, "wrap-ansi": { "version": "7.0.0", @@ -12891,12 +12500,6 @@ "strip-ansi": "^6.0.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -12920,22 +12523,13 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "ws": { "version": "3.3.3", @@ -12961,7 +12555,7 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", "optional": true }, "yaml": { @@ -12994,12 +12588,18 @@ "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "optional": true, "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 0d7038032..e65e8d80f 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,12 @@ { "name": "adapt_framework", - "version": "5.22.1", + "version": "6.0.0", "description": "Adapt Learning output framework", "repository": { "type": "git", "url": "git://github.com/adaptlearning/adapt_framework.git" }, "scripts": { - "preinstall": "node gitmodules.js", "lint": "node node_modules/eslint/bin/eslint.js ./" }, "license": "GPL-3.0", @@ -19,15 +18,19 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.16.5", - "@babel/plugin-transform-react-jsx": "^7.16.5", - "@babel/preset-env": "^7.16.5", - "@babel/preset-react": "^7.16.5", - "@rollup/plugin-babel": "^5.0.4", + "@babel/core": "^7.18.10", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.10", + "@babel/preset-env": "^7.18.10", + "@babel/preset-react": "^7.18.6", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-commonjs": "^22.0.2", + "@rollup/plugin-node-resolve": "^13.3.0", + "@rollup/plugin-replace": "^4.0.0", "@types/backbone": "^1.4.14", "@types/jquery": "^3.5.11", "async": "^3.2.2", - "babel-plugin-transform-amd-to-es6": "^0.6.1", + "babel-plugin-transform-amd-to-es6": "^0.6.2", "babel-plugin-transform-react-templates": "^0.1.0", "chalk": "^2.4.1", "columnify": "^1.5.4", @@ -54,8 +57,11 @@ "less": "^3.9.0", "load-grunt-config": "^4.0.1", "lodash": "^4.17.19", + "magic-string": "^0.26.2", "nsdeclare": "^0.1.0", - "rollup": "^2.60.0", + "resolve": "^1.22.1", + "rollup": "^2.78.0", + "rollup-plugin-terser": "^7.0.2", "time-grunt": "^2.0.0", "underscore": "^1.13.1", "underscore-deep-extend": "^1.1.5" @@ -69,7 +75,6 @@ "eslint-plugin-promise": "^6.0.0", "eslint-plugin-react": "^7.30.0", "eslint-plugin-requirejs": "^4.0.1", - "eslint-plugin-standard": "^5.0.0", "@semantic-release/commit-analyzer": "^9.0.2", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^8.0.5", diff --git a/src/.npmrc b/src/.npmrc new file mode 100644 index 000000000..f43c3094b --- /dev/null +++ b/src/.npmrc @@ -0,0 +1 @@ +registry=https://adapt-bower-repository.herokuapp.com/npm/ diff --git a/src/core b/src/core deleted file mode 160000 index 45b423a53..000000000 --- a/src/core +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 45b423a5387666307452a1698d1890820642a51e diff --git a/src/course/config.json b/src/course/config.json deleted file mode 100644 index 08cb93869..000000000 --- a/src/course/config.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_defaultLanguage": "en", - "_defaultDirection": "ltr", - "_questionWeight": 1, - "_logging": { - "_isEnabled": true, - "_level": "debug", - "_console": true, - "_warnFirstOnly": true - }, - "_accessibility": { - "_isEnabled": true, - "_isSkipNavigationEnabled": true, - "_ariaLevels": { - "_menu": 1, - "_menuGroup": "@menu+1", - "_menuItem": "@menu+1", - "_page": 1, - "_article": "@page+1", - "_block": "@article+1", - "_component": "@block+1", - "_componentItem": "@component+1", - "_notify": 1 - }, - "_options": { - "_isFocusOutlineKeyboardOnlyEnabled": true, - "_isFocusOutlineDisabled": false, - "_isFocusAssignmentEnabled": true, - "_isFocusOnClickEnabled": true, - "_isFocusNextOnDisabled": true, - "_isScrollDisableEnabled": true, - "_isAriaHiddenManagementEnabled": true, - "_isPopupManagementEnabled": true, - "_isPopupWrapFocusEnabled": true, - "_isPopupAriaHiddenManagementEnabled": true, - "_isPopupTabIndexManagementEnabled": true, - "_warn": true, - "_warnFirstOnly": true - } - }, - "_fixes": { - "_imgLazyLoad": true - }, - "_drawer": { - "_showEasing": "easeOutQuart", - "_hideEasing": "easeInQuart", - "_duration": 400 - }, - "_completionCriteria": { - "_requireContentCompleted": false, - "_requireAssessmentCompleted": true, - "_shouldSubmitScore": true - }, - "_spoor": { - "_isEnabled": true, - "_tracking": { - "_shouldStoreResponses": true, - "_shouldStoreAttempts": false, - "_shouldRecordInteractions": true - }, - "_reporting": { - "_comment": "Your options here are 'completed', 'passed', 'failed', and 'incomplete'", - "_onTrackingCriteriaMet": "completed", - "_onAssessmentFailure": "incomplete", - "_resetStatusOnLanguageChange": false - } - }, - "_disableAnimationFor": [], - "_disableAnimation": false, - "_scrollingContainer": { - "_isEnabled": false, - "_limitToSelector": "" - }, - "build": { - "strictMode": true - } -} diff --git a/src/course/en/articles.json b/src/course/en/articles.json deleted file mode 100755 index e06d32a7a..000000000 --- a/src/course/en/articles.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - { - "_id": "a-05", - "_parentId": "co-05", - "_type": "article", - "_classes": "", - "title": "a-05", - "displayTitle": "", - "body": "", - "instruction": "" - }, - { - "_id": "a-10", - "_parentId": "co-10", - "_type": "article", - "_classes": "", - "title": "a-10", - "displayTitle": "", - "body": "", - "instruction": "" - }, - { - "_id": "a-15", - "_parentId": "co-15", - "_type": "article", - "_classes": "", - "title": "a-15", - "displayTitle": "", - "body": "", - "_assessment": { - "_isEnabled": true, - "_id": "a-15", - "_suppressMarking": false, - "_scoreToPass": 75, - "_correctToPass": 75, - "_isPercentageBased": true, - "_includeInTotalScore": true, - "_assessmentWeight": 1, - "_isResetOnRevisit": true, - "_attempts": "infinite", - "_allowResetIfPassed": false, - "_scrollToOnReset": false, - "_banks": { - "_isEnabled": true, - "_split": "2,2", - "_randomisation": true - }, - "_randomisation": { - "_isEnabled": false, - "_blockCount": 1 - }, - "_questions": { - "_resetType": "hard", - "_canShowFeedback": false, - "_canShowMarking": false, - "_canShowModelAnswer": false - } - }, - "_trickle": { - "_isEnabled": true, - "_button": { - "_isEnabled": true, - "startText": "Continue" - } - } - }, - { - "_id": "a-20", - "_parentId": "co-15", - "_type": "article", - "_classes": "", - "title": "a-20", - "displayTitle": "", - "body": "" - } -] diff --git a/src/course/en/blocks.json b/src/course/en/blocks.json deleted file mode 100644 index 020677d42..000000000 --- a/src/course/en/blocks.json +++ /dev/null @@ -1,236 +0,0 @@ -[ - { - "_id": "b-05", - "_parentId": "a-05", - "_type": "block", - "_classes": "", - "title": "b-05", - "displayTitle": "", - "body": "", - "instruction": "", - "_trackingId": 0, - "_onScreen": { - "_isEnabled": true, - "_classes": "fade-in-bottom", - "_percentInviewVertical": 50 - } - }, - { - "_id": "b-10", - "_parentId": "a-05", - "_type": "block", - "_classes": "", - "title": "b-10", - "displayTitle": "", - "body": "", - "instruction": "", - "_trackingId": 1 - }, - { - "_id": "b-15", - "_parentId": "a-05", - "_type": "block", - "_classes": "", - "title": "b-15", - "displayTitle": "", - "body": "", - "instruction": "", - "_trackingId": 2 - }, - { - "_id": "b-20", - "_parentId": "a-05", - "_type": "block", - "_classes": "", - "title": "b-20", - "displayTitle": "", - "body": "", - "instruction": "", - "_trackingId": 3 - }, - { - "_id": "b-25", - "_parentId": "a-05", - "_type": "block", - "_classes": "", - "title": "b-25", - "displayTitle": "", - "body": "", - "_trackingId": 4 - }, - { - "_id": "b-30", - "_parentId": "a-05", - "_type": "block", - "_classes": "", - "title": "b-30", - "displayTitle": "", - "body": "", - "_trackingId": 5 - }, - { - "_id": "b-35", - "_parentId": "a-05", - "_type": "block", - "_classes": "", - "title": "b-35", - "displayTitle": "", - "body": "", - "_trackingId": 6 - }, - { - "_id": "b-40", - "_parentId": "a-10", - "_type": "block", - "_classes": "", - "title": "b-40", - "displayTitle": "", - "body": "", - "_trackingId": 7 - }, - { - "_id": "b-45", - "_parentId": "a-10", - "_type": "block", - "_classes": "", - "title": "b-45", - "displayTitle": "", - "body": "", - "_trackingId": 8 - }, - { - "_id": "b-50", - "_parentId": "a-10", - "_type": "block", - "_classes": "", - "title": "b-50", - "displayTitle": "", - "body": "", - "_trackingId": 9 - }, - { - "_id": "b-55", - "_parentId": "a-10", - "_type": "block", - "_classes": "", - "title": "b-55", - "displayTitle": "", - "body": "", - "_trackingId": 10 - }, - { - "_id": "b-60", - "_parentId": "a-10", - "_type": "block", - "_classes": "", - "title": "b-60", - "displayTitle": "", - "body": "", - "_trackingId": 11 - }, - { - "_id": "b-65", - "_parentId": "a-15", - "_type": "block", - "_classes": "", - "title": "b-65", - "displayTitle": "", - "body": "", - "_assessment": { - "_quizBankID": 1 - }, - "_trackingId": 12 - }, - { - "_id": "b-75", - "_parentId": "a-15", - "_type": "block", - "_classes": "", - "title": "b-75", - "displayTitle": "", - "body": "", - "_assessment": { - "_quizBankID": 1 - }, - "_trackingId": 13 - }, - { - "_id": "b-80", - "_parentId": "a-15", - "_type": "block", - "_classes": "", - "title": "b-80", - "displayTitle": "", - "body": "", - "_assessment": { - "_quizBankID": 1 - }, - "_trackingId": 14 - }, - { - "_id": "b-85", - "_parentId": "a-15", - "_type": "block", - "_classes": "", - "title": "b-85", - "displayTitle": "", - "body": "", - "_assessment": { - "_quizBankID": 2 - }, - "_trackingId": 15 - }, - { - "_id": "b-90", - "_parentId": "a-15", - "_type": "block", - "_classes": "", - "title": "b-90", - "displayTitle": "", - "body": "", - "_assessment": { - "_quizBankID": 2 - }, - "_trackingId": 16 - }, - { - "_id": "b-95", - "_parentId": "a-15", - "_type": "block", - "_classes": "", - "title": "b-95", - "displayTitle": "", - "body": "", - "_assessment": { - "_quizBankID": 2 - }, - "_trackingId": 17 - }, - { - "_id": "b-100", - "_parentId": "a-20", - "_type": "block", - "_classes": "background-color-inverted", - "title": "b-100", - "displayTitle": "", - "body": "", - "_trickle": { - "_isEnabled": true, - "_button": { - "_isEnabled": true, - "text": "Show results" - } - }, - "_trackingId": 18 - }, - { - "_id": "b-105", - "_parentId": "a-20", - "_type": "block", - "_classes": "", - "title": "b-105", - "displayTitle": "", - "body": "", - "_trackingId": 19 - } -] diff --git a/src/course/en/components.json b/src/course/en/components.json deleted file mode 100755 index a7773f920..000000000 --- a/src/course/en/components.json +++ /dev/null @@ -1,1088 +0,0 @@ -[ - { - "_id": "c-05", - "_parentId": "b-05", - "_type": "component", - "_component": "text", - "_classes": "", - "_layout": "left", - "title": "Introduction", - "displayTitle": "", - "body": "Adapt allows you to combine Text and Graphic components on the scrolling page to create rich and varied learning experiences. In addition, a wide range of interactive components are also available to help encourage deeper engagement with the material.

These presentation components can be structured in any way to help you create learning experiences that meet the needs of your learners.

In addition, if your course is being launched from an LMS or LRS, you can personalise the course content by having the learner's name dynamically displayed in the body, instruction or feedback text.", - "instruction": "{{_globals._learnerInfo.firstname}}, scroll down to see what presentation components are available as part of the core bundle.", - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-10", - "_parentId": "b-05", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-10", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "large": "course/en/images/single-width.png", - "small": "course/en/images/full-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-15", - "_parentId": "b-10", - "_type": "component", - "_component": "text", - "_classes": "", - "_layout": "left", - "title": "Text", - "displayTitle": "Text", - "body": "The simple Text component can often be the best choice for imparting information, particularly when used in conjunction with complementary graphics. In this example we’ve used the Blank component to the right to create a window through to the block background.

Remember, content doesn’t always warrant an interaction so less can often be really be more. Instead, look to intersperse more interactive components with text and graphics where they add the maximum value.

Component can either be single or spanned.", - "instruction": "", - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-20", - "_parentId": "b-10", - "_type": "component", - "_component": "blank", - "_classes": "", - "_layout": "right", - "title": "c-20", - "_isOptional": true - }, - { - "_id": "c-25", - "_parentId": "b-15", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "full", - "title": "Graphic", - "displayTitle": "Graphic", - "body": "This is the Graphic component body. You can introduce your graphic or you may just want to let the graphics do the talking.

Component can either be single or spanned.", - "instruction": "", - "_graphic": { - "src": "course/en/images/full-width.png", - "alt": "", - "attribution": "" - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-30", - "_parentId": "b-20", - "_type": "component", - "_component": "narrative", - "_classes": "", - "_layout": "full", - "_comment": "setCompletionOn = inview | allItems", - "_setCompletionOn": "allItems", - "_hasNavigationInTextArea": false, - "title": "Narrative", - "displayTitle": "Narrative", - "body": "The Narrative component lets you scroll through a series of images each with some accompanying text.

This component is always spanned.", - "instruction": "Select the next and back arrows to find out more.", - "mobileInstruction": "Select the plus icon followed by the next arrow to find out more.", - "_items": [ - { - "title": "Narrative item 1", - "body": "Narratives are particularly good for showing dialogue between two or more characters, with each step of the conversation being accompanied by an image. This photo story approach can be used to provide context for the learning to follow, to illustrate real-world application of the learning or to show the impact on people when the learning hasn’t been applied correctly.", - "_graphic": { - "src": "course/en/images/narrative.png", - "alt": "alt text" - }, - "strapline": "Narrative item 1" - }, - { - "title": "Narrative item 2", - "body": "It can also be used to present case studies, where the different displays are used to set the scene, show the key events and then the outcome.", - "_graphic": { - "src": "course/en/images/narrative.png", - "alt": "alt text" - }, - "strapline": "Narrative item 2" - }, - { - "title": "Narrative item 3", - "body": "This component can also be useful when you want to illustrate the constituent steps that make up a larger process.", - "_graphic": { - "src": "course/en/images/narrative.png", - "alt": "alt text" - }, - "strapline": "Narrative item 3" - } - ], - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-35", - "_parentId": "b-25", - "_type": "component", - "_component": "hotgraphic", - "_classes": "", - "_layout": "full", - "_comment": "setCompletionOn = inview | allItems", - "_setCompletionOn": "allItems", - "_canCycleThroughPagination": false, - "_hidePagination": false, - "_isNarrativeOnMobile": true, - "_useNumberedPins": false, - "_useGraphicsAsPins": false, - "title": "Hot Graphic", - "displayTitle": "Hot Graphic", - "body": "You can add interactivity to an image by using the Hot Graphic. This component allows you to position icons over an image. When an icon is selected, content associated with its corresponding location is displayed in a window over the image. This component will fall back to a Narrative when viewed on mobile.

This component is always spanned.", - "instruction": "Select the icons to find out more.", - "mobileInstruction": "Select the plus icon followed by the next arrow to find out more.", - "_graphic": { - "src": "course/en/images/hotgraphic.png", - "alt": "alt text" - }, - "_items": [ - { - "title": "Hot Graphic item 1", - "body": "This is display text associated with item 1.", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "_classes": "" - }, - "strapline": "Hot Graphic strapline 1", - "_classes": "", - "_top": 42, - "_left": 8.5 - }, - { - "title": "Hot Graphic item 2", - "body": "This is display text associated with item 2.", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "_classes": "" - }, - "strapline": "Hot Graphic strapline 2", - "_classes": "", - "_top": 62, - "_left": 26.5 - }, - { - "title": "Hot Graphic item 3", - "body": "This is display text associated with item 3.", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "_classes": "" - }, - "strapline": "Hot Graphic strapline 3", - "_classes": "", - "_top": 62, - "_left": 49 - } - ], - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-40", - "_parentId": "b-30", - "_type": "component", - "_component": "media", - "_classes": "", - "_layout": "full", - "_comment": "_setCompletionOn = inview | play | ended", - "_setCompletionOn": "play", - "_useClosedCaptions": true, - "_allowFullScreen": true, - "title": "Media", - "displayTitle": "Media", - "body": "Sometimes we need to make use of rich media to really drive home a point, bring a complex subject to life or simply use audio to literally do the talking. This is when the Media component comes to the fore.

Component can be either single or spanned.", - "instruction": "Select the play button to start the video.", - "_media": { - "mp4": "course/en/video/c-40.mp4", - "poster": "course/en/video/c-40.jpg", - "cc": [ - { - "srclang": "en", - "src": "course/en/video/c-40.vtt" - } - ] - }, - "_playerOptions": { - "alwaysShowControls": true, - "toggleCaptionsButtonWhenOnlyOne": true, - "iPadUseNativeControls": true, - "iPhoneUseNativeControls": true, - "AndroidUseNativeControls": true - }, - "_transcript": { - "_inlineTranscript": true, - "_externalTranscript": false, - "inlineTranscriptButton": "Transcript", - "inlineTranscriptCloseButton": "Close Transcript", - "inlineTranscriptBody": "Responsive design means you can create a course once but view it on a wide range of browsers, devices or operating systems. This is achieved by using fluid layouts to ensure the presentation of content is tailored to suit the size of the screen. This means you can start a course on your laptop and finish it later on your mobile or tablet. We call it Adapt", - "transcriptLinkButton": "Transcript", - "transcriptLink": "" - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-45", - "_parentId": "b-35", - "_type": "component", - "_component": "accordion", - "_classes": "", - "_layout": "full", - "title": "Accordion", - "displayTitle": "Accordion", - "body": "You can use the Accordion component to present learners with a series of headings which, once selected, expand to reveal associated text. Select each of the headings below to find out more about how accordions can be used.

These components can be either single or spanned. If spanned they can also contain a graphic.", - "instruction": "Select the headings to find out more.", - "_items": [ - { - "title": "Lists", - "body": "This is display text 1 and we’re using it to discuss lists.

If you need to present a list that can stand alone as a piece of content, but which can also be explored in more detail, accordions are a great choice.", - "_classes": "align-image-left", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "" - } - }, - { - "title": "Steps in a process", - "body": "This is display text 2 and now we’re discussing how accordions can be great at presenting a process.

The headings can be used to present the high-level stages in the process, which once selected, provide a more extensive explanation of what happens at that specific point.", - "_classes": "align-image-right", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "" - } - }, - { - "title": "Recaps", - "body": "This is display text 3 and we’re now talking about using accordions to provide the learner with a summary.

Each accordion item corresponds to a key piece of learning presented on the page. When this item is selected a short summary of the learning point is provided.", - "_graphic": { - "src": "course/en/images/accordion-full.png", - "alt": "" - } - } - ], - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-60", - "_parentId": "b-40", - "_type": "component", - "_component": "mcq", - "_classes": "", - "_layout": "left", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": true, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_selectable": 1, - "title": "Multiple Choice Question", - "displayTitle": "Multiple Choice Question", - "body": "In what year was the first recorded instance of a large scale assessment that consists solely of multiple choice questions?", - "instruction": "Choose one option and select Submit.", - "_items": [ - { - "text": "1917", - "_shouldBeSelected": true - }, - { - "text": "1888", - "_shouldBeSelected": false - }, - { - "text": "1953", - "_shouldBeSelected": false - }, - { - "text": "1977", - "_shouldBeSelected": false - } - ], - "_feedback": { - "title": "Feedback", - "correct": "Correct feedback text.

That’s correct. The first large assessment to consist solely of the multiple choice question type was the Army Alpha test, used from 1917 to evaluate U.S. military recruits in the First World War.

Source: Wikipedia

Component facts: Multiple Choice Questions (or MCQs) are a tried and tested method for presenting learners with a simple text-based question. Component is either single or spanned.", - "_incorrect": { - "final": "Incorrect feedback text.

That’s not right. The first large assessment to consist solely of the multiple choice question type was the Army Alpha test, used from 1917 to evaluate U.S. military recruits in the First World War.

Source: Wikipedia

Component facts: Multiple Choice Questions (or MCQs) are a tried and tested method for presenting learners with a simple text-based question. Component is either single or spanned." - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-62", - "_parentId": "b-40", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-62", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-65", - "_parentId": "b-45", - "_type": "component", - "_component": "gmcq", - "_classes": "", - "_layout": "full", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": true, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_selectable": 1, - "title": "Graphical Multiple Choice Question", - "displayTitle": "Graphical Multiple Choice Question", - "body": "The Graphical Multiple Choice Question is an alternative to the standard MCQ, and allows you to ask a question and present the options as graphics (with accompanying captions). This component is always spanned.", - "instruction": "Choose option 2 and select Submit.", - "_columns": 3, - "_items": [ - { - "text": "Option 1", - "_shouldBeSelected": false, - "_graphic": { - "large": "course/en/images/gmcq.png", - "small": "course/en/images/gmcq.png", - "alt": "alt text" - } - }, - { - "text": "Option 2", - "_shouldBeSelected": true, - "_graphic": { - "large": "course/en/images/gmcq.png", - "small": "course/en/images/gmcq.png", - "alt": "alt text" - } - }, - { - "text": "Option 3", - "_shouldBeSelected": false, - "_graphic": { - "large": "course/en/images/gmcq.png", - "small": "course/en/images/gmcq.png", - "alt": "alt text" - } - } - ], - "_feedback": { - "title": "Feedback", - "correct": "Correct feedback text.

That’s correct. Option 2 is what we were looking for!", - "_incorrect": { - "final": "Incorrect feedback text.

Sorry, that’s not right. In fact Option 2 is what we were looking for (the clue was in the instruction text!)." - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-70", - "_parentId": "b-50", - "_type": "component", - "_component": "textinput", - "_classes": "", - "_layout": "left", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": true, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_allowsAnyCase": true, - "_allowsPunctuation": true, - "title": "Text Input", - "displayTitle": "Text Input", - "body": "Can you name one of the three companies that established Adapt as a community-led open source project?", - "instruction": "Input your answer and select Submit.", - "_answers": [ - ["City & Guilds Kineo", "Kineo"], - ["Learning Pool"], - ["Sponge"] - ], - "_items": [ - { - "prefix": "", - "placeholder": "Enter answer here", - "suffix": "" - } - ], - "_feedback": { - "title": "Feedback", - "correct": "Correct answer feedback.

That’s correct. The Adapt open source project was established by Kineo, Learning Pool and Sponge. At the time of writing, there are a total of nine official collaborators.

Component facts: Text input components let learners enter their own answers, which is great for questions that require a bit more flexibility, like those with answers that could be written as both full words and numbers.", - "_partlyCorrect": { - "final": "Partially correct answer feedback.

That’s partially correct. The Adapt open source project was established by Kineo, Learning Pool and Sponge. At the time of writing, there are a total of nine official collaborators.

Component facts: Text input components let learners enter their own answers, which is great for questions that require a bit more flexibility, like those with answers that could be written as both full words and numbers." - }, - "_incorrect": { - "final": "Incorrect answer feedback.

Sorry, that’s not right. The Adapt open source project was established by Kineo, Learning Pool and Sponge. At the time of writing, there are a total of nine official collaborators.

Component facts: Text input components let learners enter their own answers, which is great for questions that require a bit more flexibility, like those with answers that could be written as both full words and numbers." - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-72", - "_parentId": "b-50", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-72", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-75", - "_parentId": "b-55", - "_type": "component", - "_component": "matching", - "_classes": "", - "_layout": "full", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": true, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "title": "Matching", - "displayTitle": "Matching", - "body": "Can you identify some of the key facts and figures associated with the Adapt Open Source project?", - "instruction": "Choose an option from each dropdown list and select Submit.", - "placeholder": "Select an option", - "_items": [ - { - "text": "The Adapt Open Source project was formed in:", - "_options": [ - { - "text": "2008", - "_isCorrect": false - }, - { - "text": "2010", - "_isCorrect": false - }, - { - "text": "2013", - "_isCorrect": true - }, - { - "text": "2015", - "_isCorrect": false - } - ] - }, - { - "text": "Adapt adheres to level 'AA' of the WCAG version 2, but when were these published?", - "_options": [ - { - "text": "2008", - "_isCorrect": true - }, - { - "text": "2010", - "_isCorrect": false - }, - { - "text": "2013", - "_isCorrect": false - }, - { - "text": "2015", - "_isCorrect": false - } - ] - }, - { - "text": "Which of these languages would benefit from using the recent addition of Right To Left (RTL) language support within Adapt?", - "_options": [ - { - "text": "Portuguese", - "_isCorrect": false - }, - { - "text": "Hebrew", - "_isCorrect": true - }, - { - "text": "Finnish", - "_isCorrect": false - }, - { - "text": "Esperanto", - "_isCorrect": false - } - ] - } - ], - "_feedback": { - "title": "Feedback", - "correct": "Correct answer feedback.

Yes, that’s right. Adapt was established as an Open Source project in 2013. The Web Accessibility Initiative (WAI) published the WCAG 2.0 guidelines in 2008 and Hebrew is the only language of the four shown which reads right to left.

Component facts: The Matching component lets you match a series of questions or statements with the corresponding options from the dropdown box. Component is either single or spanned.", - "_partlyCorrect": { - "final": "Partially correct answer feedback.

That’s partially correct. Adapt was established as an Open Source project in 2013. The Web Accessibility Initiative (WAI) published the WCAG 2.0 guidelines in 2008 and Hebrew is the only language of the four shown which reads right to left.

Component facts: The Matching component lets you match a series of questions or statements with the corresponding options from the dropdown box. Component is either single or spanned." - }, - "_incorrect": { - "final": "Incorrect answer feedback.

Sorry, that’s not right. Adapt was established as an Open Source project in 2013. The Web Accessibility Initiative (WAI) published the WCAG 2.0 guidelines in 2008 and Hebrew is the only language of the four shown which reads right to left.

Component facts: The Matching component lets you match a series of questions or statements with the corresponding options from the dropdown box. Component is either single or spanned." - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-80", - "_parentId": "b-60", - "_type": "component", - "_component": "slider", - "_classes": "", - "_layout": "full", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": true, - "_shouldDisplayAttempts": false, - "_showNumber": true, - "_showScaleIndicator": true, - "_scaleStart": 1, - "_scaleEnd": 10, - "title": "Slider", - "displayTitle": "Slider", - "body": "Working memory is thought to be responsible for our ability to temporarily hold and manipulate information, but according to a paper by Miller (1956) what ‘magic number’ describes its capacity?", - "instruction": "Drag the slider to make your choice and select Submit.", - "labelStart": "", - "labelEnd": "", - "_correctAnswer": "", - "_correctRange": { - "_bottom": 5, - "_top": 9 - }, - "_feedback": { - "title": "Feedback", - "correct": "Correct answer feedback.

Yes, that’s right. According to Miller’s paper 7 +/- 2 chunks of information was the limited capacity of working memory. Various theories from the field of cognitive psychology such as Miller’s magical number, chunking, the forgetting curve and spaced repetition have all influenced learning theory over the last 50 years or so.

Component facts: The correct answer for a Slider component can be an exact number or a range. In this instance we have set the correct answer to a range of 5-9 due to the correct answer being seven plus or minus two. Component is either single or spanned.", - "_incorrect": { - "final": "Incorrect answer feedback.

Sorry, that’s not right. According to Miller’s paper 7 +/- 2 chunks of information was the limited capacity of working memory. Various theories from the field of cognitive psychology such as Miller’s magical number, chunking, the forgetting curve and spaced repetition have all influenced learning theory over the last 50 years or so.

Component facts: The correct answer for a Slider component can be an exact number or a range. In this instance we have set the correct answer to a range of 5-9 due to the correct answer being seven plus or minus two. Component is either single or spanned." - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": true - } - }, - { - "_id": "c-90", - "_parentId": "b-65", - "_type": "component", - "_component": "mcq", - "_classes": "", - "_layout": "left", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": false, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_selectable": 4, - "title": "To scroll or not to scroll?", - "displayTitle": "To scroll or not to scroll?", - "body": "Can you identify a few of the benefits that a vertical scrolling approach offers over the traditional back and next approach?", - "instruction": "Choose one or more options and select Submit.", - "_items": [ - { - "text": "Scrolling is common place on the web and therefore familiar to the learner", - "_shouldBeSelected": true - }, - { - "text": "Scrolling reduces the need for unnecessary navigation as pages can be as long (or as short) as they need to be", - "_shouldBeSelected": true - }, - { - "text": "Scrolling helps ensure designs are more mobile friendly", - "_shouldBeSelected": true - }, - { - "text": "Scrolling means you no longer need to first gain learners attention", - "_shouldBeSelected": false - } - ], - "_feedback": { - "title": "", - "correct": "", - "_partlyCorrect": { - "final": "" - }, - "_incorrect": { - "final": "" - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-95", - "_parentId": "b-65", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-95", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-100", - "_parentId": "b-75", - "_type": "component", - "_component": "mcq", - "_classes": "", - "_layout": "left", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": false, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_selectable": 5, - "title": "Do you know your plugins?", - "displayTitle": "Do you know your plugins?", - "body": "Which of the following are types of Adapt plugins?", - "instruction": "Choose one or more options and select Submit.", - "_items": [ - { - "text": "Component", - "_shouldBeSelected": true - }, - { - "text": "Extension", - "_shouldBeSelected": true - }, - { - "text": "Schema", - "_shouldBeSelected": false - }, - { - "text": "Block", - "_shouldBeSelected": false - }, - { - "text": "App Wrapper", - "_shouldBeSelected": false - } - ], - "_feedback": { - "title": "", - "correct": "", - "_partlyCorrect": { - "final": "" - }, - "_incorrect": { - "final": "" - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-105", - "_parentId": "b-75", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-105", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-110", - "_parentId": "b-80", - "_type": "component", - "_component": "mcq", - "_classes": "", - "_layout": "left", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": false, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_selectable": 1, - "title": "It’s as simple as A, B, C", - "displayTitle": "It’s as simple as A, B, C", - "body": "Can you identify the missing word in the following sequence?
Article / ..... / Component.", - "instruction": "Choose an option and select Submit.", - "_items": [ - { - "text": "Block", - "_shouldBeSelected": true - }, - { - "text": "Bridge", - "_shouldBeSelected": false - }, - { - "text": "Brace", - "_shouldBeSelected": false - }, - { - "text": "Base", - "_shouldBeSelected": false - }, - { - "text": "Bearing", - "_shouldBeSelected": false - } - ], - "_feedback": { - "title": "", - "correct": "", - "_incorrect": { - "final": "" - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-115", - "_parentId": "b-80", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-115", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-120", - "_parentId": "b-85", - "_type": "component", - "_component": "mcq", - "_classes": "", - "_layout": "left", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": false, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_selectable": 4, - "title": "Content Objects", - "displayTitle": "Content Objects", - "body": "What would you be referring to when describing a Content Object within Adapt?", - "instruction": "Choose one or more options and select Submit.", - "_items": [ - { - "text": "Page", - "_shouldBeSelected": true - }, - { - "text": "Menu", - "_shouldBeSelected": true - }, - { - "text": "Component", - "_shouldBeSelected": false - }, - { - "text": "Course configuration options", - "_shouldBeSelected": false - } - ], - "_feedback": { - "title": "", - "correct": "", - "_partlyCorrect": { - "final": "" - }, - "_incorrect": { - "final": "" - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-125", - "_parentId": "b-85", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-95", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-130", - "_parentId": "b-90", - "_type": "component", - "_component": "mcq", - "_classes": "", - "_layout": "left", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": false, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_selectable": 1, - "title": "Adding titles to icons", - "displayTitle": "Adding titles to icons", - "body": "What JSON file would you need to edit in order to add a title to an icon in the navigation bar?", - "instruction": "Choose an option and select Submit.", - "_items": [ - { - "text": "course.json", - "_shouldBeSelected": true - }, - { - "text": "config.json", - "_shouldBeSelected": false - }, - { - "text": "contentObjects.json", - "_shouldBeSelected": false - }, - { - "text": "components.json", - "_shouldBeSelected": false - } - ], - "_feedback": { - "title": "", - "correct": "", - "_incorrect": { - "final": "" - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-135", - "_parentId": "b-90", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-95", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-140", - "_parentId": "b-95", - "_type": "component", - "_component": "mcq", - "_classes": "", - "_layout": "left", - "_attempts": 1, - "_questionWeight": 1, - "_canShowModelAnswer": false, - "_shouldDisplayAttempts": false, - "_isRandom": true, - "_selectable": 4, - "title": "Control the scroll", - "displayTitle": "Control the scroll", - "body": "The Trickle extension makes it possible to control how the learner scrolls down the page, but what elements of a page can it be applied to?", - "instruction": "Choose an option and select Submit.", - "_items": [ - { - "text": "Article", - "_shouldBeSelected": true - }, - { - "text": "Block", - "_shouldBeSelected": true - }, - { - "text": "Component", - "_shouldBeSelected": false - }, - { - "text": "Other extensions", - "_shouldBeSelected": false - } - ], - "_feedback": { - "title": "", - "correct": "", - "_partlyCorrect": { - "final": "" - }, - "_incorrect": { - "final": "" - } - }, - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-145", - "_parentId": "b-95", - "_type": "component", - "_component": "graphic", - "_classes": "", - "_layout": "right", - "_isOptional": true, - "title": "c-95", - "displayTitle": "", - "body": "", - "instruction": "", - "_graphic": { - "src": "course/en/images/single-width.png", - "alt": "", - "attribution": "" - } - }, - { - "_id": "c-147", - "_parentId": "b-100", - "_type": "component", - "_component": "text", - "_classes": "", - "_layout": "full", - "title": "Scoring bands", - "displayTitle": "", - "body": "The Assessment Results component allows you to specify the assessment pass mark, and provide tailored feedback to as many scoring bands as you wish.

In this short assessment we set the pass mark at 75% or above and provided four scoring bands, each of which has some accompanying feedback. The four scoring bands were:

  • 0-49% (fail)
  • 50-74% (fail)
  • 75-99% (pass)
  • 100% (perfect score)

So, how did you do? Let’s find out.", - "_canReset": true, - "_isResetOnRevisit": "hard", - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "c-150", - "_parentId": "b-105", - "_type": "component", - "_component": "assessmentResults", - "_classes": "", - "_layout": "full", - "_isVisibleBeforeCompletion": false, - "_assessmentId": "a-15", - "title": "Results", - "displayTitle": "Results", - "body": "", - "instruction": "", - "_retry": { - "button": "Retry Assessment", - "_comment": "use {{attempts}}, {{attemptsSpent}} and {{attemptsLeft}} to display attempts", - "feedback": "" - }, - "_comment": "use {{score}}, {{maxScore}} and {{scoreAsPercent}} to display score and percentage", - "_completionBody": "{{{feedback}}}", - "_bands": [ - { - "_score": 0, - "feedback": "You didn’t pass, achieving a score of {{scoreAsPercent}}%.

You didn’t do so well in the Adapt assessment demo, but don’t worry. There’s lots of information about the Adapt basics on our site. We’d also suggest you pay a visit to the forum or chat room and ask our ever-helpful community to answer any questions that you might have.", - "_allowRetry": true - }, - { - "_score": 50, - "feedback": "You didn’t pass, achieving a score of {{scoreAsPercent}}%.

You already know some of the Adapt basics but please explore our site for more information. Also pay a visit to the forum or chat room and ask our ever-helpful community to answer any questions that you might have.", - "_allowRetry": true - }, - { - "_score": 75, - "feedback": "You passed, achieving a score of {{scoreAsPercent}}%.

You’re clearly already pretty knowledgeable about Adapt so, if you haven’t already, please consider sharing your expertise on the Adapt community forums.", - "_allowRetry": true - }, - { - "_score": 100, - "feedback": "You passed, achieving a score of {{scoreAsPercent}}%.

You’re clearly already a black belt in Adapt! If you haven’t already, please consider sharing your expertise on the Adapt community forums.", - "_allowRetry": false - } - ], - "_pageLevelProgress": { - "_isEnabled": true, - "_isCompletionIndicatorEnabled": false - } - } -] diff --git a/src/course/en/contentObjects.json b/src/course/en/contentObjects.json deleted file mode 100755 index 0501c5180..000000000 --- a/src/course/en/contentObjects.json +++ /dev/null @@ -1,74 +0,0 @@ -[ - { - "_id": "co-05", - "_parentId": "course", - "_type": "page", - "_classes": "", - "_htmlClasses": "", - "title": "Presentation Components", - "displayTitle": "Presentation Components", - "body": "Find out what presentation components are available within the core bundle and how you might consider using them within your courses.", - "pageBody": "", - "instruction": "Scroll down to see what presentation components are available as part of the v5 core bundle.", - "_graphic": { - "src": "course/en/images/menu-item.png", - "alt": "" - }, - "linkText": "View", - "duration": "2 mins", - "_pageLevelProgress": { - "_isEnabled": true, - "_showPageCompletion": false, - "_excludeAssessments": false, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "co-10", - "_parentId": "course", - "_type": "page", - "_classes": "", - "_htmlClasses": "", - "title": "Question Components", - "displayTitle": "Question Components", - "body": "Discover what question components are available within the framework, along with some tips on how to use them.", - "pageBody": "Without a range of question components, we can’t easily measure if learners are meeting the intended course objectives, provide guidance and feedback if they’re not, or give them opportunities to practise in a ‘safe environment’.

Discover what question components are available within the framework, along with some tips on how to use them.", - "instruction": "Scroll down to see what question components are available as part of the v5 core bundle.", - "_graphic": { - "src": "course/en/images/menu-item.png", - "alt": "" - }, - "linkText": "View", - "duration": "2 mins", - "_pageLevelProgress": { - "_isEnabled": true, - "_showPageCompletion": false, - "_excludeAssessments": false, - "_isCompletionIndicatorEnabled": false - } - }, - { - "_id": "co-15", - "_parentId": "course", - "_type": "page", - "_classes": "assessment", - "_htmlClasses": "", - "title": "Adapt Assessment", - "displayTitle": "Adapt Assessment", - "body": "Find out more about the assessment functionality introduced in Adapt v2, including randomised banks and an improved results feature.", - "pageBody": "We’ve put together a very short quiz to demonstrate the new assessment functionality. In this simple example there are two banks that each contain three questions with two being taken from each bank at random. The order in which the questions are presented is then also randomised, as is the order of each question’s options.", - "instruction": "Think you can get a perfect score? Scroll down to attempt the first question.", - "_graphic": { - "src": "course/en/images/menu-item.png", - "alt": "" - }, - "linkText": "View", - "duration": "2 mins", - "_pageLevelProgress": { - "_isEnabled": true, - "_showPageCompletion": false, - "_excludeAssessments": false, - "_isCompletionIndicatorEnabled": false - } - } -] diff --git a/src/course/en/course.json b/src/course/en/course.json deleted file mode 100755 index 631374bd0..000000000 --- a/src/course/en/course.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "_id": "course", - "_type": "course", - "_classes": "", - "_htmlClasses": "", - "title": "Adapt v5", - "displayTitle": "Adapt Version 5", - "description": "A sample course demonstrating the capabilities of the Adapt Framework", - "body": "Welcome to the demonstration build for version 5 of the Adapt framework.", - "instruction": "", - "_buttons": { - "_submit": { - "buttonText": "Submit", - "ariaLabel": "Submit" - }, - "_reset": { - "buttonText": "Reset", - "ariaLabel": "Reset" - }, - "_showCorrectAnswer": { - "buttonText": "Show correct answer", - "ariaLabel": "Show correct answer" - }, - "_hideCorrectAnswer": { - "buttonText": "Show your answer", - "ariaLabel": "Show your answer" - }, - "_showFeedback": { - "buttonText": "Show feedback", - "ariaLabel": "Show feedback" - }, - "remainingAttemptsText": "attempts remaining", - "remainingAttemptText": "final attempt", - "disabledAriaLabel": "This button is disabled at the moment" - }, - "_globals": { - "_learnerInfo": { - "id": "student.name@example.org", - "name": "Name, Student", - "firstname": "Student", - "lastname": "Name" - }, - "_accessibility": { - "skipNavigationText": "Skip navigation", - "_ariaLabels": { - "answeredIncorrectly": "You answered incorrectly", - "answeredCorrectly": "You answered correctly", - "selectedAnswer": "selected", - "unselectedAnswer": "not selected", - "skipNavigation": "Skip Navigation", - "previous": "Back", - "navigationDrawer": "Open course resources.", - "close": "Close", - "closeDrawer": "Close drawer", - "closeResources": "Close resources", - "drawer": "Top of side drawer", - "closePopup": "Close popup", - "next": "Next", - "done": "Done", - "complete": "Completed", - "incomplete": "Incomplete", - "incorrect": "Incorrect", - "correct": "Correct", - "locked": "Locked", - "visited": "Visited" - } - } - }, - "_latestTrackingId": 19, - "_pageLevelProgress": { - "_isEnabled": true, - "_showPageCompletion": false, - "_isCompletionIndicatorEnabled": false, - "_isShownInNavigationBar": true - }, - "_resources": { - "_isEnabled": true, - "title": "Resources", - "description": "View resources for this course by clicking here.", - "_filterButtons": { - "all": "All", - "document": "Document", - "media": "Media", - "link": "Link" - }, - "_filterAria": { - "allAria": "View all resources", - "documentAria": "View document resources", - "mediaAria": "View media resources", - "linkAria": "View resource links" - }, - "_resourcesItems": [ - { - "_type": "document", - "title": "Vanilla Theme Swatch", - "description": "See the swatch for the vanilla theme by clicking here.", - "_link": "course/en/images/vanilla-swatch.jpg" - }, - { - "_type": "media", - "title": "Adapt Learning YouTube Channel", - "description": "Fancy catching up on some Adapt material? Click here.", - "_link": "https://www.youtube.com/channel/UCW8SlSFuCc--B66Gf9fAEcQ" - }, - { - "_type": "link", - "title": "Adapt Project Site", - "description": "View the project's web site by clicking here.", - "_link": "https://www.adaptlearning.org/" - }, - { - "_type": "link", - "title": "Framework chat", - "description": "Join the framework chat room by clicking here.", - "_link": "https://gitter.im/adaptlearning/adapt_framework" - } - ] - }, - "_start": { - "_isEnabled": false, - "_startIds": [ - { - "_id": "co-05", - "_skipIfComplete": true, - "_className": "" - } - ], - "_force": false, - "_isMenuDisabled": false - }, - "_assessment": { - "_isPercentageBased": true, - "_scoreToPass": 75, - "_correctToPass": 75 - }, - "_bookmarking": { - "_isEnabled": true, - "_level": "component", - "title": "Resume?", - "body": "Would you like to resume the course from the location you were at last time?", - "_buttons": { - "yes": "Yes", - "no": "No" - } - } -} diff --git a/src/package.json b/src/package.json new file mode 100644 index 000000000..e21748da6 --- /dev/null +++ b/src/package.json @@ -0,0 +1,48 @@ +{ + "name": "adapt-client", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "license": "GPL-3.0", + "dependencies": { + "adapt-contrib-a11y": "*", + "adapt-contrib-accordion": "*", + "adapt-contrib-assessment": "*", + "adapt-contrib-assessmentResults": "*", + "adapt-contrib-blank": "*", + "adapt-contrib-bookmarking": "*", + "adapt-contrib-boxMenu": "*", + "adapt-contrib-core": "*", + "adapt-contrib-data": "*", + "adapt-contrib-device": "*", + "adapt-contrib-drawer": "*", + "adapt-contrib-gmcq": "*", + "adapt-contrib-graphic": "*", + "adapt-contrib-hotgraphic": "*", + "adapt-contrib-languagePicker": "*", + "adapt-contrib-matching": "*", + "adapt-contrib-mcq": "*", + "adapt-contrib-media": "*", + "adapt-contrib-mpabc": "*", + "adapt-contrib-narrative": "*", + "adapt-contrib-navigation": "*", + "adapt-contrib-notify": "*", + "adapt-contrib-pageLevelProgress": "*", + "adapt-contrib-resources": "*", + "adapt-contrib-slider": "*", + "adapt-contrib-spoor": "*", + "adapt-contrib-text": "*", + "adapt-contrib-textInput": "*", + "adapt-contrib-trickle": "*", + "adapt-contrib-tutor": "*", + "adapt-contrib-vanilla": "*", + "bowser": "^2.11.0", + "core-js": "^3.24.1", + "lodash": "^4.17.21", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "semver": "^6.3.0" + } +} From a89bdb54901f052902e2b74cd17609e9e21814bd Mon Sep 17 00:00:00 2001 From: Oliver Foster Date: Thu, 18 Aug 2022 17:33:50 +0100 Subject: [PATCH 2/3] Moved core dependencies into core plugin --- src/package.json | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/src/package.json b/src/package.json index e21748da6..21b12663f 100644 --- a/src/package.json +++ b/src/package.json @@ -7,17 +7,17 @@ }, "license": "GPL-3.0", "dependencies": { - "adapt-contrib-a11y": "*", + "adapt-contrib-a11y": "git+https://github.com/adaptlearning/adapt-contrib-a11y", "adapt-contrib-accordion": "*", "adapt-contrib-assessment": "*", "adapt-contrib-assessmentResults": "*", "adapt-contrib-blank": "*", "adapt-contrib-bookmarking": "*", "adapt-contrib-boxMenu": "*", - "adapt-contrib-core": "*", - "adapt-contrib-data": "*", - "adapt-contrib-device": "*", - "adapt-contrib-drawer": "*", + "adapt-contrib-core": "git+https://github.com/adaptlearning/adapt-contrib-core#issue/v6", + "adapt-contrib-data": "git+https://github.com/adaptlearning/adapt-contrib-data", + "adapt-contrib-device": "git+https://github.com/adaptlearning/adapt-contrib-device", + "adapt-contrib-drawer": "git+https://github.com/adaptlearning/adapt-contrib-drawer", "adapt-contrib-gmcq": "*", "adapt-contrib-graphic": "*", "adapt-contrib-hotgraphic": "*", @@ -25,10 +25,10 @@ "adapt-contrib-matching": "*", "adapt-contrib-mcq": "*", "adapt-contrib-media": "*", - "adapt-contrib-mpabc": "*", + "adapt-contrib-mpabc": "git+https://github.com/adaptlearning/adapt-contrib-mpabc", "adapt-contrib-narrative": "*", - "adapt-contrib-navigation": "*", - "adapt-contrib-notify": "*", + "adapt-contrib-navigation": "git+https://github.com/adaptlearning/adapt-contrib-navigation", + "adapt-contrib-notify": "git+https://github.com/adaptlearning/adapt-contrib-notify", "adapt-contrib-pageLevelProgress": "*", "adapt-contrib-resources": "*", "adapt-contrib-slider": "*", @@ -37,12 +37,6 @@ "adapt-contrib-textInput": "*", "adapt-contrib-trickle": "*", "adapt-contrib-tutor": "*", - "adapt-contrib-vanilla": "*", - "bowser": "^2.11.0", - "core-js": "^3.24.1", - "lodash": "^4.17.21", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "semver": "^6.3.0" + "adapt-contrib-vanilla": "*" } } From bce8ce39d1760394c6764724167c467bf8bfa3ee Mon Sep 17 00:00:00 2001 From: Oliver Foster Date: Thu, 18 Aug 2022 17:41:37 +0100 Subject: [PATCH 3/3] Fixed watch tasks --- grunt/config/watch.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grunt/config/watch.js b/grunt/config/watch.js index c486efd4c..5d6a0bc47 100644 --- a/grunt/config/watch.js +++ b/grunt/config/watch.js @@ -1,7 +1,7 @@ module.exports = { courseJson: { files: ['<%= outputdir %><%= coursedir %>/**/*.<%= jsonext %>', '<%= outputdir %><%= coursedir %>/*/language_data_manifest.js', '<%= sourcedir %>/node_modules/adapt-*/**/*.schema', '<%= sourcedir %>/node_modules/adapt-*/**/*.schema.json'], - tasks: ['language-data-manifests', 'jsonlint', 'check-json', 'newer:copy:courseJson', 'schema-defaults'] + tasks: ['language-data-manifests', 'jsonlint', 'check-json', 'schema-defaults'] }, packageJson: { files: ['<%= sourcedir %>/node_modules/adapt-*/package.json', '<%= sourcedir %>/node_modules/adapt-*/bower.json'], @@ -26,11 +26,11 @@ module.exports = { }, assets: { files: ['<%= sourcedir %>/node_modules/adapt-*/assets/**'], - tasks: ['newer:copy:componentAssets'] + tasks: ['newer:copy:assets'] }, fonts: { files: ['<%= sourcedir %>/node_modules/adapt-*/fonts/**'], - tasks: ['newer:copy:componentFonts'] + tasks: ['newer:copy:fonts'] }, libraries: { files: ['<%= sourcedir %>/node_modules/adapt-*/libraries/**'],