'; };
-};
-
-var oldMarkdownList = function(md) {
- md.block.ruler.after('hr', 'pyMarkdownList', pymarkdownList);
-};
-
-var WATERBUTLER_REGEX = new RegExp(window.contextVars.waterbutlerURL + 'v1\/resources\/[a-zA-Z0-9]{1,}\/providers\/[a-z0-9]{1,}\/');
-
-var viewOnlyImage = function(md) {
- var defaultRenderer = md.renderer.rules.image;
- md.renderer.rules.image = function (tokens, idx, options, env, self) {
- var token = tokens[idx];
- var imageLink = token.attrs[token.attrIndex('src')][1];
- if (imageLink.match(WATERBUTLER_REGEX) && $osf.urlParams().view_only) {
- token = tokens[idx];
- imageLink = token.attrs[token.attrIndex('src')][1];
- token.attrs[token.attrIndex('src')][1] = imageLink + '&view_only=' + $osf.urlParams().view_only;
- tokens[idx] = token;
- }
- return defaultRenderer(tokens, idx, options, env, self);
- };
-};
-
-var mfrURL = window.contextVars.node.urls.mfr;
-var osfURL = window.contextVars.osfURL;
-
-var getMfrUrl = function (guid) {
- var mfrLink = mfrURL + 'render?url='+ osfURL + guid + '/download/?action=download%26mode=render';
- if ($osf.urlParams().view_only) {
- mfrLink += '%26view_only=' + $osf.urlParams().view_only;
- }
- return mfrLink;
-};
-
-var mfrId = 0;
-
-// Full markdown renderer for views / wiki pages / pauses between typing
-var markdown = new MarkdownIt('commonmark', {
- highlight: highlighter,
- linkify: true
- }).use(require('@centerforopenscience/markdown-it-atrules'), {
- type: 'osf',
- pattern: /^http(?:s?):\/\/(?:www\.)?[a-zA-Z0-9 .:]{1,}\/render\?url=http(?:s?):\/\/[a-zA-Z0-9 .:]{1,}\/([a-zA-Z0-9]{1,})\/\?action=download|(^[a-zA-Z0-9]{1,}$)/,
- format: function(assetID) {
- var id = '__markdown-it-atrules-' + mfrId++;
- return '' +
- '';
- }
- })
- .use(require('@centerforopenscience/markdown-it-video'))
- .use(require('@centerforopenscience/markdown-it-toc'))
- .use(require('markdown-it-sanitizer'))
- .use(viewOnlyImage)
- .use(require('@centerforopenscience/markdown-it-imsize'))
- .use(insDel)
- .enable('table')
- .enable('linkify')
- .use(bootstrapTable)
- .disable('strikethrough');
-
-
-// Fast markdown renderer for active editing to prevent slow loading/rendering tasks
-var markdownQuick = new MarkdownIt('commonmark', { linkify: true })
- .use(require('markdown-it-sanitizer'))
- .use(viewOnlyImage)
- .use(require('@centerforopenscience/markdown-it-imsize'))
- .disable('link')
- .disable('image')
- .use(insDel)
- .enable('table')
- .enable('linkify')
- .use(bootstrapTable)
- .disable('strikethrough');
-
-// Markdown renderer for older wikis rendered before switch date
-var markdownOld = new MarkdownIt('commonmark', { linkify: true})
- .use(require('markdown-it-sanitizer'))
- .use(require('@centerforopenscience/markdown-it-imsize'))
- .use(insDel)
- .enable('table')
- .enable('linkify')
- .use(bootstrapTable)
- .use(oldMarkdownList)
- .disable('strikethrough');
-
-module.exports = {
- full: markdown,
- quick: markdownQuick,
- old: markdownOld
-};
diff --git a/website/static/js/pages/project-dashboard-page.js b/website/static/js/pages/project-dashboard-page.js
deleted file mode 100644
index 04cf9ffe5e2..00000000000
--- a/website/static/js/pages/project-dashboard-page.js
+++ /dev/null
@@ -1,470 +0,0 @@
-/** Initialization code for the project overview page. */
-'use strict';
-
-var $ = require('jquery');
-require('jquery-tagsinput');
-require('bootstrap-editable');
-require('js/osfToggleHeight');
-
-var m = require('mithril');
-var Fangorn = require('js/fangorn').Fangorn;
-var Raven = require('raven-js');
-require('truncate');
-
-var $osf = require('js/osfHelpers');
-var LogFeed = require('js/components/logFeed');
-var pointers = require('js/pointers');
-var Comment = require('js/comment'); //jshint ignore:line
-var NodeControl = require('js/nodeControl');
-var CitationList = require('js/citationList');
-var CitationWidget = require('js/citationWidget');
-var mathrender = require('js/mathrender');
-var md = require('js/markdown').full;
-var oldMd = require('js/markdown').old;
-var AddProject = require('js/addProjectPlugin');
-var SocialShare = require('js/components/socialshare');
-
-var ctx = window.contextVars;
-var node = window.contextVars.node;
-var nodeApiUrl = ctx.node.urls.api;
-var nodeCategories = ctx.nodeCategories || [];
-var currentUserRequestState = ctx.currentUserRequestState;
-const tracker = require('js/components/tracker');
-
-// Listen for the nodeLoad event (prevents multiple requests for data)
-$('body').on('nodeLoad', function(event, data) {
- if (!data.node.is_retracted) {
- // Initialize controller for "Add Links" modal
- new pointers.PointerManager('#addPointer', window.contextVars.node.title);
- }
- // Initialize CitationWidget if user isn't viewing through an anonymized VOL
- if (!data.node.anonymous && !data.node.is_retracted) {
- new CitationList('#citationList');
- new CitationWidget('#citationStyleInput', '#citationText');
- }
-
- if (data.node.identifiers.doi) {
- tracker.trackView(data.node.identifiers.doi);
- }
-
- // Initialize nodeControl
- new NodeControl.NodeControl('#projectScope', data, {categories: nodeCategories, currentUserRequestState: currentUserRequestState});
-
- // Enable the otherActionsButton once the page is loaded so the menu is properly populated
- $('#otherActionsButton').removeClass('disabled');
-});
-
-// Initialize comment pane w/ its viewmodel
-var $comments = $('.comments');
-if ($comments.length) {
- var options = {
- nodeId : window.contextVars.node.id,
- nodeApiUrl: window.contextVars.node.urls.api,
- isRegistration: window.contextVars.node.isRegistration,
- page: 'node',
- rootId: window.contextVars.node.id,
- fileId: null,
- canComment: window.contextVars.currentUser.canComment,
- currentUser: window.contextVars.currentUser,
- pageTitle: window.contextVars.node.title,
- inputSelector: '.atwho-input'
- };
- Comment.init('#commentsLink', '.comment-pane', options);
-}
-var institutionLogos = {
- controller: function(args){
- var self = this;
- self.institutions = args.institutions;
- self.nLogos = self.institutions.length;
- self.side = self.nLogos > 1 ? (self.nLogos === 2 ? '50px' : '35px') : '75px';
- self.width = self.nLogos > 1 ? (self.nLogos === 2 ? '115px' : '86px') : '75px';
- self.makeLogo = function(institution){
- return m('a', {href: '/institutions/' + institution.id},
- m('img', {
- height: self.side, width: self.side,
- style: {margin: '3px'},
- title: institution.name,
- src: institution.logo_path
- })
- );
- };
- },
- view: function(ctrl, args){
- var tooltips = function(){
- $('[data-toggle="tooltip"]').tooltip();
- };
- var instCircles = $.map(ctrl.institutions, ctrl.makeLogo);
- if (instCircles.length > 4){
- instCircles[3] = m('.fa.fa-plus-square-o', {
- style: {margin: '6px', fontSize: '250%', verticalAlign: 'middle'},
- });
- instCircles.splice(4);
- }
-
- return m('', {style: {float: 'left', width: ctrl.width, textAlign: 'center', marginRight: '10px'}, config: tooltips}, instCircles);
- }
-};
-
-
-$(document).ready(function () {
- // activate bootstrap popovers
- $('[data-toggle="popover"]').popover();
- // Allows dropdown elements to persist after being clicked
- // Used for the "Share" button in the more actions menu
- $('.dropdown').on('click', 'li', function (evt) {
- var target = $(evt.target);
- // If the clicked element has .keep-open, don't allow the event to propagate
- return !(target.hasClass('keep-open') || target.parents('.keep-open').length);
- });
- var collectionsActionsURL = $osf.apiV2Url('collection_submission_actions/');
-
- $('.collections-retry-icon').on('click', function (evt) {
- var target = $(evt.target);
- var payload = {
- data: {
- type: 'collection-submission-actions',
- attributes: {
- comment: 'Resubmitted via project overview page',
- trigger: 'resubmit',
- },
- relationships: {
- target: {
- data: {
- id: evt.target.getAttribute('node_id') + '-' + evt.target.getAttribute('collection_id'),
- type: 'collection-submission',
- }
- }
- }
- }
- };
-
- var request = $osf.ajaxJSON(
- 'POST',
- collectionsActionsURL,
- {
- data: payload,
- isCors: true
- }
- );
- request.done(function(resp) {
- location.reload();
- });
- });
- $('.collections-cancel-icon').on('click', function (evt) {
- var target = $(evt.target);
- var payload = {
- data: {
- type: 'collection-submission-actions',
- attributes: {
- comment: 'Canceled via project overview page',
- trigger: 'cancel',
- },
- relationships: {
- target: {
- data: {
- id: evt.target.getAttribute('node_id') + '-' + evt.target.getAttribute('collection_id'),
- type: 'collection-submission',
- }
- }
- }
- }
- };
-
- var request = $osf.ajaxJSON(
- 'POST',
- collectionsActionsURL,
- {
- data: payload,
- isCors: true
- }
- );
- request.done(function(resp) {
- location.reload();
- });
- });
-
- $('#collections-header').on('click', function (evt) {
- if ($('#collections-header>.pull-left').css('display') === 'block') {
- $('.collection-pencil').css('display', 'inherit');
- $('#collections-header>.pull-left').css('display', 'none');
- $('#collections-header').css('height', '0px');
- $('#collections-header').css('margin', '0px');
- $('#collections-caret-down').css('padding', '20px');
- $('#collections-caret-down>.fa').toggleClass('fa-angle-down');
- $('#collections-caret-down>.fa').toggleClass(' fa-angle-up');
- } else {
- $('.collection-pencil').css('display', 'none');
- $('#collections-header>.pull-left').css('display', 'block');
- $('#collections-header').css('height', 'inherit');
- $('#collections-header').css('margin', '10px');
- $('#collections-caret-down').css('padding', '10px');
- $('#collections-caret-down>.fa').toggleClass('fa-angle-down');
- $('#collections-caret-down>.fa').toggleClass(' fa-angle-up');
-
- }
- });
-
- var AddComponentButton = m.component(AddProject, {
- buttonTemplate: m('.btn.btn-sm.btn-default[data-toggle="modal"][data-target="#addSubComponent"]', {onclick: function() {
- $osf.trackClick('project-dashboard', 'add-component', 'open-add-project-modal');
- }}, 'Add Component'),
- modalID: 'addSubComponent',
- title: 'Create new component',
- parentID: window.contextVars.node.id,
- parentTitle: window.contextVars.node.title,
- categoryList: nodeCategories,
- stayCallback: function() {
- // We need to reload because the components list needs to be re-rendered serverside
- window.location.reload();
- },
- trackingCategory: 'project-dashboard',
- trackingAction: 'add-component',
- contributors: window.contextVars.node.contributors,
- currentUserCanEdit: window.contextVars.currentUser.canEdit
- });
-
- if (!ctx.node.isRetracted) {
- if (ctx.node.institutions.length && !ctx.node.anonymous) {
- m.mount(document.getElementById('instLogo'), m.component(institutionLogos, {institutions: window.contextVars.node.institutions}));
- }
- $('#contributorsList').osfToggleHeight();
-
- // Recent Activity widget
- m.mount(document.getElementById('logFeed'), m.component(LogFeed.LogFeed, {node: node}));
-
- // Treebeard Files view
- var urlFilesGrid = nodeApiUrl + 'files/grid/';
- var promise = m.request({ method: 'GET', config: $osf.setXHRAuthorization, url: urlFilesGrid});
- promise.then(function (data) {
- var newComponentElem = document.getElementById('newComponent');
- if (window.contextVars.node.isPublic) {
- m.mount(
- document.getElementById('shareButtonsPopover'),
- m.component(
- SocialShare.ShareButtonsPopover,
- {title: window.contextVars.node.title, url: window.location.href, type: 'link'}
- )
- );
- }
- if (newComponentElem) {
- m.mount(newComponentElem, AddComponentButton);
- }
- var fangornOpts = {
- divID: 'treeGrid',
- filesData: data.data,
- allowMove: !node.isRegistration,
- uploads : true,
- showFilter : true,
- placement: 'dashboard',
- title : undefined,
- filterFullWidth : true, // Make the filter span the entire row for this view
- xhrconfig: $osf.setXHRAuthorization,
- columnTitles : function () {
- return [
- {
- title: 'Name',
- width : '70%',
- sort : true,
- sortType : 'text'
- },
- {
- title: 'Modified',
- width : '30%',
- sort : true,
- sortType : 'text'
- }
- ];
- },
- resolveRows : function (item) {
- var tb = this;
- item.css = '';
- if(tb.isMultiselected(item.id)){
- item.css = 'fangorn-selected';
- }
- if(item.data.permissions && !item.data.permissions.view){
- item.css += ' tb-private-row';
- }
- var defaultColumns = [
- {
- data: 'name',
- folderIcons: true,
- filter: true,
- custom: Fangorn.DefaultColumns._fangornTitleColumn},
- {
- data: 'modified',
- folderIcons: false,
- filter: false,
- custom: Fangorn.DefaultColumns._fangornModifiedColumn
- }];
- if (item.parentID) {
- item.data.permissions = item.data.permissions || item.parent().data.permissions;
- if (item.data.kind === 'folder') {
- item.data.accept = item.data.accept || item.parent().data.accept;
- }
- }
- if(item.data.uploadState && (item.data.uploadState() === 'pending' || item.data.uploadState() === 'uploading')){
- return Fangorn.Utils.uploadRowTemplate.call(tb, item);
- }
-
- var configOption = Fangorn.Utils.resolveconfigOption.call(this, item, 'resolveRows', [item]);
- return configOption || defaultColumns;
- }
- };
- var filebrowser = new Fangorn(fangornOpts);
- window.contextVars.node.activeAddons = data.data[0].activeAddons;
- return promise;
- }, function(xhr, textStatus, error) {
- Raven.captureMessage('Error retrieving filebrowser', {extra: {url: urlFilesGrid, textStatus: textStatus, error: error}});
- }
-
- );
-
- }
-
- // Tooltips
- $('[data-toggle="tooltip"]').tooltip({container: 'body'});
-
- // Tag input
- var nodeType = window.contextVars.node.isRegistration ? 'registrations':'nodes';
- var tagsApiUrl = $osf.apiV2Url(nodeType + '/' + window.contextVars.node.id + '/');
- $('#node-tags').tagsInput({
- width: '100%',
- interactive: window.contextVars.currentUser.canEditTags,
- maxChars: 128,
- defaultText: 'Add a tag to enhance discoverability',
- onAddTag: function(tag) {
- $('#node-tags_tag').attr('data-default', 'Add a tag');
- window.contextVars.node.tags.push(tag);
- var payload = {
- data: {
- type: nodeType,
- id: window.contextVars.node.id,
- attributes: {
- tags: window.contextVars.node.tags
- }
- }
- };
-
- var request = $osf.ajaxJSON(
- 'PATCH',
- tagsApiUrl,
- {
- data: payload,
- isCors: true
- }
- );
-
- request.fail(function(xhr, textStatus, error) {
- window.contextVars.node.tags.splice(window.contextVars.node.tags.indexOf(tag),1);
- Raven.captureMessage('Failed to add tag', {
- extra: {
- tag: tag, url: tagsApiUrl, textStatus: textStatus, error: error
- }
- });
- });
- },
- onRemoveTag: function(tag) {
- if (!tag) {
- return false;
- }
- window.contextVars.node.tags.splice(window.contextVars.node.tags.indexOf(tag),1);
- var payload = {
- data: {
- type: nodeType,
- id: window.contextVars.node.id,
- attributes: {
- tags: window.contextVars.node.tags
- }
- }
- };
-
- var request = $osf.ajaxJSON(
- 'PATCH',
- tagsApiUrl,
- {
- data: payload,
- isCors: true
- }
- );
-
- request.fail(function(xhr, textStatus, error) {
- window.contextVars.node.tags.push(tag);
- // Suppress "tag not found" errors, as the end result is what the user wanted (tag is gone)- eg could be because two people were working at same time
- if (xhr.status !== 409) {
- $osf.growl('Error', 'Could not remove tag');
- Raven.captureMessage('Failed to remove tag', {
- extra: {
- tag: tag, url: tagsApiUrl, textStatus: textStatus, error: error
- }
- });
- }
- });
- }
- });
- $('#node-tags_tag').attr('aria-label', 'Tags Input');
-
- // allows inital default message to fit on empty tag
- if(!$('.tag').length){
- $('#node-tags_tag').css('width', '250px');
- }
-
- $('#addPointer').on('shown.bs.modal', function(){
- if(!$osf.isIE()){
- $('#addPointer input').focus();
- }
- });
-
- // Limit the maximum length that you can type when adding a tag
- $('#node-tags_tag').attr('maxlength', '128');
-
- // Wiki widget markdown rendering
- if (ctx.wikiWidget) {
- // Render math in the wiki widget
- var markdownElement = $('#markdownRender');
- mathrender.mathjaxify(markdownElement);
-
- // Render the raw markdown of the wiki
- var request = $.ajax({
- url: ctx.urls.wikiContent
- });
- request.done(function(resp) {
- var rawText;
- if(resp.wiki_content){
- rawText = resp.wiki_content;
- } else if(window.contextVars.currentUser.canEdit) {
- rawText = '*Add important information, links, or images here to describe your project.*';
- } else {
- rawText = '*No wiki content.*';
- }
-
- var renderedText = ctx.renderedBeforeUpdate ? oldMd.render(rawText) : md.render(rawText);
- // don't truncate the text when length = 400
- var truncatedText = $.truncate(renderedText, {length: 401});
- markdownElement.html(truncatedText);
- mathrender.mathjaxify(markdownElement);
- markdownElement.show();
- });
- }
-
- // Remove delete UI if not contributor
- if (!window.contextVars.currentUser.canEditTags) {
- $('a[title="Removing tag"]').remove();
- $('span.tag span').each(function(idx, elm) {
- $(elm).text($(elm).text().replace(/\s*$/, ''));
- });
- }
-
- // Show or hide collection details
- if ($('.collection-details').length) {
- $('.collection-details').each( function() {
- var caret = '#' + $(this).attr('id') + '-toggle';
- $(this).on('hidden.bs.collapse', function(e) {
- $(caret).removeClass('fa-angle-up')
- .addClass('fa-angle-down');
- }).on('shown.bs.collapse', function(e) {
- $(caret).removeClass('fa-angle-down')
- .addClass('fa-angle-up');
- });
- });
- }
-});
diff --git a/website/static/js/pages/wiki-edit-page.js b/website/static/js/pages/wiki-edit-page.js
deleted file mode 100644
index f9f40ff918d..00000000000
--- a/website/static/js/pages/wiki-edit-page.js
+++ /dev/null
@@ -1,222 +0,0 @@
-'use strict';
-
-var $ = require('jquery');
-var Raven = require('raven-js');
-require('bootstrap-editable');
-require('osf-panel');
-
-var WikiPage = require('wikiPage');
-
-require('ace-noconflict');
-require('ace-mode-markdown');
-require('ace-ext-language_tools');
-require('addons/wiki/static/ace-markdown-snippets.js');
-require('../../vendor/ace-plugins/spellcheck_ace.js');
-
-var WikiMenu = require('../wikiMenu');
-var Comment = require('js/comment'); //jshint ignore:line
-var $osf = require('js/osfHelpers');
-
-var ctx = window.contextVars.wiki; // mako context variables
-
-var editable = (ctx.panelsUsed.indexOf('edit') !== -1);
-var viewable = (ctx.panelsUsed.indexOf('view') !== -1);
-var comparable = (ctx.panelsUsed.indexOf('compare') !== -1);
-var menuVisible = (ctx.panelsUsed.indexOf('menu') !== -1);
-
-var viewVersion = ctx.versionSettings.view || (editable ? 'preview' : 'current');
-var compareVersion = ctx.versionSettings.compare || 'previous';
-
-var wikiPageOptions = {
- editVisible: editable,
- viewVisible: viewable,
- compareVisible: comparable,
- menuVisible: menuVisible,
- canEdit: ctx.canEdit,
- viewVersion: viewVersion,
- compareVersion: compareVersion,
- urls: ctx.urls,
- metadata: ctx.metadata
-};
-
-var wikiPage = new WikiPage('#wikiPageContext', wikiPageOptions);
-
-
-// Edit wiki page name
-if (ctx.canEditPageName) {
- // Initialize editable wiki page name
- var $pageName = $('#pageName');
- $.fn.editable.defaults.mode = 'inline';
- $pageName.editable({
- type: 'text',
- send: 'always',
- url: ctx.urls.rename,
- ajaxOptions: {
- type: 'put',
- contentType: 'application/json',
- dataType: 'json'
- },
- validate: function(value) {
- if($.trim(value) === ''){
- return 'The wiki page name cannot be empty.';
- } else if(value.length > 100){
- return 'The wiki page name cannot be more than 100 characters.';
- }
- },
- params: function(params) {
- return JSON.stringify(params);
- },
- success: function(response, value) {
- window.location.href = ctx.urls.base + encodeURIComponent(value) + '/';
- },
- error: function(response) {
- var msg = response.responseJSON.message_long;
- if (msg) {
- return msg;
- } else {
- // Log unexpected error with Raven
- Raven.captureMessage('Error in renaming wiki', {
- extra: {
- url: ctx.urls.rename,
- responseText: response.responseText,
- statusText: response.statusText
- }
- });
- return 'An unexpected error occurred. Please try again.';
- }
- }
- });
-}
-
-// Apply panels
-$(document).ready(function () {
- var errorMsg = $('#wikiErrorMessage');
- var grid = $('#grid');
- // Treebeard Wiki Menu
- $.ajax({
- url: ctx.urls.grid
- })
- .done(function (data) {
- new WikiMenu(data, ctx.wikiID, ctx.canEdit);
- })
- .fail(function(xhr, status, error) {
- grid.addClass('hidden');
- errorMsg.removeClass('hidden');
- errorMsg.append('Could not retrieve wiki pages. If this issue persists, ' +
- 'please report it to ' + $osf.osfSupportLink());
- Raven.captureMessage('Could not GET wiki menu pages', {
- extra: { url: ctx.urls.grid, status: status, error: error }
- });
- });
-
- var bodyElement = $('body');
-
- $('*[data-osf-panel]').osfPanel({
- buttonElement : '.switch',
- onSize : 'xs',
- 'onclick' : function (event, title, buttonState, thisbtn, col) {
- // this = all the column elements; an array
- // title = Text of the button
- // buttonState = the visibility of column after click, taen from data-osf-toggle attribute,
- // thisbtn = $(this);
- // col = the $() for the column this button links to
-
- // Determine if any columns are visible
- var visibleColumns = this.filter(function (i, element) {
- return $(element).is(':visible');
- });
-
- if (visibleColumns.length === 0) {
- thisbtn.click();
- return;
- }
-
- bodyElement.trigger('togglePanel', [
- title.toLowerCase(),
- buttonState
- ]);
- if (typeof editor !== 'undefined') { ace.edit(editor).resize(); } // jshint ignore: line
- },
- complete : function() {
- if (typeof editor !== 'undefined') { ace.edit(editor).resize(); } // jshint ignore: line
- }
- });
-
- var panelToggle = $('.panel-toggle');
- var panelExpand = $('.panel-expand');
- $('.panel-collapse').on('click', function () {
- var el = $(this).closest('.panel-toggle');
- el.children('.osf-panel').addClass('hidden');
- el.children('.osf-panel').addClass('visible-xs');
- panelToggle.removeClass('col-sm-3').addClass('col-sm-1');
- panelExpand.removeClass('col-sm-9').addClass('col-sm-11');
- el.children('.panel-collapsed').removeClass('hidden');
- el.children('.panel-collapsed').removeClass('visible-xs');
- $('.wiki-nav').removeClass('hidden');
-
- bodyElement.trigger('toggleMenu', [false]);
- });
- $('.panel-collapsed .panel-heading').on('click', function () {
- var el = $(this).parent();
- var toggle = el.closest('.panel-toggle');
- toggle.children('.osf-panel').removeClass('hidden');
- toggle.children('.osf-panel').removeClass('visible-xs');
- el.addClass('hidden');
- panelToggle.removeClass('col-sm-1').addClass('col-sm-3');
- panelExpand.removeClass('col-sm-11').addClass('col-sm-9');
- $('.wiki-nav').addClass('hidden');
- bodyElement.trigger('toggleMenu', [true]);
- });
-
- // Tooltip
- $('[data-toggle="tooltip"]').tooltip();
-});
-
-var $comments = $('.comments');
-if ($comments.length && window.contextVars.wiki.wikiID !== null) {
- var options = {
- nodeId: window.contextVars.node.id,
- nodeApiUrl: window.contextVars.node.urls.api,
- isRegistration: window.contextVars.node.isRegistration,
- page: 'wiki',
- rootId: window.contextVars.wiki.wikiID,
- fileId: null,
- canComment: window.contextVars.currentUser.canComment,
- currentUser: window.contextVars.currentUser,
- pageTitle: window.contextVars.wiki.wikiName,
- inputSelector: '.atwho-input'
- };
- Comment.init('#commentsLink', '.comment-pane', options);
-}
-
-// Disable backspace sending you back a page in firefox. This is just a usability fix because users
-// tend to click out of the text box while it loads MFR embeds, then press backspace, believing the
-// cursor is still active.
-// https://stackoverflow.com/questions/1495219/how-can-i-prevent-the-backspace-key-from-navigating-back
-$(document).unbind('keydown').bind('keydown', function (event) {
- if (event.keyCode === 8) {
- var doPrevent = true;
- var types = ['text', 'password', 'file', 'search', 'email', 'number', 'date', 'color', 'datetime', 'datetime-local', 'month', 'range', 'search', 'tel', 'time', 'url', 'week'];
- var d = $(event.srcElement || event.target);
- var disabled = d.prop('readonly') || d.prop('disabled');
- if (!disabled) {
- if (d[0].isContentEditable) {
- doPrevent = false;
- } else if (d.is('input')) {
- var type = d.attr('type');
- if (type) {
- type = type.toLowerCase();
- }
- if (types.indexOf(type) > -1) {
- doPrevent = false;
- }
- } else if (d.is('textarea')) {
- doPrevent = false;
- }
- }
- if (doPrevent) {
- event.preventDefault();
- return false;
- }
- }
-});
diff --git a/website/templates/project/project.mako b/website/templates/project/project.mako
index edd88d87d65..111b6799ed1 100644
--- a/website/templates/project/project.mako
+++ b/website/templates/project/project.mako
@@ -842,4 +842,4 @@ ${parent.javascript_bottom()}
% endfor
-%def>
+%def>
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index 70f26dd5a2f..ed2280689a2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,28 +7,6 @@
resolved "https://registry.yarnpkg.com/@centerforopenscience/list-of-licenses/-/list-of-licenses-1.1.0.tgz#2a4379633409205047e723e21cd818560a29ab45"
integrity sha512-EGU7gpRXczqC4TAlfKBiLzRaopxxZkL86kwS8/qdZdmRjTpG872z+bRd5E4ZJivxHBLpVpts5nK/bz4MsbdhTA==
-"@centerforopenscience/markdown-it-atrules@^0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@centerforopenscience/markdown-it-atrules/-/markdown-it-atrules-0.1.1.tgz#16616c0ac54bb29700f99a8aab76dd805b48ce59"
- integrity sha512-r3ZTJESVCpdU9tOQe2PVcUkJmrPA/1itvCtHpsJrhXMj/nY7JcESjgMSFEe432DcofXDzRF8kXW1XWQuH1BfMw==
- dependencies:
- np "^3.0.4"
-
-"@centerforopenscience/markdown-it-imsize@2.0.1":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@centerforopenscience/markdown-it-imsize/-/markdown-it-imsize-2.0.1.tgz#bdfc7602bfffe9faeed9ee0278185535d8b001ae"
- integrity sha512-PV6UGXJobGfJjt+H/A4wIOyrobjflVIrTYvE1RAQU/TTmCEVvnT5Os4TfziEWhKNfaB/IGRTphjQI8jDokPdjw==
-
-"@centerforopenscience/markdown-it-toc@~1.1.1":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@centerforopenscience/markdown-it-toc/-/markdown-it-toc-1.1.1.tgz#633c6367cf783a51a080e75a9cd62fd62037e140"
- integrity sha512-xzfwi99vziqpE8cEmcAWiSNGA2pCg/F5XO/GsWo89J1qzFt4udlOiqzW8+yjtfEPQhDY3KLB62QVN4yudeBUYA==
-
-"@centerforopenscience/markdown-it-video@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@centerforopenscience/markdown-it-video/-/markdown-it-video-1.0.0.tgz#4c1ab932ccb25c17a8992daa12168d0aea622664"
- integrity sha512-6TOHqcRy7eg09aCcXLYCvLk87eMuFB8P1rBonpjJPcz++FQdEL5834c1Vq8vCePabKY2Scg3DNagRIblagXjXg==
-
"@centerforopenscience/osf-style@1.9.0":
version "1.9.0"
resolved "https://registry.yarnpkg.com/@centerforopenscience/osf-style/-/osf-style-1.9.0.tgz#0ab5cb17e2c531aafcc19e226f36ff86b734116e"
@@ -63,25 +41,6 @@
resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-3.0.2.tgz#275ab6bc04977e145b072ba18c24779eb3427073"
integrity sha512-cmp/nT0pPC7HUALF8uc3+D5ECwEBWxYQbOIHwtGUWEu72sWtZc26k5onr920HWOViF0nYaC+Qzz6Ln56SQcaVg==
-"@samverschueren/stream-to-observable@^0.3.0":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301"
- integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==
- dependencies:
- any-observable "^0.3.0"
-
-"@sindresorhus/is@^0.14.0":
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
- integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
-
-"@szmarczak/http-timer@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
- integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
- dependencies:
- defer-to-connect "^1.0.1"
-
URIjs@^1.14.1:
version "1.16.1"
resolved "https://registry.yarnpkg.com/URIjs/-/URIjs-1.16.1.tgz#edebc678b8b74b26b05d2b481e12383f5ae04b8b"
@@ -144,18 +103,6 @@ amdefine@>=0.0.4:
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
-ansi-align@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f"
- integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=
- dependencies:
- string-width "^2.0.0"
-
-ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
- integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
-
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
@@ -178,11 +125,6 @@ ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
-any-observable@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
- integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
-
aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
@@ -195,33 +137,6 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
-argparse@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
- integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
-
-array-find-index@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
- integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
-
-array-union@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
- integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
- dependencies:
- array-uniq "^1.0.1"
-
-array-uniq@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
- integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-
-arrify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
- integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-
asn1.js@^5.2.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
@@ -277,132 +192,6 @@ babel-code-frame@^6.26.0:
esutils "^2.0.2"
js-tokens "^3.0.2"
-babel-core@^6.0.0, babel-core@^6.26.0:
- version "6.26.3"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
- integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
- dependencies:
- babel-code-frame "^6.26.0"
- babel-generator "^6.26.0"
- babel-helpers "^6.24.1"
- babel-messages "^6.23.0"
- babel-register "^6.26.0"
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- convert-source-map "^1.5.1"
- debug "^2.6.9"
- json5 "^0.5.1"
- lodash "^4.17.4"
- minimatch "^3.0.4"
- path-is-absolute "^1.0.1"
- private "^0.1.8"
- slash "^1.0.0"
- source-map "^0.5.7"
-
-babel-generator@^6.26.0:
- version "6.26.1"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
- integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==
- dependencies:
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- detect-indent "^4.0.0"
- jsesc "^1.3.0"
- lodash "^4.17.4"
- source-map "^0.5.7"
- trim-right "^1.0.1"
-
-babel-helpers@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
- integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=
- dependencies:
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-loader@^6.4.1:
- version "6.4.1"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca"
- integrity sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=
- dependencies:
- find-cache-dir "^0.1.1"
- loader-utils "^0.2.16"
- mkdirp "^0.5.1"
- object-assign "^4.0.1"
-
-babel-messages@^6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
- integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-register@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
- integrity sha1-btAhFz4vy0htestFxgCahW9kcHE=
- dependencies:
- babel-core "^6.26.0"
- babel-runtime "^6.26.0"
- core-js "^2.5.0"
- home-or-tmp "^2.0.0"
- lodash "^4.17.4"
- mkdirp "^0.5.1"
- source-map-support "^0.4.15"
-
-babel-runtime@^6.22.0, babel-runtime@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
- integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.11.0"
-
-babel-template@^6.24.1, babel-template@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
- integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=
- dependencies:
- babel-runtime "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- lodash "^4.17.4"
-
-babel-traverse@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
- integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
- dependencies:
- babel-code-frame "^6.26.0"
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- debug "^2.6.8"
- globals "^9.18.0"
- invariant "^2.2.2"
- lodash "^4.17.4"
-
-babel-types@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
- integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
- dependencies:
- babel-runtime "^6.26.0"
- esutils "^2.0.2"
- lodash "^4.17.4"
- to-fast-properties "^1.0.3"
-
-babylon@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
- integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-
balanced-match@^0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
@@ -483,19 +272,6 @@ bower@^1.8.8:
resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.13.tgz#5892f391f47134db88ea93d4c91a31f09792dc58"
integrity sha512-8eWko16JlCTdaZZG70kddHPed17pHEbH8/IjfP4IFkQsfEqRsyNM09Dc8cDBFkSvtQ/2lTea7A+bMhRggG2a+Q==
-boxen@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b"
- integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==
- dependencies:
- ansi-align "^2.0.0"
- camelcase "^4.0.0"
- chalk "^2.0.1"
- cli-boxes "^1.0.0"
- string-width "^2.0.0"
- term-size "^1.2.0"
- widest-line "^2.0.0"
-
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -602,11 +378,6 @@ builtin-status-codes@^3.0.0:
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
-builtins@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
- integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og=
-
bytes@3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
@@ -638,34 +409,12 @@ cacache@^10.0.4:
unique-filename "^1.1.0"
y18n "^4.0.0"
-cacheable-request@^6.0.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
- integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
- dependencies:
- clone-response "^1.0.2"
- get-stream "^5.1.0"
- http-cache-semantics "^4.0.0"
- keyv "^3.0.0"
- lowercase-keys "^2.0.0"
- normalize-url "^4.1.0"
- responselike "^1.0.2"
-
-camelcase-keys@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
- integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=
- dependencies:
- camelcase "^4.1.0"
- map-obj "^2.0.0"
- quick-lru "^1.0.0"
-
camelcase@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
-camelcase@^4.0.0, camelcase@^4.1.0:
+camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
@@ -685,12 +434,7 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001312.tgz#efb31cb54e5f4714126d8c35292666c9b7290c87"
integrity sha512-4eJfCSGxsF9JcQXBLdHclxkpLWv+Va7Y6QESYCWSdrR8b8x16TxUjCoOK/kU7SFC0BdcuK0nvt6ZkM59Q03LjQ==
-capture-stack-trace@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d"
- integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==
-
-chalk@^1.0.0, chalk@^1.1.3:
+chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
@@ -701,7 +445,7 @@ chalk@^1.0.0, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1:
+chalk@^2.4.1:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -710,21 +454,11 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chardet@^0.4.0:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
- integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=
-
chownr@^1.0.1:
version "1.1.4"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
-ci-info@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
- integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
-
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
@@ -740,31 +474,6 @@ clap@^1.0.9:
dependencies:
chalk "^1.1.3"
-cli-boxes@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
- integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM=
-
-cli-cursor@^2.0.0, cli-cursor@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
- integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
- dependencies:
- restore-cursor "^2.0.0"
-
-cli-truncate@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
- integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=
- dependencies:
- slice-ansi "0.0.4"
- string-width "^1.0.1"
-
-cli-width@^2.0.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
- integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
-
cliui@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
@@ -774,13 +483,6 @@ cliui@^3.2.0:
strip-ansi "^3.0.1"
wrap-ansi "^2.0.0"
-clone-response@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
- integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
- dependencies:
- mimic-response "^1.0.0"
-
clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
@@ -875,18 +577,6 @@ concat-stream@^1.5.0:
readable-stream "^2.2.2"
typedarray "^0.0.6"
-configstore@^3.0.0:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f"
- integrity sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==
- dependencies:
- dot-prop "^4.2.1"
- graceful-fs "^4.1.2"
- make-dir "^1.0.0"
- unique-string "^1.0.0"
- write-file-atomic "^2.0.0"
- xdg-basedir "^3.0.0"
-
console-browserify@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
@@ -902,13 +592,6 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-convert-source-map@^1.5.1:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
- integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
- dependencies:
- safe-buffer "~5.1.1"
-
copy-anything@^2.0.1:
version "2.0.6"
resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480"
@@ -928,11 +611,6 @@ copy-concurrently@^1.0.0:
rimraf "^2.5.4"
run-queue "^1.0.0"
-core-js@^2.4.0, core-js@^2.5.0:
- version "2.6.12"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
- integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
-
core-util-is@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
@@ -946,13 +624,6 @@ create-ecdh@^4.0.0:
bn.js "^4.1.0"
elliptic "^6.5.3"
-create-error-class@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
- integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=
- dependencies:
- capture-stack-trace "^1.0.0"
-
create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
@@ -985,17 +656,6 @@ cross-spawn@^5.0.1:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^6.0.0:
- version "6.0.5"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
- integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
- dependencies:
- nice-try "^1.0.4"
- path-key "^2.0.1"
- semver "^5.5.0"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
@@ -1013,17 +673,12 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
-crypto-random-string@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e"
- integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=
-
css-color-names@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
-css-loader@^0.28.11, css-loader@~0.26.1:
+css-loader@^0.28.11:
version "0.28.11"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7"
integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==
@@ -1102,13 +757,6 @@ csso@~2.3.1:
clap "^1.0.9"
source-map "^0.5.3"
-currently-unhandled@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
- integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
- dependencies:
- array-find-index "^1.0.1"
-
cyclist@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
@@ -1127,12 +775,7 @@ d@1, d@^1.0.1:
es5-ext "^0.10.50"
type "^1.0.1"
-date-fns@^1.27.2:
- version "1.30.1"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
- integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
-
-debug@2.6.9, debug@^2.6.8, debug@^2.6.9:
+debug@2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -1146,53 +789,16 @@ debug@^3.2.6:
dependencies:
ms "^2.1.1"
-decamelize-keys@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
- integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=
- dependencies:
- decamelize "^1.1.0"
- map-obj "^1.0.0"
-
-decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2:
+decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-decompress-response@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
- integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
- dependencies:
- mimic-response "^1.0.0"
-
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
- integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
-defer-to-connect@^1.0.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
- integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
-
defined@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
-del@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
- integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=
- dependencies:
- globby "^6.1.0"
- is-path-cwd "^1.0.0"
- is-path-in-cwd "^1.0.0"
- p-map "^1.1.1"
- pify "^3.0.0"
- rimraf "^2.2.8"
-
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -1206,13 +812,6 @@ des.js@^1.0.0:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
-detect-indent@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
- integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg=
- dependencies:
- repeating "^2.0.0"
-
diff@~5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
@@ -1232,22 +831,10 @@ domain-browser@^1.1.1:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-dot-prop@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4"
- integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==
- dependencies:
- is-obj "^1.0.0"
-
"dropzone@https://github.com/CenterForOpenScience/dropzone.git#aba21eb6b82cc823ac7a7a53d6e035791c082bae":
version "4.3.0"
resolved "https://github.com/CenterForOpenScience/dropzone.git#aba21eb6b82cc823ac7a7a53d6e035791c082bae"
-duplexer3@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
- integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
-
duplexify@^3.4.2, duplexify@^3.6.0:
version "3.7.1"
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
@@ -1268,11 +855,6 @@ electron-to-chromium@^1.2.7:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6"
integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==
-elegant-spinner@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
- integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
-
elliptic@^6.5.3:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
@@ -1313,11 +895,6 @@ enhanced-resolve@^3.4.0:
object-assign "^4.0.1"
tapable "^0.2.7"
-entities@~2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
- integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
-
errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
version "0.1.8"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
@@ -1325,7 +902,7 @@ errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
dependencies:
prr "~1.0.1"
-error-ex@^1.2.0, error-ex@^1.3.1:
+error-ex@^1.2.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
@@ -1462,19 +1039,6 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
-execa@^0.10.0:
- version "0.10.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50"
- integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==
- dependencies:
- cross-spawn "^6.0.0"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
execa@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
@@ -1503,15 +1067,6 @@ ext@^1.1.2:
dependencies:
type "^2.5.0"
-external-editor@^2.0.4, external-editor@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
- integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==
- dependencies:
- chardet "^0.4.0"
- iconv-lite "^0.4.17"
- tmp "^0.0.33"
-
fast-deep-equal@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
@@ -1532,21 +1087,6 @@ fastparse@^1.1.2:
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
-figures@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
- dependencies:
- escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
-
-figures@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
- integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
- dependencies:
- escape-string-regexp "^1.0.5"
-
file-loader@^0.11.2:
version "0.11.2"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34"
@@ -1554,15 +1094,6 @@ file-loader@^0.11.2:
dependencies:
loader-utils "^1.0.2"
-find-cache-dir@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
- integrity sha1-yN765XyKUqinhPnjHFfHQumToLk=
- dependencies:
- commondir "^1.0.1"
- mkdirp "^0.5.1"
- pkg-dir "^1.0.0"
-
find-cache-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
@@ -1572,14 +1103,6 @@ find-cache-dir@^1.0.0:
make-dir "^1.0.0"
pkg-dir "^2.0.0"
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
find-up@^2.0.0, find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
@@ -1600,15 +1123,6 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
-font-awesome-webpack@0.0.5-beta.2:
- version "0.0.5-beta.2"
- resolved "https://registry.yarnpkg.com/font-awesome-webpack/-/font-awesome-webpack-0.0.5-beta.2.tgz#9ea5f22f0615d08e76d8db341563649a726286d6"
- integrity sha1-nqXyLwYV0I522Ns0FWNkmnJihtY=
- dependencies:
- css-loader "~0.26.1"
- less-loader "~2.2.3"
- style-loader "~0.13.1"
-
from2@^2.1.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
@@ -1647,31 +1161,12 @@ get-stream@^3.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
-get-stream@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
- integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
- dependencies:
- pump "^3.0.0"
-
-get-stream@^5.1.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
- integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
- dependencies:
- pump "^3.0.0"
-
-github-url-from-git@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/github-url-from-git/-/github-url-from-git-1.5.0.tgz#f985fedcc0a9aa579dc88d7aff068d55cc6251a0"
- integrity sha1-+YX+3MCpqledyI16/waNVcxiUaA=
-
glob-to-regexp@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
-glob@^7.0.3, glob@^7.1.2, glob@^7.1.3:
+glob@^7.1.2, glob@^7.1.3:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -1683,63 +1178,6 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-global-dirs@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
- integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=
- dependencies:
- ini "^1.3.4"
-
-globals@^9.18.0:
- version "9.18.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
- integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
-
-globby@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
- integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
- dependencies:
- array-union "^1.0.1"
- glob "^7.0.3"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-got@^6.7.1:
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
- integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=
- dependencies:
- create-error-class "^3.0.0"
- duplexer3 "^0.1.4"
- get-stream "^3.0.0"
- is-redirect "^1.0.0"
- is-retry-allowed "^1.0.0"
- is-stream "^1.0.0"
- lowercase-keys "^1.0.0"
- safe-buffer "^5.0.1"
- timed-out "^4.0.0"
- unzip-response "^2.0.1"
- url-parse-lax "^1.0.0"
-
-got@^9.6.0:
- version "9.6.0"
- resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
- integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
- dependencies:
- "@sindresorhus/is" "^0.14.0"
- "@szmarczak/http-timer" "^1.1.2"
- cacheable-request "^6.0.0"
- decompress-response "^3.3.0"
- duplexer3 "^0.1.4"
- get-stream "^4.1.0"
- lowercase-keys "^1.0.1"
- mimic-response "^1.0.1"
- p-cancelable "^1.0.0"
- to-readable-stream "^1.0.0"
- url-parse-lax "^3.0.0"
-
graceful-fs@^4.1.11, graceful-fs@^4.1.2:
version "4.2.9"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
@@ -1772,11 +1210,6 @@ has-flag@^3.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
-has-yarn@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7"
- integrity sha1-ieJdtgS3Jcj1l2//Ct3JIbgopac=
-
has@^1.0.1, has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
@@ -1815,14 +1248,6 @@ hmac-drbg@^1.0.1:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
-home-or-tmp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
- integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg=
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.1"
-
hosted-git-info@^2.1.4:
version "2.8.9"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
@@ -1833,11 +1258,6 @@ html-comment-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-http-cache-semantics@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
- integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
-
http-errors@1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
@@ -1854,7 +1274,7 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4:
+iconv-lite@0.4.24, iconv-lite@^0.4.4:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -1888,11 +1308,6 @@ image-size@~0.5.0:
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
-import-lazy@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
- integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
-
imports-loader@^0.6.3:
version "0.6.5"
resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.6.5.tgz#ae74653031d59e37b3c2fb2544ac61aeae3530a6"
@@ -1906,11 +1321,6 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
-indent-string@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
- integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
-
indexes-of@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
@@ -1939,72 +1349,16 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-ini@^1.3.4, ini@~1.3.0:
- version "1.3.8"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
- integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
-
-inquirer@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
- integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==
- dependencies:
- ansi-escapes "^3.0.0"
- chalk "^2.0.0"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
- external-editor "^2.0.4"
- figures "^2.0.0"
- lodash "^4.3.0"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rx-lite "^4.0.8"
- rx-lite-aggregates "^4.0.8"
- string-width "^2.1.0"
- strip-ansi "^4.0.0"
- through "^2.3.6"
-
-inquirer@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726"
- integrity sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==
- dependencies:
- ansi-escapes "^3.0.0"
- chalk "^2.0.0"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
- external-editor "^2.1.0"
- figures "^2.0.0"
- lodash "^4.3.0"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rxjs "^5.5.2"
- string-width "^2.1.0"
- strip-ansi "^4.0.0"
- through "^2.3.6"
-
interpret@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-invariant@^2.2.2:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
- integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
- dependencies:
- loose-envify "^1.0.0"
-
invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
-ip-regex@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5"
- integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==
-
is-absolute-url@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
@@ -2015,13 +1369,6 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-is-ci@^1.0.10:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
- integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
- dependencies:
- ci-info "^1.5.0"
-
is-core-module@^2.8.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
@@ -2029,11 +1376,6 @@ is-core-module@^2.8.1:
dependencies:
has "^1.0.3"
-is-finite@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
- integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
-
is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
@@ -2046,85 +1388,12 @@ is-fullwidth-code-point@^2.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-is-installed-globally@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80"
- integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=
- dependencies:
- global-dirs "^0.1.0"
- is-path-inside "^1.0.0"
-
-is-npm@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
- integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ=
-
-is-obj@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
- integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
-
-is-observable@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
- integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==
- dependencies:
- symbol-observable "^1.1.0"
-
-is-path-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
- integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
-
-is-path-in-cwd@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
- integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==
- dependencies:
- is-path-inside "^1.0.0"
-
-is-path-inside@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
- integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
- dependencies:
- path-is-inside "^1.0.1"
-
-is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
+is-plain-obj@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
-is-promise@^2.1.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
- integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
-
-is-redirect@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
- integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=
-
-is-retry-allowed@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
- integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==
-
-is-scoped@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-1.0.0.tgz#449ca98299e713038256289ecb2b540dc437cb30"
- integrity sha1-RJypgpnnEwOCViieyytUDcQ3yzA=
- dependencies:
- scoped-regex "^1.0.0"
-
-is-scoped@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d"
- integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==
- dependencies:
- scoped-regex "^2.0.0"
-
-is-stream@^1.0.0, is-stream@^1.1.0:
+is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
@@ -2136,13 +1405,6 @@ is-svg@^2.0.0:
dependencies:
html-comment-regex "^1.1.0"
-is-url-superb@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-3.0.0.tgz#b9a1da878a1ac73659047d1e6f4ef22c209d3e25"
- integrity sha512-3faQP+wHCGDQT1qReM5zCPx2mxoal6DzbzquFlCYJLWyy4WPTved33ea2xFbX37z4NoriEwZGIYhFtx8RUB5wQ==
- dependencies:
- url-regex "^5.0.0"
-
is-what@^3.14.1:
version "3.14.1"
resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
@@ -2158,11 +1420,6 @@ isexe@^2.0.0:
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-issue-regex@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/issue-regex/-/issue-regex-2.0.0.tgz#bb1802490394f8083c7a6787247cbf975638ef5d"
- integrity sha512-flaQ/45dMqCYSMzBQI/h3bcto6T70uN7kjNnI8n3gQU6no5p+QcnMWBNXkraED0YvbUymxKaqdvgPa09RZQM5A==
-
jquery-ui@>=1.10.4:
version "1.13.1"
resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.1.tgz#d0b7a42e73a04c31bb5706adf86f6f8942f64eaa"
@@ -2190,11 +1447,6 @@ js-md5@^0.7.3:
resolved "https://registry.yarnpkg.com/js-md5/-/js-md5-0.7.3.tgz#b4f2fbb0b327455f598d6727e38ec272cd09c3f2"
integrity sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==
-"js-tokens@^3.0.0 || ^4.0.0":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
@@ -2208,26 +1460,11 @@ js-yaml@~3.7.0:
argparse "^1.0.7"
esprima "^2.6.0"
-jsesc@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
- integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
-
-json-buffer@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
- integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
-
json-loader@^0.5.4:
version "0.5.7"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==
-json-parse-better-errors@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
- integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
-
json-schema-traverse@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
@@ -2263,13 +1500,6 @@ keen-dataviz@^1.0.2:
c3 "^0.4.18"
d3 "^3.5.17"
-keyv@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
- integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
- dependencies:
- json-buffer "3.0.0"
-
knockout.validation@^2.0.2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/knockout.validation/-/knockout.validation-2.0.4.tgz#e87f82f41b5bdcb7029ea6be3fef2a903054558b"
@@ -2280,26 +1510,12 @@ knockout@~3.4.2:
resolved "https://registry.yarnpkg.com/knockout/-/knockout-3.4.2.tgz#e87958de77ad1e936f7ce645bab8b5d7c456d937"
integrity sha1-6HlY3netHpNvfOZFuri118RW2Tc=
-latest-version@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15"
- integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=
- dependencies:
- package-json "^4.0.0"
-
lcid@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
- dependencies:
- invert-kv "^1.0.0"
-
-less-loader@~2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-2.2.3.tgz#b6d8f8139c8493df09d992a93a00734b08f84528"
- integrity sha1-ttj4E5yEk98J2ZKpOgBzSwj4RSg=
+ integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
dependencies:
- loader-utils "^0.2.5"
+ invert-kv "^1.0.0"
less@^4.1.2:
version "4.1.2"
@@ -2318,71 +1534,11 @@ less@^4.1.2:
needle "^2.5.2"
source-map "~0.6.0"
-linkify-it@^3.0.1:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e"
- integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==
- dependencies:
- uc.micro "^1.0.1"
-
linkifyjs@^3.0.5:
version "3.0.5"
resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-3.0.5.tgz#99e51a3a0c0e232fcb63ebb89eea3ff923378f34"
integrity sha512-1Y9XQH65eQKA9p2xtk+zxvnTeQBG7rdAXSkUG97DmuI/Xhji9uaUzaWxRj6rf9YC0v8KKHkxav7tnLX82Sz5Fg==
-listr-input@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/listr-input/-/listr-input-0.1.3.tgz#0c313967b6d179ebe964a81e9363ce2a5a39d25c"
- integrity sha512-dvjSD1MrWGXxxPixpMQlSBmkyqhJrPxGo30un25k/vlvFOWZj70AauU+YkEh7CA8vmpkE6Wde37DJDmqYqF39g==
- dependencies:
- inquirer "^3.3.0"
- rxjs "^5.5.2"
- through "^2.3.8"
-
-listr-silent-renderer@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
- integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=
-
-listr-update-renderer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2"
- integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==
- dependencies:
- chalk "^1.1.3"
- cli-truncate "^0.2.1"
- elegant-spinner "^1.0.1"
- figures "^1.7.0"
- indent-string "^3.0.0"
- log-symbols "^1.0.2"
- log-update "^2.3.0"
- strip-ansi "^3.0.1"
-
-listr-verbose-renderer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db"
- integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==
- dependencies:
- chalk "^2.4.1"
- cli-cursor "^2.1.0"
- date-fns "^1.27.2"
- figures "^2.0.0"
-
-listr@^0.14.1:
- version "0.14.3"
- resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
- integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
- dependencies:
- "@samverschueren/stream-to-observable" "^0.3.0"
- is-observable "^1.1.0"
- is-promise "^2.1.0"
- is-stream "^1.1.0"
- listr-silent-renderer "^1.1.1"
- listr-update-renderer "^0.5.0"
- listr-verbose-renderer "^0.5.0"
- p-map "^2.0.0"
- rxjs "^6.3.3"
-
load-json-file@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
@@ -2393,22 +1549,12 @@ load-json-file@^2.0.0:
pify "^2.0.0"
strip-bom "^3.0.0"
-load-json-file@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
- integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
- strip-bom "^3.0.0"
-
loader-runner@^2.3.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-loader-utils@0.2.x, loader-utils@^0.2.16, loader-utils@^0.2.5:
+loader-utils@0.2.x:
version "0.2.17"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
@@ -2485,64 +1631,11 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-lodash.zip@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020"
- integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=
-
-lodash@^4.17.14, lodash@^4.17.4, lodash@^4.3.0:
+lodash@^4.17.14:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-log-symbols@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
- integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=
- dependencies:
- chalk "^1.0.0"
-
-log-symbols@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
- integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
- dependencies:
- chalk "^2.0.1"
-
-log-update@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
- integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
- dependencies:
- ansi-escapes "^3.0.0"
- cli-cursor "^2.0.0"
- wrap-ansi "^3.0.1"
-
-loose-envify@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
- integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
- dependencies:
- js-tokens "^3.0.0 || ^4.0.0"
-
-loud-rejection@^1.0.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
- integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
- dependencies:
- currently-unhandled "^0.4.1"
- signal-exit "^3.0.0"
-
-lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
- integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
-
-lowercase-keys@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
- integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
-
lru-cache@^4.0.1, lru-cache@^4.1.1:
version "4.1.5"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
@@ -2566,37 +1659,6 @@ make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
-map-obj@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
- integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
-
-map-obj@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9"
- integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk=
-
-markdown-it-ins-del@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/markdown-it-ins-del/-/markdown-it-ins-del-0.1.1.tgz#8b421d8e788ee84a1d572eb3fcc0028ce431c9ea"
- integrity sha1-i0IdjniO6EodVy6z/MACjOQxyeo=
-
-markdown-it-sanitizer@~0.4.3:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/markdown-it-sanitizer/-/markdown-it-sanitizer-0.4.3.tgz#2ba34e9fe16e6372ce7192fb50b37d9dfbff0102"
- integrity sha1-K6NOn+FuY3LOcZL7ULN9nfv/AQI=
-
-markdown-it@~12.3.2:
- version "12.3.2"
- resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90"
- integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==
- dependencies:
- argparse "^2.0.1"
- entities "~2.1.0"
- linkify-it "^3.0.1"
- mdurl "^1.0.1"
- uc.micro "^1.0.5"
-
math-expression-evaluator@^1.2.14:
version "1.3.14"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.3.14.tgz#0ebeaccf65fea0f6f5a626f88df41814e5fcd9bf"
@@ -2611,11 +1673,6 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
-mdurl@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
- integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
-
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -2636,21 +1693,6 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
-meow@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4"
- integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==
- dependencies:
- camelcase-keys "^4.0.0"
- decamelize-keys "^1.0.0"
- loud-rejection "^1.0.0"
- minimist-options "^3.0.1"
- normalize-package-data "^2.3.4"
- read-pkg-up "^3.0.0"
- redent "^2.0.0"
- trim-newlines "^2.0.0"
- yargs-parser "^10.0.0"
-
miller-rabin@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -2693,11 +1735,6 @@ mimic-fn@^1.0.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-mimic-response@^1.0.0, mimic-response@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
- integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
-
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
@@ -2715,14 +1752,6 @@ minimatch@^3.0.4:
dependencies:
brace-expansion "^1.1.7"
-minimist-options@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954"
- integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==
- dependencies:
- arrify "^1.0.1"
- is-plain-obj "^1.1.0"
-
minimist@^1.2.0, minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
@@ -2783,11 +1812,6 @@ ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-mute-stream@0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
- integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
-
needle@^2.5.2:
version "2.9.1"
resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684"
@@ -2802,11 +1826,6 @@ next-tick@~1.0.0:
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
-nice-try@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
- integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-
node-libs-browser@^2.0.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
@@ -2836,7 +1855,7 @@ node-libs-browser@^2.0.0:
util "^0.11.0"
vm-browserify "^1.0.1"
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
+normalize-package-data@^2.3.2:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
@@ -2861,52 +1880,6 @@ normalize-url@^1.4.0:
query-string "^4.1.0"
sort-keys "^1.0.0"
-normalize-url@^4.1.0:
- version "4.5.1"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
- integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
-
-np@^3.0.4:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/np/-/np-3.1.0.tgz#f83437459164c529fad801937c201488e319931d"
- integrity sha512-3HTje97SzbsvK9g61C72PpDk9AloaaTn0K7xHbx7jMrs9vJtCZqu7TWUGxrcYGiKRO/uFRn5SiRZfYB/gpL9Iw==
- dependencies:
- "@samverschueren/stream-to-observable" "^0.3.0"
- any-observable "^0.3.0"
- chalk "^2.3.0"
- del "^3.0.0"
- execa "^0.10.0"
- github-url-from-git "^1.5.0"
- has-yarn "^1.0.0"
- inquirer "^5.2.0"
- is-scoped "^1.0.0"
- issue-regex "^2.0.0"
- listr "^0.14.1"
- listr-input "^0.1.1"
- log-symbols "^2.1.0"
- meow "^5.0.0"
- npm-name "^5.0.0"
- p-timeout "^2.0.1"
- read-pkg-up "^3.0.0"
- rxjs "^6.2.0"
- semver "^5.2.0"
- split "^1.0.0"
- terminal-link "^1.1.0"
- update-notifier "^2.1.0"
-
-npm-name@^5.0.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/npm-name/-/npm-name-5.5.0.tgz#3a73adbcb0488a41a44ff820ed51dcc32c72bd09"
- integrity sha512-l7/uyVfEi2e3ho+ovaJZC0xlbwzXNUz3RxkxpfcnLuoGKAuYoo9YoJ/uy18PsTD8IziugGHks4t/mGmBJEZ4Qg==
- dependencies:
- got "^9.6.0"
- is-scoped "^2.1.0"
- is-url-superb "^3.0.0"
- lodash.zip "^4.2.0"
- registry-auth-token "^4.0.0"
- registry-url "^5.1.0"
- validate-npm-package-name "^3.0.0"
-
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -2948,23 +1921,11 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
-onetime@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
- integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
- dependencies:
- mimic-fn "^1.0.0"
-
os-browserify@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
- integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-
os-locale@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
@@ -2974,16 +1935,6 @@ os-locale@^2.0.0:
lcid "^1.0.0"
mem "^1.1.0"
-os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
- integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-
-p-cancelable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
- integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
-
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -3003,38 +1954,11 @@ p-locate@^2.0.0:
dependencies:
p-limit "^1.1.0"
-p-map@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
- integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
-
-p-map@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
- integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
-
-p-timeout@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038"
- integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==
- dependencies:
- p-finally "^1.0.0"
-
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
-package-json@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed"
- integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=
- dependencies:
- got "^6.7.1"
- registry-auth-token "^3.0.1"
- registry-url "^3.0.3"
- semver "^5.1.0"
-
pako@~1.0.5:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
@@ -3067,14 +1991,6 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
-parse-json@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
- dependencies:
- error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
-
parse-node-version@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
@@ -3085,29 +2001,17 @@ path-browserify@0.0.1:
resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
-path-exists@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
- dependencies:
- pinkie-promise "^2.0.0"
-
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
-path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
+path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-path-is-inside@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
- integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
-
-path-key@^2.0.0, path-key@^2.0.1:
+path-key@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
@@ -3124,13 +2028,6 @@ path-type@^2.0.0:
dependencies:
pify "^2.0.0"
-path-type@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
- integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
- dependencies:
- pify "^3.0.0"
-
pbkdf2@^3.0.3:
version "3.1.2"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
@@ -3162,25 +2059,6 @@ pikaday@^1.3.2:
resolved "https://registry.yarnpkg.com/pikaday/-/pikaday-1.8.2.tgz#72cc73fab7ccc068cbdf7dcaa1ce400fcfd894e3"
integrity sha512-TNtsE+34BIax3WtkB/qqu5uepV1McKYEgvL3kWzU7aqPCpMEN6rBF3AOwu4WCwAealWlBGobXny/9kJb49C1ew==
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
- integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-
-pkg-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
- integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
- dependencies:
- find-up "^1.0.0"
-
pkg-dir@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
@@ -3472,26 +2350,16 @@ postcss@^6.0.1:
source-map "^0.6.1"
supports-color "^5.4.0"
-prepend-http@^1.0.0, prepend-http@^1.0.1:
+prepend-http@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
-prepend-http@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
- integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
-
pretty-data@^0.40.0:
version "0.40.0"
resolved "https://registry.yarnpkg.com/pretty-data/-/pretty-data-0.40.0.tgz#572aa8ea23467467ab94b6b5266a6fd9c8fddd72"
integrity sha1-Vyqo6iNGdGerlLa1Jmpv2cj93XI=
-private@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
- integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
-
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -3537,14 +2405,6 @@ pump@^2.0.0, pump@^2.0.1:
end-of-stream "^1.1.0"
once "^1.3.1"
-pump@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
- integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
pumpify@^1.3.3:
version "1.5.1"
resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
@@ -3597,11 +2457,6 @@ querystring@0.2.0:
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
-quick-lru@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
- integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=
-
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -3632,16 +2487,6 @@ raw-loader@~0.5.0:
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
integrity sha1-DD0L6u2KAclm2Xh793goElKpeao=
-rc@^1.0.1, rc@^1.1.6, rc@^1.2.8:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
read-pkg-up@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
@@ -3650,14 +2495,6 @@ read-pkg-up@^2.0.0:
find-up "^2.0.0"
read-pkg "^2.0.0"
-read-pkg-up@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
- integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=
- dependencies:
- find-up "^2.0.0"
- read-pkg "^3.0.0"
-
read-pkg@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
@@ -3667,15 +2504,6 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
-read-pkg@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
- integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
- dependencies:
- load-json-file "^4.0.0"
- normalize-package-data "^2.3.2"
- path-type "^3.0.0"
-
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
version "2.3.7"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
@@ -3698,14 +2526,6 @@ readable-stream@^3.6.0:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
-redent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa"
- integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=
- dependencies:
- indent-string "^3.0.0"
- strip-indent "^2.0.0"
-
reduce-css-calc@^1.2.6:
version "1.3.0"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
@@ -3722,47 +2542,6 @@ reduce-function-call@^1.0.1:
dependencies:
balanced-match "^1.0.0"
-regenerator-runtime@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
- integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
-
-registry-auth-token@^3.0.1:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e"
- integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==
- dependencies:
- rc "^1.1.6"
- safe-buffer "^5.0.1"
-
-registry-auth-token@^4.0.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250"
- integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==
- dependencies:
- rc "^1.2.8"
-
-registry-url@^3.0.3:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
- integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI=
- dependencies:
- rc "^1.0.1"
-
-registry-url@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
- integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==
- dependencies:
- rc "^1.2.8"
-
-repeating@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
- integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
- dependencies:
- is-finite "^1.0.0"
-
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -3782,22 +2561,7 @@ resolve@^1.10.0:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-responselike@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
- integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
- dependencies:
- lowercase-keys "^1.0.0"
-
-restore-cursor@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
- integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
- dependencies:
- onetime "^2.0.0"
- signal-exit "^3.0.2"
-
-rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.2:
+rimraf@^2.5.4, rimraf@^2.6.2:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
@@ -3812,11 +2576,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0"
inherits "^2.0.1"
-run-async@^2.2.0:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
- integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
-
run-queue@^1.0.0, run-queue@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
@@ -3824,32 +2583,6 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
-rx-lite-aggregates@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
- integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=
- dependencies:
- rx-lite "*"
-
-rx-lite@*, rx-lite@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
- integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
-
-rxjs@^5.5.2:
- version "5.5.12"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc"
- integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==
- dependencies:
- symbol-observable "1.0.1"
-
-rxjs@^6.2.0, rxjs@^6.3.3:
- version "6.6.7"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
- integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
- dependencies:
- tslib "^1.9.0"
-
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -3894,29 +2627,12 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
-scoped-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8"
- integrity sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=
-
-scoped-regex@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f"
- integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==
-
select2@3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/select2/-/select2-3.5.1.tgz#f2819489bbc65fd6d328be72bbe2b95dd7e87cfe"
integrity sha1-8oGUibvGX9bTKL5yu+K5XdfofP4=
-semver-diff@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
- integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=
- dependencies:
- semver "^5.0.3"
-
-"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.2.0, semver@^5.5.0, semver@^5.6.0:
+"semver@2 || 3 || 4 || 5", semver@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -3961,21 +2677,11 @@ shebang-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
-signal-exit@^3.0.0, signal-exit@^3.0.2:
+signal-exit@^3.0.0:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-slash@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
- integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
-
-slice-ansi@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
- integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
-
sort-keys@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
@@ -3988,13 +2694,6 @@ source-list-map@^2.0.0:
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
-source-map-support@^0.4.15:
- version "0.4.18"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
- integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
- dependencies:
- source-map "^0.5.6"
-
source-map@0.1.x:
version "0.1.43"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
@@ -4002,7 +2701,7 @@ source-map@0.1.x:
dependencies:
amdefine ">=0.0.4"
-source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7:
+source-map@^0.5.3, source-map@^0.5.6:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -4038,13 +2737,6 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95"
integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
-split@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
- integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
- dependencies:
- through "2"
-
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -4108,7 +2800,7 @@ string-width@^1.0.1:
is-fullwidth-code-point "^1.0.0"
strip-ansi "^3.0.0"
-string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
+string-width@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -4154,17 +2846,7 @@ strip-eof@^1.0.0:
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-strip-indent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
- integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=
-
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-
-style-loader@^0.23.1, style-loader@~0.13.1:
+style-loader@^0.23.1:
version "0.23.1"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==
@@ -4191,21 +2873,13 @@ supports-color@^4.2.1:
dependencies:
has-flag "^2.0.0"
-supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0:
+supports-color@^5.3.0, supports-color@^5.4.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
dependencies:
has-flag "^3.0.0"
-supports-hyperlinks@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz#71daedf36cc1060ac5100c351bb3da48c29c0ef7"
- integrity sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==
- dependencies:
- has-flag "^2.0.0"
- supports-color "^5.0.0"
-
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
@@ -4224,36 +2898,11 @@ svgo@^0.7.0:
sax "~1.2.1"
whet.extend "~0.9.9"
-symbol-observable@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
- integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
-
-symbol-observable@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
- integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
-
tapable@^0.2.7:
version "0.2.9"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8"
integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==
-term-size@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
- integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=
- dependencies:
- execa "^0.7.0"
-
-terminal-link@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-1.3.0.tgz#3e9a308289e13340053aaf40e8f1a06d1335646e"
- integrity sha512-nFaWG/gs3brGi3opgWU2+dyFGbQ7tueSRYOBOD8URdDXCbAGqDEZzuskCc+okCClYcJFDPwn8e2mbv4FqAnWFA==
- dependencies:
- ansi-escapes "^3.2.0"
- supports-hyperlinks "^1.0.1"
-
through2@^2.0.0:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
@@ -4262,16 +2911,6 @@ through2@^2.0.0:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through@2, through@^2.3.6, through@^2.3.8:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
-timed-out@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
- integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
-
timers-browserify@^2.0.4:
version "2.0.12"
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
@@ -4279,33 +2918,11 @@ timers-browserify@^2.0.4:
dependencies:
setimmediate "^1.0.4"
-tlds@^1.203.0:
- version "1.229.0"
- resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.229.0.tgz#fd02585a234669d47a7f1752c87f100a34feba60"
- integrity sha512-yZCodKInN+BPGUyYgKHsodJ2FVWRjW/fYx6rKCAT/e24BBJd8FcxWgKD0aBgk+7uQ/88h/fmRTd4Nvzxf3313A==
-
-tmp@^0.0.33:
- version "0.0.33"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
- integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
- dependencies:
- os-tmpdir "~1.0.2"
-
to-arraybuffer@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
-to-fast-properties@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
- integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
-
-to-readable-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
- integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
-
toidentifier@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
@@ -4320,21 +2937,6 @@ toidentifier@1.0.1:
jquery-ui ">=1.10.4"
mithril ">=0.2"
-trim-newlines@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20"
- integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=
-
-trim-right@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
- integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
-
-tslib@^1.9.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
- integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-
tslib@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
@@ -4375,11 +2977,6 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-uc.micro@^1.0.1, uc.micro@^1.0.5:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
- integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
-
uglify-es@^3.3.4:
version "3.3.9"
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
@@ -4426,39 +3023,11 @@ unique-slug@^2.0.0:
dependencies:
imurmurhash "^0.1.4"
-unique-string@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a"
- integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=
- dependencies:
- crypto-random-string "^1.0.0"
-
unpipe@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-unzip-response@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
- integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
-
-update-notifier@^2.1.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6"
- integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==
- dependencies:
- boxen "^1.2.1"
- chalk "^2.0.1"
- configstore "^3.0.0"
- import-lazy "^2.1.0"
- is-ci "^1.0.10"
- is-installed-globally "^0.1.0"
- is-npm "^1.0.0"
- latest-version "^3.0.0"
- semver-diff "^2.0.0"
- xdg-basedir "^3.0.0"
-
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@@ -4475,28 +3044,6 @@ url-loader@~0.6.2:
mime "^1.4.1"
schema-utils "^0.3.0"
-url-parse-lax@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
- integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=
- dependencies:
- prepend-http "^1.0.1"
-
-url-parse-lax@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
- integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=
- dependencies:
- prepend-http "^2.0.0"
-
-url-regex@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-5.0.0.tgz#8f5456ab83d898d18b2f91753a702649b873273a"
- integrity sha512-O08GjTiAFNsSlrUWfqF1jH0H1W3m35ZyadHrGv5krdnmPPoxP27oDTqux/579PtaroiSGm5yma6KT1mHFH6Y/g==
- dependencies:
- ip-regex "^4.1.0"
- tlds "^1.203.0"
-
url@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
@@ -4537,13 +3084,6 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
-validate-npm-package-name@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
- integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34=
- dependencies:
- builtins "^1.0.3"
-
vendors@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
@@ -4615,13 +3155,6 @@ which@^1.2.9:
dependencies:
isexe "^2.0.0"
-widest-line@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"
- integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==
- dependencies:
- string-width "^2.1.1"
-
worker-farm@^1.5.2:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -4637,33 +3170,11 @@ wrap-ansi@^2.0.0:
string-width "^1.0.1"
strip-ansi "^3.0.1"
-wrap-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
- integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=
- dependencies:
- string-width "^2.1.1"
- strip-ansi "^4.0.0"
-
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@^2.0.0:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
- integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
- dependencies:
- graceful-fs "^4.1.11"
- imurmurhash "^0.1.4"
- signal-exit "^3.0.2"
-
-xdg-basedir@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4"
- integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=
-
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
@@ -4684,13 +3195,6 @@ yallist@^2.1.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-yargs-parser@^10.0.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
- integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==
- dependencies:
- camelcase "^4.1.0"
-
yargs-parser@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
From 3cefffe4c63a03bdd75c84407af3040a28078d3d Mon Sep 17 00:00:00 2001
From: antkryt
Date: Wed, 11 Mar 2026 20:22:48 +0200
Subject: [PATCH 25/31] [ENG-10384] return 409 when submit to closed registry
(#11628)
---
api/draft_registrations/permissions.py | 31 +++++++++++++++++++
api/draft_registrations/views.py | 2 ++
api/nodes/views.py | 6 +++-
.../views/test_draft_registration_list.py | 26 ++++++++++++++++
4 files changed, 64 insertions(+), 1 deletion(-)
diff --git a/api/draft_registrations/permissions.py b/api/draft_registrations/permissions.py
index 5232ee9d546..fb6829aafa0 100644
--- a/api/draft_registrations/permissions.py
+++ b/api/draft_registrations/permissions.py
@@ -1,11 +1,13 @@
from rest_framework import permissions
+from api.base.exceptions import Conflict
from api.base.utils import get_user_auth, assert_resource_type
from osf.models import (
DraftRegistration,
AbstractNode,
DraftRegistrationContributor,
OSFUser,
+ RegistrationProvider,
)
from api.nodes.permissions import ContributorDetailPermissions
from osf.utils.permissions import WRITE, ADMIN
@@ -90,3 +92,32 @@ def has_object_permission(self, request, view, obj):
elif isinstance(obj, AbstractNode):
return obj.has_permission(auth.user, WRITE)
return False
+
+
+class CanSubmitDraftRegistrationToProvider(permissions.BasePermission):
+ """
+ Prevent creating draft registrations for providers that are closed to submissions.
+ """
+
+ def has_permission(self, request, view):
+ if request.method != 'POST':
+ return True
+
+ provider_id = request.data.get('provider')
+
+ if not provider_id:
+ try:
+ provider = RegistrationProvider.get_default()
+ except RegistrationProvider.DoesNotExist:
+ return True
+ else:
+ try:
+ provider = RegistrationProvider.objects.get(_id=provider_id)
+ except RegistrationProvider.DoesNotExist:
+ # Let existing validation handle bad provider ids.
+ return True
+
+ if not provider.allow_submissions:
+ raise Conflict(f"Registry {provider.name} is closed for new submissions. Please start a new registration with a different registry.")
+
+ return True
diff --git a/api/draft_registrations/views.py b/api/draft_registrations/views.py
index 30c583dd94a..88a266c9ab6 100644
--- a/api/draft_registrations/views.py
+++ b/api/draft_registrations/views.py
@@ -8,6 +8,7 @@
DraftContributorDetailPermissions,
DraftRegistrationPermission,
IsAdminContributor,
+ CanSubmitDraftRegistrationToProvider,
)
from api.draft_registrations.serializers import (
DraftRegistrationSerializer,
@@ -53,6 +54,7 @@ class DraftRegistrationList(NodeDraftRegistrationsList):
drf_permissions.IsAuthenticatedOrReadOnly,
base_permissions.TokenHasScope,
DraftRegistrationPermission,
+ CanSubmitDraftRegistrationToProvider,
)
view_category = 'draft_registrations'
diff --git a/api/nodes/views.py b/api/nodes/views.py
index 69c7fa7d25e..51648d365cd 100644
--- a/api/nodes/views.py
+++ b/api/nodes/views.py
@@ -74,7 +74,10 @@
NodeCommentSerializer,
)
from api.draft_registrations.serializers import DraftRegistrationSerializer, DraftRegistrationDetailSerializer
-from api.draft_registrations.permissions import DraftRegistrationPermission
+from api.draft_registrations.permissions import (
+ DraftRegistrationPermission,
+ CanSubmitDraftRegistrationToProvider,
+)
from api.files.serializers import FileSerializer, OsfStorageFileSerializer
from api.files import annotations as file_annotations
from api.identifiers.serializers import NodeIdentifierSerializer
@@ -671,6 +674,7 @@ class NodeDraftRegistrationsList(JSONAPIBaseView, generics.ListCreateAPIView, No
DraftRegistrationPermission,
drf_permissions.IsAuthenticatedOrReadOnly,
base_permissions.TokenHasScope,
+ CanSubmitDraftRegistrationToProvider,
)
parser_classes = (JSONAPIMultipleRelationshipsParser, JSONAPIMultipleRelationshipsParserForRegularJSON)
diff --git a/api_tests/draft_registrations/views/test_draft_registration_list.py b/api_tests/draft_registrations/views/test_draft_registration_list.py
index 4aed087605a..c2c0cce084c 100644
--- a/api_tests/draft_registrations/views/test_draft_registration_list.py
+++ b/api_tests/draft_registrations/views/test_draft_registration_list.py
@@ -399,6 +399,19 @@ def test_affiliated_institutions_are_copied_from_user(self, app, user, url_draft
draft_registration = DraftRegistration.load(res.json['data']['id'])
assert list(draft_registration.affiliated_institutions.all()) == list(user.get_affiliated_institutions())
+ def test_cannot_create_draft_when_provider_disallows_submissions(
+ self, app, user, provider, payload, url_draft_registrations):
+ provider.allow_submissions = False
+ provider.save()
+
+ res = app.post_json_api(
+ url_draft_registrations,
+ payload,
+ auth=user.auth,
+ expect_errors=True,
+ )
+ assert res.status_code == 409
+
class TestDraftRegistrationCreateWithoutNode(AbstractDraftRegistrationTestCase):
@pytest.fixture()
@@ -451,6 +464,19 @@ def test_create_draft_with_provider(
draft = DraftRegistration.load(data['id'])
assert draft.provider == non_default_provider
+ def test_cannot_create_draft_when_provider_disallows_submissions(
+ self, app, user, url_draft_registrations, non_default_provider, payload_with_non_default_provider):
+ non_default_provider.allow_submissions = False
+ non_default_provider.save()
+
+ res = app.post_json_api(
+ url_draft_registrations,
+ payload_with_non_default_provider,
+ auth=user.auth,
+ expect_errors=True,
+ )
+ assert res.status_code == 409
+
def test_write_contrib(self, app, user, project_public, payload, url_draft_registrations, user_write_contrib):
"""(no node supplied, so any logged in user can create)
"""
From 981ef4a0639ee339715fa7c994aca8feef281c33 Mon Sep 17 00:00:00 2001
From: Yuhuai Liu
Date: Thu, 19 Mar 2026 16:52:12 -0400
Subject: [PATCH 26/31] Merge develop into Feature/pbs 26 2 (#11642)
* [ENG-10083] Add type<-->is_digest "relation" and update subscription (#11575)
* Add is_digest_type property to NotificationType and log message in emit method
* Fix is_digest handling in NotificationType.emit method
* Log message update in NotificationType.emit method for is_digest handling
* fix unit tests
---------
Co-authored-by: Ostap Zherebetskyi
* Add notification subscriptions de-duplication v2 command (#11576)
Co-authored-by: Ostap Zherebetskyi
* [ENG-10190][ENG-10214] Permanently update a couple of templates to match admin/admin changes
Update archive_size_exceeded_user and provider_reviews_resubmission_confirmation templates
* Update changelog and bump version
* Exclude spam and deleted Registration from queryset (#11572)
* [ENG-10135] - Fix/eng 10135 (#11587)
* Exclude spam and deleted Registration from queryset
* Update RegistrationActionList to check deleted flag
* Fix tests
* Fix test
* Feature/fair signposting (#11599)
* linkset initial implementation
* linkset initial implementation (updating data extraction and adding serialization)
* and \n in EOF instead of %
* update code
* get file mediatype from metadata
* add unittests for linkset approach (TODO: ?)
* update code
* update code and unit tests and
* update file related code and unit tests
* refactor code after CR | implement 'describes' | check file type differs from parent project / registry / preprint
* update files to compare on unittests run
* implement datacite - scheme type mapping for linkset draft version (need tests updates and maybe some type yield logic )
* Update osf/metadata/osf_gathering.py
Co-authored-by: abram axel booth
* Update osf/metadata/serializers/linkset.py
Co-authored-by: abram axel booth
* implement datacite - schema mapping
* update tests expected results
* resolve CR
* refactor code | resolve CR
* remove redundant describes from file response (#11590)
* [ENG-10256] 2.1.9 BE: Fix permission issue where users without permission to an object can access the metadata (#11588)
* Fix permission issue where users without permission to an object can access the metadata (add decorator is_contributor_or_public_resource)
* refactor code
* resolve CR | refactor code
* resolve CR | add unittests
* add *args, **kwargs for decorated view
* [ENG-10167] 2.1.6 BE: add link header to guid metadata endpoints (#11594)
* add link header to guid metadata endpoints for registry and project
* update code
* avoid Component Registration/Project JSON Contains type: null (#11597)
* [ENG-10168] 2.1.7 BE: add link header to cedar metadata records endpoints (#11596)
* add link header to guid metadata endpoints for registry and project
* update code
* add link header to cedar metadata records endpoints
* change ResearchProject for CreativeWork for projects (#11603)
* [ENG-10169] 2.1.8 BE: add link header to file download URL (#11600)
* avoid Component Registration/Project JSON Contains type: null
* add link header to file download URL
* update unittests
* resolve CR
---------
Co-authored-by: mkovalua
Co-authored-by: abram axel booth
* Bump versio no. Add CHANGELOG
* [ENG-10054] feature/ror-migration (#11610)
* feat(osf): script to migrate Crossref Funder IDs to ROR IDs
* feat(osf): Fix fot the script to migrate Crossref Funder IDs to ROR IDs
* feat(osf): Update OSF metadata model code and tests for ROR funder identifier support
* feat(osf): Add DataCite client tests for ROR funder identifier support
* feat(osf): update migration script to remove unmapped crossref funders
* add another stat to the migration script
---------
Co-authored-by: Andriy Sheredko
* bump version & update changelog
* add command to migrate ror funder names
* bump version & update changelog
* [ENG-10538] Post-NR Project PR (#11623)
* Create global_file_updated and global_reviews subscriptions if missing
* Use USER_FILE_UPDATED for group global_file_updated
* Use REVIEWS_SUBMISSION_STATUS for group global_reviews
* Add missing `is_digest=True` for new OSF user subscriptions
* Extend otf subscription creation to apply to _node_file_updated group
* Fix typo for `_is_digest`
* add is_digest_type property
* Add is_digest_type property to NotificationType and log message in emit method
* Fix is_digest handling in NotificationType.emit method
* Log message update in NotificationType.emit method for is_digest handling
* fix unit tests
* Move set-deafult-subscriptions out of non-effective try-except
* Add fake_sent field to Notification model and update notification creation logic
* add unique_together constraint
* Add 'PARTIAL_SUCCESS' status to EmailTask model and update email task handling logic
* NR migration [ENG-10040, ENG-10025, ENG-9854]
* Remove subscription if notifications.tasks.send_moderator_email_task fails with permission error
* Apply suggestion from @Ostap-Zherebetskyi
* remove datetime
* Add 'no_login_email_last_sent' field to OSFUser and update email task logic
* Enforce and improve permission check for subscriptions
* Fix typo in annotated_obj_qs for NODE_FILE_UPDATED
* Add unit tests for testing node_file_updated subscription detail
* Implement notifications cleanup task and related settings; add tests for functionality
* Fix legacy subscription ID for NODE_FILE_UPDATED: "guid_files_updated"
* Fix duplicate and mismatched type NODE_FILE(S)_UPDATED
* removed email.py
* Fix annotated qs for global reviews and update unit tests
* Update tests for node_file(s)_updated subscription detail
* Rename fixtures for notification subscription detail tests
* Annotate with legacy_id for serializer to handle created subscriptions
* Add unit tests for creating missing subscriptions on the fly
* clear useless code
* Rename migration name for NR post-release
* Improve unit test: test_emit_frequency_none
* Remove `seen` from `Notification` and re-make migrations
* `mark_sent()` now handles `fake_sent=True`, and only `save()` once
* Update default settings
* remove useless import
* Enhance SubscriptionList queryset with additional content types and refactor notification type handling
* fix unit test
* Refactor SubscriptionList queryset to use a single provider content type and update related notification handling; add script to update notification subscriptions' content types.
* fix CR comments
* Update comments
* split into 3 files
* remove populate_notification_subscriptions
* Renamed files, refactor of populate notification subscriptions user global file updated
* added try/except, added timers
* converted populate_notification_subscriptions_user_global_reviews.py
* fix batch time execution
* converted populate_notification_subscriptions_node_file_updated
* convert to separate update and create scripts
* updated, added parameters
* move to remove_after_use
* add time track to last batch, fix proper time track for batch in node_file_updated
* convert to use review_nt
* Fix unit tests due to new constraints
* Move missing subscription creation to a helper function in utils
* Subscription list view now creates missing attributes on-the-fly
* Note: only works for when filter on "legacy id"; logs message to sentry for tracking purpose when filter on "event names".
* Fix broken `.exists()` due to complex annotated QS with `.distinct()`
* fix names of tasks
* Add notification subscriptions de-duplication v2 command
* fix naming
* Add deduplication command to notification migration
* Fix notification handling by updating legacy ID suffix from '_files_updated' to '_file_updated' across utils and views; adjust related test cases accordingly.
* fix unit tests
* Update the name of the NotificationType NODE_FILE_UPDATED to be consistent
* Rename notification type from node_files_updated to node_file_updated for consistency
* clean keys
* fix naming in templates, event_context
* remove leftover comments
* Refactor notification type references to use NotificationTypeEnum
- Updated all instances of NotificationType.Type to NotificationTypeEnum in test files and application code.
- Ensured consistency in notification type usage across various tests including auth, claims, events, and more.
- This change improves clarity and maintainability by standardizing the notification type references.
* Fix notification type reference for FILE_UPDATED
* Refactor notification type references to use NotificationTypeEnum across views and scripts
* fix unit tests
* remove imports
* fix USER_CROSSREF_DOI_PENDING event_context
* sync naming
* added explanation
* Add Celery task to disable removed beat tasks from PeriodicTask entries
* Apply suggestion from @Ostap-Zherebetskyi
* Apply suggestion from @cslzchen
* Add migrations to remove duplicate notification subscriptions and refactor notification model
* removed comment
* Refactor no-login email filtering to ensure last sent date is before last login date
* Add test to exclude users logged in before no_login_email_last_sent
* Refactor no-login email user filtering to exclude those with pending EmailTasks and recent no-login emails
* Fix CollectionSubmission URLs to use absolute_url method for consistency
* Refactor logo handling in notification methods to improve consistency and readability
* Add management command to sync notification templates
* Apply suggestion from @cslzchen
* Add management command for deleting withdrawn or failed registration files to CeleryConfig
* fix: update logo handling in send_moderator_email_task for favicon support
---------
Co-authored-by: Longze Chen
Co-authored-by: Ostap Zherebetskyi
Co-authored-by: Bohdan Odintsov
* Updated cut-off time and added comments for NR settings
* Update changelog and bump version
* resolve merge conflicts
* respond to CR comments
* fix tests
* fix tests again
---------
Co-authored-by: Longze Chen
Co-authored-by: Ostap Zherebetskyi
Co-authored-by: Vlad0n20 <137097005+Vlad0n20@users.noreply.github.com>
Co-authored-by: futa-ikeda <51409893+futa-ikeda@users.noreply.github.com>
Co-authored-by: mkovalua
Co-authored-by: abram axel booth
Co-authored-by: Fitz Elliott
Co-authored-by: Andriy Sheredko
Co-authored-by: Bohdan Odintsov
---
CHANGELOG | 32 ++
addons/base/views.py | 16 +-
addons/boa/tasks.py | 10 +-
addons/boa/tests/test_tasks.py | 4 +-
addons/osfstorage/tests/test_models.py | 4 +-
addons/osfstorage/tests/test_views.py | 10 +-
admin/management/urls.py | 4 +-
admin/management/views.py | 9 +
admin/providers/views.py | 4 +-
admin/templates/management/commands.html | 13 +
admin/users/views.py | 5 +-
admin_tests/preprints/test_views.py | 4 +-
admin_tests/users/test_views.py | 10 +-
api/cedar_metadata_records/views.py | 11 +-
api/crossref/views.py | 4 +-
api/institutions/authentication.py | 13 +-
api/nodes/views.py | 10 +-
api/preprints/serializers.py | 4 +-
api/providers/serializers.py | 6 +-
api/providers/tasks.py | 16 +-
api/providers/views.py | 4 +
api/registrations/views.py | 6 +-
api/requests/serializers.py | 7 +-
api/subscriptions/utils.py | 82 +++
api/subscriptions/views.py | 257 +++++----
api/users/serializers.py | 5 +-
api/users/services.py | 7 +-
api/users/views.py | 16 +-
api_tests/actions/views/test_action_list.py | 6 +-
api_tests/base/test_throttling.py | 4 +-
.../test_record_metadata_download_get.py | 5 +
...est_collection_submissions_actions_list.py | 24 +-
.../views/test_crossref_email_response.py | 4 +-
...est_draft_registration_contributor_list.py | 8 +-
.../views/test_draft_registration_list.py | 6 +-
api_tests/guids/views/test_guid_detail.py | 16 +-
.../test_institution_relationship_nodes.py | 8 +-
.../provider/test_collection_submission.py | 10 +-
...est_collections_provider_moderator_list.py | 8 +-
api_tests/mailhog/provider/test_preprints.py | 22 +-
api_tests/mailhog/provider/test_reviewable.py | 8 +-
.../mailhog/provider/test_schema_responses.py | 28 +-
.../mailhog/provider/test_submissions.py | 15 +-
api_tests/mailhog/test_mailhog.py | 6 +-
.../views/test_node_contributors_list.py | 8 +-
.../nodes/views/test_node_detail_update.py | 4 +-
api_tests/nodes/views/test_node_forks_list.py | 28 +-
api_tests/nodes/views/test_node_list.py | 14 +-
.../test_node_relationship_institutions.py | 38 +-
.../notifications/test_notification_digest.py | 43 +-
.../test_notifications_cleanup.py | 189 ++++++
.../test_notifications_db_transaction.py | 27 +-
.../views/test_preprint_contributors_list.py | 14 +-
.../views/test_preprint_detail_update.py | 8 +-
...est_collections_provider_moderator_list.py | 8 +-
.../test_preprint_provider_moderator_list.py | 4 +-
api_tests/providers/tasks/test_bulk_upload.py | 8 +-
.../test_node_request_institutional_access.py | 42 +-
...de_request_institutional_access_logging.py | 6 +-
.../requests/views/test_node_request_list.py | 12 +-
.../views/test_request_actions_create.py | 14 +-
api_tests/share/test_share_preprint.py | 71 +--
.../views/test_subscriptions_detail.py | 266 +++++++--
.../views/test_subscriptions_list.py | 14 +-
api_tests/users/views/test_user_claim.py | 22 +-
api_tests/users/views/test_user_confirm.py | 4 +-
api_tests/users/views/test_user_list.py | 8 +-
.../test_user_message_institutional_access.py | 6 +-
api_tests/users/views/test_user_settings.py | 4 +-
.../test_user_settings_reset_password.py | 4 +-
framework/auth/campaigns.py | 16 +-
framework/auth/decorators.py | 23 +
framework/auth/views.py | 22 +-
notifications.yaml | 137 +----
notifications/file_event_notifications.py | 21 +-
notifications/listeners.py | 23 +-
notifications/tasks.py | 100 ++--
osf/admin.py | 2 +-
.../commands/check_crossref_dois.py | 6 +-
.../commands/deactivate_requested_accounts.py | 8 +-
osf/management/commands/find_spammy_files.py | 4 +-
.../commands/migrate_funder_ids_to_ror.py | 349 +++++++++++
.../commands/migrate_funder_names_to_ror.py | 307 ++++++++++
.../commands/migrate_notifications.py | 10 +-
...duplicate_notification_subscriptions_v2.py | 94 +++
.../send_storage_exceeded_announcement.py | 5 +-
osf/metadata/osf_gathering.py | 15 +-
osf/metadata/rdfutils.py | 48 +-
osf/metadata/schemas/datacite.json | 4 +
osf/metadata/serializers/__init__.py | 3 +
.../datacite/datacite_tree_walker.py | 16 +-
osf/metadata/serializers/linkset.py | 153 +++++
...duplicate_notification_subscriptions_v2.py | 27 +
...0037_notification_refactor_post_release.py | 37 ++
osf/models/__init__.py | 2 +-
osf/models/collection_submission.py | 93 ++-
osf/models/email_task.py | 2 +
osf/models/institution.py | 4 +-
osf/models/mixins.py | 29 +-
osf/models/node.py | 8 +-
osf/models/notification.py | 15 +-
osf/models/notification_subscription.py | 52 +-
osf/models/notification_type.py | 352 ++++++------
osf/models/preprint.py | 11 +-
osf/models/provider.py | 8 +-
osf/models/registrations.py | 6 +-
osf/models/sanctions.py | 18 +-
osf/models/schema_response.py | 10 +-
osf/models/user.py | 6 +-
osf/models/user_message.py | 4 +-
osf/utils/machines.py | 12 +-
osf/utils/notifications.py | 21 +-
.../test_migrate_funder_ids_to_ror.py | 415 ++++++++++++++
.../test_migrate_notifications.py | 33 +-
.../file_basic.linkset | 9 +
.../file_basic.linkset.json | 48 ++
.../expected_metadata_files/file_full.linkset | 9 +
.../file_full.linkset.json | 48 ++
.../expected_metadata_files/file_full.turtle | 8 +-
.../preprint_basic.linkset | 10 +
.../preprint_basic.linkset.json | 51 ++
.../preprint_full.linkset | 12 +
.../preprint_full.linkset.json | 51 ++
.../preprint_full.turtle | 8 +-
.../project_basic.linkset | 11 +
.../project_basic.linkset.json | 57 ++
.../project_full.datacite.json | 11 +-
.../project_full.datacite.xml | 6 +-
.../project_full.linkset | 12 +
.../project_full.linkset.json | 62 ++
.../project_full.turtle | 8 +-
.../registration_basic.linkset | 11 +
.../registration_basic.linkset.json | 57 ++
.../registration_full.linkset | 12 +
.../registration_full.linkset.json | 62 ++
.../registration_full.turtle | 8 +-
osf_tests/metadata/test_osf_gathering.py | 10 +
.../metadata/test_serialized_metadata.py | 30 +-
osf_tests/test_archiver.py | 18 +-
osf_tests/test_collection.py | 4 +-
osf_tests/test_collection_submission.py | 34 +-
osf_tests/test_institution.py | 8 +-
.../test_institutional_admin_contributors.py | 8 +-
osf_tests/test_merging_users.py | 4 +-
osf_tests/test_node.py | 6 +-
...t_registration_moderation_notifications.py | 8 +-
osf_tests/test_reviewable.py | 6 +-
osf_tests/test_schema_responses.py | 32 +-
osf_tests/test_user.py | 4 +-
package.json | 2 +-
pyproject.toml | 2 +-
scripts/disable_removed_beat_tasks.py | 24 +
scripts/osfstorage/usage_audit.py | 4 +-
.../populate_notification_subscriptions.py | 113 ----
...e_notification_subscription_provider_ct.py | 31 +
...ication_subscriptions_node_file_updated.py | 128 +++++
..._subscriptions_user_global_file_updated.py | 111 ++++
...ation_subscriptions_user_global_reviews.py | 104 ++++
scripts/stuck_registration_audit.py | 5 +-
.../test_deactivate_requested_accounts.py | 6 +-
.../tests/test_populate_new_and_noteworthy.py | 1 +
scripts/triggered_mails.py | 35 +-
tests/identifiers/test_datacite.py | 147 ++++-
tests/test_add_contributiors_subscriptions.py | 22 +-
tests/test_adding_contributor_views.py | 30 +-
tests/test_auth.py | 63 +-
tests/test_auth_views.py | 6 +-
tests/test_claim_views.py | 20 +-
tests/test_events.py | 50 +-
tests/test_forgot_password.py | 6 +-
tests/test_misc_views.py | 6 +-
tests/test_preprints.py | 6 +-
tests/test_registrations/test_retractions.py | 6 +-
tests/test_registrations/test_views.py | 2 +-
tests/test_resend_confirmation.py | 4 +-
tests/test_spam_mixin.py | 4 +-
tests/test_triggered_mails.py | 55 +-
tests/test_user_profile_view.py | 4 +-
tests/utils.py | 4 +-
website/archiver/utils.py | 62 +-
website/mailchimp_utils.py | 16 +-
website/notifications/__init__.py | 0
website/notifications/constants.py | 39 --
website/notifications/emails.py | 243 --------
website/notifications/utils.py | 479 ----------------
website/notifications/views.py | 540 ------------------
website/profile/views.py | 8 +-
website/project/views/contributor.py | 42 +-
website/reviews/listeners.py | 12 +-
website/routes.py | 46 +-
website/settings/defaults.py | 29 +-
website/settings/local-ci.py | 4 +-
.../archive_size_exceeded_user.html.mako | 2 +-
website/templates/invite_default.html.mako | 2 +-
...est_institutional_access_request.html.mako | 2 +-
...eviews_resubmission_confirmation.html.mako | 4 +-
website/views.py | 13 +-
197 files changed, 4581 insertions(+), 2854 deletions(-)
create mode 100644 api/subscriptions/utils.py
create mode 100644 api_tests/notifications/test_notifications_cleanup.py
create mode 100644 osf/management/commands/migrate_funder_ids_to_ror.py
create mode 100644 osf/management/commands/migrate_funder_names_to_ror.py
create mode 100644 osf/management/commands/remove_duplicate_notification_subscriptions_v2.py
create mode 100644 osf/metadata/serializers/linkset.py
create mode 100644 osf/migrations/0036_remove_duplicate_notification_subscriptions_v2.py
create mode 100644 osf/migrations/0037_notification_refactor_post_release.py
create mode 100644 osf_tests/management_commands/test_migrate_funder_ids_to_ror.py
create mode 100644 osf_tests/metadata/expected_metadata_files/file_basic.linkset
create mode 100644 osf_tests/metadata/expected_metadata_files/file_basic.linkset.json
create mode 100644 osf_tests/metadata/expected_metadata_files/file_full.linkset
create mode 100644 osf_tests/metadata/expected_metadata_files/file_full.linkset.json
create mode 100644 osf_tests/metadata/expected_metadata_files/preprint_basic.linkset
create mode 100644 osf_tests/metadata/expected_metadata_files/preprint_basic.linkset.json
create mode 100644 osf_tests/metadata/expected_metadata_files/preprint_full.linkset
create mode 100644 osf_tests/metadata/expected_metadata_files/preprint_full.linkset.json
create mode 100644 osf_tests/metadata/expected_metadata_files/project_basic.linkset
create mode 100644 osf_tests/metadata/expected_metadata_files/project_basic.linkset.json
create mode 100644 osf_tests/metadata/expected_metadata_files/project_full.linkset
create mode 100644 osf_tests/metadata/expected_metadata_files/project_full.linkset.json
create mode 100644 osf_tests/metadata/expected_metadata_files/registration_basic.linkset
create mode 100644 osf_tests/metadata/expected_metadata_files/registration_basic.linkset.json
create mode 100644 osf_tests/metadata/expected_metadata_files/registration_full.linkset
create mode 100644 osf_tests/metadata/expected_metadata_files/registration_full.linkset.json
create mode 100644 scripts/disable_removed_beat_tasks.py
delete mode 100644 scripts/populate_notification_subscriptions.py
create mode 100644 scripts/remove_after_use/merge_notification_subscription_provider_ct.py
create mode 100644 scripts/remove_after_use/populate_notification_subscriptions_node_file_updated.py
create mode 100644 scripts/remove_after_use/populate_notification_subscriptions_user_global_file_updated.py
create mode 100644 scripts/remove_after_use/populate_notification_subscriptions_user_global_reviews.py
delete mode 100644 website/notifications/__init__.py
delete mode 100644 website/notifications/constants.py
delete mode 100644 website/notifications/emails.py
delete mode 100644 website/notifications/utils.py
delete mode 100644 website/notifications/views.py
diff --git a/CHANGELOG b/CHANGELOG
index e78571a3001..10515a802f1 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,38 @@
We follow the CalVer (https://calver.org/) versioning scheme: YY.MINOR.MICRO.
+26.5.0 (2026-03-13)
+===================
+
+- Notification refactor post-release project (Post-NR)
+
+26.4.1 (2026-03-01)
+===================
+
+- Add script to update ROR funder names
+
+26.4.0 (2026-02-26)
+===================
+
+- Transition funder ids from CrossRef to ROR
+
+26.3.0 (2026-02-24)
+===================
+
+- FAIR Signposting
+
+26.2.1 (2026-02-09)
+===================
+
+- Permanently update two notification types
+- Link digest to types and fix/log incorrect usage
+- Update notifiction dedupe command
+
+26.2.0
+======
+
+- TODO: add date and log
+
26.1.6 (2026-01-14)
===================
diff --git a/addons/base/views.py b/addons/base/views.py
index 22009cc1d9e..8b4097244b3 100644
--- a/addons/base/views.py
+++ b/addons/base/views.py
@@ -51,7 +51,7 @@
DraftRegistration,
Guid,
FileVersionUserMetadata,
- FileVersion, NotificationType
+ FileVersion, NotificationTypeEnum
)
from osf.metrics import PreprintView, PreprintDownload
from osf.utils import permissions
@@ -575,14 +575,13 @@ def create_waterbutler_log(payload, **kwargs):
if payload.get('email') or payload.get('errors'):
if payload.get('email'):
- notification_type = NotificationType.Type.USER_FILE_OPERATION_SUCCESS.instance
+ notification_type = NotificationTypeEnum.USER_FILE_OPERATION_SUCCESS.instance
if payload.get('errors'):
- notification_type = NotificationType.Type.USER_FILE_OPERATION_FAILED.instance
+ notification_type = NotificationTypeEnum.USER_FILE_OPERATION_FAILED.instance
notification_type.emit(
user=user,
subscribed_object=node,
event_context={
- 'user_fullname': user.fullname,
'action': payload['action'],
'source_node': source_node._id,
'source_node_title': source_node.title,
@@ -1035,9 +1034,12 @@ def persistent_file_download(auth, **kwargs):
query_params = request.args.to_dict()
- return redirect(
- file.generate_waterbutler_url(**query_params),
- code=http_status.HTTP_302_FOUND
+ return make_response(
+ '', http_status.HTTP_302_FOUND, {
+ 'Location': file.generate_waterbutler_url(**query_params),
+ 'Link': f'<{settings.DOMAIN}metadata/{id_or_guid}/?format=linkset> ; rel="linkset" ; type="application/linkset",'
+ f' <{settings.DOMAIN}metadata/{id_or_guid}/?format=linkset-json"> ; rel="linkset-json" ; type="application/linkset+json"',
+ }
)
diff --git a/addons/boa/tasks.py b/addons/boa/tasks.py
index 283867d8489..afbb89f8961 100644
--- a/addons/boa/tasks.py
+++ b/addons/boa/tasks.py
@@ -14,7 +14,7 @@
from addons.boa.boa_error_code import BoaErrorCode
from framework import sentry
from framework.celery_tasks import app as celery_app
-from osf.models import OSFUser, NotificationType
+from osf.models import OSFUser, NotificationTypeEnum
from osf.utils.fields import ensure_str, ensure_bytes
from website import settings as osf_settings
@@ -183,18 +183,15 @@ async def submit_to_boa_async(host, username, password, user_guid, project_guid,
logger.info('Successfully uploaded query output to OSF.')
logger.debug('Task ends <<<<<<<<')
- NotificationType.Type.ADDONS_BOA_JOB_COMPLETE.instance.emit(
+ NotificationTypeEnum.ADDONS_BOA_JOB_COMPLETE.instance.emit(
user=user,
event_context={
'user_fullname': user.fullname,
- 'query_file_name': query_file_name,
'query_file_full_path': file_full_path,
'output_file_name': output_file_name,
'job_id': boa_job.id,
'project_url': project_url,
'boa_job_list_url': boa_settings.BOA_JOB_LIST_URL,
- 'boa_support_email': boa_settings.BOA_SUPPORT_EMAIL,
- 'osf_support_email': osf_settings.OSF_SUPPORT_EMAIL,
}
)
return BoaErrorCode.NO_ERROR
@@ -209,12 +206,11 @@ def handle_boa_error(message, code, username, fullname, project_url, query_file_
sentry.log_message(message, skip_session=True)
except Exception:
pass
- NotificationType.Type.ADDONS_BOA_JOB_FAILURE.instance.emit(
+ NotificationTypeEnum.ADDONS_BOA_JOB_FAILURE.instance.emit(
destination_address=username,
event_context={
'user_fullname': fullname,
'code': code,
- 'query_file_name': query_file_name,
'file_size': file_size,
'message': message,
'max_file_size': boa_settings.MAX_SUBMISSION_SIZE,
diff --git a/addons/boa/tests/test_tasks.py b/addons/boa/tests/test_tasks.py
index 814dc3e2f57..38cc6eba11d 100644
--- a/addons/boa/tests/test_tasks.py
+++ b/addons/boa/tests/test_tasks.py
@@ -9,7 +9,7 @@
from addons.boa import settings as boa_settings
from addons.boa.boa_error_code import BoaErrorCode
from addons.boa.tasks import submit_to_boa, submit_to_boa_async, handle_boa_error
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import AuthUserFactory, ProjectFactory
from tests.base import OsfTestCase
from tests.utils import capture_notifications
@@ -66,7 +66,7 @@ def test_handle_boa_error(self):
job_id=self.job_id
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.ADDONS_BOA_JOB_FAILURE
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.ADDONS_BOA_JOB_FAILURE
mock_sentry_log_message.assert_called_with(self.error_message, skip_session=True)
mock_logger_error.assert_called_with(self.error_message)
assert return_value == BoaErrorCode.UNKNOWN
diff --git a/addons/osfstorage/tests/test_models.py b/addons/osfstorage/tests/test_models.py
index 9fbae6a7fa8..e3972ef04af 100644
--- a/addons/osfstorage/tests/test_models.py
+++ b/addons/osfstorage/tests/test_models.py
@@ -9,7 +9,7 @@
from framework.auth import Auth
from addons.osfstorage.models import OsfStorageFile, OsfStorageFileNode, OsfStorageFolder
-from osf.models import BaseFileNode, NotificationType
+from osf.models import BaseFileNode, NotificationTypeEnum
from osf.exceptions import ValidationError
from osf.utils.permissions import WRITE, ADMIN
@@ -750,7 +750,7 @@ def test_after_fork_copies_versions(self, node, node_settings, auth_obj):
fork = node.fork_node(auth_obj)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
fork_node_settings = fork.get_addon('osfstorage')
fork_node_settings.reload()
diff --git a/addons/osfstorage/tests/test_views.py b/addons/osfstorage/tests/test_views.py
index 16d928e3343..825b68b2671 100644
--- a/addons/osfstorage/tests/test_views.py
+++ b/addons/osfstorage/tests/test_views.py
@@ -1539,11 +1539,19 @@ def test_download_file(self):
# Test download works with path
url = base_url.format(file._id)
redirect = self.app.get(url, auth=self.user.auth)
+ link_header = (f'<{settings.DOMAIN}metadata/{file._id}/?format=linkset> ; rel="linkset" ; type="application/linkset", '
+ f'<{settings.DOMAIN}metadata/{file._id}/?format=linkset-json"> ; rel="linkset-json" ; type="application/linkset+json"')
+ assert link_header == redirect.headers['Link']
assert redirect.status_code == 302
# Test download works with guid
- url = base_url.format(file.get_guid(create=True)._id)
+ guid = file.get_guid(create=True)._id
+ url = base_url.format(guid)
redirect = self.app.get(url, auth=self.user.auth)
+ link_header = (
+ f'<{settings.DOMAIN}metadata/{guid}/?format=linkset> ; rel="linkset" ; type="application/linkset", '
+ f'<{settings.DOMAIN}metadata/{guid}/?format=linkset-json"> ; rel="linkset-json" ; type="application/linkset+json"')
+ assert link_header == redirect.headers['Link']
assert redirect.status_code == 302
# Test nonexistent file 404's
diff --git a/admin/management/urls.py b/admin/management/urls.py
index 6b84a854598..d583deb2ce0 100644
--- a/admin/management/urls.py
+++ b/admin/management/urls.py
@@ -17,5 +17,7 @@
re_path(r'^ingest_cedar_metadata_templates', views.IngestCedarMetadataTemplates.as_view(), name='ingest_cedar_metadata_templates'),
re_path(r'^bulk_resync', views.BulkResync.as_view(), name='bulk-resync'),
re_path(r'^empty_metadata_dataarchive_registration_bulk_resync', views.EmptyMetadataDataarchiveRegistrationBulkResync.as_view(),
- name='empty-metadata-dataarchive-registration-bulk-resync')
+ name='empty-metadata-dataarchive-registration-bulk-resync'),
+ re_path(r'^sync_notification_templates', views.SyncNotificationTemplates.as_view(),
+ name='sync_notification_templates')
]
diff --git a/admin/management/views.py b/admin/management/views.py
index d97e4f4b894..36f3d893f24 100644
--- a/admin/management/views.py
+++ b/admin/management/views.py
@@ -11,6 +11,7 @@
from osf.management.commands.monthly_reporters_go import monthly_reporters_go
from osf.management.commands.fetch_cedar_metadata_templates import ingest_cedar_metadata_templates
from osf.management.commands.sync_doi_metadata import sync_doi_metadata, sync_doi_empty_metadata_dataarchive_registrations
+from osf.management.commands.populate_notification_types import populate_notification_types
from scripts.find_spammy_content import manage_spammy_content
from django.urls import reverse
from django.shortcuts import redirect
@@ -172,3 +173,11 @@ def post(self, request):
})
messages.success(request, 'Resyncing with DataCite! It will take some time.')
return redirect(reverse('management:commands'))
+
+
+class SyncNotificationTemplates(ManagementCommandPermissionView):
+
+ def post(self, request):
+ populate_notification_types()
+ messages.success(request, 'Notification templates have been successfully synced.')
+ return redirect(reverse('management:commands'))
diff --git a/admin/providers/views.py b/admin/providers/views.py
index 20f8383dc69..ae0d74a05f8 100644
--- a/admin/providers/views.py
+++ b/admin/providers/views.py
@@ -1,7 +1,7 @@
from django.shortcuts import redirect
from django.views.generic import TemplateView
from django.contrib import messages
-from osf.models import RegistrationProvider, OSFUser, CollectionProvider, NotificationType
+from osf.models import RegistrationProvider, OSFUser, CollectionProvider, NotificationTypeEnum
from website.settings import DOMAIN
@@ -63,7 +63,7 @@ def post(self, request, *args, **kwargs):
context['provider_url'] = f'{provider.domain or DOMAIN}{provider_type_word}/{(provider._id if not provider.domain else '').strip('/')}'
messages.success(request, f'The following {target_type} was successfully added: {target_user.fullname} ({target_user.username})')
- notification_type = NotificationType.Type.PROVIDER_MODERATOR_ADDED
+ notification_type = NotificationTypeEnum.PROVIDER_MODERATOR_ADDED
notification_type.instance.emit(
user=target_user,
event_context=context,
diff --git a/admin/templates/management/commands.html b/admin/templates/management/commands.html
index c596e876b1c..dd90affd5ff 100644
--- a/admin/templates/management/commands.html
+++ b/admin/templates/management/commands.html
@@ -152,6 +152,19 @@ Resync empty metadata dataarchive registrations with DataCite
+
+ Sync Notification Templates
+
+ Use this management command to sync notification templates. Warning: existing templates modifications via django admin will be overridden if they haven't been updated in code. In addition, templates are cached for 2 hours so changes won't be effective immediately.
+
+
+
{% endblock %}
diff --git a/admin/users/views.py b/admin/users/views.py
index ff7c2078e63..be5f6a6d684 100644
--- a/admin/users/views.py
+++ b/admin/users/views.py
@@ -20,7 +20,7 @@
from osf.models.base import Guid
from osf.models.user import OSFUser
from osf.models.spam import SpamStatus
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from framework.auth import get_user
from framework.auth.core import generate_verification_key
from osf.models.institution import Institution
@@ -186,12 +186,11 @@ def post(self, request, *args, **kwargs):
message=f'User account {user.pk} disabled',
action_flag=USER_REMOVED
)
- NotificationType.Type.USER_REQUEST_DEACTIVATION_COMPLETE.instance.emit(
+ NotificationTypeEnum.USER_REQUEST_DEACTIVATION_COMPLETE.instance.emit(
user=user,
event_context={
'user_fullname': user.fullname,
'contact_email': OSF_SUPPORT_EMAIL,
- 'can_change_preferences': False,
}
)
else:
diff --git a/admin_tests/preprints/test_views.py b/admin_tests/preprints/test_views.py
index 2cdcda136d1..efd571a5772 100644
--- a/admin_tests/preprints/test_views.py
+++ b/admin_tests/preprints/test_views.py
@@ -8,7 +8,7 @@
from django.contrib.messages.storage.fallback import FallbackStorage
from tests.base import AdminTestCase
-from osf.models import Preprint, PreprintLog, PreprintRequest, NotificationType
+from osf.models import Preprint, PreprintLog, PreprintRequest, NotificationTypeEnum
from framework.auth import Auth
from osf_tests.factories import (
AuthUserFactory,
@@ -719,7 +719,7 @@ def test_can_unwithdraw_preprint_without_moderation_workflow(self, withdrawal_re
machine_state=DefaultStates.INITIAL.value)
withdrawal_request.run_submit(admin)
- with assert_notification(type=NotificationType.Type.PREPRINT_REQUEST_WITHDRAWAL_APPROVED):
+ with assert_notification(type=NotificationTypeEnum.PREPRINT_REQUEST_WITHDRAWAL_APPROVED):
withdrawal_request.run_accept(admin, withdrawal_request.comment)
assert preprint.machine_state == 'withdrawn'
diff --git a/admin_tests/users/test_views.py b/admin_tests/users/test_views.py
index a10a2af7d00..c913a8e2347 100644
--- a/admin_tests/users/test_views.py
+++ b/admin_tests/users/test_views.py
@@ -27,7 +27,7 @@
from admin.users.forms import UserSearchForm, MergeUserForm
from osf.models.admin_log_entry import AdminLogEntry
from tests.utils import assert_notification, capture_notifications
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
pytestmark = pytest.mark.django_db
@@ -105,7 +105,7 @@ def test_correct_view_permissions(self):
response = views.ResetPasswordView.as_view()(request, guid=guid)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_FORGOT_PASSWORD
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_FORGOT_PASSWORD
self.assertEqual(response.status_code, 302)
@@ -168,7 +168,7 @@ def setUp(self):
def test_disable_user(self):
settings.ENABLE_EMAIL_SUBSCRIPTIONS = False
count = AdminLogEntry.objects.count()
- with assert_notification(type=NotificationType.Type.USER_REQUEST_DEACTIVATION_COMPLETE, user=self.user):
+ with assert_notification(type=NotificationTypeEnum.USER_REQUEST_DEACTIVATION_COMPLETE, user=self.user):
self.view().post(self.request)
self.user.reload()
assert self.user.is_disabled
@@ -176,7 +176,7 @@ def test_disable_user(self):
def test_reactivate_user(self):
settings.ENABLE_EMAIL_SUBSCRIPTIONS = False
- with assert_notification(type=NotificationType.Type.USER_REQUEST_DEACTIVATION_COMPLETE, user=self.user):
+ with assert_notification(type=NotificationTypeEnum.USER_REQUEST_DEACTIVATION_COMPLETE, user=self.user):
self.view().post(self.request)
count = AdminLogEntry.objects.count()
self.view().post(self.request)
@@ -206,7 +206,7 @@ def test_correct_view_permissions(self):
change_permission = Permission.objects.get(codename='change_osfuser')
user.user_permissions.add(change_permission)
user.save()
- with assert_notification(type=NotificationType.Type.USER_REQUEST_DEACTIVATION_COMPLETE, user=user):
+ with assert_notification(type=NotificationTypeEnum.USER_REQUEST_DEACTIVATION_COMPLETE, user=user):
request = RequestFactory().post(reverse('users:disable', kwargs={'guid': guid}))
request.user = user
diff --git a/api/cedar_metadata_records/views.py b/api/cedar_metadata_records/views.py
index 86eec237804..33ae361334f 100644
--- a/api/cedar_metadata_records/views.py
+++ b/api/cedar_metadata_records/views.py
@@ -19,8 +19,8 @@
CedarMetadataRecordsDetailSerializer,
)
from framework.auth.oauth_scopes import CoreScopes
-
-from osf.models import CedarMetadataRecord
+from osf.models import CedarMetadataRecord, Node, Registration
+from website import settings
logger = logging.getLogger(__name__)
@@ -99,5 +99,10 @@ def get_serializer_class(self):
def get(self, request, *args, **kwargs):
record = self.get_object()
+ is_referent_project_or_registration = isinstance(record.guid.referent, (Node, Registration))
file_name = f'{record._id}-{record.get_template_name()}-v{record.get_template_version()}.json'
- return Response(record.metadata, headers={'Content-Disposition': f'attachment; filename={file_name}'})
+ headers = {'Content-Disposition': f'attachment; filename={file_name}'}
+ if is_referent_project_or_registration:
+ guid_id = record.guid._id
+ headers['link'] = f'<{settings.DOMAIN}{guid_id}/>; rel="describes"; type="text/html"'
+ return Response(record.metadata, headers=headers)
diff --git a/api/crossref/views.py b/api/crossref/views.py
index 333ce1e48f7..9baeb37d562 100644
--- a/api/crossref/views.py
+++ b/api/crossref/views.py
@@ -6,7 +6,7 @@
from rest_framework.views import APIView
from api.crossref.permissions import RequestComesFromMailgun
-from osf.models import Preprint, NotificationType
+from osf.models import Preprint, NotificationTypeEnum
from website import settings
from website.preprints.tasks import mint_doi_on_crossref_fail
@@ -78,7 +78,7 @@ def post(self, request):
if unexpected_errors:
batch_id = crossref_email_content.find('batch_id').text
email_error_text = request.POST['body-plain']
- NotificationType.Type.DESK_CROSSREF_ERROR.instance.emit(
+ NotificationTypeEnum.DESK_CROSSREF_ERROR.instance.emit(
destination_address=settings.OSF_SUPPORT_EMAIL,
event_context={
'batch_id': batch_id,
diff --git a/api/institutions/authentication.py b/api/institutions/authentication.py
index 7824b3380a4..ed7ad96d857 100644
--- a/api/institutions/authentication.py
+++ b/api/institutions/authentication.py
@@ -21,7 +21,7 @@
from osf import features
from osf.exceptions import InstitutionAffiliationStateError
-from osf.models import Institution, NotificationType
+from osf.models import Institution, NotificationTypeEnum
from osf.models.institution import SsoFilterCriteriaAction
from website.settings import OSF_SUPPORT_EMAIL, DOMAIN
@@ -348,11 +348,10 @@ def authenticate(self, request):
user.save()
# Send confirmation email for all three: created, confirmed and claimed
- NotificationType.Type.USER_WELCOME_OSF4I.instance.emit(
+ NotificationTypeEnum.USER_WELCOME_OSF4I.instance.emit(
user=user,
event_context={
'domain': DOMAIN,
- 'osf_support_email': OSF_SUPPORT_EMAIL,
'user_fullname': user.fullname,
'storage_flag_is_active': flag_is_active(request, features.STORAGE_I18N),
},
@@ -363,14 +362,12 @@ def authenticate(self, request):
if email_to_add:
assert not is_created and email_to_add == sso_email
user.emails.create(address=email_to_add)
- NotificationType.Type.USER_ADD_SSO_EMAIL_OSF4I.instance.emit(
+ NotificationTypeEnum.USER_ADD_SSO_EMAIL_OSF4I.instance.emit(
user=user,
event_context={
'user_fullname': user.fullname,
'email_to_add': email_to_add,
- 'domain': DOMAIN,
'osf_support_email': OSF_SUPPORT_EMAIL,
- 'storage_flag_is_active': flag_is_active(request, features.STORAGE_I18N),
},
save=False,
)
@@ -383,17 +380,15 @@ def authenticate(self, request):
duplicate_user.remove_sso_identity_from_affiliation(institution)
if secondary_institution:
duplicate_user.remove_sso_identity_from_affiliation(secondary_institution)
- NotificationType.Type.USER_DUPLICATE_ACCOUNTS_OSF4I.instance.emit(
+ NotificationTypeEnum.USER_DUPLICATE_ACCOUNTS_OSF4I.instance.emit(
user=user,
subscribed_object=user,
event_context={
'user_fullname': user.fullname,
'user_username': user.username,
'user__id': user._id,
- 'duplicate_user_fullname': duplicate_user.fullname,
'duplicate_user_username': duplicate_user.username,
'duplicate_user__id': duplicate_user._id,
- 'domain': DOMAIN,
'osf_support_email': OSF_SUPPORT_EMAIL,
},
)
diff --git a/api/nodes/views.py b/api/nodes/views.py
index 51648d365cd..931220a6f88 100644
--- a/api/nodes/views.py
+++ b/api/nodes/views.py
@@ -161,7 +161,7 @@
Preprint,
Collection,
Contributor,
- NotificationType,
+ NotificationTypeEnum,
)
from addons.osfstorage.models import Region
from osf.utils.permissions import ADMIN, WRITE_NODE
@@ -1093,26 +1093,22 @@ def perform_create(self, serializer):
try:
fork = serializer.save(node=node)
except Exception as exc:
- NotificationType.Type.NODE_FORK_FAILED.instance.emit(
+ NotificationTypeEnum.NODE_FORK_FAILED.instance.emit(
user=user,
subscribed_object=node,
event_context={
- 'domain': settings.DOMAIN,
'node_title': node.title,
- 'can_change_preferences': False,
},
)
raise exc
- NotificationType.Type.NODE_FORK_COMPLETED.instance.emit(
+ NotificationTypeEnum.NODE_FORK_COMPLETED.instance.emit(
user=user,
subscribed_object=node,
event_context={
'domain': settings.DOMAIN,
'node_title': node.title,
- 'fork_title': fork.title,
'fork__id': fork._id,
- 'can_change_preferences': False,
},
)
diff --git a/api/preprints/serializers.py b/api/preprints/serializers.py
index 82223d4e2ae..b901aa093f3 100644
--- a/api/preprints/serializers.py
+++ b/api/preprints/serializers.py
@@ -50,7 +50,7 @@
PreprintProvider,
Node,
NodeLicense,
- NotificationType,
+ NotificationTypeEnum,
)
from osf.utils import permissions as osf_permissions
from osf.utils.workflows import DefaultStates
@@ -481,7 +481,7 @@ def update(self, preprint, validated_data):
preprint,
contributor=author,
auth=auth,
- notification_type=NotificationType.Type.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT,
+ notification_type=NotificationTypeEnum.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT,
)
return preprint
diff --git a/api/providers/serializers.py b/api/providers/serializers.py
index 17b77346ced..7431d221fef 100644
--- a/api/providers/serializers.py
+++ b/api/providers/serializers.py
@@ -10,7 +10,7 @@
from api.preprints.serializers import PreprintProviderRelationshipField
from api.providers.workflows import Workflows
from api.base.metrics import MetricsSerializerMixin
-from osf.models import CitationStyle, NotificationType, RegistrationProvider, CollectionProvider
+from osf.models import CitationStyle, NotificationTypeEnum, RegistrationProvider, CollectionProvider
from osf.models.user import Email, OSFUser
from osf.models.validators import validate_email
from osf.utils.permissions import REVIEW_GROUPS, ADMIN
@@ -390,9 +390,9 @@ def create(self, validated_data):
provider.add_to_group(user, perm_group)
setattr(user, 'permission_group', perm_group) # Allows reserialization
if 'claim_url' in context:
- notification_type = NotificationType.Type.PROVIDER_CONFIRM_EMAIL_MODERATION
+ notification_type = NotificationTypeEnum.PROVIDER_CONFIRM_EMAIL_MODERATION
else:
- notification_type = NotificationType.Type.PROVIDER_MODERATOR_ADDED
+ notification_type = NotificationTypeEnum.PROVIDER_MODERATOR_ADDED
notification_type.instance.emit(
user=user,
event_context=context,
diff --git a/api/providers/tasks.py b/api/providers/tasks.py
index a3b89cb9dc4..4f19821b540 100644
--- a/api/providers/tasks.py
+++ b/api/providers/tasks.py
@@ -27,7 +27,7 @@
RegistrationProvider,
RegistrationSchema,
Subject,
- NotificationType,
+ NotificationTypeEnum,
)
from osf.models.licenses import NodeLicense
from osf.models.registration_bulk_upload_job import JobState
@@ -137,7 +137,7 @@ def prepare_for_registration_bulk_creation(payload_hash, initiator_id, provider_
# Cancel the preparation task if duplicates are found in the CSV and/or in DB
if draft_error_list:
upload.delete()
- NotificationType.Type.REGISTRATION_BULK_UPLOAD_FAILURE_DUPLICATES.instance.emit(
+ NotificationTypeEnum.REGISTRATION_BULK_UPLOAD_FAILURE_DUPLICATES.instance.emit(
user=initiator,
event_context={
'user_fullname': initiator.fullname,
@@ -639,11 +639,11 @@ def bulk_upload_finish_job(upload, row_count, success_count, draft_errors, appro
if not dry_run:
upload.save()
if upload.state == JobState.DONE_FULL:
- notification_type = NotificationType.Type.USER_REGISTRATION_BULK_UPLOAD_SUCCESS_ALL
+ notification_type = NotificationTypeEnum.USER_REGISTRATION_BULK_UPLOAD_SUCCESS_ALL
elif upload.state == JobState.DONE_PARTIAL:
- notification_type = NotificationType.Type.USER_REGISTRATION_BULK_UPLOAD_SUCCESS_PARTIAL
+ notification_type = NotificationTypeEnum.USER_REGISTRATION_BULK_UPLOAD_SUCCESS_PARTIAL
elif upload.state == JobState.DONE_ERROR:
- notification_type = NotificationType.Type.USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL
+ notification_type = NotificationTypeEnum.USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL
else:
logger.error(f'Unexpected job state for upload [{upload.id}]: {upload.state.name}')
sentry.log_message(f'Unexpected job state for upload [{upload.id}]: {upload.state.name}')
@@ -653,13 +653,11 @@ def bulk_upload_finish_job(upload, row_count, success_count, draft_errors, appro
user=initiator,
event_context={
'user_fullname': initiator.fullname,
- 'initiator_fullname': initiator.fullname,
'auto_approval': auto_approval,
'count': row_count,
'total': row_count,
'pending_submissions_url': f'{get_registration_provider_submissions_url(provider)}?status=pending',
'draft_errors': draft_errors,
- 'approval_errors': approval_errors,
'successes': success_count,
'failures': len(draft_errors),
'osf_support_email': settings.OSF_SUPPORT_EMAIL,
@@ -680,7 +678,7 @@ def handle_internal_error(initiator=None, provider=None, message=None, dry_run=T
if not dry_run:
if initiator:
- NotificationType.Type.DESK_USER_REGISTRATION_BULK_UPLOAD_UNEXPECTED_FAILURE.instance.emit(
+ NotificationTypeEnum.DESK_USER_REGISTRATION_BULK_UPLOAD_UNEXPECTED_FAILURE.instance.emit(
user=initiator,
event_context={
'initiator_fullname': initiator.fullname,
@@ -700,7 +698,7 @@ def inform_product_of_errors(initiator=None, provider=None, message=None):
user_info = f'{initiator._id}, {initiator.fullname}, {initiator.username}' if initiator else 'UNIDENTIFIED'
provider_name = provider.name if provider else 'UNIDENTIFIED'
- NotificationType.Type.DESK_REGISTRATION_BULK_UPLOAD_PRODUCT_OWNER.instance.emit(
+ NotificationTypeEnum.DESK_REGISTRATION_BULK_UPLOAD_PRODUCT_OWNER.instance.emit(
destination_address=email,
event_context={
'user': user_info,
diff --git a/api/providers/views.py b/api/providers/views.py
index 85b33258a24..fbfa287d4a7 100644
--- a/api/providers/views.py
+++ b/api/providers/views.py
@@ -78,6 +78,7 @@
WhitelistedSHAREPreprintProvider,
)
from osf.models.action import RegistrationAction, CollectionSubmissionAction
+from osf.models.spam import SpamStatus
from osf.registrations.utils import (
BulkRegistrationUpload,
InvalidHeadersError,
@@ -778,6 +779,9 @@ def get_default_queryset(self):
return Registration.objects.filter(
provider=provider,
+ deleted__isnull=True,
+ ).exclude(
+ spam_status__in=[SpamStatus.FLAGGED, SpamStatus.SPAM],
).annotate(
revision_state=registration_annotations.REVISION_STATE,
**resource_annotations.make_open_practice_badge_annotations(),
diff --git a/api/registrations/views.py b/api/registrations/views.py
index c1bb1ba42a4..67705b5eace 100644
--- a/api/registrations/views.py
+++ b/api/registrations/views.py
@@ -9,6 +9,7 @@
from website.project import signals as project_signals
from osf.models import Registration, OSFUser, RegistrationProvider, OutcomeArtifact, CedarMetadataRecord
+from osf.models.spam import SpamStatus
from osf.utils.permissions import WRITE_NODE
from osf.utils.workflows import ApprovalStates
@@ -923,7 +924,10 @@ def get_registration(self):
return registration
def get_default_queryset(self):
- return self.get_registration().actions.all()
+ registration = self.get_registration()
+ if registration.deleted or registration.spam_status in [SpamStatus.FLAGGED, SpamStatus.SPAM]:
+ return registration.actions.none()
+ return registration.actions.all()
def get_queryset(self):
return self.get_queryset_from_request()
diff --git a/api/requests/serializers.py b/api/requests/serializers.py
index cca3f713094..c276a23f825 100644
--- a/api/requests/serializers.py
+++ b/api/requests/serializers.py
@@ -15,7 +15,7 @@
PreprintRequest,
Institution,
OSFUser,
- NotificationType,
+ NotificationTypeEnum,
)
from osf.utils.workflows import DefaultStates, RequestTypes, NodeRequestTypes
from osf.utils import permissions as osf_permissions
@@ -188,7 +188,7 @@ def make_node_institutional_access_request(self, node, validated_data) -> NodeRe
comment = validated_data.get('comment', '').strip() or language.EMPTY_REQUEST_INSTITUTIONAL_ACCESS_REQUEST_TEXT
- NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST.instance.emit(
+ NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST.instance.emit(
user=recipient,
subscribed_object=node_request.target,
event_context={
@@ -196,10 +196,9 @@ def make_node_institutional_access_request(self, node, validated_data) -> NodeRe
'sender_absolute_url': sender.absolute_url,
'node_absolute_url': node_request.target.absolute_url,
'node_title': node_request.target.title,
- 'recipient_fullname': recipient.username if recipient else None,
+ 'recipient_username': recipient.username if recipient else None,
'comment': comment,
'domain': settings.DOMAIN,
- 'institution_name': institution.name if institution else None,
},
email_context={
'bcc_addr': [sender.username] if validated_data['bcc_sender'] else None,
diff --git a/api/subscriptions/utils.py b/api/subscriptions/utils.py
new file mode 100644
index 00000000000..46b1e927d63
--- /dev/null
+++ b/api/subscriptions/utils.py
@@ -0,0 +1,82 @@
+from django.contrib.contenttypes.models import ContentType
+from django.core.exceptions import PermissionDenied
+
+from rest_framework.exceptions import NotFound
+
+from framework import sentry
+
+from osf.models import AbstractNode, OSFUser
+from osf.models.notification_type import NotificationTypeEnum
+from osf.models.notification_subscription import NotificationSubscription
+
+
+def create_missing_notification_from_legacy_id(legacy_id, user):
+ """
+ `global_file_updated` and `global_reviews` should exist by default for every user, and `_files_update`
+ should exist by default if user is a contributor of the node. If not found, create them with `none` frequency
+ and `_is_digest=True` as default. Raise error if not found, not authorized or permission denied.
+ """
+
+ node_ct = ContentType.objects.get_for_model(AbstractNode)
+ user_ct = ContentType.objects.get_for_model(OSFUser)
+
+ user_file_updated_nt = NotificationTypeEnum.USER_FILE_UPDATED.instance
+ reviews_submission_status_nt = NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.instance
+ node_file_updated_nt = NotificationTypeEnum.NODE_FILE_UPDATED.instance
+
+ node_guid = 'n/a'
+
+ if legacy_id == f'{user._id}_global_file_updated':
+ notification_type = user_file_updated_nt
+ content_type = user_ct
+ object_id = user.id
+ elif legacy_id == f'{user._id}_global_reviews':
+ notification_type = reviews_submission_status_nt
+ content_type = user_ct
+ object_id = user.id
+ elif legacy_id.endswith('_global_file_updated') or legacy_id.endswith('_global_reviews'):
+ # Mismatched request user and subscription user
+ sentry.log_message(f'Permission denied: [user={user._id}, legacy_id={legacy_id}]')
+ raise PermissionDenied
+ # `_files_update` should exist by default if user is a contributor of the node.
+ # If not found, create them with `none` frequency and `_is_digest=True` as default.
+ elif legacy_id.endswith('_file_updated'):
+ notification_type = node_file_updated_nt
+ content_type = node_ct
+ node_guid = legacy_id[:-len('_file_updated')]
+ node = AbstractNode.objects.filter(guids___id=node_guid, is_deleted=False, type='osf.node').first()
+ if not node:
+ # The node in the legacy subscription ID does not exist or is invalid
+ sentry.log_message(
+ f'Node not found in legacy subscription ID: [user={user._id}, legacy_id={legacy_id}]',
+ )
+ raise NotFound
+ if not node.is_contributor(user):
+ # The request user is not a contributor of the node
+ sentry.log_message(
+ f'Permission denied: [user={user._id}], node={node_guid}, legacy_id={legacy_id}]',
+ )
+ raise PermissionDenied
+ object_id = node.id
+ else:
+ sentry.log_message(f'Subscription not found: [user={user._id}, legacy_id={legacy_id}]')
+ raise NotFound
+ missing_subscription_created = NotificationSubscription.objects.create(
+ notification_type=notification_type,
+ user=user,
+ content_type=content_type,
+ object_id=object_id,
+ _is_digest=True,
+ message_frequency='none',
+ )
+ sentry.log_message(
+ f'Missing default subscription has been created: [user={user._id}], node={node_guid} type={notification_type}, legacy_id={legacy_id}]',
+ )
+ return missing_subscription_created
+
+def create_missing_notifications_from_event_name(filter_event_names, user):
+ # Note: this may not be needed since 1) missing node subscriptions are created in the LIST view when filter by
+ # legacy ID, and 2) missing user global subscriptions are created in DETAILS view with legacy ID. However, log
+ # this message to sentry for tracking how often this happens.
+ sentry.log_message(f'Detected empty subscription list when filter by event names: [event={filter_event_names}, user={user._id}]')
+ return None
diff --git a/api/subscriptions/views.py b/api/subscriptions/views.py
index 953e2a66aec..2cf3b881b11 100644
--- a/api/subscriptions/views.py
+++ b/api/subscriptions/views.py
@@ -1,13 +1,15 @@
-from django.db.models import Value, When, Case, OuterRef, Subquery
+from django.contrib.contenttypes.models import ContentType
+from django.core.exceptions import PermissionDenied
+from django.db.models import Value, When, Case, OuterRef, Subquery, F
from django.db.models.fields import CharField, IntegerField
from django.db.models.functions import Concat, Cast
-from django.contrib.contenttypes.models import ContentType
+
from rest_framework import generics
from rest_framework import permissions as drf_permissions
-from rest_framework.exceptions import NotFound
-from django.core.exceptions import ObjectDoesNotExist, PermissionDenied
from rest_framework.response import Response
+
from framework.auth.oauth_scopes import CoreScopes
+
from api.base.views import JSONAPIBaseView
from api.base.filters import ListFilterMixin
from api.base import permissions as base_permissions
@@ -18,6 +20,8 @@
RegistrationSubscriptionSerializer,
)
from api.subscriptions.permissions import IsSubscriptionOwner
+from api.subscriptions import utils
+
from osf.models import (
CollectionProvider,
PreprintProvider,
@@ -25,8 +29,9 @@
AbstractProvider,
AbstractNode,
Guid,
+ OSFUser,
)
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf.models.notification_subscription import NotificationSubscription
@@ -44,63 +49,79 @@ class SubscriptionList(JSONAPIBaseView, generics.ListAPIView, ListFilterMixin):
required_write_scopes = [CoreScopes.NULL]
def get_queryset(self):
+
+ user = self.request.user
user_guid = self.request.user._id
+ filter_id = self.request.query_params.get('filter[id]')
+ filter_event_name = self.request.query_params.get('filter[event_name]')
+
+ provider_ct = ContentType.objects.get_for_model(AbstractProvider)
+ node_ct = ContentType.objects.get_for_model(AbstractNode)
+ user_ct = ContentType.objects.get_for_model(OSFUser)
+
node_subquery = AbstractNode.objects.filter(
id=Cast(OuterRef('object_id'), IntegerField()),
).values('guids___id')[:1]
_global_file_updated = [
- NotificationType.Type.USER_FILE_UPDATED.value,
- NotificationType.Type.FILE_ADDED.value,
- NotificationType.Type.FILE_REMOVED.value,
- NotificationType.Type.ADDON_FILE_COPIED.value,
- NotificationType.Type.ADDON_FILE_RENAMED.value,
- NotificationType.Type.ADDON_FILE_MOVED.value,
- NotificationType.Type.ADDON_FILE_REMOVED.value,
- NotificationType.Type.FOLDER_CREATED.value,
+ NotificationTypeEnum.USER_FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_REMOVED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
]
- _global_reviews = [
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
- NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.value,
- NotificationType.Type.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION.value,
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
- NotificationType.Type.REVIEWS_SUBMISSION_STATUS.value,
+ _global_reviews_provider = [
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
+ NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.value,
+ NotificationTypeEnum.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
+ ]
+ _global_reviews_user = [
+ NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.value,
]
_node_file_updated = [
- NotificationType.Type.NODE_FILE_UPDATED.value,
- NotificationType.Type.FILE_ADDED.value,
- NotificationType.Type.FILE_REMOVED.value,
- NotificationType.Type.ADDON_FILE_COPIED.value,
- NotificationType.Type.ADDON_FILE_RENAMED.value,
- NotificationType.Type.ADDON_FILE_MOVED.value,
- NotificationType.Type.ADDON_FILE_REMOVED.value,
- NotificationType.Type.FOLDER_CREATED.value,
- NotificationType.Type.FILE_UPDATED.value,
+ NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_REMOVED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
+ NotificationTypeEnum.FILE_UPDATED.value,
]
- qs = NotificationSubscription.objects.filter(
- notification_type__name__in=[
- NotificationType.Type.USER_FILE_UPDATED.value,
- NotificationType.Type.NODE_FILE_UPDATED.value,
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
- ] + _global_reviews + _global_file_updated + _node_file_updated,
- user=self.request.user,
+ full_set_of_types = _global_reviews_provider + _global_reviews_user + _global_file_updated + _node_file_updated
+ annotated_qs = NotificationSubscription.objects.filter(
+ notification_type__name__in=full_set_of_types,
+ user=user,
).annotate(
event_name=Case(
When(
notification_type__name__in=_node_file_updated,
- then=Value('files_updated'),
+ content_type=node_ct,
+ then=Value('file_updated'),
),
When(
notification_type__name__in=_global_file_updated,
+ content_type=user_ct,
then=Value('global_file_updated'),
),
When(
- notification_type__name__in=_global_reviews,
+ notification_type__name__in=_global_reviews_provider,
+ content_type=provider_ct,
+ then=Value('global_reviews'),
+ ),
+ When(
+ notification_type__name__in=_global_reviews_user,
+ content_type=user_ct,
then=Value('global_reviews'),
),
- default=Value('notification_type__name'),
+ default=F('notification_type__name'),
),
legacy_id=Case(
When(
@@ -112,24 +133,44 @@ def get_queryset(self):
then=Value(f'{user_guid}_global_file_updated'),
),
When(
- notification_type__name__in=_global_reviews,
+ notification_type__name__in=_global_reviews_provider,
+ content_type=provider_ct,
then=Value(f'{user_guid}_global_reviews'),
),
- default=Value('notification_type__name'),
+ When(
+ notification_type__name__in=_global_reviews_user,
+ content_type=user_ct,
+ then=Value(f'{user_guid}_global_reviews'),
+ ),
+ default=F('notification_type__name'),
),
).distinct('legacy_id')
+ return_qs = annotated_qs
+
# Apply manual filter for legacy_id if requested
- filter_id = self.request.query_params.get('filter[id]')
if filter_id:
- qs = qs.filter(legacy_id=filter_id)
- # convert to list comprehension because legacy_id is an annotation, not in DB
+ return_qs = annotated_qs.filter(legacy_id=filter_id)
+ # TODO: Rework missing subscription fix after fully populating the OSF DB with all missing notifications
+ # NOTE: `.exists()` errors for unknown reason, possibly due to complex annotation with `.distinct()`
+ if return_qs.count() == 0:
+ missing_subscription_created = utils.create_missing_notification_from_legacy_id(filter_id, user)
+ if missing_subscription_created:
+ return_qs = annotated_qs.filter(legacy_id=filter_id)
+ # `filter_id` takes priority over `filter_event_name`
+ return return_qs
+
# Apply manual filter for event_name if requested
- filter_event_name = self.request.query_params.get('filter[event_name]')
if filter_event_name:
- qs = qs.filter(event_name__in=filter_event_name.split(','))
+ filter_event_names = filter_event_name.split(',')
+ return_qs = annotated_qs.filter(event_name__in=filter_event_names)
+ # TODO: Rework missing subscription fix after fully populating the OSF DB with all missing notifications
+ # NOTE: `.exists()` errors for unknown reason, possibly due to complex annotation with `.distinct()`
+ if return_qs.count() == 0:
+ utils.create_missing_notifications_from_event_name(filter_event_names, user)
+
+ return return_qs
- return qs
class AbstractProviderSubscriptionList(SubscriptionList):
def get_queryset(self):
@@ -155,66 +196,74 @@ class SubscriptionDetail(JSONAPIBaseView, generics.RetrieveUpdateAPIView):
def get_object(self):
subscription_id = self.kwargs['subscription_id']
+ user = self.request.user
user_guid = self.request.user._id
-
- provider_ct = ContentType.objects.get(app_label='osf', model='abstractprovider')
- node_ct = ContentType.objects.get(app_label='osf', model='abstractnode')
+ user_ct = ContentType.objects.get_for_model(OSFUser)
+ node_ct = ContentType.objects.get_for_model(AbstractNode)
node_subquery = AbstractNode.objects.filter(
id=Cast(OuterRef('object_id'), IntegerField()),
).values('guids___id')[:1]
- try:
- annotated_obj_qs = NotificationSubscription.objects.filter(user=self.request.user).annotate(
- legacy_id=Case(
- When(
- notification_type__name=NotificationType.Type.NODE_FILE_UPDATED.value,
- content_type=node_ct,
- then=Concat(Subquery(node_subquery), Value('_files_updated')),
- ),
- When(
- notification_type__name=NotificationType.Type.USER_FILE_UPDATED.value,
- then=Value(f'{user_guid}_global_file_updated'),
- ),
- When(
- notification_type__name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
- content_type=provider_ct,
- then=Value(f'{user_guid}_global_reviews'),
- ),
- default=Value(f'{user_guid}_global'),
- output_field=CharField(),
+ missing_subscription_created = None
+ annotated_obj_qs = NotificationSubscription.objects.filter(user=user).annotate(
+ legacy_id=Case(
+ When(
+ notification_type__name=NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ content_type=node_ct,
+ then=Concat(Subquery(node_subquery), Value('_file_updated')),
),
- )
- obj = annotated_obj_qs.filter(legacy_id=subscription_id)
-
- except ObjectDoesNotExist:
- raise NotFound
-
- obj = obj.filter(user=self.request.user).first()
- if not obj:
+ When(
+ notification_type__name=NotificationTypeEnum.USER_FILE_UPDATED.value,
+ then=Value(f'{user_guid}_global_file_updated'),
+ ),
+ When(
+ notification_type__name=NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.value,
+ content_type=user_ct,
+ then=Value(f'{user_guid}_global_reviews'),
+ ),
+ default=Value(f'{user_guid}_global'),
+ output_field=CharField(),
+ ),
+ )
+ existing_subscriptions = annotated_obj_qs.filter(legacy_id=subscription_id)
+
+ # TODO: Rework missing subscription fix after fully populating the OSF DB with all missing notifications
+ if not existing_subscriptions.exists():
+ missing_subscription_created = utils.create_missing_notification_from_legacy_id(subscription_id, user)
+ if missing_subscription_created:
+ # Note: must use `annotated_obj_qs` to insert `legacy_id` so that `SubscriptionSerializer` can build data
+ # properly; in addition, there should be only one result
+ subscription = annotated_obj_qs.get(legacy_id=subscription_id)
+ else:
+ # TODO: Use `get()` and fails/warns on multiple objects after fully de-duplicating the OSF DB
+ subscription = existing_subscriptions.order_by('id').last()
+ if not subscription:
raise PermissionDenied
- self.check_object_permissions(self.request, obj)
- return obj
+ self.check_object_permissions(self.request, subscription)
+ return subscription
def update(self, request, *args, **kwargs):
"""
Update a notification subscription
"""
+ self.get_object()
+
if '_global_file_updated' in self.kwargs['subscription_id']:
# Copy _global_file_updated subscription changes to all file subscriptions
qs = NotificationSubscription.objects.filter(
user=self.request.user,
notification_type__name__in=[
- NotificationType.Type.USER_FILE_UPDATED.value,
- NotificationType.Type.FILE_UPDATED.value,
- NotificationType.Type.FILE_ADDED.value,
- NotificationType.Type.FILE_REMOVED.value,
- NotificationType.Type.ADDON_FILE_COPIED.value,
- NotificationType.Type.ADDON_FILE_RENAMED.value,
- NotificationType.Type.ADDON_FILE_MOVED.value,
- NotificationType.Type.ADDON_FILE_REMOVED.value,
- NotificationType.Type.FOLDER_CREATED.value,
+ NotificationTypeEnum.USER_FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_REMOVED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
],
).exclude(content_type=ContentType.objects.get_for_model(AbstractNode))
if not qs.exists():
@@ -230,11 +279,11 @@ def update(self, request, *args, **kwargs):
qs = NotificationSubscription.objects.filter(
user=self.request.user,
notification_type__name__in=[
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
- NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.value,
- NotificationType.Type.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION.value,
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
- NotificationType.Type.REVIEWS_SUBMISSION_STATUS.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
+ NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.value,
+ NotificationTypeEnum.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
+ NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.value,
],
)
if not qs.exists():
@@ -245,24 +294,24 @@ def update(self, request, *args, **kwargs):
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
return Response(serializer.data)
- elif '_files_updated' in self.kwargs['subscription_id']:
- # Copy _files_updated subscription changes to all node file subscriptions
- node_id = Guid.load(self.kwargs['subscription_id'].split('_files_updated')[0]).object_id
+ elif '_file_updated' in self.kwargs['subscription_id']:
+ # Copy _file_updated subscription changes to all node file subscriptions
+ node_id = Guid.load(self.kwargs['subscription_id'].split('_file_updated')[0]).object_id
qs = NotificationSubscription.objects.filter(
user=self.request.user,
content_type=ContentType.objects.get_for_model(AbstractNode),
object_id=node_id,
notification_type__name__in=[
- NotificationType.Type.NODE_FILE_UPDATED.value,
- NotificationType.Type.FILE_UPDATED.value,
- NotificationType.Type.FILE_ADDED.value,
- NotificationType.Type.FILE_REMOVED.value,
- NotificationType.Type.ADDON_FILE_COPIED.value,
- NotificationType.Type.ADDON_FILE_RENAMED.value,
- NotificationType.Type.ADDON_FILE_MOVED.value,
- NotificationType.Type.ADDON_FILE_REMOVED.value,
- NotificationType.Type.FOLDER_CREATED.value,
+ NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_REMOVED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
],
)
if not qs.exists():
diff --git a/api/users/serializers.py b/api/users/serializers.py
index 023ce24442d..608f93c98c0 100644
--- a/api/users/serializers.py
+++ b/api/users/serializers.py
@@ -34,7 +34,7 @@
from api.nodes.serializers import NodeSerializer, RegionRelationshipField
from framework.auth.views import send_confirm_email_async
from osf.exceptions import ValidationValueError, ValidationError, BlockedEmailError
-from osf.models import Email, Node, OSFUser, Preprint, Registration, UserMessage, Institution, NotificationType
+from osf.models import Email, Node, OSFUser, Preprint, Registration, UserMessage, Institution, NotificationTypeEnum
from osf.models.user_message import MessageTypes
from osf.models.provider import AbstractProviderGroupObjectPermission
from osf.utils.requests import string_type_request_headers
@@ -737,14 +737,13 @@ def update(self, instance, validated_data):
if primary and instance.confirmed:
user.username = instance.address
user.save()
- notification_type = NotificationType.Type.USER_PRIMARY_EMAIL_CHANGED
+ notification_type = NotificationTypeEnum.USER_PRIMARY_EMAIL_CHANGED
notification_type.instance.emit(
subscribed_object=user,
user=user,
event_context={
'user_fullname': user.fullname,
'new_address': user.username,
- 'can_change_preferences': False,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
},
)
diff --git a/api/users/services.py b/api/users/services.py
index 9237f0b1d9f..3b93b230804 100644
--- a/api/users/services.py
+++ b/api/users/services.py
@@ -2,7 +2,7 @@
from django.utils import timezone
from framework.auth.core import generate_verification_key
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from website import settings
@@ -15,14 +15,13 @@ def send_password_reset_email(user, email, verification_type='password', institu
user.save()
reset_link = furl(settings.DOMAIN).add(path=f'resetpassword/{user._id}/{user.verification_key_v2["token"]}').url
- notification_type = NotificationType.Type.USER_FORGOT_PASSWORD_INSTITUTION if institutional \
- else NotificationType.Type.USER_FORGOT_PASSWORD
+ notification_type = NotificationTypeEnum.USER_FORGOT_PASSWORD_INSTITUTION if institutional \
+ else NotificationTypeEnum.USER_FORGOT_PASSWORD
notification_type.instance.emit(
destination_address=email,
event_context={
'reset_link': reset_link,
- 'can_change_preferences': False,
**mail_kwargs,
},
)
diff --git a/api/users/views.py b/api/users/views.py
index 6485fc625ad..b920798be86 100644
--- a/api/users/views.py
+++ b/api/users/views.py
@@ -99,7 +99,7 @@
OSFUser,
Email,
Tag,
- NotificationType,
+ NotificationTypeEnum,
PreprintProvider,
)
from osf.utils.tokens import TokenHandler
@@ -645,14 +645,13 @@ def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = self.get_user()
- NotificationType.Type.DESK_REQUEST_EXPORT.instance.emit(
+ NotificationTypeEnum.DESK_REQUEST_EXPORT.instance.emit(
user=user,
destination_address=settings.OSF_SUPPORT_EMAIL,
event_context={
'user_username': user.username,
'user_absolute_url': user.absolute_url,
'user__id': user._id,
- 'can_change_preferences': False,
},
)
user.email_last_sent = timezone.now()
@@ -857,15 +856,14 @@ def get(self, request, *args, **kwargs):
user_obj.save()
reset_link = f'{settings.DOMAIN}resetpassword/{user_obj._id}/{user_obj.verification_key_v2["token"]}/'
if institutional:
- notification_type = NotificationType.Type.USER_FORGOT_PASSWORD_INSTITUTION
+ notification_type = NotificationTypeEnum.USER_FORGOT_PASSWORD_INSTITUTION
else:
- notification_type = NotificationType.Type.USER_FORGOT_PASSWORD
+ notification_type = NotificationTypeEnum.USER_FORGOT_PASSWORD
notification_type.instance.emit(
user=user_obj,
message_frequency='instantly',
event_context={
- 'can_change_preferences': False,
'reset_link': reset_link,
},
)
@@ -1168,12 +1166,11 @@ def _process_external_identity(self, user, external_identity, service_url):
if external_status == 'CREATE':
service_url += '&' + urlencode({'new': 'true'})
elif external_status == 'LINK':
- NotificationType.Type.USER_EXTERNAL_LOGIN_LINK_SUCCESS.instance.emit(
+ NotificationTypeEnum.USER_EXTERNAL_LOGIN_LINK_SUCCESS.instance.emit(
user=user,
message_frequency='instantly',
event_context={
'user_fullname': user.fullname,
- 'can_change_preferences': False,
'external_id_provider': provider,
},
)
@@ -1490,11 +1487,10 @@ def post(self, request, *args, **kwargs):
if external_status == 'CREATE':
service_url += '&{}'.format(urlencode({'new': 'true'}))
elif external_status == 'LINK':
- NotificationType.Type.USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_LINK.instance.emit(
+ NotificationTypeEnum.USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_LINK.instance.emit(
user=user,
message_frequency='instantly',
event_context={
- 'can_change_preferences': False,
'external_id_provider': provider.name,
},
)
diff --git a/api_tests/actions/views/test_action_list.py b/api_tests/actions/views/test_action_list.py
index 2881706ba7c..fc5de8a1d02 100644
--- a/api_tests/actions/views/test_action_list.py
+++ b/api_tests/actions/views/test_action_list.py
@@ -1,7 +1,7 @@
import pytest
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
PreprintFactory,
AuthUserFactory,
@@ -193,8 +193,8 @@ def test_accept_permissions_accept(self, app, url, preprint, node_admin, moderat
with capture_notifications() as notifications:
res = app.post_json_api(url, accept_payload, auth=moderator.auth)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.REVIEWS_SUBMISSION_STATUS
- assert notifications['emits'][1]['type'] == NotificationType.Type.REVIEWS_SUBMISSION_STATUS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS
assert res.status_code == 201
preprint.refresh_from_db()
assert preprint.machine_state == 'accepted'
diff --git a/api_tests/base/test_throttling.py b/api_tests/base/test_throttling.py
index a1c2921ca2f..22de7950bbd 100644
--- a/api_tests/base/test_throttling.py
+++ b/api_tests/base/test_throttling.py
@@ -1,7 +1,7 @@
from unittest import mock
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from tests.base import ApiTestCase
from osf_tests.factories import AuthUserFactory, ProjectFactory
@@ -131,7 +131,7 @@ def test_add_contrib_throttle_rate_allow_request_called(self, mock_allow):
auth=self.user.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
assert res.status_code == 201
assert mock_allow.call_count == 1
diff --git a/api_tests/cedar_metadata_records/views/test_record_metadata_download_get.py b/api_tests/cedar_metadata_records/views/test_record_metadata_download_get.py
index eb10a25aa8c..81cb97852f5 100644
--- a/api_tests/cedar_metadata_records/views/test_record_metadata_download_get.py
+++ b/api_tests/cedar_metadata_records/views/test_record_metadata_download_get.py
@@ -3,6 +3,8 @@
from .test_record import TestCedarMetadataRecord
from osf.utils.permissions import READ, WRITE
from osf_tests.factories import AuthUserFactory
+from website import settings
+
@pytest.mark.django_db
class TestCedarMetadataRecordMetadataDownloadPrivateProjectPublishedMetadata(TestCedarMetadataRecord):
@@ -13,6 +15,7 @@ def test_record_metadata_download_for_node_with_admin_auth(self, app, node, user
resp = app.get(f'/_/cedar_metadata_records/{cedar_record_for_node._id}/metadata_download/', auth=admin.auth)
assert resp.status_code == 200
assert resp.headers['Content-Disposition'] == f'attachment; filename={self.get_record_metadata_download_file_name(cedar_record_for_node)}'
+ assert resp.headers.get('Link') == f'<{settings.DOMAIN}{node._id}/>; rel="describes"; type="text/html"'
assert resp.json == cedar_record_metadata_json
def test_record_metadata_download_for_node_with_write_auth(self, app, node, cedar_record_for_node, cedar_record_metadata_json):
@@ -179,6 +182,7 @@ def test_record_metadata_download_for_registration_with_admin_auth(self, app, us
resp = app.get(f'/_/cedar_metadata_records/{cedar_record_for_registration._id}/metadata_download/', auth=admin.auth)
assert resp.status_code == 200
assert resp.headers['Content-Disposition'] == f'attachment; filename={self.get_record_metadata_download_file_name(cedar_record_for_registration)}'
+ assert resp.headers.get('Link') == f'<{settings.DOMAIN}{cedar_record_for_registration.guid._id}/>; rel="describes"; type="text/html"'
assert resp.json == cedar_record_metadata_json
def test_record_metadata_download_for_registration_with_write_auth(self, app, registration, cedar_record_for_registration, cedar_record_metadata_json):
@@ -307,6 +311,7 @@ def test_record_metadata_download_for_node_with_admin_auth(self, app, user, ceda
resp = app.get(f'/_/cedar_metadata_records/{cedar_draft_record_for_file_alt._id}/metadata_download/', auth=admin.auth)
assert resp.status_code == 200
assert resp.headers['Content-Disposition'] == f'attachment; filename={self.get_record_metadata_download_file_name(cedar_draft_record_for_file_alt)}'
+ assert not resp.headers.get('Link')
assert resp.json == cedar_record_metadata_json
def test_record_metadata_download_for_node_with_write_auth(self, app, node_alt, cedar_draft_record_for_file_alt, cedar_record_metadata_json):
diff --git a/api_tests/collection_submission_actions/views/test_collection_submissions_actions_list.py b/api_tests/collection_submission_actions/views/test_collection_submissions_actions_list.py
index 9c9fb239fb2..9de82198b96 100644
--- a/api_tests/collection_submission_actions/views/test_collection_submissions_actions_list.py
+++ b/api_tests/collection_submission_actions/views/test_collection_submissions_actions_list.py
@@ -5,7 +5,7 @@
from django.utils import timezone
from osf_tests.factories import NodeFactory, CollectionFactory, CollectionProviderFactory
-from osf.models import CollectionSubmission, NotificationType
+from osf.models import CollectionSubmission, NotificationTypeEnum
from osf.utils.workflows import CollectionSubmissionsTriggers, CollectionSubmissionStates
from tests.utils import capture_notifications
@@ -133,9 +133,9 @@ def test_status_code__collection_moderator_accept_reject_moderated(self, app, no
)
assert len(notifications['emits']) == 1
if moderator_trigger is CollectionSubmissionsTriggers.ACCEPT:
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_ACCEPTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_ACCEPTED
if moderator_trigger is CollectionSubmissionsTriggers.REJECT:
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REJECTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REJECTED
assert resp.status_code == 201
@pytest.mark.parametrize('moderator_trigger', [CollectionSubmissionsTriggers.ACCEPT, CollectionSubmissionsTriggers.REJECT])
@@ -181,13 +181,13 @@ def test_status_code__remove(self, app, node, collection_submission, user_role):
assert resp.status_code == 201
if user_role == UserRoles.MODERATOR:
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_MODERATOR
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_MODERATOR
assert notifications['emits'][0]['kwargs']['user'] == collection_submission.creator
else:
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN
assert notifications['emits'][0]['kwargs']['user'] == collection_submission.creator
- assert notifications['emits'][1]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN
assert notifications['emits'][1]['kwargs']['user'] == node.contributors.last()
@@ -211,7 +211,7 @@ def test_POST_accept__writes_action_and_advances_state(self, app, collection_sub
with capture_notifications() as notifications:
app.post_json_api(POST_URL, payload, auth=test_auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_ACCEPTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_ACCEPTED
user = collection_submission.collection.provider.get_group('moderator').user_set.first()
collection_submission.refresh_from_db()
@@ -230,7 +230,7 @@ def test_POST_reject__writes_action_and_advances_state(self, app, collection_sub
with capture_notifications() as notifications:
app.post_json_api(POST_URL, payload, auth=test_auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REJECTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REJECTED
user = collection_submission.collection.provider.get_group('moderator').user_set.first()
collection_submission.refresh_from_db()
@@ -249,9 +249,9 @@ def test_POST_cancel__writes_action_and_advances_state(self, app, collection_sub
with capture_notifications() as notifications:
app.post_json_api(POST_URL, payload, auth=test_auth)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_CANCEL
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_CANCEL
assert notifications['emits'][0]['kwargs']['user'] == collection_submission.creator
- assert notifications['emits'][1]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_CANCEL
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_CANCEL
assert notifications['emits'][0]['kwargs']['user'] == node.creator
collection_submission.refresh_from_db()
@@ -271,7 +271,7 @@ def test_POST_remove__writes_action_and_advances_state(self, app, collection_sub
with capture_notifications() as notifications:
app.post_json_api(POST_URL, payload, auth=test_auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_MODERATOR
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_MODERATOR
user = collection_submission.collection.provider.get_group('moderator').user_set.first()
collection_submission.refresh_from_db()
action = collection_submission.actions.last()
@@ -322,7 +322,7 @@ def test_status_code__private_collection_moderator(self, app, node, collection,
expect_errors=True
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_ACCEPTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_ACCEPTED
assert resp.status_code == 201
diff --git a/api_tests/crossref/views/test_crossref_email_response.py b/api_tests/crossref/views/test_crossref_email_response.py
index 33345f4f442..196c0debd2a 100644
--- a/api_tests/crossref/views/test_crossref_email_response.py
+++ b/api_tests/crossref/views/test_crossref_email_response.py
@@ -5,7 +5,7 @@
from django.utils import timezone
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests import factories
from tests.utils import capture_notifications
from website import settings
@@ -163,7 +163,7 @@ def test_error_response_sends_message_does_not_set_doi(self, app, url, preprint,
with capture_notifications() as notifications:
app.post(url, context_data)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DESK_CROSSREF_ERROR
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DESK_CROSSREF_ERROR
assert not preprint.get_identifier_value('doi')
def test_success_response_sets_doi(self, app, url, preprint, success_xml):
diff --git a/api_tests/draft_registrations/views/test_draft_registration_contributor_list.py b/api_tests/draft_registrations/views/test_draft_registration_contributor_list.py
index c40886863fa..5d76ae1522b 100644
--- a/api_tests/draft_registrations/views/test_draft_registration_contributor_list.py
+++ b/api_tests/draft_registrations/views/test_draft_registration_contributor_list.py
@@ -16,7 +16,7 @@
TestNodeContributorFiltering,
)
from api_tests.nodes.views.utils import NodeCRUDTestCase
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf_tests.factories import (
DraftRegistrationFactory,
AuthUserFactory,
@@ -238,7 +238,7 @@ def test_add_contributor_sends_email(self, app, user, user_two, url_project_cont
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
# Overrides TestNodeContributorCreateEmail
def test_add_contributor_signal_if_default(
@@ -281,7 +281,7 @@ def test_add_unregistered_contributor_sends_email(self, app, user, url_project_c
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INVITE_DRAFT_REGISTRATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INVITE_DRAFT_REGISTRATION
# Overrides TestNodeContributorCreateEmail
def test_add_unregistered_contributor_signal_if_default(self, app, user, url_project_contribs):
@@ -300,7 +300,7 @@ def test_add_unregistered_contributor_signal_if_default(self, app, user, url_pro
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INVITE_DRAFT_REGISTRATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INVITE_DRAFT_REGISTRATION
# Overrides TestNodeContributorCreateEmail
def test_add_unregistered_contributor_without_email_no_email(self, app, user, url_project_contribs):
diff --git a/api_tests/draft_registrations/views/test_draft_registration_list.py b/api_tests/draft_registrations/views/test_draft_registration_list.py
index c2c0cce084c..decb75e087e 100644
--- a/api_tests/draft_registrations/views/test_draft_registration_list.py
+++ b/api_tests/draft_registrations/views/test_draft_registration_list.py
@@ -6,7 +6,7 @@
from api.base.settings.defaults import API_BASE
from osf.migrations import ensure_invisible_and_inactive_schema
-from osf.models import DraftRegistration, NodeLicense, RegistrationProvider, RegistrationSchema, NotificationType
+from osf.models import DraftRegistration, NodeLicense, RegistrationProvider, RegistrationSchema, NotificationTypeEnum
from osf_tests.factories import (
RegistrationFactory,
CollectionFactory,
@@ -448,7 +448,7 @@ def test_create_no_project_draft_emails_initiator(self, app, user, url_draft_reg
auth=user.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
assert notifications['emits'][0]['kwargs']['user'] == user
def test_create_draft_with_provider(
@@ -541,7 +541,7 @@ def test_draft_registration_attributes_not_copied_from_node(self, app, project_p
auth=user.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
assert res.status_code == 201
attributes = res.json['data']['attributes']
assert attributes['title'] == ''
diff --git a/api_tests/guids/views/test_guid_detail.py b/api_tests/guids/views/test_guid_detail.py
index 4a6db0fbc35..f52ff10e215 100644
--- a/api_tests/guids/views/test_guid_detail.py
+++ b/api_tests/guids/views/test_guid_detail.py
@@ -12,6 +12,7 @@
PrivateLinkFactory,
)
from website.settings import API_DOMAIN
+from tests.utils import capture_notifications
@pytest.mark.django_db
@@ -32,13 +33,14 @@ def registration(self):
@pytest.fixture()
def versioned_preprint(self, user):
preprint = PreprintFactory(reviews_workflow='pre-moderation')
- PreprintFactory.create_version(
- create_from=preprint,
- creator=user,
- final_machine_state='accepted',
- is_published=True,
- set_doi=False
- )
+ with capture_notifications():
+ PreprintFactory.create_version(
+ create_from=preprint,
+ creator=user,
+ final_machine_state='accepted',
+ is_published=True,
+ set_doi=False
+ )
return preprint
def test_redirects(self, app, project, registration, user):
diff --git a/api_tests/institutions/views/test_institution_relationship_nodes.py b/api_tests/institutions/views/test_institution_relationship_nodes.py
index f99802dbe91..7b3fc54f05f 100644
--- a/api_tests/institutions/views/test_institution_relationship_nodes.py
+++ b/api_tests/institutions/views/test_institution_relationship_nodes.py
@@ -1,7 +1,7 @@
import pytest
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
RegistrationFactory,
InstitutionFactory,
@@ -425,7 +425,7 @@ def test_email_sent_on_affiliation_addition(
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
def test_email_sent_on_affiliation_removal(self, app, admin, institution, node_public, url_institution_nodes):
current_institution = InstitutionFactory()
@@ -448,7 +448,7 @@ def test_email_sent_on_affiliation_removal(self, app, admin, institution, node_p
assert res.status_code == 204
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert notifications['emits'][0]['kwargs']['user'] == node_public.creator
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert notifications['emits'][1]['kwargs']['user'] == admin
diff --git a/api_tests/mailhog/provider/test_collection_submission.py b/api_tests/mailhog/provider/test_collection_submission.py
index 24e6b010d64..97de8e9b2c4 100644
--- a/api_tests/mailhog/provider/test_collection_submission.py
+++ b/api_tests/mailhog/provider/test_collection_submission.py
@@ -7,7 +7,7 @@
CollectionProviderFactory,
CollectionFactory,
)
-from osf.models import NotificationType, CollectionSubmission
+from osf.models import NotificationTypeEnum, CollectionSubmission
from tests.utils import get_mailhog_messages, delete_mailhog_messages, capture_notifications
from osf.utils.workflows import CollectionSubmissionStates
@@ -49,8 +49,8 @@ def test_notify_contributors_pending(self, node, moderated_collection):
)
collection_submission.save()
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_SUBMITTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_SUBMITTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert collection_submission.state == CollectionSubmissionStates.PENDING
massages = get_mailhog_messages()
assert massages['count'] == len(notifications['emails'])
@@ -67,8 +67,8 @@ def test_notify_moderators_pending(self, node, moderated_collection):
)
collection_submission.save()
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_SUBMITTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_SUBMITTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert collection_submission.state == CollectionSubmissionStates.PENDING
massages = get_mailhog_messages()
assert massages['count'] == len(notifications['emails'])
diff --git a/api_tests/mailhog/provider/test_collections_provider_moderator_list.py b/api_tests/mailhog/provider/test_collections_provider_moderator_list.py
index 635deb42c4b..49d139062b7 100644
--- a/api_tests/mailhog/provider/test_collections_provider_moderator_list.py
+++ b/api_tests/mailhog/provider/test_collections_provider_moderator_list.py
@@ -2,7 +2,7 @@
from waffle.testutils import override_switch
from osf import features
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
AuthUserFactory,
CollectionProviderFactory,
@@ -69,7 +69,7 @@ def test_POST_admin_success_existing_user(self, app, url, nonmoderator, moderato
with capture_notifications(passthrough=True) as notifications:
res = app.post_json_api(url, payload, auth=admin.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_MODERATOR_ADDED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_MODERATOR_ADDED
assert res.status_code == 201
assert res.json['data']['id'] == nonmoderator._id
assert res.json['data']['attributes']['permission_group'] == 'moderator'
@@ -97,7 +97,7 @@ def test_POST_admin_failure_unreg_moderator(self, app, url, moderator, nonmodera
res = app.post_json_api(url, payload, auth=admin.auth)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_CONFIRM_EMAIL_MODERATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_CONFIRM_EMAIL_MODERATION
assert notifications['emits'][0]['kwargs']['user'].username == unreg_user['email']
massages = get_mailhog_messages()
@@ -113,7 +113,7 @@ def test_POST_admin_success_email(self, app, url, nonmoderator, moderator, admin
with capture_notifications(passthrough=True) as notifications:
res = app.post_json_api(url, payload, auth=admin.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_CONFIRM_EMAIL_MODERATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_CONFIRM_EMAIL_MODERATION
assert res.status_code == 201
assert len(res.json['data']['id']) == 5
assert res.json['data']['attributes']['permission_group'] == 'moderator'
diff --git a/api_tests/mailhog/provider/test_preprints.py b/api_tests/mailhog/provider/test_preprints.py
index db514c87c34..7aa5fed3a9b 100644
--- a/api_tests/mailhog/provider/test_preprints.py
+++ b/api_tests/mailhog/provider/test_preprints.py
@@ -2,7 +2,7 @@
from osf import features
from framework.auth.core import Auth
-from osf.models import NotificationType, Notification
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
ProjectFactory,
AuthUserFactory,
@@ -12,7 +12,6 @@
from osf.utils.permissions import WRITE
from tests.base import OsfTestCase
from tests.utils import get_mailhog_messages, delete_mailhog_messages, capture_notifications, assert_emails
-from notifications.tasks import send_users_instant_digest_email
class TestPreprintConfirmationEmails(OsfTestCase):
@@ -33,27 +32,16 @@ def test_creator_gets_email(self):
with capture_notifications(passthrough=True) as notifications:
self.preprint.set_published(True, auth=Auth(self.user), save=True)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
messages = get_mailhog_messages()
- assert not messages['items']
- assert Notification.objects.all()
- with capture_notifications(passthrough=True) as notifications:
- send_users_instant_digest_email.delay()
-
- messages = get_mailhog_messages()
- assert messages['count'] == len(notifications['emits'])
+ assert_emails(messages, notifications)
delete_mailhog_messages()
with capture_notifications(passthrough=True) as notifications:
self.preprint_branded.set_published(True, auth=Auth(self.user), save=True)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
messages = get_mailhog_messages()
- assert not messages['items']
- with capture_notifications(passthrough=True) as notifications:
- send_users_instant_digest_email.delay()
- massages = get_mailhog_messages()
- assert massages['count'] == len(notifications['emits'])
- assert_emails(massages, notifications)
+ assert_emails(messages, notifications)
delete_mailhog_messages()
diff --git a/api_tests/mailhog/provider/test_reviewable.py b/api_tests/mailhog/provider/test_reviewable.py
index c493c6a3b22..f07a874b061 100644
--- a/api_tests/mailhog/provider/test_reviewable.py
+++ b/api_tests/mailhog/provider/test_reviewable.py
@@ -1,7 +1,7 @@
import pytest
from waffle.testutils import override_switch
from osf import features
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf.utils.workflows import DefaultStates
from osf_tests.factories import PreprintFactory, AuthUserFactory
from tests.utils import get_mailhog_messages, delete_mailhog_messages, capture_notifications, assert_emails
@@ -20,7 +20,7 @@ def test_reject_resubmission_sends_emails(self):
with capture_notifications(passthrough=True) as notifications:
preprint.run_submit(user)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
assert preprint.machine_state == DefaultStates.PENDING.value
delete_mailhog_messages()
@@ -30,7 +30,7 @@ def test_reject_resubmission_sends_emails(self):
preprint.run_reject(user, 'comment')
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.REVIEWS_SUBMISSION_STATUS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS
assert preprint.machine_state == DefaultStates.REJECTED.value
massages = get_mailhog_messages()
@@ -41,7 +41,7 @@ def test_reject_resubmission_sends_emails(self):
with capture_notifications(passthrough=True) as notifications:
preprint.run_submit(user) # Resubmission alerts users and moderators
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION
assert preprint.machine_state == DefaultStates.PENDING.value
messages = get_mailhog_messages()
diff --git a/api_tests/mailhog/provider/test_schema_responses.py b/api_tests/mailhog/provider/test_schema_responses.py
index f8fec0b42bf..cab6a5a8da4 100644
--- a/api_tests/mailhog/provider/test_schema_responses.py
+++ b/api_tests/mailhog/provider/test_schema_responses.py
@@ -2,7 +2,7 @@
from waffle.testutils import override_switch
from osf import features
from api.providers.workflows import Workflows
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf.models import schema_response # import module for mocking purposes
from osf.utils.workflows import ApprovalStates
from osf_tests.factories import AuthUserFactory, ProjectFactory, RegistrationFactory, RegistrationProviderFactory
@@ -125,9 +125,9 @@ def test_submit_response_notification(
with capture_notifications(passthrough=True) as notifications:
revised_response.submit(user=admin_user, required_approvers=[admin_user])
assert len(notifications['emits']) == 3
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_SUBMITTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_SUBMITTED
- assert notifications['emits'][2]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_SUBMITTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_SUBMITTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_SUBMITTED
+ assert notifications['emits'][2]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_SUBMITTED
massages = get_mailhog_messages()
assert massages['count'] == len(notifications['emails'])
assert_emails(massages, notifications)
@@ -145,9 +145,9 @@ def test_approve_response_notification(
with capture_notifications(passthrough=True) as notifications:
revised_response.approve(user=alternate_user)
assert len(notifications['emits']) == 3
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
- assert notifications['emits'][2]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][2]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
massages = get_mailhog_messages()
assert massages['count'] == len(notifications['emails'])
assert_emails(massages, notifications)
@@ -164,9 +164,9 @@ def test_reject_response_notification(
with capture_notifications(passthrough=True) as notifications:
revised_response.reject(user=admin_user)
assert len(notifications['emits']) == 3
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_REJECTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_REJECTED
- assert notifications['emits'][2]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_REJECTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_REJECTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_REJECTED
+ assert notifications['emits'][2]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_REJECTED
massages = get_mailhog_messages()
assert massages['count'] == len(notifications['emails'])
assert_emails(massages, notifications)
@@ -207,9 +207,9 @@ def test_accept_notification_sent_on_admin_approval(self, revised_response, admi
revised_response.approve(user=admin_user)
assert len(notifications['emits']) == 2
assert notifications['emits'][0]['kwargs']['user'] == moderator
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert notifications['emits'][1]['kwargs']['user'] == admin_user
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
massages = get_mailhog_messages()
assert massages['count'] == len(notifications['emails'])
assert_emails(massages, notifications)
@@ -226,9 +226,9 @@ def test_moderators_notified_on_admin_approval(self, revised_response, admin_use
revised_response.approve(user=admin_user)
assert len(notifications['emits']) == 2
assert notifications['emits'][0]['kwargs']['user'] == moderator
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert notifications['emits'][1]['kwargs']['user'] == admin_user
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
massages = get_mailhog_messages()
assert massages['count'] == len(notifications['emails'])
assert_emails(massages, notifications)
diff --git a/api_tests/mailhog/provider/test_submissions.py b/api_tests/mailhog/provider/test_submissions.py
index caa0abe71b0..542d4410a99 100644
--- a/api_tests/mailhog/provider/test_submissions.py
+++ b/api_tests/mailhog/provider/test_submissions.py
@@ -18,10 +18,10 @@
from tests.base import get_default_metaschema
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf.migrations import update_provider_auth_groups
-from tests.utils import capture_notifications, get_mailhog_messages, delete_mailhog_messages
+from tests.utils import capture_notifications, get_mailhog_messages, delete_mailhog_messages, assert_emails
@pytest.mark.django_db
@@ -82,11 +82,10 @@ def test_get_registration_actions(self, app, registration_actions_url, registrat
resp = app.get(registration_actions_url, auth=moderator.auth)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS
- assert notifications['emits'][1]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS
messages = get_mailhog_messages()
- assert messages['count'] == 1
- assert messages['items'][0]['Content']['Headers']['To'][0] == registration.creator.username
+ assert_emails(messages, notifications)
delete_mailhog_messages()
@@ -116,8 +115,8 @@ def test_get_provider_actions(self, app, provider_actions_url, registration, mod
resp = app.get(provider_actions_url, auth=moderator.auth)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
- assert notifications['emits'][1]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
send_users_instant_digest_email.delay()
messages = get_mailhog_messages()
assert messages['count'] == 1
diff --git a/api_tests/mailhog/test_mailhog.py b/api_tests/mailhog/test_mailhog.py
index 998f588e452..6ef82c641a8 100644
--- a/api_tests/mailhog/test_mailhog.py
+++ b/api_tests/mailhog/test_mailhog.py
@@ -12,7 +12,7 @@
fake
)
from framework import auth
-from osf.models import OSFUser, NotificationType
+from osf.models import OSFUser, NotificationType, NotificationTypeEnum
from tests.base import (
OsfTestCase,
)
@@ -28,7 +28,7 @@ class TestMailHog:
def test_mailhog_received_mail(self):
delete_mailhog_messages()
- NotificationType.Type.USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL.instance.emit(
+ NotificationTypeEnum.USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL.instance.emit(
message_frequency='instantly',
destination_address='to_addr@mail.com',
event_context={
@@ -44,7 +44,7 @@ def test_mailhog_received_mail(self):
assert res['count'] == 1
assert res['items'][0]['Content']['Headers']['To'][0] == 'to_addr@mail.com'
assert res['items'][0]['Content']['Headers']['Subject'][0] == NotificationType.objects.get(
- name=NotificationType.Type.USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL
+ name=NotificationTypeEnum.USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL
).subject
delete_mailhog_messages()
diff --git a/api_tests/nodes/views/test_node_contributors_list.py b/api_tests/nodes/views/test_node_contributors_list.py
index 93ea9378f4c..854f5288a14 100644
--- a/api_tests/nodes/views/test_node_contributors_list.py
+++ b/api_tests/nodes/views/test_node_contributors_list.py
@@ -6,7 +6,7 @@
from api.base.settings.defaults import API_BASE
from api.nodes.serializers import NodeContributorsCreateSerializer
from framework.auth.core import Auth
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf_tests.factories import (
fake_email,
AuthUserFactory,
@@ -1273,7 +1273,7 @@ def test_add_contributor_signal_if_default(
res = app.post_json_api(url, payload, auth=user.auth)
args, kwargs = mock_send.call_args
assert res.status_code == 201
- assert NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT == kwargs['notification_type']
+ assert NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT == kwargs['notification_type']
def test_add_contributor_signal_preprint_email_disallowed(
self, app, user, user_two, url_project_contribs
@@ -1311,7 +1311,7 @@ def test_add_unregistered_contributor_sends_email(
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INVITE_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INVITE_DEFAULT
@mock.patch('website.project.signals.unreg_contributor_added.send')
def test_add_unregistered_contributor_signal_if_default(
@@ -1333,7 +1333,7 @@ def test_add_unregistered_contributor_signal_if_default(
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INVITE_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INVITE_DEFAULT
def test_add_unregistered_contributor_signal_preprint_email_disallowed(
self, app, user, url_project_contribs
diff --git a/api_tests/nodes/views/test_node_detail_update.py b/api_tests/nodes/views/test_node_detail_update.py
index de6bd55158e..b4000a31db6 100644
--- a/api_tests/nodes/views/test_node_detail_update.py
+++ b/api_tests/nodes/views/test_node_detail_update.py
@@ -8,7 +8,7 @@
from api_tests.nodes.views.utils import NodeCRUDTestCase
from api_tests.subjects.mixins import UpdateSubjectsMixin
from framework.auth.core import Auth
-from osf.models import NodeLog, NotificationType
+from osf.models import NodeLog, NotificationTypeEnum
from osf.utils.sanitize import strip_html
from osf.utils import permissions
from osf_tests.factories import (
@@ -47,7 +47,7 @@ def test_node_institution_update(self, app, user_two, project_private, url_priva
]
}
}
- with assert_notification(type=NotificationType.Type.NODE_AFFILIATION_CHANGED, user=user_two, times=2):
+ with assert_notification(type=NotificationTypeEnum.NODE_AFFILIATION_CHANGED, user=user_two, times=2):
res = app.patch_json_api(
url_private,
make_node_payload(
diff --git a/api_tests/nodes/views/test_node_forks_list.py b/api_tests/nodes/views/test_node_forks_list.py
index e51d8f95bed..e892468e1ef 100644
--- a/api_tests/nodes/views/test_node_forks_list.py
+++ b/api_tests/nodes/views/test_node_forks_list.py
@@ -3,7 +3,7 @@
from api.base.settings.defaults import API_BASE
from framework.auth.core import Auth
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf_tests.factories import (
NodeFactory,
ProjectFactory,
@@ -255,7 +255,7 @@ def test_create_fork_from_public_project_with_new_title(
fork_data_with_title,
public_project_url
):
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(
public_project_url,
fork_data_with_title,
@@ -273,7 +273,7 @@ def test_create_fork_from_private_project_with_new_title(
fork_data_with_title,
private_project_url
):
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(
private_project_url,
fork_data_with_title,
@@ -291,7 +291,7 @@ def test_can_fork_public_node_logged_in(
public_project_url
):
non_contrib = AuthUserFactory()
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=non_contrib):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=non_contrib):
res = app.post_json_api(
public_project_url,
fork_data,
@@ -333,7 +333,7 @@ def test_cannot_fork_errors(
def test_can_fork_public_node_logged_in_contributor(
self, app, user, public_project, fork_data, public_project_url):
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(
public_project_url,
fork_data,
@@ -346,7 +346,7 @@ def test_can_fork_public_node_logged_in_contributor(
def test_can_fork_private_node_logged_in_contributor(
self, app, user, private_project, fork_data, private_project_url):
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(
private_project_url +
'?embed=children&embed=node_links&embed=logs&embed=contributors&embed=forked_from',
@@ -374,7 +374,7 @@ def test_fork_private_components_no_access(
creator=user_two,
is_public=False
)
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user_three):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user_three):
res = app.post_json_api(url, fork_data, auth=user_three.auth)
assert res.status_code == 201
# Private components that you do not have access to are not forked
@@ -385,7 +385,7 @@ def test_fork_components_you_can_access(
fork_data, private_project_url):
url = private_project_url + '?embed=children'
new_component = NodeFactory(parent=private_project, creator=user)
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(url, fork_data, auth=user.auth)
assert res.status_code == 201
assert res.json['data']['embeds']['children']['links']['meta']['total'] == 1
@@ -403,7 +403,7 @@ def test_fork_private_node_links(
url = private_project_url + '?embed=node_links'
# Node link is forked, but shows up as a private node link
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(
url,
fork_data,
@@ -424,7 +424,7 @@ def test_fork_node_links_you_can_access(
private_project.add_pointer(pointer, auth=Auth(user_two), save=True)
url = private_project_url + '?embed=node_links'
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(
url,
fork_data,
@@ -440,7 +440,7 @@ def test_can_fork_registration(
registration = RegistrationFactory(project=private_project, user=user)
url = f'/{API_BASE}registrations/{registration._id}/forks/'
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(url, fork_data, auth=user.auth)
assert res.status_code == 201
assert res.json['data']['id'] == registration.forks.first()._id
@@ -453,7 +453,7 @@ def test_read_only_contributor_can_fork_private_registration(
private_project.add_contributor(
read_contrib,
permissions=permissions.READ, save=True)
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=read_contrib):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=read_contrib):
res = app.post_json_api(
private_project_url,
fork_data,
@@ -464,7 +464,7 @@ def test_read_only_contributor_can_fork_private_registration(
assert res.json['data']['id'] == private_project.forks.first()._id
def test_send_email_success(self, app, user, public_project_url, fork_data_with_title, public_project):
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=user):
res = app.post_json_api(
public_project_url,
fork_data_with_title,
@@ -477,7 +477,7 @@ def test_send_email_success(self, app, user, public_project_url, fork_data_with_
def test_send_email_failed(self, app, user, public_project_url, fork_data_with_title):
with mock.patch.object(NodeForksSerializer, 'save', side_effect=Exception()):
with pytest.raises(Exception):
- with assert_notification(type=NotificationType.Type.NODE_FORK_FAILED, user=user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_FAILED, user=user):
app.post_json_api(
public_project_url,
fork_data_with_title,
diff --git a/api_tests/nodes/views/test_node_list.py b/api_tests/nodes/views/test_node_list.py
index ddef9428952..ce6751c2c16 100644
--- a/api_tests/nodes/views/test_node_list.py
+++ b/api_tests/nodes/views/test_node_list.py
@@ -8,7 +8,7 @@
from api_tests.nodes.filters.test_filters import NodesListFilteringMixin, NodesListDateFilteringMixin
from api_tests.subjects.mixins import SubjectsFilterMixin
from framework.auth.core import Auth
-from osf.models import AbstractNode, Node, NodeLog, NotificationType
+from osf.models import AbstractNode, Node, NodeLog, NotificationTypeEnum
from osf.models.licenses import NodeLicense
from osf.utils.sanitize import strip_html
from osf.utils import permissions
@@ -1428,7 +1428,7 @@ def test_create_node_errors(self, app, user_one, public_project, private_project
def test_creates_public_project_logged_in(
self, app, user_one, public_project, url, institution_one):
- with assert_notification(type=NotificationType.Type.NODE_AFFILIATION_CHANGED, user=user_one):
+ with assert_notification(type=NotificationTypeEnum.NODE_AFFILIATION_CHANGED, user=user_one):
res = app.post_json_api(
url, public_project,
auth=user_one.auth
@@ -1531,7 +1531,7 @@ def test_non_contributor_create_project_from_public_template_success(self, app,
auth=user_without_permissions.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
assert res.status_code == 201
def test_non_contributor_create_project_from_private_template_no_permission_fails(self, app, user_one, category, url):
@@ -1576,7 +1576,7 @@ def test_contributor_create_project_from_private_template_with_permission_succes
auth=user_without_permissions.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
assert res.status_code == 201
assert template_from.has_permission(user_without_permissions, permissions.READ)
@@ -1593,7 +1593,7 @@ def test_contributor_create_project_from_private_template_with_permission_succes
auth=user_without_permissions.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
assert res.status_code == 201
assert template_from.has_permission(user_without_permissions, permissions.WRITE)
@@ -1610,7 +1610,7 @@ def test_contributor_create_project_from_private_template_with_permission_succes
auth=user_without_permissions.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
assert res.status_code == 201
assert template_from.has_permission(user_without_permissions, permissions.ADMIN)
@@ -1759,7 +1759,7 @@ def test_create_project_with_region_relationship(
}
}
}
- with assert_notification(type=NotificationType.Type.NODE_AFFILIATION_CHANGED, user=user_one, times=2):
+ with assert_notification(type=NotificationTypeEnum.NODE_AFFILIATION_CHANGED, user=user_one, times=2):
res = app.post_json_api(
url,
private_project,
diff --git a/api_tests/nodes/views/test_node_relationship_institutions.py b/api_tests/nodes/views/test_node_relationship_institutions.py
index fa0eeca1edb..475a03b0001 100644
--- a/api_tests/nodes/views/test_node_relationship_institutions.py
+++ b/api_tests/nodes/views/test_node_relationship_institutions.py
@@ -1,7 +1,7 @@
import pytest
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
InstitutionFactory,
AuthUserFactory,
@@ -198,7 +198,7 @@ def test_user_with_institution_and_permissions(
)
assert len(notifications['emits']) == 2
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 201
data = res.json['data']
@@ -228,9 +228,9 @@ def test_user_with_institution_and_permissions_through_patch(
assert len(notifications['emits']) == 2
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert notifications['emits'][1]['kwargs']['user'] == user
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
def test_remove_institutions_with_affiliated_user(
self,
@@ -254,7 +254,7 @@ def test_remove_institutions_with_affiliated_user(
assert len(notifications['emits']) == 1
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 200
assert node.affiliated_institutions.count() == 0
@@ -287,7 +287,7 @@ def test_put_not_admin_but_affiliated(self, app, institution_one, node, node_ins
auth=user.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 200
assert institution_one in node.affiliated_institutions.all()
@@ -314,7 +314,7 @@ def test_add_through_patch_one_inst_to_node_with_inst(
)
assert len(notifications['emits']) == 1
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 200
assert institution_one in node.affiliated_institutions.all()
@@ -342,10 +342,10 @@ def test_add_through_patch_one_inst_while_removing_other(
)
assert len(notifications['emits']) == 2
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert notifications['emits'][1]['kwargs']['user'] == user
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 200
assert institution_one not in node.affiliated_institutions.all()
@@ -373,7 +373,7 @@ def test_add_one_inst_with_post_to_node_with_inst(
)
assert len(notifications['emits']) == 1
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 201
assert institution_one in node.affiliated_institutions.all()
@@ -406,7 +406,7 @@ def test_delete_existing_inst(
)
assert len(notifications['emits']) == 1
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 204
assert institution_one not in node.affiliated_institutions.all()
@@ -426,7 +426,7 @@ def test_delete_not_affiliated_and_affiliated_insts(
)
assert len(notifications['emits']) == 1
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 204
assert institution_one not in node.affiliated_institutions.all()
@@ -444,7 +444,7 @@ def test_delete_user_is_admin(self, app, user, institution_one, node, resource_u
)
assert len(notifications['emits']) == 1
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 204
@@ -488,7 +488,7 @@ def test_delete_user_is_admin_but_not_affiliated_with_inst(self, app, institutio
auth=user_auth.auth,
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 204
assert institution_one not in project.affiliated_institutions.all()
@@ -509,7 +509,7 @@ def test_admin_can_add_affiliated_institution(self, app, user, institution_one,
)
assert len(notifications['emits']) == 1
assert notifications['emits'][0]['kwargs']['user'] == user
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 201
assert institution_one in node.affiliated_institutions.all()
@@ -530,7 +530,7 @@ def test_admin_can_remove_admin_affiliated_institution(
auth=user.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 204
assert institution_one not in node.affiliated_institutions.all()
@@ -552,7 +552,7 @@ def test_admin_can_remove_read_write_contributor_affiliated_institution(
auth=user.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 204
assert read_contrib_institution not in node.affiliated_institutions.all()
@@ -572,7 +572,7 @@ def test_read_write_contributor_can_add_affiliated_institution(
auth=write_contrib.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 201
assert write_contrib_institution in node.affiliated_institutions.all()
@@ -594,7 +594,7 @@ def test_read_write_contributor_can_remove_affiliated_institution(
auth=write_contrib.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_AFFILIATION_CHANGED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_AFFILIATION_CHANGED
assert res.status_code == 204
assert write_contrib_institution not in node.affiliated_institutions.all()
diff --git a/api_tests/notifications/test_notification_digest.py b/api_tests/notifications/test_notification_digest.py
index 70433f983c5..a1065c27604 100644
--- a/api_tests/notifications/test_notification_digest.py
+++ b/api_tests/notifications/test_notification_digest.py
@@ -1,7 +1,7 @@
import pytest
from django.contrib.contenttypes.models import ContentType
-from osf.models import Notification, NotificationType, EmailTask, Email
+from osf.models import Notification, NotificationType, NotificationTypeEnum, EmailTask, Email
from notifications.tasks import (
send_user_email_task,
send_moderator_email_task,
@@ -18,7 +18,7 @@ def add_notification_subscription(user, notification_type, frequency, subscribed
Create a NotificationSubscription for a user.
If the notification type corresponds to a subscribed_object, set subscribed_object to get the provider.
"""
- from osf.models import NotificationSubscription, AbstractProvider
+ from osf.models import NotificationSubscription
kwargs = {
'user': user,
'notification_type': NotificationType.objects.get(name=notification_type),
@@ -26,10 +26,7 @@ def add_notification_subscription(user, notification_type, frequency, subscribed
}
if subscribed_object is not None:
kwargs['object_id'] = subscribed_object.id
- if isinstance(subscribed_object, AbstractProvider):
- kwargs['content_type'] = ContentType.objects.get_for_model(subscribed_object, for_concrete_model=False) if subscribed_object else None
- else:
- kwargs['content_type'] = ContentType.objects.get_for_model(subscribed_object) if subscribed_object else None
+ kwargs['content_type'] = ContentType.objects.get_for_model(subscribed_object)
if subscription is not None:
kwargs['object_id'] = subscription.id
kwargs['content_type'] = ContentType.objects.get_for_model(subscription)
@@ -41,14 +38,14 @@ class TestNotificationDigestTasks:
def test_send_user_email_task_success(self):
user = AuthUserFactory()
- notification_type = NotificationType.objects.get(name=NotificationType.Type.USER_FILE_UPDATED)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.USER_FILE_UPDATED)
subscription_type = add_notification_subscription(
user,
notification_type,
'daily',
subscription=add_notification_subscription(
user,
- NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED),
+ NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED),
'daily'
)
)
@@ -74,7 +71,7 @@ def test_send_user_email_task_success(self):
with capture_notifications() as notifications:
send_user_email_task.apply(args=(user._id, notification_ids)).get()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_DIGEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_DIGEST
assert notifications['emits'][0]['kwargs']['user'] == user
email_task = EmailTask.objects.get(user_id=user.id)
assert email_task.status == 'SUCCESS'
@@ -94,9 +91,9 @@ def test_send_user_email_task_user_disabled(self):
user = AuthUserFactory()
user.deactivate_account()
user.save()
- notification_type = NotificationType.objects.get(name=NotificationType.Type.USER_DIGEST)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.USER_DIGEST)
notification = Notification.objects.create(
- subscription=add_notification_subscription(user, NotificationType.Type.USER_FILE_UPDATED, notification_type),
+ subscription=add_notification_subscription(user, NotificationTypeEnum.USER_FILE_UPDATED, notification_type),
sent=None,
event_context={},
)
@@ -120,7 +117,7 @@ def test_send_moderator_email_task_registration_provider_admin(self):
RegistrationFactory(provider=reg_provider)
moderator_group = reg_provider.get_group('moderator')
moderator_group.user_set.add(user)
- notification_type = NotificationType.objects.get(name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS)
notification = Notification.objects.create(
subscription=add_notification_subscription(
user,
@@ -143,7 +140,7 @@ def test_send_moderator_email_task_registration_provider_admin(self):
with capture_notifications() as notifications:
send_moderator_email_task.apply(args=(user._id, notification_ids, reg_provider_content_type.id, reg_provider.id)).get()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DIGEST_REVIEWS_MODERATORS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DIGEST_REVIEWS_MODERATORS
assert notifications['emits'][0]['kwargs']['user'] == user
email_task = EmailTask.objects.filter(user_id=user.id).first()
@@ -158,7 +155,7 @@ def test_send_moderator_email_task_no_notifications(self):
RegistrationFactory(provider=provider)
notification_ids = []
- notification_type = NotificationType.objects.get(name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS)
add_notification_subscription(
user,
notification_type,
@@ -177,7 +174,7 @@ def test_send_moderator_email_task_user_not_found(self):
def test_get_users_emails(self):
user = AuthUserFactory()
- notification_type = NotificationType.objects.get(name=NotificationType.Type.USER_FILE_UPDATED)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.USER_FILE_UPDATED)
notification1 = Notification.objects.create(
subscription=add_notification_subscription(user, notification_type, 'daily'),
sent=None,
@@ -193,7 +190,7 @@ def test_get_moderators_emails(self):
user = AuthUserFactory()
provider = RegistrationProviderFactory()
reg = RegistrationFactory(provider=provider)
- notification_type = NotificationType.objects.get(name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS)
subscription = add_notification_subscription(user, notification_type, 'daily', subscribed_object=reg)
Notification.objects.create(
subscription=subscription,
@@ -209,14 +206,14 @@ def test_get_moderators_emails(self):
def test_send_users_digest_email_end_to_end(self):
user = AuthUserFactory()
- notification_type = NotificationType.objects.get(name=NotificationType.Type.USER_FILE_UPDATED)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.USER_FILE_UPDATED)
subscription_type = add_notification_subscription(
user,
notification_type,
'daily',
subscription=add_notification_subscription(
user,
- NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED),
+ NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED),
'daily'
)
)
@@ -246,7 +243,7 @@ def test_send_users_digest_email_end_to_end(self):
with capture_notifications() as notifications:
send_users_digest_email.delay()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_DIGEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_DIGEST
email_task = EmailTask.objects.get(user_id=user.id)
assert email_task.status == 'SUCCESS'
@@ -256,7 +253,7 @@ def test_send_moderators_digest_email_end_to_end(self):
RegistrationFactory(provider=provider)
moderator_group = provider.get_group('moderator')
moderator_group.user_set.add(user)
- notification_type = NotificationType.objects.get(name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS)
Notification.objects.create(
subscription=add_notification_subscription(user, notification_type, 'daily', subscribed_object=provider),
sent=None,
@@ -275,7 +272,7 @@ def test_send_moderators_digest_email_end_to_end(self):
with capture_notifications() as notifications:
send_moderators_digest_email.delay()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DIGEST_REVIEWS_MODERATORS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DIGEST_REVIEWS_MODERATORS
email_task = EmailTask.objects.filter(user_id=user.id).first()
assert email_task.status == 'SUCCESS'
@@ -288,7 +285,7 @@ def test_user_invalid_username_success(self):
RegistrationFactory(provider=provider)
notification_ids = []
- notification_type = NotificationType.objects.get(name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS)
add_notification_subscription(
user,
notification_type,
@@ -309,7 +306,7 @@ def test_user_no_email_failure(self):
RegistrationFactory(provider=provider)
notification_ids = []
- notification_type = NotificationType.objects.get(name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS)
+ notification_type = NotificationType.objects.get(name=NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS)
add_notification_subscription(
user,
notification_type,
diff --git a/api_tests/notifications/test_notifications_cleanup.py b/api_tests/notifications/test_notifications_cleanup.py
new file mode 100644
index 00000000000..848b142b740
--- /dev/null
+++ b/api_tests/notifications/test_notifications_cleanup.py
@@ -0,0 +1,189 @@
+import pytest
+from osf.models import Notification, NotificationType, EmailTask, NotificationSubscription
+from notifications.tasks import (
+ notifications_cleanup_task
+)
+from osf_tests.factories import AuthUserFactory
+from website.settings import NOTIFICATIONS_CLEANUP_AGE
+from django.utils import timezone
+from datetime import timedelta
+
+def create_notification(subscription, sent_date=None):
+ return Notification.objects.create(
+ subscription=subscription,
+ event_context={},
+ sent=sent_date
+ )
+
+def create_email_task(user, created_date):
+ et = EmailTask.objects.create(
+ task_id=f'test-{created_date.timestamp()}',
+ user=user,
+ status='SUCCESS',
+ )
+ et.created_at = created_date
+ et.save()
+ return et
+
+@pytest.mark.django_db
+class TestNotificationCleanUpTask:
+
+ @pytest.fixture()
+ def user(self):
+ return AuthUserFactory()
+
+ @pytest.fixture()
+ def notification_type(self):
+ return NotificationType.objects.get_or_create(
+ name='Test Notification',
+ subject='Hello',
+ template='Sample Template',
+ )[0]
+
+ @pytest.fixture()
+ def subscription(self, user, notification_type):
+ return NotificationSubscription.objects.get_or_create(
+ user=user,
+ notification_type=notification_type,
+ message_frequency='daily',
+ )[0]
+
+ def test_dry_run_does_not_delete_records(self, user, subscription):
+ now = timezone.now()
+
+ old_notification = create_notification(
+ subscription,
+ sent_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+ old_email_task = create_email_task(
+ user,
+ created_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+
+ notifications_cleanup_task(dry_run=True)
+
+ assert Notification.objects.filter(id=old_notification.id).exists()
+ assert EmailTask.objects.filter(id=old_email_task.id).exists()
+
+ def test_deletes_old_notifications_and_email_tasks(self, user, subscription):
+ now = timezone.now()
+
+ old_notification = create_notification(
+ subscription,
+ sent_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+ new_notification = create_notification(
+ subscription,
+ sent_date=now - timedelta(days=10),
+ )
+
+ old_email_task = create_email_task(
+ user,
+ created_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+ new_email_task = create_email_task(
+ user,
+ created_date=now - timedelta(days=10),
+ )
+
+ notifications_cleanup_task()
+
+ assert not Notification.objects.filter(id=old_notification.id).exists()
+ assert Notification.objects.filter(id=new_notification.id).exists()
+
+ assert not EmailTask.objects.filter(id=old_email_task.id).exists()
+ assert EmailTask.objects.filter(id=new_email_task.id).exists()
+
+ def test_records_at_cutoff_are_not_deleted(self, user, subscription):
+ now = timezone.now()
+ cutoff = now - NOTIFICATIONS_CLEANUP_AGE + timedelta(hours=1)
+
+ notification = create_notification(
+ subscription,
+ sent_date=cutoff,
+ )
+ email_task = create_email_task(
+ user,
+ created_date=cutoff,
+ )
+
+ notifications_cleanup_task()
+
+ assert Notification.objects.filter(id=notification.id).exists()
+ assert EmailTask.objects.filter(id=email_task.id).exists()
+
+ def test_cleanup_when_only_notifications_exist(self, user, subscription):
+ now = timezone.now()
+
+ notification = create_notification(
+ subscription,
+ sent_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+
+ notifications_cleanup_task()
+
+ assert not Notification.objects.filter(id=notification.id).exists()
+
+ def test_cleanup_when_only_email_tasks_exist(self, user, subscription):
+ now = timezone.now()
+
+ email_task = create_email_task(
+ user,
+ created_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+
+ notifications_cleanup_task()
+
+ assert not EmailTask.objects.filter(id=email_task.id).exists()
+
+ def test_task_is_idempotent(self, user, subscription):
+ now = timezone.now()
+
+ create_notification(
+ subscription,
+ sent_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+ create_email_task(
+ user,
+ created_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+
+ notifications_cleanup_task()
+ notifications_cleanup_task()
+
+ assert Notification.objects.count() == 0
+ assert EmailTask.objects.count() == 0
+
+ def test_recent_records_are_not_deleted(self, user, subscription):
+ now = timezone.now()
+
+ create_notification(
+ subscription,
+ sent_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+ create_email_task(
+ user,
+ created_date=now - NOTIFICATIONS_CLEANUP_AGE - timedelta(days=1),
+ )
+ create_notification(
+ subscription,
+ sent_date=now,
+ )
+ create_email_task(
+ user,
+ created_date=now,
+ )
+
+ notifications_cleanup_task()
+
+ assert Notification.objects.count() == 1
+ assert EmailTask.objects.count() == 1
+
+ def test_not_sent_notifications_are_not_deleted(self, user, subscription):
+ create_notification(subscription)
+ create_notification(subscription)
+ create_notification(subscription)
+
+ notifications_cleanup_task()
+
+ assert Notification.objects.count() == 3
diff --git a/api_tests/notifications/test_notifications_db_transaction.py b/api_tests/notifications/test_notifications_db_transaction.py
index dc09dd46487..8fb651de996 100644
--- a/api_tests/notifications/test_notifications_db_transaction.py
+++ b/api_tests/notifications/test_notifications_db_transaction.py
@@ -1,12 +1,14 @@
+from django.db import reset_queries, connection
+from django.utils import timezone
+
import pytest
+
+from osf.models import Notification, NotificationTypeEnum, NotificationSubscription
from osf_tests.factories import (
AuthUserFactory,
NotificationTypeFactory
)
-from datetime import datetime
-from osf.models import Notification, NotificationType, NotificationSubscription
from tests.utils import capture_notifications
-from django.db import reset_queries, connection
@pytest.mark.django_db
@@ -25,9 +27,9 @@ def test_notification_type(self):
)
def test_notification_type_cache(self):
- NotificationType.Type.NODE_FILE_UPDATED.instance
+ NotificationTypeEnum.NODE_FILE_UPDATED.instance
reset_queries()
- NotificationType.Type.NODE_FILE_UPDATED.instance
+ NotificationTypeEnum.NODE_FILE_UPDATED.instance
assert len(connection.queries) == 0
def test_emit_without_saving(self, user_one, test_notification_type):
@@ -47,12 +49,21 @@ def test_emit_without_saving(self, user_one, test_notification_type):
).exists()
def test_emit_frequency_none(self, user_one, test_notification_type):
+ assert not Notification.objects.filter(
+ subscription__notification_type=test_notification_type,
+ fake_sent=True
+ ).exists()
+ time_before = timezone.now()
test_notification_type.emit(
user=user_one,
event_context={'notifications': 'test template for Test notification'},
message_frequency='none'
)
- assert Notification.objects.filter(
+ time_after = timezone.now()
+ notifications = Notification.objects.filter(
subscription__notification_type=test_notification_type,
- sent=datetime(1000, 1, 1)
- ).exists()
+ fake_sent=True
+ )
+ assert notifications.exists()
+ assert notifications.count() == 1
+ assert time_before < notifications.first().sent < time_after
diff --git a/api_tests/preprints/views/test_preprint_contributors_list.py b/api_tests/preprints/views/test_preprint_contributors_list.py
index 53da11cb453..f753245bdd8 100644
--- a/api_tests/preprints/views/test_preprint_contributors_list.py
+++ b/api_tests/preprints/views/test_preprint_contributors_list.py
@@ -7,7 +7,7 @@
from api.base.settings.defaults import API_BASE
from api.nodes.serializers import NodeContributorsCreateSerializer
from framework.auth.core import Auth
-from osf.models import PreprintLog, NotificationType
+from osf.models import PreprintLog, NotificationTypeEnum
from osf_tests.factories import (
fake_email,
AuthUserFactory,
@@ -1418,7 +1418,7 @@ def test_add_contributor_signal_if_preprint(
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT
def test_add_contributor_signal_no_query_param(
self, app, user, user_two, url_preprint_contribs):
@@ -1444,7 +1444,7 @@ def test_add_contributor_signal_no_query_param(
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT
def test_add_unregistered_contributor_sends_email(
self, app, user, url_preprint_contribs):
@@ -1463,7 +1463,7 @@ def test_add_unregistered_contributor_sends_email(
auth=user.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_USER_INVITE_PREPRINT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_USER_INVITE_PREPRINT
assert res.status_code == 201
def test_add_unregistered_contributor_signal_if_preprint(self, app, user, url_preprint_contribs):
@@ -1483,7 +1483,7 @@ def test_add_unregistered_contributor_signal_if_preprint(self, app, user, url_pr
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_USER_INVITE_PREPRINT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_USER_INVITE_PREPRINT
def test_add_contributor_invalid_send_email_param(self, app, user, url_preprint_contribs):
url = f'{url_preprint_contribs}?send_email=true'
@@ -1529,7 +1529,7 @@ def test_publishing_preprint_sends_emails_to_contributors(
user_two = AuthUserFactory()
preprint_unpublished.add_contributor(user_two, permissions=permissions.WRITE, save=True)
with capture_signals() as mock_signal:
- with assert_notification(type=NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION, user=user):
+ with assert_notification(type=NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION, user=user):
res = app.patch_json_api(
url,
{
@@ -1564,7 +1564,7 @@ def test_contributor_added_signal_not_specified(self, app, user, url_preprint_co
)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_USER_INVITE_PREPRINT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_USER_INVITE_PREPRINT
@pytest.mark.django_db
class TestPreprintContributorBulkCreate(NodeCRUDTestCase):
diff --git a/api_tests/preprints/views/test_preprint_detail_update.py b/api_tests/preprints/views/test_preprint_detail_update.py
index b796da0f908..f3096cba10d 100644
--- a/api_tests/preprints/views/test_preprint_detail_update.py
+++ b/api_tests/preprints/views/test_preprint_detail_update.py
@@ -11,7 +11,7 @@
from osf.models import (
NodeLicense,
PreprintContributor,
- PreprintLog, NotificationType
+ PreprintLog, NotificationTypeEnum
)
from osf.utils import permissions as osf_permissions
from osf.utils.permissions import WRITE
@@ -502,7 +502,7 @@ def test_update_contributors(
self, mock_update_doi_metadata, app, user, preprint, url
):
new_user = AuthUserFactory()
- with assert_notification(type=NotificationType.Type.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT, user=new_user):
+ with assert_notification(type=NotificationTypeEnum.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT, user=new_user):
res = app.post_json_api(
url + 'contributors/',
{
@@ -602,7 +602,7 @@ def test_noncontrib_cannot_set_primary_file(self, app, user, preprint, url):
def test_update_published(self, app, user):
unpublished = PreprintFactory(creator=user, is_published=False)
- with assert_notification(type=NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION, user=user):
+ with assert_notification(type=NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION, user=user):
app.patch_json_api(
f'/{API_BASE}preprints/{unpublished._id}/',
build_preprint_update_payload(
@@ -622,7 +622,7 @@ def test_update_published_does_not_make_node_public(self, app, user):
project=project
)
assert not unpublished.node.is_public
- with assert_notification(type=NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION, user=user):
+ with assert_notification(type=NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION, user=user):
app.patch_json_api(
f'/{API_BASE}preprints/{unpublished._id}/',
build_preprint_update_payload(
diff --git a/api_tests/providers/collections/views/test_collections_provider_moderator_list.py b/api_tests/providers/collections/views/test_collections_provider_moderator_list.py
index 249fb1365a2..ff0cc0035b7 100644
--- a/api_tests/providers/collections/views/test_collections_provider_moderator_list.py
+++ b/api_tests/providers/collections/views/test_collections_provider_moderator_list.py
@@ -1,7 +1,7 @@
import pytest
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
AuthUserFactory,
CollectionProviderFactory,
@@ -111,7 +111,7 @@ def test_POST_admin_success_existing_user(self, app, url, nonmoderator, moderato
with capture_notifications() as notifications:
res = app.post_json_api(url, payload, auth=admin.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_MODERATOR_ADDED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_MODERATOR_ADDED
assert res.status_code == 201
assert res.json['data']['id'] == nonmoderator._id
assert res.json['data']['attributes']['permission_group'] == 'moderator'
@@ -136,7 +136,7 @@ def test_POST_admin_failure_unreg_moderator(self, app, url, moderator, nonmodera
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_CONFIRM_EMAIL_MODERATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_CONFIRM_EMAIL_MODERATION
assert notifications['emits'][0]['kwargs']['user'].username == unreg_user['email']
def test_POST_admin_failure_invalid_group(self, app, url, nonmoderator, moderator, admin, provider):
@@ -149,7 +149,7 @@ def test_POST_admin_success_email(self, app, url, nonmoderator, moderator, admin
with capture_notifications() as notifications:
res = app.post_json_api(url, payload, auth=admin.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_CONFIRM_EMAIL_MODERATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_CONFIRM_EMAIL_MODERATION
assert res.status_code == 201
assert len(res.json['data']['id']) == 5
assert res.json['data']['attributes']['permission_group'] == 'moderator'
diff --git a/api_tests/providers/preprints/views/test_preprint_provider_moderator_list.py b/api_tests/providers/preprints/views/test_preprint_provider_moderator_list.py
index 0703dcebc83..3d09d783320 100644
--- a/api_tests/providers/preprints/views/test_preprint_provider_moderator_list.py
+++ b/api_tests/providers/preprints/views/test_preprint_provider_moderator_list.py
@@ -1,7 +1,7 @@
import pytest
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
AuthUserFactory,
PreprintProviderFactory,
@@ -89,7 +89,7 @@ def test_list_post_admin_success_existing_user(self, app, url, nonmoderator, mod
assert res.json['data']['id'] == nonmoderator._id
assert res.json['data']['attributes']['permission_group'] == 'moderator'
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_MODERATOR_ADDED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_MODERATOR_ADDED
def test_list_post_admin_failure_existing_moderator(self, app, url, moderator, admin):
payload = self.create_payload(user_id=moderator._id, permission_group='moderator')
diff --git a/api_tests/providers/tasks/test_bulk_upload.py b/api_tests/providers/tasks/test_bulk_upload.py
index 2da245c50b8..4ebc5ac8c53 100644
--- a/api_tests/providers/tasks/test_bulk_upload.py
+++ b/api_tests/providers/tasks/test_bulk_upload.py
@@ -5,7 +5,7 @@
from osf.exceptions import RegistrationBulkCreationContributorError, RegistrationBulkCreationRowError
from osf.models import RegistrationBulkUploadJob, RegistrationBulkUploadRow, RegistrationProvider, RegistrationSchema, \
- NotificationType
+ NotificationTypeEnum
from osf.models.registration_bulk_upload_job import JobState
from osf.models.registration_bulk_upload_row import RegistrationBulkUploadContributors
from osf.utils.permissions import ADMIN, READ, WRITE
@@ -331,7 +331,7 @@ def test_bulk_creation_done_full(
with capture_notifications() as notifications:
bulk_create_registrations(upload_job_done_full.id, dry_run=False)
notification_types = [notifications['type'] for notifications in notifications['emits']]
- assert NotificationType.Type.USER_REGISTRATION_BULK_UPLOAD_SUCCESS_ALL in notification_types
+ assert NotificationTypeEnum.USER_REGISTRATION_BULK_UPLOAD_SUCCESS_ALL in notification_types
upload_job_done_full.reload()
assert upload_job_done_full.state == JobState.DONE_FULL
assert upload_job_done_full.email_sent
@@ -359,7 +359,7 @@ def test_bulk_creation_done_partial(
with capture_notifications() as notifications:
bulk_create_registrations(upload_job_done_partial.id, dry_run=False)
notification_types = [notifications['type'] for notifications in notifications['emits']]
- assert NotificationType.Type.USER_REGISTRATION_BULK_UPLOAD_SUCCESS_PARTIAL in notification_types
+ assert NotificationTypeEnum.USER_REGISTRATION_BULK_UPLOAD_SUCCESS_PARTIAL in notification_types
upload_job_done_partial.reload()
assert upload_job_done_partial.state == JobState.DONE_PARTIAL
assert upload_job_done_partial.email_sent
@@ -387,7 +387,7 @@ def test_bulk_creation_done_error(
with capture_notifications() as notifications:
bulk_create_registrations(upload_job_done_error.id, dry_run=False)
notification_types = [notifications['type'] for notifications in notifications['emits']]
- assert NotificationType.Type.USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL in notification_types
+ assert NotificationTypeEnum.USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL in notification_types
upload_job_done_error.reload()
assert upload_job_done_error.state == JobState.DONE_ERROR
diff --git a/api_tests/requests/views/test_node_request_institutional_access.py b/api_tests/requests/views/test_node_request_institutional_access.py
index b351cbfd787..d8d8d520a44 100644
--- a/api_tests/requests/views/test_node_request_institutional_access.py
+++ b/api_tests/requests/views/test_node_request_institutional_access.py
@@ -2,7 +2,7 @@
from api.base.settings.defaults import API_BASE
from api_tests.requests.mixins import NodeRequestTestMixin
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import NodeFactory, InstitutionFactory, AuthUserFactory
from osf.utils.workflows import DefaultStates, NodeRequestTypes
@@ -141,7 +141,7 @@ def test_institutional_admin_can_make_institutional_request(
"""
Test that an institutional admin can make an institutional access request.
"""
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -172,7 +172,7 @@ def test_institutional_admin_can_add_requested_permission(
Test that an institutional admin can make an institutional access request with requested_permissions.
"""
create_payload['data']['attributes']['requested_permissions'] = 'admin'
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -243,7 +243,7 @@ def test_email_send_institutional_request_specific_email(
project.save()
# Perform the action
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
# Ensure response is successful
@@ -284,7 +284,7 @@ def test_email_sent_on_creation(
"""
Test that an email is sent to the appropriate recipients when an institutional access request is made.
"""
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -302,7 +302,7 @@ def test_bcc_institutional_admin(
Ensure BCC option works as expected, sending messages to sender giving them a copy for themselves.
"""
create_payload['data']['attributes']['bcc_sender'] = True
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -320,7 +320,7 @@ def test_reply_to_institutional_admin(
Ensure reply-to option works as expected, allowing a reply to header be added to the email.
"""
create_payload['data']['attributes']['reply_to'] = True
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST, user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -354,7 +354,7 @@ def test_placeholder_text_when_comment_is_empty(
"""
# Test with empty comment
create_payload['data']['attributes']['comment'] = ''
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -372,19 +372,19 @@ def test_requester_can_resubmit(
Test that a requester can submit another access request for the same node.
"""
# Create the first request
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=user_with_affiliation):
app.post_json_api(url, create_payload, auth=institutional_admin.auth)
node_request = project.requests.get()
- with assert_notification(type=NotificationType.Type.NODE_REQUEST_ACCESS_DENIED,
+ with assert_notification(type=NotificationTypeEnum.NODE_REQUEST_ACCESS_DENIED,
user=node_request.creator):
node_request.run_reject(project.creator, 'test comment2')
node_request.refresh_from_db()
assert node_request.machine_state == 'rejected'
# Attempt to create a second request
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -406,11 +406,11 @@ def test_requester_can_make_insti_request_after_access_resubmit(
"""
# Create the first request a basic request_type == `access` request
- with assert_notification(type=NotificationType.Type.NODE_REQUEST_ACCESS_SUBMITTED,
+ with assert_notification(type=NotificationTypeEnum.NODE_REQUEST_ACCESS_SUBMITTED,
user=project.creator):
app.post_json_api(url, create_payload_non_institutional_access, auth=institutional_admin.auth)
node_request = project.requests.get()
- with assert_notification(type=NotificationType.Type.NODE_REQUEST_ACCESS_DENIED,
+ with assert_notification(type=NotificationTypeEnum.NODE_REQUEST_ACCESS_DENIED,
user=node_request.creator):
node_request.run_reject(project.creator, 'test comment2')
node_request.refresh_from_db()
@@ -421,7 +421,7 @@ def test_requester_can_make_insti_request_after_access_resubmit(
create_payload['data']['relationships']['message_recipient']['data']['id'] = project.creator._id
# Attempt to create a second request, refresh and update as institutional
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=project.creator):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -441,12 +441,12 @@ def test_requester_can_resubmit_after_approval(
Test that a requester can submit another access request for the same node.
"""
# Create the first request
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=user_with_affiliation):
app.post_json_api(url, create_payload, auth=institutional_admin.auth)
node_request = project.requests.get()
- with assert_notification(type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
user=node_request.creator):
node_request.run_accept(project.creator, 'test comment2')
node_request.refresh_from_db()
@@ -456,7 +456,7 @@ def test_requester_can_resubmit_after_approval(
node_request = project.requests.get()
# Attempt to create a second request
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -468,12 +468,12 @@ def test_requester_can_resubmit_after_2_approvals(self, app, project, institutio
Test that a requester can submit another access request for the same node.
"""
# Create the first request
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=user_with_affiliation):
app.post_json_api(url, create_payload, auth=institutional_admin.auth)
node_request = project.requests.get()
- with assert_notification(type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
user=node_request.creator):
node_request.run_accept(project.creator, 'test comment2')
node_request.refresh_from_db()
@@ -482,7 +482,7 @@ def test_requester_can_resubmit_after_2_approvals(self, app, project, institutio
project.remove_contributor(node_request.creator, Auth(node_request.creator))
# Attempt to create a second request
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
@@ -493,7 +493,7 @@ def test_requester_can_resubmit_after_2_approvals(self, app, project, institutio
assert project.requests.all().count() == 1
# Attempt to create a second request
- with assert_notification(type=NotificationType.Type.NODE_INSTITUTIONAL_ACCESS_REQUEST,
+ with assert_notification(type=NotificationTypeEnum.NODE_INSTITUTIONAL_ACCESS_REQUEST,
user=user_with_affiliation):
res = app.post_json_api(url, create_payload, auth=institutional_admin.auth)
assert res.status_code == 201
diff --git a/api_tests/requests/views/test_node_request_institutional_access_logging.py b/api_tests/requests/views/test_node_request_institutional_access_logging.py
index 903422037bd..b4675058c24 100644
--- a/api_tests/requests/views/test_node_request_institutional_access_logging.py
+++ b/api_tests/requests/views/test_node_request_institutional_access_logging.py
@@ -3,7 +3,7 @@
from api.base.settings.defaults import API_BASE
from osf_tests.factories import NodeFactory, InstitutionFactory, AuthUserFactory
-from osf.models import NodeLog, NodeRequest, NotificationType
+from osf.models import NodeLog, NodeRequest, NotificationTypeEnum
from osf.utils.workflows import NodeRequestTypes
from tests.utils import assert_notification
@@ -70,7 +70,7 @@ def test_post_node_request_action_success_logged_as_curator(self, app, action_pa
Test a successful POST request to create a node-request action and log it.
"""
# Perform the POST request
- with assert_notification(type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST, user=institutional_admin):
+ with assert_notification(type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST, user=institutional_admin):
res = app.post_json_api(url, action_payload, auth=user_with_affiliation.auth)
assert res.status_code == 201
assert res.json['data']['attributes']['trigger'] == 'accept'
@@ -92,7 +92,7 @@ def test_post_node_request_action_reject_curator(self, app, action_payload, url,
"""
# Perform the POST request
action_payload['data']['attributes']['trigger'] = 'reject'
- with assert_notification(type=NotificationType.Type.NODE_REQUEST_ACCESS_DENIED, user=institutional_admin):
+ with assert_notification(type=NotificationTypeEnum.NODE_REQUEST_ACCESS_DENIED, user=institutional_admin):
res = app.post_json_api(url, action_payload, auth=user_with_affiliation.auth)
assert res.status_code == 201
assert res.json['data']['attributes']['trigger'] == 'reject'
diff --git a/api_tests/requests/views/test_node_request_list.py b/api_tests/requests/views/test_node_request_list.py
index 6dafdb18a0d..5067005b78f 100644
--- a/api_tests/requests/views/test_node_request_list.py
+++ b/api_tests/requests/views/test_node_request_list.py
@@ -2,7 +2,7 @@
from api.base.settings.defaults import API_BASE
from api_tests.requests.mixins import NodeRequestTestMixin
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import NodeFactory, NodeRequestFactory, InstitutionFactory
from osf.utils.workflows import DefaultStates, NodeRequestTypes
@@ -90,8 +90,8 @@ def test_email_sent_to_all_admins_on_submit(self, app, project, noncontrib, url,
res = app.post_json_api(url, create_payload, auth=noncontrib.auth)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_REQUEST_ACCESS_SUBMITTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_REQUEST_ACCESS_SUBMITTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_REQUEST_ACCESS_SUBMITTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_REQUEST_ACCESS_SUBMITTED
assert res.status_code == 201
def test_email_not_sent_to_parent_admins_on_submit(self, app, project, noncontrib, url, create_payload, second_admin):
@@ -105,7 +105,7 @@ def test_email_not_sent_to_parent_admins_on_submit(self, app, project, noncontri
auth=noncontrib.auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_REQUEST_ACCESS_SUBMITTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_REQUEST_ACCESS_SUBMITTED
assert res.status_code == 201
assert component.parent_admin_contributors.count() == 1
assert component.contributors.count() == 1
@@ -156,7 +156,7 @@ def test_requester_can_make_access_request_after_insti_access_accepted(self, app
# Create the first request a basic request_type == `institutional_request` request
app.post_json_api(url, create_payload, auth=noncontrib.auth)
node_request = project.requests.get()
- with assert_notification(type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST, user=node_request.creator):
+ with assert_notification(type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST, user=node_request.creator):
node_request.run_accept(project.creator, 'test comment2')
node_request.refresh_from_db()
assert node_request.machine_state == 'accepted'
@@ -166,7 +166,7 @@ def test_requester_can_make_access_request_after_insti_access_accepted(self, app
create_payload['data']['attributes']['request_type'] = NodeRequestTypes.ACCESS.value
# Attempt to create a second request, refresh and update as institutional
- with assert_notification(type=NotificationType.Type.NODE_REQUEST_ACCESS_SUBMITTED, user=project.creator):
+ with assert_notification(type=NotificationTypeEnum.NODE_REQUEST_ACCESS_SUBMITTED, user=project.creator):
res = app.post_json_api(url, create_payload, auth=noncontrib.auth)
assert res.status_code == 201
node_request.refresh_from_db()
diff --git a/api_tests/requests/views/test_request_actions_create.py b/api_tests/requests/views/test_request_actions_create.py
index ba1e9ef6409..26661048617 100644
--- a/api_tests/requests/views/test_request_actions_create.py
+++ b/api_tests/requests/views/test_request_actions_create.py
@@ -2,7 +2,7 @@
from api.base.settings.defaults import API_BASE
from api_tests.requests.mixins import NodeRequestTestMixin, PreprintRequestTestMixin
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf.utils import permissions
from tests.utils import capture_notifications, assert_notification
@@ -201,7 +201,7 @@ def test_email_sent_on_approve(self, app, admin, url, node_request):
with capture_notifications() as notifications:
res = app.post_json_api(url, payload, auth=admin.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
assert res.status_code == 201
node_request.reload()
assert initial_state != node_request.machine_state
@@ -214,7 +214,7 @@ def test_email_sent_on_reject(self, app, admin, url, node_request):
with capture_notifications() as notifications:
res = app.post_json_api(url, payload, auth=admin.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_REQUEST_ACCESS_DENIED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_REQUEST_ACCESS_DENIED
assert res.status_code == 201
node_request.reload()
@@ -326,7 +326,7 @@ def test_moderator_can_approve_moderated_requests(self, app, moderator, url, pre
initial_state = request.machine_state
assert not request.target.is_retracted
payload = self.create_payload(request._id, trigger='accept')
- with assert_notification(type=NotificationType.Type.PREPRINT_REQUEST_WITHDRAWAL_APPROVED, user=request.target.creator):
+ with assert_notification(type=NotificationTypeEnum.PREPRINT_REQUEST_WITHDRAWAL_APPROVED, user=request.target.creator):
res = app.post_json_api(url, payload, auth=moderator.auth)
assert res.status_code == 201
request.reload()
@@ -363,7 +363,7 @@ def test_moderator_can_reject_moderated_requests(self, app, moderator, url, pre_
initial_state = request.machine_state
assert not request.target.is_retracted
payload = self.create_payload(request._id, trigger='reject')
- with assert_notification(type=NotificationType.Type.PREPRINT_REQUEST_WITHDRAWAL_DECLINED, user=request.target.creator):
+ with assert_notification(type=NotificationTypeEnum.PREPRINT_REQUEST_WITHDRAWAL_DECLINED, user=request.target.creator):
res = app.post_json_api(url, payload, auth=moderator.auth)
assert res.status_code == 201
request.reload()
@@ -402,8 +402,8 @@ def test_email_sent_on_approve(self, app, moderator, url, pre_request, post_requ
with capture_notifications() as notifications:
res = app.post_json_api(url, payload, auth=moderator.auth)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.PREPRINT_REQUEST_WITHDRAWAL_APPROVED
- assert notifications['emits'][1]['type'] == NotificationType.Type.PREPRINT_REQUEST_WITHDRAWAL_APPROVED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PREPRINT_REQUEST_WITHDRAWAL_APPROVED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.PREPRINT_REQUEST_WITHDRAWAL_APPROVED
assert res.status_code == 201
request.reload()
request.target.reload()
diff --git a/api_tests/share/test_share_preprint.py b/api_tests/share/test_share_preprint.py
index cf0c8a3d92d..118abf3105b 100644
--- a/api_tests/share/test_share_preprint.py
+++ b/api_tests/share/test_share_preprint.py
@@ -18,6 +18,7 @@
from website import settings
from website.preprints.tasks import on_preprint_updated
from ._utils import expect_preprint_ingest_request
+from tests.utils import capture_notifications
@pytest.mark.django_db
@@ -72,54 +73,59 @@ def test_save_unpublished_not_called(self, mock_share_responses, preprint):
preprint.save()
def test_save_published_called(self, mock_share_responses, preprint, user, auth):
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- preprint.set_published(True, auth=auth, save=True)
+ with capture_notifications():
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ preprint.set_published(True, auth=auth, save=True)
# This covers an edge case where a preprint is forced back to unpublished
# that it sends the information back to share
def test_save_unpublished_called_forced(self, mock_share_responses, auth, preprint):
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- preprint.set_published(True, auth=auth, save=True)
- with expect_preprint_ingest_request(mock_share_responses, preprint, delete=True):
- preprint.is_published = False
- preprint.save(**{'force_update': True})
+ with capture_notifications():
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ preprint.set_published(True, auth=auth, save=True)
+ with expect_preprint_ingest_request(mock_share_responses, preprint, delete=True):
+ preprint.is_published = False
+ preprint.save(**{'force_update': True})
def test_save_published_subject_change_called(self, mock_share_responses, auth, preprint, subject, subject_two):
- preprint.set_published(True, auth=auth, save=True)
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- preprint.set_subjects([[subject_two._id]], auth=auth)
+ with capture_notifications():
+ preprint.set_published(True, auth=auth, save=True)
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ preprint.set_subjects([[subject_two._id]], auth=auth)
def test_save_unpublished_subject_change_not_called(self, mock_share_responses, auth, preprint, subject_two):
with expect_preprint_ingest_request(mock_share_responses, preprint, delete=True):
preprint.set_subjects([[subject_two._id]], auth=auth)
def test_send_to_share_is_true(self, mock_share_responses, auth, preprint):
- preprint.set_published(True, auth=auth, save=True)
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- on_preprint_updated(preprint._id, saved_fields=['title'])
+ with capture_notifications():
+ preprint.set_published(True, auth=auth, save=True)
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ on_preprint_updated(preprint._id, saved_fields=['title'])
def test_preprint_contributor_changes_updates_preprints_share(self, mock_share_responses, user, auth):
- preprint = PreprintFactory(is_published=True, creator=user)
- preprint.set_published(True, auth=auth, save=True)
- user2 = AuthUserFactory()
+ with capture_notifications():
+ preprint = PreprintFactory(is_published=True, creator=user)
+ preprint.set_published(True, auth=auth, save=True)
+ user2 = AuthUserFactory()
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- preprint.add_contributor(contributor=user2, auth=auth, save=True)
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ preprint.add_contributor(contributor=user2, auth=auth, save=True)
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- preprint.move_contributor(contributor=user, index=0, auth=auth, save=True)
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ preprint.move_contributor(contributor=user, index=0, auth=auth, save=True)
- data = [{'id': user._id, 'permissions': ADMIN, 'visible': True},
- {'id': user2._id, 'permissions': WRITE, 'visible': False}]
+ data = [{'id': user._id, 'permissions': ADMIN, 'visible': True},
+ {'id': user2._id, 'permissions': WRITE, 'visible': False}]
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- preprint.manage_contributors(data, auth=auth, save=True)
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ preprint.manage_contributors(data, auth=auth, save=True)
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- preprint.update_contributor(user2, READ, True, auth=auth, save=True)
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ preprint.update_contributor(user2, READ, True, auth=auth, save=True)
- with expect_preprint_ingest_request(mock_share_responses, preprint):
- preprint.remove_contributor(contributor=user2, auth=auth)
+ with expect_preprint_ingest_request(mock_share_responses, preprint):
+ preprint.remove_contributor(contributor=user2, auth=auth)
@pytest.mark.skip('Synchronous retries not supported if celery >=5.0')
def test_call_async_update_on_500_failure(self, mock_share_responses, preprint, auth):
@@ -129,10 +135,11 @@ def test_call_async_update_on_500_failure(self, mock_share_responses, preprint,
preprint.update_search()
def test_no_call_async_update_on_400_failure(self, mock_share_responses, preprint, auth):
- mock_share_responses.replace(responses.POST, shtrove_ingest_url(), status=400)
- preprint.set_published(True, auth=auth, save=True)
- with expect_preprint_ingest_request(mock_share_responses, preprint, count=1, error_response=True):
- preprint.update_search()
+ with capture_notifications():
+ mock_share_responses.replace(responses.POST, shtrove_ingest_url(), status=400)
+ preprint.set_published(True, auth=auth, save=True)
+ with expect_preprint_ingest_request(mock_share_responses, preprint, count=1, error_response=True):
+ preprint.update_search()
def test_delete_from_share(self, mock_share_responses):
preprint = PreprintFactory()
diff --git a/api_tests/subscriptions/views/test_subscriptions_detail.py b/api_tests/subscriptions/views/test_subscriptions_detail.py
index f14ca4e2522..a7246bbbd19 100644
--- a/api_tests/subscriptions/views/test_subscriptions_detail.py
+++ b/api_tests/subscriptions/views/test_subscriptions_detail.py
@@ -1,11 +1,18 @@
import pytest
+
from django.contrib.contenttypes.models import ContentType
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import (
+ AbstractNode,
+ NotificationSubscription,
+ NotificationTypeEnum,
+ OSFUser
+)
from osf_tests.factories import (
AuthUserFactory,
- NotificationSubscriptionFactory
+ NodeFactory,
+ NotificationSubscriptionFactory,
)
@pytest.mark.django_db
@@ -16,22 +23,83 @@ def user(self):
return AuthUserFactory()
@pytest.fixture()
- def user_no_auth(self):
+ def user_missing_subscriptions(self):
+ return AuthUserFactory()
+
+ @pytest.fixture()
+ def user_no_permission(self):
return AuthUserFactory()
@pytest.fixture()
- def notification(self, user):
+ def node(self, user):
+ return NodeFactory(creator=user)
+
+ @pytest.fixture()
+ def node_missing_subscriptions(self, user_missing_subscriptions):
+ node = NodeFactory(creator=user_missing_subscriptions)
+ subscription = NotificationSubscription.objects.get(
+ user=user_missing_subscriptions,
+ notification_type__name=NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ object_id=node.id,
+ content_type=ContentType.objects.get_for_model(AbstractNode)
+ )
+ subscription.delete()
+ return node
+
+ @pytest.fixture()
+ def notification_user_global_file_updated(self, user):
+ return NotificationSubscriptionFactory(
+ notification_type=NotificationTypeEnum.USER_FILE_UPDATED.instance,
+ object_id=user.id,
+ content_type_id=ContentType.objects.get_for_model(OSFUser).id,
+ user=user,
+ _is_digest=True,
+ message_frequency='daily',
+ )
+
+ @pytest.fixture()
+ def notification_user_global_reviews(self, user):
return NotificationSubscriptionFactory(
- notification_type=NotificationType.Type.USER_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.instance,
object_id=user.id,
- content_type_id=ContentType.objects.get_for_model(user).id,
- user=user
+ content_type_id=ContentType.objects.get_for_model(OSFUser).id,
+ user=user,
+ _is_digest=True,
+ message_frequency='daily',
)
@pytest.fixture()
- def url(self, user):
+ def url_user_global_file_updated(self, user):
return f'/{API_BASE}subscriptions/{user._id}_global_file_updated/'
+ @pytest.fixture()
+ def url_user_global_reviews(self, user):
+ return f'/{API_BASE}subscriptions/{user._id}_global_reviews/'
+
+ @pytest.fixture()
+ def url_user_global_file_updated_missing(self, user_missing_subscriptions):
+ return f'/{API_BASE}subscriptions/{user_missing_subscriptions._id}_global_file_updated/'
+
+ @pytest.fixture()
+ def url_user_global_reviews_missing(self, user_missing_subscriptions):
+ return f'/{API_BASE}subscriptions/{user_missing_subscriptions._id}_global_reviews/'
+
+ @pytest.fixture()
+ def url_node_file_updated(self, node):
+ return f'/{API_BASE}subscriptions/{node._id}_file_updated/'
+
+ @pytest.fixture()
+ def url_node_file_updated_not_found(self):
+ return f'/{API_BASE}subscriptions/12345_file_updated/'
+
+ @pytest.fixture()
+ def url_node_file_updated_without_permission(self, node_without_permission):
+ return f'/{API_BASE}subscriptions/{node_without_permission._id}_file_updated/'
+
+ @pytest.fixture()
+ def url_node_file_updated_missing(self, node_missing_subscriptions):
+ return f'/{API_BASE}subscriptions/{node_missing_subscriptions._id}_file_updated/'
+
@pytest.fixture()
def url_invalid(self):
return f'/{API_BASE}subscriptions/invalid-notification-id/'
@@ -58,40 +126,158 @@ def payload_invalid(self):
}
}
- def test_subscription_detail_invalid_user(self, app, user, user_no_auth, notification, url, payload):
- res = app.get(
- url,
- auth=user_no_auth.auth,
- expect_errors=True
- )
+ def test_user_global_subscription_detail_permission_denied(
+ self,
+ app,
+ user,
+ user_no_permission,
+ notification_user_global_file_updated,
+ notification_user_global_reviews,
+ url_user_global_file_updated,
+ url_user_global_reviews
+ ):
+ res = app.get(url_user_global_file_updated, auth=user_no_permission.auth, expect_errors=True)
+ assert res.status_code == 403
+ res = app.get(url_user_global_reviews, auth=user_no_permission.auth, expect_errors=True)
assert res.status_code == 403
- def test_subscription_detail_no_user(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ def test_user_global_subscription_detail_forbidden(
+ self,
+ app,
+ user,
+ user_no_permission,
+ notification_user_global_file_updated,
+ notification_user_global_reviews,
+ url_user_global_file_updated,
+ url_user_global_reviews
):
- res = app.get(
- url,
- expect_errors=True
- )
+ res = app.get(url_user_global_file_updated, expect_errors=True)
+ assert res.status_code == 401
+ res = app.get(url_user_global_reviews, expect_errors=True)
assert res.status_code == 401
- def test_subscription_detail_valid_user(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ def test_user_global_subscription_detail_success(
+ self,
+ app,
+ user,
+ user_no_permission,
+ notification_user_global_file_updated,
+ notification_user_global_reviews,
+ url_user_global_file_updated,
+ url_user_global_reviews
):
-
- res = app.get(url, auth=user.auth)
+ res = app.get(url_user_global_file_updated, auth=user.auth)
notification_id = res.json['data']['id']
assert res.status_code == 200
assert notification_id == f'{user._id}_global_file_updated'
+ res = app.get(url_user_global_reviews, auth=user.auth)
+ notification_id = res.json['data']['id']
+ assert res.status_code == 200
+ assert notification_id == f'{user._id}_global_reviews'
+
+ def test_user_global_file_updated_subscription_detail_missing_and_created(
+ self,
+ app,
+ user_missing_subscriptions,
+ url_user_global_file_updated_missing,
+ ):
+ assert not NotificationSubscription.objects.filter(
+ user=user_missing_subscriptions,
+ notification_type__name=NotificationTypeEnum.USER_FILE_UPDATED.value,
+ object_id=user_missing_subscriptions.id,
+ content_type=ContentType.objects.get_for_model(OSFUser)
+ ).exists()
+ res = app.get(url_user_global_file_updated_missing, auth=user_missing_subscriptions.auth)
+ notification_id = res.json['data']['id']
+ assert res.status_code == 200
+ assert notification_id == f'{user_missing_subscriptions._id}_global_file_updated'
+
+ def test_user_global_reviews_subscription_detail_missing_and_created(
+ self,
+ app,
+ user_missing_subscriptions,
+ url_user_global_reviews_missing,
+ ):
+ assert not NotificationSubscription.objects.filter(
+ user=user_missing_subscriptions,
+ notification_type__name=NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.value,
+ object_id=user_missing_subscriptions.id,
+ content_type=ContentType.objects.get_for_model(OSFUser)
+ ).exists()
+ res = app.get(url_user_global_reviews_missing, auth=user_missing_subscriptions.auth)
+ notification_id = res.json['data']['id']
+ assert res.status_code == 200
+ assert notification_id == f'{user_missing_subscriptions._id}_global_reviews'
+
+ def test_node_file_updated_subscription_detail_success(
+ self,
+ app,
+ user,
+ node,
+ url_node_file_updated
+ ):
+ res = app.get(url_node_file_updated, auth=user.auth)
+ notification_id = res.json['data']['id']
+ assert res.status_code == 200
+ assert notification_id == f'{node._id}_file_updated'
+
+ def test_node_file_updated_subscription_detail_missing_and_created(
+ self,
+ app,
+ user_missing_subscriptions,
+ node_missing_subscriptions,
+ url_node_file_updated_missing,
+ ):
+ assert not NotificationSubscription.objects.filter(
+ user=user_missing_subscriptions,
+ notification_type__name=NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ object_id=node_missing_subscriptions.id,
+ content_type=ContentType.objects.get_for_model(AbstractNode)
+ ).exists()
+ res = app.get(url_node_file_updated_missing, auth=user_missing_subscriptions.auth)
+ notification_id = res.json['data']['id']
+ assert res.status_code == 200
+ assert notification_id == f'{node_missing_subscriptions._id}_file_updated'
+
+ def test_node_file_updated_subscription_detail_not_found(
+ self,
+ app,
+ user,
+ node,
+ url_node_file_updated_not_found
+ ):
+ res = app.get(url_node_file_updated_not_found, auth=user.auth, expect_errors=True)
+ assert res.status_code == 404
+
+ def test_node_file_updated_subscription_detail_permission_denied(
+ self,
+ app,
+ user,
+ user_no_permission,
+ node,
+ url_node_file_updated
+ ):
+ res = app.get(url_node_file_updated, auth=user_no_permission.auth, expect_errors=True)
+ assert res.status_code == 403
+
+ def test_node_file_updated_subscription_detail_forbidden(
+ self,
+ app,
+ user,
+ node,
+ url_node_file_updated
+ ):
+ res = app.get(url_node_file_updated, expect_errors=True)
+ assert res.status_code == 401
def test_subscription_detail_invalid_notification_id_no_user(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
res = app.get(url_invalid, expect_errors=True)
assert res.status_code == 404
def test_subscription_detail_invalid_notification_id_existing_user(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
res = app.get(
url_invalid,
@@ -101,22 +287,22 @@ def test_subscription_detail_invalid_notification_id_existing_user(
assert res.status_code == 404
def test_subscription_detail_invalid_payload_403(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
- res = app.patch_json_api(url, payload_invalid, auth=user_no_auth.auth, expect_errors=True)
+ res = app.patch_json_api(url_user_global_file_updated, payload_invalid, auth=user_no_permission.auth, expect_errors=True)
assert res.status_code == 403
def test_subscription_detail_invalid_payload_401(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
- res = app.patch_json_api(url, payload_invalid, expect_errors=True)
+ res = app.patch_json_api(url_user_global_file_updated, payload_invalid, expect_errors=True)
assert res.status_code == 401
def test_subscription_detail_invalid_payload_400(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
res = app.patch_json_api(
- url,
+ url_user_global_file_updated,
payload_invalid,
auth=user.auth,
expect_errors=True,
@@ -126,33 +312,33 @@ def test_subscription_detail_invalid_payload_400(
assert res.json['errors'][0]['detail'] == ('"invalid-frequency" is not a valid choice.')
def test_subscription_detail_patch_invalid_notification_id_no_user(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
res = app.patch_json_api(url_invalid, payload, expect_errors=True)
assert res.status_code == 404
def test_subscription_detail_patch_invalid_notification_id_existing_user(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
res = app.patch_json_api(url_invalid, payload, auth=user.auth, expect_errors=True)
assert res.status_code == 404
def test_subscription_detail_patch_invalid_user(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
- res = app.patch_json_api(url, payload, auth=user_no_auth.auth, expect_errors=True)
+ res = app.patch_json_api(url_user_global_file_updated, payload, auth=user_no_permission.auth, expect_errors=True)
assert res.status_code == 403
def test_subscription_detail_patch_no_user(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
- res = app.patch_json_api(url, payload, expect_errors=True)
+ res = app.patch_json_api(url_user_global_file_updated, payload, expect_errors=True)
assert res.status_code == 401
def test_subscription_detail_patch(
- self, app, user, user_no_auth, notification, url, url_invalid, payload, payload_invalid
+ self, app, user, user_no_permission, notification_user_global_file_updated, url_user_global_file_updated, url_invalid, payload, payload_invalid
):
- res = app.patch_json_api(url, payload, auth=user.auth)
+ res = app.patch_json_api(url_user_global_file_updated, payload, auth=user.auth)
assert res.status_code == 200
assert res.json['data']['attributes']['frequency'] == 'none'
diff --git a/api_tests/subscriptions/views/test_subscriptions_list.py b/api_tests/subscriptions/views/test_subscriptions_list.py
index 599df9ddcd6..f4e858a6f93 100644
--- a/api_tests/subscriptions/views/test_subscriptions_list.py
+++ b/api_tests/subscriptions/views/test_subscriptions_list.py
@@ -2,7 +2,7 @@
from django.contrib.contenttypes.models import ContentType
from api.base.settings.defaults import API_BASE
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf_tests.factories import (
AuthUserFactory,
PreprintProviderFactory,
@@ -31,7 +31,7 @@ def node(self, user):
@pytest.fixture()
def global_user_notification(self, user):
return NotificationSubscriptionFactory(
- notification_type=NotificationType.Type.USER_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.USER_FILE_UPDATED.instance,
object_id=user.id,
content_type_id=ContentType.objects.get_for_model(user).id,
user=user,
@@ -40,7 +40,7 @@ def global_user_notification(self, user):
@pytest.fixture()
def file_updated_notification(self, node, user):
return NotificationSubscriptionFactory(
- notification_type=NotificationType.Type.NODE_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.NODE_FILE_UPDATED.instance,
object_id=node.id,
content_type_id=ContentType.objects.get_for_model(node).id,
user=user,
@@ -49,7 +49,7 @@ def file_updated_notification(self, node, user):
@pytest.fixture()
def provider_notification(self, provider, user):
return NotificationSubscriptionFactory(
- notification_type=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.instance,
+ notification_type=NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.instance,
object_id=provider.id,
content_type_id=ContentType.objects.get_for_model(provider).id,
subscribed_object=provider,
@@ -91,10 +91,10 @@ def test_cannot_post_patch_put_or_delete(self, app, url, user):
assert delete_res.status_code == 405
def test_multiple_values_filter(self, app, url, user):
- res = app.get(url + '?filter[event_name]=global_file_updated,files_updated', auth=user.auth)
+ res = app.get(url + '?filter[event_name]=global_file_updated,file_updated', auth=user.auth)
assert len(res.json['data']) == 2
for subscription in res.json['data']:
- subscription['attributes']['event_name'] in ['global', 'comments']
+ assert subscription['attributes']['event_name'] in ['global_file_updated', 'file_updated']
def test_value_filter_id(
self,
@@ -122,5 +122,5 @@ def test_value_filter_id(
# Confirm it’s the expected subscription object
attributes = data[0]['attributes']
- assert attributes['event_name'] == 'files_updated' # event names are legacy
+ assert attributes['event_name'] == 'file_updated' # event names are legacy
assert attributes['frequency'] in ['instantly', 'daily', 'none']
diff --git a/api_tests/users/views/test_user_claim.py b/api_tests/users/views/test_user_claim.py
index 15e00c82feb..739b9757ea5 100644
--- a/api_tests/users/views/test_user_claim.py
+++ b/api_tests/users/views/test_user_claim.py
@@ -6,7 +6,7 @@
from api.users.views import ClaimUser
from api_tests.utils import only_supports_methods
from framework.auth.core import Auth
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
AuthUserFactory,
ProjectFactory,
@@ -126,7 +126,7 @@ def test_claim_unauth_success_with_original_email(self, app, url, project, unreg
self.payload(email='david@david.son', id=project._id),
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INVITE_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INVITE_DEFAULT
assert res.status_code == 204
def test_claim_unauth_success_with_claimer_email(self, app, url, unreg_user, project, claimer):
@@ -137,8 +137,8 @@ def test_claim_unauth_success_with_claimer_email(self, app, url, unreg_user, pro
)
assert res.status_code == 204
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_FORWARD_INVITE_REGISTERED
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION_REGISTERED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE_REGISTERED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION_REGISTERED
def test_claim_unauth_success_with_unknown_email(self, app, url, project, unreg_user):
with capture_notifications() as notifications:
@@ -148,8 +148,8 @@ def test_claim_unauth_success_with_unknown_email(self, app, url, project, unreg_
)
assert res.status_code == 204
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_FORWARD_INVITE
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE
def test_claim_unauth_success_with_preprint_id(self, app, url, preprint, unreg_user):
with capture_notifications() as notifications:
@@ -159,7 +159,7 @@ def test_claim_unauth_success_with_preprint_id(self, app, url, preprint, unreg_u
)
assert res.status_code == 204
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INVITE_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INVITE_DEFAULT
def test_claim_auth_failure(self, app, url, claimer, wrong_preprint, project, unreg_user, referrer):
_url = url.format(unreg_user._id)
@@ -228,8 +228,8 @@ def test_claim_auth_throttle_error(self, app, url, claimer, unreg_user, project)
expect_errors=True
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_FORWARD_INVITE_REGISTERED
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION_REGISTERED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE_REGISTERED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION_REGISTERED
res = app.post_json_api(
url.format(unreg_user._id),
self.payload(id=project._id),
@@ -248,8 +248,8 @@ def test_claim_auth_success(self, app, url, claimer, unreg_user, project):
)
assert res.status_code == 204
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_FORWARD_INVITE_REGISTERED
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION_REGISTERED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE_REGISTERED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION_REGISTERED
@pytest.mark.django_db
diff --git a/api_tests/users/views/test_user_confirm.py b/api_tests/users/views/test_user_confirm.py
index 230b4a5644a..5c9643e3e02 100644
--- a/api_tests/users/views/test_user_confirm.py
+++ b/api_tests/users/views/test_user_confirm.py
@@ -1,7 +1,7 @@
import pytest
from api.base.settings.defaults import API_BASE
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import AuthUserFactory
from tests.utils import capture_notifications
@@ -168,7 +168,7 @@ def test_post_success_link(self, app, confirm_url, user_with_email_verification)
assert res.status_code == 201
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_EXTERNAL_LOGIN_LINK_SUCCESS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_EXTERNAL_LOGIN_LINK_SUCCESS
user.reload()
assert user.external_identity['ORCID']['0000-0000-0000-0000'] == 'VERIFIED'
diff --git a/api_tests/users/views/test_user_list.py b/api_tests/users/views/test_user_list.py
index 883defee671..a98fc253fee 100644
--- a/api_tests/users/views/test_user_list.py
+++ b/api_tests/users/views/test_user_list.py
@@ -10,7 +10,7 @@
from api.base.settings.defaults import API_BASE
from framework.auth.cas import CasResponse
-from osf.models import OSFUser, ApiOAuth2PersonalToken, NotificationType
+from osf.models import OSFUser, ApiOAuth2PersonalToken, NotificationTypeEnum
from osf_tests.factories import (
AuthUserFactory,
UserFactory,
@@ -320,7 +320,7 @@ def test_cookied_requests_can_create_and_email(
data
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_MODERATOR_ADDED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_MODERATOR_ADDED
assert res.status_code == 201
assert OSFUser.objects.filter(username=email_unconfirmed).count() == 1
@@ -359,7 +359,7 @@ def test_properly_scoped_token_can_create_and_send_email(
headers={'Authorization': f'Bearer {token.token_id}'}
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_MODERATOR_ADDED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_MODERATOR_ADDED
assert res.status_code == 201
assert res.json['data']['attributes']['username'] == email_unconfirmed
@@ -519,7 +519,7 @@ def test_admin_scoped_token_can_create_and_send_email(
headers={'Authorization': f'Bearer {token.token_id}'}
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_MODERATOR_ADDED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_MODERATOR_ADDED
assert res.status_code == 201
assert res.json['data']['attributes']['username'] == email_unconfirmed
diff --git a/api_tests/users/views/test_user_message_institutional_access.py b/api_tests/users/views/test_user_message_institutional_access.py
index 04a6cff1f4c..069409ccb0f 100644
--- a/api_tests/users/views/test_user_message_institutional_access.py
+++ b/api_tests/users/views/test_user_message_institutional_access.py
@@ -1,6 +1,6 @@
import pytest
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf.models.user_message import MessageTypes, UserMessage
from api.base.settings.defaults import API_BASE
from osf_tests.factories import (
@@ -221,7 +221,7 @@ def test_cc_institutional_admin(
auth=institutional_admin.auth,
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INSTITUTIONAL_ACCESS_REQUEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INSTITUTIONAL_ACCESS_REQUEST
assert notifications['emits'][0]['kwargs']['user'].username == user_with_affiliation.username
assert res.status_code == 201
user_message = UserMessage.objects.get()
@@ -235,7 +235,7 @@ def test_cc_field_defaults_to_false(self, app, institutional_admin, url_with_aff
with capture_notifications() as notifications:
res = app.post_json_api(url_with_affiliation, payload, auth=institutional_admin.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INSTITUTIONAL_ACCESS_REQUEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INSTITUTIONAL_ACCESS_REQUEST
assert notifications['emits'][0]['kwargs']['user'].username == user_with_affiliation.username
assert res.status_code == 201
diff --git a/api_tests/users/views/test_user_settings.py b/api_tests/users/views/test_user_settings.py
index 53dc254b519..d543c781427 100644
--- a/api_tests/users/views/test_user_settings.py
+++ b/api_tests/users/views/test_user_settings.py
@@ -7,7 +7,7 @@
AuthUserFactory,
UserFactory,
)
-from osf.models import Email, NotableDomain, NotificationType
+from osf.models import Email, NotableDomain, NotificationTypeEnum
from framework.auth.views import auth_email_logout
from tests.utils import capture_notifications
@@ -59,7 +59,7 @@ def test_post(self, app, user_one, user_two, url, payload):
with capture_notifications() as notifications:
res = app.post_json_api(url, payload, auth=user_one.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DESK_REQUEST_EXPORT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DESK_REQUEST_EXPORT
assert res.status_code == 204
user_one.reload()
assert user_one.email_last_sent is not None
diff --git a/api_tests/users/views/test_user_settings_reset_password.py b/api_tests/users/views/test_user_settings_reset_password.py
index 62687a58612..51c2db80038 100644
--- a/api_tests/users/views/test_user_settings_reset_password.py
+++ b/api_tests/users/views/test_user_settings_reset_password.py
@@ -3,7 +3,7 @@
from api.base.settings.defaults import API_BASE
from api.base.settings import CSRF_COOKIE_NAME
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import (
UserFactory,
)
@@ -49,7 +49,7 @@ def test_get(self, app, url, user_one):
with capture_notifications() as notifications:
res = app.get(url)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_FORGOT_PASSWORD
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_FORGOT_PASSWORD
assert res.status_code == 200
user_one.reload()
diff --git a/framework/auth/campaigns.py b/framework/auth/campaigns.py
index 93ff9ccca4f..728e14bdc8d 100644
--- a/framework/auth/campaigns.py
+++ b/framework/auth/campaigns.py
@@ -4,7 +4,7 @@
from django.utils import timezone
from website import settings
-from osf.models import PreprintProvider, NotificationType
+from osf.models import PreprintProvider, NotificationTypeEnum
from website.settings import DOMAIN, CAMPAIGN_REFRESH_THRESHOLD
from website.util.metrics import OsfSourceTags, OsfClaimedTags, CampaignSourceTags, CampaignClaimedTags, provider_source_tag
from framework.utils import throttle_period_expired
@@ -14,7 +14,7 @@
CAMPAIGNS = None
CAMPAIGNS_LAST_REFRESHED = timezone.now()
-
+# TODO: Notification Refactor have replaced deprecated notification types with placeholder ones; still need to clean up deprecated campaigns.
def get_campaigns():
global CAMPAIGNS
@@ -26,7 +26,7 @@ def get_campaigns():
'erpc': {
'system_tag': CampaignSourceTags.ErpChallenge.value,
'redirect_url': furl(DOMAIN).add(path='erpc/').url,
- 'confirmation_email_template': NotificationType.Type.USER_CAMPAIGN_CONFIRM_EMAIL_ERPC,
+ 'confirmation_email_template': NotificationTypeEnum.USER_CAMPAIGN_CONFIRM_EMAIL_ERPC,
'login_type': 'native',
},
}
@@ -44,12 +44,12 @@ def get_campaigns():
preprint_providers = PreprintProvider.objects.all()
for provider in preprint_providers:
if provider._id == 'osf':
- confirmation_email_template = NotificationType.Type.USER_CAMPAIGN_CONFIRM_PREPRINTS_OSF
+ confirmation_email_template = NotificationTypeEnum.USER_CONFIRM_EMAIL # added as a placeholder as removed NotificationType
name = 'OSF'
url_path = 'preprints/'
external_url = None
else:
- confirmation_email_template = NotificationType.Type.USER_CAMPAIGN_CONFIRM_PREPRINTS_BRANDED
+ confirmation_email_template = NotificationTypeEnum.USER_CONFIRM_EMAIL # added as a placeholder as removed NotificationType
name = provider.name
url_path = f'preprints/{provider._id}'
@@ -85,7 +85,7 @@ def get_campaigns():
'osf-registered-reports': {
'system_tag': CampaignSourceTags.OsfRegisteredReports.value,
'redirect_url': furl(DOMAIN).add(path='rr/').url,
- 'confirmation_email_template': NotificationType.Type.USER_CAMPAIGN_CONFIRM_EMAIL_REGISTRIES_OSF,
+ 'confirmation_email_template': NotificationTypeEnum.USER_CAMPAIGN_CONFIRM_EMAIL_REGISTRIES_OSF,
'login_type': 'proxy',
'provider': 'osf',
'logo': settings.OSF_REGISTRIES_LOGO
@@ -96,7 +96,7 @@ def get_campaigns():
'agu_conference_2023': {
'system_tag': CampaignSourceTags.AguConference2023.value,
'redirect_url': furl(DOMAIN).add(path='my_projects/').url,
- 'confirmation_email_template': NotificationType.Type.USER_CAMPAIGN_CONFIRM_EMAIL_AGU_CONFERENCE_2023,
+ 'confirmation_email_template': NotificationTypeEnum.USER_CONFIRM_EMAIL, # added as a placeholder as removed NotificationType
'login_type': 'native',
}
})
@@ -105,7 +105,7 @@ def get_campaigns():
'agu_conference': {
'system_tag': CampaignSourceTags.AguConference.value,
'redirect_url': furl(DOMAIN).add(path='my_projects/').url,
- 'confirmation_email_template': NotificationType.Type.USER_CAMPAIGN_CONFIRM_EMAIL_AGU_CONFERENCE,
+ 'confirmation_email_template': NotificationTypeEnum.USER_CAMPAIGN_CONFIRM_EMAIL_AGU_CONFERENCE,
'login_type': 'native',
}
})
diff --git a/framework/auth/decorators.py b/framework/auth/decorators.py
index 5557c900be3..af56280b8fe 100644
--- a/framework/auth/decorators.py
+++ b/framework/auth/decorators.py
@@ -76,6 +76,29 @@ def wrapped(*args, **kwargs):
return wrapped
+
+def is_contributor_or_public_resource(resource_kw='resource'):
+ """
+ Require that user be contributor or resource be public.
+ """
+ def decorator(func):
+ @wraps(func)
+ def wrapped(*args, **kwargs):
+ from osf.models import BaseFileNode, Guid
+ referent = kwargs.get(resource_kw)
+ if isinstance(referent, Guid):
+ referent = referent.referent
+ target_resource = referent.target if isinstance(referent, BaseFileNode) else referent
+ if target_resource.is_public:
+ return func(*args, **kwargs)
+ auth = Auth.from_kwargs(request.args.to_dict(), {})
+ if auth.logged_in and target_resource.is_contributor(auth.user):
+ return func(*args, **kwargs)
+ raise HTTPError(http_status.HTTP_403_FORBIDDEN)
+ return wrapped
+ return decorator
+
+
# TODO Can remove after Waterbutler is sending requests to V2 endpoints.
# This decorator has been adapted for use in an APIv2 parser - HMACSignedParser
def must_be_signed(func):
diff --git a/framework/auth/views.py b/framework/auth/views.py
index 3b5a4f20dea..f7450c42a47 100644
--- a/framework/auth/views.py
+++ b/framework/auth/views.py
@@ -26,7 +26,7 @@
from framework.sessions.utils import remove_sessions_for_user
from framework.sessions import get_session
from framework.utils import throttle_period_expired
-from osf.models import OSFUser, NotificationType
+from osf.models import OSFUser, NotificationTypeEnum
from osf.utils.sanitize import strip_html
from website import settings, language
from website.util import web_url_for
@@ -206,7 +206,7 @@ def forgot_password_post():
"""Dispatches to ``_forgot_password_post`` passing non-institutional user mail template
and reset action."""
return _forgot_password_post(
- notificaton_type=NotificationType.Type.USER_FORGOT_PASSWORD,
+ notificaton_type=NotificationTypeEnum.USER_FORGOT_PASSWORD,
reset_route='reset_password_get'
)
@@ -215,7 +215,7 @@ def forgot_password_institution_post():
"""Dispatches to `_forgot_password_post` passing institutional user mail template, reset
action, and setting the ``institutional`` flag."""
return _forgot_password_post(
- notificaton_type=NotificationType.Type.USER_FORGOT_PASSWORD_INSTITUTION,
+ notificaton_type=NotificationTypeEnum.USER_FORGOT_PASSWORD_INSTITUTION,
reset_route='reset_password_institution_get',
institutional=True
)
@@ -278,8 +278,6 @@ def _forgot_password_post(notificaton_type, reset_route, institutional=False):
user=user_obj,
event_context={
'reset_link': reset_link,
- 'can_change_preferences': False,
- 'osf_contact_email': settings.OSF_CONTACT_EMAIL,
},
)
@@ -656,12 +654,11 @@ def external_login_confirm_email_get(auth, uid, token):
if external_status == 'CREATE':
service_url += '&{}'.format(urlencode({'new': 'true'}))
elif external_status == 'LINK':
- NotificationType.Type.USER_EXTERNAL_LOGIN_LINK_SUCCESS.instance.emit(
+ NotificationTypeEnum.USER_EXTERNAL_LOGIN_LINK_SUCCESS.instance.emit(
user=user,
event_context={
'user_fullname': user.fullname,
'external_id_provider': provider,
- 'can_change_preferences': False,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
},
)
@@ -836,9 +833,9 @@ def send_confirm_email(user, email, renew=False, external_id_provider=None, exte
if external_id_provider and external_id:
# First time login through external identity provider, link or create an OSF account confirmation
if user.external_identity[external_id_provider][external_id] == 'CREATE':
- notification_type = NotificationType.Type.USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_CREATE
+ notification_type = NotificationTypeEnum.USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_CREATE
elif user.external_identity[external_id_provider][external_id] == 'LINK':
- notification_type = NotificationType.Type.USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_LINK
+ notification_type = NotificationTypeEnum.USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_LINK
else:
raise HTTPError(http_status.HTTP_400_BAD_REQUEST, data={})
elif merge_target:
@@ -848,25 +845,24 @@ def send_confirm_email(user, email, renew=False, external_id_provider=None, exte
'user_username': user.username,
'email': merge_target.email,
}
- notification_type = NotificationType.Type.USER_CONFIRM_MERGE
+ notification_type = NotificationTypeEnum.USER_CONFIRM_MERGE
logout_query = '?logout=1'
elif user.is_active:
# Add email confirmation
- notification_type = NotificationType.Type.USER_CONFIRM_EMAIL
+ notification_type = NotificationTypeEnum.USER_CONFIRM_EMAIL
logout_query = '?logout=1'
elif campaign:
# Account creation confirmation: from campaign
notification_type = campaigns.email_template_for_campaign(campaign)
else:
# Account creation confirmation: from OSF
- notification_type = NotificationType.Type.USER_INITIAL_CONFIRM_EMAIL
+ notification_type = NotificationTypeEnum.USER_INITIAL_CONFIRM_EMAIL
notification_type.instance.emit(
destination_address=email,
event_context={
'user_fullname': user.fullname,
'confirmation_url': f'{confirmation_url}{logout_query}',
- 'can_change_preferences': False,
'external_id_provider': external_id_provider,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
'osf_support_email': settings.OSF_SUPPORT_EMAIL,
diff --git a/notifications.yaml b/notifications.yaml
index 29d896cdc89..b867c3a2d38 100644
--- a/notifications.yaml
+++ b/notifications.yaml
@@ -46,27 +46,6 @@ notification_types:
tests: ['osf_tests/test_user.py', 'tests/test_auth.py']
template: 'website/templates/password_reset.html.mako'
- - name: user_contributor_added_preprint_node_from_osf
- subject: 'You have been added as a contributor to an OSF preprint'
- __docs__: ...
- object_content_type_model_name: osfuser
- template: 'website/templates/contributor_added_preprint_node_from_osf.html.mako'
- tests: []
-
- - name: user_contributor_added_access_request
- subject: 'You have been added as a contributor to an OSF project'
- __docs__: ...
- object_content_type_model_name: osfuser
- tests: ['tests/test_claim_views.py', 'api_tests/requests/views/test_request_actions_create.py', 'api_tests/requests/mixins.py', 'osf_tests/test_institutional_admin_contributors.py']
- template: 'website/templates/contributor_added_access_request.html.mako'
-
- - name: user_contributor_added_osf_preprint
- subject: 'You have been added as a contributor to an OSF preprint.'
- __docs__: ...
- object_content_type_model_name: osfuser
- tests: []
- template: 'website/templates/contributor_added_preprint_node_from_osf.html.mako'
-
- name: user_external_login_link_success
subject: 'OSF Verification Success'
__docs__: ...
@@ -81,13 +60,6 @@ notification_types:
tests: ['tests/test_auth_views.py']
template: 'website/templates/confirm.html.mako'
- - name: forgot_password
- subject: 'Reset Password'
- __docs__: ...
- object_content_type_model_name: osfuser
- tests: ['api_tests/users/views/test_user_settings_reset_password.py', 'tests/test_forgot_password.py']
- template: 'website/templates/forgot_password.html.mako'
-
- name: user_welcome
subject: 'Welcome to OSF'
__docs__: ...
@@ -137,13 +109,6 @@ notification_types:
tests: ['tests/test_adding_contributor_views.py', 'api_tests/users/views/test_user_claim.py', 'tests/test_claim_views.py']
template: 'website/templates/invite_default.html.mako'
- - name: user_pending_invite
- subject: 'You have been invited to contribute to an OSF project'
- __docs__: ...
- object_content_type_model_name: osfuser
- tests: []
- template: 'website/templates/pending_invite.html.mako'
-
- name: user_forward_invite_registered
subject: 'Please forward to {user_fullname}'
__docs__: ...
@@ -165,13 +130,6 @@ notification_types:
template: 'website/templates/initial_confirm.html.mako'
tests: ['tests/test_resend_confirmation.py', 'tests/test_auth.py']
- - name: user_export_data_request
- subject: 'Data Export Request'
- __docs__: ...
- object_content_type_model_name: osfuser
- template: 'website/templates/support_request.html.mako'
- tests: []
-
- name: user_request_deactivation
subject: '[via OSF] Deactivation Request'
__docs__: ...
@@ -193,13 +151,6 @@ notification_types:
template: 'website/templates/storage_cap_exceeded_announcement.html.mako'
tests: []
- - name: user_duplicate_accounts_sso_osf4i
- subject: 'Duplicate Account Detection'
- __docs__: ...
- object_content_type_model_name: osfuser
- template: 'website/templates/duplicate_accounts_sso_osf4i.html.mako'
- tests: []
-
- name: user_duplicate_accounts_osf4i
subject: 'Duplicate Account Detection'
__docs__: ...
@@ -242,14 +193,14 @@ notification_types:
template: 'website/templates/registration_bulk_upload_success_partial.html.mako'
tests: ['api_tests/providers/tasks/test_bulk_upload.py']
- - name: user_registration_bulk_upload_failure_duplicates
+ - name: registration_bulk_upload_failure_duplicates
subject: 'Bulk Registration Upload Failed - Duplicates Found'
__docs__: ...
object_content_type_model_name: osfuser
template: 'website/templates/registration_bulk_upload_failure_duplicates.html.mako'
tests: []
- - name: registration_bulk_upload_unexpected_failure
+ - name: desk_user_registration_bulk_upload_unexpected_failure
subject: 'Bulk Registration Upload Unexpected Failed'
__docs__: ...
object_content_type_model_name: osfuser
@@ -319,30 +270,24 @@ notification_types:
template: 'website/templates/archive_uncaught_error_user.html.mako'
tests: []
- - name: user_confirm_email_erpc
+ - name: user_campaign_confirm_email_erpc
subject: 'OSF Account Verification, Election Research Preacceptance Competition'
object_content_type_model_name: osfuser
template: 'website/templates/confirm_erpc.html.mako'
tests: []
- - name: user_confirm_email_agu_conference
+ - name: user_campaign_confirm_email_agu_conference
subject: 'OSF Account Verification, from the American Geophysical Union Conference'
object_content_type_model_name: osfuser
template: 'website/templates/confirm_erpc.html.mako'
tests: []
- - name: user_confirm_email_registries_osf
+ - name: user_campaign_confirm_email_registries_osf # TODO: recheck
subject: 'OSF Account Verification, OSF Registries'
object_content_type_model_name: osfuser
template: 'website/templates/confirm_registries_osf.html.mako'
tests: []
- - name: user_confirm_email_preprints
- subject: 'OSF Account Verification, Preprints'
- object_content_type_model_name: osfuser
- template: 'website/templates/confirm_preprints_osf.html.mako'
- tests: ['']
-
- name: user_confirm_merge
subject: 'Confirm account merge'
object_content_type_model_name: osfuser
@@ -373,7 +318,7 @@ notification_types:
template: 'website/templates/tou_notif.html.mako'
tests: []
- - name: user_registration_bulk_upload_product_owner
+ - name: desk_registration_bulk_upload_product_owner
subject: 'Registry Could Not Bulk Upload Registrations'
object_content_type_model_name: osfuser
template: 'website/templates/registration_bulk_upload_product_owner.html.mako'
@@ -412,13 +357,6 @@ notification_types:
template: 'website/templates/new_pending_withdraw_requests.html.mako'
tests: ['tests/test_registrations/test_review_flows.py']
- - name: provider_contributor_added_preprint
- subject: 'Contributor Added to Preprint'
- __docs__: ...
- object_content_type_model_name: abstractprovider
- template: 'website/templates/contributor_added_preprints.html.mako'
- tests: []
-
- name: provider_confirm_email_moderation
subject: 'OSF Account Verification, {provider_name}'
__docs__: ...
@@ -447,23 +385,8 @@ notification_types:
template: 'website/templates/reviews_resubmission_confirmation.html.mako'
tests: ['osf_tests/test_reviewable.py']
- #### NODE
- - name: node_wiki_updated
- subject: 'Wiki Updated'
- __docs__: ...
- object_content_type_model_name: abstractnode
- template: 'website/templates/file_updated.html.mako'
- tests: ['tests/test_events.py']
-
- - name: node_files_updated
- subject: 'Files Updated'
- __docs__: ...
- object_content_type_model_name: abstractnode
- template: 'website/templates/file_updated.html.mako'
- tests: ['tests/test_events.py']
-
- name: node_file_updated
- subject: 'File Updated'
+ subject: 'Files Updated'
__docs__: ...
object_content_type_model_name: abstractnode
template: 'website/templates/file_updated.html.mako'
@@ -488,7 +411,7 @@ notification_types:
__docs__: ...
object_content_type_model_name: abstractnode
template: 'website/templates/contributor_added_access_request.html.mako'
- tests: []
+ tests: ['tests/test_claim_views.py', 'api_tests/requests/views/test_request_actions_create.py', 'api_tests/requests/mixins.py', 'osf_tests/test_institutional_admin_contributors.py']
- name: node_pending_registration_admin
subject: 'Pending Registration - Admin Notification'
@@ -610,26 +533,13 @@ notification_types:
template: 'website/templates/updates_rejected.html.mako'
tests: ['osf_tests/test_schema_responses.py']
- - name: node_archive_file_not_found_desk
- subject: 'Problem registering {src_title}'
- __docs__: ...
- object_content_type_model_name: abstractnode
- template: 'website/templates/archive_file_not_found_desk.html.mako'
- tests: []
-
- - name: node_archive_file_not_found_user
+ - name: user_archive_job_file_not_found
subject: 'Registration failed because of altered files'
object_content_type_model_name: abstractnode
template: 'website/templates/archive_file_not_found_user.html.mako'
tests: []
- - name: node_archive_uncaught_error_desk
- subject: 'Problem registering {src_title}'
- object_content_type_model_name: abstractnode
- template: 'website/templates/archive_uncaught_error_desk.html.mako'
- tests: []
-
- - name: node_archive_registration_stuck_desk
+ - name: desk_archive_registration_stuck
subject: '[auto] Stuck registrations audit'
object_content_type_model_name: abstractnode
template: 'website/templates/archive_registration_stuck_desk.html.mako'
@@ -641,18 +551,10 @@ notification_types:
template: 'website/templates/archive_success.html.mako'
tests: []
- - name: node_withdraw_registration_approved
- object_content_type_model_name: abstractnode
- template: 'website/templates/withdrawal_request_granted.html.mako'
-
- name: node_withdrawal_request_approved
object_content_type_model_name: abstractnode
template: 'website/templates/withdrawal_request_granted.html.mako'
- - name: node_withdraw_registration_declined
- object_content_type_model_name: abstractnode
- template: 'website/templates/withdrawal_request_declined.html.mako'
-
- name: node_new_public_project
subject: 'Now, public. Next, impact.'
__docs__: ...
@@ -690,18 +592,6 @@ notification_types:
template: 'website/templates/contributor_added_preprints.html.mako'
tests: ['api_tests/preprints/views/test_preprint_contributors_list.py']
- - name: preprint_withdrawal_request_granted
- subject: 'Your {document_type} has been withdrawn'
- object_content_type_model_name: preprint
- template: 'website/templates/withdrawal_request_granted.html.mako'
- tests: []
-
- - name: preprint_withdrawal_request_declined
- subject: 'Your withdrawal request has been declined'
- object_content_type_model_name: preprint
- template: 'website/templates/withdrawal_request_declined.html.mako'
- tests: []
-
#### SUPPORT
#### Collection Submissions
- name: collection_submission_removed_moderator
@@ -796,13 +686,6 @@ notification_types:
template: 'website/templates/archive_uncaught_error_desk.html.mako'
tests: []
- - name: desk_osf_support_email
- subject: 'OSF Support Email'
- __docs__: ...
- object_content_type_model_name: desk
- template: 'website/templates/crossref_doi_error.html.mako'
- tests: []
-
- name: desk_request_deactivation
subject: 'Deactivation Request'
__docs__: ...
diff --git a/notifications/file_event_notifications.py b/notifications/file_event_notifications.py
index 6d0fc3605bf..d57d4d8e9cf 100644
--- a/notifications/file_event_notifications.py
+++ b/notifications/file_event_notifications.py
@@ -15,6 +15,7 @@
from osf.models import (
NotificationType,
+ NotificationTypeEnum,
AbstractNode,
NodeLog,
Preprint,
@@ -96,13 +97,13 @@ def file_updated(self, target=None, user=None, event_type=None, payload=None):
return
event = {
- NodeLog.FILE_RENAMED: NotificationType.Type.ADDON_FILE_RENAMED,
- NodeLog.FILE_COPIED: NotificationType.Type.ADDON_FILE_COPIED,
- NodeLog.FILE_ADDED: NotificationType.Type.FILE_ADDED,
- NodeLog.FILE_MOVED: NotificationType.Type.ADDON_FILE_MOVED,
- NodeLog.FILE_REMOVED: NotificationType.Type.FILE_REMOVED,
- NodeLog.FILE_UPDATED: NotificationType.Type.FILE_UPDATED,
- NodeLog.FOLDER_CREATED: NotificationType.Type.FOLDER_CREATED,
+ NodeLog.FILE_RENAMED: NotificationTypeEnum.ADDON_FILE_RENAMED,
+ NodeLog.FILE_COPIED: NotificationTypeEnum.ADDON_FILE_COPIED,
+ NodeLog.FILE_ADDED: NotificationTypeEnum.FILE_ADDED,
+ NodeLog.FILE_MOVED: NotificationTypeEnum.ADDON_FILE_MOVED,
+ NodeLog.FILE_REMOVED: NotificationTypeEnum.FILE_REMOVED,
+ NodeLog.FILE_UPDATED: NotificationTypeEnum.FILE_UPDATED,
+ NodeLog.FOLDER_CREATED: NotificationTypeEnum.FOLDER_CREATED,
}[event_type]
if event not in event_registry:
@@ -268,7 +269,7 @@ def perform(self):
super().perform()
return
- NotificationType.Type.ADDON_FILE_RENAMED.instance.emit(
+ NotificationTypeEnum.ADDON_FILE_RENAMED.instance.emit(
user=self.user,
event_context={
'user_fullname': self.user.fullname,
@@ -305,7 +306,7 @@ def perform(self):
super().perform()
return
- NotificationType.Type.ADDON_FILE_MOVED.instance.emit(
+ NotificationTypeEnum.ADDON_FILE_MOVED.instance.emit(
user=self.user,
event_context={
'user_fullname': self.user.fullname,
@@ -325,7 +326,7 @@ def perform(self):
super().perform()
return
- NotificationType.Type.ADDON_FILE_COPIED.instance.emit(
+ NotificationTypeEnum.ADDON_FILE_COPIED.instance.emit(
user=self.user,
event_context={
'user_fullname': self.user.fullname,
diff --git a/notifications/listeners.py b/notifications/listeners.py
index 62ad487b358..801690a976c 100644
--- a/notifications/listeners.py
+++ b/notifications/listeners.py
@@ -10,7 +10,7 @@
@project_created.connect
def subscribe_creator(resource):
- from osf.models import NotificationSubscription, NotificationType, Preprint
+ from osf.models import NotificationSubscription, NotificationTypeEnum, Preprint
from django.contrib.contenttypes.models import ContentType
@@ -21,7 +21,7 @@ def subscribe_creator(resource):
try:
NotificationSubscription.objects.get_or_create(
user=user,
- notification_type=NotificationType.Type.USER_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.USER_FILE_UPDATED.instance,
object_id=user.id,
content_type=ContentType.objects.get_for_model(user),
_is_digest=True,
@@ -35,7 +35,7 @@ def subscribe_creator(resource):
try:
NotificationSubscription.objects.get_or_create(
user=user,
- notification_type=NotificationType.Type.NODE_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.NODE_FILE_UPDATED.instance,
object_id=resource.id,
content_type=ContentType.objects.get_for_model(resource),
_is_digest=True,
@@ -49,7 +49,7 @@ def subscribe_creator(resource):
@contributor_added.connect
def subscribe_contributor(resource, contributor, auth=None, *args, **kwargs):
from django.contrib.contenttypes.models import ContentType
- from osf.models import NotificationSubscription, NotificationType, Preprint
+ from osf.models import NotificationSubscription, NotificationTypeEnum, Preprint
from osf.models import Node
if isinstance(resource, Node):
@@ -59,7 +59,7 @@ def subscribe_contributor(resource, contributor, auth=None, *args, **kwargs):
try:
NotificationSubscription.objects.get_or_create(
user=contributor,
- notification_type=NotificationType.Type.USER_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.USER_FILE_UPDATED.instance,
object_id=contributor.id,
content_type=ContentType.objects.get_for_model(contributor),
_is_digest=True,
@@ -73,7 +73,7 @@ def subscribe_contributor(resource, contributor, auth=None, *args, **kwargs):
try:
NotificationSubscription.objects.get_or_create(
user=contributor,
- notification_type=NotificationType.Type.NODE_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.NODE_FILE_UPDATED.instance,
object_id=resource.id,
content_type=ContentType.objects.get_for_model(resource),
_is_digest=True,
@@ -89,7 +89,7 @@ def subscribe_contributor(resource, contributor, auth=None, *args, **kwargs):
@reviews_signals.reviews_withdraw_requests_notification_moderators.connect
def reviews_withdraw_requests_notification_moderators(self, timestamp, context, user, resource):
from website.settings import DOMAIN
- from osf.models import NotificationType
+ from osf.models import NotificationTypeEnum
provider = resource.provider
context['provider_id'] = provider.id
@@ -99,10 +99,11 @@ def reviews_withdraw_requests_notification_moderators(self, timestamp, context,
# Set submission url
context['reviews_submission_url'] = f'{DOMAIN}{resource._id}?mode=moderator'
context['localized_timestamp'] = str(timestamp)
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.instance.emit(
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.instance.emit(
subscribed_object=provider,
user=user,
- event_context=context
+ event_context=context,
+ is_digest=True,
)
@@ -153,9 +154,9 @@ def queue_no_addon_email(user):
`settings.NO_ADDON_WAIT_TIME` months of signing up for the OSF.
"""
from website.settings import DOMAIN
- from osf.models import NotificationType
+ from osf.models import NotificationTypeEnum
- NotificationType.Type.USER_NO_ADDON.instance.emit(
+ NotificationTypeEnum.USER_NO_ADDON.instance.emit(
subscribed_object=user,
user=user,
event_context={
diff --git a/notifications/tasks.py b/notifications/tasks.py
index 84a825088f2..e9dc277d5b7 100644
--- a/notifications/tasks.py
+++ b/notifications/tasks.py
@@ -1,7 +1,6 @@
import itertools
from calendar import monthrange
-from datetime import date, datetime
-from django.contrib.contenttypes.models import ContentType
+from datetime import date
from django.db import connection
from django.utils import timezone
from django.core.validators import EmailValidator
@@ -11,7 +10,7 @@
from celery.utils.log import get_task_logger
from framework.postcommit_tasks.handlers import run_postcommit
-from osf.models import OSFUser, Notification, NotificationType, EmailTask, RegistrationProvider, \
+from osf.models import OSFUser, Notification, NotificationTypeEnum, EmailTask, RegistrationProvider, \
CollectionProvider, AbstractProvider
from framework.sentry import log_message
from osf.registrations.utils import get_registration_provider_submissions_url
@@ -34,10 +33,8 @@ def safe_render_notification(notifications, email_task):
email_task.save()
failed_notifications.append(notification.id)
# Mark notifications that failed to render as fake sent
- # Use 1000/12/31 to distinguish itself from another type of fake sent 1000/1/1
+ notification.mark_sent(fake_sent=True)
log_message(f'Error rendering notification, mark as fake sent: [notification_id={notification.id}]')
- notification.sent = datetime(1000, 12, 31)
- notification.save()
continue
rendered_notifications.append(rendered)
@@ -102,19 +99,18 @@ def send_user_email_task(self, user_id, notification_ids, **kwargs):
notifications_qs = notifications_qs.exclude(id__in=failed_notifications)
if not rendered_notifications:
+ email_task.status = 'SUCCESS'
if email_task.error_message:
logger.error(f'Partial success for send_user_email_task for user {user_id}. Task id: {self.request.id}. Errors: {email_task.error_message}')
- email_task.status = 'SUCCESS'
+ email_task.status = 'PARTIAL_SUCCESS'
email_task.save()
return
event_context = {
'notifications': rendered_notifications,
- 'user_fullname': user.fullname,
- 'can_change_preferences': False
}
- NotificationType.Type.USER_DIGEST.instance.emit(
+ NotificationTypeEnum.USER_DIGEST.instance.emit(
user=user,
event_context=event_context,
save=False
@@ -123,10 +119,10 @@ def send_user_email_task(self, user_id, notification_ids, **kwargs):
notifications_qs.update(sent=timezone.now())
email_task.status = 'SUCCESS'
- email_task.save()
-
if email_task.error_message:
logger.error(f'Partial success for send_user_email_task for user {user_id}. Task id: {self.request.id}. Errors: {email_task.error_message}')
+ email_task.status = 'PARTIAL_SUCCESS'
+ email_task.save()
except Exception as e:
retry_count = self.request.retries
@@ -177,32 +173,32 @@ def send_moderator_email_task(self, user_id, notification_ids, provider_content_
notifications_qs = notifications_qs.exclude(id__in=failed_notifications)
if not rendered_notifications:
+ email_task.status = 'SUCCESS'
if email_task.error_message:
logger.error(f'Partial success for send_moderator_email_task for user {user_id}. Task id: {self.request.id}. Errors: {email_task.error_message}')
- email_task.status = 'SUCCESS'
+ email_task.status = 'PARTIAL_SUCCESS'
email_task.save()
return
- ProviderModel = ContentType.objects.get_for_id(provider_content_type_id).model_class()
try:
- provider = ProviderModel.objects.get(id=provider_id)
+ provider = AbstractProvider.objects.get(id=provider_id)
except AbstractProvider.DoesNotExist:
- log_message(f'Provider with id {provider_id} does not exist for model {ProviderModel.name}')
+ log_message(f'Provider with id {provider_id} does not exist for model {provider.type}')
email_task.status = 'FAILURE'
- email_task.error_message = f'Provider with id {provider_id} does not exist for model {ProviderModel.name}'
+ email_task.error_message = f'Provider with id {provider_id} does not exist for model {provider.type}'
email_task.save()
return
except AttributeError as err:
- log_message(f'Error retrieving provider with id {provider_id} for model {ProviderModel.name}: {err}')
+ log_message(f'Error retrieving provider with id {provider_id} for model {provider.type}: {err}')
email_task.status = 'FAILURE'
- email_task.error_message = f'Error retrieving provider with id {provider_id} for model {ProviderModel.name}: {err}'
+ email_task.error_message = f'Error retrieving provider with id {provider_id} for model {provider.type}: {err}'
email_task.save()
return
if provider is None:
- log_message(f'Provider with id {provider_id} does not exist for model {ProviderModel.name}')
+ log_message(f'Provider with id {provider_id} does not exist for model {provider.type}')
email_task.status = 'FAILURE'
- email_task.error_message = f'Provider with id {provider_id} does not exist for model {ProviderModel.name}'
+ email_task.error_message = f'Provider with id {provider_id} does not exist for model {provider.type}'
email_task.save()
return
@@ -211,10 +207,10 @@ def send_moderator_email_task(self, user_id, notification_ids, provider_content_
current_admins = provider.get_group('admin')
if current_admins is None or not current_admins.user_set.filter(id=user.id).exists():
log_message(f"User is not a moderator for provider {provider._id} - notifications will be marked as sent.")
- email_task.status = 'FAILURE'
+ email_task.status = 'AUTO_FIXED'
email_task.error_message = f'User is not a moderator for provider {provider._id}'
email_task.save()
- notifications_qs.update(sent=datetime(1000, 1, 1))
+ notifications_qs.update(sent=timezone.now(), fake_sent=True)
return
additional_context = {}
@@ -230,6 +226,10 @@ def send_moderator_email_task(self, user_id, notification_ids, provider_content_
'logo_url': provider.brand.hero_logo_image,
'top_bar_color': provider.brand.primary_color
}
+ elif logo_url := provider.get_asset_url('favicon'):
+ additional_context = {
+ 'logo_url': logo_url,
+ }
else:
logo = settings.OSF_REGISTRIES_LOGO
elif isinstance(provider, CollectionProvider):
@@ -242,8 +242,12 @@ def send_moderator_email_task(self, user_id, notification_ids, provider_content_
'logo_url': provider.brand.hero_logo_image,
'top_bar_color': provider.brand.primary_color
}
+ elif logo_url := provider.get_asset_url('favicon'):
+ additional_context = {
+ 'logo_url': logo_url,
+ }
else:
- logo = settings.OSF_REGISTRIES_LOGO
+ logo = settings.OSF_LOGO
else:
provider_type = 'preprint'
submissions_url = f'{settings.DOMAIN}preprints/{provider._id}/moderation/submissions'
@@ -254,7 +258,6 @@ def send_moderator_email_task(self, user_id, notification_ids, provider_content_
event_context = {
'notifications': rendered_notifications,
'user_fullname': user.fullname,
- 'can_change_preferences': False,
'notification_settings_url': notification_settings_url,
'reviews_withdrawal_url': withdrawals_url,
'reviews_submissions_url': submissions_url,
@@ -264,7 +267,7 @@ def send_moderator_email_task(self, user_id, notification_ids, provider_content_
**additional_context,
}
- NotificationType.Type.DIGEST_REVIEWS_MODERATORS.instance.emit(
+ NotificationTypeEnum.DIGEST_REVIEWS_MODERATORS.instance.emit(
user=user,
subscribed_object=user,
event_context=event_context,
@@ -274,10 +277,10 @@ def send_moderator_email_task(self, user_id, notification_ids, provider_content_
notifications_qs.update(sent=timezone.now())
email_task.status = 'SUCCESS'
- email_task.save()
-
if email_task.error_message:
logger.error(f'Partial success for send_moderator_email_task for user {user_id}. Task id: {self.request.id}. Errors: {email_task.error_message}')
+ email_task.status = 'PARTIAL_SUCCESS'
+ email_task.save()
except Exception as e:
retry_count = self.request.retries
@@ -369,11 +372,11 @@ def get_moderators_emails(message_freq: str):
cursor.execute(sql,
[
message_freq,
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
- NotificationType.Type.DIGEST_REVIEWS_MODERATORS.value,
- NotificationType.Type.USER_DIGEST.value,
- NotificationType.Type.USER_NO_ADDON.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
+ NotificationTypeEnum.DIGEST_REVIEWS_MODERATORS.value,
+ NotificationTypeEnum.USER_DIGEST.value,
+ NotificationTypeEnum.USER_NO_ADDON.value,
]
)
return itertools.chain.from_iterable(cursor.fetchall())
@@ -411,11 +414,11 @@ def get_users_emails(message_freq):
cursor.execute(sql,
[
message_freq,
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
- NotificationType.Type.DIGEST_REVIEWS_MODERATORS.value,
- NotificationType.Type.USER_DIGEST.value,
- NotificationType.Type.USER_NO_ADDON.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
+ NotificationTypeEnum.DIGEST_REVIEWS_MODERATORS.value,
+ NotificationTypeEnum.USER_DIGEST.value,
+ NotificationTypeEnum.USER_NO_ADDON.value,
]
)
return itertools.chain.from_iterable(cursor.fetchall())
@@ -476,7 +479,7 @@ def send_no_addon_email(self, dry_run=False, **kwargs):
"""
notification_qs = Notification.objects.filter(
sent__isnull=True,
- subscription__notification_type__name=NotificationType.Type.USER_NO_ADDON.value,
+ subscription__notification_type__name=NotificationTypeEnum.USER_NO_ADDON.value,
created__lte=timezone.now() - settings.NO_ADDON_WAIT_TIME
)
for notification in notification_qs:
@@ -490,3 +493,22 @@ def send_no_addon_email(self, dry_run=False, **kwargs):
pass
else:
notification.mark_sent()
+
+
+@celery_app.task(bind=True, name='notifications.tasks.notifications_cleanup_task')
+def notifications_cleanup_task(self, dry_run=False, **kwargs):
+ """Remove old notifications and email tasks from the database."""
+
+ cutoff_date = timezone.now() - settings.NOTIFICATIONS_CLEANUP_AGE
+ old_notifications = Notification.objects.filter(sent__lt=cutoff_date)
+ old_email_tasks = EmailTask.objects.filter(created_at__lt=cutoff_date)
+
+ if dry_run:
+ notifications_count = old_notifications.count()
+ email_tasks_count = old_email_tasks.count()
+ logger.info(f'[Dry Run] Notifications Cleanup Task: {notifications_count} notifications and {email_tasks_count} email tasks would be deleted.')
+ return
+
+ deleted_notifications_count, _ = old_notifications.delete()
+ deleted_email_tasks_count, _ = old_email_tasks.delete()
+ logger.info(f'Notifications Cleanup Task: Deleted {deleted_notifications_count} notifications and {deleted_email_tasks_count} email tasks older than {cutoff_date}.')
diff --git a/osf/admin.py b/osf/admin.py
index 2f5698b2aca..d9fed50b7ff 100644
--- a/osf/admin.py
+++ b/osf/admin.py
@@ -367,7 +367,7 @@ class EmailTaskAdmin(admin.ModelAdmin):
@admin.register(Notification)
class NotificationAdmin(admin.ModelAdmin):
- list_display = ('user', 'notification_type_name', 'sent', 'seen')
+ list_display = ('user', 'notification_type_name', 'sent', 'fake_sent')
list_filter = ('sent',)
search_fields = ('subscription__notification_type__name', 'subscription__user__username')
list_per_page = 50
diff --git a/osf/management/commands/check_crossref_dois.py b/osf/management/commands/check_crossref_dois.py
index 348a92d429a..3d7edbe2753 100644
--- a/osf/management/commands/check_crossref_dois.py
+++ b/osf/management/commands/check_crossref_dois.py
@@ -9,7 +9,7 @@
from framework import sentry
from framework.celery_tasks import app as celery_app
-from osf.models import Guid, Preprint, NotificationType
+from osf.models import Guid, Preprint, NotificationTypeEnum
from website import settings
@@ -123,12 +123,12 @@ def report_stuck_dois(dry_run=True):
if preprints_with_pending_dois:
guids = ', '.join(preprints_with_pending_dois.values_list('guids___id', flat=True))
if not dry_run:
- NotificationType.Type.USER_CROSSREF_DOI_PENDING.instance.emit(
+ NotificationTypeEnum.USER_CROSSREF_DOI_PENDING.instance.emit(
destination_address=settings.OSF_SUPPORT_EMAIL,
event_context={
- 'pending_doi_count': preprints_with_pending_dois.count(),
'time_since_published': time_since_published.days,
'guids': guids,
+ 'pending_doi_count': preprints_with_pending_dois.count(),
}
)
else:
diff --git a/osf/management/commands/deactivate_requested_accounts.py b/osf/management/commands/deactivate_requested_accounts.py
index 8a4eeaf9ad1..6f85296dec2 100644
--- a/osf/management/commands/deactivate_requested_accounts.py
+++ b/osf/management/commands/deactivate_requested_accounts.py
@@ -5,7 +5,7 @@
from framework.celery_tasks import app as celery_app
from website.app import setup_django
setup_django()
-from osf.models import OSFUser, NotificationType
+from osf.models import OSFUser, NotificationTypeEnum
from django.core.management.base import BaseCommand
from website.settings import OSF_SUPPORT_EMAIL
@@ -20,14 +20,13 @@ def deactivate_requested_accounts(dry_run=True):
if user.has_resources:
logger.info(f'OSF support is being emailed about deactivating the account of user {user._id}.')
if not dry_run:
- NotificationType.Type.DESK_REQUEST_DEACTIVATION.instance.emit(
+ NotificationTypeEnum.DESK_REQUEST_DEACTIVATION.instance.emit(
destination_address=OSF_SUPPORT_EMAIL,
user=user,
event_context={
'user__id': user._id,
'user_absolute_url': user.absolute_url,
'user_username': user.username,
- 'can_change_preferences': False,
}
)
else:
@@ -35,12 +34,11 @@ def deactivate_requested_accounts(dry_run=True):
if not dry_run:
user.deactivate_account()
user.is_registered = False
- NotificationType.Type.USER_REQUEST_DEACTIVATION_COMPLETE.instance.emit(
+ NotificationTypeEnum.USER_REQUEST_DEACTIVATION_COMPLETE.instance.emit(
user=user,
event_context={
'user_fullname': user.fullname,
'contact_email': OSF_SUPPORT_EMAIL,
- 'can_change_preferences': False,
}
)
diff --git a/osf/management/commands/find_spammy_files.py b/osf/management/commands/find_spammy_files.py
index 8c7202e21cf..5a8f18cd63a 100644
--- a/osf/management/commands/find_spammy_files.py
+++ b/osf/management/commands/find_spammy_files.py
@@ -8,7 +8,7 @@
from addons.osfstorage.models import OsfStorageFile
from framework.celery_tasks import app
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
logger = logging.getLogger(__name__)
@@ -60,7 +60,7 @@ def find_spammy_files(sniff_r=None, n=None, t=None, to_addrs=None):
'attachment_content': output.getvalue(),
}
for addr in to_addrs:
- NotificationType.Type.USER_SPAM_FILES_DETECTED.instance.emit(
+ NotificationTypeEnum.USER_SPAM_FILES_DETECTED.instance.emit(
destination_address=addr,
event_context=event_context,
email_context=email_context,
diff --git a/osf/management/commands/migrate_funder_ids_to_ror.py b/osf/management/commands/migrate_funder_ids_to_ror.py
new file mode 100644
index 00000000000..64eb1721d6e
--- /dev/null
+++ b/osf/management/commands/migrate_funder_ids_to_ror.py
@@ -0,0 +1,349 @@
+#!/usr/bin/env python3
+"""
+Management command to migrate Crossref Funder IDs to ROR IDs.
+
+This script reads a CSV mapping file and updates all GuidMetadataRecord entries
+that have funding_info with Crossref Funder IDs, converting them to ROR IDs.
+
+Usage:
+ # Dry run (recommended first)
+ python manage.py migrate_funder_ids_to_ror --csv-file /path/to/mapping.csv --dry-run
+
+ # Actual migration
+ python manage.py migrate_funder_ids_to_ror --csv-file /path/to/mapping.csv
+
+CSV Format Expected (tab or comma separated):
+ Funder Name, ror ID, ROR name, Crossref DOI, Funder ID
+ Example:
+ National Science Foundation, https://ror.org/021nxhr62, National Science Foundation, http://dx.doi.org/10.13039/100000001, 100000001
+"""
+import csv
+import logging
+import re
+
+from django.core.management.base import BaseCommand
+from django.db import transaction
+
+from osf.models import GuidMetadataRecord
+
+
+logger = logging.getLogger(__name__)
+
+
+class Command(BaseCommand):
+ help = 'Migrate Crossref Funder IDs to ROR IDs in GuidMetadataRecord.funding_info'
+
+ def add_arguments(self, parser):
+ parser.add_argument(
+ '--csv-file',
+ type=str,
+ required=True,
+ help='Path to the CSV file containing the Crossref to ROR mapping.',
+ )
+ parser.add_argument(
+ '--dry-run',
+ action='store_true',
+ dest='dry_run',
+ help='Run without making any changes to the database.',
+ )
+ parser.add_argument(
+ '--batch-size',
+ type=int,
+ default=1000,
+ help='Number of records to process in each batch (default: 1000).',
+ )
+ parser.add_argument(
+ '--update-funder-name',
+ action='store_true',
+ dest='update_funder_name',
+ help='Also update funder_name to the ROR name from the mapping.',
+ )
+ parser.add_argument(
+ '--skip-reindex',
+ action='store_true',
+ dest='skip_reindex',
+ help='Skip triggering SHARE/DataCite re-indexing after migration. '
+ 'Use this if you plan to run recatalog_metadata separately.',
+ )
+
+ def handle(self, *args, **options):
+ csv_file = options['csv_file']
+ dry_run = options['dry_run']
+ batch_size = options['batch_size']
+ update_funder_name = options['update_funder_name']
+ reindex = not options['skip_reindex']
+
+ if dry_run:
+ self.stdout.write(self.style.WARNING('[DRY RUN] No changes will be made to the database.'))
+
+ if not reindex:
+ self.stdout.write(self.style.WARNING('Re-indexing is disabled. Run recatalog_metadata after migration.'))
+
+ # Load the mapping
+ mapping = self.load_mapping(csv_file)
+ if not mapping:
+ self.stdout.write(self.style.ERROR('No valid mappings found in CSV file.'))
+ return
+
+ self.stdout.write(f'Loaded {len(mapping)} Crossref to ROR mappings.')
+
+ # Find and update records
+ stats = self.migrate_records(mapping, dry_run, batch_size, update_funder_name, reindex)
+
+ # Print summary
+ self.stdout.write('\n' + '=' * 60)
+ self.stdout.write(self.style.SUCCESS('Migration Summary:'))
+ self.stdout.write(f" Records scanned: {stats['scanned']}")
+ self.stdout.write(f" Records updated: {stats['updated']}")
+ self.stdout.write(f" Records re-indexed: {stats['reindexed']}")
+ self.stdout.write(f" Funders migrated: {stats['funders_migrated']}")
+ self.stdout.write(f" Unmapped funders removed: {stats['not_in_mapping']}")
+ self.stdout.write(f" Unique funders not in mapping: {len(stats['unmapped_ids'])}")
+ if stats['errors']:
+ self.stdout.write(self.style.ERROR(f" Errors: {stats['errors']}"))
+
+ if stats['unmapped_ids']:
+ self.stdout.write('\nUnmapped Crossref Funder IDs (not in CSV):')
+ for funder_id in sorted(stats['unmapped_ids'])[:50]: # Show first 50
+ self.stdout.write(f' - {funder_id}')
+ if len(stats['unmapped_ids']) > 50:
+ self.stdout.write(f' ... and {len(stats["unmapped_ids"]) - 50} more')
+
+ def load_mapping(self, csv_file):
+ """Load the Crossref to ROR mapping from CSV file.
+
+ Returns a dict mapping various forms of Crossref ID to ROR info:
+ {
+ '100000001': {'ror_id': 'https://ror.org/021nxhr62', 'ror_name': 'National Science Foundation'},
+ 'http://dx.doi.org/10.13039/100000001': {...},
+ 'https://doi.org/10.13039/100000001': {...},
+ ...
+ }
+ """
+ mapping = {}
+
+ try:
+ with open(csv_file, 'r', encoding='utf-8-sig') as f:
+ # Try to detect delimiter
+ sample = f.read(2048)
+ f.seek(0)
+ if '\t' in sample:
+ delimiter = '\t'
+ else:
+ delimiter = ','
+
+ reader = csv.DictReader(f, delimiter=delimiter)
+
+ # Normalize column names (handle various formats)
+ for row in reader:
+ # Try to find the relevant columns
+ ror_id = None
+ ror_name = None
+ crossref_doi = None
+ funder_id = None
+
+ for key, value in row.items():
+ if not key:
+ continue
+ key_lower = key.lower().strip()
+
+ if 'ror' in key_lower and 'id' in key_lower and 'ror_name' not in key_lower:
+ ror_id = value.strip() if value else None
+ elif 'ror' in key_lower and 'name' in key_lower:
+ ror_name = value.strip() if value else None
+ elif 'crossref' in key_lower and 'doi' in key_lower:
+ crossref_doi = value.strip() if value else None
+ elif key_lower == 'funder id' or key_lower == 'funder_id':
+ funder_id = value.strip() if value else None
+
+ if not ror_id:
+ continue
+
+ ror_info = {
+ 'ror_id': ror_id,
+ 'ror_name': ror_name,
+ }
+
+ # Add mappings for various ID formats
+ if funder_id:
+ mapping[funder_id] = ror_info
+ # Also add with various DOI prefixes
+ mapping[f'http://dx.doi.org/10.13039/{funder_id}'] = ror_info
+ mapping[f'https://doi.org/10.13039/{funder_id}'] = ror_info
+ mapping[f'10.13039/{funder_id}'] = ror_info
+
+ if crossref_doi:
+ mapping[crossref_doi] = ror_info
+ # Normalize the DOI URL
+ if crossref_doi.startswith('http://'):
+ mapping[crossref_doi.replace('http://', 'https://')] = ror_info
+ elif crossref_doi.startswith('https://'):
+ mapping[crossref_doi.replace('https://', 'http://')] = ror_info
+
+ except FileNotFoundError:
+ self.stdout.write(self.style.ERROR(f'CSV file not found: {csv_file}'))
+ return None
+ except Exception as e:
+ self.stdout.write(self.style.ERROR(f'Error reading CSV file: {e}'))
+ return None
+
+ return mapping
+
+ def extract_funder_id(self, identifier):
+ """Extract the numeric funder ID from various identifier formats."""
+ if not identifier:
+ return None
+
+ # Already just a number
+ if re.match(r'^\d+$', identifier):
+ return identifier
+
+ # Extract from DOI URL (e.g., http://dx.doi.org/10.13039/100000001)
+ match = re.search(r'10\.13039/(\d+)', identifier)
+ if match:
+ return match.group(1)
+
+ return identifier
+
+ def migrate_records(self, mapping, dry_run, batch_size, update_funder_name, reindex):
+ """Find and migrate all GuidMetadataRecord entries with Crossref Funder IDs."""
+ stats = {
+ 'scanned': 0,
+ 'updated': 0,
+ 'reindexed': 0,
+ 'funders_migrated': 0,
+ 'not_in_mapping': 0,
+ 'errors': 0,
+ 'unmapped_ids': set(),
+ }
+
+ # Query records that have non-empty funding_info
+ # We need to check if any funder has 'Crossref Funder ID' type
+ queryset = GuidMetadataRecord.objects.exclude(funding_info=[]).exclude(funding_info__isnull=True)
+
+ total_count = queryset.count()
+ self.stdout.write(f'Found {total_count} records with funding_info to scan.')
+
+ processed = 0
+ for record in queryset.iterator(chunk_size=batch_size):
+ stats['scanned'] += 1
+ processed += 1
+
+ if processed % 500 == 0:
+ self.stdout.write(f' Processed {processed}/{total_count} records...')
+
+ try:
+ updated, funder_stats = self.migrate_record(record, mapping, dry_run, update_funder_name)
+ if updated:
+ stats['updated'] += 1
+ if reindex and not dry_run:
+ try:
+ self.reindex_record(record)
+ stats['reindexed'] += 1
+ except Exception as e:
+ logger.error(f'Error re-indexing record {record.guid._id}: {e}')
+ stats['funders_migrated'] += funder_stats['migrated']
+ stats['not_in_mapping'] += funder_stats['not_found']
+ stats['unmapped_ids'].update(funder_stats['unmapped_ids'])
+ except Exception as e:
+ stats['errors'] += 1
+ logger.error(f'Error migrating record {record.guid._id}: {e}')
+
+ return stats
+
+ def migrate_record(self, record, mapping, dry_run, update_funder_name):
+ """Migrate a single GuidMetadataRecord's funding_info.
+
+ Returns (was_updated, funder_stats)
+ """
+ funder_stats = {
+ 'migrated': 0,
+ 'not_found': 0,
+ 'unmapped_ids': set(),
+ }
+
+ if not record.funding_info:
+ return False, funder_stats
+
+ updated_funding_info = []
+ record_modified = False
+
+ for funder in record.funding_info:
+ funder_type = funder.get('funder_identifier_type', '')
+ funder_identifier = funder.get('funder_identifier', '')
+
+ # Only migrate Crossref Funder IDs (includes legacy 'Crossref Funder URI' type)
+ if funder_type not in ('Crossref Funder ID', 'Crossref Funder URI'):
+ updated_funding_info.append(funder)
+ continue
+
+ # Try to find in mapping
+ ror_info = None
+
+ # Try exact match first
+ if funder_identifier in mapping:
+ ror_info = mapping[funder_identifier]
+ else:
+ # Try to extract numeric ID and look up
+ numeric_id = self.extract_funder_id(funder_identifier)
+ if numeric_id and numeric_id in mapping:
+ ror_info = mapping[numeric_id]
+
+ if ror_info:
+ # Create updated funder entry
+ updated_funder = funder.copy()
+ updated_funder['funder_identifier'] = ror_info['ror_id']
+ updated_funder['funder_identifier_type'] = 'ROR'
+
+ if update_funder_name and ror_info.get('ror_name'):
+ updated_funder['funder_name'] = ror_info['ror_name']
+
+ updated_funding_info.append(updated_funder)
+ record_modified = True
+ funder_stats['migrated'] += 1
+
+ logger.info(
+ f'{"[DRY RUN] " if dry_run else ""}'
+ f'Migrating funder in {record.guid._id}: '
+ f'{funder_identifier} -> {ror_info["ror_id"]}'
+ )
+ else:
+ # No mapping found, remove unmapped Crossref funder
+ record_modified = True
+ funder_stats['not_found'] += 1
+ funder_stats['unmapped_ids'].add(funder_identifier)
+
+ logger.warning(
+ f'{"[DRY RUN] " if dry_run else ""}'
+ f'Removing unmapped Crossref Funder ID: {funder_identifier} '
+ f'from record {record.guid._id}'
+ )
+
+ # Warn about duplicate ROR IDs that would result from migration
+ if record_modified:
+ ror_identifiers = [
+ f['funder_identifier']
+ for f in updated_funding_info
+ if f.get('funder_identifier_type') == 'ROR'
+ ]
+ seen = set()
+ duplicates = {rid for rid in ror_identifiers if rid in seen or seen.add(rid)}
+ if duplicates:
+ logger.warning(
+ f'Record {record.guid._id} has duplicate ROR IDs after migration: {duplicates}'
+ )
+
+ if record_modified and not dry_run:
+ with transaction.atomic():
+ record.funding_info = updated_funding_info
+ record.save(update_fields=['funding_info'])
+
+ return record_modified, funder_stats
+
+ def reindex_record(self, record):
+ """Trigger SHARE/ElasticSearch and DataCite re-indexing for the record's referent."""
+ referent = record.guid.referent
+ if hasattr(referent, 'update_search'):
+ referent.update_search()
+ if hasattr(referent, 'request_identifier_update'):
+ referent.request_identifier_update('doi')
diff --git a/osf/management/commands/migrate_funder_names_to_ror.py b/osf/management/commands/migrate_funder_names_to_ror.py
new file mode 100644
index 00000000000..5c8b1e513e6
--- /dev/null
+++ b/osf/management/commands/migrate_funder_names_to_ror.py
@@ -0,0 +1,307 @@
+#!/usr/bin/env python3
+"""
+Management command to migrate ROR funders to use ROR funder names.
+
+This script reads a CSV mapping file and updates all GuidMetadataRecord entries
+that have funding_info with ROR funder IDs, converting them to ROR IDs.
+
+This has similar functionality to migrate_funder_ids_to_ror.py but is useful if
+someone that definitely doesn't have the github id felliott forgot to include
+name migrations when running the prior script. It's also useful for generally
+updating a bunch of ROR funder names.
+
+Usage:
+ # Dry run (recommended first)
+ python manage.py migrate_funder_names_to_ror --csv-file /path/to/mapping.csv --dry-run
+
+ # Actual migration
+ python manage.py migrate_funder_names_to_ror --csv-file /path/to/mapping.csv
+
+CSV Format Expected (tab or comma separated):
+ Funder Name, ror ID, ROR name, Crossref DOI, Funder ID
+ Example:
+ National Science Foundation, https://ror.org/021nxhr62, National Science Foundation, http://dx.doi.org/10.13039/100000001, 100000001
+
+Only the "ror id" and "ror name" columns are used. The others may be omitted.
+
+"""
+import csv
+import logging
+
+from django.core.management.base import BaseCommand
+from django.db import transaction
+
+from osf.models import GuidMetadataRecord
+
+
+logger = logging.getLogger(__name__)
+
+
+class Command(BaseCommand):
+ help = 'Migrate Crossref Funder IDs to ROR IDs in GuidMetadataRecord.funding_info'
+
+ def add_arguments(self, parser):
+ parser.add_argument(
+ '--csv-file',
+ type=str,
+ required=True,
+ help='Path to the CSV file containing the Crossref to ROR mapping.',
+ )
+ parser.add_argument(
+ '--dry-run',
+ action='store_true',
+ dest='dry_run',
+ help='Run without making any changes to the database.',
+ )
+ parser.add_argument(
+ '--batch-size',
+ type=int,
+ default=1000,
+ help='Number of records to process in each batch (default: 1000).',
+ )
+ parser.add_argument(
+ '--skip-reindex',
+ action='store_true',
+ dest='skip_reindex',
+ help='Skip triggering SHARE/DataCite re-indexing after migration. '
+ 'Use this if you plan to run recatalog_metadata separately.',
+ )
+
+ def handle(self, *args, **options):
+ csv_file = options['csv_file']
+ dry_run = options['dry_run']
+ batch_size = options['batch_size']
+ reindex = not options['skip_reindex']
+
+ if dry_run:
+ self.stdout.write(self.style.WARNING('[DRY RUN] No changes will be made to the database.'))
+
+ if not reindex:
+ self.stdout.write(self.style.WARNING('Re-indexing is disabled. Run recatalog_metadata after migration.'))
+
+ # Load the mapping
+ mapping = self.load_mapping(csv_file)
+ if not mapping:
+ self.stdout.write(self.style.ERROR('No valid mappings found in CSV file.'))
+ return
+
+ self.stdout.write(f'Loaded {len(mapping)} ROR id to name mappings.')
+
+ # Find and update records
+ stats = self.migrate_records(mapping, dry_run, batch_size, reindex)
+
+ # Print summary
+ self.stdout.write('\n' + '=' * 60)
+ self.stdout.write(self.style.SUCCESS('Migration Summary:'))
+ self.stdout.write(f" Records scanned: {stats['scanned']}")
+ self.stdout.write(f" Records updated: {stats['updated']}")
+ self.stdout.write(f" Records re-indexed: {stats['reindexed']}")
+ self.stdout.write(f" Funder names updated: {stats['funders_migrated']}")
+ self.stdout.write(f" Unmapped funders removed: {stats['not_in_mapping']}")
+ self.stdout.write(f" Unique funders not in mapping: {len(stats['unmapped_ids'])}")
+ if stats['errors']:
+ self.stdout.write(self.style.ERROR(f" Errors: {stats['errors']}"))
+
+ if stats['unmapped_ids']:
+ self.stdout.write('\nUnmapped ROR Funder IDs (not in CSV):')
+ for funder_id in sorted(stats['unmapped_ids'])[:50]: # Show first 50
+ self.stdout.write(f' - {funder_id}')
+ if len(stats['unmapped_ids']) > 50:
+ self.stdout.write(f' ... and {len(stats["unmapped_ids"]) - 50} more')
+
+ def load_mapping(self, csv_file):
+ """Load the ROR ID to ROR info mapping from CSV file.
+
+ Returns a dict mapping ROR IDs to ROR info:
+ {
+ 'https://ror.org/021nxhr62': {
+ 'ror_id': 'https://ror.org/021nxhr62',
+ 'ror_name': 'National Science Foundation'
+ },
+ ...
+ }
+ """
+ mapping = {}
+
+ try:
+ with open(csv_file, 'r', encoding='utf-8-sig') as f:
+ # Try to detect delimiter
+ sample = f.read(2048)
+ f.seek(0)
+ if '\t' in sample:
+ delimiter = '\t'
+ else:
+ delimiter = ','
+
+ reader = csv.DictReader(f, delimiter=delimiter)
+
+ # Normalize column names (handle various formats)
+ for row in reader:
+ # Try to find the relevant columns
+ ror_id = None
+ ror_name = None
+
+ for key, value in row.items():
+ if not key:
+ continue
+ key_lower = key.lower().strip()
+
+ if 'ror' in key_lower and 'id' in key_lower and 'ror_name' not in key_lower:
+ ror_id = value.strip() if value else None
+ elif 'ror' in key_lower and 'name' in key_lower:
+ ror_name = value.strip() if value else None
+
+ if not ror_id:
+ continue
+
+ ror_info = {
+ 'ror_id': ror_id,
+ 'ror_name': ror_name,
+ }
+
+ # Add mappings for various ID formats
+ mapping[ror_id] = ror_info
+
+ except FileNotFoundError:
+ self.stdout.write(self.style.ERROR(f'CSV file not found: {csv_file}'))
+ return None
+ except Exception as e:
+ self.stdout.write(self.style.ERROR(f'Error reading CSV file: {e}'))
+ return None
+
+ return mapping
+
+ def migrate_records(self, mapping, dry_run, batch_size, reindex):
+ """Find and migrate all GuidMetadataRecord entries with Crossref Funder IDs."""
+ stats = {
+ 'scanned': 0,
+ 'updated': 0,
+ 'reindexed': 0,
+ 'funders_migrated': 0,
+ 'not_in_mapping': 0,
+ 'errors': 0,
+ 'unmapped_ids': set(),
+ }
+
+ # Query records that have non-empty funding_info
+ # We need to check if any funder has 'Crossref Funder ID' type
+ queryset = GuidMetadataRecord.objects.exclude(funding_info=[]).exclude(funding_info__isnull=True)
+
+ total_count = queryset.count()
+ self.stdout.write(f'Found {total_count} records with funding_info to scan.')
+
+ processed = 0
+ for record in queryset.iterator(chunk_size=batch_size):
+ stats['scanned'] += 1
+ processed += 1
+
+ if processed % 500 == 0:
+ self.stdout.write(f' Processed {processed}/{total_count} records...')
+
+ try:
+ updated, funder_stats = self.migrate_record(record, mapping, dry_run)
+ if updated:
+ stats['updated'] += 1
+ if reindex and not dry_run:
+ try:
+ self.reindex_record(record)
+ stats['reindexed'] += 1
+ except Exception as e:
+ logger.error(f'Error re-indexing record {record.guid._id}: {e}')
+ stats['funders_migrated'] += funder_stats['migrated']
+ stats['not_in_mapping'] += funder_stats['not_found']
+ stats['unmapped_ids'].update(funder_stats['unmapped_ids'])
+ except Exception as e:
+ stats['errors'] += 1
+ logger.error(f'Error migrating record {record.guid._id}: {e}')
+
+ return stats
+
+ def migrate_record(self, record, mapping, dry_run):
+ """Migrate a single GuidMetadataRecord's funding_info.
+
+ Returns (was_updated, funder_stats)
+ """
+ funder_stats = {
+ 'migrated': 0,
+ 'not_found': 0,
+ 'unmapped_ids': set(),
+ }
+
+ if not record.funding_info:
+ return False, funder_stats
+
+ updated_funding_info = []
+ record_modified = False
+
+ for funder in record.funding_info:
+ funder_type = funder.get('funder_identifier_type', '')
+ funder_identifier = funder.get('funder_identifier', '')
+
+ # Only update ROR funder records
+ if funder_type != 'ROR':
+ updated_funding_info.append(funder)
+ continue
+
+ # Try to find in mapping
+ ror_info = mapping.get(funder_identifier, None)
+ if ror_info is None:
+ logger.info(
+ f'{"[DRY RUN] " if dry_run else ""}'
+ f'Unrecognized ror id for {record.guid._id}: '
+ f'{funder_identifier}'
+ )
+ updated_funding_info.append(funder)
+ continue
+
+ # Has name changed?
+ if funder.get('funder_name') == ror_info['ror_name']:
+ logger.info(
+ f'{"[DRY RUN] " if dry_run else ""}'
+ f'ROR name unchanged for {record.guid._id}: '
+ f'{funder_identifier} -> {funder.get("funder_name")}'
+ )
+ updated_funding_info.append(funder)
+ continue
+
+ # Create updated funder entry
+ logger.info(
+ f'{"[DRY RUN] " if dry_run else ""}'
+ f'Updating name for {record.guid._id}: '
+ f'id {funder_identifier} from {funder["funder_name"]} to {ror_info["ror_name"]}'
+ )
+ updated_funder = funder.copy()
+ updated_funder['funder_name'] = ror_info['ror_name']
+ updated_funding_info.append(updated_funder)
+ record_modified = True
+ funder_stats['migrated'] += 1
+
+ # Warn about duplicate ROR IDs that would result from migration
+ # THIS SHOULDN'T HAPPEN
+ if record_modified:
+ ror_identifiers = [
+ f['funder_identifier']
+ for f in updated_funding_info
+ if f.get('funder_identifier_type') == 'ROR'
+ ]
+ seen = set()
+ duplicates = {rid for rid in ror_identifiers if rid in seen or seen.add(rid)}
+ if duplicates:
+ logger.warning(
+ f'Record {record.guid._id} has duplicate ROR IDs after migration: {duplicates}'
+ )
+
+ if record_modified and not dry_run:
+ with transaction.atomic():
+ record.funding_info = updated_funding_info
+ record.save(update_fields=['funding_info'])
+
+ return record_modified, funder_stats
+
+ def reindex_record(self, record):
+ """Trigger SHARE/ElasticSearch and DataCite re-indexing for the record's referent."""
+ referent = record.guid.referent
+ if hasattr(referent, 'update_search'):
+ referent.update_search()
+ if hasattr(referent, 'request_identifier_update'):
+ referent.request_identifier_update('doi')
diff --git a/osf/management/commands/migrate_notifications.py b/osf/management/commands/migrate_notifications.py
index 10fd397c09d..dbd95f77cef 100644
--- a/osf/management/commands/migrate_notifications.py
+++ b/osf/management/commands/migrate_notifications.py
@@ -7,7 +7,7 @@
from django.core.management.base import BaseCommand, CommandError
from django.db import transaction, connection
-from osf.models import NotificationType, NotificationSubscription
+from osf.models import NotificationType, NotificationTypeEnum, NotificationSubscription
from osf.models.notifications import NotificationSubscriptionLegacy
from osf.management.commands.populate_notification_types import populate_notification_types
from tqdm import tqdm
@@ -25,13 +25,13 @@
EVENT_NAME_TO_NOTIFICATION_TYPE = {
# Provider notifications
- 'global_reviews': NotificationType.Type.REVIEWS_SUBMISSION_STATUS,
+ 'global_reviews': NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS,
# Node notifications
- 'file_updated': NotificationType.Type.NODE_FILE_UPDATED,
+ 'file_updated': NotificationTypeEnum.NODE_FILE_UPDATED,
# User notifications
- 'global_file_updated': NotificationType.Type.USER_FILE_UPDATED,
+ 'global_file_updated': NotificationTypeEnum.USER_FILE_UPDATED,
}
@@ -152,7 +152,7 @@ def migrate_legacy_notification_subscriptions(
notif_enum = EVENT_NAME_TO_NOTIFICATION_TYPE.get(event_name)
if subscribed_object == legacy.user and event_name == 'global_file_updated':
- notif_enum = NotificationType.Type.USER_FILE_UPDATED
+ notif_enum = NotificationTypeEnum.USER_FILE_UPDATED
if not notif_enum:
skipped += 1
continue
diff --git a/osf/management/commands/remove_duplicate_notification_subscriptions_v2.py b/osf/management/commands/remove_duplicate_notification_subscriptions_v2.py
new file mode 100644
index 00000000000..2c7aec2a2fa
--- /dev/null
+++ b/osf/management/commands/remove_duplicate_notification_subscriptions_v2.py
@@ -0,0 +1,94 @@
+from django.core.management.base import BaseCommand
+from django.db import transaction
+from django.db.models import OuterRef, Exists, Q
+
+from osf.models import NotificationSubscription, NotificationType, NotificationTypeEnum
+
+
+class Command(BaseCommand):
+ help = (
+ 'Remove duplicate NotificationSubscription records, keeping only the highest-id record: '
+ 'Default uniqueness: (user, content_type, object_id, notification_type, is_digest); '
+ )
+
+ def add_arguments(self, parser):
+ parser.add_argument(
+ '--dry',
+ action='store_true',
+ help='Show how many rows would be deleted without deleting anything.',
+ )
+
+ def handle(self, *args, **options):
+
+ self.stdout.write('Finding duplicate NotificationSubscription records…')
+ digest_type_names = {
+ # User types
+ NotificationTypeEnum.USER_NO_ADDON.value,
+ # File types
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.FILE_UPDATED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
+ NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ NotificationTypeEnum.USER_FILE_UPDATED.value,
+ # Review types
+ NotificationTypeEnum.COLLECTION_SUBMISSION_SUBMITTED.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
+ NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.value,
+ }
+
+ digest_type_ids = NotificationType.objects.filter(
+ name__in=digest_type_names
+ ).values_list('id', flat=True)
+
+ invalid_non_digest = NotificationSubscription.objects.filter(
+ notification_type_id__in=digest_type_ids,
+ _is_digest=False,
+ )
+ invalid_non_digest_count = invalid_non_digest.count()
+
+ invalid_digest = NotificationSubscription.objects.filter(
+ ~Q(notification_type_id__in=digest_type_ids),
+ _is_digest=True,
+ )
+ invalid_digest_count = invalid_digest.count()
+
+ if not options['dry']:
+ invalid_non_digest.update(_is_digest=True)
+ invalid_digest.update(_is_digest=False)
+
+ to_remove = NotificationSubscription.objects.filter(
+ Exists(
+ NotificationSubscription.objects.filter(
+ user_id=OuterRef('user_id'),
+ content_type_id=OuterRef('content_type_id'),
+ object_id=OuterRef('object_id'),
+ notification_type_id=OuterRef('notification_type_id'),
+ _is_digest=OuterRef('_is_digest'),
+ id__gt=OuterRef('id'), # keep most recent record
+ )
+ )
+ )
+
+ count = to_remove.count()
+ self.stdout.write(f"Duplicates to remove: {count}")
+ self.stdout.write(f"Invalid non-digest records: {invalid_non_digest_count}")
+ self.stdout.write(f"Invalid digest records: {invalid_digest_count}")
+
+ if count == 0 and invalid_non_digest_count == 0 and invalid_digest_count == 0:
+ self.stdout.write(self.style.SUCCESS('No duplicates or invalid records found.'))
+ return
+
+ if options['dry']:
+ self.stdout.write(self.style.WARNING('Dry run enabled — no records were deleted.'))
+ return
+
+ with transaction.atomic():
+ deleted, _ = to_remove.delete()
+ self.stdout.write(self.style.SUCCESS(f"Successfully removed {deleted} duplicate records."))
+ self.stdout.write(self.style.SUCCESS(f"Successfully updated {invalid_non_digest_count} non-digest records."))
+ self.stdout.write(self.style.SUCCESS(f"Successfully updated {invalid_digest_count} digest records."))
diff --git a/osf/management/commands/send_storage_exceeded_announcement.py b/osf/management/commands/send_storage_exceeded_announcement.py
index 8c4a687f3ce..cc84414ed4d 100644
--- a/osf/management/commands/send_storage_exceeded_announcement.py
+++ b/osf/management/commands/send_storage_exceeded_announcement.py
@@ -4,7 +4,7 @@
from django.core.management.base import BaseCommand
-from osf.models import Node, OSFUser, NotificationType
+from osf.models import Node, OSFUser, NotificationType, NotificationTypeEnum
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
@@ -40,13 +40,12 @@ def main(json_file, dry=False):
if not dry:
try:
NotificationType.objects.get(
- name=NotificationType.Type.USER_STORAGE_CAP_EXCEEDED_ANNOUNCEMENT
+ name=NotificationTypeEnum.USER_STORAGE_CAP_EXCEEDED_ANNOUNCEMENT
).emit(
user=user,
event_context={
'public_nodes': public_nodes,
'private_nodes': private_nodes,
- 'can_change_preferences': False,
}
)
except Exception:
diff --git a/osf/metadata/osf_gathering.py b/osf/metadata/osf_gathering.py
index f1da7e7e39d..240e5c96561 100644
--- a/osf/metadata/osf_gathering.py
+++ b/osf/metadata/osf_gathering.py
@@ -6,6 +6,7 @@
from django.contrib.contenttypes.models import ContentType
from django import db
+from mimetypes import MimeTypes
import rdflib
from api.caching.tasks import get_storage_usage_total
@@ -44,6 +45,8 @@
logger = logging.getLogger(__name__)
+mime = MimeTypes()
+
##### BEGIN "public" api #####
@@ -373,7 +376,7 @@ def osf_iri(guid_or_model):
return OSFIO[guid._id]
-def osfguid_from_iri(iri):
+def osfguid_from_iri(iri: str) -> str:
if iri.startswith(OSFIO):
return without_namespace(iri, OSFIO)
raise ValueError(f'expected iri starting with "{OSFIO}" (got "{iri}")')
@@ -704,6 +707,16 @@ def gather_files(focus):
yield (DCTERMS.requires, file_focus)
+@gather.er(DCAT.mediaType)
+def gather_file_mediatype(focus):
+ (mime_type, _) = mime.guess_type(focus.dbmodel.name)
+ yield (DCAT.mediaType, (
+ 'application/octet-stream'
+ if mime_type is None
+ else mime_type
+ ))
+
+
@gather.er(DCTERMS.hasPart, DCTERMS.isPartOf)
def gather_parts(focus):
if isinstance(focus.dbmodel, osfdb.AbstractNode):
diff --git a/osf/metadata/rdfutils.py b/osf/metadata/rdfutils.py
index d2596ad344e..7528bb390a3 100644
--- a/osf/metadata/rdfutils.py
+++ b/osf/metadata/rdfutils.py
@@ -26,7 +26,7 @@
PROV = rdflib.Namespace('http://www.w3.org/ns/prov#') # "provenance"
# non-standard namespace for datacite terms (resolves to datacite docs)
DATACITE = rdflib.Namespace('https://schema.datacite.org/meta/kernel-4/#')
-
+SCHEMA = rdflib.Namespace('https://schema.org/')
# namespace prefixes that will be shortened by default
# when serialized, instead of displaying the full iri
@@ -43,6 +43,49 @@
}
+DATACITE_SCHEMA_RESOURCE_TYPE_GENERAL_MAPPING = {
+ DATACITE.Audiovisual: SCHEMA.MediaObject,
+ DATACITE.Book: SCHEMA.Book,
+ DATACITE.BookChapter: SCHEMA.Chapter,
+ DATACITE.Collection: SCHEMA.Collection,
+ DATACITE.ComputationalNotebook: SCHEMA.SoftwareSourceCode,
+ DATACITE.ConferencePaper: SCHEMA.Article,
+ DATACITE.ConferenceProceeding: SCHEMA.Periodical,
+ DATACITE.DataPaper: SCHEMA.Article,
+ DATACITE.Dataset: SCHEMA.Dataset,
+ DATACITE.Dissertation: SCHEMA.Thesis,
+ DATACITE.Event: SCHEMA.Event,
+ DATACITE.Image: SCHEMA.ImageObject,
+ DATACITE.InteractiveResource: SCHEMA.CreativeWork,
+ DATACITE.Journal: SCHEMA.Periodical,
+ DATACITE.JournalArticle: SCHEMA.ScholarlyArticle,
+ DATACITE.Model: SCHEMA.CreativeWork,
+ DATACITE.OutputManagementPlan: SCHEMA.HowTo,
+ DATACITE.PeerReview: SCHEMA.Review,
+ DATACITE.PhysicalObject: SCHEMA.Thing,
+ DATACITE.Preprint: SCHEMA.ScholarlyArticle,
+ DATACITE.Report: SCHEMA.Report,
+ DATACITE.Service: SCHEMA.Service,
+ DATACITE.Software: SCHEMA.SoftwareSourceCode,
+ DATACITE.Sound: SCHEMA.AudioObject,
+ DATACITE.Standard: SCHEMA.CreativeWork,
+ DATACITE.Text: SCHEMA.Text,
+ DATACITE.Workflow: SCHEMA.HowTo,
+ DATACITE.Other: SCHEMA.CreativeWork,
+ DATACITE.Instrument: SCHEMA.MeasurementMethodEnum,
+ DATACITE.StudyRegistration: SCHEMA.Text,
+ OSF.Project: SCHEMA.CreativeWork,
+ OSF.Preprint: SCHEMA.ScholarlyArticle,
+ OSF.Registration: SCHEMA.Text,
+ OSF.File: SCHEMA.DigitalDocument,
+ OSF.ProjectComponent: SCHEMA.CreativeWork,
+ OSF.RegistrationComponent: SCHEMA.Text,
+}
+
+
+DEFAULT_SCHEMADOTORG_RESOURCE_TYPE = SCHEMA.CreativeWork
+
+
def contextualized_graph(graph=None) -> rdflib.Graph:
'''bind default namespace prefixes to a new (or given) rdf graph
'''
@@ -147,3 +190,6 @@ def smells_like_iri(maybe_iri: str) -> bool:
isinstance(maybe_iri, str)
and '://' in maybe_iri
)
+
+def map_resource_type_general_datacite_to_scheme(_type_iri: rdflib.URIRef, resource_rdftype: rdflib.URIRef) -> str:
+ return DATACITE_SCHEMA_RESOURCE_TYPE_GENERAL_MAPPING.get(_type_iri) or DATACITE_SCHEMA_RESOURCE_TYPE_GENERAL_MAPPING.get(resource_rdftype, DEFAULT_SCHEMADOTORG_RESOURCE_TYPE)
diff --git a/osf/metadata/schemas/datacite.json b/osf/metadata/schemas/datacite.json
index 650598b8ee4..555c9e56e9a 100644
--- a/osf/metadata/schemas/datacite.json
+++ b/osf/metadata/schemas/datacite.json
@@ -470,8 +470,12 @@
"ISNI",
"GRID",
"Crossref Funder ID",
+ "ROR",
"Other"
]
+ },
+ "schemeURI": {
+ "$ref": "#/definitions/uri"
}
},
"additionalProperties": false,
diff --git a/osf/metadata/serializers/__init__.py b/osf/metadata/serializers/__init__.py
index 0a2bf995e11..6dc44b87c93 100644
--- a/osf/metadata/serializers/__init__.py
+++ b/osf/metadata/serializers/__init__.py
@@ -9,6 +9,7 @@
from .datacite import DataciteJsonMetadataSerializer, DataciteXmlMetadataSerializer
from .google_dataset_json_ld import GoogleDatasetJsonLdSerializer
from .turtle import TurtleMetadataSerializer
+from .linkset import SignpostLinkset, SignpostLinksetJSON
METADATA_SERIALIZER_REGISTRY = {
@@ -16,6 +17,8 @@
'datacite-json': DataciteJsonMetadataSerializer,
'datacite-xml': DataciteXmlMetadataSerializer,
'google-dataset-json-ld': GoogleDatasetJsonLdSerializer,
+ 'linkset': SignpostLinkset,
+ 'linkset-json': SignpostLinksetJSON
}
diff --git a/osf/metadata/serializers/datacite/datacite_tree_walker.py b/osf/metadata/serializers/datacite/datacite_tree_walker.py
index 5f0a283d450..950ac3b50dd 100644
--- a/osf/metadata/serializers/datacite/datacite_tree_walker.py
+++ b/osf/metadata/serializers/datacite/datacite_tree_walker.py
@@ -195,12 +195,12 @@ def _identifier_type_and_value(self, identifier: str):
return ('URL', identifier)
logger.warning('skipping non-IRI-shaped identifier "%s"', identifier)
- def _funder_identifier_type(self, identifier: str):
+ def _funder_identifier_type_and_scheme(self, identifier: str):
if identifier.startswith(DxDOI) or identifier.startswith(DOI):
- return 'Crossref Funder ID'
+ return ('Crossref Funder ID', 'https://www.crossref.org/services/funder-registry/')
if identifier.startswith(ROR):
- return 'ROR'
- return 'Other'
+ return ('ROR', str(ROR))
+ return ('Other', '')
def _get_name_type(self, agent_iri):
if (agent_iri, RDF.type, FOAF.Person) in self.basket:
@@ -312,13 +312,15 @@ def _funding_reference(self, fundrefs_el, funder, funding_award=None):
_fundref_el = self.visit(fundrefs_el, 'fundingReference')
self.visit(_fundref_el, 'funderName', text=next(self.basket[funder:FOAF.name], ''))
_funder_identifier = next(self.basket[funder:DCTERMS.identifier], '')
+ _funder_id_type, _funder_scheme_uri = self._funder_identifier_type_and_scheme(_funder_identifier)
+ _funder_id_attrib = {'funderIdentifierType': _funder_id_type}
+ if _funder_scheme_uri:
+ _funder_id_attrib['schemeURI'] = _funder_scheme_uri
self.visit(
_fundref_el,
'funderIdentifier',
text=_funder_identifier,
- attrib={
- 'funderIdentifierType': self._funder_identifier_type(_funder_identifier),
- },
+ attrib=_funder_id_attrib,
)
if funding_award is not None:
self.visit(
diff --git a/osf/metadata/serializers/linkset.py b/osf/metadata/serializers/linkset.py
new file mode 100644
index 00000000000..f83dad00ebd
--- /dev/null
+++ b/osf/metadata/serializers/linkset.py
@@ -0,0 +1,153 @@
+"""osf.metadata.serializers.signpost_linkset: FAIR signposting with osf metadata
+FAIR signposting: https://signposting.org/FAIR/
+definition of linkset mediatypes: https://www.rfc-editor.org/rfc/rfc9264.html
+"""
+from __future__ import annotations
+import abc
+from collections.abc import (
+ Iterable,
+ Iterator
+)
+from collections import defaultdict
+import dataclasses
+import json
+from urllib.parse import urljoin, urlsplit, urlencode, urlunsplit
+
+import rdflib
+
+from ._base import MetadataSerializer
+from osf.metadata.osf_gathering import osfguid_from_iri
+from osf.metadata.rdfutils import (DOI, DATACITE, DCTERMS, OWL, RDF, OSF, DCAT, SCHEMA, DATACITE_SCHEMA_RESOURCE_TYPE_GENERAL_MAPPING, map_resource_type_general_datacite_to_scheme)
+from website.settings import DOMAIN
+from website.util import web_url_for
+
+
+@dataclasses.dataclass
+class SignpostLink:
+ anchor_uri: str
+ relation: str
+ target_uri: str
+ target_attrs: Iterable[tuple[str, str]] = ()
+
+
+class BaseSignpostLinkset(MetadataSerializer, abc.ABC):
+ def _each_link(self) -> Iterator[SignpostLink]:
+ focus_iri = self.basket.focus.iri
+ resource_rdftype = self.basket.focus.rdftype
+ if resource_rdftype == OSF.File:
+ # collection (file's containing obj)
+ for _collection_uri in self.basket[OSF.isContainedBy]:
+ yield SignpostLink(focus_iri, 'collection', str(_collection_uri))
+
+ # author
+ for _creator_iri in self.basket[DCTERMS.creator]:
+ yield SignpostLink(focus_iri, 'author', str(_creator_iri))
+
+ # type
+ if resource_rdftype == OSF.File:
+ parent_types = set(self.basket[OSF.isContainedBy / (DCTERMS.type | RDF.type)])
+ # get either datacite or osf type
+ _type_iris = list(self.basket[DCTERMS.type]) or list(self.basket[RDF.type])
+ for _type_iri in _type_iris:
+ # check the type differs from parent project / registry / preprint
+ if _type_iri not in parent_types:
+ schema_type = map_resource_type_general_datacite_to_scheme(_type_iri, resource_rdftype)
+ yield SignpostLink(focus_iri, 'type', schema_type)
+ else:
+ # get either datacite or osf type
+ _type_iris = list(self.basket[DCTERMS.type]) or list(self.basket[RDF.type])
+ for _type_iri in _type_iris:
+ if isinstance(_type_iri, rdflib.URIRef) and _type_iri.startswith(DATACITE):
+ schema_type = map_resource_type_general_datacite_to_scheme(_type_iri, resource_rdftype)
+ yield SignpostLink(focus_iri, 'type', schema_type)
+ else:
+ schema_type = DATACITE_SCHEMA_RESOURCE_TYPE_GENERAL_MAPPING.get(resource_rdftype)
+ yield SignpostLink(focus_iri, 'type', schema_type)
+ yield SignpostLink(focus_iri, 'type', SCHEMA.AboutPage)
+
+ # cite-as
+ yield SignpostLink(focus_iri, 'cite-as', next((
+ _sameas_iri
+ for _sameas_iri in self.basket[OWL.sameAs]
+ if _sameas_iri.startswith(DOI)
+ ), focus_iri))
+
+ base_metadata_url = urljoin(DOMAIN, web_url_for(
+ 'metadata_download', # name of a view function mapped in website/routes.py
+ guid=osfguid_from_iri(self.basket.focus.iri),
+ ))
+ split_base_metadata_url = urlsplit(base_metadata_url)
+
+ from osf.metadata.serializers import METADATA_SERIALIZER_REGISTRY
+ # describedby
+ for _format_key, _serializer in METADATA_SERIALIZER_REGISTRY.items():
+ _metadata_url = urlunsplit(split_base_metadata_url._replace(
+ query=urlencode({'format': _format_key}),
+ ))
+ yield SignpostLink(
+ focus_iri,
+ 'describedby',
+ _metadata_url,
+ [('type', _serializer.mediatype)]
+ )
+
+ # license
+ for _license_uri in self.basket[DCTERMS.rights]:
+ if not isinstance(_license_uri, rdflib.BNode):
+ yield SignpostLink(focus_iri, 'license', str(_license_uri))
+
+ # item
+ for _file_iri in self.basket[OSF.contains]:
+ for mime_type in self.basket[_file_iri:DCAT.mediaType]:
+ yield SignpostLink(focus_iri, 'item', str(_file_iri), [('type', mime_type)])
+
+
+class SignpostLinkset(BaseSignpostLinkset):
+ mediatype = 'application/linkset'
+
+ def filename_for_itemid(self, itemid: str):
+ return f'{itemid}-metadata.linkset'
+
+ def serialize(self) -> str | bytes:
+ """serialize a linkset for FAIR signposting
+ see example https://www.rfc-editor.org/rfc/rfc9264.html#section-7.1
+ FAIR signposting: https://signposting.org/FAIR/
+ """
+ result = ',\n'.join(self._serialize_link(link) for link in self._each_link())
+ return '{}\n'.format(result)
+
+ def _serialize_link(self, link: SignpostLink) -> str:
+ segments = [
+ f'<{link.target_uri}>',
+ f'rel="{link.relation}"',
+ f'anchor="{link.anchor_uri}"'
+ ]
+ for key, value in link.target_attrs:
+ segments.append(f'{key}="{value}"')
+ return ' ; '.join(segments)
+
+class SignpostLinksetJSON(BaseSignpostLinkset):
+ mediatype = 'application/linkset+json'
+
+ def filename_for_itemid(self, itemid: str):
+ return f'{itemid}-metadata.linkset.json'
+
+ def serialize(self) -> str | bytes:
+ """serialize linkset json
+ definition: https://www.rfc-editor.org/rfc/rfc9264.html#section-4.2
+ example: https://www.rfc-editor.org/rfc/rfc9264.html#section-7.2
+ """
+ grouped_links = defaultdict(lambda: defaultdict(list))
+
+ for link in self._each_link():
+ link_entry = {'href': link.target_uri}
+ link_entry.update(link.target_attrs)
+ grouped_links[link.anchor_uri][link.relation].append(link_entry)
+
+ linkset = []
+ for anchor, relations in grouped_links.items():
+ anchor_entry = {'anchor': anchor}
+ anchor_entry.update(relations)
+ linkset.append(anchor_entry)
+
+ return json.dumps({'linkset': linkset}, indent=2)
diff --git a/osf/migrations/0036_remove_duplicate_notification_subscriptions_v2.py b/osf/migrations/0036_remove_duplicate_notification_subscriptions_v2.py
new file mode 100644
index 00000000000..d4f308fedd8
--- /dev/null
+++ b/osf/migrations/0036_remove_duplicate_notification_subscriptions_v2.py
@@ -0,0 +1,27 @@
+# Generated by Django 4.2.17 on 2026-01-27 21:03
+
+from django.db import migrations
+
+from django.core.management import call_command
+
+
+def run_deduplication_command(apps, schema_editor):
+ call_command('remove_duplicate_notification_subscriptions_v2')
+
+
+def reverse(apps, schema_editor):
+ """
+ This is a no-op since we can't restore deleted records.
+ """
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('contenttypes', '0002_remove_content_type_name'),
+ ('osf', '0035_merge_20251215_1451'),
+ ]
+
+ operations = [
+ migrations.RunPython(run_deduplication_command, reverse),
+ ]
diff --git a/osf/migrations/0037_notification_refactor_post_release.py b/osf/migrations/0037_notification_refactor_post_release.py
new file mode 100644
index 00000000000..67ffafb600c
--- /dev/null
+++ b/osf/migrations/0037_notification_refactor_post_release.py
@@ -0,0 +1,37 @@
+# Generated by Django 4.2.17 on 2026-03-03 11:29
+
+from django.db import migrations, models
+import osf.utils.fields
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('osf', '0036_remove_duplicate_notification_subscriptions_v2'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='notification',
+ name='seen',
+ ),
+ migrations.AddField(
+ model_name='notification',
+ name='fake_sent',
+ field=models.BooleanField(default=False),
+ ),
+ migrations.AddField(
+ model_name='osfuser',
+ name='no_login_email_last_sent',
+ field=osf.utils.fields.NonNaiveDateTimeField(blank=True, null=True),
+ ),
+ migrations.AlterField(
+ model_name='emailtask',
+ name='status',
+ field=models.CharField(choices=[('PENDING', 'Pending'), ('NO_USER_FOUND', 'No User Found'), ('USER_DISABLED', 'User Disabled'), ('STARTED', 'Started'), ('SUCCESS', 'Success'), ('FAILURE', 'Failure'), ('RETRY', 'Retry'), ('PARTIAL_SUCCESS', 'Partial Success'), ('AUTO_FIXED', 'Auto Fixed')], default='PENDING', max_length=20),
+ ),
+ migrations.AlterUniqueTogether(
+ name='notificationsubscription',
+ unique_together={('notification_type', 'user', 'content_type', 'object_id', '_is_digest')},
+ ),
+ ]
diff --git a/osf/models/__init__.py b/osf/models/__init__.py
index ccf0544f777..7f334a357cc 100644
--- a/osf/models/__init__.py
+++ b/osf/models/__init__.py
@@ -65,7 +65,7 @@
from .notable_domain import NotableDomain, DomainReference
from .notifications import NotificationSubscriptionLegacy
from .notification_subscription import NotificationSubscription
-from .notification_type import NotificationType
+from .notification_type import NotificationType, NotificationTypeEnum
from .notification import Notification
from .oauth import (
diff --git a/osf/models/collection_submission.py b/osf/models/collection_submission.py
index 1e646745dc4..f2de5ba6610 100644
--- a/osf/models/collection_submission.py
+++ b/osf/models/collection_submission.py
@@ -16,7 +16,7 @@
from website import settings
from osf.utils.machines import CollectionSubmissionMachine
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from django.db.models.signals import post_save
from django.dispatch import receiver
@@ -103,7 +103,7 @@ def _notify_contributors_pending(self, event_data):
assert str(e) == f'No unclaimed record for user {contributor._id} on node {self.guid.referent._id}'
claim_url = None
- NotificationType.Type.COLLECTION_SUBMISSION_SUBMITTED.instance.emit(
+ NotificationTypeEnum.COLLECTION_SUBMISSION_SUBMITTED.instance.emit(
is_digest=True,
user=contributor,
subscribed_object=self,
@@ -135,22 +135,23 @@ def _notify_contributors_pending(self, event_data):
def _notify_moderators_pending(self, event_data):
user = event_data.kwargs.get('user', None)
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.instance.emit(
+ logo_context = {}
+ if self.collection.provider and not self.collection.provider.is_default:
+ logo_context['logo_url'] = self.collection.provider.get_asset_url('favicon')
+ else:
+ logo_context['logo'] = settings.OSF_PREPRINTS_LOGO
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.instance.emit(
user=user,
subscribed_object=self.collection.provider,
event_context={
- 'provider_id': self.collection.provider.id,
- 'submitter_fullname': self.creator.fullname,
'requester_fullname': event_data.kwargs.get('user').fullname,
'requester_contributor_names': ''.join(self.guid.referent.contributors.values_list('fullname', flat=True)),
'localized_timestamp': str(timezone.now()),
'message': f'submitted "{self.guid.referent.title}".',
'reviews_submission_url': f'{DOMAIN}reviews/registries/{self.guid.referent._id}/{self.guid.referent._id}',
'is_request_email': False,
- 'is_initiator': self.creator == user,
'profile_image_url': user.profile_image_url(),
- 'logo': self.collection.provider._id if
- self.collection.provider and not self.collection.provider.is_default else settings.OSF_PREPRINTS_LOGO,
+ **logo_context,
},
is_digest=True,
)
@@ -166,8 +167,13 @@ def _validate_accept(self, event_data):
def _notify_accepted(self, event_data):
if self.collection.provider:
+ logo_context = {}
+ if not self.collection.provider.is_default:
+ logo_context['logo_url'] = self.collection.provider.get_asset_url('favicon')
+ else:
+ logo_context['logo'] = settings.OSF_PREPRINTS_LOGO
for contributor in self.guid.referent.contributors:
- NotificationType.Type.COLLECTION_SUBMISSION_ACCEPTED.instance.emit(
+ NotificationTypeEnum.COLLECTION_SUBMISSION_ACCEPTED.instance.emit(
user=contributor,
subscribed_object=self,
event_context={
@@ -191,8 +197,7 @@ def _notify_accepted(self, event_data):
'domain': settings.DOMAIN,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
'is_initiator': self.creator == contributor,
- 'logo': self.collection.provider._id if
- self.collection.provider and not self.collection.provider.is_default else settings.OSF_PREPRINTS_LOGO,
+ **logo_context,
},
)
@@ -210,8 +215,13 @@ def _validate_reject(self, event_data):
raise PermissionsError(f'{user} must have moderator permissions.')
def _notify_moderated_rejected(self, event_data):
+ logo_context = {}
+ if self.collection.provider and not self.collection.provider.is_default:
+ logo_context['logo_url'] = self.collection.provider.get_asset_url('favicon')
+ else:
+ logo_context['logo'] = settings.OSF_PREPRINTS_LOGO
for contributor in self.guid.referent.contributors:
- NotificationType.Type.COLLECTION_SUBMISSION_REJECTED.instance.emit(
+ NotificationTypeEnum.COLLECTION_SUBMISSION_REJECTED.instance.emit(
user=contributor,
subscribed_object=self,
event_context={
@@ -224,7 +234,7 @@ def _notify_moderated_rejected(self, event_data):
'collection_title': self.collection.title,
'collection_provider_name': self.collection.provider.name,
'collections_link': DOMAIN + 'collections/' + self.collection.provider._id,
- 'node_absolute_url': self.guid.referent.get_absolute_url(),
+ 'node_absolute_url': self.guid.referent.absolute_url,
'profile_image_url': contributor.profile_image_url(),
'message': f'submission of "{self.collection.title} was rejected',
'node_title': self.guid.referent.title,
@@ -232,8 +242,7 @@ def _notify_moderated_rejected(self, event_data):
'reviews_submission_url': f'{DOMAIN}reviews/registries/{self.guid.referent._id}/{self.guid.referent._id}',
'rejection_justification': event_data.kwargs.get('comment'),
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
- 'logo': self.collection.provider._id if
- self.collection.provider and not self.collection.provider.is_default else settings.OSF_PREPRINTS_LOGO,
+ **logo_context,
},
)
@@ -261,10 +270,15 @@ def _notify_removed(self, event_data):
is_moderator = user.has_perm('withdraw_submissions', self.collection.provider)
is_admin = self.guid.referent.has_permission(user, ADMIN)
node = self.guid.referent
+ logo_context = {}
+ if self.collection.provider and not self.collection.provider.is_default:
+ logo_context['logo_url'] = self.collection.provider.get_asset_url('favicon')
+ else:
+ logo_context['logo'] = settings.OSF_PREPRINTS_LOGO
event_context_base = {
'remover_fullname': user.fullname,
- 'remover_absolute_url': user.get_absolute_url(),
+ 'remover_absolute_url': user.absolute_url if user else None,
'requester_fullname': user.fullname,
'collections_link': DOMAIN + 'collections/' + self.collection.provider._id if self.collection.provider else None,
'collection_id': self.collection.id,
@@ -277,14 +291,13 @@ def _notify_removed(self, event_data):
'profile_image_url': user.profile_image_url(),
'domain': settings.DOMAIN,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
- 'logo': self.collection.provider._id if
- self.collection.provider and not self.collection.provider.is_default else settings.OSF_PREPRINTS_LOGO,
+ **logo_context,
}
if removed_due_to_privacy and self.collection.provider:
if self.is_moderated:
for moderator in self.collection.moderators:
- NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_PRIVATE.instance.emit(
+ NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_PRIVATE.instance.emit(
user=moderator,
event_context={
**event_context_base,
@@ -293,7 +306,7 @@ def _notify_removed(self, event_data):
},
)
for contributor in node.contributors.all():
- NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_PRIVATE.instance.emit(
+ NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_PRIVATE.instance.emit(
user=contributor,
event_context={
**event_context_base,
@@ -303,50 +316,34 @@ def _notify_removed(self, event_data):
)
elif is_moderator and self.collection.provider:
for contributor in node.contributors.all():
- NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_MODERATOR.instance.emit(
+ NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_MODERATOR.instance.emit(
user=contributor,
event_context={
**event_context_base,
'requester_contributor_names': ''.join(
self.guid.referent.contributors.values_list('fullname', flat=True)),
-
'is_admin': node.has_permission(contributor, ADMIN),
'rejection_justification': event_data.kwargs.get('comment'),
- 'collections_title': self.collection.title,
'collection_provider_name': self.collection.provider.name,
'collection_provider__id': self.collection.provider._id,
- 'remover_absolute_url': user.get_absolute_url() if user is not None else None,
'node_absolute_url': node.absolute_url,
'collection_provider': self.collection.provider.name,
'collections_link': DOMAIN + 'collections/' + self.collection.provider._id,
'user_fullname': contributor.fullname,
- 'is_request_email': False,
- 'message': '',
- 'localized_timestamp': str(timezone.now()),
- 'reviews_submission_url': f'{DOMAIN}reviews/registries/{self.guid.referent._id}/{self.guid.referent._id}',
},
)
elif is_admin and self.collection.provider:
for contributor in node.contributors.all():
- NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN.instance.emit(
+ NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN.instance.emit(
user=contributor,
event_context={
**event_context_base,
- 'requester_contributor_names': ''.join(
- self.guid.referent.contributors.values_list('fullname', flat=True)),
- 'localized_timestamp': str(timezone.now()),
'user_fullname': contributor.fullname,
- 'collections_title': self.collection.title,
'collection_provider_name': self.collection.provider.name,
- 'collection_provider__id': self.collection.provider._id,
'collection_provider': self.collection.provider.name,
'collections_link': DOMAIN + 'collections/' + self.collection.provider._id,
- 'node_absolute_url': node.get_absolute_url(),
- 'is_request_email': False,
- 'message': '',
+ 'node_absolute_url': node.absolute_url,
'is_admin': node.has_permission(contributor, ADMIN),
- 'reviews_submission_url': f'{DOMAIN}reviews/registries/{self.guid.referent._id}/{self.guid.referent._id}',
-
},
)
@@ -388,33 +385,21 @@ def _notify_cancel(self, event_data):
collection_provider_name = self.collection.title
for contributor in node.contributors.all():
- NotificationType.Type.COLLECTION_SUBMISSION_CANCEL.instance.emit(
+ NotificationTypeEnum.COLLECTION_SUBMISSION_CANCEL.instance.emit(
user=contributor,
subscribed_object=self.collection,
event_context={
- 'requester_contributor_names': ''.join(
- node.contributors.values_list('fullname', flat=True)),
- 'profile_image_url': user.profile_image_url(),
'user_fullname': contributor.fullname,
- 'requester_fullname': self.creator.fullname,
'is_admin': node.has_permission(contributor, ADMIN),
'node_title': node.title,
- 'node_absolute_url': node.get_absolute_url(),
+ 'node_absolute_url': node.absolute_url,
'remover_fullname': user.fullname if user else '',
- 'remover_absolute_url': user.get_absolute_url() if user else '',
- 'localized_timestamp': str(timezone.now()),
+ 'remover_absolute_url': user.absolute_url if user else '',
'collections_link': collections_link,
- 'collection_title': self.collection.title,
'collection_provider_name': collection_provider_name,
- 'node_absolute_url"': node.get_absolute_url(),
'collection_provider': collection_provider_name,
'domain': settings.DOMAIN,
- 'is_request_email': False,
- 'message': '',
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
- 'reviews_submission_url': f'{DOMAIN}reviews/registries/{self.guid.referent._id}/{self.guid.referent._id}',
- 'logo': self.collection.provider._id if
- self.collection.provider and not self.collection.provider.is_default else settings.OSF_PREPRINTS_LOGO,
},
)
diff --git a/osf/models/email_task.py b/osf/models/email_task.py
index f89f2285e5c..12def4c8c12 100644
--- a/osf/models/email_task.py
+++ b/osf/models/email_task.py
@@ -9,6 +9,8 @@ class EmailTask(models.Model):
('SUCCESS', 'Success'),
('FAILURE', 'Failure'),
('RETRY', 'Retry'),
+ ('PARTIAL_SUCCESS', 'Partial Success'),
+ ('AUTO_FIXED', 'Auto Fixed'),
)
task_id = models.CharField(max_length=255, unique=True)
diff --git a/osf/models/institution.py b/osf/models/institution.py
index 39d57637da5..3671e7bef1f 100644
--- a/osf/models/institution.py
+++ b/osf/models/institution.py
@@ -14,7 +14,7 @@
from django.utils import timezone
from framework import sentry
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from .base import BaseModel, ObjectIDMixin
from .contributor import InstitutionalContributor
from .institution_affiliation import InstitutionAffiliation
@@ -220,7 +220,7 @@ def _send_deactivation_email(self):
success = 0
for user in self.get_institution_users():
attempts += 1
- NotificationType.Type.USER_INSTITUTION_DEACTIVATION.instance.emit(
+ NotificationTypeEnum.USER_INSTITUTION_DEACTIVATION.instance.emit(
user=user,
event_context={
'user_fullname': user.fullname,
diff --git a/osf/models/mixins.py b/osf/models/mixins.py
index 66fc73c94fb..689ffe817df 100644
--- a/osf/models/mixins.py
+++ b/osf/models/mixins.py
@@ -27,7 +27,7 @@
InvalidTagError,
BlockedEmailError,
)
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf.models.notification_subscription import NotificationSubscription
from .node_relation import NodeRelation
from .nodelog import NodeLog
@@ -312,7 +312,7 @@ def add_affiliated_institution(self, inst, user, log=True, ignore_user_affiliati
if notify and getattr(self, 'type', False) == 'osf.node':
for user, _ in self.get_admin_contributors_recursive(unique_users=True):
- NotificationType.Type.NODE_AFFILIATION_CHANGED.instance.emit(
+ NotificationTypeEnum.NODE_AFFILIATION_CHANGED.instance.emit(
user=user,
subscribed_object=self,
event_context={
@@ -354,7 +354,7 @@ def remove_affiliated_institution(self, inst, user, save=False, log=True, notify
self.update_search()
if notify and getattr(self, 'type', False) == 'osf.node':
for user, _ in self.get_admin_contributors_recursive(unique_users=True):
- NotificationType.Type.NODE_AFFILIATION_CHANGED.instance.emit(
+ NotificationTypeEnum.NODE_AFFILIATION_CHANGED.instance.emit(
user=user,
subscribed_object=self,
event_context={
@@ -1035,7 +1035,7 @@ class Meta:
reviews_comments_anonymous = models.BooleanField(null=True, blank=True)
DEFAULT_SUBSCRIPTIONS = [
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
]
@property
@@ -1084,7 +1084,7 @@ def add_to_group(self, user, group):
for subscription in self.DEFAULT_SUBSCRIPTIONS:
NotificationSubscription.objects.get_or_create(
user=user,
- content_type=ContentType.objects.get_for_model(self, for_concrete_model=False),
+ content_type=ContentType.objects.get_for_model(self),
object_id=self.id,
notification_type=subscription.instance,
message_frequency='instantly',
@@ -1102,7 +1102,7 @@ def remove_from_group(self, user, group, unsubscribe=True):
NotificationSubscription.objects.filter(
notification_type=subscription.instance,
user=user,
- content_type=ContentType.objects.get_for_model(self, for_concrete_model=False),
+ content_type=ContentType.objects.get_for_model(self),
object_id=self.id,
).delete()
@@ -1422,14 +1422,14 @@ def add_contributor(
from osf.models import AbstractNode, Preprint, DraftRegistration
if isinstance(self, AbstractNode):
- notification_type = NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type = NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
elif isinstance(self, Preprint):
if self.is_published:
- notification_type = NotificationType.Type.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type = NotificationTypeEnum.PREPRINT_CONTRIBUTOR_ADDED_DEFAULT
else:
notification_type = False
elif isinstance(self, DraftRegistration):
- notification_type = NotificationType.Type.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type = NotificationTypeEnum.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
if contrib_to_add.is_disabled:
raise ValidationValueError('Deactivated users cannot be added as contributors.')
@@ -1603,14 +1603,14 @@ def add_unregistered_contributor(
from osf.models import AbstractNode, Preprint, DraftRegistration
if isinstance(self, AbstractNode):
- notification_type = NotificationType.Type.USER_INVITE_DEFAULT
+ notification_type = NotificationTypeEnum.USER_INVITE_DEFAULT
elif isinstance(self, Preprint):
if self.provider.is_default:
- notification_type = NotificationType.Type.USER_INVITE_OSF_PREPRINT
+ notification_type = NotificationTypeEnum.USER_INVITE_OSF_PREPRINT
else:
- notification_type = NotificationType.Type.PROVIDER_USER_INVITE_PREPRINT
+ notification_type = NotificationTypeEnum.PROVIDER_USER_INVITE_PREPRINT
elif isinstance(self, DraftRegistration):
- notification_type = NotificationType.Type.USER_INVITE_DRAFT_REGISTRATION
+ notification_type = NotificationTypeEnum.USER_INVITE_DRAFT_REGISTRATION
self.add_contributor(
contributor,
@@ -2393,12 +2393,11 @@ def suspend_spam_user(self, user, domains=None, self_spam=False):
# Suspend the flagged user for spam.
if not user.is_disabled:
user.deactivate_account()
- NotificationType.Type.USER_SPAM_BANNED.instance.emit(
+ NotificationTypeEnum.USER_SPAM_BANNED.instance.emit(
user,
event_context={
'user_fullname': user.fullname,
'osf_support_email': settings.OSF_SUPPORT_EMAIL,
- 'can_change_preferences': False
}
)
diff --git a/osf/models/node.py b/osf/models/node.py
index 6bb91c62611..083ccd6edfa 100644
--- a/osf/models/node.py
+++ b/osf/models/node.py
@@ -35,7 +35,7 @@
from framework.exceptions import PermissionsError, HTTPError
from framework.sentry import log_exception
from osf.exceptions import InvalidTagError, NodeStateError, TagNotFoundError, ValidationError
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from .contributor import Contributor
from .collection_submission import CollectionSubmission
@@ -1297,7 +1297,7 @@ def set_privacy(self, permissions, auth=None, log=True, save=True, meeting_creat
self.save()
if auth and permissions == 'public':
for contributor in self.contributors:
- NotificationType.Type.NODE_NEW_PUBLIC_PROJECT.instance.emit(
+ NotificationTypeEnum.NODE_NEW_PUBLIC_PROJECT.instance.emit(
user=contributor,
subscribed_object=self,
event_context={
@@ -1611,7 +1611,7 @@ def fork_node(
:return: Forked node
"""
if notification_type is None:
- notification_type = NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type = NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
Registration = apps.get_model('osf.Registration')
PREFIX = 'Fork of '
user = auth.user
@@ -1839,7 +1839,7 @@ def use_as_template(self, auth, changes=None, top_level=True, parent=None):
new,
contributor=auth.user,
auth=auth,
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
)
# Log the creation
diff --git a/osf/models/notification.py b/osf/models/notification.py
index aab9f2b0f0e..533a05a4e97 100644
--- a/osf/models/notification.py
+++ b/osf/models/notification.py
@@ -16,8 +16,8 @@ class Notification(models.Model):
)
event_context: dict = models.JSONField()
sent = models.DateTimeField(null=True, blank=True)
- seen = models.DateTimeField(null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
+ fake_sent = models.BooleanField(default=False)
def send(
self,
@@ -56,14 +56,13 @@ def send(
if save:
self.mark_sent()
- def mark_sent(self) -> None:
+ def mark_sent(self, fake_sent=False) -> None:
+ update_fields = ['sent']
self.sent = timezone.now()
- self.save(update_fields=['sent'])
-
- def mark_seen(self) -> None:
- raise NotImplementedError('mark_seen must be implemented by subclasses.')
- # self.seen = timezone.now()
- # self.save(update_fields=['seen'])
+ if fake_sent:
+ update_fields.append('fake_sent')
+ self.fake_sent = True
+ self.save(update_fields=update_fields)
def render(self) -> str:
"""Render the notification message using the event context."""
diff --git a/osf/models/notification_subscription.py b/osf/models/notification_subscription.py
index 6a4a27533b5..1a812639ee6 100644
--- a/osf/models/notification_subscription.py
+++ b/osf/models/notification_subscription.py
@@ -1,10 +1,10 @@
import logging
-from datetime import datetime
+from django.utils import timezone
from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ValidationError
-from osf.models.notification_type import get_default_frequency_choices, NotificationType
+from osf.models.notification_type import get_default_frequency_choices, NotificationTypeEnum
from osf.models.notification import Notification
from api.base import settings
from api.base.utils import absolute_reverse
@@ -59,6 +59,7 @@ class Meta:
verbose_name = 'Notification Subscription'
verbose_name_plural = 'Notification Subscriptions'
db_table = 'osf_notificationsubscription_v2'
+ unique_together = ('notification_type', 'user', 'content_type', 'object_id', '_is_digest')
def emit(
self,
@@ -126,7 +127,8 @@ def emit(
Notification.objects.create(
subscription=self,
event_context=event_context,
- sent=None if self.message_frequency != 'none' else datetime(1000, 1, 1),
+ sent=timezone.now() if self.message_frequency == 'none' else None,
+ fake_sent=True if self.message_frequency == 'none' else False,
)
@property
@@ -144,32 +146,32 @@ def _id(self):
Legacy subscription id for API compatibility.
"""
_global_file_updated = [
- NotificationType.Type.USER_FILE_UPDATED.value,
- NotificationType.Type.FILE_UPDATED.value,
- NotificationType.Type.FILE_ADDED.value,
- NotificationType.Type.FILE_REMOVED.value,
- NotificationType.Type.ADDON_FILE_COPIED.value,
- NotificationType.Type.ADDON_FILE_RENAMED.value,
- NotificationType.Type.ADDON_FILE_MOVED.value,
- NotificationType.Type.ADDON_FILE_REMOVED.value,
- NotificationType.Type.FOLDER_CREATED.value,
+ NotificationTypeEnum.USER_FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_REMOVED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
]
_global_reviews = [
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
- NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.value,
- NotificationType.Type.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION.value,
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
- NotificationType.Type.REVIEWS_SUBMISSION_STATUS.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
+ NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.value,
+ NotificationTypeEnum.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
+ NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.value,
]
_node_file_updated = [
- NotificationType.Type.NODE_FILE_UPDATED.value,
- NotificationType.Type.FILE_ADDED.value,
- NotificationType.Type.FILE_REMOVED.value,
- NotificationType.Type.ADDON_FILE_COPIED.value,
- NotificationType.Type.ADDON_FILE_RENAMED.value,
- NotificationType.Type.ADDON_FILE_MOVED.value,
- NotificationType.Type.ADDON_FILE_REMOVED.value,
- NotificationType.Type.FOLDER_CREATED.value,
+ NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_REMOVED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
]
if self.notification_type.name in _global_file_updated:
return f'{self.user._id}_file_updated'
diff --git a/osf/models/notification_type.py b/osf/models/notification_type.py
index fbbe2524f99..538dfa969df 100644
--- a/osf/models/notification_type.py
+++ b/osf/models/notification_type.py
@@ -12,144 +12,167 @@ def get_default_frequency_choices():
DEFAULT_FREQUENCY_CHOICES = ['none', 'instantly', 'daily', 'weekly', 'monthly']
return DEFAULT_FREQUENCY_CHOICES.copy()
+class NotificationTypeEnum(str, Enum):
+ EMPTY = 'empty'
+ # Desk notifications
+ REVIEWS_SUBMISSION_STATUS = 'reviews_submission_status'
+ ADDONS_BOA_JOB_FAILURE = 'addon_boa_job_failure'
+ ADDONS_BOA_JOB_COMPLETE = 'addon_boa_job_complete'
+
+ DESK_ARCHIVE_REGISTRATION_STUCK = 'desk_archive_registration_stuck'
+ DESK_REQUEST_EXPORT = 'desk_request_export'
+ DESK_REQUEST_DEACTIVATION = 'desk_request_deactivation'
+ DESK_REGISTRATION_BULK_UPLOAD_PRODUCT_OWNER = 'desk_registration_bulk_upload_product_owner'
+ DESK_USER_REGISTRATION_BULK_UPLOAD_UNEXPECTED_FAILURE = 'desk_user_registration_bulk_upload_unexpected_failure'
+ DESK_ARCHIVE_JOB_EXCEEDED = 'desk_archive_job_exceeded'
+ DESK_ARCHIVE_JOB_COPY_ERROR = 'desk_archive_job_copy_error'
+ DESK_ARCHIVE_JOB_FILE_NOT_FOUND = 'desk_archive_job_file_not_found'
+ DESK_ARCHIVE_JOB_UNCAUGHT_ERROR = 'desk_archive_job_uncaught_error'
+ DESK_CROSSREF_ERROR = 'desk_crossref_error'
+
+ # User notifications
+ USER_PENDING_VERIFICATION = 'user_pending_verification'
+ USER_PENDING_VERIFICATION_REGISTERED = 'user_pending_verification_registered'
+ USER_STORAGE_CAP_EXCEEDED_ANNOUNCEMENT = 'user_storage_cap_exceeded_announcement'
+ USER_SPAM_BANNED = 'user_spam_banned'
+ USER_REQUEST_DEACTIVATION = 'user_request_deactivation' # added as a placeholder
+ USER_REQUEST_DEACTIVATION_COMPLETE = 'user_request_deactivation_complete'
+ USER_PRIMARY_EMAIL_CHANGED = 'user_primary_email_changed'
+ USER_INSTITUTION_DEACTIVATION = 'user_institution_deactivation'
+ USER_FORGOT_PASSWORD = 'user_forgot_password'
+ USER_FORGOT_PASSWORD_INSTITUTION = 'user_forgot_password_institution'
+ USER_DUPLICATE_ACCOUNTS_OSF4I = 'user_duplicate_accounts_osf4i'
+ USER_EXTERNAL_LOGIN_LINK_SUCCESS = 'user_external_login_link_success'
+ USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL = 'user_registration_bulk_upload_failure_all'
+ USER_REGISTRATION_BULK_UPLOAD_SUCCESS_PARTIAL = 'user_registration_bulk_upload_success_partial'
+ USER_REGISTRATION_BULK_UPLOAD_SUCCESS_ALL = 'user_registration_bulk_upload_success_all'
+ USER_ADD_SSO_EMAIL_OSF4I = 'user_add_sso_email_osf4i'
+ USER_WELCOME = 'user_welcome' # waiting for the language from the PO
+ USER_WELCOME_OSF4I = 'user_welcome_osf4i'
+ USER_ARCHIVE_JOB_EXCEEDED = 'user_archive_job_exceeded'
+ USER_ARCHIVE_JOB_COPY_ERROR = 'user_archive_job_copy_error'
+ USER_ARCHIVE_JOB_FILE_NOT_FOUND = 'user_archive_job_file_not_found'
+ USER_FILE_UPDATED = 'user_file_updated'
+ USER_FILE_OPERATION_SUCCESS = 'user_file_operation_success'
+ USER_FILE_OPERATION_FAILED = 'user_file_operation_failed'
+ USER_PASSWORD_RESET = 'user_password_reset'
+ USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_CREATE = 'user_external_login_confirm_email_create'
+ USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_LINK = 'user_external_login_email_confirm_link'
+ USER_CONFIRM_MERGE = 'user_confirm_merge'
+ USER_CONFIRM_EMAIL = 'user_confirm_email'
+ USER_INITIAL_CONFIRM_EMAIL = 'user_initial_confirm_email'
+ USER_INVITE_DEFAULT = 'user_invite_default'
+ USER_FORWARD_INVITE = 'user_forward_invite'
+ USER_FORWARD_INVITE_REGISTERED = 'user_forward_invite_registered'
+ USER_INVITE_DRAFT_REGISTRATION = 'user_invite_draft_registration'
+ USER_INVITE_OSF_PREPRINT = 'user_invite_osf_preprint'
+ USER_ARCHIVE_JOB_UNCAUGHT_ERROR = 'user_archive_job_uncaught_error'
+ USER_INSTITUTIONAL_ACCESS_REQUEST = 'user_institutional_access_request'
+ USER_CAMPAIGN_CONFIRM_EMAIL_AGU_CONFERENCE = 'user_campaign_confirm_email_agu_conference'
+ USER_CAMPAIGN_CONFIRM_EMAIL_REGISTRIES_OSF = 'user_campaign_confirm_email_registries_osf'
+ USER_CAMPAIGN_CONFIRM_EMAIL_ERPC = 'user_campaign_confirm_email_erpc'
+ USER_DIGEST = 'user_digest'
+ USER_NO_LOGIN = 'user_no_login'
+ DIGEST_REVIEWS_MODERATORS = 'digest_reviews_moderators'
+ USER_NO_ADDON = 'user_no_addon'
+ USER_SPAM_FILES_DETECTED = 'user_spam_files_detected'
+ USER_CROSSREF_DOI_PENDING = 'user_crossref_doi_pending'
+ USER_TERMS_OF_USE_UPDATED = 'user_terms_of_use_updated' # added as a placeholder
+
+ # Node notifications
+ NODE_FILE_UPDATED = 'node_file_updated'
+ NODE_AFFILIATION_CHANGED = 'node_affiliation_changed'
+ NODE_ARCHIVE_SUCCESS = 'node_archive_success' # added as a placeholder
+ NODE_REQUEST_ACCESS_SUBMITTED = 'node_request_access_submitted'
+ NODE_REQUEST_ACCESS_DENIED = 'node_request_access_denied'
+ NODE_FORK_COMPLETED = 'node_fork_completed'
+ NODE_FORK_FAILED = 'node_fork_failed'
+ NODE_INSTITUTIONAL_ACCESS_REQUEST = 'node_institutional_access_request'
+ NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST = 'node_contributor_added_access_request'
+ NODE_CONTRIBUTOR_ADDED_DEFAULT = 'node_contributor_added_default'
+ NODE_PENDING_EMBARGO_ADMIN = 'node_pending_embargo_admin'
+ NODE_PENDING_EMBARGO_NON_ADMIN = 'node_pending_embargo_non_admin'
+ NODE_PENDING_RETRACTION_NON_ADMIN = 'node_pending_retraction_non_admin'
+ NODE_PENDING_RETRACTION_ADMIN = 'node_pending_retraction_admin'
+ NODE_PENDING_REGISTRATION_NON_ADMIN = 'node_pending_registration_non_admin'
+ NODE_PENDING_REGISTRATION_ADMIN = 'node_pending_registration_admin'
+ NODE_PENDING_EMBARGO_TERMINATION_NON_ADMIN = 'node_pending_embargo_termination_non_admin'
+ NODE_PENDING_EMBARGO_TERMINATION_ADMIN = 'node_pending_embargo_termination_admin'
+ NODE_SCHEMA_RESPONSE_REJECTED = 'node_schema_response_rejected'
+ NODE_SCHEMA_RESPONSE_APPROVED = 'node_schema_response_approved'
+ NODE_SCHEMA_RESPONSE_SUBMITTED = 'node_schema_response_submitted'
+ NODE_SCHEMA_RESPONSE_INITIATED = 'node_schema_response_initiated'
+ NODE_WITHDRAWAl_REQUEST_APPROVED = 'node_withdrawal_request_approved'
+ NODE_WITHDRAWAl_REQUEST_REJECTED = 'node_withdrawal_request_rejected'
+ NODE_NEW_PUBLIC_PROJECT = 'node_new_public_project'
+
+ FILE_UPDATED = 'file_updated'
+ FILE_ADDED = 'file_added'
+ FILE_REMOVED = 'file_removed'
+ ADDON_FILE_COPIED = 'addon_file_copied'
+ ADDON_FILE_RENAMED = 'addon_file_renamed'
+ ADDON_FILE_MOVED = 'addon_file_moved'
+ ADDON_FILE_REMOVED = 'addon_file_removed'
+ FOLDER_CREATED = 'folder_created'
+
+ # Provider notifications
+ PROVIDER_NEW_PENDING_SUBMISSIONS = 'provider_new_pending_submissions'
+ PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS = 'provider_new_pending_withdraw_requests'
+ PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION = 'provider_reviews_submission_confirmation'
+ PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION = 'provider_reviews_resubmission_confirmation'
+ PROVIDER_CONFIRM_EMAIL_MODERATION = 'provider_confirm_email_moderation'
+ PROVIDER_MODERATOR_ADDED = 'provider_moderator_added'
+ PROVIDER_USER_INVITE_PREPRINT = 'provider_user_invite_preprint'
+
+ # Preprint notifications
+ PREPRINT_REQUEST_WITHDRAWAL_APPROVED = 'preprint_request_withdrawal_approved'
+ PREPRINT_REQUEST_WITHDRAWAL_DECLINED = 'preprint_request_withdrawal_declined'
+ PREPRINT_CONTRIBUTOR_ADDED_PREPRINT_NODE_FROM_OSF = 'preprint_contributor_added_preprint_node_from_osf'
+ PREPRINT_CONTRIBUTOR_ADDED_DEFAULT = 'preprint_contributor_added_default'
+
+ # Collections Submission notifications
+ COLLECTION_SUBMISSION_REMOVED_ADMIN = 'collection_submission_removed_admin'
+ COLLECTION_SUBMISSION_REMOVED_MODERATOR = 'collection_submission_removed_moderator'
+ COLLECTION_SUBMISSION_REMOVED_PRIVATE = 'collection_submission_removed_private'
+ COLLECTION_SUBMISSION_SUBMITTED = 'collection_submission_submitted'
+ COLLECTION_SUBMISSION_ACCEPTED = 'collection_submission_accepted'
+ COLLECTION_SUBMISSION_REJECTED = 'collection_submission_rejected'
+ COLLECTION_SUBMISSION_CANCEL = 'collection_submission_cancel'
+
+ REGISTRATION_BULK_UPLOAD_FAILURE_DUPLICATES = 'registration_bulk_upload_failure_duplicates'
+
+ DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT = 'draft_registration_contributor_added_default'
+
+ @ttl_cached_property(ttl=settings.TTL_CACHE_LIFETIME)
+ def instance(self):
+ obj, created = NotificationType.objects.get_or_create(name=self.value)
+ return obj
class NotificationType(models.Model):
- class Type(str, Enum):
- EMPTY = 'empty'
- # Desk notifications
- REVIEWS_SUBMISSION_STATUS = 'reviews_submission_status'
- ADDONS_BOA_JOB_FAILURE = 'addon_boa_job_failure'
- ADDONS_BOA_JOB_COMPLETE = 'addon_boa_job_complete'
-
- DESK_ARCHIVE_REGISTRATION_STUCK = 'desk_archive_registration_stuck'
- DESK_REQUEST_EXPORT = 'desk_request_export'
- DESK_REQUEST_DEACTIVATION = 'desk_request_deactivation'
- DESK_REGISTRATION_BULK_UPLOAD_PRODUCT_OWNER = 'desk_registration_bulk_upload_product_owner'
- DESK_USER_REGISTRATION_BULK_UPLOAD_UNEXPECTED_FAILURE = 'desk_user_registration_bulk_upload_unexpected_failure'
- DESK_ARCHIVE_JOB_EXCEEDED = 'desk_archive_job_exceeded'
- DESK_ARCHIVE_JOB_COPY_ERROR = 'desk_archive_job_copy_error'
- DESK_ARCHIVE_JOB_FILE_NOT_FOUND = 'desk_archive_job_file_not_found'
- DESK_ARCHIVE_JOB_UNCAUGHT_ERROR = 'desk_archive_job_uncaught_error'
- DESK_CROSSREF_ERROR = 'desk_crossref_error'
-
- # User notifications
- USER_PENDING_VERIFICATION = 'user_pending_verification'
- USER_PENDING_VERIFICATION_REGISTERED = 'user_pending_verification_registered'
- USER_STORAGE_CAP_EXCEEDED_ANNOUNCEMENT = 'user_storage_cap_exceeded_announcement'
- USER_SPAM_BANNED = 'user_spam_banned'
- USER_REQUEST_DEACTIVATION_COMPLETE = 'user_request_deactivation_complete'
- USER_PRIMARY_EMAIL_CHANGED = 'user_primary_email_changed'
- USER_INSTITUTION_DEACTIVATION = 'user_institution_deactivation'
- USER_FORGOT_PASSWORD = 'user_forgot_password'
- USER_FORGOT_PASSWORD_INSTITUTION = 'user_forgot_password_institution'
- USER_DUPLICATE_ACCOUNTS_OSF4I = 'user_duplicate_accounts_osf4i'
- USER_EXTERNAL_LOGIN_LINK_SUCCESS = 'user_external_login_link_success'
- USER_REGISTRATION_BULK_UPLOAD_FAILURE_ALL = 'user_registration_bulk_upload_failure_all'
- USER_REGISTRATION_BULK_UPLOAD_SUCCESS_PARTIAL = 'user_registration_bulk_upload_success_partial'
- USER_REGISTRATION_BULK_UPLOAD_SUCCESS_ALL = 'user_registration_bulk_upload_success_all'
- USER_ADD_SSO_EMAIL_OSF4I = 'user_add_sso_email_osf4i'
- USER_WELCOME_OSF4I = 'user_welcome_osf4i'
- USER_ARCHIVE_JOB_EXCEEDED = 'user_archive_job_exceeded'
- USER_ARCHIVE_JOB_COPY_ERROR = 'user_archive_job_copy_error'
- USER_ARCHIVE_JOB_FILE_NOT_FOUND = 'user_archive_job_file_not_found'
- USER_FILE_UPDATED = 'user_file_updated'
- USER_FILE_OPERATION_SUCCESS = 'user_file_operation_success'
- USER_FILE_OPERATION_FAILED = 'user_file_operation_failed'
- USER_PASSWORD_RESET = 'user_password_reset'
- USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_CREATE = 'user_external_login_confirm_email_create'
- USER_EXTERNAL_LOGIN_CONFIRM_EMAIL_LINK = 'user_external_login_email_confirm_link'
- USER_CONFIRM_MERGE = 'user_confirm_merge'
- USER_CONFIRM_EMAIL = 'user_confirm_email'
- USER_INITIAL_CONFIRM_EMAIL = 'user_initial_confirm_email'
- USER_INVITE_DEFAULT = 'user_invite_default'
- USER_FORWARD_INVITE = 'user_forward_invite'
- USER_FORWARD_INVITE_REGISTERED = 'user_forward_invite_registered'
- USER_INVITE_DRAFT_REGISTRATION = 'user_invite_draft_registration'
- USER_INVITE_OSF_PREPRINT = 'user_invite_osf_preprint'
- USER_ARCHIVE_JOB_UNCAUGHT_ERROR = 'user_archive_job_uncaught_error'
- USER_INSTITUTIONAL_ACCESS_REQUEST = 'user_institutional_access_request'
- USER_CAMPAIGN_CONFIRM_PREPRINTS_BRANDED = 'user_campaign_confirm_preprint_branded'
- USER_CAMPAIGN_CONFIRM_PREPRINTS_OSF = 'user_campaign_confirm_preprint_osf'
- USER_CAMPAIGN_CONFIRM_EMAIL_AGU_CONFERENCE = 'user_campaign_confirm_email_agu_conference'
- USER_CAMPAIGN_CONFIRM_EMAIL_AGU_CONFERENCE_2023 = 'user_campaign_confirm_email_agu_conference_2023'
- USER_CAMPAIGN_CONFIRM_EMAIL_REGISTRIES_OSF = 'user_campaign_confirm_email_registries_osf'
- USER_CAMPAIGN_CONFIRM_EMAIL_ERPC = 'user_campaign_confirm_email_erpc'
- USER_DIGEST = 'user_digest'
- USER_NO_LOGIN = 'user_no_login'
- DIGEST_REVIEWS_MODERATORS = 'digest_reviews_moderators'
- USER_NO_ADDON = 'user_no_addon'
- USER_SPAM_FILES_DETECTED = 'user_spam_files_detected'
- USER_CROSSREF_DOI_PENDING = 'user_crossref_doi_pending'
-
- # Node notifications
- NODE_FILE_UPDATED = 'node_file_updated'
- NODE_FILES_UPDATED = 'node_files_updated'
- NODE_AFFILIATION_CHANGED = 'node_affiliation_changed'
- NODE_REQUEST_ACCESS_SUBMITTED = 'node_request_access_submitted'
- NODE_REQUEST_ACCESS_DENIED = 'node_request_access_denied'
- NODE_FORK_COMPLETED = 'node_fork_completed'
- NODE_FORK_FAILED = 'node_fork_failed'
- NODE_INSTITUTIONAL_ACCESS_REQUEST = 'node_institutional_access_request'
- NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST = 'node_contributor_added_access_request'
- NODE_CONTRIBUTOR_ADDED_DEFAULT = 'node_contributor_added_default'
- NODE_PENDING_EMBARGO_ADMIN = 'node_pending_embargo_admin'
- NODE_PENDING_EMBARGO_NON_ADMIN = 'node_pending_embargo_non_admin'
- NODE_PENDING_RETRACTION_NON_ADMIN = 'node_pending_retraction_non_admin'
- NODE_PENDING_RETRACTION_ADMIN = 'node_pending_retraction_admin'
- NODE_PENDING_REGISTRATION_NON_ADMIN = 'node_pending_registration_non_admin'
- NODE_PENDING_REGISTRATION_ADMIN = 'node_pending_registration_admin'
- NODE_PENDING_EMBARGO_TERMINATION_NON_ADMIN = 'node_pending_embargo_termination_non_admin'
- NODE_PENDING_EMBARGO_TERMINATION_ADMIN = 'node_pending_embargo_termination_admin'
- NODE_SCHEMA_RESPONSE_REJECTED = 'node_schema_response_rejected'
- NODE_SCHEMA_RESPONSE_APPROVED = 'node_schema_response_approved'
- NODE_SCHEMA_RESPONSE_SUBMITTED = 'node_schema_response_submitted'
- NODE_SCHEMA_RESPONSE_INITIATED = 'node_schema_response_initiated'
- NODE_WITHDRAWAl_REQUEST_APPROVED = 'node_withdrawal_request_approved'
- NODE_WITHDRAWAl_REQUEST_REJECTED = 'node_withdrawal_request_rejected'
- NODE_NEW_PUBLIC_PROJECT = 'node_new_public_project'
-
- FILE_UPDATED = 'file_updated'
- FILE_ADDED = 'file_added'
- FILE_REMOVED = 'file_removed'
- ADDON_FILE_COPIED = 'addon_file_copied'
- ADDON_FILE_RENAMED = 'addon_file_renamed'
- ADDON_FILE_MOVED = 'addon_file_moved'
- ADDON_FILE_REMOVED = 'addon_file_removed'
- FOLDER_CREATED = 'folder_created'
-
- # Provider notifications
- PROVIDER_NEW_PENDING_SUBMISSIONS = 'provider_new_pending_submissions'
- PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS = 'provider_new_pending_withdraw_requests'
- PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION = 'provider_reviews_submission_confirmation'
- PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION = 'provider_reviews_resubmission_confirmation'
- PROVIDER_CONFIRM_EMAIL_MODERATION = 'provider_confirm_email_moderation'
- PROVIDER_MODERATOR_ADDED = 'provider_moderator_added'
- PROVIDER_USER_INVITE_PREPRINT = 'provider_user_invite_preprint'
-
- # Preprint notifications
- PREPRINT_REQUEST_WITHDRAWAL_APPROVED = 'preprint_request_withdrawal_approved'
- PREPRINT_REQUEST_WITHDRAWAL_DECLINED = 'preprint_request_withdrawal_declined'
- PREPRINT_CONTRIBUTOR_ADDED_PREPRINT_NODE_FROM_OSF = 'preprint_contributor_added_preprint_node_from_osf'
- PREPRINT_CONTRIBUTOR_ADDED_DEFAULT = 'preprint_contributor_added_default'
-
- # Collections Submission notifications
- COLLECTION_SUBMISSION_REMOVED_ADMIN = 'collection_submission_removed_admin'
- COLLECTION_SUBMISSION_REMOVED_MODERATOR = 'collection_submission_removed_moderator'
- COLLECTION_SUBMISSION_REMOVED_PRIVATE = 'collection_submission_removed_private'
- COLLECTION_SUBMISSION_SUBMITTED = 'collection_submission_submitted'
- COLLECTION_SUBMISSION_ACCEPTED = 'collection_submission_accepted'
- COLLECTION_SUBMISSION_REJECTED = 'collection_submission_rejected'
- COLLECTION_SUBMISSION_CANCEL = 'collection_submission_cancel'
-
- REGISTRATION_BULK_UPLOAD_FAILURE_DUPLICATES = 'registration_bulk_upload_failure_duplicates'
-
- DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT = 'draft_registration_contributor_added_default'
-
- @ttl_cached_property(ttl=settings.TTL_CACHE_LIFETIME)
- def instance(self):
- obj, created = NotificationType.objects.get_or_create(name=self.value)
- return obj
+ @property
+ def is_digest_type(self):
+ digest_types = {
+ # User types
+ NotificationTypeEnum.USER_NO_ADDON.value,
+ # File types
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.FILE_UPDATED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
+ NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ NotificationTypeEnum.USER_FILE_UPDATED.value,
+
+ # Review types
+ NotificationTypeEnum.COLLECTION_SUBMISSION_SUBMITTED.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
+ NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.value,
+ }
+ return self.name in digest_types
notification_interval_choices = ArrayField(
base_field=models.CharField(max_length=32),
@@ -202,13 +225,14 @@ def emit(
used.
"""
from osf.models.notification_subscription import NotificationSubscription
- from osf.models.provider import AbstractProvider
- # use concrete model for AbstractProvider to specifically get the provider content type
- if isinstance(subscribed_object, AbstractProvider):
- content_type = ContentType.objects.get_for_model(subscribed_object, for_concrete_model=False) if subscribed_object else None
- else:
- content_type = ContentType.objects.get_for_model(subscribed_object) if subscribed_object else None
+ if is_digest != self.is_digest_type:
+ sentry.log_message(f'NotificationType.emit called with is_digest={is_digest} for '
+ f'NotificationType {self.name} which has is_digest_type={self.is_digest_type}'
+ 'is_digest value will be overridden.')
+ is_digest = self.is_digest_type
+
+ content_type = ContentType.objects.get_for_model(subscribed_object) if subscribed_object else None
if message_frequency is None:
message_frequency = self.get_group_frequency_or_default(user, subscribed_object, content_type)
@@ -266,33 +290,33 @@ def get_group_frequency_or_default(self, user, subscribed_object, content_type):
from osf.models import NotificationSubscription, AbstractNode
_global_file_updated = [
- NotificationType.Type.USER_FILE_UPDATED.value,
- NotificationType.Type.FILE_UPDATED.value,
- NotificationType.Type.FILE_ADDED.value,
- NotificationType.Type.FILE_REMOVED.value,
- NotificationType.Type.ADDON_FILE_COPIED.value,
- NotificationType.Type.ADDON_FILE_RENAMED.value,
- NotificationType.Type.ADDON_FILE_MOVED.value,
- NotificationType.Type.ADDON_FILE_REMOVED.value,
- NotificationType.Type.FOLDER_CREATED.value,
+ NotificationTypeEnum.USER_FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_REMOVED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
]
_global_reviews = [
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
- NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.value,
- NotificationType.Type.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION.value,
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
- NotificationType.Type.REVIEWS_SUBMISSION_STATUS.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.value,
+ NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.value,
+ NotificationTypeEnum.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION.value,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.value,
+ NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.value,
]
_node_file_updated = [
- NotificationType.Type.NODE_FILE_UPDATED.value,
- NotificationType.Type.FILE_UPDATED.value,
- NotificationType.Type.FILE_ADDED.value,
- NotificationType.Type.FILE_REMOVED.value,
- NotificationType.Type.ADDON_FILE_COPIED.value,
- NotificationType.Type.ADDON_FILE_RENAMED.value,
- NotificationType.Type.ADDON_FILE_MOVED.value,
- NotificationType.Type.ADDON_FILE_REMOVED.value,
- NotificationType.Type.FOLDER_CREATED.value,
+ NotificationTypeEnum.NODE_FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_UPDATED.value,
+ NotificationTypeEnum.FILE_ADDED.value,
+ NotificationTypeEnum.FILE_REMOVED.value,
+ NotificationTypeEnum.ADDON_FILE_COPIED.value,
+ NotificationTypeEnum.ADDON_FILE_RENAMED.value,
+ NotificationTypeEnum.ADDON_FILE_MOVED.value,
+ NotificationTypeEnum.ADDON_FILE_REMOVED.value,
+ NotificationTypeEnum.FOLDER_CREATED.value,
]
if self.name in _global_file_updated and content_type != ContentType.objects.get_for_model(AbstractNode):
diff --git a/osf/models/preprint.py b/osf/models/preprint.py
index 7a61b31db06..ccf48331ea9 100644
--- a/osf/models/preprint.py
+++ b/osf/models/preprint.py
@@ -20,7 +20,7 @@
from framework.auth import Auth
from framework.exceptions import PermissionsError, UnpublishedPendingPreprintVersionExists
from framework.auth import oauth_scopes
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from .subject import Subject
from .tag import Tag
@@ -1071,30 +1071,23 @@ def _add_creator_as_contributor(self):
def _send_preprint_confirmation(self, auth):
# Send creator confirmation email
recipient = self.creator
- NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.instance.emit(
+ NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION.instance.emit(
subscribed_object=self.provider,
user=recipient,
event_context={
- 'domain': settings.DOMAIN,
'user_fullname': recipient.fullname,
'referrer_fullname': recipient.fullname,
'reviewable_title': self.title,
'no_future_emails': self.provider.allow_submissions,
'reviewable_absolute_url': self.absolute_url,
'reviewable_provider_name': self.provider.name,
- 'reviewable_provider__id': self.provider._id,
'workflow': self.provider.reviews_workflow,
'provider_url': f'{self.provider.domain or settings.DOMAIN}preprints/'
f'{(self.provider._id if not self.provider.domain else '').strip('/')}',
- 'provider_contact_email': self.provider.email_contact or settings.OSF_CONTACT_EMAIL,
- 'provider_support_email': self.provider.email_support or settings.OSF_SUPPORT_EMAIL,
'is_creator': True,
'provider_name': 'OSF Preprints' if self.provider.name == 'Open Science Framework' else self.provider.name,
- 'logo': settings.OSF_PREPRINTS_LOGO if self.provider._id == 'osf' else self.provider._id,
'document_type': self.provider.preprint_word,
- 'notify_comment': not self.provider.reviews_comments_private
},
- is_digest=True
)
# FOLLOWING BEHAVIOR NOT SPECIFIC TO PREPRINTS
diff --git a/osf/models/provider.py b/osf/models/provider.py
index 977ff662b42..92681173240 100644
--- a/osf/models/provider.py
+++ b/osf/models/provider.py
@@ -14,7 +14,7 @@
from guardian.models import GroupObjectPermissionBase, UserObjectPermissionBase
from framework import sentry
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from .base import BaseModel, TypedObjectIDMixin
from .mixins import ReviewProviderMixin
from .brand import Brand
@@ -253,7 +253,7 @@ def setup_share_source(self, provider_home_page):
class CollectionProvider(AbstractProvider):
DEFAULT_SUBSCRIPTIONS = [
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
]
class Meta:
@@ -295,8 +295,8 @@ class RegistrationProvider(AbstractProvider):
STATE_FIELD_NAME = 'moderation_state'
DEFAULT_SUBSCRIPTIONS = [
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS,
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS,
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS,
]
diff --git a/osf/models/registrations.py b/osf/models/registrations.py
index 7426121de98..e1d819b43bf 100644
--- a/osf/models/registrations.py
+++ b/osf/models/registrations.py
@@ -23,7 +23,7 @@
from osf.exceptions import NodeStateError, DraftRegistrationStateError
from osf.external.internet_archive.tasks import archive_to_ia, update_ia_metadata
from osf.metrics import RegistriesModerationMetrics
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from .action import RegistrationAction
from .archive import ArchiveJob
from .contributor import DraftRegistrationContributor
@@ -1336,7 +1336,7 @@ def create_from_node(
node=None,
data=None,
provider=None,
- notification_type=NotificationType.Type.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type=NotificationTypeEnum.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
):
if not provider:
provider = RegistrationProvider.get_default()
@@ -1381,7 +1381,7 @@ def create_from_node(
draft,
contributor=contributor.user,
auth=Auth(user) if user != contributor.user else None,
- notification_type=notification_type if contributor.user.is_confirmed else NotificationType.Type.USER_INVITE_DRAFT_REGISTRATION,
+ notification_type=notification_type if contributor.user.is_confirmed else NotificationTypeEnum.USER_INVITE_DRAFT_REGISTRATION,
permissions=contributor.permission
)
diff --git a/osf/models/sanctions.py b/osf/models/sanctions.py
index 8855852f1a1..5fa5d304d22 100644
--- a/osf/models/sanctions.py
+++ b/osf/models/sanctions.py
@@ -19,7 +19,7 @@
from osf.utils import tokens
from osf.utils.machines import ApprovalsMachine
from osf.utils.workflows import ApprovalStates, SanctionTypes
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
VIEW_PROJECT_URL_TEMPLATE = osf_settings.DOMAIN + '{node_id}/'
@@ -462,8 +462,8 @@ class Embargo(SanctionCallbackMixin, EmailApprovableSanction):
DISPLAY_NAME = 'Embargo'
SHORT_NAME = 'embargo'
- AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationType.Type.NODE_PENDING_EMBARGO_ADMIN
- NON_AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationType.Type.NODE_PENDING_EMBARGO_NON_ADMIN
+ AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationTypeEnum.NODE_PENDING_EMBARGO_ADMIN
+ NON_AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationTypeEnum.NODE_PENDING_EMBARGO_NON_ADMIN
VIEW_URL_TEMPLATE = VIEW_PROJECT_URL_TEMPLATE
APPROVE_URL_TEMPLATE = osf_settings.DOMAIN + 'token_action/{node_id}/?token={token}'
@@ -662,8 +662,8 @@ class Retraction(EmailApprovableSanction):
DISPLAY_NAME = 'Retraction'
SHORT_NAME = 'retraction'
- AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationType.Type.NODE_PENDING_RETRACTION_ADMIN
- NON_AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationType.Type.NODE_PENDING_RETRACTION_NON_ADMIN
+ AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationTypeEnum.NODE_PENDING_RETRACTION_ADMIN
+ NON_AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationTypeEnum.NODE_PENDING_RETRACTION_NON_ADMIN
VIEW_URL_TEMPLATE = VIEW_PROJECT_URL_TEMPLATE
APPROVE_URL_TEMPLATE = osf_settings.DOMAIN + 'token_action/{node_id}/?token={token}'
@@ -800,8 +800,8 @@ class RegistrationApproval(SanctionCallbackMixin, EmailApprovableSanction):
DISPLAY_NAME = 'Approval'
SHORT_NAME = 'registration_approval'
- AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationType.Type.NODE_PENDING_REGISTRATION_ADMIN
- NON_AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationType.Type.NODE_PENDING_REGISTRATION_NON_ADMIN
+ AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationTypeEnum.NODE_PENDING_REGISTRATION_ADMIN
+ NON_AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationTypeEnum.NODE_PENDING_REGISTRATION_NON_ADMIN
VIEW_URL_TEMPLATE = VIEW_PROJECT_URL_TEMPLATE
APPROVE_URL_TEMPLATE = osf_settings.DOMAIN + 'token_action/{node_id}/?token={token}'
@@ -980,8 +980,8 @@ class EmbargoTerminationApproval(EmailApprovableSanction):
DISPLAY_NAME = 'Embargo Termination Request'
SHORT_NAME = 'embargo_termination_approval'
- AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationType.Type.NODE_PENDING_EMBARGO_TERMINATION_ADMIN
- NON_AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationType.Type.NODE_PENDING_EMBARGO_TERMINATION_NON_ADMIN
+ AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationTypeEnum.NODE_PENDING_EMBARGO_TERMINATION_ADMIN
+ NON_AUTHORIZER_NOTIFY_EMAIL_TYPE = NotificationTypeEnum.NODE_PENDING_EMBARGO_TERMINATION_NON_ADMIN
VIEW_URL_TEMPLATE = VIEW_PROJECT_URL_TEMPLATE
APPROVE_URL_TEMPLATE = osf_settings.DOMAIN + 'token_action/{node_id}/?token={token}'
diff --git a/osf/models/schema_response.py b/osf/models/schema_response.py
index 0ea5239ee5d..c68084f1601 100644
--- a/osf/models/schema_response.py
+++ b/osf/models/schema_response.py
@@ -9,7 +9,7 @@
from framework.exceptions import PermissionsError
from osf.exceptions import PreviousSchemaResponseError, SchemaResponseStateError, SchemaResponseUpdateError
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from .base import BaseModel, ObjectIDMixin
from .metaschema import RegistrationSchemaBlock
from .schema_response_block import SchemaResponseBlock
@@ -488,10 +488,10 @@ def _notify_users(self, event, event_initiator):
)
notification_type = {
- 'create': NotificationType.Type.NODE_SCHEMA_RESPONSE_INITIATED.instance,
- 'submit': NotificationType.Type.NODE_SCHEMA_RESPONSE_SUBMITTED.instance,
- 'accept': NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED.instance,
- 'reject': NotificationType.Type.NODE_SCHEMA_RESPONSE_REJECTED.instance,
+ 'create': NotificationTypeEnum.NODE_SCHEMA_RESPONSE_INITIATED.instance,
+ 'submit': NotificationTypeEnum.NODE_SCHEMA_RESPONSE_SUBMITTED.instance,
+ 'accept': NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED.instance,
+ 'reject': NotificationTypeEnum.NODE_SCHEMA_RESPONSE_REJECTED.instance,
}.get(event)
if not notification_type:
return
diff --git a/osf/models/user.py b/osf/models/user.py
index 5c8d7f165ed..6b19a5e6f8d 100644
--- a/osf/models/user.py
+++ b/osf/models/user.py
@@ -68,7 +68,7 @@
from website.project import new_bookmark_collection
from website.util.metrics import OsfSourceTags, unregistered_created_source_tag
from importlib import import_module
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf.utils.requests import string_type_request_headers
@@ -250,6 +250,7 @@ class OSFUser(DirtyFieldsMixin, GuidMixin, BaseModel, AbstractBaseUser, Permissi
# }
email_last_sent = NonNaiveDateTimeField(null=True, blank=True)
+ no_login_email_last_sent = NonNaiveDateTimeField(null=True, blank=True)
change_password_last_attempt = NonNaiveDateTimeField(null=True, blank=True)
# Logs number of times user attempted to change their password where their
# old password was invalid
@@ -1097,14 +1098,13 @@ def set_password(self, raw_password, notify=True):
raise ChangePasswordError(['Password cannot be the same as your email address'])
super().set_password(raw_password)
if had_existing_password and notify:
- NotificationType.Type.USER_PASSWORD_RESET.instance.emit(
+ NotificationTypeEnum.USER_PASSWORD_RESET.instance.emit(
subscribed_object=self,
user=self,
message_frequency='instantly',
event_context={
'domain': website_settings.DOMAIN,
'user_fullname': self.fullname,
- 'can_change_preferences': False,
'osf_contact_email': website_settings.OSF_CONTACT_EMAIL
}
)
diff --git a/osf/models/user_message.py b/osf/models/user_message.py
index 10ea735b61e..34ec44e6b72 100644
--- a/osf/models/user_message.py
+++ b/osf/models/user_message.py
@@ -3,7 +3,7 @@
from django.db.models.signals import post_save
from django.dispatch import receiver
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from .base import BaseModel, ObjectIDMixin
from website import settings
@@ -32,7 +32,7 @@ def get_notification_type(cls: Type['MessageTypes'], message_type: str) -> str:
str: The email template string for the specified message type.
"""
return {
- cls.INSTITUTIONAL_REQUEST: NotificationType.Type.USER_INSTITUTIONAL_ACCESS_REQUEST
+ cls.INSTITUTIONAL_REQUEST: NotificationTypeEnum.USER_INSTITUTIONAL_ACCESS_REQUEST
}[message_type]
diff --git a/osf/utils/machines.py b/osf/utils/machines.py
index d13d85075f4..eb7e93d450b 100644
--- a/osf/utils/machines.py
+++ b/osf/utils/machines.py
@@ -6,7 +6,7 @@
from framework.auth import Auth
from osf.exceptions import InvalidTransitionError
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from osf.models.preprintlog import PreprintLog
from osf.models.action import ReviewAction, NodeRequestAction, PreprintRequestAction
from osf.utils import permissions
@@ -192,7 +192,7 @@ def notify_withdraw(self, ev):
if context.get('requester_fullname', None):
context['is_requester'] = requester == contributor
- NotificationType.Type.PREPRINT_REQUEST_WITHDRAWAL_APPROVED.instance.emit(
+ NotificationTypeEnum.PREPRINT_REQUEST_WITHDRAWAL_APPROVED.instance.emit(
user=contributor,
subscribed_object=self.machineable,
event_context={
@@ -234,7 +234,7 @@ def save_changes(self, ev):
make_curator = self.machineable.request_type == NodeRequestTypes.INSTITUTIONAL_REQUEST.value
visible = False if make_curator else ev.kwargs.get('visible', True)
if self.machineable.request_type in (NodeRequestTypes.ACCESS.value, NodeRequestTypes.INSTITUTIONAL_REQUEST.value):
- notification_type = NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
+ notification_type = NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
else:
notification_type = None
@@ -265,7 +265,7 @@ def notify_submit(self, ev):
if not self.machineable.request_type == NodeRequestTypes.INSTITUTIONAL_REQUEST.value:
for admin in self.machineable.target.get_users_with_perm(permissions.ADMIN):
- NotificationType.Type.NODE_REQUEST_ACCESS_SUBMITTED.instance.emit(
+ NotificationTypeEnum.NODE_REQUEST_ACCESS_SUBMITTED.instance.emit(
user=admin,
subscribed_object=self.machineable,
event_context={
@@ -286,7 +286,7 @@ def notify_accept_reject(self, ev):
if ev.event.name == DefaultTriggers.REJECT.value:
context = self.get_context()
- NotificationType.Type.NODE_REQUEST_ACCESS_DENIED.instance.emit(
+ NotificationTypeEnum.NODE_REQUEST_ACCESS_DENIED.instance.emit(
user=self.machineable.creator,
subscribed_object=self.machineable,
event_context=context
@@ -345,7 +345,7 @@ def notify_accept_reject(self, ev):
context['comment'] = self.action.comment
context['contributor_fullname'] = self.machineable.creator.fullname
- NotificationType.Type.PREPRINT_REQUEST_WITHDRAWAL_DECLINED.instance.emit(
+ NotificationTypeEnum.PREPRINT_REQUEST_WITHDRAWAL_DECLINED.instance.emit(
user=self.machineable.creator,
subscribed_object=self.machineable,
event_context=context
diff --git a/osf/utils/notifications.py b/osf/utils/notifications.py
index 8808ef3b243..0d279479155 100644
--- a/osf/utils/notifications.py
+++ b/osf/utils/notifications.py
@@ -1,6 +1,6 @@
from django.utils import timezone
-from osf.models.notification_type import NotificationType
+from osf.models.notification_type import NotificationTypeEnum
from website.reviews import signals as reviews_signals
from website.settings import DOMAIN, OSF_SUPPORT_EMAIL, OSF_CONTACT_EMAIL
from osf.utils.workflows import RegistrationModerationTriggers
@@ -50,7 +50,7 @@ def notify_submit(resource, user, *args, **kwargs):
context=context,
recipients=recipients,
resource=resource,
- notification_type=NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ notification_type=NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
)
reviews_signals.reviews_email_submit_moderators_notifications.send(
timestamp=timezone.now(),
@@ -71,7 +71,7 @@ def notify_resubmit(resource, user, *args, **kwargs):
reviews_signals.reviews_email_submit.send(
recipients=recipients,
context=context,
- notification_type=NotificationType.Type.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION,
+ notification_type=NotificationTypeEnum.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION,
resource=resource,
)
reviews_signals.reviews_email_submit_moderators_notifications.send(
@@ -94,7 +94,7 @@ def notify_accept_reject(resource, user, action, states, *args, **kwargs):
reviews_signals.reviews_email.send(
creator=user,
context=context,
- template=NotificationType.Type.REVIEWS_SUBMISSION_STATUS,
+ template=NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS,
action=action
)
@@ -110,7 +110,7 @@ def notify_edit_comment(resource, user, action, states, *args, **kwargs):
reviews_signals.reviews_email.send(
creator=user,
context=context,
- template=NotificationType.Type.REVIEWS_SUBMISSION_STATUS,
+ template=NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS,
action=action
)
@@ -118,21 +118,14 @@ def notify_edit_comment(resource, user, action, states, *args, **kwargs):
def notify_reject_withdraw_request(resource, action, *args, **kwargs):
context = get_email_template_context(resource)
context['requester_fullname'] = action.creator.fullname
- context['referrer_fullname'] = action.creator.fullname
- context['force_withdrawal'] = False
context['notify_comment'] = not resource.provider.reviews_comments_private
- context['reviewable_withdrawal_justification'] = resource.withdrawal_justification
for contributor in resource.contributors.all():
- context['user_fullname'] = contributor.fullname
context['contributor_fullname'] = contributor.fullname
- context['is_requester'] = action.creator == contributor
context['comment'] = action.comment
- NotificationType.Type.NODE_WITHDRAWAl_REQUEST_REJECTED.instance.emit(
+ NotificationTypeEnum.NODE_WITHDRAWAl_REQUEST_REJECTED.instance.emit(
user=contributor,
event_context={
- 'is_requester': contributor == action.creator,
- 'ever_public': getattr(resource, 'ever_public', resource.is_public),
**context
},
)
@@ -163,7 +156,7 @@ def notify_withdraw_registration(resource, action, *args, **kwargs):
context['user_fullname'] = contributor.fullname
context['is_requester'] = resource.retraction.initiated_by == contributor
- NotificationType.Type.NODE_WITHDRAWAl_REQUEST_APPROVED.instance.emit(
+ NotificationTypeEnum.NODE_WITHDRAWAl_REQUEST_APPROVED.instance.emit(
user=contributor,
event_context=context
)
diff --git a/osf_tests/management_commands/test_migrate_funder_ids_to_ror.py b/osf_tests/management_commands/test_migrate_funder_ids_to_ror.py
new file mode 100644
index 00000000000..a7bec602e5f
--- /dev/null
+++ b/osf_tests/management_commands/test_migrate_funder_ids_to_ror.py
@@ -0,0 +1,415 @@
+import os
+import pytest
+import tempfile
+from unittest import mock
+
+from django.core.management import call_command
+
+from osf.models import GuidMetadataRecord
+from osf.management.commands.migrate_funder_ids_to_ror import Command
+from osf_tests import factories
+
+
+@pytest.mark.django_db
+class TestMigrateFunderIdsToRor:
+
+ @pytest.fixture
+ def user(self):
+ return factories.UserFactory()
+
+ @pytest.fixture
+ def project(self, user):
+ return factories.ProjectFactory(creator=user)
+
+ @pytest.fixture
+ def csv_mapping_file(self):
+ """Create a temporary CSV file with test mapping data."""
+ content = """Funder Name\tror ID\tROR name\tCrossref DOI\tFunder ID
+National Institutes of Health\thttps://ror.org/01cwqze88\tNational Institutes of Health\thttp://dx.doi.org/10.13039/100000002\t100000002
+National Science Foundation\thttps://ror.org/021nxhr62\tNational Science Foundation\thttp://dx.doi.org/10.13039/100000001\t100000001
+European Research Council\thttps://ror.org/0472cxd90\tEuropean Research Council\thttp://dx.doi.org/10.13039/501100000781\t501100000781
+"""
+ with tempfile.NamedTemporaryFile(mode='w', suffix='.csv', delete=False) as f:
+ f.write(content)
+ temp_path = f.name
+
+ yield temp_path
+
+ # Cleanup
+ os.unlink(temp_path)
+
+ @pytest.fixture
+ def mock_reindex(self):
+ """Mock update_search and request_identifier_update to avoid actual re-indexing in tests."""
+ with mock.patch('osf.models.node.AbstractNode.update_search') as mock_search, \
+ mock.patch('osf.models.node.AbstractNode.request_identifier_update') as mock_doi:
+ yield mock_search, mock_doi
+
+ @pytest.fixture
+ def record_with_crossref_funder(self, project):
+ """Create a GuidMetadataRecord with Crossref Funder ID."""
+ record = GuidMetadataRecord.objects.for_guid(project._id)
+ record.funding_info = [{
+ 'funder_name': 'National Institutes of Health',
+ 'funder_identifier': 'http://dx.doi.org/10.13039/100000002',
+ 'funder_identifier_type': 'Crossref Funder ID',
+ 'award_number': 'R01-GM-123456',
+ 'award_title': 'Test Grant',
+ }]
+ record.save()
+ return record
+
+ @pytest.fixture
+ def record_with_multiple_funders(self, user):
+ """Create a GuidMetadataRecord with multiple funders (mix of Crossref and ROR)."""
+ project = factories.ProjectFactory(creator=user)
+ record = GuidMetadataRecord.objects.for_guid(project._id)
+ record.funding_info = [
+ {
+ 'funder_name': 'NIH',
+ 'funder_identifier': 'https://doi.org/10.13039/100000002',
+ 'funder_identifier_type': 'Crossref Funder ID',
+ 'award_number': 'R01-123',
+ },
+ {
+ 'funder_name': 'Already ROR',
+ 'funder_identifier': 'https://ror.org/existing123',
+ 'funder_identifier_type': 'ROR',
+ },
+ {
+ 'funder_name': 'NSF',
+ 'funder_identifier': '100000001',
+ 'funder_identifier_type': 'Crossref Funder ID',
+ },
+ ]
+ record.save()
+ return record
+
+ @pytest.fixture
+ def record_with_unmapped_funder(self, user):
+ """Create a GuidMetadataRecord with a funder not in the mapping."""
+ project = factories.ProjectFactory(creator=user)
+ record = GuidMetadataRecord.objects.for_guid(project._id)
+ record.funding_info = [{
+ 'funder_name': 'Unknown Funder',
+ 'funder_identifier': 'http://dx.doi.org/10.13039/999999999',
+ 'funder_identifier_type': 'Crossref Funder ID',
+ }]
+ record.save()
+ return record
+
+ def test_migrate_single_crossref_funder(self, record_with_crossref_funder, csv_mapping_file):
+ """Test migrating a single Crossref Funder ID to ROR."""
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ # Run migration (not dry run)
+ mapping = command.load_mapping(csv_mapping_file)
+ updated, stats = command.migrate_record(
+ record_with_crossref_funder,
+ mapping,
+ dry_run=False,
+ update_funder_name=False
+ )
+
+ assert updated is True
+ assert stats['migrated'] == 1
+ assert stats['not_found'] == 0
+
+ record_with_crossref_funder.refresh_from_db()
+ funder = record_with_crossref_funder.funding_info[0]
+
+ assert funder['funder_identifier'] == 'https://ror.org/01cwqze88'
+ assert funder['funder_identifier_type'] == 'ROR'
+ # Original name preserved (update_funder_name=False)
+ assert funder['funder_name'] == 'National Institutes of Health'
+ # Other fields preserved
+ assert funder['award_number'] == 'R01-GM-123456'
+ assert funder['award_title'] == 'Test Grant'
+
+ def test_migrate_with_funder_name_update(self, record_with_crossref_funder, csv_mapping_file):
+ """Test migrating with funder name update enabled."""
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ mapping = command.load_mapping(csv_mapping_file)
+ command.migrate_record(
+ record_with_crossref_funder,
+ mapping,
+ dry_run=False,
+ update_funder_name=True
+ )
+
+ record_with_crossref_funder.refresh_from_db()
+ funder = record_with_crossref_funder.funding_info[0]
+
+ assert funder['funder_identifier'] == 'https://ror.org/01cwqze88'
+ assert funder['funder_identifier_type'] == 'ROR'
+ assert funder['funder_name'] == 'National Institutes of Health'
+
+ def test_dry_run_does_not_modify(self, record_with_crossref_funder, csv_mapping_file):
+ """Test that dry run does not modify the database."""
+ original_funding_info = record_with_crossref_funder.funding_info.copy()
+
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ mapping = command.load_mapping(csv_mapping_file)
+ updated, stats = command.migrate_record(
+ record_with_crossref_funder,
+ mapping,
+ dry_run=True,
+ update_funder_name=False
+ )
+
+ assert updated is True # Would have updated
+ assert stats['migrated'] == 1
+
+ record_with_crossref_funder.refresh_from_db()
+ # Data should be unchanged
+ assert record_with_crossref_funder.funding_info == original_funding_info
+
+ def test_migrate_multiple_funders(self, record_with_multiple_funders, csv_mapping_file):
+ """Test migrating record with multiple funders."""
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ mapping = command.load_mapping(csv_mapping_file)
+ updated, stats = command.migrate_record(
+ record_with_multiple_funders,
+ mapping,
+ dry_run=False,
+ update_funder_name=False
+ )
+
+ assert updated is True
+ assert stats['migrated'] == 2 # NIH and NSF
+ assert stats['not_found'] == 0
+
+ record_with_multiple_funders.refresh_from_db()
+ funders = record_with_multiple_funders.funding_info
+
+ # NIH should be migrated
+ assert funders[0]['funder_identifier'] == 'https://ror.org/01cwqze88'
+ assert funders[0]['funder_identifier_type'] == 'ROR'
+
+ # Already ROR should be unchanged
+ assert funders[1]['funder_identifier'] == 'https://ror.org/existing123'
+ assert funders[1]['funder_identifier_type'] == 'ROR'
+
+ # NSF should be migrated
+ assert funders[2]['funder_identifier'] == 'https://ror.org/021nxhr62'
+ assert funders[2]['funder_identifier_type'] == 'ROR'
+
+ def test_unmapped_funder_removed(self, record_with_unmapped_funder, csv_mapping_file):
+ """Test that funders not in mapping are removed."""
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ mapping = command.load_mapping(csv_mapping_file)
+ updated, stats = command.migrate_record(
+ record_with_unmapped_funder,
+ mapping,
+ dry_run=False,
+ update_funder_name=False
+ )
+
+ assert updated is True
+ assert stats['migrated'] == 0
+ assert stats['not_found'] == 1
+ assert 'http://dx.doi.org/10.13039/999999999' in stats['unmapped_ids']
+
+ record_with_unmapped_funder.refresh_from_db()
+ assert record_with_unmapped_funder.funding_info == []
+
+ def test_load_mapping_various_id_formats(self, csv_mapping_file):
+ """Test that mapping handles various ID formats."""
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ mapping = command.load_mapping(csv_mapping_file)
+
+ # All these formats should map to the same ROR ID
+ assert mapping['100000002']['ror_id'] == 'https://ror.org/01cwqze88'
+ assert mapping['http://dx.doi.org/10.13039/100000002']['ror_id'] == 'https://ror.org/01cwqze88'
+ assert mapping['https://doi.org/10.13039/100000002']['ror_id'] == 'https://ror.org/01cwqze88'
+ assert mapping['10.13039/100000002']['ror_id'] == 'https://ror.org/01cwqze88'
+
+ def test_extract_funder_id(self):
+ """Test extraction of numeric funder ID from various formats."""
+ command = Command()
+
+ assert command.extract_funder_id('100000002') == '100000002'
+ assert command.extract_funder_id('http://dx.doi.org/10.13039/100000002') == '100000002'
+ assert command.extract_funder_id('https://doi.org/10.13039/100000002') == '100000002'
+ assert command.extract_funder_id('10.13039/100000002') == '100000002'
+
+ def test_empty_funding_info_skipped(self, project, csv_mapping_file):
+ """Test that records with empty funding_info are skipped."""
+ record = GuidMetadataRecord.objects.for_guid(project._id)
+ record.funding_info = []
+ record.save()
+
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ mapping = command.load_mapping(csv_mapping_file)
+ updated, stats = command.migrate_record(
+ record,
+ mapping,
+ dry_run=False,
+ update_funder_name=False
+ )
+
+ assert updated is False
+ assert stats['migrated'] == 0
+
+ def test_ror_funder_not_modified(self, user, csv_mapping_file):
+ """Test that funders already using ROR are not modified."""
+ project = factories.ProjectFactory(creator=user)
+ record = GuidMetadataRecord.objects.for_guid(project._id)
+ record.funding_info = [{
+ 'funder_name': 'Already ROR',
+ 'funder_identifier': 'https://ror.org/01cwqze88',
+ 'funder_identifier_type': 'ROR',
+ }]
+ record.save()
+
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ mapping = command.load_mapping(csv_mapping_file)
+ updated, stats = command.migrate_record(
+ record,
+ mapping,
+ dry_run=False,
+ update_funder_name=False
+ )
+
+ assert updated is False
+ assert stats['migrated'] == 0
+
+ record.refresh_from_db()
+ assert record.funding_info[0]['funder_identifier'] == 'https://ror.org/01cwqze88'
+
+ def test_reindex_triggered_after_migration(self, record_with_crossref_funder, csv_mapping_file, mock_reindex):
+ """Test that SHARE/DataCite re-indexing is triggered for migrated records."""
+ mock_update_search, mock_request_identifier_update = mock_reindex
+
+ call_command(
+ 'migrate_funder_ids_to_ror',
+ '--csv-file', csv_mapping_file,
+ )
+
+ # Verify re-indexing was triggered
+ mock_update_search.assert_called()
+ mock_request_identifier_update.assert_called_with('doi')
+
+ # Verify data was actually migrated
+ record_with_crossref_funder.refresh_from_db()
+ funder = record_with_crossref_funder.funding_info[0]
+ assert funder['funder_identifier'] == 'https://ror.org/01cwqze88'
+ assert funder['funder_identifier_type'] == 'ROR'
+
+ def test_reindex_not_triggered_on_dry_run(self, record_with_crossref_funder, csv_mapping_file, mock_reindex):
+ """Test that re-indexing is NOT triggered during dry run."""
+ mock_update_search, mock_request_identifier_update = mock_reindex
+
+ call_command(
+ 'migrate_funder_ids_to_ror',
+ '--csv-file', csv_mapping_file,
+ '--dry-run',
+ )
+
+ mock_update_search.assert_not_called()
+ mock_request_identifier_update.assert_not_called()
+
+ def test_reindex_not_triggered_with_skip_flag(self, record_with_crossref_funder, csv_mapping_file, mock_reindex):
+ """Test that re-indexing is NOT triggered when --skip-reindex is used."""
+ mock_update_search, mock_request_identifier_update = mock_reindex
+
+ call_command(
+ 'migrate_funder_ids_to_ror',
+ '--csv-file', csv_mapping_file,
+ '--skip-reindex',
+ )
+
+ mock_update_search.assert_not_called()
+ mock_request_identifier_update.assert_not_called()
+
+ # But data should still be migrated
+ record_with_crossref_funder.refresh_from_db()
+ funder = record_with_crossref_funder.funding_info[0]
+ assert funder['funder_identifier'] == 'https://ror.org/01cwqze88'
+ assert funder['funder_identifier_type'] == 'ROR'
+
+ def test_reindex_triggered_for_unmapped_records(self, record_with_unmapped_funder, csv_mapping_file, mock_reindex):
+ """Test that re-indexing IS triggered when unmapped funders are removed."""
+ mock_update_search, mock_request_identifier_update = mock_reindex
+
+ call_command(
+ 'migrate_funder_ids_to_ror',
+ '--csv-file', csv_mapping_file,
+ )
+
+ mock_update_search.assert_called()
+ mock_request_identifier_update.assert_called_with('doi')
+
+ def test_end_to_end_call_command(self, record_with_crossref_funder, record_with_multiple_funders, csv_mapping_file, mock_reindex):
+ """Test the full management command end-to-end via call_command."""
+ mock_update_search, mock_request_identifier_update = mock_reindex
+
+ call_command(
+ 'migrate_funder_ids_to_ror',
+ '--csv-file', csv_mapping_file,
+ )
+
+ # Record with single crossref funder should be migrated
+ record_with_crossref_funder.refresh_from_db()
+ funder = record_with_crossref_funder.funding_info[0]
+ assert funder['funder_identifier'] == 'https://ror.org/01cwqze88'
+ assert funder['funder_identifier_type'] == 'ROR'
+ assert funder['award_number'] == 'R01-GM-123456'
+
+ # Record with multiple funders should have Crossref ones migrated
+ record_with_multiple_funders.refresh_from_db()
+ funders = record_with_multiple_funders.funding_info
+ assert funders[0]['funder_identifier'] == 'https://ror.org/01cwqze88'
+ assert funders[0]['funder_identifier_type'] == 'ROR'
+ assert funders[1]['funder_identifier'] == 'https://ror.org/existing123'
+ assert funders[1]['funder_identifier_type'] == 'ROR'
+ assert funders[2]['funder_identifier'] == 'https://ror.org/021nxhr62'
+ assert funders[2]['funder_identifier_type'] == 'ROR'
+
+ # Re-indexing should have been triggered for both updated records
+ assert mock_update_search.call_count == 2
+ assert mock_request_identifier_update.call_count == 2
+
+ def test_crossref_funder_uri_type_also_migrated(self, user, csv_mapping_file):
+ """Test that legacy 'Crossref Funder URI' type is also migrated (found in staging data)."""
+ project = factories.ProjectFactory(creator=user)
+ record = GuidMetadataRecord.objects.for_guid(project._id)
+ record.funding_info = [{
+ 'funder_name': 'National Institutes of Health',
+ 'funder_identifier': 'http://dx.doi.org/10.13039/100000002',
+ 'funder_identifier_type': 'Crossref Funder URI',
+ 'award_number': '',
+ 'award_title': '',
+ }]
+ record.save()
+
+ command = Command()
+ command.stdout = type('MockStdout', (), {'write': lambda self, x: None})()
+
+ mapping = command.load_mapping(csv_mapping_file)
+ updated, stats = command.migrate_record(
+ record, mapping, dry_run=False, update_funder_name=False
+ )
+
+ assert updated is True
+ assert stats['migrated'] == 1
+
+ record.refresh_from_db()
+ funder = record.funding_info[0]
+ assert funder['funder_identifier'] == 'https://ror.org/01cwqze88'
+ assert funder['funder_identifier_type'] == 'ROR'
diff --git a/osf_tests/management_commands/test_migrate_notifications.py b/osf_tests/management_commands/test_migrate_notifications.py
index 1ea906d0d17..0bcecbdd37f 100644
--- a/osf_tests/management_commands/test_migrate_notifications.py
+++ b/osf_tests/management_commands/test_migrate_notifications.py
@@ -11,6 +11,7 @@
)
from osf.models import (
NotificationType,
+ NotificationTypeEnum,
NotificationSubscription,
)
from osf.management.commands.migrate_notifications import (
@@ -99,7 +100,7 @@ def test_migrate_provider_subscription(self, users, provider, provider2):
self.create_legacy_sub(event_name='global_reviews', users=users, provider=RegistrationProvider.get_default())
migrate_legacy_notification_subscriptions()
subs = NotificationSubscription.objects.filter(
- notification_type__name=NotificationType.Type.REVIEWS_SUBMISSION_STATUS
+ notification_type__name=NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS
)
assert subs.count() == 9
for obj in [provider, provider2, RegistrationProvider.get_default()]:
@@ -108,7 +109,7 @@ def test_migrate_provider_subscription(self, users, provider, provider2):
def test_migrate_node_subscription(self, users, user, node):
migrate_legacy_notification_subscriptions()
- nt = NotificationType.objects.get(name=NotificationType.Type.NODE_FILE_UPDATED)
+ nt = NotificationType.objects.get(name=NotificationTypeEnum.NODE_FILE_UPDATED)
assert nt.object_content_type == ContentType.objects.get_for_model(Node)
subs = NotificationSubscription.objects.filter(notification_type=nt)
assert subs.count() == 1
@@ -130,7 +131,7 @@ def test_idempotent_migration(self, users, user, node, provider):
user=user,
object_id=node.id,
content_type=ContentType.objects.get_for_model(node.__class__),
- notification_type__name=NotificationType.Type.NODE_FILE_UPDATED
+ notification_type__name=NotificationTypeEnum.NODE_FILE_UPDATED
)
def test_migrate_all_subscription_types(self, users, user, provider, provider2, node):
@@ -158,7 +159,7 @@ def test_migrate_all_subscription_types(self, users, user, provider, provider2,
node_ct = ContentType.objects.get_for_model(node.__class__)
assert NotificationSubscription.objects.filter(
- notification_type=NotificationType.Type.NODE_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.NODE_FILE_UPDATED.instance,
content_type=node_ct,
object_id=node.id
).exists()
@@ -201,7 +202,7 @@ def test_migrate_batch_with_valid_and_invalid(self, users, user, node, provider)
)
migrate_legacy_notification_subscriptions()
assert NotificationSubscription.objects.filter(
- notification_type__name=NotificationType.Type.REVIEWS_SUBMISSION_STATUS
+ notification_type__name=NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS
).count() == 3
def test_migrate_subscription_frequencies_none(self, user, django_db_blocker):
@@ -214,7 +215,7 @@ def test_migrate_subscription_frequencies_none(self, user, django_db_blocker):
migrate_legacy_notification_subscriptions()
- nt = NotificationType.objects.get(name=NotificationType.Type.USER_FILE_UPDATED)
+ nt = NotificationType.objects.get(name=NotificationTypeEnum.USER_FILE_UPDATED)
subs = NotificationSubscription.objects.filter(notification_type=nt)
assert subs.count() == 1
assert subs.get().message_frequency == 'none'
@@ -228,7 +229,7 @@ def test_migrate_subscription_frequencies_transactional(self, user, django_db_bl
migrate_legacy_notification_subscriptions()
- nt = NotificationType.objects.get(name=NotificationType.Type.USER_FILE_UPDATED)
+ nt = NotificationType.objects.get(name=NotificationTypeEnum.USER_FILE_UPDATED)
subs = NotificationSubscription.objects.filter(
notification_type=nt,
content_type=ContentType.objects.get_for_model(user.__class__),
@@ -246,7 +247,7 @@ def test_migrate_global_subscription_frequencies_daily(self, user, django_db_blo
migrate_legacy_notification_subscriptions()
- nt = NotificationType.objects.get(name=NotificationType.Type.USER_FILE_UPDATED)
+ nt = NotificationType.objects.get(name=NotificationTypeEnum.USER_FILE_UPDATED)
subs = NotificationSubscription.objects.filter(
notification_type=nt,
content_type=ContentType.objects.get_for_model(user.__class__),
@@ -264,7 +265,7 @@ def test_migrate_node_subscription_frequencies_daily(self, user, node, django_db
migrate_legacy_notification_subscriptions()
- nt = NotificationType.objects.get(name=NotificationType.Type.NODE_FILE_UPDATED)
+ nt = NotificationType.objects.get(name=NotificationTypeEnum.NODE_FILE_UPDATED)
subs = NotificationSubscription.objects.filter(
user=user,
notification_type=nt,
@@ -283,7 +284,7 @@ def test_node_subscription_copy_group_frequency(self, user, node, django_db_bloc
migrate_legacy_notification_subscriptions()
- NotificationType.Type.FILE_UPDATED.instance.emit(
+ NotificationTypeEnum.FILE_UPDATED.instance.emit(
user=user,
subscribed_object=node,
event_context={
@@ -294,7 +295,7 @@ def test_node_subscription_copy_group_frequency(self, user, node, django_db_bloc
nt = NotificationSubscription.objects.get(
user=user,
- notification_type__name=NotificationType.Type.FILE_UPDATED,
+ notification_type__name=NotificationTypeEnum.FILE_UPDATED,
content_type=ContentType.objects.get_for_model(node),
object_id=node.id,
)
@@ -309,7 +310,7 @@ def test_user_subscription_copy_group_frequency(self, user, node, django_db_bloc
migrate_legacy_notification_subscriptions()
- NotificationType.Type.FILE_UPDATED.instance.emit(
+ NotificationTypeEnum.FILE_UPDATED.instance.emit(
user=user,
subscribed_object=user,
event_context={
@@ -320,7 +321,7 @@ def test_user_subscription_copy_group_frequency(self, user, node, django_db_bloc
nt = NotificationSubscription.objects.get(
user=user,
- notification_type__name=NotificationType.Type.FILE_UPDATED,
+ notification_type__name=NotificationTypeEnum.FILE_UPDATED,
content_type=ContentType.objects.get_for_model(user),
object_id=user.id,
)
@@ -335,7 +336,7 @@ def test_provider_subscription_copy_group_frequency(self, user, node, provider):
migrate_legacy_notification_subscriptions()
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.instance.emit(
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.instance.emit(
user=user,
subscribed_object=provider,
event_context={
@@ -346,8 +347,8 @@ def test_provider_subscription_copy_group_frequency(self, user, node, provider):
nt = NotificationSubscription.objects.get(
user=user,
- notification_type__name=NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS,
- content_type=ContentType.objects.get_for_model(provider, for_concrete_model=False),
+ notification_type__name=NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS,
+ content_type=ContentType.objects.get_for_model(provider),
object_id=provider.id,
)
assert nt.message_frequency == 'none'
diff --git a/osf_tests/metadata/expected_metadata_files/file_basic.linkset b/osf_tests/metadata/expected_metadata_files/file_basic.linkset
new file mode 100644
index 00000000000..f4cc87d6a8f
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/file_basic.linkset
@@ -0,0 +1,9 @@
+ ; rel="collection" ; anchor="http://localhost:5000/w3ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w3ibb",
+ ; rel="cite-as" ; anchor="http://localhost:5000/w3ibb",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="text/turtle; charset=utf-8",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/xml",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/ld+json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/linkset",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/linkset+json"
diff --git a/osf_tests/metadata/expected_metadata_files/file_basic.linkset.json b/osf_tests/metadata/expected_metadata_files/file_basic.linkset.json
new file mode 100644
index 00000000000..25bdb466711
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/file_basic.linkset.json
@@ -0,0 +1,48 @@
+{
+ "linkset": [
+ {
+ "anchor": "http://localhost:5000/w3ibb",
+ "collection": [
+ {
+ "href": "http://localhost:5000/w2ibb"
+ }
+ ],
+ "type": [
+ {
+ "href": "https://schema.org/DigitalDocument"
+ }
+ ],
+ "cite-as": [
+ {
+ "href": "http://localhost:5000/w3ibb"
+ }
+ ],
+ "describedby": [
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=turtle",
+ "type": "text/turtle; charset=utf-8"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=datacite-json",
+ "type": "application/json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=datacite-xml",
+ "type": "application/xml"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=google-dataset-json-ld",
+ "type": "application/ld+json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=linkset",
+ "type": "application/linkset"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=linkset-json",
+ "type": "application/linkset+json"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/file_full.linkset b/osf_tests/metadata/expected_metadata_files/file_full.linkset
new file mode 100644
index 00000000000..f4cc87d6a8f
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/file_full.linkset
@@ -0,0 +1,9 @@
+ ; rel="collection" ; anchor="http://localhost:5000/w3ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w3ibb",
+ ; rel="cite-as" ; anchor="http://localhost:5000/w3ibb",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="text/turtle; charset=utf-8",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/xml",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/ld+json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/linkset",
+ ; rel="describedby" ; anchor="http://localhost:5000/w3ibb" ; type="application/linkset+json"
diff --git a/osf_tests/metadata/expected_metadata_files/file_full.linkset.json b/osf_tests/metadata/expected_metadata_files/file_full.linkset.json
new file mode 100644
index 00000000000..25bdb466711
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/file_full.linkset.json
@@ -0,0 +1,48 @@
+{
+ "linkset": [
+ {
+ "anchor": "http://localhost:5000/w3ibb",
+ "collection": [
+ {
+ "href": "http://localhost:5000/w2ibb"
+ }
+ ],
+ "type": [
+ {
+ "href": "https://schema.org/DigitalDocument"
+ }
+ ],
+ "cite-as": [
+ {
+ "href": "http://localhost:5000/w3ibb"
+ }
+ ],
+ "describedby": [
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=turtle",
+ "type": "text/turtle; charset=utf-8"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=datacite-json",
+ "type": "application/json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=datacite-xml",
+ "type": "application/xml"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=google-dataset-json-ld",
+ "type": "application/ld+json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=linkset",
+ "type": "application/linkset"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w3ibb/?format=linkset-json",
+ "type": "application/linkset+json"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/file_full.turtle b/osf_tests/metadata/expected_metadata_files/file_full.turtle
index 492adf41375..4f529ed037f 100644
--- a/osf_tests/metadata/expected_metadata_files/file_full.turtle
+++ b/osf_tests/metadata/expected_metadata_files/file_full.turtle
@@ -29,8 +29,8 @@
dcterms:title "this is a project title!"@en ;
dcterms:type ;
owl:sameAs ;
- osf:funder ,
- ;
+ osf:funder ,
+ ;
osf:hasFunding ,
.
@@ -63,8 +63,8 @@
dcterms:identifier "https://doi.org/10.$$$$" ;
foaf:name "Mx. Moneypockets" .
- a dcterms:Agent ;
- dcterms:identifier "https://doi.org/10.$" ;
+ a dcterms:Agent ;
+ dcterms:identifier "https://ror.org/0example" ;
foaf:name "Caring Fan" .
a dcterms:Agent,
diff --git a/osf_tests/metadata/expected_metadata_files/preprint_basic.linkset b/osf_tests/metadata/expected_metadata_files/preprint_basic.linkset
new file mode 100644
index 00000000000..fb09d81e132
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/preprint_basic.linkset
@@ -0,0 +1,10 @@
+ ; rel="author" ; anchor="http://localhost:5000/w4ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w4ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w4ibb",
+ ; rel="cite-as" ; anchor="http://localhost:5000/w4ibb",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="text/turtle; charset=utf-8",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/xml",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/ld+json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/linkset",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/linkset+json"
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/preprint_basic.linkset.json b/osf_tests/metadata/expected_metadata_files/preprint_basic.linkset.json
new file mode 100644
index 00000000000..85db01da76b
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/preprint_basic.linkset.json
@@ -0,0 +1,51 @@
+{
+ "linkset": [
+ {
+ "anchor": "http://localhost:5000/w4ibb",
+ "author": [
+ {
+ "href": "http://localhost:5000/w1ibb"
+ }
+ ],
+ "type": [
+ {
+ "href": "https://schema.org/ScholarlyArticle"
+ },
+ {
+ "href": "https://schema.org/AboutPage"
+ }
+ ],
+ "cite-as": [
+ {
+ "href": "https://doi.org/11.pp/FK2osf.io/w4ibb_v1"
+ }
+ ],
+ "describedby": [
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=turtle",
+ "type": "text/turtle; charset=utf-8"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=datacite-json",
+ "type": "application/json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=datacite-xml",
+ "type": "application/xml"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=google-dataset-json-ld",
+ "type": "application/ld+json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=linkset",
+ "type": "application/linkset"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=linkset-json",
+ "type": "application/linkset+json"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/preprint_full.linkset b/osf_tests/metadata/expected_metadata_files/preprint_full.linkset
new file mode 100644
index 00000000000..a6acad9d317
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/preprint_full.linkset
@@ -0,0 +1,12 @@
+ ; rel="author" ; anchor="http://localhost:5000/w4ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w4ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w4ibb",
+ ; rel="cite-as" ; anchor="http://localhost:5000/w4ibb",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="text/turtle; charset=utf-8",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/xml",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/ld+json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/linkset",
+ ; rel="describedby" ; anchor="http://localhost:5000/w4ibb" ; type="application/linkset+json"
+
+
diff --git a/osf_tests/metadata/expected_metadata_files/preprint_full.linkset.json b/osf_tests/metadata/expected_metadata_files/preprint_full.linkset.json
new file mode 100644
index 00000000000..85db01da76b
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/preprint_full.linkset.json
@@ -0,0 +1,51 @@
+{
+ "linkset": [
+ {
+ "anchor": "http://localhost:5000/w4ibb",
+ "author": [
+ {
+ "href": "http://localhost:5000/w1ibb"
+ }
+ ],
+ "type": [
+ {
+ "href": "https://schema.org/ScholarlyArticle"
+ },
+ {
+ "href": "https://schema.org/AboutPage"
+ }
+ ],
+ "cite-as": [
+ {
+ "href": "https://doi.org/11.pp/FK2osf.io/w4ibb_v1"
+ }
+ ],
+ "describedby": [
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=turtle",
+ "type": "text/turtle; charset=utf-8"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=datacite-json",
+ "type": "application/json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=datacite-xml",
+ "type": "application/xml"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=google-dataset-json-ld",
+ "type": "application/ld+json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=linkset",
+ "type": "application/linkset"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w4ibb/?format=linkset-json",
+ "type": "application/linkset+json"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/preprint_full.turtle b/osf_tests/metadata/expected_metadata_files/preprint_full.turtle
index 6b28e0dfa3e..9e3f96bc09c 100644
--- a/osf_tests/metadata/expected_metadata_files/preprint_full.turtle
+++ b/osf_tests/metadata/expected_metadata_files/preprint_full.turtle
@@ -55,8 +55,8 @@
dcterms:title "this is a project title!"@en ;
dcterms:type ;
owl:sameAs ;
- osf:funder ,
- ;
+ osf:funder ,
+ ;
osf:hasFunding ,
.
@@ -121,8 +121,8 @@
dcterms:identifier "https://doi.org/10.$$$$" ;
foaf:name "Mx. Moneypockets" .
- a dcterms:Agent ;
- dcterms:identifier "https://doi.org/10.$" ;
+ a dcterms:Agent ;
+ dcterms:identifier "https://ror.org/0example" ;
foaf:name "Caring Fan" .
a skos:Concept ;
diff --git a/osf_tests/metadata/expected_metadata_files/project_basic.linkset b/osf_tests/metadata/expected_metadata_files/project_basic.linkset
new file mode 100644
index 00000000000..aa22a299c7d
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/project_basic.linkset
@@ -0,0 +1,11 @@
+ ; rel="author" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="cite-as" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="text/turtle; charset=utf-8",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/xml",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/ld+json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/linkset",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/linkset+json",
+ ; rel="item" ; anchor="http://localhost:5000/w2ibb" ; type="application/octet-stream"
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/project_basic.linkset.json b/osf_tests/metadata/expected_metadata_files/project_basic.linkset.json
new file mode 100644
index 00000000000..3d7c7fd63f6
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/project_basic.linkset.json
@@ -0,0 +1,57 @@
+{
+ "linkset": [
+ {
+ "anchor": "http://localhost:5000/w2ibb",
+ "author": [
+ {
+ "href": "http://localhost:5000/w1ibb"
+ }
+ ],
+ "type": [
+ {
+ "href": "https://schema.org/CreativeWork"
+ },
+ {
+ "href": "https://schema.org/AboutPage"
+ }
+ ],
+ "cite-as": [
+ {
+ "href": "https://doi.org/10.70102/FK2osf.io/w2ibb"
+ }
+ ],
+ "describedby": [
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=turtle",
+ "type": "text/turtle; charset=utf-8"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=datacite-json",
+ "type": "application/json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=datacite-xml",
+ "type": "application/xml"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=google-dataset-json-ld",
+ "type": "application/ld+json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=linkset",
+ "type": "application/linkset"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=linkset-json",
+ "type": "application/linkset+json"
+ }
+ ],
+ "item": [
+ {
+ "href": "http://localhost:5000/w3ibb",
+ "type": "application/octet-stream"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/project_full.datacite.json b/osf_tests/metadata/expected_metadata_files/project_full.datacite.json
index 312e74b2388..3ff394455a1 100644
--- a/osf_tests/metadata/expected_metadata_files/project_full.datacite.json
+++ b/osf_tests/metadata/expected_metadata_files/project_full.datacite.json
@@ -56,7 +56,8 @@
"awardTitle": "because reasons",
"funderIdentifier": {
"funderIdentifier": "https://doi.org/10.$$$$",
- "funderIdentifierType": "Crossref Funder ID"
+ "funderIdentifierType": "Crossref Funder ID",
+ "schemeURI": "https://www.crossref.org/services/funder-registry/"
},
"funderName": "Mx. Moneypockets"
},
@@ -68,14 +69,16 @@
"awardTitle": "because reasons!",
"funderIdentifier": {
"funderIdentifier": "https://doi.org/10.$$$$",
- "funderIdentifierType": "Crossref Funder ID"
+ "funderIdentifierType": "Crossref Funder ID",
+ "schemeURI": "https://www.crossref.org/services/funder-registry/"
},
"funderName": "Mx. Moneypockets"
},
{
"funderIdentifier": {
- "funderIdentifier": "https://doi.org/10.$",
- "funderIdentifierType": "Crossref Funder ID"
+ "funderIdentifier": "https://ror.org/0example",
+ "funderIdentifierType": "ROR",
+ "schemeURI": "https://ror.org/"
},
"funderName": "Caring Fan"
}
diff --git a/osf_tests/metadata/expected_metadata_files/project_full.datacite.xml b/osf_tests/metadata/expected_metadata_files/project_full.datacite.xml
index 524fbc33dd4..a161f7cad66 100644
--- a/osf_tests/metadata/expected_metadata_files/project_full.datacite.xml
+++ b/osf_tests/metadata/expected_metadata_files/project_full.datacite.xml
@@ -38,19 +38,19 @@
Mx. Moneypockets
- https://doi.org/10.$$$$
+ https://doi.org/10.$$$$
10000000
because reasons
Mx. Moneypockets
- https://doi.org/10.$$$$
+ https://doi.org/10.$$$$
2000000
because reasons!
Caring Fan
- https://doi.org/10.$
+ https://ror.org/0example
diff --git a/osf_tests/metadata/expected_metadata_files/project_full.linkset b/osf_tests/metadata/expected_metadata_files/project_full.linkset
new file mode 100644
index 00000000000..a7117e37879
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/project_full.linkset
@@ -0,0 +1,12 @@
+ ; rel="author" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="cite-as" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="text/turtle; charset=utf-8",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/xml",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/ld+json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/linkset",
+ ; rel="describedby" ; anchor="http://localhost:5000/w2ibb" ; type="application/linkset+json",
+ ; rel="license" ; anchor="http://localhost:5000/w2ibb",
+ ; rel="item" ; anchor="http://localhost:5000/w2ibb" ; type="application/octet-stream"
diff --git a/osf_tests/metadata/expected_metadata_files/project_full.linkset.json b/osf_tests/metadata/expected_metadata_files/project_full.linkset.json
new file mode 100644
index 00000000000..c8f857561c2
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/project_full.linkset.json
@@ -0,0 +1,62 @@
+{
+ "linkset": [
+ {
+ "anchor": "http://localhost:5000/w2ibb",
+ "author": [
+ {
+ "href": "http://localhost:5000/w1ibb"
+ }
+ ],
+ "type": [
+ {
+ "href": "https://schema.org/Dataset"
+ },
+ {
+ "href": "https://schema.org/AboutPage"
+ }
+ ],
+ "cite-as": [
+ {
+ "href": "https://doi.org/10.70102/FK2osf.io/w2ibb"
+ }
+ ],
+ "describedby": [
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=turtle",
+ "type": "text/turtle; charset=utf-8"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=datacite-json",
+ "type": "application/json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=datacite-xml",
+ "type": "application/xml"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=google-dataset-json-ld",
+ "type": "application/ld+json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=linkset",
+ "type": "application/linkset"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w2ibb/?format=linkset-json",
+ "type": "application/linkset+json"
+ }
+ ],
+ "license": [
+ {
+ "href": "https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode"
+ }
+ ],
+ "item": [
+ {
+ "href": "http://localhost:5000/w3ibb",
+ "type": "application/octet-stream"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/project_full.turtle b/osf_tests/metadata/expected_metadata_files/project_full.turtle
index 0085e6164e3..5d3d78b761e 100644
--- a/osf_tests/metadata/expected_metadata_files/project_full.turtle
+++ b/osf_tests/metadata/expected_metadata_files/project_full.turtle
@@ -27,8 +27,8 @@
owl:sameAs ;
dcat:accessService ;
osf:contains ;
- osf:funder ,
- ;
+ osf:funder ,
+ ;
osf:hasFunding ,
;
osf:hostingInstitution ;
@@ -116,8 +116,8 @@
dcterms:identifier "https://doi.org/10.$$$$" ;
foaf:name "Mx. Moneypockets" .
- a dcterms:Agent ;
- dcterms:identifier "https://doi.org/10.$" ;
+ a dcterms:Agent ;
+ dcterms:identifier "https://ror.org/0example" ;
foaf:name "Caring Fan" .
a dcterms:Agent,
diff --git a/osf_tests/metadata/expected_metadata_files/registration_basic.linkset b/osf_tests/metadata/expected_metadata_files/registration_basic.linkset
new file mode 100644
index 00000000000..76c314b85cc
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/registration_basic.linkset
@@ -0,0 +1,11 @@
+ ; rel="author" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="cite-as" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="text/turtle; charset=utf-8",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/xml",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/ld+json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/linkset",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/linkset+json",
+ ; rel="item" ; anchor="http://localhost:5000/w5ibb" ; type="application/octet-stream"
diff --git a/osf_tests/metadata/expected_metadata_files/registration_basic.linkset.json b/osf_tests/metadata/expected_metadata_files/registration_basic.linkset.json
new file mode 100644
index 00000000000..b4a1d25234b
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/registration_basic.linkset.json
@@ -0,0 +1,57 @@
+{
+ "linkset": [
+ {
+ "anchor": "http://localhost:5000/w5ibb",
+ "author": [
+ {
+ "href": "http://localhost:5000/w1ibb"
+ }
+ ],
+ "type": [
+ {
+ "href": "https://schema.org/Text"
+ },
+ {
+ "href": "https://schema.org/AboutPage"
+ }
+ ],
+ "cite-as": [
+ {
+ "href": "http://localhost:5000/w5ibb"
+ }
+ ],
+ "describedby": [
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=turtle",
+ "type": "text/turtle; charset=utf-8"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=datacite-json",
+ "type": "application/json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=datacite-xml",
+ "type": "application/xml"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=google-dataset-json-ld",
+ "type": "application/ld+json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=linkset",
+ "type": "application/linkset"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=linkset-json",
+ "type": "application/linkset+json"
+ }
+ ],
+ "item": [
+ {
+ "href": "http://localhost:5000/w6ibb",
+ "type": "application/octet-stream"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/registration_full.linkset b/osf_tests/metadata/expected_metadata_files/registration_full.linkset
new file mode 100644
index 00000000000..4104a235897
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/registration_full.linkset
@@ -0,0 +1,12 @@
+ ; rel="author" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="type" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="cite-as" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="text/turtle; charset=utf-8",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/xml",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/ld+json",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/linkset",
+ ; rel="describedby" ; anchor="http://localhost:5000/w5ibb" ; type="application/linkset+json",
+ ; rel="license" ; anchor="http://localhost:5000/w5ibb",
+ ; rel="item" ; anchor="http://localhost:5000/w5ibb" ; type="application/octet-stream"
diff --git a/osf_tests/metadata/expected_metadata_files/registration_full.linkset.json b/osf_tests/metadata/expected_metadata_files/registration_full.linkset.json
new file mode 100644
index 00000000000..010441fd390
--- /dev/null
+++ b/osf_tests/metadata/expected_metadata_files/registration_full.linkset.json
@@ -0,0 +1,62 @@
+{
+ "linkset": [
+ {
+ "anchor": "http://localhost:5000/w5ibb",
+ "author": [
+ {
+ "href": "http://localhost:5000/w1ibb"
+ }
+ ],
+ "type": [
+ {
+ "href": "https://schema.org/Text"
+ },
+ {
+ "href": "https://schema.org/AboutPage"
+ }
+ ],
+ "cite-as": [
+ {
+ "href": "http://localhost:5000/w5ibb"
+ }
+ ],
+ "describedby": [
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=turtle",
+ "type": "text/turtle; charset=utf-8"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=datacite-json",
+ "type": "application/json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=datacite-xml",
+ "type": "application/xml"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=google-dataset-json-ld",
+ "type": "application/ld+json"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=linkset",
+ "type": "application/linkset"
+ },
+ {
+ "href": "http://localhost:5000/metadata/w5ibb/?format=linkset-json",
+ "type": "application/linkset+json"
+ }
+ ],
+ "license": [
+ {
+ "href": "https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode"
+ }
+ ],
+ "item": [
+ {
+ "href": "http://localhost:5000/w6ibb",
+ "type": "application/octet-stream"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/osf_tests/metadata/expected_metadata_files/registration_full.turtle b/osf_tests/metadata/expected_metadata_files/registration_full.turtle
index ab75ae5888c..32599e57ab9 100644
--- a/osf_tests/metadata/expected_metadata_files/registration_full.turtle
+++ b/osf_tests/metadata/expected_metadata_files/registration_full.turtle
@@ -43,8 +43,8 @@
dcterms:title "this is a project title!"@en ;
dcterms:type ;
owl:sameAs ;
- osf:funder ,
- ;
+ osf:funder ,
+ ;
osf:hasFunding ,
.
@@ -98,8 +98,8 @@
dcterms:identifier "https://doi.org/10.$$$$" ;
foaf:name "Mx. Moneypockets" .
- a dcterms:Agent ;
- dcterms:identifier "https://doi.org/10.$" ;
+ a dcterms:Agent ;
+ dcterms:identifier "https://ror.org/0example" ;
foaf:name "Caring Fan" .
a dcterms:Agent,
diff --git a/osf_tests/metadata/test_osf_gathering.py b/osf_tests/metadata/test_osf_gathering.py
index 424042253f7..f235488e557 100644
--- a/osf_tests/metadata/test_osf_gathering.py
+++ b/osf_tests/metadata/test_osf_gathering.py
@@ -610,10 +610,16 @@ def test_gather_funding(self):
'award_uri': 'https://nih.example/award',
'award_number': '27',
},
+ {
+ 'funder_name': 'NSF',
+ 'funder_identifier': 'https://ror.org/021nxhr62',
+ 'funder_identifier_type': 'ROR',
+ },
]
_bnode1 = rdflib.BNode()
_award_uri = URIRef('https://nih.example/award')
_funder_uri = URIRef('https://doi.org/10.fake/NIH')
+ _ror_funder_uri = URIRef('https://ror.org/021nxhr62')
assert_triples(osf_gathering.gather_funding(self.projectfocus), {
(self.projectfocus.iri, OSF.funder, _bnode1),
(_bnode1, RDF.type, DCTERMS.Agent),
@@ -628,6 +634,10 @@ def test_gather_funding(self):
(_award_uri, DCTERMS.title, Literal('big fun')),
(_award_uri, OSF.awardNumber, Literal('27')),
(_award_uri, DCTERMS.contributor, _funder_uri),
+ (self.projectfocus.iri, OSF.funder, _ror_funder_uri),
+ (_ror_funder_uri, RDF.type, DCTERMS.Agent),
+ (_ror_funder_uri, DCTERMS.identifier, Literal(_ror_funder_uri)),
+ (_ror_funder_uri, FOAF.name, Literal('NSF')),
})
# focus: registration
assert_triples(osf_gathering.gather_funding(self.registrationfocus), set())
diff --git a/osf_tests/metadata/test_serialized_metadata.py b/osf_tests/metadata/test_serialized_metadata.py
index 53c5577ede7..5dc4029aaf4 100644
--- a/osf_tests/metadata/test_serialized_metadata.py
+++ b/osf_tests/metadata/test_serialized_metadata.py
@@ -31,6 +31,9 @@
'datacite-xml': 'project_basic.datacite.xml',
'datacite-json': 'project_basic.datacite.json',
'google-dataset-json-ld': 'project_basic.google-dataset.json',
+
+ 'linkset': 'project_basic.linkset',
+ 'linkset-json': 'project_basic.linkset.json',
},
},
OSF.Preprint: {
@@ -39,6 +42,9 @@
'datacite-xml': 'preprint_basic.datacite.xml',
'datacite-json': 'preprint_basic.datacite.json',
'google-dataset-json-ld': 'preprint_basic.google-dataset.json',
+
+ 'linkset': 'preprint_basic.linkset',
+ 'linkset-json': 'preprint_basic.linkset.json',
},
},
OSF.Registration: {
@@ -47,6 +53,9 @@
'datacite-xml': 'registration_basic.datacite.xml',
'datacite-json': 'registration_basic.datacite.json',
'google-dataset-json-ld': 'registration_basic.google-dataset.json',
+
+ 'linkset': 'registration_basic.linkset',
+ 'linkset-json': 'registration_basic.linkset.json',
},
},
OSF.File: {
@@ -55,6 +64,8 @@
'datacite-xml': 'file_basic.datacite.xml',
'datacite-json': 'file_basic.datacite.json',
'google-dataset-json-ld': 'file_basic.google-dataset.json',
+ 'linkset': 'file_basic.linkset',
+ 'linkset-json': 'file_basic.linkset.json',
},
},
DCTERMS.Agent: {
@@ -71,6 +82,9 @@
'datacite-xml': 'project_full.datacite.xml',
'datacite-json': 'project_full.datacite.json',
'google-dataset-json-ld': 'project_full.google-dataset.json',
+
+ 'linkset': 'project_full.linkset',
+ 'linkset-json': 'project_full.linkset.json',
},
OsfmapPartition.SUPPLEMENT: {
'turtle': 'project_supplement.turtle',
@@ -85,6 +99,9 @@
'datacite-xml': 'preprint_full.datacite.xml',
'datacite-json': 'preprint_full.datacite.json',
'google-dataset-json-ld': 'preprint_full.google-dataset.json',
+
+ 'linkset': 'preprint_full.linkset',
+ 'linkset-json': 'preprint_full.linkset.json',
},
OsfmapPartition.SUPPLEMENT: {
'turtle': 'preprint_supplement.turtle',
@@ -99,6 +116,9 @@
'datacite-xml': 'registration_full.datacite.xml',
'datacite-json': 'registration_full.datacite.json',
'google-dataset-json-ld': 'registration_full.google-dataset.json',
+
+ 'linkset': 'registration_full.linkset',
+ 'linkset-json': 'registration_full.linkset.json',
},
OsfmapPartition.SUPPLEMENT: {
'turtle': 'registration_supplement.turtle',
@@ -113,6 +133,8 @@
'datacite-xml': 'file_full.datacite.xml',
'datacite-json': 'file_full.datacite.json',
'google-dataset-json-ld': 'file_full.google-dataset.json',
+ 'linkset': 'file_full.linkset',
+ 'linkset-json': 'file_full.linkset.json',
},
OsfmapPartition.SUPPLEMENT: {
'turtle': 'file_supplement.turtle',
@@ -139,6 +161,8 @@
'datacite-xml': 'application/xml',
'datacite-json': 'application/json',
'google-dataset-json-ld': 'application/ld+json',
+ 'linkset': 'application/linkset',
+ 'linkset-json': 'application/linkset+json',
}
@@ -328,10 +352,10 @@ def _setUp_full(self):
'award_number': '2000000',
'award_uri': 'https://moneypockets.example/millions-more',
'award_title': 'because reasons!',
- }, { # no award info, just a funder:
+ }, { # no award info, just a funder with ROR identifier:
'funder_name': 'Caring Fan',
- 'funder_identifier': 'https://doi.org/10.$',
- 'funder_identifier_type': 'Crossref Funder ID',
+ 'funder_identifier': 'https://ror.org/0example',
+ 'funder_identifier_type': 'ROR',
'award_number': '',
'award_uri': '',
'award_title': '',
diff --git a/osf_tests/test_archiver.py b/osf_tests/test_archiver.py
index 1e4ece0b016..1987c1088ee 100644
--- a/osf_tests/test_archiver.py
+++ b/osf_tests/test_archiver.py
@@ -20,7 +20,7 @@
from website.archiver import listeners
from website.archiver.tasks import * # noqa: F403
-from osf.models import Guid, RegistrationSchema, Registration, NotificationType
+from osf.models import Guid, RegistrationSchema, Registration, NotificationTypeEnum
from osf.models.archive import ArchiveTarget, ArchiveJob
from osf.models.base import generate_object_id
from osf.utils.migrations import map_schema_to_schemablocks
@@ -735,8 +735,8 @@ def test_handle_archive_fail(self):
{}
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.DESK_ARCHIVE_JOB_COPY_ERROR
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_ARCHIVE_JOB_COPY_ERROR
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DESK_ARCHIVE_JOB_COPY_ERROR
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_ARCHIVE_JOB_COPY_ERROR
assert notifications['emits'][0]['kwargs']['destination_address'] == settings.OSF_SUPPORT_EMAIL
assert notifications['emits'][1]['kwargs']['user'] == self.user
self.dst.reload()
@@ -752,8 +752,8 @@ def test_handle_archive_fail_copy(self):
{}
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.DESK_ARCHIVE_JOB_COPY_ERROR
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_ARCHIVE_JOB_COPY_ERROR
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DESK_ARCHIVE_JOB_COPY_ERROR
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_ARCHIVE_JOB_COPY_ERROR
assert notifications['emits'][0]['kwargs']['destination_address'] == settings.OSF_SUPPORT_EMAIL
assert notifications['emits'][1]['kwargs']['user'] == self.user
@@ -767,8 +767,8 @@ def test_handle_archive_fail_size(self):
{}
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.DESK_ARCHIVE_JOB_EXCEEDED
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_ARCHIVE_JOB_EXCEEDED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DESK_ARCHIVE_JOB_EXCEEDED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_ARCHIVE_JOB_EXCEEDED
assert notifications['emits'][0]['kwargs']['destination_address'] == settings.OSF_SUPPORT_EMAIL
assert notifications['emits'][1]['kwargs']['user'] == self.user
@@ -782,8 +782,8 @@ def test_handle_archive_uncaught_error(self):
{}
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.DESK_ARCHIVE_JOB_UNCAUGHT_ERROR
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_ARCHIVE_JOB_UNCAUGHT_ERROR
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DESK_ARCHIVE_JOB_UNCAUGHT_ERROR
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_ARCHIVE_JOB_UNCAUGHT_ERROR
assert notifications['emits'][0]['kwargs']['destination_address'] == settings.OSF_SUPPORT_EMAIL
assert notifications['emits'][1]['kwargs']['user'] == self.user
diff --git a/osf_tests/test_collection.py b/osf_tests/test_collection.py
index 5eba83ac530..1dd1b3473b9 100644
--- a/osf_tests/test_collection.py
+++ b/osf_tests/test_collection.py
@@ -5,7 +5,7 @@
from framework.auth import Auth
-from osf.models import Collection, NotificationType
+from osf.models import Collection, NotificationTypeEnum
from osf.exceptions import NodeStateError
from tests.utils import capture_notifications
from website.views import find_bookmark_collection
@@ -134,7 +134,7 @@ def test_node_removed_from_collection_on_privacy_change_notify(self, auth, provi
with capture_notifications() as notifications:
provider_collected_node.set_privacy('private', auth=auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_PRIVATE
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_PRIVATE
@mock.patch('osf.models.node.Node.check_privacy_change_viability', mock.Mock()) # mocks the storage usage limits
def test_node_removed_from_collection_on_privacy_change_no_provider(self, auth, collected_node, bookmark_collection):
diff --git a/osf_tests/test_collection_submission.py b/osf_tests/test_collection_submission.py
index 478a437f5a5..2b661f00873 100644
--- a/osf_tests/test_collection_submission.py
+++ b/osf_tests/test_collection_submission.py
@@ -8,7 +8,7 @@
from osf_tests.factories import NodeFactory, CollectionFactory, CollectionProviderFactory
-from osf.models import CollectionSubmission, NotificationType
+from osf.models import CollectionSubmission, NotificationTypeEnum
from osf.utils.workflows import CollectionSubmissionStates
from framework.exceptions import PermissionsError
from api_tests.utils import UserRoles
@@ -165,8 +165,8 @@ def test_notify_contributors_pending(self, node, moderated_collection):
)
collection_submission.save()
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_SUBMITTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_SUBMITTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert collection_submission.state == CollectionSubmissionStates.PENDING
def test_notify_moderators_pending(self, node, moderated_collection):
@@ -179,8 +179,8 @@ def test_notify_moderators_pending(self, node, moderated_collection):
)
collection_submission.save()
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_SUBMITTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_SUBMITTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert collection_submission.state == CollectionSubmissionStates.PENDING
@pytest.mark.parametrize('user_role', [UserRoles.UNAUTHENTICATED, UserRoles.NONCONTRIB])
@@ -201,7 +201,7 @@ def test_notify_moderated_accepted(self, node, moderated_collection_submission):
with capture_notifications() as notifications:
moderated_collection_submission.accept(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_ACCEPTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_ACCEPTED
assert moderated_collection_submission.state == CollectionSubmissionStates.ACCEPTED
@@ -224,7 +224,7 @@ def test_notify_moderated_rejected(self, node, moderated_collection_submission):
with capture_notifications() as notifications:
moderated_collection_submission.reject(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REJECTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REJECTED
assert moderated_collection_submission.state == CollectionSubmissionStates.REJECTED
@@ -253,7 +253,7 @@ def test_notify_moderated_removed_moderator(self, node, moderated_collection_sub
with capture_notifications() as notifications:
moderated_collection_submission.remove(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_MODERATOR
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_MODERATOR
assert moderated_collection_submission.state == CollectionSubmissionStates.REMOVED
@@ -264,8 +264,8 @@ def test_notify_moderated_removed_admin(self, node, moderated_collection_submiss
with capture_notifications() as notifications:
moderated_collection_submission.remove(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 2
- assert notifications['emits'][1]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN
assert moderated_collection_submission.state == CollectionSubmissionStates.REMOVED
@@ -350,8 +350,8 @@ def test_notify_moderated_removed_admin(self, node, unmoderated_collection_submi
with capture_notifications() as notifications:
unmoderated_collection_submission.remove(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN
- assert notifications['emits'][1]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN
assert unmoderated_collection_submission.state == CollectionSubmissionStates.REMOVED
def test_resubmit_success(self, node, unmoderated_collection_submission):
@@ -454,7 +454,7 @@ def test_notify_moderated_accepted(self, node, hybrid_moderated_collection_submi
with capture_notifications() as notifications:
hybrid_moderated_collection_submission.accept(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_ACCEPTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_ACCEPTED
assert hybrid_moderated_collection_submission.state == CollectionSubmissionStates.ACCEPTED
@pytest.mark.parametrize('user_role', [UserRoles.UNAUTHENTICATED, UserRoles.NONCONTRIB])
@@ -476,7 +476,7 @@ def test_notify_moderated_rejected(self, node, hybrid_moderated_collection_submi
with capture_notifications() as notifications:
hybrid_moderated_collection_submission.reject(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REJECTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REJECTED
assert hybrid_moderated_collection_submission.state == CollectionSubmissionStates.REJECTED
@pytest.mark.parametrize('user_role', UserRoles.excluding(*[UserRoles.ADMIN_USER, UserRoles.MODERATOR]))
@@ -504,7 +504,7 @@ def test_notify_moderated_removed_moderator(self, node, hybrid_moderated_collect
with capture_notifications() as notifications:
hybrid_moderated_collection_submission.remove(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_MODERATOR
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_MODERATOR
assert hybrid_moderated_collection_submission.state == CollectionSubmissionStates.REMOVED
def test_notify_moderated_removed_admin(self, node, hybrid_moderated_collection_submission):
@@ -514,8 +514,8 @@ def test_notify_moderated_removed_admin(self, node, hybrid_moderated_collection_
with capture_notifications() as notifications:
hybrid_moderated_collection_submission.remove(user=moderator, comment='Test Comment')
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN
- assert notifications['emits'][1]['type'] == NotificationType.Type.COLLECTION_SUBMISSION_REMOVED_ADMIN
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.COLLECTION_SUBMISSION_REMOVED_ADMIN
assert hybrid_moderated_collection_submission.state == CollectionSubmissionStates.REMOVED
diff --git a/osf_tests/test_institution.py b/osf_tests/test_institution.py
index b0575d02fe6..039b0ce04dd 100644
--- a/osf_tests/test_institution.py
+++ b/osf_tests/test_institution.py
@@ -4,7 +4,7 @@
import pytest
from addons.osfstorage.models import Region
-from osf.models import Institution, InstitutionStorageRegion, NotificationType
+from osf.models import Institution, InstitutionStorageRegion, NotificationTypeEnum
from osf_tests.factories import (
AuthUserFactory,
InstitutionFactory,
@@ -157,8 +157,8 @@ def test_send_deactivation_email_call_count(self):
with capture_notifications() as notifications:
institution._send_deactivation_email()
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INSTITUTION_DEACTIVATION
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_INSTITUTION_DEACTIVATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INSTITUTION_DEACTIVATION
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_INSTITUTION_DEACTIVATION
def test_send_deactivation_email_call_args(self):
institution = InstitutionFactory()
@@ -168,7 +168,7 @@ def test_send_deactivation_email_call_args(self):
with capture_notifications() as notifications:
institution._send_deactivation_email()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INSTITUTION_DEACTIVATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INSTITUTION_DEACTIVATION
def test_deactivate_inactive_institution_noop(self):
institution = InstitutionFactory()
diff --git a/osf_tests/test_institutional_admin_contributors.py b/osf_tests/test_institutional_admin_contributors.py
index 8f4c7fad1c1..ad9f7075832 100644
--- a/osf_tests/test_institutional_admin_contributors.py
+++ b/osf_tests/test_institutional_admin_contributors.py
@@ -2,7 +2,7 @@
from unittest import mock
-from osf.models import Contributor, NotificationType
+from osf.models import Contributor, NotificationTypeEnum
from osf_tests.factories import (
AuthUserFactory,
ProjectFactory,
@@ -142,7 +142,7 @@ def test_requested_permissions_or_default(self, app, project, institutional_admi
auth=mock.ANY,
permissions=permissions.ADMIN, # `requested_permissions` should take precedence
visible=True,
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
make_curator=False,
)
@@ -168,7 +168,7 @@ def test_permissions_override_requested_permissions(self, app, project, institut
auth=mock.ANY,
permissions=permissions.ADMIN, # `requested_permissions` should take precedence
visible=True,
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
make_curator=False,
)
@@ -194,6 +194,6 @@ def test_requested_permissions_is_used(self, app, project, institutional_admin):
auth=mock.ANY,
permissions=permissions.ADMIN, # `requested_permissions` should take precedence
visible=True,
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST,
make_curator=False,
)
diff --git a/osf_tests/test_merging_users.py b/osf_tests/test_merging_users.py
index f0d1c1069ca..e505b5580e3 100644
--- a/osf_tests/test_merging_users.py
+++ b/osf_tests/test_merging_users.py
@@ -19,7 +19,7 @@
)
from importlib import import_module
from django.conf import settings as django_conf_settings
-from osf.models import UserSessionMap, NotificationType
+from osf.models import UserSessionMap, NotificationTypeEnum
from tests.utils import run_celery_tasks, capture_notifications
from waffle.testutils import override_flag
from osf.features import ENABLE_GV
@@ -300,5 +300,5 @@ def test_send_confirm_email_emits_merge_notification(self):
with capture_notifications() as notifications:
send_confirm_email(merger, target_email)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_CONFIRM_MERGE
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_CONFIRM_MERGE
assert notifications['emits'][0]['kwargs']['destination_address'] == target_email
diff --git a/osf_tests/test_node.py b/osf_tests/test_node.py
index e6c9424b51d..98447188a8b 100644
--- a/osf_tests/test_node.py
+++ b/osf_tests/test_node.py
@@ -34,7 +34,7 @@
NodeRelation,
Registration,
DraftRegistration,
- CollectionSubmission, NotificationType
+ CollectionSubmission, NotificationTypeEnum
)
from addons.wiki.models import WikiPage, WikiVersion
@@ -2150,7 +2150,7 @@ def test_set_privacy(self, node, auth):
with capture_notifications() as notifications:
node.set_privacy('public', auth=auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_NEW_PUBLIC_PROJECT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_NEW_PUBLIC_PROJECT
assert node.logs.first().action == NodeLog.MADE_PUBLIC
assert last_logged_before_method_call != node.last_logged
node.save()
@@ -2171,7 +2171,7 @@ def test_set_privacy_sends_mail(self, node, auth):
node.set_privacy('private', auth=auth)
node.set_privacy('public', auth=auth, meeting_creation=False)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_NEW_PUBLIC_PROJECT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_NEW_PUBLIC_PROJECT
def test_set_privacy_can_not_cancel_pending_embargo_for_registration(self, node, user, auth):
registration = RegistrationFactory(project=node)
diff --git a/osf_tests/test_registration_moderation_notifications.py b/osf_tests/test_registration_moderation_notifications.py
index ca16b4eb993..5516344a2b1 100644
--- a/osf_tests/test_registration_moderation_notifications.py
+++ b/osf_tests/test_registration_moderation_notifications.py
@@ -6,7 +6,7 @@
from notifications.tasks import send_users_digest_email
from osf.management.commands.populate_notification_types import populate_notification_types
from osf.migrations import update_provider_auth_groups
-from osf.models import Brand, NotificationSubscription, NotificationType
+from osf.models import Brand, NotificationSubscription, NotificationTypeEnum
from osf.models.action import RegistrationAction
from osf.utils.notifications import (
notify_submit,
@@ -135,11 +135,11 @@ def test_submit_notifications(self, registration, moderator, admin, contrib, pro
notify_submit(registration, admin)
assert len(notification['emits']) == 3
- assert notification['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notification['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
assert notification['emits'][0]['kwargs']['user'] == admin
- assert notification['emits'][1]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notification['emits'][1]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
assert notification['emits'][1]['kwargs']['user'] == contrib
- assert notification['emits'][2]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notification['emits'][2]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert NotificationSubscription.objects.count() == 7
digest = NotificationSubscription.objects.last()
assert digest.user == moderator
diff --git a/osf_tests/test_reviewable.py b/osf_tests/test_reviewable.py
index f3627d1faf2..954abd6ee1f 100644
--- a/osf_tests/test_reviewable.py
+++ b/osf_tests/test_reviewable.py
@@ -1,7 +1,7 @@
from unittest import mock
import pytest
-from osf.models import Preprint, NotificationType
+from osf.models import Preprint, NotificationTypeEnum
from osf.utils.workflows import DefaultStates
from osf_tests.factories import PreprintFactory, AuthUserFactory
from tests.utils import capture_notifications
@@ -48,7 +48,7 @@ def test_reject_resubmission_sends_emails(self):
with capture_notifications() as notifications:
preprint.run_submit(user)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
assert preprint.machine_state == DefaultStates.PENDING.value
assert not user.notification_subscriptions.exists()
@@ -59,5 +59,5 @@ def test_reject_resubmission_sends_emails(self):
with capture_notifications() as notifications:
preprint.run_submit(user) # Resubmission alerts users and moderators
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_RESUBMISSION_CONFIRMATION
assert preprint.machine_state == DefaultStates.PENDING.value
diff --git a/osf_tests/test_schema_responses.py b/osf_tests/test_schema_responses.py
index 958150aee76..c087c6f514e 100644
--- a/osf_tests/test_schema_responses.py
+++ b/osf_tests/test_schema_responses.py
@@ -3,7 +3,7 @@
from api.providers.workflows import Workflows
from framework.exceptions import PermissionsError
from osf.exceptions import PreviousSchemaResponseError, SchemaResponseStateError, SchemaResponseUpdateError
-from osf.models import RegistrationSchema, RegistrationSchemaBlock, SchemaResponseBlock, NotificationType
+from osf.models import RegistrationSchema, RegistrationSchemaBlock, SchemaResponseBlock, NotificationTypeEnum
from osf.models import schema_response # import module for mocking purposes
from osf.utils.workflows import ApprovalStates, SchemaResponseTriggers
from osf_tests.factories import AuthUserFactory, ProjectFactory, RegistrationFactory, RegistrationProviderFactory
@@ -259,7 +259,7 @@ def test_create_from_previous_response_notification(
initiator=admin_user
)
assert len(notifications['emits']) == len(notification_recipients)
- assert all(notification['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_INITIATED
+ assert all(notification['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_INITIATED
for notification in notifications['emits'])
assert all(notification['kwargs']['user'].username in notification_recipients for notification in notifications['emits'])
@@ -588,9 +588,9 @@ def test_submit_response_notification(
with capture_notifications() as notifications:
revised_response.submit(user=admin_user, required_approvers=[admin_user])
assert len(notifications['emits']) == 3
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_SUBMITTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_SUBMITTED
- assert notifications['emits'][2]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_SUBMITTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_SUBMITTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_SUBMITTED
+ assert notifications['emits'][2]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_SUBMITTED
def test_no_submit_notification_on_initial_response(self, initial_response, admin_user):
initial_response.approvals_state_machine.set_state(ApprovalStates.IN_PROGRESS)
@@ -752,7 +752,7 @@ def test_reject_response_notification(
with capture_notifications() as notifications:
revised_response.reject(user=admin_user)
assert len(notifications['emits']) == 3
- assert all(notification['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_REJECTED
+ assert all(notification['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_REJECTED
for notification in notifications['emits'])
def test_no_reject_notification_on_initial_response(self, initial_response, admin_user):
@@ -861,9 +861,9 @@ def test_accept_notification_sent_on_admin_approval(self, revised_response, admi
revised_response.approve(user=admin_user)
assert len(notifications['emits']) == 2
assert notifications['emits'][0]['kwargs']['user'] == moderator
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert notifications['emits'][1]['kwargs']['user'] == admin_user
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
def test_moderators_notified_on_admin_approval(self, revised_response, admin_user, moderator):
revised_response.approvals_state_machine.set_state(ApprovalStates.UNAPPROVED)
@@ -874,9 +874,9 @@ def test_moderators_notified_on_admin_approval(self, revised_response, admin_use
revised_response.approve(user=admin_user)
assert len(notifications['emits']) == 2
assert notifications['emits'][0]['kwargs']['user'] == moderator
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS
assert notifications['emits'][1]['kwargs']['user'] == admin_user
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
def test_no_moderator_notification_on_admin_approval_of_initial_response(
self, initial_response, admin_user):
@@ -914,9 +914,9 @@ def test_moderator_accept_notification(
with capture_notifications() as notifications:
revised_response.accept(user=moderator)
assert len(notifications['emits']) == 3
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
- assert notifications['emits'][2]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
+ assert notifications['emits'][2]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_APPROVED
def test_no_moderator_accept_notification_on_initial_response(
self, initial_response, moderator):
@@ -954,9 +954,9 @@ def test_moderator_reject_notification(
with capture_notifications() as notifications:
revised_response.reject(user=moderator)
assert len(notifications['emits']) == 3
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_REJECTED
- assert notifications['emits'][1]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_REJECTED
- assert notifications['emits'][2]['type'] == NotificationType.Type.NODE_SCHEMA_RESPONSE_REJECTED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_REJECTED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_REJECTED
+ assert notifications['emits'][2]['type'] == NotificationTypeEnum.NODE_SCHEMA_RESPONSE_REJECTED
def test_no_moderator_reject_notification_on_initial_response(
self, initial_response, moderator):
diff --git a/osf_tests/test_user.py b/osf_tests/test_user.py
index 1846652f66a..2e5d0631cd4 100644
--- a/osf_tests/test_user.py
+++ b/osf_tests/test_user.py
@@ -32,7 +32,7 @@
PreprintContributor,
DraftRegistrationContributor,
UserSessionMap,
- NotificationType,
+ NotificationTypeEnum,
)
from osf.models.institution_affiliation import get_user_by_institution_identity
from addons.github.tests.factories import GitHubAccountFactory
@@ -946,7 +946,7 @@ def test_set_password_notify_default(self, user):
user.save()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_PASSWORD_RESET
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_PASSWORD_RESET
def test_set_password_no_notify(self, user):
old_password = 'password'
diff --git a/package.json b/package.json
index fe7ef44be4c..9e322c164b5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "OSF",
- "version": "26.1.6",
+ "version": "26.5.0",
"description": "Facilitating Open Science",
"repository": "https://github.com/CenterForOpenScience/osf.io",
"author": "Center for Open Science",
diff --git a/pyproject.toml b/pyproject.toml
index d9973dae373..b1646584209 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "osf-io"
-version = "24.05.2"
+version = "26.5.0"
description = "The code for [https://osf.io](https://osf.io)."
authors = ["Your Name "]
license = "Apache License 2.0"
diff --git a/scripts/disable_removed_beat_tasks.py b/scripts/disable_removed_beat_tasks.py
new file mode 100644
index 00000000000..9a455716e85
--- /dev/null
+++ b/scripts/disable_removed_beat_tasks.py
@@ -0,0 +1,24 @@
+from framework.celery_tasks import app as celery_app
+from website import settings
+from django.db.models import Q
+from django_celery_beat.models import PeriodicTask, PeriodicTasks
+
+
+@celery_app.task(name='scripts.disable_removed_beat_tasks')
+def disable_removed_beat_tasks():
+ """
+ Disable django-celery-beat PeriodicTask entries that no longer exist
+ and re-enable those that do exist, based on the current CeleryConfig.beat_schedule.
+ """
+
+ beat_schedule_keys = settings.CeleryConfig.beat_schedule.keys() if hasattr(settings.CeleryConfig, 'beat_schedule') else None
+ if not beat_schedule_keys:
+ return
+
+ desired_task_names = set(beat_schedule_keys) | {'celery.backend_cleanup'} # Built-in backend cleanup task
+
+ qs_disable = PeriodicTask.objects.filter(~Q(name__in=desired_task_names))
+ qs_disable.update(enabled=False)
+ qs_enable = PeriodicTask.objects.filter(name__in=desired_task_names)
+ qs_enable.update(enabled=True)
+ PeriodicTasks.update_changed() # Notify django-celery-beat of the changes
diff --git a/scripts/osfstorage/usage_audit.py b/scripts/osfstorage/usage_audit.py
index d3f555aab75..49003c56fdc 100644
--- a/scripts/osfstorage/usage_audit.py
+++ b/scripts/osfstorage/usage_audit.py
@@ -19,7 +19,7 @@
from framework.celery_tasks import app as celery_app
-from osf.models import TrashedFile, Node, NotificationType
+from osf.models import TrashedFile, Node, NotificationTypeEnum
from website.app import init_app
from website.settings.defaults import GBs
@@ -110,7 +110,7 @@ def main(send_email=False):
if lines:
if send_email:
logger.info('Sending email...')
- NotificationType.Type.EMPTY.instance.emit(
+ NotificationTypeEnum.EMPTY.instance.emit(
destination_address='support+scripts@osf.io',
event_context={
'body': '\n'.join(lines),
diff --git a/scripts/populate_notification_subscriptions.py b/scripts/populate_notification_subscriptions.py
deleted file mode 100644
index 557b9f2a47d..00000000000
--- a/scripts/populate_notification_subscriptions.py
+++ /dev/null
@@ -1,113 +0,0 @@
-import django
-django.setup()
-
-from website.app import init_app
-init_app(routes=False)
-
-from framework.celery_tasks import app as celery_app
-from django.contrib.contenttypes.models import ContentType
-from django.db.models import Count, F, OuterRef, Subquery, IntegerField, CharField
-from django.db.models.functions import Cast
-from osf.models import OSFUser, Node, NotificationSubscription, NotificationType
-
-
-@celery_app.task(name='scripts.populate_notification_subscriptions')
-def populate_notification_subscriptions():
- created = 0
- user_file_nt = NotificationType.Type.USER_FILE_UPDATED.instance
- review_nt = NotificationType.Type.REVIEWS_SUBMISSION_STATUS.instance
- node_file_nt = NotificationType.Type.NODE_FILE_UPDATED.instance
-
- user_ct = ContentType.objects.get_for_model(OSFUser)
- node_ct = ContentType.objects.get_for_model(Node)
-
- reviews_qs = OSFUser.objects.exclude(subscriptions__notification_type__name=NotificationType.Type.REVIEWS_SUBMISSION_STATUS).distinct('id')
- files_qs = OSFUser.objects.exclude(subscriptions__notification_type__name=NotificationType.Type.USER_FILE_UPDATED).distinct('id')
-
- node_notifications_sq = (
- NotificationSubscription.objects.filter(
- content_type=node_ct,
- notification_type=node_file_nt,
- object_id=Cast(OuterRef('pk'), CharField()),
- ).values(
- 'object_id'
- ).annotate(
- cnt=Count('id')
- ).values('cnt')[:1]
- )
-
- nodes_qs = (
- Node.objects
- .annotate(
- contributors_count=Count('_contributors', distinct=True),
- notifications_count=Subquery(
- node_notifications_sq,
- output_field=IntegerField(),
- ),
- ).exclude(contributors_count=F('notifications_count'))
- )
-
- print(f"Creating REVIEWS_SUBMISSION_STATUS subscriptions for {reviews_qs.count()} users.")
- for id, user in enumerate(reviews_qs, 1):
- print(f"Processing user {id} / {reviews_qs.count()}")
- try:
- _, is_created = NotificationSubscription.objects.get_or_create(
- notification_type=review_nt,
- user=user,
- content_type=user_ct,
- object_id=user.id,
- defaults={
- 'message_frequency': 'none',
- },
- )
- if is_created:
- created += 1
- except Exception as exeption:
- print(exeption)
- continue
-
- print(f"Creating USER_FILE_UPDATED subscriptions for {files_qs.count()} users.")
- for id, user in enumerate(files_qs, 1):
- print(f"Processing user {id} / {files_qs.count()}")
- try:
- _, is_created = NotificationSubscription.objects.get_or_create(
- notification_type=user_file_nt,
- user=user,
- content_type=user_ct,
- object_id=user.id,
- defaults={
- '_is_digest': True,
- 'message_frequency': 'none',
- },
- )
- if is_created:
- created += 1
- except Exception as exeption:
- print(exeption)
- continue
-
- print(f"Creating NODE_FILE_UPDATED subscriptions for {nodes_qs.count()} nodes.")
- for id, node in enumerate(nodes_qs, 1):
- print(f"Processing node {id} / {nodes_qs.count()}")
- for contributor in node.contributors.all():
- try:
- _, is_created = NotificationSubscription.objects.get_or_create(
- notification_type=node_file_nt,
- user=contributor,
- content_type=node_ct,
- object_id=node.id,
- defaults={
- '_is_digest': True,
- 'message_frequency': 'none',
- },
- )
- if is_created:
- created += 1
- except Exception as exeption:
- print(exeption)
- continue
-
- print(f"Created {created} subscriptions")
-
-if __name__ == '__main__':
- populate_notification_subscriptions.delay()
diff --git a/scripts/remove_after_use/merge_notification_subscription_provider_ct.py b/scripts/remove_after_use/merge_notification_subscription_provider_ct.py
new file mode 100644
index 00000000000..50da93b2669
--- /dev/null
+++ b/scripts/remove_after_use/merge_notification_subscription_provider_ct.py
@@ -0,0 +1,31 @@
+import django
+django.setup()
+
+from website.app import init_app
+init_app(routes=False)
+
+from django.contrib.contenttypes.models import ContentType
+from framework.celery_tasks import app as celery_app
+from osf.models import NotificationSubscription
+
+
+@celery_app.task(name='scripts.remove_after_use.merge_notification_subscription_provider_ct')
+def merge_notification_subscription_provider_ct():
+
+ abstract_provider_ct = ContentType.objects.get_by_natural_key('osf', 'abstractprovider')
+
+ provider_ct_list = [
+ ContentType.objects.get_by_natural_key('osf', 'preprintprovider'),
+ ContentType.objects.get_by_natural_key('osf', 'registrationprovider'),
+ ContentType.objects.get_by_natural_key('osf', 'collectionprovider'),
+ ]
+ subscriptions = NotificationSubscription.objects.filter(
+ content_type__in=provider_ct_list
+ )
+ subscriptions.update(
+ content_type=abstract_provider_ct
+ )
+
+
+if __name__ == '__main__':
+ merge_notification_subscription_provider_ct.delay()
diff --git a/scripts/remove_after_use/populate_notification_subscriptions_node_file_updated.py b/scripts/remove_after_use/populate_notification_subscriptions_node_file_updated.py
new file mode 100644
index 00000000000..61625ce6b1f
--- /dev/null
+++ b/scripts/remove_after_use/populate_notification_subscriptions_node_file_updated.py
@@ -0,0 +1,128 @@
+import django
+django.setup()
+
+from website.app import init_app
+init_app(routes=False)
+
+from datetime import datetime
+from framework.celery_tasks import app as celery_app
+from django.contrib.contenttypes.models import ContentType
+from django.db.models import Count, F, OuterRef, Subquery, IntegerField, CharField
+from django.db.models.functions import Cast, Coalesce
+from osf.models import Node, NotificationSubscription, NotificationTypeEnum
+
+
+@celery_app.task(name='scripts.remove_after_use.populate_notification_subscriptions_node_file_updated')
+def populate_notification_subscriptions_node_file_updated(batch_size: int = 1000):
+ print('---Starting NODE_FILE_UPDATED subscriptions population script----')
+ global_start = datetime.now()
+
+ node_file_nt = NotificationTypeEnum.NODE_FILE_UPDATED
+
+ node_ct = ContentType.objects.get_for_model(Node)
+
+ node_notifications_sq = (
+ NotificationSubscription.objects.filter(
+ content_type=node_ct,
+ notification_type=node_file_nt.instance,
+ object_id=Cast(OuterRef('pk'), CharField()),
+ ).values(
+ 'object_id'
+ ).annotate(
+ cnt=Count('id')
+ ).values('cnt')[:1]
+ )
+
+ nodes_qs = (
+ Node.objects
+ .filter(is_deleted=False)
+ .annotate(
+ contributors_count=Count('_contributors', distinct=True),
+ notifications_count=Coalesce(
+ Subquery(
+ node_notifications_sq,
+ output_field=IntegerField(),
+ ),
+ 0
+ ),
+ ).exclude(contributors_count=F('notifications_count'))
+ ).iterator(chunk_size=batch_size)
+
+ items_to_create = []
+ total_created = 0
+ batch_start = datetime.now()
+ count_nodes = 0
+ count_contributors = 0
+ for node in nodes_qs:
+ count_nodes += 1
+ for contributor in node.contributors.all():
+ count_contributors += 1
+ items_to_create.append(
+ NotificationSubscription(
+ notification_type=node_file_nt.instance,
+ user=contributor,
+ content_type=node_ct,
+ object_id=node.id,
+ _is_digest=True,
+ message_frequency='none',
+ )
+ )
+ if len(items_to_create) >= batch_size:
+ print(f'Creating batch of {len(items_to_create)} subscriptions...')
+ try:
+ NotificationSubscription.objects.bulk_create(
+ items_to_create,
+ batch_size=batch_size,
+ ignore_conflicts=True,
+ )
+ total_created += len(items_to_create)
+ items_to_create = []
+ except Exception as exeption:
+ print(f"Error during bulk_create: {exeption}")
+ continue
+ finally:
+ items_to_create.clear()
+ batch_end = datetime.now()
+ print(f'Batch took {batch_end - batch_start}')
+
+ if count_contributors % batch_size == 0:
+ print(f'Processed {count_nodes} nodes with {count_contributors} contributors, created {total_created} subscriptions')
+ batch_start = datetime.now()
+
+ if items_to_create:
+ final_batch_start = datetime.now()
+ print(f'Creating final batch of {len(items_to_create)} subscriptions...')
+ try:
+ NotificationSubscription.objects.bulk_create(
+ items_to_create,
+ batch_size=batch_size,
+ ignore_conflicts=True,
+ )
+ total_created += len(items_to_create)
+ except Exception as exeption:
+ print(f"Error during bulk_create: {exeption}")
+ final_batch_end = datetime.now()
+ print(f'Final batch took {final_batch_end - final_batch_start}')
+
+ global_end = datetime.now()
+ print(f'Total time for NODE_FILE_UPDATED subscription population: {global_end - global_start}')
+ print(f'Created {total_created} subscriptions.')
+ print('----Creation finished----')
+
+@celery_app.task(name='scripts.remove_after_use.update_notification_subscriptions_node_file_updated')
+def update_notification_subscriptions_node_file_updated():
+ print('---Starting NODE_FILE_UPDATED subscriptions update script----')
+
+ node_file_nt = NotificationTypeEnum.NODE_FILE_UPDATED
+
+ updated_start = datetime.now()
+ updated = (
+ NotificationSubscription.objects.filter(
+ notification_type__name=node_file_nt,
+ _is_digest=False,
+ )
+ .update(_is_digest=True)
+ )
+ updated_end = datetime.now()
+ print(f'Updated {updated} subscriptions. Took time: {updated_end - updated_start}')
+ print('Update finished.')
diff --git a/scripts/remove_after_use/populate_notification_subscriptions_user_global_file_updated.py b/scripts/remove_after_use/populate_notification_subscriptions_user_global_file_updated.py
new file mode 100644
index 00000000000..651143d6f8a
--- /dev/null
+++ b/scripts/remove_after_use/populate_notification_subscriptions_user_global_file_updated.py
@@ -0,0 +1,111 @@
+import django
+django.setup()
+
+from website.app import init_app
+init_app(routes=False)
+
+from django.utils import timezone
+from dateutil.relativedelta import relativedelta
+from datetime import datetime
+from framework.celery_tasks import app as celery_app
+from django.contrib.contenttypes.models import ContentType
+from osf.models import OSFUser, NotificationSubscription, NotificationTypeEnum
+
+@celery_app.task(name='scripts.remove_after_use.populate_notification_subscriptions_user_global_file_updated')
+def populate_notification_subscriptions_user_global_file_updated(per_last_years: int | None= None, batch_size: int = 1000):
+ print('---Starting USER_FILE_UPDATED subscriptions population script----')
+ global_start = datetime.now()
+
+ user_file_updated_nt = NotificationTypeEnum.USER_FILE_UPDATED
+ user_ct = ContentType.objects.get_for_model(OSFUser)
+ if per_last_years:
+ from_date = timezone.now() - relativedelta(years=per_last_years)
+ user_qs = (OSFUser.objects
+ .filter(date_last_login__gte=from_date)
+ .exclude(subscriptions__notification_type__name=user_file_updated_nt)
+ .distinct('id')
+ .order_by('id')
+ .iterator(chunk_size=batch_size)
+ )
+ else:
+ user_qs = (OSFUser.objects
+ .exclude(subscriptions__notification_type__name=user_file_updated_nt)
+ .distinct('id')
+ .order_by('id')
+ .iterator(chunk_size=batch_size)
+ )
+
+ items_to_create = []
+ total_created = 0
+
+ batch_start = datetime.now()
+ for count, user in enumerate(user_qs, 1):
+ items_to_create.append(
+ NotificationSubscription(
+ notification_type=user_file_updated_nt.instance,
+ user=user,
+ content_type=user_ct,
+ object_id=user.id,
+ _is_digest=True,
+ message_frequency='none',
+ )
+ )
+ if len(items_to_create) >= batch_size:
+ print(f'Creating batch of {len(items_to_create)} subscriptions...')
+ try:
+ NotificationSubscription.objects.bulk_create(
+ items_to_create,
+ batch_size=batch_size,
+ ignore_conflicts=True,
+ )
+ total_created += len(items_to_create)
+ except Exception as e:
+ print(f'Error during bulk_create: {e}')
+ finally:
+ items_to_create.clear()
+ batch_end = datetime.now()
+ print(f'Batch took {batch_end - batch_start}')
+
+ if count % batch_size == 0:
+ print(f'Processed {count}, created {total_created}')
+ batch_start = datetime.now()
+
+ if items_to_create:
+ final_batch_start = datetime.now()
+ print(f'Creating final batch of {len(items_to_create)} subscriptions...')
+ try:
+ NotificationSubscription.objects.bulk_create(
+ items_to_create,
+ batch_size=batch_size,
+ ignore_conflicts=True,
+ )
+ total_created += len(items_to_create)
+ except Exception as e:
+ print(f'Error during bulk_create: {e}')
+ final_batch_end = datetime.now()
+ print(f'Final batch took {final_batch_end - final_batch_start}')
+
+ global_end = datetime.now()
+ print(f'Total time for USER_FILE_UPDATED subscription population: {global_end - global_start}')
+ print(f'Created {total_created} subscriptions.')
+ print('----Creation finished----')
+
+@celery_app.task(name='scripts.remove_after_use.update_notification_subscriptions_user_global_file_updated')
+def update_notification_subscriptions_user_global_file_updated():
+ print('---Starting USER_FILE_UPDATED subscriptions updating script----')
+
+ user_file_updated_nt = NotificationTypeEnum.USER_FILE_UPDATED
+
+ update_start = datetime.now()
+ updated = (
+ NotificationSubscription.objects
+ .filter(
+ notification_type__name=user_file_updated_nt,
+ _is_digest=False,
+ )
+ .update(_is_digest=True)
+ )
+ update_end = datetime.now()
+
+ print(f'Updated {updated} subscriptions. Took time: {update_end - update_start}')
+ print('Update finished.')
diff --git a/scripts/remove_after_use/populate_notification_subscriptions_user_global_reviews.py b/scripts/remove_after_use/populate_notification_subscriptions_user_global_reviews.py
new file mode 100644
index 00000000000..edfca287d0d
--- /dev/null
+++ b/scripts/remove_after_use/populate_notification_subscriptions_user_global_reviews.py
@@ -0,0 +1,104 @@
+import django
+django.setup()
+
+from website.app import init_app
+init_app(routes=False)
+
+from django.utils import timezone
+from dateutil.relativedelta import relativedelta
+from datetime import datetime
+from framework.celery_tasks import app as celery_app
+from django.contrib.contenttypes.models import ContentType
+from osf.models import OSFUser, NotificationSubscription, NotificationTypeEnum
+
+
+@celery_app.task(name='scripts.remove_after_use.populate_notification_subscriptions_user_global_reviews')
+def populate_notification_subscriptions_user_global_reviews(per_last_years: int | None = None, batch_size: int = 1000):
+ print('---Starting REVIEWS_SUBMISSION_STATUS subscriptions population script----')
+ global_start = datetime.now()
+
+ review_nt = NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS
+ user_ct = ContentType.objects.get_for_model(OSFUser)
+ if per_last_years:
+ from_date = timezone.now() - relativedelta(years=per_last_years)
+ user_qs = OSFUser.objects.filter(date_last_login__gte=from_date).exclude(
+ subscriptions__notification_type__name=review_nt.instance
+ ).distinct('id')
+ else:
+ user_qs = OSFUser.objects.exclude(
+ subscriptions__notification_type__name=review_nt.instance
+ ).distinct('id')
+
+ items_to_create = []
+ total_created = 0
+
+ batch_start = datetime.now()
+ for count, user in enumerate(user_qs, 1):
+ items_to_create.append(
+ NotificationSubscription(
+ notification_type=review_nt.instance,
+ user=user,
+ content_type=user_ct,
+ object_id=user.id,
+ _is_digest=True,
+ message_frequency='none',
+ )
+ )
+ if len(items_to_create) >= batch_size:
+ print(f'Creating batch of {len(items_to_create)} subscriptions...')
+ try:
+ NotificationSubscription.objects.bulk_create(
+ items_to_create,
+ batch_size=batch_size,
+ ignore_conflicts=True,
+ )
+ total_created += len(items_to_create)
+ except Exception as e:
+ print(f'Error during bulk_create: {e}')
+ finally:
+ items_to_create.clear()
+ batch_end = datetime.now()
+ print(f'Batch took {batch_end - batch_start}')
+
+ if count % batch_size == 0:
+ print(f'Processed {count}, created {total_created}')
+ batch_start = datetime.now()
+
+ if items_to_create:
+ final_batch_start = datetime.now()
+ print(f'Creating final batch of {len(items_to_create)} subscriptions...')
+ try:
+ NotificationSubscription.objects.bulk_create(
+ items_to_create,
+ batch_size=batch_size,
+ ignore_conflicts=True,
+ )
+ total_created += len(items_to_create)
+ except Exception as e:
+ print(f'Error during bulk_create: {e}')
+ final_batch_end = datetime.now()
+ print(f'Final batch took {final_batch_end - final_batch_start}')
+
+ global_end = datetime.now()
+ print(f'Total time for REVIEWS_SUBMISSION_STATUS subscription population: {global_end - global_start}')
+ print(f'Created {total_created} subscriptions.')
+ print('----Creation finished----')
+
+@celery_app.task(name='scripts.remove_after_use.update_notification_subscriptions_user_global_reviews')
+def update_notification_subscriptions_user_global_reviews():
+ print('---Starting REVIEWS_SUBMISSION_STATUS subscriptions updating script----')
+
+ review_nt = NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS
+
+ updated_start = datetime.now()
+ updated = (
+ NotificationSubscription.objects.filter(
+ notification_type__name=review_nt,
+ _is_digest=False,
+ )
+ .update(_is_digest=True)
+ )
+ updated_end = datetime.now()
+
+ print(f'Updated {updated} subscriptions. Took time: {updated_end - updated_start}')
+ print('Update finished.')
diff --git a/scripts/stuck_registration_audit.py b/scripts/stuck_registration_audit.py
index 36eca5e52ab..b9cdb53c27c 100644
--- a/scripts/stuck_registration_audit.py
+++ b/scripts/stuck_registration_audit.py
@@ -14,7 +14,7 @@
from framework.auth import Auth
from framework.celery_tasks import app as celery_app
from osf.management.commands import force_archive as fa
-from osf.models import Registration, NotificationType
+from osf.models import Registration, NotificationTypeEnum
from website.settings import ADDONS_REQUESTED
from scripts import utils as scripts_utils
@@ -95,13 +95,12 @@ def main():
dict_writer.writeheader()
dict_writer.writerows(broken_registrations)
- NotificationType.Type.DESK_ARCHIVE_REGISTRATION_STUCK.instance.emit(
+ NotificationTypeEnum.DESK_ARCHIVE_REGISTRATION_STUCK.instance.emit(
destination_address=settings.OSF_SUPPORT_EMAIL,
event_context={
'broken_registrations_count': len(broken_registrations),
'attachment_name': filename,
'attachement_content': output.getvalue(),
- 'can_change_preferences': False
}
)
diff --git a/scripts/tests/test_deactivate_requested_accounts.py b/scripts/tests/test_deactivate_requested_accounts.py
index d2adf6f76fe..fdc6233b920 100644
--- a/scripts/tests/test_deactivate_requested_accounts.py
+++ b/scripts/tests/test_deactivate_requested_accounts.py
@@ -1,6 +1,6 @@
import pytest
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from osf_tests.factories import ProjectFactory, AuthUserFactory
from osf.management.commands.deactivate_requested_accounts import deactivate_requested_accounts
@@ -30,7 +30,7 @@ def test_deactivate_user_with_no_content(self, user_requested_deactivation):
with capture_notifications() as notifications:
deactivate_requested_accounts(dry_run=False)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_REQUEST_DEACTIVATION_COMPLETE
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_REQUEST_DEACTIVATION_COMPLETE
user_requested_deactivation.reload()
assert user_requested_deactivation.requested_deactivation
@@ -42,7 +42,7 @@ def test_deactivate_user_with_content(self, user_requested_deactivation_with_nod
with capture_notifications() as notifications:
deactivate_requested_accounts(dry_run=False)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DESK_REQUEST_DEACTIVATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DESK_REQUEST_DEACTIVATION
user_requested_deactivation_with_node.reload()
assert user_requested_deactivation_with_node.requested_deactivation
diff --git a/scripts/tests/test_populate_new_and_noteworthy.py b/scripts/tests/test_populate_new_and_noteworthy.py
index d2a66ef613d..dbe183930f4 100644
--- a/scripts/tests/test_populate_new_and_noteworthy.py
+++ b/scripts/tests/test_populate_new_and_noteworthy.py
@@ -36,6 +36,7 @@ def test_get_new_and_noteworthy_nodes(self):
new_noteworthy = script.get_new_and_noteworthy_nodes(self.new_and_noteworthy_links_node)
assert set(new_noteworthy) == self.all_ids
+ @mock.patch.object(script, 'NEW_AND_NOTEWORTHY_LINKS_NODE', NEW_AND_NOTEWORTHY_LINKS_NODE)
def test_populate_new_and_noteworthy(self):
assert self.new_and_noteworthy_links_node._nodes.count() == 0
diff --git a/scripts/triggered_mails.py b/scripts/triggered_mails.py
index 4b56d12c5df..389a82c257f 100644
--- a/scripts/triggered_mails.py
+++ b/scripts/triggered_mails.py
@@ -2,11 +2,11 @@
import uuid
from django.db import transaction
-from django.db.models import Q, Exists, OuterRef
+from django.db.models import Q, F
from django.utils import timezone
from framework.celery_tasks import app as celery_app
-from osf.models import OSFUser, NotificationType
+from osf.models import OSFUser, NotificationTypeEnum
from website.app import init_app
from website import settings
from osf import features
@@ -60,31 +60,38 @@ def find_inactive_users_without_enqueued_or_sent_no_login():
Match your original inactivity rules, but exclude users who already have a no_login EmailTask
either pending, started, retrying, or already sent successfully.
"""
+ now = timezone.now()
- # Subquery: Is there already a not-yet-failed/aborted EmailTask for this user with our prefix?
- existing_no_login = EmailTask.objects.filter(
- user_id=OuterRef('pk'),
- task_id__startswith=NO_LOGIN_PREFIX,
- status__in=['PENDING', 'STARTED', 'RETRY', 'SUCCESS'],
- )
cutoff_query = Q(date_last_login__gte=settings.NO_LOGIN_EMAIL_CUTOFF - settings.NO_LOGIN_WAIT_TIME) if settings.NO_LOGIN_EMAIL_CUTOFF else Q()
base_q = OSFUser.objects.filter(
cutoff_query,
is_active=True,
).filter(
Q(
- date_last_login__lt=timezone.now() - settings.NO_LOGIN_WAIT_TIME,
+ date_last_login__lt=now - settings.NO_LOGIN_WAIT_TIME,
# NOT tagged osf4m
) & ~Q(tags__name='osf4m')
|
Q(
- date_last_login__lt=timezone.now() - settings.NO_LOGIN_OSF4M_WAIT_TIME,
+ date_last_login__lt=now - settings.NO_LOGIN_OSF4M_WAIT_TIME,
tags__name='osf4m'
)
).distinct()
- # Exclude users who already have a task for this email type
- return base_q.annotate(_has_task=Exists(existing_no_login)).filter(_has_task=False)
+ # Exclude users who have already received a no-login email recently
+ base_q = base_q.filter(
+ Q(no_login_email_last_sent__isnull=True) |
+ (
+ Q(no_login_email_last_sent__lt=now - settings.NO_LOGIN_WAIT_TIME) &
+ Q(no_login_email_last_sent__lt=F('date_last_login'))
+ )
+ )
+ # Exlude users who already have a pending/started/retrying EmailTask for no-login
+ base_q = base_q.exclude(
+ emailtask__task_id__startswith=NO_LOGIN_PREFIX,
+ emailtask__status__in=['PENDING', 'STARTED', 'RETRY']
+ )
+ return base_q
@celery_app.task(name='scripts.triggered_no_login_email')
@@ -124,7 +131,7 @@ def send_no_login_email(email_task_id: int):
email_task.save()
logger.warning(f'EmailTask {email_task.id}: user {user.id} is not active')
return
- NotificationType.Type.USER_NO_LOGIN.instance.emit(
+ NotificationTypeEnum.USER_NO_LOGIN.instance.emit(
user=user,
event_context={
'user_fullname': user.fullname,
@@ -133,6 +140,8 @@ def send_no_login_email(email_task_id: int):
)
email_task.status = 'SUCCESS'
email_task.save()
+ user.no_login_email_last_sent = timezone.now()
+ user.save()
except Exception as exc: # noqa: BLE001
logger.exception(f'EmailTask {email_task.id}: error while sending')
diff --git a/tests/identifiers/test_datacite.py b/tests/identifiers/test_datacite.py
index ba432402a88..1a774ceea71 100644
--- a/tests/identifiers/test_datacite.py
+++ b/tests/identifiers/test_datacite.py
@@ -6,7 +6,7 @@
from django.utils import timezone
from framework.auth import Auth
-from osf.models import Outcome
+from osf.models import GuidMetadataRecord, Outcome
from osf.utils.outcomes import ArtifactTypes
from osf_tests.factories import AuthUserFactory, IdentifierFactory, RegistrationFactory
from tests.base import OsfTestCase
@@ -300,6 +300,151 @@ def test_datacite_format_related_resources__ignores_inactive_resources(self, dat
]
_assert_unordered_list_of_dicts_equal(metadata_dict['relatedIdentifiers'], expected_relationships)
+ def _set_funding_info(self, registration, funding_info):
+ metadata_record = GuidMetadataRecord.objects.for_guid(registration._id)
+ metadata_record.funding_info = funding_info
+ metadata_record.save()
+
+ def test_datacite_funding_references_with_ror_identifier_xml(self, registration, datacite_client):
+ self._set_funding_info(registration, [
+ {
+ 'funder_name': 'National Science Foundation',
+ 'funder_identifier': 'https://ror.org/021nxhr62',
+ 'funder_identifier_type': 'ROR',
+ },
+ ])
+ metadata_xml = datacite_client.build_metadata(registration)
+ parser = lxml.etree.XMLParser(ns_clean=True, recover=True, encoding='utf-8')
+ root = lxml.etree.fromstring(metadata_xml, parser=parser)
+ ns = schema40.ns[None]
+
+ funding_refs = root.find(f'{{{ns}}}fundingReferences')
+ refs = funding_refs.findall(f'{{{ns}}}fundingReference')
+ assert len(refs) == 1
+
+ funder_name = refs[0].find(f'{{{ns}}}funderName')
+ assert funder_name.text == 'National Science Foundation'
+
+ funder_id = refs[0].find(f'{{{ns}}}funderIdentifier')
+ assert funder_id.text == 'https://ror.org/021nxhr62'
+ assert funder_id.attrib['funderIdentifierType'] == 'ROR'
+ assert funder_id.attrib['schemeURI'] == 'https://ror.org/'
+
+ def test_datacite_funding_references_with_ror_identifier_json(self, registration, datacite_client):
+ self._set_funding_info(registration, [
+ {
+ 'funder_name': 'National Science Foundation',
+ 'funder_identifier': 'https://ror.org/021nxhr62',
+ 'funder_identifier_type': 'ROR',
+ },
+ ])
+ metadata_dict = datacite_client.build_metadata(registration, as_xml=False)
+
+ funding_refs = metadata_dict['fundingReferences']
+ assert len(funding_refs) == 1
+ assert str(funding_refs[0]['funderName']) == 'National Science Foundation'
+ assert funding_refs[0]['funderIdentifier']['funderIdentifier'] == 'https://ror.org/021nxhr62'
+ assert funding_refs[0]['funderIdentifier']['funderIdentifierType'] == 'ROR'
+ assert funding_refs[0]['funderIdentifier']['schemeURI'] == 'https://ror.org/'
+
+ def test_datacite_funding_references_with_crossref_funder_id(self, registration, datacite_client):
+ self._set_funding_info(registration, [
+ {
+ 'funder_name': 'Mx. Moneypockets',
+ 'funder_identifier': 'https://doi.org/10.13039/100000001',
+ 'funder_identifier_type': 'Crossref Funder ID',
+ 'award_number': '10000000',
+ 'award_uri': 'https://moneypockets.example/millions',
+ 'award_title': 'because reasons',
+ },
+ ])
+ metadata_xml = datacite_client.build_metadata(registration)
+ parser = lxml.etree.XMLParser(ns_clean=True, recover=True, encoding='utf-8')
+ root = lxml.etree.fromstring(metadata_xml, parser=parser)
+ ns = schema40.ns[None]
+
+ funding_refs = root.find(f'{{{ns}}}fundingReferences')
+ refs = funding_refs.findall(f'{{{ns}}}fundingReference')
+ assert len(refs) == 1
+
+ funder_id = refs[0].find(f'{{{ns}}}funderIdentifier')
+ assert funder_id.text == 'https://doi.org/10.13039/100000001'
+ assert funder_id.attrib['funderIdentifierType'] == 'Crossref Funder ID'
+ assert funder_id.attrib['schemeURI'] == 'https://www.crossref.org/services/funder-registry/'
+
+ award_number = refs[0].find(f'{{{ns}}}awardNumber')
+ assert award_number.text == '10000000'
+
+ def test_datacite_funding_references_mixed_ror_and_crossref(self, registration, datacite_client):
+ self._set_funding_info(registration, [
+ {
+ 'funder_name': 'Mx. Moneypockets',
+ 'funder_identifier': 'https://doi.org/10.13039/100000001',
+ 'funder_identifier_type': 'Crossref Funder ID',
+ 'award_number': '10000000',
+ 'award_uri': 'https://moneypockets.example/millions',
+ 'award_title': 'because reasons',
+ },
+ {
+ 'funder_name': 'National Science Foundation',
+ 'funder_identifier': 'https://ror.org/021nxhr62',
+ 'funder_identifier_type': 'ROR',
+ },
+ ])
+ metadata_dict = datacite_client.build_metadata(registration, as_xml=False)
+ funding_refs = metadata_dict['fundingReferences']
+ assert len(funding_refs) == 2
+
+ # Build a lookup by funder name for order-independent assertions
+ refs_by_name = {str(ref['funderName']): ref for ref in funding_refs}
+
+ crossref_ref = refs_by_name['Mx. Moneypockets']
+ assert crossref_ref['funderIdentifier']['funderIdentifier'] == 'https://doi.org/10.13039/100000001'
+ assert crossref_ref['funderIdentifier']['funderIdentifierType'] == 'Crossref Funder ID'
+ assert crossref_ref['funderIdentifier']['schemeURI'] == 'https://www.crossref.org/services/funder-registry/'
+ assert crossref_ref['awardNumber']['awardNumber'] == '10000000'
+
+ ror_ref = refs_by_name['National Science Foundation']
+ assert ror_ref['funderIdentifier']['funderIdentifier'] == 'https://ror.org/021nxhr62'
+ assert ror_ref['funderIdentifier']['funderIdentifierType'] == 'ROR'
+ assert ror_ref['funderIdentifier']['schemeURI'] == 'https://ror.org/'
+
+ def test_datacite_funding_references_ror_with_award_info(self, registration, datacite_client):
+ self._set_funding_info(registration, [
+ {
+ 'funder_name': 'National Institutes of Health',
+ 'funder_identifier': 'https://ror.org/01cwqze88',
+ 'funder_identifier_type': 'ROR',
+ 'award_number': 'R01-GM123456',
+ 'award_uri': 'https://reporter.nih.gov/project-details/123456',
+ 'award_title': 'Studying important things',
+ },
+ ])
+ metadata_xml = datacite_client.build_metadata(registration)
+ parser = lxml.etree.XMLParser(ns_clean=True, recover=True, encoding='utf-8')
+ root = lxml.etree.fromstring(metadata_xml, parser=parser)
+ ns = schema40.ns[None]
+
+ funding_refs = root.find(f'{{{ns}}}fundingReferences')
+ refs = funding_refs.findall(f'{{{ns}}}fundingReference')
+ assert len(refs) == 1
+
+ funder_id = refs[0].find(f'{{{ns}}}funderIdentifier')
+ assert funder_id.text == 'https://ror.org/01cwqze88'
+ assert funder_id.attrib['funderIdentifierType'] == 'ROR'
+ assert funder_id.attrib['schemeURI'] == 'https://ror.org/'
+
+ award_number = refs[0].find(f'{{{ns}}}awardNumber')
+ assert award_number.text == 'R01-GM123456'
+
+ award_title = refs[0].find(f'{{{ns}}}awardTitle')
+ assert award_title.text == 'Studying important things'
+
+ def test_datacite_funding_references_no_funding_info(self, registration, datacite_client):
+ # With no funding info set, fundingReferences should be empty
+ metadata_dict = datacite_client.build_metadata(registration, as_xml=False)
+ assert metadata_dict.get('fundingReferences', []) == []
+
@pytest.mark.django_db
class TestDataCiteViews(OsfTestCase):
diff --git a/tests/test_add_contributiors_subscriptions.py b/tests/test_add_contributiors_subscriptions.py
index 93460b71e8c..123c1f28fd6 100644
--- a/tests/test_add_contributiors_subscriptions.py
+++ b/tests/test_add_contributiors_subscriptions.py
@@ -1,6 +1,6 @@
import pytest
from framework.auth import Auth
-from osf.models import NotificationType, NotificationSubscription
+from osf.models import NotificationTypeEnum, NotificationSubscription
from osf_tests.factories import ProjectFactory, UserFactory
from tests.utils import capture_notifications
from framework.auth import register_unconfirmed
@@ -39,7 +39,7 @@ def test_only_one_subscription_for_registered_user(self):
f"found {subs.count()}"
)
sub = subs.first()
- assert sub.notification_type.name == NotificationType.Type.NODE_FILE_UPDATED
+ assert sub.notification_type.name == NotificationTypeEnum.NODE_FILE_UPDATED
subs = NotificationSubscription.objects.filter(
user=user,
@@ -51,7 +51,7 @@ def test_only_one_subscription_for_registered_user(self):
f"found {subs.count()}"
)
sub = subs.first()
- assert sub.notification_type.name == NotificationType.Type.USER_FILE_UPDATED
+ assert sub.notification_type.name == NotificationTypeEnum.USER_FILE_UPDATED
def test_only_one_subscription_for_unregistered_user(self):
"""Adding the same unregistered contributor multiple times creates only one subscription."""
@@ -91,7 +91,7 @@ def test_only_one_subscription_for_unregistered_user(self):
f"found {subs.count()}"
)
sub = subs.first()
- assert sub.notification_type.name == NotificationType.Type.NODE_FILE_UPDATED
+ assert sub.notification_type.name == NotificationTypeEnum.NODE_FILE_UPDATED
subs = NotificationSubscription.objects.filter(
user=unreg_user,
@@ -103,7 +103,7 @@ def test_only_one_subscription_for_unregistered_user(self):
f"found {subs.count()}"
)
sub = subs.first()
- assert sub.notification_type.name == NotificationType.Type.USER_FILE_UPDATED
+ assert sub.notification_type.name == NotificationTypeEnum.USER_FILE_UPDATED
def test_only_one_subscription_for_creator(self):
"""Ensure the project creator only has one NotificationSubscription for their own node."""
@@ -134,7 +134,7 @@ def test_only_one_subscription_for_creator(self):
f"found {subs.count()}"
)
sub = subs.first()
- assert sub.notification_type.name == NotificationType.Type.NODE_FILE_UPDATED
+ assert sub.notification_type.name == NotificationTypeEnum.NODE_FILE_UPDATED
subs = NotificationSubscription.objects.filter(
user=creator,
@@ -146,7 +146,7 @@ def test_only_one_subscription_for_creator(self):
f"found {subs.count()}"
)
sub = subs.first()
- assert sub.notification_type.name == NotificationType.Type.USER_FILE_UPDATED
+ assert sub.notification_type.name == NotificationTypeEnum.USER_FILE_UPDATED
def test_unregistered_contributor_then_registered_user_only_one_subscription(self):
"""When an unregistered contributor later registers, their subscriptions merge correctly."""
@@ -178,7 +178,7 @@ def test_unregistered_contributor_then_registered_user_only_one_subscription(sel
assert subs_node.count() == 1, (
f"Expected one NODE_FILE_UPDATED subscription after registration, found {subs_node.count()}"
)
- assert subs_node.first().notification_type.name == NotificationType.Type.NODE_FILE_UPDATED
+ assert subs_node.first().notification_type.name == NotificationTypeEnum.NODE_FILE_UPDATED
subs_user = NotificationSubscription.objects.filter(
user=registered_user,
@@ -188,7 +188,7 @@ def test_unregistered_contributor_then_registered_user_only_one_subscription(sel
assert subs_user.count() == 1, (
f"Expected one USER_FILE_UPDATED subscription after registration, found {subs_user.count()}"
)
- assert subs_user.first().notification_type.name == NotificationType.Type.USER_FILE_UPDATED
+ assert subs_user.first().notification_type.name == NotificationTypeEnum.USER_FILE_UPDATED
def test_contributor_removed_then_readded_only_one_subscription(self):
"""Removing a contributor and re-adding them should not duplicate subscriptions."""
@@ -216,7 +216,7 @@ def test_contributor_removed_then_readded_only_one_subscription(self):
assert subs_node.count() == 1, (
f"Expected one NODE_FILE_UPDATED subscription after re-adding, found {subs_node.count()}"
)
- assert subs_node.first().notification_type.name == NotificationType.Type.NODE_FILE_UPDATED
+ assert subs_node.first().notification_type.name == NotificationTypeEnum.NODE_FILE_UPDATED
subs_user = NotificationSubscription.objects.filter(
user=user,
@@ -226,4 +226,4 @@ def test_contributor_removed_then_readded_only_one_subscription(self):
assert subs_user.count() == 1, (
f"Expected one USER_FILE_UPDATED subscription after re-adding, found {subs_user.count()}"
)
- assert subs_user.first().notification_type.name == NotificationType.Type.USER_FILE_UPDATED
+ assert subs_user.first().notification_type.name == NotificationTypeEnum.USER_FILE_UPDATED
diff --git a/tests/test_adding_contributor_views.py b/tests/test_adding_contributor_views.py
index 26207af9360..6dabbdd17cc 100644
--- a/tests/test_adding_contributor_views.py
+++ b/tests/test_adding_contributor_views.py
@@ -8,7 +8,7 @@
from framework import auth
from framework.auth import Auth
from framework.exceptions import HTTPError
-from osf.models import NodeRelation, NotificationType
+from osf.models import NodeRelation, NotificationTypeEnum
from osf.utils import permissions
from osf_tests.factories import (
fake_email,
@@ -266,7 +266,7 @@ def test_email_sent_when_reg_user_is_added(self):
project.add_contributors(contributors, auth=self.auth, notification_type=None)
project.save()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
def test_contributor_added_email_sent_to_unreg_user(self):
unreg_user = UnregUserFactory()
@@ -305,17 +305,17 @@ def test_notify_contributor_email_does_not_send_before_throttle_expires(self):
notify_added_contributor(
project,
contributor,
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT,
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT,
auth=auth
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
# 2nd call does not send email because throttle period has not expired
notify_added_contributor(
project,
contributor,
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT,
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT,
auth=auth
)
@@ -327,23 +327,23 @@ def test_notify_contributor_email_sends_after_throttle_expires(self):
notify_added_contributor(
project,
contributor,
- NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT,
+ NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT,
auth,
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
time.sleep(2) # throttle period expires
with capture_notifications() as notifications:
notify_added_contributor(
project,
contributor,
- NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT,
+ NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT,
auth,
throttle=1
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
def test_add_contributor_to_fork_sends_email(self):
contributor = UserFactory()
@@ -352,7 +352,7 @@ def test_add_contributor_to_fork_sends_email(self):
fork.add_contributor(contributor, auth=Auth(self.creator))
fork.save()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
def test_add_contributor_to_template_sends_email(self):
contributor = UserFactory()
@@ -361,11 +361,11 @@ def test_add_contributor_to_template_sends_email(self):
template.add_contributor(
contributor,
auth=Auth(self.creator),
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
)
template.save()
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_ACCESS_REQUEST
def test_creating_fork_does_not_email_creator(self):
with capture_notifications():
@@ -512,7 +512,7 @@ def test_send_claim_email_to_given_email(self):
with capture_notifications() as notifications:
send_claim_email(email=given_email, unclaimed_user=unreg_user, node=project)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INVITE_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INVITE_DEFAULT
def test_send_claim_email_to_referrer(self):
project = ProjectFactory()
@@ -528,8 +528,8 @@ def test_send_claim_email_to_referrer(self):
send_claim_email(email=real_email, unclaimed_user=unreg_user, node=project)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_FORWARD_INVITE
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE
def test_send_claim_email_before_throttle_expires(self):
project = ProjectFactory()
diff --git a/tests/test_auth.py b/tests/test_auth.py
index 63f0684699f..487759603c1 100644
--- a/tests/test_auth.py
+++ b/tests/test_auth.py
@@ -24,7 +24,7 @@
from framework.auth import Auth
from framework.auth.decorators import must_be_logged_in
from framework.sessions import get_session
-from osf.models import OSFUser, NotificationType
+from osf.models import OSFUser, NotificationTypeEnum
from osf.utils import permissions
from tests.utils import capture_notifications
from website import settings
@@ -165,7 +165,7 @@ def test_password_change_sends_email(self):
user.set_password('killerqueen')
user.save()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_PASSWORD_RESET
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_PASSWORD_RESET
@mock.patch('framework.auth.utils.requests.post')
def test_validate_recaptcha_success(self, req_post):
@@ -210,13 +210,13 @@ def test_sign_up_twice_sends_two_confirmation_emails_only(self):
with capture_notifications() as notifications:
self.app.post(url, json=sign_up_data)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_NO_ADDON
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_INITIAL_CONFIRM_EMAIL
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_NO_ADDON
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_INITIAL_CONFIRM_EMAIL
with capture_notifications() as notifications:
self.app.post(url, json=sign_up_data)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INITIAL_CONFIRM_EMAIL
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INITIAL_CONFIRM_EMAIL
class TestAuthObject(OsfTestCase):
@@ -722,6 +722,59 @@ def test_must_have_permission_not_logged_in(self, mock_from_kwargs, mock_to_node
thriller(node=project)
assert ctx.value.code == http_status.HTTP_401_UNAUTHORIZED
+ def decorated_view(self, *args, **kwargs):
+ return 'Success'
+
+ ## 1. Public Access
+ @mock.patch('framework.auth.decorators.Auth.from_kwargs')
+ def test_private_resource_not_allow_anonymous(self, mock_auth):
+ from framework.auth.decorators import is_contributor_or_public_resource
+ decorator = is_contributor_or_public_resource('resource')
+ project = ProjectFactory(is_public=False)
+ mock_auth.return_value = Auth(user=None)
+ decorated_func = decorator(self.decorated_view)
+ with decoratorapp.test_request_context():
+ with pytest.raises(HTTPError) as excinfo:
+ decorated_func(resource=project)
+ assert excinfo.value.code == http_status.HTTP_403_FORBIDDEN
+
+ @mock.patch('framework.auth.decorators.Auth.from_kwargs')
+ def test_public_resource_allow_anonymous(self, mock_auth):
+ from framework.auth.decorators import is_contributor_or_public_resource
+ decorator = is_contributor_or_public_resource('resource')
+ project = ProjectFactory(is_public=True)
+ mock_auth.return_value = Auth(user=None)
+ decorated_func = decorator(self.decorated_view)
+ with decoratorapp.test_request_context():
+ result = decorated_func(resource=project)
+ assert result == 'Success'
+
+ @mock.patch('framework.auth.decorators.Auth.from_kwargs')
+ def test_private_resource_allows_contributor(self, mock_auth):
+ from framework.auth.decorators import is_contributor_or_public_resource
+ user = UserFactory()
+ project = ProjectFactory(is_public=False)
+ project.add_contributor(user, save=True)
+ mock_auth.return_value = Auth(user=user)
+ decorator = is_contributor_or_public_resource('resource')
+ decorated_func = decorator(self.decorated_view)
+ with decoratorapp.test_request_context():
+ result = decorated_func(resource=project)
+ assert result == 'Success'
+
+ @mock.patch('framework.auth.decorators.Auth.from_kwargs')
+ def test_private_resource_not_allow_non_contributor_auth_user(self, mock_auth):
+ from framework.auth.decorators import is_contributor_or_public_resource
+ user = UserFactory()
+ project = ProjectFactory(is_public=False)
+ mock_auth.return_value = Auth(user=user)
+ decorator = is_contributor_or_public_resource('resource')
+ decorated_func = decorator(self.decorated_view)
+ with decoratorapp.test_request_context():
+ with pytest.raises(HTTPError) as excinfo:
+ decorated_func(resource=project)
+ assert excinfo.value.code == http_status.HTTP_403_FORBIDDEN
+
def needs_addon_view(**kwargs):
return 'openaddon'
diff --git a/tests/test_auth_views.py b/tests/test_auth_views.py
index dcd18e3fd58..7b24e286c15 100644
--- a/tests/test_auth_views.py
+++ b/tests/test_auth_views.py
@@ -25,7 +25,7 @@
)
from framework.auth.exceptions import InvalidTokenError
from framework.auth.views import login_and_register_handler
-from osf.models import OSFUser, NotableDomain, NotificationType
+from osf.models import OSFUser, NotableDomain, NotificationTypeEnum
from osf_tests.factories import (
fake_email,
AuthUserFactory,
@@ -326,7 +326,7 @@ def test_resend_confirmation(self):
self.app.put(url, json={'id': self.user._id, 'email': header}, auth=self.user.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_CONFIRM_EMAIL
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_CONFIRM_EMAIL
self.user.reload()
assert token != self.user.get_confirmation_token(email)
@@ -505,7 +505,7 @@ def test_resend_confirmation_does_not_send_before_throttle_expires(self):
with capture_notifications() as notifications:
self.app.put(url, json={'id': self.user._id, 'email': header}, auth=self.user.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_CONFIRM_EMAIL
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_CONFIRM_EMAIL
# 2nd call does not send email because throttle period has not expired
res = self.app.put(url, json={'id': self.user._id, 'email': header}, auth=self.user.auth)
assert res.status_code == 400
diff --git a/tests/test_claim_views.py b/tests/test_claim_views.py
index af3038c537c..031eaa6ac70 100644
--- a/tests/test_claim_views.py
+++ b/tests/test_claim_views.py
@@ -10,7 +10,7 @@
from framework.flask import redirect
from osf.models import (
OSFUser,
- Tag, NotificationType,
+ Tag, NotificationTypeEnum,
)
from osf_tests.factories import (
fake_email,
@@ -98,8 +98,8 @@ def test_claim_user_already_registered_redirects_to_claim_user_registered(self):
}
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_FORWARD_INVITE
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE
# set unregistered record email since we are mocking send_claim_email()
unclaimed_record = unregistered_user.get_unclaimed_record(self.project._primary_key)
@@ -147,8 +147,8 @@ def test_claim_user_already_registered_secondary_email_redirects_to_claim_user_r
}
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_FORWARD_INVITE
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE
# set unregistered record email since we are mocking send_claim_email()
unclaimed_record = unregistered_user.get_unclaimed_record(self.project._primary_key)
@@ -236,8 +236,8 @@ def test_send_claim_registered_email_before_throttle_expires(self):
node=self.project,
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_FORWARD_INVITE_REGISTERED
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION_REGISTERED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE_REGISTERED
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION_REGISTERED
# second call raises error because it was called before throttle period
with pytest.raises(HTTPError):
send_claim_registered_email(
@@ -433,7 +433,7 @@ def test_claim_user_post_returns_fullname(self):
)
assert res.json['fullname'] == self.given_name
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INVITE_DEFAULT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INVITE_DEFAULT
def test_claim_user_post_if_email_is_different_from_given_email(self):
email = fake_email() # email that is different from the one the referrer gave
@@ -446,9 +446,9 @@ def test_claim_user_post_if_email_is_different_from_given_email(self):
}
)
assert len(notifications['emits']) == 2
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_PENDING_VERIFICATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_PENDING_VERIFICATION
assert notifications['emits'][0]['kwargs']['user'].username == self.given_email
- assert notifications['emits'][1]['type'] == NotificationType.Type.USER_FORWARD_INVITE
+ assert notifications['emits'][1]['type'] == NotificationTypeEnum.USER_FORWARD_INVITE
assert notifications['emits'][1]['kwargs']['destination_address'] == email
def test_claim_url_with_bad_token_returns_400(self):
diff --git a/tests/test_events.py b/tests/test_events.py
index fa79515e021..b73e55882ba 100644
--- a/tests/test_events.py
+++ b/tests/test_events.py
@@ -2,7 +2,7 @@
from django.contrib.contenttypes.models import ContentType
-from osf.models import NotificationType
+from osf.models import NotificationType, NotificationTypeEnum
from tests.utils import capture_notifications
from notifications.file_event_notifications import (
event_registry,
@@ -121,7 +121,7 @@ def setUp(self):
self.sub = factories.NotificationSubscriptionFactory(
object_id=self.project.id,
content_type=ContentType.objects.get_for_model(self.project),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED)
)
self.sub.save()
self.event = event_registry['file_updated'](self.user_2, self.project, 'file_updated', payload=file_payload)
@@ -135,7 +135,7 @@ def test_file_updated(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.FILE_UPDATED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.FILE_UPDATED
class TestFileAdded(OsfTestCase):
@@ -147,7 +147,7 @@ def setUp(self):
self.project_subscription = factories.NotificationSubscriptionFactory(
object_id=self.project.id,
content_type=ContentType.objects.get_for_model(self.project),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED)
)
self.project_subscription.save()
self.user2 = factories.UserFactory()
@@ -162,7 +162,7 @@ def test_file_added(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.FILE_ADDED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.FILE_ADDED
class TestFileRemoved(OsfTestCase):
@@ -174,7 +174,7 @@ def setUp(self):
self.project_subscription = factories.NotificationSubscriptionFactory(
object_id=self.project.id,
content_type=ContentType.objects.get_for_model(self.project),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.FILE_REMOVED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.FILE_REMOVED)
)
self.project_subscription.object_id = self.project.id
self.project_subscription.content_type = ContentType.objects.get_for_model(self.project)
@@ -185,12 +185,12 @@ def setUp(self):
)
def test_info_formed_correct_file(self):
- assert NotificationType.Type.FILE_UPDATED == self.event.event_type
+ assert NotificationTypeEnum.FILE_UPDATED == self.event.event_type
assert f'removed file "{materialized.lstrip("/")}".' == self.event.html_message
assert f'removed file "{materialized.lstrip("/")}".' == self.event.text_message
def test_info_formed_correct_folder(self):
- assert NotificationType.Type.FILE_UPDATED == self.event.event_type
+ assert NotificationTypeEnum.FILE_UPDATED == self.event.event_type
self.event.payload['metadata']['materialized'] += '/'
assert f'removed folder "{materialized.lstrip("/")}/".' == self.event.html_message
assert f'removed folder "{materialized.lstrip("/")}/".' == self.event.text_message
@@ -199,7 +199,7 @@ def test_file_removed(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.FILE_REMOVED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.FILE_REMOVED
class TestFolderCreated(OsfTestCase):
@@ -210,7 +210,7 @@ def setUp(self):
self.project = factories.ProjectFactory()
self.project_subscription = factories.NotificationSubscriptionFactory(
user=self.user,
- notification_type=NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED),
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED),
)
self.project_subscription.save()
self.user2 = factories.UserFactory()
@@ -219,7 +219,7 @@ def setUp(self):
)
def test_info_formed_correct(self):
- assert NotificationType.Type.FILE_UPDATED == self.event.event_type
+ assert NotificationTypeEnum.FILE_UPDATED == self.event.event_type
assert 'created folder "Three/".' == self.event.html_message
assert 'created folder "Three/".' == self.event.text_message
@@ -227,7 +227,7 @@ def test_folder_added(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.FOLDER_CREATED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.FOLDER_CREATED
class TestFolderFileRenamed(OsfTestCase):
@@ -242,7 +242,7 @@ def setUp(self):
user=self.user_2,
object_id=self.project.id,
content_type=ContentType.objects.get_for_model(self.project),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.USER_FILE_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.USER_FILE_UPDATED)
)
self.sub.save()
@@ -295,21 +295,21 @@ def setUp(self):
self.sub = factories.NotificationSubscriptionFactory(
object_id=self.project.id,
content_type=ContentType.objects.get_for_model(self.project),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED)
)
self.sub.save()
# for private node
self.private_sub = factories.NotificationSubscriptionFactory(
object_id=self.private_node.id,
content_type=ContentType.objects.get_for_model(self.private_node),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED)
)
self.private_sub.save()
# for file subscription
self.file_sub = factories.NotificationSubscriptionFactory(
object_id=self.project.id,
content_type=ContentType.objects.get_for_model(self.project),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.NODE_FILES_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.NODE_FILE_UPDATED)
)
self.file_sub.save()
@@ -327,7 +327,7 @@ def test_user_performing_action_no_email(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.ADDON_FILE_MOVED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.ADDON_FILE_MOVED
assert notifications['emits'][0]['kwargs']['user'] == self.user_2
def test_perform_store_called_once(self):
@@ -336,7 +336,7 @@ def test_perform_store_called_once(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.ADDON_FILE_MOVED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.ADDON_FILE_MOVED
def test_perform_store_one_of_each(self):
# Move Event: Tests that store_emails is called 3 times, one in
@@ -357,7 +357,7 @@ def test_perform_store_one_of_each(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.ADDON_FILE_MOVED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.ADDON_FILE_MOVED
def test_remove_user_sent_once(self):
# Move Event: Tests removed user is removed once. Regression
@@ -368,7 +368,7 @@ def test_remove_user_sent_once(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.ADDON_FILE_MOVED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.ADDON_FILE_MOVED
class TestFileCopied(OsfTestCase):
@@ -393,21 +393,21 @@ def setUp(self):
self.sub = factories.NotificationSubscriptionFactory(
object_id=self.project.id,
content_type=ContentType.objects.get_for_model(self.project),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED)
)
self.sub.save()
# for private node
self.private_sub = factories.NotificationSubscriptionFactory(
object_id=self.private_node.id,
content_type=ContentType.objects.get_for_model(self.private_node),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.FILE_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.FILE_UPDATED)
)
self.private_sub.save()
# for file subscription
self.file_sub = factories.NotificationSubscriptionFactory(
object_id=self.project.id,
content_type=ContentType.objects.get_for_model(self.project),
- notification_type=NotificationType.objects.get(name=NotificationType.Type.NODE_FILES_UPDATED)
+ notification_type=NotificationType.objects.get(name=NotificationTypeEnum.NODE_FILE_UPDATED)
)
self.file_sub.save()
@@ -439,7 +439,7 @@ def test_copied_one_of_each(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.ADDON_FILE_COPIED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.ADDON_FILE_COPIED
def test_user_performing_action_no_email(self):
# Move Event: Makes sure user who performed the action is not
@@ -449,7 +449,7 @@ def test_user_performing_action_no_email(self):
with capture_notifications() as notifications:
self.event.perform()
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.ADDON_FILE_COPIED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.ADDON_FILE_COPIED
class TestSubscriptionManipulations(OsfTestCase):
diff --git a/tests/test_forgot_password.py b/tests/test_forgot_password.py
index 935b641d120..3e8bacaf1a1 100644
--- a/tests/test_forgot_password.py
+++ b/tests/test_forgot_password.py
@@ -1,6 +1,6 @@
from urllib.parse import quote_plus
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from tests.base import OsfTestCase
from osf_tests.factories import (
AuthUserFactory,
@@ -50,7 +50,7 @@ def test_can_receive_reset_password_email(self):
res = form.submit(self.app)
# check mail was sent
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_FORGOT_PASSWORD
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_FORGOT_PASSWORD
# check http 200 response
assert res.status_code == 200
# check request URL is /forgotpassword
@@ -152,7 +152,7 @@ def test_can_receive_reset_password_email(self):
# check mail was sent
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_FORGOT_PASSWORD_INSTITUTION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_FORGOT_PASSWORD_INSTITUTION
# check http 200 response
assert res.status_code == 200
# check request URL is /forgotpassword
diff --git a/tests/test_misc_views.py b/tests/test_misc_views.py
index d51c0e2d098..3d1e0cad47c 100644
--- a/tests/test_misc_views.py
+++ b/tests/test_misc_views.py
@@ -21,7 +21,7 @@
Comment,
OSFUser,
SpamStatus,
- NodeRelation, NotificationType,
+ NodeRelation, NotificationTypeEnum,
)
from osf.utils import permissions
from osf_tests.factories import (
@@ -420,8 +420,10 @@ def test_external_login_confirm_email_get_link(self):
self.user.save()
assert not self.user.is_registered
url = self.user.get_confirmation_url(self.user.username, external_id_provider='orcid', destination='my_projects')
- with capture_notifications():
+ with capture_notifications() as notifications:
res = self.app.get(url)
+ assert len(notifications['emits']) == 1
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_EXTERNAL_LOGIN_LINK_SUCCESS
assert res.status_code == 302, 'redirects to cas login'
assert 'You should be redirected automatically' in str(res.html)
assert '/login?service=' in res.location
diff --git a/tests/test_preprints.py b/tests/test_preprints.py
index 77104e655b2..7d669ee3e3f 100644
--- a/tests/test_preprints.py
+++ b/tests/test_preprints.py
@@ -26,7 +26,7 @@
from addons.base import views
from admin_tests.utilities import setup_view
from api.preprints.views import PreprintContributorDetail
-from osf.models import Tag, Preprint, PreprintLog, PreprintContributor, NotificationType
+from osf.models import Tag, Preprint, PreprintLog, PreprintContributor, NotificationTypeEnum
from osf.exceptions import PreprintStateError, ValidationError, ValidationValueError
from osf_tests.factories import (
ProjectFactory,
@@ -2014,12 +2014,12 @@ def test_creator_gets_email(self):
with capture_notifications() as notifications:
self.preprint.set_published(True, auth=Auth(self.user), save=True)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
with capture_notifications() as notifications:
self.preprint_branded.set_published(True, auth=Auth(self.user), save=True)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.PROVIDER_REVIEWS_SUBMISSION_CONFIRMATION
class TestPreprintOsfStorage(OsfTestCase):
def setUp(self):
diff --git a/tests/test_registrations/test_retractions.py b/tests/test_registrations/test_retractions.py
index 520a21a809a..481f4be7420 100644
--- a/tests/test_registrations/test_retractions.py
+++ b/tests/test_registrations/test_retractions.py
@@ -22,7 +22,7 @@
InvalidSanctionApprovalToken, InvalidSanctionRejectionToken,
NodeStateError,
)
-from osf.models import Contributor, Retraction, NotificationType
+from osf.models import Contributor, Retraction, NotificationTypeEnum
from osf.utils import permissions
from tests.utils import capture_notifications
@@ -804,7 +804,7 @@ def test_POST_retraction_does_not_send_email_to_unregistered_admins(self):
auth=self.user.auth,
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_PENDING_RETRACTION_ADMIN
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_PENDING_RETRACTION_ADMIN
def test_POST_pending_embargo_returns_HTTPError_HTTPOK(self):
self.registration.embargo_registration(
@@ -900,7 +900,7 @@ def test_valid_POST_calls_send_mail_with_username(self):
auth=self.user.auth,
)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.NODE_PENDING_RETRACTION_ADMIN
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.NODE_PENDING_RETRACTION_ADMIN
def test_non_contributor_GET_approval_returns_HTTPError_FORBIDDEN(self):
non_contributor = AuthUserFactory()
diff --git a/tests/test_registrations/test_views.py b/tests/test_registrations/test_views.py
index 4c0bdde8419..15d0e60cc77 100644
--- a/tests/test_registrations/test_views.py
+++ b/tests/test_registrations/test_views.py
@@ -50,7 +50,7 @@ def test_node_register_page_not_registration_redirects(self):
@mock.patch('website.archiver.tasks.archive')
def test_node_register_page_registration(self, mock_archive):
draft_reg = DraftRegistrationFactory(branched_from=self.node, user=self.node.creator)
- reg = self.node.register_node(get_default_metaschema(), self.auth, draft_reg, None)
+ reg = self.node.register_node(get_default_metaschema(), self.auth, draft_reg, None, provider=draft_reg.provider)
url = reg.web_url_for('node_register_page')
res = self.app.get(url, auth=self.user.auth)
assert res.status_code == http_status.HTTP_200_OK
diff --git a/tests/test_resend_confirmation.py b/tests/test_resend_confirmation.py
index 95c1d1d431d..9b1fcdf74ce 100644
--- a/tests/test_resend_confirmation.py
+++ b/tests/test_resend_confirmation.py
@@ -1,4 +1,4 @@
-from osf.models import NotificationType
+from osf.models import NotificationTypeEnum
from tests.base import OsfTestCase
from osf_tests.factories import (
UserFactory,
@@ -34,7 +34,7 @@ def test_can_receive_resend_confirmation_email(self):
res = form.submit(self.app)
# check email, request and response
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_INITIAL_CONFIRM_EMAIL
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_INITIAL_CONFIRM_EMAIL
assert res.status_code == 200
assert res.request.path == self.post_url
diff --git a/tests/test_spam_mixin.py b/tests/test_spam_mixin.py
index 91dc6387181..ca3e25a9cda 100644
--- a/tests/test_spam_mixin.py
+++ b/tests/test_spam_mixin.py
@@ -10,7 +10,7 @@
from tests.base import DbTestCase
from osf_tests.factories import UserFactory, CommentFactory, ProjectFactory, PreprintFactory, RegistrationFactory, AuthUserFactory
-from osf.models import NotableDomain, SpamStatus, NotificationType
+from osf.models import NotableDomain, SpamStatus, NotificationTypeEnum
from tests.utils import capture_notifications
from website import settings
@@ -27,7 +27,7 @@ def test_throttled_autoban():
proj.save()
projects.append(proj)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.USER_SPAM_BANNED
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.USER_SPAM_BANNED
user.reload()
assert user.is_disabled
for project in projects:
diff --git a/tests/test_triggered_mails.py b/tests/test_triggered_mails.py
index c482338ccff..33562878f8a 100644
--- a/tests/test_triggered_mails.py
+++ b/tests/test_triggered_mails.py
@@ -3,14 +3,14 @@
from unittest import mock
from waffle.testutils import override_switch
from osf import features
-
+from website import settings
from django.utils import timezone
from tests.base import OsfTestCase
from tests.utils import run_celery_tasks, capture_notifications
from osf_tests.factories import UserFactory
-from osf.models import EmailTask, NotificationType
+from osf.models import EmailTask, NotificationTypeEnum
from scripts.triggered_mails import (
find_inactive_users_without_enqueued_or_sent_no_login,
@@ -22,7 +22,7 @@
def _inactive_time():
"""Make a timestamp that is definitely 'inactive' regardless of threshold settings."""
# Very conservative: 12 weeks ago
- return timezone.now() - timedelta(weeks=12)
+ return timezone.now() - settings.NO_LOGIN_WAIT_TIME
def _recent_time():
@@ -87,7 +87,7 @@ def test_trigger_no_login_mail_failure_marks_task_failure(self):
# Force the emit call to raise to exercise failure branch
with mock.patch.object(
- NotificationType.Type.USER_NO_LOGIN.instance,
+ NotificationTypeEnum.USER_NO_LOGIN.instance,
'emit',
side_effect=RuntimeError('kaboom'),
), run_celery_tasks():
@@ -114,25 +114,56 @@ def test_finder_returns_two_inactive_when_none_queued(self):
assert ids == {u1.id, u2.id}
def test_finder_excludes_users_with_existing_task(self):
- """Inactive users but one already has a no_login EmailTask -> excluded."""
+ """Inactive users but one already has a no_login_email_last_sent -> excluded."""
u1 = UserFactory(fullname='Jalen Hurts')
u2 = UserFactory(fullname='Jason Kelece')
u1.date_last_login = _inactive_time()
u2.date_last_login = _inactive_time()
- u1.save()
- u2.save()
-
- # Pretend u2 already had this email flow (SUCCESS qualifies for exclusion)
EmailTask.objects.create(
- task_id=f"{NO_LOGIN_PREFIX}existing-success",
- user=u2,
- status='SUCCESS',
+ user=u2, task_id=f'{NO_LOGIN_PREFIX}uuid4', status='PENDING',
)
+ u1.save()
+ u2.save()
users = list(find_inactive_users_without_enqueued_or_sent_no_login())
ids = {u.id for u in users}
assert ids == {u1.id} # u2 excluded because of existing task
+ def test_finder_excludes_users_with_recent_no_login_email(self):
+ """Inactive users but one already has a no_login_email_last_sent -> excluded."""
+ u1 = UserFactory(fullname='Jalen Hurts')
+ u2 = UserFactory(fullname='Jason Kelece')
+ u1.date_last_login = _inactive_time()
+ u2.date_last_login = _inactive_time()
+ u2.no_login_email_last_sent = timezone.now()
+ u1.save()
+ u2.save()
+
+ users = list(find_inactive_users_without_enqueued_or_sent_no_login())
+ ids = {u.id for u in users}
+ assert ids == {u1.id} # u2 excluded because of recent email
+
+ def test_finder_excludes_users_logged_in_before_no_login_email_last_sent(self):
+ """Inactive users but one already has a no_login_email_last_sent -> excluded."""
+ u1 = UserFactory(fullname='Jalen Hurts')
+ u2 = UserFactory(fullname='Jason Kelece')
+ u1.date_last_login = _inactive_time()
+ u2.date_last_login = _inactive_time()
+ u2.no_login_email_last_sent = timezone.now() - settings.NO_LOGIN_WAIT_TIME # old enough to be eligible if not for the login
+ u1.save()
+ u2.save()
+
+ users = list(find_inactive_users_without_enqueued_or_sent_no_login())
+ ids = {u.id for u in users}
+ assert ids == {u1.id} # u2 excluded because last login was before email was sent
+
+ u2.date_last_login = timezone.now() - settings.NO_LOGIN_WAIT_TIME
+ u2.save()
+
+ users = list(find_inactive_users_without_enqueued_or_sent_no_login())
+ ids = {u.id for u in users}
+ assert ids == {u1.id, u2.id} # u2 included again because they logged in after the email was sent
+
@override_switch(features.ENABLE_NO_LOGIN_EMAILS, active=False)
def test_disable_task(self):
u1 = UserFactory(fullname='Jalen Hurts')
diff --git a/tests/test_user_profile_view.py b/tests/test_user_profile_view.py
index fd5b424f4b8..8fa505df378 100644
--- a/tests/test_user_profile_view.py
+++ b/tests/test_user_profile_view.py
@@ -9,7 +9,7 @@
from addons.github.tests.factories import GitHubAccountFactory
from framework.celery_tasks import handlers
from osf.external.spam import tasks as spam_tasks
-from osf.models import NotableDomain, NotificationType
+from osf.models import NotableDomain, NotificationTypeEnum
from osf_tests.factories import (
fake_email,
ApiOAuth2ApplicationFactory,
@@ -728,7 +728,7 @@ def test_user_cannot_request_account_export_before_throttle_expires(self):
with capture_notifications() as notifications:
self.app.post(url, auth=self.user.auth)
assert len(notifications['emits']) == 1
- assert notifications['emits'][0]['type'] == NotificationType.Type.DESK_REQUEST_EXPORT
+ assert notifications['emits'][0]['type'] == NotificationTypeEnum.DESK_REQUEST_EXPORT
res = self.app.post(url, auth=self.user.auth)
assert res.status_code == 400
diff --git a/tests/utils.py b/tests/utils.py
index 9e6e3db07cd..9f0aba2f4cf 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -545,7 +545,7 @@ def _safe_obj_id(obj: Any) -> Optional[str]:
@contextlib.contextmanager
def assert_notification(
*,
- type, # NotificationType, NotificationType.Type, or str
+ type, # NotificationType, NotificationTypeEnum, or str
user: Any = None, # optional user object to match
subscribed_object: Any = None, # optional object (e.g., node) to match
times: int = 1, # exact number of emits expected
@@ -555,7 +555,7 @@ def assert_notification(
):
"""
Usage:
- with assert_notification(type=NotificationType.Type.NODE_FORK_COMPLETED, user=self.user):
+ with assert_notification(type=NotificationTypeEnum.NODE_FORK_COMPLETED, user=self.user):
"""
expected_type = _notif_type_name(type)
diff --git a/website/archiver/utils.py b/website/archiver/utils.py
index 0eafd0460b3..f124388423c 100644
--- a/website/archiver/utils.py
+++ b/website/archiver/utils.py
@@ -27,44 +27,37 @@ def normalize_unicode_filenames(filename):
def send_archiver_size_exceeded_mails(src, user, stat_result, url):
- from osf.models.notification_type import NotificationType
+ from osf.models.notification_type import NotificationTypeEnum
- NotificationType.Type.DESK_ARCHIVE_JOB_EXCEEDED.instance.emit(
+ NotificationTypeEnum.DESK_ARCHIVE_JOB_EXCEEDED.instance.emit(
destination_address=settings.OSF_SUPPORT_EMAIL,
subscribed_object=src,
event_context={
'user_fullname': user.fullname,
'user__id': user._id,
- 'src__id': src._id,
'src_url': src.url,
'src_title': src.title,
'stat_result': stat_result,
'url': url,
'max_archive_size': MAX_ARCHIVE_SIZE / 1024 ** 3,
- 'can_change_preferences': False,
}
)
- NotificationType.Type.USER_ARCHIVE_JOB_EXCEEDED.instance.emit(
+ NotificationTypeEnum.USER_ARCHIVE_JOB_EXCEEDED.instance.emit(
user=user,
subscribed_object=user,
event_context={
- 'user_fullname': user.fullname,
- 'user__id': user._id,
'src_title': src.title,
'src_url': src.url,
- 'max_archive_size': MAX_ARCHIVE_SIZE / 1024 ** 3,
- 'can_change_preferences': False,
}
)
def send_archiver_copy_error_mails(src, user, results, url):
- from osf.models.notification_type import NotificationType
+ from osf.models.notification_type import NotificationTypeEnum
- NotificationType.Type.DESK_ARCHIVE_JOB_COPY_ERROR.instance.emit(
+ NotificationTypeEnum.DESK_ARCHIVE_JOB_COPY_ERROR.instance.emit(
destination_address=settings.OSF_SUPPORT_EMAIL,
event_context={
- 'domain': settings.DOMAIN,
'user_fullname': user.fullname,
'user__id': user._id,
'src__id': src._id,
@@ -72,37 +65,34 @@ def send_archiver_copy_error_mails(src, user, results, url):
'src_title': src.title,
'results': results,
'url': url,
- 'can_change_preferences': False,
}
)
- NotificationType.Type.USER_ARCHIVE_JOB_COPY_ERROR.instance.emit(
+ NotificationTypeEnum.USER_ARCHIVE_JOB_COPY_ERROR.instance.emit(
user=user,
event_context={
'domain': settings.DOMAIN,
- 'user_fullname': user.fullname,
- 'user__id': user._id,
- 'src__id': src._id,
'src_url': src.url,
'src_title': src.title,
- 'results': results,
- 'can_change_preferences': False,
+
}
)
def send_archiver_file_not_found_mails(src, user, results, url):
- from osf.models.notification_type import NotificationType
+ from osf.models.notification_type import NotificationTypeEnum
- NotificationType.Type.DESK_ARCHIVE_JOB_FILE_NOT_FOUND.instance.emit(
+ NotificationTypeEnum.DESK_ARCHIVE_JOB_FILE_NOT_FOUND.instance.emit(
destination_address=settings.OSF_SUPPORT_EMAIL,
event_context={
- 'user': user.id,
- 'src': src._id,
+ 'domain': settings.DOMAIN,
+ 'src': src,
+ 'src_title': src.title,
+ 'user__id': user._id,
+ 'user_fullname': user.fullname,
+ 'src__id': src._id,
'results': results,
- 'url': url,
- 'can_change_preferences': False,
}
)
- NotificationType.Type.USER_ARCHIVE_JOB_FILE_NOT_FOUND.instance.emit(
+ NotificationTypeEnum.USER_ARCHIVE_JOB_FILE_NOT_FOUND.instance.emit(
user=user,
event_context={
'user': user.id,
@@ -110,39 +100,29 @@ def send_archiver_file_not_found_mails(src, user, results, url):
'src_title': src.title,
'src_url': src.url,
'results': results,
- 'can_change_preferences': False,
}
)
def send_archiver_uncaught_error_mails(src, user, results, url):
- from osf.models.notification_type import NotificationType
+ from osf.models.notification_type import NotificationTypeEnum
- NotificationType.Type.DESK_ARCHIVE_JOB_UNCAUGHT_ERROR.instance.emit(
+ NotificationTypeEnum.DESK_ARCHIVE_JOB_UNCAUGHT_ERROR.instance.emit(
destination_address=settings.OSF_SUPPORT_EMAIL,
event_context={
'user_fullname': user.fullname,
'user__id': user._id,
- 'user_username': user.username,
'src_title': src.title,
- 'src__id': src._id,
'src_url': src.url,
- 'src': src._id,
- 'results': [str(error) for error in results],
'url': url,
- 'can_change_preferences': False,
+ 'src__id': src._id,
+ 'results': results,
}
)
- NotificationType.Type.USER_ARCHIVE_JOB_UNCAUGHT_ERROR.instance.emit(
+ NotificationTypeEnum.USER_ARCHIVE_JOB_UNCAUGHT_ERROR.instance.emit(
user=user,
event_context={
- 'user_fullname': user.fullname,
- 'user__id': user._id,
'src_title': src.title,
- 'src__id': src._id,
'src_url': src.url,
- 'src': src._id,
- 'results': [str(error) for error in results],
- 'can_change_preferences': False,
}
)
diff --git a/website/mailchimp_utils.py b/website/mailchimp_utils.py
index 7e92a59d275..764247c1482 100644
--- a/website/mailchimp_utils.py
+++ b/website/mailchimp_utils.py
@@ -8,7 +8,7 @@
from framework.celery_tasks.handlers import queued_task
from framework.auth.signals import user_confirmed
from osf.exceptions import OSFError
-from osf.models import OSFUser, NotificationSubscription, NotificationType
+from osf.models import OSFUser, NotificationSubscription, NotificationTypeEnum
from website import settings
@@ -123,16 +123,22 @@ def subscribe_on_confirm(user):
# Subscribe user to default notification subscriptions
NotificationSubscription.objects.get_or_create(
user=user,
- notification_type=NotificationType.Type.REVIEWS_SUBMISSION_STATUS.instance,
+ notification_type=NotificationTypeEnum.REVIEWS_SUBMISSION_STATUS.instance,
content_type=ContentType.objects.get_for_model(user),
object_id=user.id,
- defaults={'message_frequency': 'instantly'},
+ defaults={
+ '_is_digest': True,
+ 'message_frequency': 'instantly',
+ },
)
NotificationSubscription.objects.get_or_create(
user=user,
- notification_type=NotificationType.Type.USER_FILE_UPDATED.instance,
+ notification_type=NotificationTypeEnum.USER_FILE_UPDATED.instance,
content_type=ContentType.objects.get_for_model(user),
object_id=user.id,
- defaults={'message_frequency': 'instantly'},
+ defaults={
+ '_is_digest': True,
+ 'message_frequency': 'instantly',
+ },
)
diff --git a/website/notifications/__init__.py b/website/notifications/__init__.py
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/website/notifications/constants.py b/website/notifications/constants.py
deleted file mode 100644
index ce3c9db4315..00000000000
--- a/website/notifications/constants.py
+++ /dev/null
@@ -1,39 +0,0 @@
-NODE_SUBSCRIPTIONS_AVAILABLE = {
- 'file_updated': 'Files updated'
-}
-
-# Note: if the subscription starts with 'global_', it will be treated like a default
-# subscription. If no notification type has been assigned, the user subscription
-# will default to 'email_transactional'.
-USER_SUBSCRIPTIONS_AVAILABLE = {
- 'global_file_updated': 'Files updated',
- 'global_reviews': 'Preprint submissions updated'
-}
-
-PROVIDER_SUBSCRIPTIONS_AVAILABLE = {
- 'new_pending_submissions': 'New preprint submissions for moderators to review.'
-}
-
-# Note: the python value None mean inherit from parent
-NOTIFICATION_TYPES = {
- 'email_transactional': 'Email when a change occurs',
- 'email_digest': 'Daily email digest of all changes to this project',
- 'none': 'None'
-}
-
-# Formatted file provider names for notification emails
-PROVIDERS = {
- 'osfstorage': 'OSF Storage',
- 'boa': 'Boa',
- 'box': 'Box',
- 'dataverse': 'Dataverse',
- 'dropbox': 'Dropbox',
- 'figshare': 'figshare',
- 'github': 'GitHub',
- 'gitlab': 'GitLab',
- 'bitbucket': 'Bitbucket',
- 'googledrive': 'Google Drive',
- 'owncloud': 'ownCloud',
- 'onedrive': 'Microsoft OneDrive',
- 's3': 'Amazon S3'
-}
diff --git a/website/notifications/emails.py b/website/notifications/emails.py
deleted file mode 100644
index e61c64e660a..00000000000
--- a/website/notifications/emails.py
+++ /dev/null
@@ -1,243 +0,0 @@
-from django.apps import apps
-
-from babel import dates, core, Locale
-
-from osf.models import AbstractNode, NotificationDigest, NotificationSubscription
-from osf.utils.permissions import ADMIN, READ
-from website import mails
-from website.notifications import constants
-from website.notifications import utils
-from website.util import web_url_for
-
-
-def notify(event, user, node, timestamp, **context):
- """Retrieve appropriate ***subscription*** and passe user list
-
- :param event: event that triggered the notification
- :param user: user who triggered notification
- :param node: instance of Node
- :param timestamp: time event happened
- :param context: optional variables specific to templates
- target_user: used with comment_replies
- :return: List of user ids notifications were sent to
- """
- sent_users = []
- # The user who the current comment is a reply to
- target_user = context.get('target_user', None)
- exclude = context.get('exclude', [])
- # do not notify user who initiated the emails
- exclude.append(user._id)
-
- event_type = utils.find_subscription_type(event)
- if target_user and event_type in constants.USER_SUBSCRIPTIONS_AVAILABLE:
- # global user
- subscriptions = get_user_subscriptions(target_user, event_type)
- else:
- # local project user
- subscriptions = compile_subscriptions(node, event_type, event)
-
- for notification_type in subscriptions:
- if notification_type == 'none' or not subscriptions[notification_type]:
- continue
- # Remove excluded ids from each notification type
- subscriptions[notification_type] = [guid for guid in subscriptions[notification_type] if guid not in exclude]
-
- # If target, they get a reply email and are removed from the general email
- if target_user and target_user._id in subscriptions[notification_type]:
- subscriptions[notification_type].remove(target_user._id)
- store_emails([target_user._id], notification_type, 'comment_replies', user, node, timestamp, **context)
- sent_users.append(target_user._id)
-
- if subscriptions[notification_type]:
- store_emails(subscriptions[notification_type], notification_type, event_type, user, node, timestamp, **context)
- sent_users.extend(subscriptions[notification_type])
- return sent_users
-
-def notify_mentions(event, user, node, timestamp, **context):
- OSFUser = apps.get_model('osf', 'OSFUser')
- recipient_ids = context.get('new_mentions', [])
- recipients = OSFUser.objects.filter(guids___id__in=recipient_ids)
- sent_users = notify_global_event(event, user, node, timestamp, recipients, context=context)
- return sent_users
-
-def notify_global_event(event, sender_user, node, timestamp, recipients, template=None, context=None):
- event_type = utils.find_subscription_type(event)
- sent_users = []
- if not context:
- context = {}
-
- for recipient in recipients:
- subscriptions = get_user_subscriptions(recipient, event_type)
- context['is_creator'] = recipient == node.creator
- if node.provider:
- context['has_psyarxiv_chronos_text'] = node.has_permission(recipient, ADMIN) and 'psyarxiv' in node.provider.name.lower()
- for notification_type in subscriptions:
- if (notification_type != 'none' and subscriptions[notification_type] and recipient._id in subscriptions[notification_type]):
- store_emails([recipient._id], notification_type, event, sender_user, node, timestamp, template=template, **context)
- sent_users.append(recipient._id)
-
- return sent_users
-
-
-def store_emails(recipient_ids, notification_type, event, user, node, timestamp, abstract_provider=None, template=None, **context):
- """Store notification emails
-
- Emails are sent via celery beat as digests
- :param recipient_ids: List of user ids to send mail to.
- :param notification_type: from constants.Notification_types
- :param event: event that triggered notification
- :param user: user who triggered the notification
- :param node: instance of Node
- :param timestamp: time event happened
- :param context:
- :return: --
- """
- OSFUser = apps.get_model('osf', 'OSFUser')
-
- if notification_type == 'none':
- return
-
- # If `template` is not specified, default to using a template with name `event`
- template = f'{template or event}.html.mako'
-
- # user whose action triggered email sending
- context['user'] = user
- node_lineage_ids = get_node_lineage(node) if node else []
-
- for recipient_id in recipient_ids:
- if recipient_id == user._id:
- continue
- recipient = OSFUser.load(recipient_id)
- if recipient.is_disabled:
- continue
- context['localized_timestamp'] = localize_timestamp(timestamp, recipient)
- context['recipient'] = recipient
- message = mails.render_message(template, **context)
- digest = NotificationDigest(
- timestamp=timestamp,
- send_type=notification_type,
- event=event,
- user=recipient,
- message=message,
- node_lineage=node_lineage_ids,
- provider=abstract_provider
- )
- digest.save()
-
-
-def compile_subscriptions(node, event_type, event=None, level=0):
- """Recurse through node and parents for subscriptions.
-
- :param node: current node
- :param event_type: Generally node_subscriptions_available
- :param event: Particular event such a file_updated that has specific file subs
- :param level: How deep the recursion is
- :return: a dict of notification types with lists of users.
- """
- subscriptions = check_node(node, event_type)
- if event:
- subscriptions = check_node(node, event) # Gets particular event subscriptions
- parent_subscriptions = compile_subscriptions(node, event_type, level=level + 1) # get node and parent subs
- elif getattr(node, 'parent_id', False):
- parent_subscriptions = \
- compile_subscriptions(AbstractNode.load(node.parent_id), event_type, level=level + 1)
- else:
- parent_subscriptions = check_node(None, event_type)
- for notification_type in parent_subscriptions:
- p_sub_n = parent_subscriptions[notification_type]
- p_sub_n.extend(subscriptions[notification_type])
- for nt in subscriptions:
- if notification_type != nt:
- p_sub_n = list(set(p_sub_n).difference(set(subscriptions[nt])))
- if level == 0:
- p_sub_n, removed = utils.separate_users(node, p_sub_n)
- parent_subscriptions[notification_type] = p_sub_n
- return parent_subscriptions
-
-
-def check_node(node, event):
- """Return subscription for a particular node and event."""
- node_subscriptions = {key: [] for key in constants.NOTIFICATION_TYPES}
- if node:
- subscription = NotificationSubscription.load(utils.to_subscription_key(node._id, event))
- for notification_type in node_subscriptions:
- users = getattr(subscription, notification_type, [])
- if users:
- for user in users.exclude(date_disabled__isnull=False):
- if node.has_permission(user, READ):
- node_subscriptions[notification_type].append(user._id)
- return node_subscriptions
-
-
-def get_user_subscriptions(user, event):
- if user.is_disabled:
- return {}
- user_subscription = NotificationSubscription.load(utils.to_subscription_key(user._id, event))
- if user_subscription:
- return {key: list(getattr(user_subscription, key).all().values_list('guids___id', flat=True)) for key in constants.NOTIFICATION_TYPES}
- else:
- return {key: [user._id] if (event in constants.USER_SUBSCRIPTIONS_AVAILABLE and key == 'email_transactional') else [] for key in constants.NOTIFICATION_TYPES}
-
-
-def get_node_lineage(node):
- """ Get a list of node ids in order from the node to top most project
- e.g. [parent._id, node._id]
- """
- from osf.models import Preprint
- lineage = [node._id]
- if isinstance(node, Preprint):
- return lineage
-
- while node.parent_id:
- node = node.parent_node
- lineage = [node._id] + lineage
-
- return lineage
-
-
-def get_settings_url(uid, user):
- if uid == user._id:
- return web_url_for('user_notifications', _absolute=True)
-
- node = AbstractNode.load(uid)
- assert node, 'get_settings_url received an invalid Node id'
- return node.web_url_for('node_setting', _guid=True, _absolute=True)
-
-def fix_locale(locale):
- """Attempt to fix a locale to have the correct casing, e.g. de_de -> de_DE
-
- This is NOT guaranteed to return a valid locale identifier.
- """
- try:
- language, territory = locale.split('_', 1)
- except ValueError:
- return locale
- else:
- return '_'.join([language, territory.upper()])
-
-def localize_timestamp(timestamp, user):
- try:
- user_timezone = dates.get_timezone(user.timezone)
- except LookupError:
- user_timezone = dates.get_timezone('Etc/UTC')
-
- try:
- user_locale = Locale(user.locale)
- except core.UnknownLocaleError:
- user_locale = Locale('en')
-
- # Do our best to find a valid locale
- try:
- user_locale.date_formats
- except OSError: # An IOError will be raised if locale's casing is incorrect, e.g. de_de vs. de_DE
- # Attempt to fix the locale, e.g. de_de -> de_DE
- try:
- user_locale = Locale(fix_locale(user.locale))
- user_locale.date_formats
- except (core.UnknownLocaleError, OSError):
- user_locale = Locale('en')
-
- formatted_date = dates.format_date(timestamp, format='full', locale=user_locale)
- formatted_time = dates.format_time(timestamp, format='short', tzinfo=user_timezone, locale=user_locale)
-
- return f'{formatted_time} on {formatted_date}'
diff --git a/website/notifications/utils.py b/website/notifications/utils.py
deleted file mode 100644
index b9a9b6d10e3..00000000000
--- a/website/notifications/utils.py
+++ /dev/null
@@ -1,479 +0,0 @@
-import collections
-
-from django.apps import apps
-from django.db.models import Q
-
-from osf.utils.permissions import READ
-from website.notifications import constants
-from website.notifications.exceptions import InvalidSubscriptionError
-from website.project import signals
-
-class NotificationsDict(dict):
- def __init__(self):
- super().__init__()
- self.update(messages=[], children=collections.defaultdict(NotificationsDict))
-
- def add_message(self, keys, messages):
- """
- :param keys: ordered list of project ids from parent to node (e.g. ['parent._id', 'node._id'])
- :param messages: built email message for an event that occurred on the node
- :return: nested dict with project/component ids as the keys with the message at the appropriate level
- """
- d_to_use = self
-
- for key in keys:
- d_to_use = d_to_use['children'][key]
-
- if not isinstance(messages, list):
- messages = [messages]
-
- d_to_use['messages'].extend(messages)
-
-
-def find_subscription_type(subscription):
- """Find subscription type string within specific subscription.
- Essentially removes extraneous parts of the string to get the type.
- """
- subs_available = list(constants.USER_SUBSCRIPTIONS_AVAILABLE.keys())
- subs_available.extend(list(constants.NODE_SUBSCRIPTIONS_AVAILABLE.keys()))
- for available in subs_available:
- if available in subscription:
- return available
-
-
-def to_subscription_key(uid, event):
- """Build the Subscription primary key for the given guid and event"""
- return f'{uid}_{event}'
-
-
-def from_subscription_key(key):
- parsed_key = key.split('_', 1)
- return {
- 'uid': parsed_key[0],
- 'event': parsed_key[1]
- }
-
-
-@signals.contributor_removed.connect
-def remove_contributor_from_subscriptions(node, user):
- """ Remove contributor from node subscriptions unless the user is an
- admin on any of node's parent projects.
- """
- Preprint = apps.get_model('osf.Preprint')
- DraftRegistration = apps.get_model('osf.DraftRegistration')
- # Preprints don't have subscriptions at this time
- if isinstance(node, Preprint):
- return
- if isinstance(node, DraftRegistration):
- return
-
- # If user still has permissions through being a contributor or group member, or has
- # admin perms on a parent, don't remove their subscription
- if not (node.is_contributor_or_group_member(user)) and user._id not in node.admin_contributor_or_group_member_ids:
- node_subscriptions = get_all_node_subscriptions(user, node)
- for subscription in node_subscriptions:
- subscription.objects.filter(
- user=user,
- ).delete()
-
-def separate_users(node, user_ids):
- """Separates users into ones with permissions and ones without given a list.
- :param node: Node to separate based on permissions
- :param user_ids: List of ids, will also take and return User instances
- :return: list of subbed, list of removed user ids
- """
- OSFUser = apps.get_model('osf.OSFUser')
- removed = []
- subbed = []
- for user_id in user_ids:
- try:
- user = OSFUser.load(user_id)
- except TypeError:
- user = user_id
- if node.has_permission(user, READ):
- subbed.append(user_id)
- else:
- removed.append(user_id)
- return subbed, removed
-
-
-def users_to_remove(source_event, source_node, new_node):
- """Find users that do not have permissions on new_node.
- :param source_event: such as _file_updated
- :param source_node: Node instance where a subscription currently resides
- :param new_node: Node instance where a sub or new sub will be.
- :return: Dict of notification type lists with user_ids
- """
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- removed_users = {key: [] for key in constants.NOTIFICATION_TYPES}
- if source_node == new_node:
- return removed_users
- old_sub = NotificationSubscription.load(to_subscription_key(source_node._id, source_event))
- old_node_sub = NotificationSubscription.load(to_subscription_key(source_node._id,
- '_'.join(source_event.split('_')[-2:])))
- if not old_sub and not old_node_sub:
- return removed_users
- for notification_type in constants.NOTIFICATION_TYPES:
- users = []
- if hasattr(old_sub, notification_type):
- users += list(getattr(old_sub, notification_type).values_list('guids___id', flat=True))
- if hasattr(old_node_sub, notification_type):
- users += list(getattr(old_node_sub, notification_type).values_list('guids___id', flat=True))
- subbed, removed_users[notification_type] = separate_users(new_node, users)
- return removed_users
-
-
-def move_subscription(remove_users, source_event, source_node, new_event, new_node):
- """Moves subscription from old_node to new_node
- :param remove_users: dictionary of lists of users to remove from the subscription
- :param source_event: A specific guid event _file_updated
- :param source_node: Instance of Node
- :param new_event: A specific guid event
- :param new_node: Instance of Node
- :return: Returns a NOTIFICATION_TYPES list of removed users without permissions
- """
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- if source_node == new_node:
- return
- old_sub = NotificationSubscription.load(to_subscription_key(source_node._id, source_event))
- if not old_sub:
- return
- elif old_sub:
- old_sub._id = to_subscription_key(new_node._id, new_event)
- old_sub.event_name = new_event
- old_sub.owner = new_node
- new_sub = old_sub
- new_sub.save()
- # Remove users that don't have permission on the new node.
- for notification_type in constants.NOTIFICATION_TYPES:
- if new_sub:
- for user_id in remove_users[notification_type]:
- related_manager = getattr(new_sub, notification_type, None)
- subscriptions = related_manager.all() if related_manager else []
- if user_id in subscriptions:
- new_sub.delete()
-
-
-def get_configured_projects(user):
- """Filter all user subscriptions for ones that are on parent projects
- and return the node objects.
- :param user: OSFUser object
- :return: list of node objects for projects with no parent
- """
- configured_projects = set()
- user_subscriptions = get_all_user_subscriptions(user, extra=(
- ~Q(node__type='osf.collection') &
- Q(node__is_deleted=False)
- ))
-
- for subscription in user_subscriptions:
- # If the user has opted out of emails skip
- node = subscription.subscribed_object
-
- if subscription.message_frequency == 'none':
- continue
-
- root = node.root
-
- if not root.is_deleted:
- configured_projects.add(root)
-
- return sorted(configured_projects, key=lambda n: n.title.lower())
-
-
-def check_project_subscriptions_are_all_none(user, node):
- node_subscriptions = get_all_node_subscriptions(user, node)
- for s in node_subscriptions:
- if not s.none.filter(id=user.id).exists():
- return False
- return True
-
-
-def get_all_user_subscriptions(user, extra=None):
- """ Get all Subscription objects that the user is subscribed to"""
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- queryset = NotificationSubscription.objects.filter(
- Q(none=user.pk) |
- Q(email_digest=user.pk) |
- Q(email_transactional=user.pk)
- ).distinct()
- return queryset.filter(extra) if extra else queryset
-
-
-def get_all_node_subscriptions(user, node, user_subscriptions=None):
- """ Get all Subscription objects for a node that the user is subscribed to
- :param user: OSFUser object
- :param node: Node object
- :param user_subscriptions: all Subscription objects that the user is subscribed to
- :return: list of Subscription objects for a node that the user is subscribed to
- """
- if not user_subscriptions:
- user_subscriptions = get_all_user_subscriptions(user)
- return user_subscriptions.filter(user__isnull=True, node=node)
-
-
-def format_data(user, nodes):
- """ Format subscriptions data for project settings page
- :param user: OSFUser object
- :param nodes: list of parent project node objects
- :return: treebeard-formatted data
- """
- items = []
-
- user_subscriptions = get_all_user_subscriptions(user)
- for node in nodes:
- assert node, f'{node._id} is not a valid Node.'
-
- can_read = node.has_permission(user, READ)
- can_read_children = node.has_permission_on_children(user, READ)
-
- if not can_read and not can_read_children:
- continue
-
- children = node.get_nodes(**{'is_deleted': False, 'is_node_link': False})
- children_tree = []
- # List project/node if user has at least READ permissions (contributor or admin viewer) or if
- # user is contributor on a component of the project/node
-
- if can_read:
- node_sub_available = list(constants.NODE_SUBSCRIPTIONS_AVAILABLE.keys())
- subscriptions = get_all_node_subscriptions(
- user,
- node,
- user_subscriptions=user_subscriptions).filter(notification_type__name__in=node_sub_available)
-
- for subscription in subscriptions:
- index = node_sub_available.index(getattr(subscription, 'event_name'))
- children_tree.append(serialize_event(user, subscription=subscription,
- node=node, event_description=node_sub_available.pop(index)))
- for node_sub in node_sub_available:
- children_tree.append(serialize_event(user, node=node, event_description=node_sub))
- children_tree.sort(key=lambda s: s['event']['title'])
-
- children_tree.extend(format_data(user, children))
-
- item = {
- 'node': {
- 'id': node._id,
- 'url': node.url if can_read else '',
- 'title': node.title if can_read else 'Private Project',
- },
- 'children': children_tree,
- 'kind': 'folder' if not node.parent_node or not node.parent_node.has_permission(user, READ) else 'node',
- 'nodeType': node.project_or_component,
- 'category': node.category,
- 'permissions': {
- 'view': can_read,
- },
- }
-
- items.append(item)
-
- return items
-
-
-def format_user_subscriptions(user):
- """ Format user-level subscriptions (e.g. comment replies across the OSF) for user settings page"""
- user_subs_available = list(constants.USER_SUBSCRIPTIONS_AVAILABLE.keys())
- subscriptions = [
- serialize_event(
- user, subscription,
- event_description=user_subs_available.pop(user_subs_available.index(getattr(subscription, 'event_name')))
- )
- for subscription in get_all_user_subscriptions(user)
- if subscription is not None and getattr(subscription, 'event_name') in user_subs_available
- ]
- subscriptions.extend([serialize_event(user, event_description=sub) for sub in user_subs_available])
- return subscriptions
-
-
-def format_file_subscription(user, node_id, path, provider):
- """Format a single file event"""
- AbstractNode = apps.get_model('osf.AbstractNode')
- node = AbstractNode.load(node_id)
- wb_path = path.lstrip('/')
- for subscription in get_all_node_subscriptions(user, node):
- if wb_path in getattr(subscription, 'event_name'):
- return serialize_event(user, subscription, node)
- return serialize_event(user, node=node, event_description='file_updated')
-
-
-all_subs = constants.NODE_SUBSCRIPTIONS_AVAILABLE.copy()
-all_subs.update(constants.USER_SUBSCRIPTIONS_AVAILABLE)
-
-def serialize_event(user, subscription=None, node=None, event_description=None):
- """
- :param user: OSFUser object
- :param subscription: Subscription object, use if parsing particular subscription
- :param node: Node object, use if node is known
- :param event_description: use if specific subscription is known
- :return: treebeard-formatted subscription event
- """
- if not event_description:
- event_description = getattr(subscription, 'event_name')
- # Looks at only the types available. Deals with pre-pending file names.
- for sub_type in all_subs:
- if sub_type in event_description:
- event_type = sub_type
- else:
- event_type = event_description
- if node and node.parent_node:
- notification_type = 'adopt_parent'
- elif event_type.startswith('global_'):
- notification_type = 'email_transactional'
- else:
- notification_type = 'none'
- if subscription:
- for n_type in constants.NOTIFICATION_TYPES:
- if getattr(subscription, n_type).filter(id=user.id).exists():
- notification_type = n_type
- return {
- 'event': {
- 'title': event_description,
- 'description': all_subs[event_type],
- 'notificationType': notification_type,
- 'parent_notification_type': get_parent_notification_type(node, event_type, user)
- },
- 'kind': 'event',
- 'children': []
- }
-
-
-def get_parent_notification_type(node, event, user):
- """
- Given an event on a node (e.g. comment on node 'xyz'), find the user's notification
- type on the parent project for the same event.
- :param obj node: event owner (Node or User object)
- :param str event: notification event (e.g. 'comment_replies')
- :param obj user: OSFUser object
- :return: str notification type (e.g. 'email_transactional')
- """
- AbstractNode = apps.get_model('osf.AbstractNode')
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
-
- if node and isinstance(node, AbstractNode) and node.parent_node and node.parent_node.has_permission(user, READ):
- parent = node.parent_node
- key = to_subscription_key(parent._id, event)
- try:
- subscription = NotificationSubscription.objects.get(_id=key)
- except NotificationSubscription.DoesNotExist:
- return get_parent_notification_type(parent, event, user)
-
- for notification_type in constants.NOTIFICATION_TYPES:
- if getattr(subscription, notification_type).filter(id=user.id).exists():
- return notification_type
- else:
- return get_parent_notification_type(parent, event, user)
- else:
- return None
-
-
-def get_global_notification_type(global_subscription, user):
- """
- Given a global subscription (e.g. NotificationSubscription object with event_type
- 'global_file_updated'), find the user's notification type.
- :param obj global_subscription: NotificationSubscription object
- :param obj user: OSFUser object
- :return: str notification type (e.g. 'email_transactional')
- """
- for notification_type in constants.NOTIFICATION_TYPES:
- # TODO Optimize me
- if getattr(global_subscription, notification_type).filter(id=user.id).exists():
- return notification_type
-
-
-def check_if_all_global_subscriptions_are_none(user):
- # This function predates comment mentions, which is a global_ notification that cannot be disabled
- # Therefore, an actual check would never return True.
- # If this changes, an optimized query would look something like:
- # not NotificationSubscription.objects.filter(Q(event_name__startswith='global_') & (Q(email_digest=user.pk)|Q(email_transactional=user.pk))).exists()
- return False
-
-
-def subscribe_user_to_global_notifications(user):
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- notification_type = 'email_transactional'
- user_events = constants.USER_SUBSCRIPTIONS_AVAILABLE
- for user_event in user_events:
- user_event_id = to_subscription_key(user._id, user_event)
-
- # get_or_create saves on creation
- subscription, created = NotificationSubscription.objects.get_or_create(_id=user_event_id, user=user, event_name=user_event)
- subscription.add_user_to_subscription(user, notification_type)
- subscription.save()
-
-
-def subscribe_user_to_notifications(node, user):
- """ Update the notification settings for the creator or contributors
- :param user: User to subscribe to notifications
- """
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- Preprint = apps.get_model('osf.Preprint')
- DraftRegistration = apps.get_model('osf.DraftRegistration')
- if isinstance(node, Preprint):
- raise InvalidSubscriptionError('Preprints are invalid targets for subscriptions at this time.')
-
- if isinstance(node, DraftRegistration):
- raise InvalidSubscriptionError('DraftRegistrations are invalid targets for subscriptions at this time.')
-
- if node.is_collection:
- raise InvalidSubscriptionError('Collections are invalid targets for subscriptions')
-
- if node.is_deleted:
- raise InvalidSubscriptionError('Deleted Nodes are invalid targets for subscriptions')
-
- if getattr(node, 'is_registration', False):
- raise InvalidSubscriptionError('Registrations are invalid targets for subscriptions')
-
- events = constants.NODE_SUBSCRIPTIONS_AVAILABLE
- notification_type = 'email_transactional'
- target_id = node._id
-
- if user.is_registered:
- for event in events:
- event_id = to_subscription_key(target_id, event)
- global_event_id = to_subscription_key(user._id, 'global_' + event)
- global_subscription = NotificationSubscription.load(global_event_id)
-
- subscription = NotificationSubscription.load(event_id)
-
- # If no subscription for component and creator is the user, do not create subscription
- # If no subscription exists for the component, this means that it should adopt its
- # parent's settings
- if not (node and node.parent_node and not subscription and node.creator == user):
- if not subscription:
- subscription = NotificationSubscription(_id=event_id, owner=node, event_name=event)
- # Need to save here in order to access m2m fields
- subscription.save()
- if global_subscription:
- global_notification_type = get_global_notification_type(global_subscription, user)
- subscription.add_user_to_subscription(user, global_notification_type)
- else:
- subscription.add_user_to_subscription(user, notification_type)
- subscription.save()
-
-
-def format_user_and_project_subscriptions(user):
- """ Format subscriptions data for user settings page. """
- return [
- {
- 'node': {
- 'id': user._id,
- 'title': 'Default Notification Settings',
- 'help': 'These are default settings for new projects you create ' +
- 'or are added to. Modifying these settings will not ' +
- 'modify settings on existing projects.'
- },
- 'kind': 'heading',
- 'children': format_user_subscriptions(user)
- },
- {
- 'node': {
- 'id': '',
- 'title': 'Project Notifications',
- 'help': 'These are settings for each of your projects. Modifying ' +
- 'these settings will only modify the settings for the selected project.'
- },
- 'kind': 'heading',
- 'children': format_data(user, get_configured_projects(user))
- }]
diff --git a/website/notifications/views.py b/website/notifications/views.py
deleted file mode 100644
index 700594f69d6..00000000000
--- a/website/notifications/views.py
+++ /dev/null
@@ -1,540 +0,0 @@
-from django.contrib.contenttypes.models import ContentType
-from rest_framework import status as http_status
-
-from flask import request
-
-from framework import sentry
-from framework.auth.decorators import must_be_logged_in
-from framework.exceptions import HTTPError
-
-from osf.models import AbstractNode, Registration, Node
-
-NOTIFICATION_TYPES = {}
-USER_SUBSCRIPTIONS_AVAILABLE = {}
-NODE_SUBSCRIPTIONS_AVAILABLE = {}
-from website.project.decorators import must_be_valid_project
-import collections
-
-from django.apps import apps
-from django.db.models import Q
-
-from osf.models import NotificationSubscription
-from osf.utils.permissions import READ
-
-
-class NotificationsDict(dict):
- def __init__(self):
- super().__init__()
- self.update(messages=[], children=collections.defaultdict(NotificationsDict))
-
- def add_message(self, keys, messages):
- """
- :param keys: ordered list of project ids from parent to node (e.g. ['parent._id', 'node._id'])
- :param messages: built email message for an event that occurred on the node
- :return: nested dict with project/component ids as the keys with the message at the appropriate level
- """
- d_to_use = self
-
- for key in keys:
- d_to_use = d_to_use['children'][key]
-
- if not isinstance(messages, list):
- messages = [messages]
-
- d_to_use['messages'].extend(messages)
-
-
-def find_subscription_type(subscription):
- """Find subscription type string within specific subscription.
- Essentially removes extraneous parts of the string to get the type.
- """
- subs_available = list(USER_SUBSCRIPTIONS_AVAILABLE.keys())
- subs_available.extend(list(NODE_SUBSCRIPTIONS_AVAILABLE.keys()))
- for available in subs_available:
- if available in subscription:
- return available
-
-
-def to_subscription_key(uid, event):
- """Build the Subscription primary key for the given guid and event"""
- return f'{uid}_{event}'
-
-
-def from_subscription_key(key):
- parsed_key = key.split('_', 1)
- return {
- 'uid': parsed_key[0],
- 'event': parsed_key[1]
- }
-
-
-def users_to_remove(source_event, source_node, new_node):
- """Find users that do not have permissions on new_node.
- :param source_event: such as _file_updated
- :param source_node: Node instance where a subscription currently resides
- :param new_node: Node instance where a sub or new sub will be.
- :return: Dict of notification type lists with user_ids
- """
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- removed_users = {key: [] for key in NOTIFICATION_TYPES}
- if source_node == new_node:
- return removed_users
- old_sub = NotificationSubscription.objects.get(
- subscribed_object=source_node,
- notification_type__name=source_event
- )
- for notification_type in NOTIFICATION_TYPES:
- users = []
- if hasattr(old_sub, notification_type):
- users += list(getattr(old_sub, notification_type).values_list('guids___id', flat=True))
- return removed_users
-
-
-def move_subscription(remove_users, source_event, source_node, new_event, new_node):
- """Moves subscription from old_node to new_node
- :param remove_users: dictionary of lists of users to remove from the subscription
- :param source_event: A specific guid event _file_updated
- :param source_node: Instance of Node
- :param new_event: A specific guid event
- :param new_node: Instance of Node
- :return: Returns a NOTIFICATION_TYPES list of removed users without permissions
- """
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- OSFUser = apps.get_model('osf.OSFUser')
- if source_node == new_node:
- return
- old_sub = NotificationSubscription.load(to_subscription_key(source_node._id, source_event))
- if not old_sub:
- return
- elif old_sub:
- old_sub._id = to_subscription_key(new_node._id, new_event)
- old_sub.event_name = new_event
- old_sub.owner = new_node
- new_sub = old_sub
- new_sub.save()
- # Remove users that don't have permission on the new node.
- for notification_type in NOTIFICATION_TYPES:
- if new_sub:
- for user_id in remove_users[notification_type]:
- related_manager = getattr(new_sub, notification_type, None)
- subscriptions = related_manager.all() if related_manager else []
- if user_id in subscriptions:
- user = OSFUser.load(user_id)
- new_sub.remove_user_from_subscription(user)
-
-
-def get_configured_projects(user):
- """Filter all user subscriptions for ones that are on parent projects
- and return the node objects.
- :param user: OSFUser object
- :return: list of node objects for projects with no parent
- """
- configured_projects = set()
- user_subscriptions = get_all_user_subscriptions(user, extra=(
- ~Q(node__type='osf.collection') &
- Q(node__is_deleted=False)
- ))
-
- for subscription in user_subscriptions:
- # If the user has opted out of emails skip
- node = subscription.subscribed_object
-
- if subscription.message_frequency == 'none':
- continue
- if isinstance(node, Node):
- root = node.root
-
- if not root.is_deleted:
- configured_projects.add(root)
-
- return sorted(configured_projects, key=lambda n: n.title.lower())
-
-
-def check_project_subscriptions_are_all_none(user, node):
- node_subscriptions = NotificationSubscription.objects.filter(
- user=user,
- object_id=node.id,
- content_type=ContentType.objects.get_for_model(node).id,
- )
- for s in node_subscriptions:
- if not s.message_frequecy == 'none':
- return False
- return True
-
-
-def get_all_user_subscriptions(user, extra=None):
- """ Get all Subscription objects that the user is subscribed to"""
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- return NotificationSubscription.objects.filter(
- user=user,
- )
-
-
-def get_all_node_subscriptions(user, node, user_subscriptions=None):
- """ Get all Subscription objects for a node that the user is subscribed to
- :param user: OSFUser object
- :param node: Node object
- :param user_subscriptions: all Subscription objects that the user is subscribed to
- :return: list of Subscription objects for a node that the user is subscribed to
- """
- if not user_subscriptions:
- user_subscriptions = get_all_user_subscriptions(user)
- return user_subscriptions.filter(
- object_id=node.id,
- content_type=ContentType.objects.get_for_model(node).id,
- )
-
-
-def format_data(user, nodes):
- """ Format subscriptions data for project settings page
- :param user: OSFUser object
- :param nodes: list of parent project node objects
- :return: treebeard-formatted data
- """
- items = []
-
- user_subscriptions = get_all_user_subscriptions(user)
- for node in nodes:
- assert node, f'{node._id} is not a valid Node.'
-
- can_read = node.has_permission(user, READ)
- can_read_children = node.has_permission_on_children(user, READ)
-
- if not can_read and not can_read_children:
- continue
-
- children = node.get_nodes(**{'is_deleted': False, 'is_node_link': False})
- children_tree = []
- # List project/node if user has at least READ permissions (contributor or admin viewer) or if
- # user is contributor on a component of the project/node
-
- if can_read:
- node_sub_available = list(NODE_SUBSCRIPTIONS_AVAILABLE.keys())
- subscriptions = get_all_node_subscriptions(
- user,
- node,
- user_subscriptions=user_subscriptions
- ).filter(
- notification_type__name__in=node_sub_available
- )
-
- for subscription in subscriptions:
- index = node_sub_available.index(getattr(subscription, 'event_name'))
- children_tree.append(serialize_event(user, subscription=subscription,
- node=node, event_description=node_sub_available.pop(index)))
- for node_sub in node_sub_available:
- children_tree.append(serialize_event(user, node=node, event_description=node_sub))
- children_tree.sort(key=lambda s: s['event']['title'])
-
- children_tree.extend(format_data(user, children))
-
- item = {
- 'node': {
- 'id': node._id,
- 'url': node.url if can_read else '',
- 'title': node.title if can_read else 'Private Project',
- },
- 'children': children_tree,
- 'kind': 'folder' if not node.parent_node or not node.parent_node.has_permission(user, READ) else 'node',
- 'nodeType': node.project_or_component,
- 'category': node.category,
- 'permissions': {
- 'view': can_read,
- },
- }
-
- items.append(item)
-
- return items
-
-
-def format_user_subscriptions(user):
- """ Format user-level subscriptions (e.g. comment replies across the OSF) for user settings page"""
- user_subs_available = list(USER_SUBSCRIPTIONS_AVAILABLE.keys())
- subscriptions = [
- serialize_event(
- user, subscription,
- event_description=user_subs_available.pop(user_subs_available.index(getattr(subscription, 'event_name')))
- )
- for subscription in get_all_user_subscriptions(user)
- if subscription is not None in user_subs_available
- ]
- subscriptions.extend([serialize_event(user, event_description=sub) for sub in user_subs_available])
- return subscriptions
-
-
-def format_file_subscription(user, node_id, path, provider):
- """Format a single file event"""
- AbstractNode = apps.get_model('osf.AbstractNode')
- node = AbstractNode.load(node_id)
- wb_path = path.lstrip('/')
- for subscription in get_all_node_subscriptions(user, node):
- if wb_path in getattr(subscription, 'event_name'):
- return serialize_event(user, subscription, node)
- return serialize_event(user, node=node, event_description='file_updated')
-
-def serialize_event(user, subscription=None, node=None, event_description=None):
- """
- :param user: OSFUser object
- :param subscription: Subscription object, use if parsing particular subscription
- :param node: Node object, use if node is known
- :param event_description: use if specific subscription is known
- :return: treebeard-formatted subscription event
- """
- if not event_description:
- event_description = getattr(subscription, 'event_name')
- # Looks at only the types available. Deals with pre-pending file names.
- for sub_type in {}:
- if sub_type in event_description:
- event_type = sub_type
- else:
- event_type = event_description
- if node and node.parent_node:
- notification_type = 'adopt_parent'
- elif event_type.startswith('global_'):
- notification_type = 'email_transactional'
- else:
- notification_type = 'none'
- if subscription:
- for n_type in {}:
- if getattr(subscription, n_type).filter(id=user.id).exists():
- notification_type = n_type
- return {
- 'event': {
- 'title': event_description,
- 'description': {}[event_type],
- 'notificationType': notification_type,
- 'parent_notification_type': get_parent_notification_type(node, event_type, user)
- },
- 'kind': 'event',
- 'children': []
- }
-
-
-def get_parent_notification_type(node, event, user):
- """
- Given an event on a node (e.g. comment on node 'xyz'), find the user's notification
- type on the parent project for the same event.
- :param obj node: event owner (Node or User object)
- :param str event: notification event (e.g. 'comment_replies')
- :param obj user: OSFUser object
- :return: str notification type (e.g. 'email_transactional')
- """
- AbstractNode = apps.get_model('osf.AbstractNode')
- NotificationSubscriptionLegacy = apps.get_model('osf.NotificationSubscriptionLegacy')
-
- if node and isinstance(node, AbstractNode) and node.parent_node and node.parent_node.has_permission(user, READ):
- parent = node.parent_node
- key = to_subscription_key(parent._id, event)
- try:
- subscription = NotificationSubscriptionLegacy.objects.get(_id=key)
- except NotificationSubscriptionLegacy.DoesNotExist:
- return get_parent_notification_type(parent, event, user)
-
- for notification_type in NOTIFICATION_TYPES:
- if getattr(subscription, notification_type).filter(id=user.id).exists():
- return notification_type
- else:
- return get_parent_notification_type(parent, event, user)
- else:
- return None
-
-
-def get_global_notification_type(global_subscription, user):
- """
- Given a global subscription (e.g. NotificationSubscription object with event_type
- 'global_file_updated'), find the user's notification type.
- :param obj global_subscription: NotificationSubscription object
- :param obj user: OSFUser object
- :return: str notification type (e.g. 'email_transactional')
- """
- for notification_type in NOTIFICATION_TYPES:
- # TODO Optimize me
- if getattr(global_subscription, notification_type).filter(id=user.id).exists():
- return notification_type
-
-
-def check_if_all_global_subscriptions_are_none(user):
- # This function predates comment mentions, which is a global_ notification that cannot be disabled
- # Therefore, an actual check would never return True.
- # If this changes, an optimized query would look something like:
- # not NotificationSubscriptionLegacy.objects.filter(Q(event_name__startswith='global_') & (Q(email_digest=user.pk)|Q(email_transactional=user.pk))).exists()
- return False
-
-
-def subscribe_user_to_global_notifications(user):
- NotificationSubscriptionLegacy = apps.get_model('osf.NotificationSubscriptionLegacy')
- notification_type = 'email_transactional'
- user_events = USER_SUBSCRIPTIONS_AVAILABLE
- for user_event in user_events:
- user_event_id = to_subscription_key(user._id, user_event)
-
- # get_or_create saves on creation
- subscription, created = NotificationSubscriptionLegacy.objects.get_or_create(_id=user_event_id, user=user, event_name=user_event)
- subscription.add_user_to_subscription(user, notification_type)
- subscription.save()
-
-
-class InvalidSubscriptionError:
- pass
-
-
-def subscribe_user_to_notifications(node, user):
- """ Update the notification settings for the creator or contributors
- :param user: User to subscribe to notifications
- """
- NotificationSubscription = apps.get_model('osf.NotificationSubscription')
- Preprint = apps.get_model('osf.Preprint')
- DraftRegistration = apps.get_model('osf.DraftRegistration')
- if isinstance(node, Preprint):
- raise InvalidSubscriptionError('Preprints are invalid targets for subscriptions at this time.')
-
- if isinstance(node, DraftRegistration):
- raise InvalidSubscriptionError('DraftRegistrations are invalid targets for subscriptions at this time.')
-
- if node.is_collection:
- raise InvalidSubscriptionError('Collections are invalid targets for subscriptions')
-
- if node.is_deleted:
- raise InvalidSubscriptionError('Deleted Nodes are invalid targets for subscriptions')
-
- if getattr(node, 'is_registration', False):
- raise InvalidSubscriptionError('Registrations are invalid targets for subscriptions')
-
- events = NODE_SUBSCRIPTIONS_AVAILABLE
-
- if user.is_registered:
- for event in events:
- subscription, _ = NotificationSubscription.objects.get_or_create(
- user=user,
- notification_type__name=event
- )
-
-
-def format_user_and_project_subscriptions(user):
- """ Format subscriptions data for user settings page. """
- return [
- {
- 'node': {
- 'id': user._id,
- 'title': 'Default Notification Settings',
- 'help': 'These are default settings for new projects you create ' +
- 'or are added to. Modifying these settings will not ' +
- 'modify settings on existing projects.'
- },
- 'kind': 'heading',
- 'children': format_user_subscriptions(user)
- },
- {
- 'node': {
- 'id': '',
- 'title': 'Project Notifications',
- 'help': 'These are settings for each of your projects. Modifying ' +
- 'these settings will only modify the settings for the selected project.'
- },
- 'kind': 'heading',
- 'children': format_data(user, get_configured_projects(user))
- }]
-
-
-@must_be_logged_in
-def get_subscriptions(auth):
- return format_user_and_project_subscriptions(auth.user)
-
-
-@must_be_logged_in
-@must_be_valid_project
-def get_node_subscriptions(auth, **kwargs):
- node = kwargs.get('node') or kwargs['project']
- return format_data(auth.user, [node])
-
-
-@must_be_logged_in
-def get_file_subscriptions(auth, **kwargs):
- node_id = request.args.get('node_id')
- path = request.args.get('path')
- provider = request.args.get('provider')
- return format_file_subscription(auth.user, node_id, path, provider)
-
-
-@must_be_logged_in
-def configure_subscription(auth):
- user = auth.user
- json_data = request.get_json()
- target_id = json_data.get('id')
- event = json_data.get('event')
- notification_type = json_data.get('notification_type')
- path = json_data.get('path')
- provider = json_data.get('provider')
-
- if not event or (notification_type not in NOTIFICATION_TYPES and notification_type != 'adopt_parent'):
- raise HTTPError(http_status.HTTP_400_BAD_REQUEST, data=dict(
- message_long='Must provide an event and notification type for subscription.')
- )
-
- node = AbstractNode.load(target_id)
- if 'file_updated' in event and path is not None and provider is not None:
- wb_path = path.lstrip('/')
- event = wb_path + '_file_updated'
- event_id = to_subscription_key(target_id, event)
-
- if not node:
- # if target_id is not a node it currently must be the current user
- if not target_id == user._id:
- sentry.log_message(
- '{!r} attempted to subscribe to either a bad '
- 'id or non-node non-self id, {}'.format(user, target_id)
- )
- raise HTTPError(http_status.HTTP_404_NOT_FOUND)
-
- if notification_type == 'adopt_parent':
- sentry.log_message(
- f'{user!r} attempted to adopt_parent of a none node id, {target_id}'
- )
- raise HTTPError(http_status.HTTP_400_BAD_REQUEST)
- # owner = user
- else:
- if not node.has_permission(user, READ):
- sentry.log_message(f'{user!r} attempted to subscribe to private node, {target_id}')
- raise HTTPError(http_status.HTTP_403_FORBIDDEN)
-
- if isinstance(node, Registration):
- sentry.log_message(
- f'{user!r} attempted to subscribe to registration, {target_id}'
- )
- raise HTTPError(http_status.HTTP_400_BAD_REQUEST)
-
- if notification_type != 'adopt_parent':
- pass
- # owner = node
- else:
- if 'file_updated' in event and len(event) > len('file_updated'):
- pass
- else:
- parent = node.parent_node
- if not parent:
- sentry.log_message(
- '{!r} attempted to adopt_parent of '
- 'the parentless project, {!r}'.format(user, node)
- )
- raise HTTPError(http_status.HTTP_400_BAD_REQUEST)
-
- # If adopt_parent make sure that this subscription is None for the current User
- subscription, _ = NotificationSubscription.objects.get_or_create(
- user=user,
- subscribed_object=node,
- notification_type__name=event
- )
- if not subscription:
- return {} # We're done here
-
- subscription.delete()
- return {}
-
- subscription, _ = NotificationSubscription.objects.get_or_create(
- user=user,
- notification_type__name=event
- )
- subscription.save()
-
- return {'message': f'Successfully subscribed to {notification_type} list on {event_id}'}
diff --git a/website/profile/views.py b/website/profile/views.py
index 42d5590f212..a08a586742e 100644
--- a/website/profile/views.py
+++ b/website/profile/views.py
@@ -25,7 +25,7 @@
from framework.status import push_status_message
from framework.utils import throttle_period_expired
-from osf.models import ApiOAuth2Application, ApiOAuth2PersonalToken, OSFUser, NotificationType
+from osf.models import ApiOAuth2Application, ApiOAuth2PersonalToken, OSFUser, NotificationTypeEnum
from osf.exceptions import BlockedEmailError, OSFError
from osf.utils.requests import string_type_request_headers
from website import mailchimp_utils
@@ -185,13 +185,12 @@ def update_user(auth):
# make sure the new username has already been confirmed
if username and username != user.username and user.emails.filter(address=username).exists():
- NotificationType.Type.USER_PRIMARY_EMAIL_CHANGED.instance.emit(
+ NotificationTypeEnum.USER_PRIMARY_EMAIL_CHANGED.instance.emit(
subscribed_object=user,
user=user,
event_context={
'user_fullname': user.fullname,
'new_address': username,
- 'can_change_preferences': False,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
}
)
@@ -784,13 +783,12 @@ def request_export(auth):
data={'message_long': 'Too many requests. Please wait a while before sending another account export request.',
'error_type': 'throttle_error'})
- NotificationType.Type.DESK_REQUEST_EXPORT.instance.emit(
+ NotificationTypeEnum.DESK_REQUEST_EXPORT.instance.emit(
user=user,
event_context={
'user_username': user.username,
'user_absolute_url': user.absolute_url,
'user__id': user._id,
- 'can_change_preferences': False,
}
)
user.email_last_sent = timezone.now()
diff --git a/website/project/views/contributor.py b/website/project/views/contributor.py
index 6315452cda9..9ad43fa0304 100644
--- a/website/project/views/contributor.py
+++ b/website/project/views/contributor.py
@@ -26,7 +26,7 @@
Preprint,
PreprintProvider,
RecentlyAddedContributor,
- NotificationType
+ NotificationTypeEnum
)
from osf.utils import sanitize
from osf.utils.permissions import ADMIN
@@ -214,7 +214,7 @@ def finalize_invitation(
node,
contributor,
auth,
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
):
try:
record = contributor.get_unclaimed_record(node._primary_key)
@@ -436,7 +436,7 @@ def send_claim_registered_email(claimer, unclaimed_user, node, throttle=24 * 360
)
if check_email_throttle(
referrer,
- notification_type=NotificationType.Type.USER_FORWARD_INVITE_REGISTERED,
+ notification_type=NotificationTypeEnum.USER_FORWARD_INVITE_REGISTERED,
throttle=throttle
):
raise HTTPError(
@@ -447,29 +447,24 @@ def send_claim_registered_email(claimer, unclaimed_user, node, throttle=24 * 360
)
# Send mail to referrer, telling them to forward verification link to claimer
- NotificationType.Type.USER_FORWARD_INVITE_REGISTERED.instance.emit(
+ NotificationTypeEnum.USER_FORWARD_INVITE_REGISTERED.instance.emit(
user=referrer,
event_context={
'claim_url': claim_url,
'referrer_fullname': referrer.fullname,
'user_fullname': unclaimed_record['name'],
'node_title': node.title,
- 'can_change_preferences': False,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
}
)
# Send mail to claimer, telling them to wait for referrer
- NotificationType.Type.USER_PENDING_VERIFICATION_REGISTERED.instance.emit(
+ NotificationTypeEnum.USER_PENDING_VERIFICATION_REGISTERED.instance.emit(
subscribed_object=claimer,
user=claimer,
event_context={
- 'claim_url': claim_url,
'user_fullname': unclaimed_record['name'],
- 'referrer_username': referrer.username,
'referrer_fullname': referrer.fullname,
'node_title': node.title,
- 'can_change_preferences': False,
- 'osf_contact_email': settings.OSF_CONTACT_EMAIL,
}
)
@@ -479,7 +474,7 @@ def send_claim_email(
node,
notify=True,
throttle=24 * 3600,
- notification_type=NotificationType.Type.NODE_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type=NotificationTypeEnum.NODE_CONTRIBUTOR_ADDED_DEFAULT
):
"""
Send a claim email to an unregistered contributor or the referrer, depending on the scenario.
@@ -508,15 +503,15 @@ def send_claim_email(
match notification_type:
case 'preprint':
if getattr(node.provider, 'is_default', False):
- notification_type = NotificationType.Type.USER_INVITE_OSF_PREPRINT
+ notification_type = NotificationTypeEnum.USER_INVITE_OSF_PREPRINT
logo = settings.OSF_PREPRINTS_LOGO
else:
- notification_type = NotificationType.Type.PROVIDER_USER_INVITE_PREPRINT
+ notification_type = NotificationTypeEnum.PROVIDER_USER_INVITE_PREPRINT
logo = getattr(node.provider, '_id', None)
case 'draft_registration':
- notification_type = NotificationType.Type.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
+ notification_type = NotificationTypeEnum.DRAFT_REGISTRATION_CONTRIBUTOR_ADDED_DEFAULT
case _:
- notification_type = NotificationType.Type.USER_INVITE_DEFAULT
+ notification_type = NotificationTypeEnum.USER_INVITE_DEFAULT
unclaimed_record['claimer_email'] = claimer_email
unclaimed_user.save()
@@ -539,7 +534,7 @@ def send_claim_email(
unclaimed_user.save()
if notify:
- NotificationType.Type.USER_PENDING_VERIFICATION.instance.emit(
+ NotificationTypeEnum.USER_PENDING_VERIFICATION.instance.emit(
subscribed_object=unclaimed_user,
user=unclaimed_user,
event_context={
@@ -547,26 +542,21 @@ def send_claim_email(
'user_fullname': unclaimed_record['name'],
'node_title': node.title,
'logo': logo,
- 'can_change_preferences': False,
+ 'node_absolute_url': node.absolute_url,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
}
)
- notification_type = NotificationType.Type.USER_FORWARD_INVITE
+ notification_type = NotificationTypeEnum.USER_FORWARD_INVITE
claim_url = unclaimed_user.get_claim_url(node._primary_key, external=True)
notification_type.instance.emit(
user=referrer,
destination_address=email,
event_context={
- 'user_fullname': referrer.id,
- 'referrer_name': referrer.fullname,
+ 'user_fullname': unclaimed_record['name'],
'referrer_fullname': referrer.fullname,
- 'fullname': unclaimed_record['name'],
- 'node_url': node.url,
- 'logo': logo,
'claim_url': claim_url,
- 'can_change_preferences': False,
'domain': settings.DOMAIN,
'node_absolute_url': node.absolute_url,
'node_title': node.title,
@@ -626,7 +616,7 @@ def notify_added_contributor(resource, contributor, notification_type, auth=None
logo = settings.OSF_LOGO
if getattr(resource, 'has_linked_published_preprints', None):
- notification_type = NotificationType.Type.PREPRINT_CONTRIBUTOR_ADDED_PREPRINT_NODE_FROM_OSF
+ notification_type = NotificationTypeEnum.PREPRINT_CONTRIBUTOR_ADDED_PREPRINT_NODE_FROM_OSF
logo = settings.OSF_PREPRINTS_LOGO
throttle = kwargs.get('throttle', settings.CONTRIBUTOR_ADDED_EMAIL_THROTTLE)
@@ -642,6 +632,7 @@ def notify_added_contributor(resource, contributor, notification_type, auth=None
subscribed_object=resource,
event_context={
'user_fullname': contributor.fullname,
+ 'referrer_fullname': referrer_name,
'referrer_text': referrer_name + ' has added you as a contributor' if referrer_name else 'You have been added',
'registry_text': resource.provider.name if resource.provider else 'OSF Registry',
'referrer_name': referrer_name,
@@ -655,7 +646,6 @@ def notify_added_contributor(resource, contributor, notification_type, auth=None
'node_provider__id': getattr(resource.provider, '_id', None),
'node_absolute_url': resource.absolute_url,
'node_has_permission_admin': resource.has_permission(user=contributor, permission='admin'),
- 'can_change_preferences': False,
'logo': logo,
'osf_contact_email': settings.OSF_CONTACT_EMAIL,
'preprint_list': ''.join(f"- {p['absolute_url']}\n" for p in serialize_preprints(resource, user=None)) if isinstance(resource, Node) else '- (none)\n',
diff --git a/website/reviews/listeners.py b/website/reviews/listeners.py
index 0e8f8ee4799..83fc702691b 100644
--- a/website/reviews/listeners.py
+++ b/website/reviews/listeners.py
@@ -29,7 +29,7 @@ def reviews_withdraw_requests_notification_moderators(self, timestamp, context,
context['requester_fullname'] = user.fullname
context['profile_image_url'] = get_profile_image_url(resource.creator)
provider = resource.provider
- from osf.models import NotificationType
+ from osf.models import NotificationTypeEnum
context['message'] = f'has requested withdrawal of "{resource.title}".'
context['reviews_submission_url'] = f'{DOMAIN}{resource._id}?mode=moderator'
@@ -41,7 +41,7 @@ def reviews_withdraw_requests_notification_moderators(self, timestamp, context,
context['recipient_fullname'] = recipient.fullname
context['localized_timestamp'] = str(timestamp)
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.instance.emit(
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.instance.emit(
user=recipient,
subscribed_object=provider,
event_context=context,
@@ -56,7 +56,7 @@ def reviews_withdrawal_requests_notification(self, timestamp, context):
context['reviewable_absolute_url'] = preprint.absolute_url
context['reviewable_title'] = preprint.title
context['reviewable__id'] = preprint._id
- from osf.models import NotificationType
+ from osf.models import NotificationTypeEnum
preprint_word = preprint.provider.preprint_word
context['message'] = f'has requested withdrawal of the {preprint_word} "{preprint.title}".'
@@ -69,7 +69,7 @@ def reviews_withdrawal_requests_notification(self, timestamp, context):
context['recipient_fullname'] = recipient.fullname
context['localized_timestamp'] = str(timestamp)
- NotificationType.Type.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.instance.emit(
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_WITHDRAW_REQUESTS.instance.emit(
user=recipient,
event_context=context,
subscribed_object=preprint.provider,
@@ -106,7 +106,7 @@ def reviews_submit_notification_moderators(self, timestamp, resource, context):
else:
context['message'] = f'submitted "{resource.title}".'
- from osf.models import NotificationType
+ from osf.models import NotificationTypeEnum
context['requester_contributor_names'] = ''.join(resource.contributors.values_list('fullname', flat=True))
context['localized_timestamp'] = str(timezone.now())
@@ -117,7 +117,7 @@ def reviews_submit_notification_moderators(self, timestamp, resource, context):
context['requester_fullname'] = recipient.fullname
context['is_request_email'] = False
- NotificationType.Type.PROVIDER_NEW_PENDING_SUBMISSIONS.instance.emit(
+ NotificationTypeEnum.PROVIDER_NEW_PENDING_SUBMISSIONS.instance.emit(
user=recipient,
subscribed_object=provider,
event_context=context,
diff --git a/website/routes.py b/website/routes.py
index 73ff5ae1c96..45d0edf1874 100644
--- a/website/routes.py
+++ b/website/routes.py
@@ -50,7 +50,6 @@
from website.policies import views as policy_views
from website.preprints import views as preprint_views
from website.registries import views as registries_views
-from website.notifications import views as notification_views
from website.closed_challenges import views as closed_challenges_views
from website.identifiers import views as identifier_views
@@ -1536,22 +1535,24 @@ def make_url_map(app):
json_renderer,
),
- Rule(
- '/subscriptions/',
- 'get',
- notification_views.get_subscriptions,
- json_renderer,
- ),
+ # Legacy v1 API for notifications, which is no longer used by Angular/Post-NR
+ # Rule(
+ # '/subscriptions/',
+ # 'get',
+ # notification_views.get_subscriptions,
+ # json_renderer,
+ # ),
- Rule(
- [
- '/project//subscriptions/',
- '/project//node//subscriptions/'
- ],
- 'get',
- notification_views.get_node_subscriptions,
- json_renderer,
- ),
+ # Legacy v1 API for notifications, which is no longer used by Angular/Post-NR
+ # Rule(
+ # [
+ # '/project//subscriptions/',
+ # '/project//node//subscriptions/'
+ # ],
+ # 'get',
+ # notification_views.get_node_subscriptions,
+ # json_renderer,
+ # ),
Rule(
[
@@ -1563,12 +1564,13 @@ def make_url_map(app):
json_renderer,
),
- Rule(
- '/subscriptions/',
- 'post',
- notification_views.configure_subscription,
- json_renderer,
- ),
+ # Legacy v1 API for notifications, which is no longer used by Angular/Post-NR
+ # Rule(
+ # '/subscriptions/',
+ # 'post',
+ # notification_views.configure_subscription,
+ # json_renderer,
+ # ),
Rule(
[
diff --git a/website/settings/defaults.py b/website/settings/defaults.py
index bfe78beea09..9e4d73199cd 100644
--- a/website/settings/defaults.py
+++ b/website/settings/defaults.py
@@ -180,13 +180,17 @@ def parent_dir(path):
NO_ADDON_WAIT_TIME = timedelta(weeks=8) # 2 months for "Link an add-on to your OSF project" email
NO_LOGIN_WAIT_TIME = timedelta(weeks=52) # 1 year for "We miss you at OSF" email
NO_LOGIN_OSF4M_WAIT_TIME = timedelta(weeks=52) # 1 year for "We miss you at OSF" email to users created from OSF4M
+# TODO: this will be changed to 12 weeks (3 month) with ENG-9856
+NOTIFICATIONS_CLEANUP_AGE = timedelta(weeks=52) # 1 year to clean up old notifications and email tasks
-# Configuration for "We miss you at OSF" email (`NotificationType.Type.USER_NO_LOGIN`)
+# Configuration for "We miss you at OSF" email (`NotificationTypeEnum.USER_NO_LOGIN`)
# Note: 1) we can gradually increase `MAX_DAILY_NO_LOGIN_EMAILS` to 10000, 100000, etc. or set it to `None` after we
# have verified that users are not spammed by this email after NR release. 2) If we want to clean up database for those
# already sent `USER_NO_LOGIN` emails, we need to adjust the cut-off time to the day we clean the DB.
MAX_DAILY_NO_LOGIN_EMAILS = 1000
-NO_LOGIN_EMAIL_CUTOFF = datetime.datetime(2026, 1, 5)
+# Note: set to 26/3/13 which is the date we release to `master` and deploy to test server; prod server has a different
+# date, which is configured in the private config, using the date when it is deployed to prod.
+NO_LOGIN_EMAIL_CUTOFF = datetime.datetime(2026, 3, 13)
# TODO: Override in local.py
MAILGUN_API_KEY = None
@@ -429,6 +433,9 @@ class CeleryConfig:
'scripts.populate_new_and_noteworthy_projects',
'website.search.elastic_search',
'scripts.generate_sitemap',
+ 'scripts.remove_after_use.populate_notification_subscriptions_node_file_updated',
+ 'scripts.remove_after_use.populate_notification_subscriptions_user_global_file_updated',
+ 'scripts.remove_after_use.populate_notification_subscriptions_user_global_reviews',
'osf.management.commands.clear_expired_sessions',
'osf.management.commands.delete_withdrawn_or_failed_registration_files',
'osf.management.commands.migrate_pagecounter_data',
@@ -444,7 +451,7 @@ class CeleryConfig:
'osf.management.commands.monthly_reporters_go',
'osf.management.commands.ingest_cedar_metadata_templates',
'osf.metrics.reporters',
- 'scripts.populate_notification_subscriptions',
+ 'scripts.remove_after_use.merge_notification_subscription_provider_ct',
}
med_pri_modules = {
@@ -560,6 +567,9 @@ class CeleryConfig:
'scripts.approve_embargo_terminations',
'scripts.triggered_mails',
'scripts.generate_sitemap',
+ 'scripts.remove_after_use.populate_notification_subscriptions_node_file_updated',
+ 'scripts.remove_after_use.populate_notification_subscriptions_user_global_file_updated',
+ 'scripts.remove_after_use.populate_notification_subscriptions_user_global_reviews',
'scripts.premigrate_created_modified',
'scripts.add_missing_identifiers_to_preprints',
'osf.management.commands.clear_expired_sessions',
@@ -576,7 +586,9 @@ class CeleryConfig:
'osf.management.commands.monthly_reporters_go',
'osf.external.spam.tasks',
'api.share.utils',
- 'scripts.populate_notification_subscriptions',
+ 'scripts.remove_after_use.merge_notification_subscription_provider_ct',
+ 'scripts.disable_removed_beat_tasks',
+ 'osf.management.commands.delete_withdrawn_or_failed_registration_files',
)
# Modules that need metrics and release requirements
@@ -590,6 +602,10 @@ class CeleryConfig:
# Setting up a scheduler, essentially replaces an independent cron job
# Note: these times must be in UTC
beat_schedule = {
+ 'disable_removed_beat_tasks': {
+ 'task': 'scripts.disable_removed_beat_tasks',
+ 'schedule': crontab(minute=0, hour=0), # Daily 8:00 PM EDT
+ },
'retract_registrations': {
'task': 'scripts.retract_registrations',
'schedule': crontab(minute=0, hour=5), # Daily 12 a.m
@@ -645,6 +661,11 @@ class CeleryConfig:
'schedule': crontab(minute=0, hour=5), # Daily 12 a.m
'kwargs': {'dry_run': False},
},
+ 'notifications_cleanup_task': {
+ 'task': 'notifications.tasks.notifications_cleanup_task',
+ 'schedule': crontab(minute=0, hour=7), # Daily 2 a.m
+ 'kwargs': {'dry_run': False},
+ },
'clear_expired_sessions': {
'task': 'osf.management.commands.clear_expired_sessions',
'schedule': crontab(minute=0, hour=5), # Daily 12 a.m
diff --git a/website/settings/local-ci.py b/website/settings/local-ci.py
index 0831b5b8dbc..a4d250a9792 100644
--- a/website/settings/local-ci.py
+++ b/website/settings/local-ci.py
@@ -66,10 +66,12 @@ class CeleryConfig(defaults.CeleryConfig):
NO_LOGIN_WAIT_TIME = timedelta(weeks=4)
NO_LOGIN_OSF4M_WAIT_TIME = timedelta(weeks=6)
-# Configuration for "We miss you at OSF" email (`NotificationType.Type.USER_NO_LOGIN`)
+# Configuration for "We miss you at OSF" email (`NotificationTypeEnum.USER_NO_LOGIN`)
MAX_DAILY_NO_LOGIN_EMAILS = None
NO_LOGIN_EMAIL_CUTOFF = None
+NOTIFICATIONS_CLEANUP_AGE = timedelta(weeks=4) # 1 month to clean up old notifications and email tasks
+
USE_CDN_FOR_CLIENT_LIBS = False
SENTRY_DSN = None
diff --git a/website/templates/archive_size_exceeded_user.html.mako b/website/templates/archive_size_exceeded_user.html.mako
index 19d82125b90..7931e4ce714 100644
--- a/website/templates/archive_size_exceeded_user.html.mako
+++ b/website/templates/archive_size_exceeded_user.html.mako
@@ -8,7 +8,7 @@
|
- We cannot archive ${src_title} at this time because the projected size of the registration exceeds our usage limits. You should receive a followup email from our support team shortly. We're sorry for any inconvenience this may have caused.
+ We cannot archive ${src_title} at this time because the projected size of the registration exceeds our usage limits. Please email our support team support@osf.io for assistance. We're sorry for any inconvenience this may have caused.
|
%def>
diff --git a/website/templates/invite_default.html.mako b/website/templates/invite_default.html.mako
index f739f11ad7e..9bf188212ef 100644
--- a/website/templates/invite_default.html.mako
+++ b/website/templates/invite_default.html.mako
@@ -8,7 +8,7 @@
%>
Hello ${user_fullname},
- You have been added by ${referrer_name} as a contributor to the project ${node_title} on the Open Science Framework.
+ You have been added by ${referrer_fullname} as a contributor to the project ${node_title} on the Open Science Framework.
Click here to set a password for your account.
diff --git a/website/templates/node_request_institutional_access_request.html.mako b/website/templates/node_request_institutional_access_request.html.mako
index 8ef9529f0ee..8cfae57cdd0 100644
--- a/website/templates/node_request_institutional_access_request.html.mako
+++ b/website/templates/node_request_institutional_access_request.html.mako
@@ -3,7 +3,7 @@
<%def name="content()">
|
- Hello ${recipient_fullname},
+ Hello ${recipient_username},
${sender_fullname} has requested access to ${node_title}.
diff --git a/website/templates/reviews_resubmission_confirmation.html.mako b/website/templates/reviews_resubmission_confirmation.html.mako
index e5e8e3caa81..4b7b8ba30fb 100644
--- a/website/templates/reviews_resubmission_confirmation.html.mako
+++ b/website/templates/reviews_resubmission_confirmation.html.mako
@@ -34,9 +34,7 @@
Sincerely,
Your ${reviewable_provider_name} and OSF teams
-
- Center for Open Science
-
+
Privacy Policy
%def>
diff --git a/website/views.py b/website/views.py
index db89d258959..1a4bf4942da 100644
--- a/website/views.py
+++ b/website/views.py
@@ -9,7 +9,7 @@
from flask import request, Response
from framework.auth import Auth
-from framework.auth.decorators import must_be_logged_in
+from framework.auth.decorators import must_be_logged_in, is_contributor_or_public_resource
from framework.auth.forms import SignInForm, ForgotPasswordForm
from framework.exceptions import HTTPError
from framework.flask import redirect # VOL-aware redirect
@@ -20,7 +20,7 @@
from addons.osfstorage.models import Region, OsfStorageFile
from osf import exceptions
-from osf.models import Guid, Preprint, AbstractNode, Node, DraftNode
+from osf.models import Guid, Preprint, AbstractNode, Node, DraftNode, Registration
from website.settings import DOMAIN
from website.project.decorators import check_contributor_auth
@@ -287,7 +287,7 @@ def resolve_guid(guid, suffix=None):
if clean_suffix == 'metadata':
format_arg = request.args.get('format')
if format_arg:
- return guid_metadata_download(guid, resource, format_arg)
+ return guid_metadata_download(guid, resource=resource, metadata_format=format_arg)
if isinstance(resource, Preprint) and resource.provider.domain_redirect_enabled:
return redirect(resource.absolute_url, http_status.HTTP_301_MOVED_PERMANENTLY)
@@ -359,6 +359,7 @@ def get_storage_region_list(user, node=False):
return available_regions
+@is_contributor_or_public_resource('resource')
def guid_metadata_download(guid, resource, metadata_format):
try:
result = pls_gather_metadata_file(resource, metadata_format)
@@ -380,4 +381,8 @@ def guid_metadata_download(guid, resource, metadata_format):
def metadata_download(guid):
format_arg = request.args.get('format', 'datacite-json')
resource = Guid.load(guid)
- return guid_metadata_download(guid, resource, format_arg)
+ is_resource_project_or_registration = isinstance(resource.referent, (Node, Registration))
+ response = guid_metadata_download(guid, resource=resource, metadata_format=format_arg)
+ if is_resource_project_or_registration:
+ response.headers['link'] = f'<{settings.DOMAIN}{guid}/>; rel="describes"; type="text/html"'
+ return response
From 008cc9d1546bd5efe97172f1634404d44863bba6 Mon Sep 17 00:00:00 2001
From: Yuhuai Liu
Date: Fri, 20 Mar 2026 16:58:42 -0400
Subject: [PATCH 27/31] update yarn lock (#11646)
---
yarn.lock | 7798 +++++++++++++++++++++++++++++++----------------------
1 file changed, 4575 insertions(+), 3223 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index ed2280689a2..25ca5aeb866 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1,3227 +1,4579 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@centerforopenscience/list-of-licenses@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@centerforopenscience/list-of-licenses/-/list-of-licenses-1.1.0.tgz#2a4379633409205047e723e21cd818560a29ab45"
- integrity sha512-EGU7gpRXczqC4TAlfKBiLzRaopxxZkL86kwS8/qdZdmRjTpG872z+bRd5E4ZJivxHBLpVpts5nK/bz4MsbdhTA==
-
-"@centerforopenscience/osf-style@1.9.0":
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/@centerforopenscience/osf-style/-/osf-style-1.9.0.tgz#0ab5cb17e2c531aafcc19e226f36ff86b734116e"
- integrity sha512-R9IBVbz4eb/NkoM5TZGH46T9m5jspwK0H605O0oSMggHZPcTrf5gAHw0axeC26nKmEpz2FSXjvm84ziPNvhsvA==
-
-"@fortawesome/fontawesome-common-types@7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.0.1.tgz#e9ab94b1ca93e7020e3c7eda2ef1ba8cca8ba1dc"
- integrity sha512-0VpNtO5cNe1/HQWMkl4OdncYK/mv9hnBte0Ew0n6DMzmo3Q3WzDFABHm6LeNTipt5zAyhQ6Ugjiu8aLaEjh1gg==
-
-"@fortawesome/fontawesome-free@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-7.0.1.tgz#c1ac7f07ba2df47d1de7b7236fad25c4e6ca5076"
- integrity sha512-RLmb9U6H2rJDnGxEqXxzy7ANPrQz7WK2/eTjdZqyU9uRU5W+FkAec9uU5gTYzFBH7aoXIw2WTJSCJR4KPlReQw==
-
-"@fortawesome/fontawesome-svg-core@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.0.1.tgz#f5f7bbfe09e7cc35fd30eefe6be018d2e9c5dd4d"
- integrity sha512-x0cR55ILVqFpUioSMf6ebpRCMXMcheGN743P05W2RB5uCNpJUqWIqW66Lap8PfL/lngvjTbZj0BNSUweIr/fHQ==
- dependencies:
- "@fortawesome/fontawesome-common-types" "7.0.1"
-
-"@fortawesome/free-brands-svg-icons@^7.0.1":
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-7.0.1.tgz#2a975ae2a26710cb2b34c25d4fe706dcd4747f69"
- integrity sha512-6xPmn5SrND/GM0+W33E77x05+aDn6RpR02eWd8eLdN0IxY0vXa5yU/ugaAKloOVxiG9w2330TSRsbJYL6c57Ow==
- dependencies:
- "@fortawesome/fontawesome-common-types" "7.0.1"
-
-"@fortawesome/react-fontawesome@^3.0.2":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-3.0.2.tgz#275ab6bc04977e145b072ba18c24779eb3427073"
- integrity sha512-cmp/nT0pPC7HUALF8uc3+D5ECwEBWxYQbOIHwtGUWEu72sWtZc26k5onr920HWOViF0nYaC+Qzz6Ln56SQcaVg==
-
-URIjs@^1.14.1:
- version "1.16.1"
- resolved "https://registry.yarnpkg.com/URIjs/-/URIjs-1.16.1.tgz#edebc678b8b74b26b05d2b481e12383f5ae04b8b"
- integrity sha1-7evGeLi3SyawXStIHhI4P1rgS4s=
-
-acorn-dynamic-import@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
- integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=
- dependencies:
- acorn "^4.0.3"
-
-acorn@^4.0.3:
- version "4.0.13"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
- integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=
-
-acorn@^5.0.0:
- version "5.7.4"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
- integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
-
-ajv-errors@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
- integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
-
-ajv-keywords@^3.1.0:
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
- integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
-
-ajv@^5.0.0:
- version "5.5.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
- integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
- dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.3.0"
-
-ajv@^6.1.0:
- version "6.12.6"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
- integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
- dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
- integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
-
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
- integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
- integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
- integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
- integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
-
-ansi-styles@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
-aproba@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
- integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-asn1.js@^5.2.0:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
- integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
- dependencies:
- bn.js "^4.0.0"
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
- safer-buffer "^2.1.0"
-
-assert@^1.1.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
- integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
- dependencies:
- object-assign "^4.1.1"
- util "0.10.3"
-
-assets-webpack-plugin@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/assets-webpack-plugin/-/assets-webpack-plugin-2.3.0.tgz#3e5fb861a19f1a9748aa02f56b8a03d7476ad0db"
- integrity sha1-Pl+4YaGfGpdIqgL1a4oD10dq0Ns=
- dependencies:
- camelcase "^1.2.1"
- escape-string-regexp "^1.0.3"
- mkdirp "^0.5.1"
-
-async@^2.1.2:
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
- integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
- dependencies:
- lodash "^4.17.14"
-
-autoprefixer@^6.3.1:
- version "6.7.7"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014"
- integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=
- dependencies:
- browserslist "^1.7.6"
- caniuse-db "^1.0.30000634"
- normalize-range "^0.1.2"
- num2fraction "^1.2.2"
- postcss "^5.2.16"
- postcss-value-parser "^3.2.3"
-
-babel-code-frame@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
- integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
- dependencies:
- chalk "^1.1.3"
- esutils "^2.0.2"
- js-tokens "^3.0.2"
-
-balanced-match@^0.4.2:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
- integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-base64-js@^1.0.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
- integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-
-big.js@^3.1.3:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
- integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
-
-big.js@^5.2.2:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
- integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
-
-bluebird@^3.5.1:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
- integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
- version "4.12.0"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
- integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-
-bn.js@^5.0.0, bn.js@^5.1.1:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
- integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
-
-body-parser@~1.19.1:
- version "1.19.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e"
- integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==
- dependencies:
- bytes "3.1.2"
- content-type "~1.0.4"
- debug "2.6.9"
- depd "~1.1.2"
- http-errors "1.8.1"
- iconv-lite "0.4.24"
- on-finished "~2.3.0"
- qs "6.9.7"
- raw-body "2.4.3"
- type-is "~1.6.18"
-
-bootbox@^5.5.2:
- version "5.5.2"
- resolved "https://registry.yarnpkg.com/bootbox/-/bootbox-5.5.2.tgz#a4200aa03f12ffe4d07905834e9dfb76e52cee00"
- integrity sha512-q8d9VO2A4+q6S0XvovLtqtBUp7uRy0wtDOuuycnoheK2TiAm3um0jOlAOu9ORn9XoT92tdil+p15Dle1mRgSPQ==
- dependencies:
- bootstrap "^4.4.0"
- jquery "^3.5.1"
- popper.js "^1.16.0"
-
-bootstrap@3.3.7, bootstrap@~3.3.2:
- version "3.3.7"
- resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71"
- integrity sha1-WjiTlFSfIzMIdaOxUGVldPip63E=
-
-bootstrap@^3.3.7, bootstrap@^4.4.0:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72"
- integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==
-
-bower@^1.8.8:
- version "1.8.13"
- resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.13.tgz#5892f391f47134db88ea93d4c91a31f09792dc58"
- integrity sha512-8eWko16JlCTdaZZG70kddHPed17pHEbH8/IjfP4IFkQsfEqRsyNM09Dc8cDBFkSvtQ/2lTea7A+bMhRggG2a+Q==
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-brorand@^1.0.1, brorand@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
- integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-
-browserify-aes@^1.0.0, browserify-aes@^1.0.4:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
- integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
- dependencies:
- buffer-xor "^1.0.3"
- cipher-base "^1.0.0"
- create-hash "^1.1.0"
- evp_bytestokey "^1.0.3"
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-browserify-cipher@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
- integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
- dependencies:
- browserify-aes "^1.0.4"
- browserify-des "^1.0.0"
- evp_bytestokey "^1.0.0"
-
-browserify-des@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
- integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
- dependencies:
- cipher-base "^1.0.1"
- des.js "^1.0.0"
- inherits "^2.0.1"
- safe-buffer "^5.1.2"
-
-browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
- integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
- dependencies:
- bn.js "^5.0.0"
- randombytes "^2.0.1"
-
-browserify-sign@^4.0.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
- integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
- dependencies:
- bn.js "^5.1.1"
- browserify-rsa "^4.0.1"
- create-hash "^1.2.0"
- create-hmac "^1.1.7"
- elliptic "^6.5.3"
- inherits "^2.0.4"
- parse-asn1 "^5.1.5"
- readable-stream "^3.6.0"
- safe-buffer "^5.2.0"
-
-browserify-zlib@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
- integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
- dependencies:
- pako "~1.0.5"
-
-browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
- version "1.7.7"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
- integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=
- dependencies:
- caniuse-db "^1.0.30000639"
- electron-to-chromium "^1.2.7"
-
-buffer-from@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-buffer-xor@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
- integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
-
-buffer@^4.3.0:
- version "4.9.2"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
- integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
- dependencies:
- base64-js "^1.0.2"
- ieee754 "^1.1.4"
- isarray "^1.0.0"
-
-builtin-status-codes@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
- integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
-
-bytes@3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
- integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-
-c3@^0.4.18:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/c3/-/c3-0.4.24.tgz#57b62357098842d38e265a265f6de1e8c6faadd2"
- integrity sha512-mVCFtN5ZWUT5UE7ilFQ7KBQ7TUCdKIq6KsDt1hH/1m6gC1tBjvzFTO7fqhaiWHfhNOjjM7makschdhg6DkWQMA==
- dependencies:
- d3 "~3.5.0"
-
-cacache@^10.0.4:
- version "10.0.4"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
- integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
- dependencies:
- bluebird "^3.5.1"
- chownr "^1.0.1"
- glob "^7.1.2"
- graceful-fs "^4.1.11"
- lru-cache "^4.1.1"
- mississippi "^2.0.0"
- mkdirp "^0.5.1"
- move-concurrently "^1.0.1"
- promise-inflight "^1.0.1"
- rimraf "^2.6.2"
- ssri "^5.2.4"
- unique-filename "^1.1.0"
- y18n "^4.0.0"
-
-camelcase@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
- integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
-
-camelcase@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
- integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
-
-caniuse-api@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
- integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=
- dependencies:
- browserslist "^1.3.6"
- caniuse-db "^1.0.30000529"
- lodash.memoize "^4.1.2"
- lodash.uniq "^4.5.0"
-
-caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
- version "1.0.30001312"
- resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001312.tgz#efb31cb54e5f4714126d8c35292666c9b7290c87"
- integrity sha512-4eJfCSGxsF9JcQXBLdHclxkpLWv+Va7Y6QESYCWSdrR8b8x16TxUjCoOK/kU7SFC0BdcuK0nvt6ZkM59Q03LjQ==
-
-chalk@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-chalk@^2.4.1:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
-chownr@^1.0.1:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
- integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
-
-cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
- integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-clap@^1.0.9:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
- integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==
- dependencies:
- chalk "^1.1.3"
-
-cliui@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
- integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wrap-ansi "^2.0.0"
-
-clone@^1.0.2:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
- integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
- integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-
-coa@~1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
- integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=
- dependencies:
- q "^1.1.2"
-
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
- integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
-color-convert@^1.3.0, color-convert@^1.9.0:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
-
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-
-color-name@^1.0.0:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-color-string@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
- integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=
- dependencies:
- color-name "^1.0.0"
-
-color@^0.11.0:
- version "0.11.4"
- resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
- integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=
- dependencies:
- clone "^1.0.2"
- color-convert "^1.3.0"
- color-string "^0.3.0"
-
-colormin@^1.0.5:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
- integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=
- dependencies:
- color "^0.11.0"
- css-color-names "0.0.4"
- has "^1.0.1"
-
-colors@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
- integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
-
-commander@~2.13.0:
- version "2.13.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
- integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
-
-commondir@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
- integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
-concat-stream@^1.5.0:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
- integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
- dependencies:
- buffer-from "^1.0.0"
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
-console-browserify@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
- integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
-
-constants-browserify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
- integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
-
-content-type@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
- integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-
-copy-anything@^2.0.1:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480"
- integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==
- dependencies:
- is-what "^3.14.1"
-
-copy-concurrently@^1.0.0:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
- integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
- dependencies:
- aproba "^1.1.1"
- fs-write-stream-atomic "^1.0.8"
- iferr "^0.1.5"
- mkdirp "^0.5.1"
- rimraf "^2.5.4"
- run-queue "^1.0.0"
-
-core-util-is@~1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
- integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
-
-create-ecdh@^4.0.0:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
- integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
- dependencies:
- bn.js "^4.1.0"
- elliptic "^6.5.3"
-
-create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
- integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
- dependencies:
- cipher-base "^1.0.1"
- inherits "^2.0.1"
- md5.js "^1.3.4"
- ripemd160 "^2.0.1"
- sha.js "^2.4.0"
-
-create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
- integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
- dependencies:
- cipher-base "^1.0.3"
- create-hash "^1.1.0"
- inherits "^2.0.1"
- ripemd160 "^2.0.0"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-cross-spawn@^5.0.1:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
- integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
- dependencies:
- lru-cache "^4.0.1"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
-crypto-browserify@^3.11.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
- integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
- dependencies:
- browserify-cipher "^1.0.0"
- browserify-sign "^4.0.0"
- create-ecdh "^4.0.0"
- create-hash "^1.1.0"
- create-hmac "^1.1.0"
- diffie-hellman "^5.0.0"
- inherits "^2.0.1"
- pbkdf2 "^3.0.3"
- public-encrypt "^4.0.0"
- randombytes "^2.0.0"
- randomfill "^1.0.3"
-
-css-color-names@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
- integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
-
-css-loader@^0.28.11:
- version "0.28.11"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7"
- integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==
- dependencies:
- babel-code-frame "^6.26.0"
- css-selector-tokenizer "^0.7.0"
- cssnano "^3.10.0"
- icss-utils "^2.1.0"
- loader-utils "^1.0.2"
- lodash.camelcase "^4.3.0"
- object-assign "^4.1.1"
- postcss "^5.0.6"
- postcss-modules-extract-imports "^1.2.0"
- postcss-modules-local-by-default "^1.2.0"
- postcss-modules-scope "^1.1.0"
- postcss-modules-values "^1.3.0"
- postcss-value-parser "^3.3.0"
- source-list-map "^2.0.0"
-
-css-selector-tokenizer@^0.7.0:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1"
- integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==
- dependencies:
- cssesc "^3.0.0"
- fastparse "^1.1.2"
-
-cssesc@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
- integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-
-cssnano@^3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"
- integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=
- dependencies:
- autoprefixer "^6.3.1"
- decamelize "^1.1.2"
- defined "^1.0.0"
- has "^1.0.1"
- object-assign "^4.0.1"
- postcss "^5.0.14"
- postcss-calc "^5.2.0"
- postcss-colormin "^2.1.8"
- postcss-convert-values "^2.3.4"
- postcss-discard-comments "^2.0.4"
- postcss-discard-duplicates "^2.0.1"
- postcss-discard-empty "^2.0.1"
- postcss-discard-overridden "^0.1.1"
- postcss-discard-unused "^2.2.1"
- postcss-filter-plugins "^2.0.0"
- postcss-merge-idents "^2.1.5"
- postcss-merge-longhand "^2.0.1"
- postcss-merge-rules "^2.0.3"
- postcss-minify-font-values "^1.0.2"
- postcss-minify-gradients "^1.0.1"
- postcss-minify-params "^1.0.4"
- postcss-minify-selectors "^2.0.4"
- postcss-normalize-charset "^1.1.0"
- postcss-normalize-url "^3.0.7"
- postcss-ordered-values "^2.1.0"
- postcss-reduce-idents "^2.2.2"
- postcss-reduce-initial "^1.0.0"
- postcss-reduce-transforms "^1.0.3"
- postcss-svgo "^2.1.1"
- postcss-unique-selectors "^2.0.2"
- postcss-value-parser "^3.2.3"
- postcss-zindex "^2.0.1"
-
-csso@~2.3.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85"
- integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=
- dependencies:
- clap "^1.0.9"
- source-map "^0.5.3"
-
-cyclist@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
- integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
-
-d3@^3.5.17, d3@~3.5.0:
- version "3.5.17"
- resolved "https://registry.yarnpkg.com/d3/-/d3-3.5.17.tgz#bc46748004378b21a360c9fc7cf5231790762fb8"
- integrity sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=
-
-d@1, d@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
- integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
- dependencies:
- es5-ext "^0.10.50"
- type "^1.0.1"
-
-debug@2.6.9:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-debug@^3.2.6:
- version "3.2.7"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
- integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
- dependencies:
- ms "^2.1.1"
-
-decamelize@^1.1.1, decamelize@^1.1.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
-defined@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
- integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
-
-depd@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
- integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
-
-des.js@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
- integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
- dependencies:
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
-
-diff@~5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
- integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
-
-diffie-hellman@^5.0.0:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
- integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
- dependencies:
- bn.js "^4.1.0"
- miller-rabin "^4.0.0"
- randombytes "^2.0.0"
-
-domain-browser@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
- integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 8
+ cacheKey: 10c0
+
+"@centerforopenscience/list-of-licenses@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "@centerforopenscience/list-of-licenses@npm:1.1.0"
+ checksum: 10c0/49254d7a30edfb52b6a681afd25a22b92275a45a61698de8804126176113d6094fd7a25baeec686e88a81652a8bd9b8f0ce9345df4ba5c04ec831349e96f65be
+ languageName: node
+ linkType: hard
+
+"@centerforopenscience/osf-style@npm:1.9.0":
+ version: 1.9.0
+ resolution: "@centerforopenscience/osf-style@npm:1.9.0"
+ checksum: 10c0/243cc3e560329fed8c6448f91db8937b14d7f58fa94ac9f8cd74ada1d01cf621b990223bb75bd355e0b291b256804699889db7a3dcc96db858331a17d4018ff6
+ languageName: node
+ linkType: hard
+
+"@fortawesome/fontawesome-common-types@npm:7.0.1":
+ version: 7.0.1
+ resolution: "@fortawesome/fontawesome-common-types@npm:7.0.1"
+ checksum: 10c0/1cebe9727950f8fcea581e115ed91f9b2bf287114077adde0cc1fb32d25c2c2ec282a8cff291b22ca558cbb1264af7fad04b85c5afcb899745584b2874df4151
+ languageName: node
+ linkType: hard
+
+"@fortawesome/fontawesome-free@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "@fortawesome/fontawesome-free@npm:7.0.1"
+ checksum: 10c0/60170c84f56f5e190ea532f4205b53a8b902b34b46e59fcacf4a8d8a97ec566c5bfc246c5b80393cd7e1c24e1faa895c57456bcaffc0177962fc07922756a1d5
+ languageName: node
+ linkType: hard
+
+"@fortawesome/fontawesome-svg-core@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "@fortawesome/fontawesome-svg-core@npm:7.0.1"
+ dependencies:
+ "@fortawesome/fontawesome-common-types": "npm:7.0.1"
+ checksum: 10c0/adf72373e45ec0b81e9a60e74a6aeadd70cd7da31ecf37736e6288ef956148699272155935d97d7bf02f37e2fefd8f9b8c34b626e59fcca54a5947be46ff06fe
+ languageName: node
+ linkType: hard
+
+"@fortawesome/free-brands-svg-icons@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "@fortawesome/free-brands-svg-icons@npm:7.0.1"
+ dependencies:
+ "@fortawesome/fontawesome-common-types": "npm:7.0.1"
+ checksum: 10c0/a05058f7ff8aaf86952a96877d270e52293c5da5804ae21cf127b28063dfedfa4a1bb260040f774ccd81c3e55a045d36e2137686ea93ad84c8310ffd6a2303ba
+ languageName: node
+ linkType: hard
+
+"@fortawesome/react-fontawesome@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "@fortawesome/react-fontawesome@npm:3.0.2"
+ peerDependencies:
+ "@fortawesome/fontawesome-svg-core": ~6 || ~7
+ react: ^18.0.0 || ^19.0.0
+ checksum: 10c0/0a6a99ab16af74189232b01986d882ce3b2265836297a949709517f0f9b3d7c11dcf67e130200f09aca9d0e015abff21248d105796d768660901273a8ee232db
+ languageName: node
+ linkType: hard
+
+"@gar/promise-retry@npm:^1.0.0":
+ version: 1.0.3
+ resolution: "@gar/promise-retry@npm:1.0.3"
+ checksum: 10c0/885b02c8b0d75b2d215da25f3b639158c4fbe8fefe0d79163304534b9a6d0710db4b7699f7cd3cc1a730792bff04cbe19f4850a62d3e105a663eaeec88f38332
+ languageName: node
+ linkType: hard
+
+"@isaacs/fs-minipass@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "@isaacs/fs-minipass@npm:4.0.1"
+ dependencies:
+ minipass: "npm:^7.0.4"
+ checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2
+ languageName: node
+ linkType: hard
+
+"@npmcli/agent@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "@npmcli/agent@npm:4.0.0"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ http-proxy-agent: "npm:^7.0.0"
+ https-proxy-agent: "npm:^7.0.1"
+ lru-cache: "npm:^11.2.1"
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10c0/f7b5ce0f3dd42c3f8c6546e8433573d8049f67ef11ec22aa4704bc41483122f68bf97752e06302c455ead667af5cb753e6a09bff06632bc465c1cfd4c4b75a53
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "@npmcli/fs@npm:5.0.0"
+ dependencies:
+ semver: "npm:^7.3.5"
+ checksum: 10c0/26e376d780f60ff16e874a0ac9bc3399186846baae0b6e1352286385ac134d900cc5dafaded77f38d77f86898fc923ae1cee9d7399f0275b1aa24878915d722b
+ languageName: node
+ linkType: hard
+
+"@npmcli/redact@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "@npmcli/redact@npm:4.0.0"
+ checksum: 10c0/a1e9ba9c70a6b40e175bda2c3dd8cfdaf096e6b7f7a132c855c083c8dfe545c3237cd56702e2e6627a580b1d63373599d49a1192c4078a85bf47bbde824df31c
+ languageName: node
+ linkType: hard
+
+"OSF@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "OSF@workspace:."
+ dependencies:
+ "@centerforopenscience/list-of-licenses": "npm:^1.1.0"
+ "@centerforopenscience/osf-style": "npm:1.9.0"
+ "@fortawesome/fontawesome-free": "npm:^7.0.1"
+ "@fortawesome/fontawesome-svg-core": "npm:^7.0.1"
+ "@fortawesome/free-brands-svg-icons": "npm:^7.0.1"
+ "@fortawesome/react-fontawesome": "npm:^3.0.2"
+ URIjs: "npm:^1.14.1"
+ assets-webpack-plugin: "npm:^2.3.0"
+ bootbox: "npm:^5.5.2"
+ bootstrap: "npm:3.3.7"
+ bower: "npm:^1.8.8"
+ css-loader: "npm:^0.28.11"
+ diff: "npm:~5.0.0"
+ dropzone: "https://github.com/CenterForOpenScience/dropzone.git#aba21eb6b82cc823ac7a7a53d6e035791c082bae"
+ exports-loader: "npm:0.6.3"
+ file-loader: "npm:^0.11.2"
+ gsap: "npm:3.9.1"
+ highlight.js: "npm:~9.18.2"
+ imports-loader: "npm:^0.6.3"
+ js-cookie: "npm:3.0.1"
+ js-md5: "npm:^0.7.3"
+ jstimezonedetect: "npm:^1.0.6"
+ knockout: "npm:~3.4.2"
+ knockout.validation: "npm:^2.0.2"
+ less: "npm:^4.1.2"
+ linkifyjs: "npm:^3.0.5"
+ loaders.css: "npm:^0.1.2"
+ lodash.find: "npm:^4.3.0"
+ lodash.get: "npm:^4.2.1"
+ lodash.has: "npm:^4.5.2"
+ lodash.includes: "npm:^4.3.0"
+ lodash.set: "npm:^4.3.2"
+ mime-types: "npm:~2.1.34"
+ mithril: "npm:0.2.0"
+ moment: "npm:^2.14.1"
+ object-assign: "npm:^3.0.0"
+ pikaday: "npm:^1.3.2"
+ raw-loader: "npm:~0.5.0"
+ select2: "npm:3.5.1"
+ style-loader: "npm:^0.23.1"
+ treebeard: "https://github.com/CenterForOpenScience/treebeard.git#d2bb8f6f8104fcac040402727f431c26722b269e"
+ typeahead.js: "npm:^0.11.1"
+ url-loader: "npm:~0.6.2"
+ webpack: "npm:3.12.0"
+ zxcvbn: "npm:^4.2.0"
+ languageName: unknown
+ linkType: soft
+
+"URIjs@npm:^1.14.1":
+ version: 1.16.1
+ resolution: "URIjs@npm:1.16.1"
+ checksum: 10c0/4709474a384394d4b28987b845989ca56297f07afed3ad58204ba309727530a3aa0106cc5a90b0d784cda390b0ca500575981951f1fa065e8e766a4ffec26f08
+ languageName: node
+ linkType: hard
+
+"abbrev@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "abbrev@npm:4.0.0"
+ checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5
+ languageName: node
+ linkType: hard
+
+"acorn-dynamic-import@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "acorn-dynamic-import@npm:2.0.2"
+ dependencies:
+ acorn: "npm:^4.0.3"
+ checksum: 10c0/5dcac220ae8ddc8f8439402691c6da21f4e44f3a91b5645884cd2a5f03c8e39a40006a189de9ccd50fdfcdeda6c52724db45cd2100e56e9e9656d7b19e2bfd22
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^4.0.3":
+ version: 4.0.13
+ resolution: "acorn@npm:4.0.13"
+ bin:
+ acorn: ./bin/acorn
+ checksum: 10c0/ed73e42711474f80d7f2f94d68109e83a40d48c9596f0bcfd1a4c64e086636495259432421357524d04bfe317eed6de5b6202d2ab30f1b1c26bca12684979aa5
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^5.0.0":
+ version: 5.7.4
+ resolution: "acorn@npm:5.7.4"
+ bin:
+ acorn: bin/acorn
+ checksum: 10c0/b29e61d48fa31ae69d38d74bb213b77b32de6317f125890a6cb76b44d173adccbcd3a07fc9a86acdfe8ab0a80f42b5ec6290df8b7944e0506504ac3b716232bd
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2":
+ version: 7.1.4
+ resolution: "agent-base@npm:7.1.4"
+ checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe
+ languageName: node
+ linkType: hard
+
+"ajv-errors@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "ajv-errors@npm:1.0.1"
+ peerDependencies:
+ ajv: ">=5.0.0"
+ checksum: 10c0/de2d6e8100c8707ea063ee4785d53adf599b457c0d4f72c3592244d67ad16448a6d35f7ce45f12bdd2819939447c876e8ef2f1c0800896d7f2aa25c3838acdf1
+ languageName: node
+ linkType: hard
+
+"ajv-keywords@npm:^3.1.0":
+ version: 3.5.2
+ resolution: "ajv-keywords@npm:3.5.2"
+ peerDependencies:
+ ajv: ^6.9.1
+ checksum: 10c0/0c57a47cbd656e8cdfd99d7c2264de5868918ffa207c8d7a72a7f63379d4333254b2ba03d69e3c035e996a3fd3eb6d5725d7a1597cca10694296e32510546360
+ languageName: node
+ linkType: hard
+
+"ajv@npm:^5.0.0":
+ version: 5.5.2
+ resolution: "ajv@npm:5.5.2"
+ dependencies:
+ co: "npm:^4.6.0"
+ fast-deep-equal: "npm:^1.0.0"
+ fast-json-stable-stringify: "npm:^2.0.0"
+ json-schema-traverse: "npm:^0.3.0"
+ checksum: 10c0/9b8f762cd6b9da3935987b82418402247e76925e39814ca0d62088656117129db7e0cdc1d3e4aa6a3c4aa5ff67021551299ee4771735bcccb6cdd3f85061e565
+ languageName: node
+ linkType: hard
+
+"ajv@npm:^6.1.0":
+ version: 6.12.6
+ resolution: "ajv@npm:6.12.6"
+ dependencies:
+ fast-deep-equal: "npm:^3.1.1"
+ fast-json-stable-stringify: "npm:^2.0.0"
+ json-schema-traverse: "npm:^0.4.1"
+ uri-js: "npm:^4.2.2"
+ checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
+ languageName: node
+ linkType: hard
+
+"alphanum-sort@npm:^1.0.1, alphanum-sort@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "alphanum-sort@npm:1.0.2"
+ checksum: 10c0/2944e7ae4d36328a2df071017c01cd1d06ef6a5d87c8fbbeffd9075d42f4da48051bde79a5e3d863b98f37778c76e8eebd4353c1e7bbba2480382096953ec2b8
+ languageName: node
+ linkType: hard
+
+"amdefine@npm:>=0.0.4":
+ version: 1.0.1
+ resolution: "amdefine@npm:1.0.1"
+ checksum: 10c0/ba8aa5d4ff5248b2ed067111e72644b36b5b7ae88d9a5a2c4223dddb3bdc9102db67291e0b414f59f12c6479ac6a365886bac72c7965e627cbc732e0962dd1ab
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^2.0.0":
+ version: 2.1.1
+ resolution: "ansi-regex@npm:2.1.1"
+ checksum: 10c0/78cebaf50bce2cb96341a7230adf28d804611da3ce6bf338efa7b72f06cc6ff648e29f80cd95e582617ba58d5fdbec38abfeed3500a98bce8381a9daec7c548b
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "ansi-regex@npm:3.0.0"
+ checksum: 10c0/c6a2b226d009965decc65d330b953290039f0f2b31d200516a9a79b6010f5f8f9d6acbaa0917d925c578df0c0feaddcb56569aad05776f99e2918116d4233121
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "ansi-styles@npm:2.2.1"
+ checksum: 10c0/7c68aed4f1857389e7a12f85537ea5b40d832656babbf511cc7ecd9efc52889b9c3e5653a71a6aade783c3c5e0aa223ad4ff8e83c27ac8a666514e6c79068cab
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^3.2.1":
+ version: 3.2.1
+ resolution: "ansi-styles@npm:3.2.1"
+ dependencies:
+ color-convert: "npm:^1.9.0"
+ checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b
+ languageName: node
+ linkType: hard
+
+"aproba@npm:^1.1.1":
+ version: 1.2.0
+ resolution: "aproba@npm:1.2.0"
+ checksum: 10c0/2d34f008c9edfa991f42fe4b667d541d38a474a39ae0e24805350486d76744cd91ee45313283c1d39a055b14026dd0fc4d0cbfc13f210855d59d7e8b5a61dc51
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^1.0.7":
+ version: 1.0.10
+ resolution: "argparse@npm:1.0.10"
+ dependencies:
+ sprintf-js: "npm:~1.0.2"
+ checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de
+ languageName: node
+ linkType: hard
+
+"asn1.js@npm:^5.2.0":
+ version: 5.4.1
+ resolution: "asn1.js@npm:5.4.1"
+ dependencies:
+ bn.js: "npm:^4.0.0"
+ inherits: "npm:^2.0.1"
+ minimalistic-assert: "npm:^1.0.0"
+ safer-buffer: "npm:^2.1.0"
+ checksum: 10c0/b577232fa6069cc52bb128e564002c62b2b1fe47f7137bdcd709c0b8495aa79cee0f8cc458a831b2d8675900eea0d05781b006be5e1aa4f0ae3577a73ec20324
+ languageName: node
+ linkType: hard
+
+"assert@npm:^1.1.1":
+ version: 1.5.0
+ resolution: "assert@npm:1.5.0"
+ dependencies:
+ object-assign: "npm:^4.1.1"
+ util: "npm:0.10.3"
+ checksum: 10c0/188da37d63be479a3b14657c01080db90cdf7fa004e346af916cf8beebcaffb11359c596d0c9c3cd8174c9125a6225796ef1ce533487edc97f8ce3b18c1ab590
+ languageName: node
+ linkType: hard
+
+"assets-webpack-plugin@npm:^2.3.0":
+ version: 2.3.0
+ resolution: "assets-webpack-plugin@npm:2.3.0"
+ dependencies:
+ camelcase: "npm:^1.2.1"
+ escape-string-regexp: "npm:^1.0.3"
+ mkdirp: "npm:^0.5.1"
+ checksum: 10c0/7d5a1fb70f1c7ef0eb59c6d84bc4046a6b2b9913d66e153960dd63e8ca40f27024ecdf130d0dd87db9b7384b7ba060e66a1c7d45ef658a1f4bf7df81356bc3fb
+ languageName: node
+ linkType: hard
+
+"async@npm:^2.1.2":
+ version: 2.6.3
+ resolution: "async@npm:2.6.3"
+ dependencies:
+ lodash: "npm:^4.17.14"
+ checksum: 10c0/06c917c74a55f9036ff79dedfc51dfc9c52c2dee2f80866b600495d2fd3037251dbcfde6592f23fc47398c44d844174004e0ee532f94c32a888bb89fd1cf0f25
+ languageName: node
+ linkType: hard
+
+"autoprefixer@npm:^6.3.1":
+ version: 6.7.7
+ resolution: "autoprefixer@npm:6.7.7"
+ dependencies:
+ browserslist: "npm:^1.7.6"
+ caniuse-db: "npm:^1.0.30000634"
+ normalize-range: "npm:^0.1.2"
+ num2fraction: "npm:^1.2.2"
+ postcss: "npm:^5.2.16"
+ postcss-value-parser: "npm:^3.2.3"
+ checksum: 10c0/bdcf8e53eacef1feb54940bbe33fcb67e12eb07d5572d5f0fbadb638b84be15ca91b3a343763962a2ce6ed12ba611e039c62e871d12e29b956b8f2b189c263ae
+ languageName: node
+ linkType: hard
+
+"babel-code-frame@npm:^6.26.0":
+ version: 6.26.0
+ resolution: "babel-code-frame@npm:6.26.0"
+ dependencies:
+ chalk: "npm:^1.1.3"
+ esutils: "npm:^2.0.2"
+ js-tokens: "npm:^3.0.2"
+ checksum: 10c0/7fecc128e87578cf1b96e78d2b25e0b260e202bdbbfcefa2eac23b7f8b7b2f7bc9276a14599cde14403cc798cc2a38e428e2cab50b77658ab49228b09ae92473
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^0.4.2":
+ version: 0.4.2
+ resolution: "balanced-match@npm:0.4.2"
+ checksum: 10c0/cd4e15add0f4ef14c4fe960d9f4a343052d7c0f7939e1b5e54c8f24417a501bde1f17e191b676daebd16ae316955c918f93b8ed0414bb03d038dd0159c9998e5
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^4.0.2":
+ version: 4.0.4
+ resolution: "balanced-match@npm:4.0.4"
+ checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b
+ languageName: node
+ linkType: hard
+
+"base64-js@npm:^1.0.2":
+ version: 1.5.1
+ resolution: "base64-js@npm:1.5.1"
+ checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf
+ languageName: node
+ linkType: hard
+
+"big.js@npm:^3.1.3":
+ version: 3.2.0
+ resolution: "big.js@npm:3.2.0"
+ checksum: 10c0/de0b8e275171060a37846b521e8ebfe077c650532306c2470474da6720feb04351cc8588ef26088756b224923782946ae67e817b90122cc85692bbda7ccd2d0d
+ languageName: node
+ linkType: hard
+
+"big.js@npm:^5.2.2":
+ version: 5.2.2
+ resolution: "big.js@npm:5.2.2"
+ checksum: 10c0/230520f1ff920b2d2ce3e372d77a33faa4fa60d802fe01ca4ffbc321ee06023fe9a741ac02793ee778040a16b7e497f7d60c504d1c402b8fdab6f03bb785a25f
+ languageName: node
+ linkType: hard
+
+"bluebird@npm:^3.5.1":
+ version: 3.7.2
+ resolution: "bluebird@npm:3.7.2"
+ checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9":
+ version: 4.12.0
+ resolution: "bn.js@npm:4.12.0"
+ checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1":
+ version: 5.2.0
+ resolution: "bn.js@npm:5.2.0"
+ checksum: 10c0/67e17b1934d9c7a73aed9b89222dc8c1c8e3aff46cca6609b8c2ab04fa22c6b8db42c7774b039d09fa63136d8866b777ab88af0d64d8ea3839a94e69193a6b13
+ languageName: node
+ linkType: hard
+
+"bootbox@npm:^5.5.2":
+ version: 5.5.2
+ resolution: "bootbox@npm:5.5.2"
+ dependencies:
+ bootstrap: "npm:^4.4.0"
+ jquery: "npm:^3.5.1"
+ popper.js: "npm:^1.16.0"
+ checksum: 10c0/a282c1349cf11cfc36260ac8301613517ffb407ade77d4b402d1eeaddddb1677008dcfa984a98ab9b21502cf833b3be02105cb784a25545bf48645cfe06e70ac
+ languageName: node
+ linkType: hard
+
+"bootstrap@npm:3.3.7":
+ version: 3.3.7
+ resolution: "bootstrap@npm:3.3.7"
+ checksum: 10c0/6e711d39551d32a3fa2b7d6b22d59769266b4b5fccc20c18f6e6c8289d901a67cd23d00760415eedcd77a122db1bf5c46f6e8e9df1cea2fe2ada04741599ddbd
+ languageName: node
+ linkType: hard
+
+"bootstrap@npm:^3.3.7":
+ version: 3.4.1
+ resolution: "bootstrap@npm:3.4.1"
+ checksum: 10c0/3ac443985a432fd77f1d6df2972d8f0a06e93bb0e10893fa890e6503e6d2b36e601f4a9894429223afa867c2232ead1af5c55ded4c23a64dc706ca25e49dc2da
+ languageName: node
+ linkType: hard
+
+"bower@npm:^1.8.8":
+ version: 1.8.13
+ resolution: "bower@npm:1.8.13"
+ bin:
+ bower: bin/bower
+ checksum: 10c0/17724eb65745b7c4de57be0116eb06b4931bbdfaa152b40b1f1ab522d358b2036cd9fb30fb0e26ad0885586528c8ff6b872a3953649d6ce8bfa8a538c5e4a486
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.11
+ resolution: "brace-expansion@npm:1.1.11"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ concat-map: "npm:0.0.1"
+ checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^5.0.2":
+ version: 5.0.4
+ resolution: "brace-expansion@npm:5.0.4"
+ dependencies:
+ balanced-match: "npm:^4.0.2"
+ checksum: 10c0/359cbcfa80b2eb914ca1f3440e92313fbfe7919ee6b274c35db55bec555aded69dac5ee78f102cec90c35f98c20fa43d10936d0cd9978158823c249257e1643a
+ languageName: node
+ linkType: hard
+
+"brorand@npm:^1.0.1, brorand@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "brorand@npm:1.1.0"
+ checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571
+ languageName: node
+ linkType: hard
+
+"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4":
+ version: 1.2.0
+ resolution: "browserify-aes@npm:1.2.0"
+ dependencies:
+ buffer-xor: "npm:^1.0.3"
+ cipher-base: "npm:^1.0.0"
+ create-hash: "npm:^1.1.0"
+ evp_bytestokey: "npm:^1.0.3"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18
+ languageName: node
+ linkType: hard
+
+"browserify-cipher@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "browserify-cipher@npm:1.0.1"
+ dependencies:
+ browserify-aes: "npm:^1.0.4"
+ browserify-des: "npm:^1.0.0"
+ evp_bytestokey: "npm:^1.0.0"
+ checksum: 10c0/aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d
+ languageName: node
+ linkType: hard
+
+"browserify-des@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "browserify-des@npm:1.0.2"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ des.js: "npm:^1.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d
+ languageName: node
+ linkType: hard
+
+"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.0.1":
+ version: 4.1.0
+ resolution: "browserify-rsa@npm:4.1.0"
+ dependencies:
+ bn.js: "npm:^5.0.0"
+ randombytes: "npm:^2.0.1"
+ checksum: 10c0/fb2b5a8279d8a567a28d8ee03fb62e448428a906bab5c3dc9e9c3253ace551b5ea271db15e566ac78f1b1d71b243559031446604168b9235c351a32cae99d02a
+ languageName: node
+ linkType: hard
+
+"browserify-sign@npm:^4.0.0":
+ version: 4.2.1
+ resolution: "browserify-sign@npm:4.2.1"
+ dependencies:
+ bn.js: "npm:^5.1.1"
+ browserify-rsa: "npm:^4.0.1"
+ create-hash: "npm:^1.2.0"
+ create-hmac: "npm:^1.1.7"
+ elliptic: "npm:^6.5.3"
+ inherits: "npm:^2.0.4"
+ parse-asn1: "npm:^5.1.5"
+ readable-stream: "npm:^3.6.0"
+ safe-buffer: "npm:^5.2.0"
+ checksum: 10c0/8f00a370e3e97060977dc58e51251d3ca398ee73523994a44430321e8de2c7d85395362d59014b2b07efe4190f369baee2ff28eb8f405ff4660b776651cf052d
+ languageName: node
+ linkType: hard
+
+"browserify-zlib@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "browserify-zlib@npm:0.2.0"
+ dependencies:
+ pako: "npm:~1.0.5"
+ checksum: 10c0/9ab10b6dc732c6c5ec8ebcbe5cb7fe1467f97402c9b2140113f47b5f187b9438f93a8e065d8baf8b929323c18324fbf1105af479ee86d9d36cab7d7ef3424ad9
+ languageName: node
+ linkType: hard
+
+"browserslist@npm:^1.3.6, browserslist@npm:^1.5.2, browserslist@npm:^1.7.6":
+ version: 1.7.7
+ resolution: "browserslist@npm:1.7.7"
+ dependencies:
+ caniuse-db: "npm:^1.0.30000639"
+ electron-to-chromium: "npm:^1.2.7"
+ bin:
+ browserslist: ./cli.js
+ checksum: 10c0/1caae2f00800711b3c18a834b84ab3109b955836f23e00a7eb0227e54c22a101b95a9606c1347a04ec882524a724ba57691f856a7aba3fde6dd197b867b8cd41
+ languageName: node
+ linkType: hard
+
+"buffer-from@npm:^1.0.0":
+ version: 1.1.2
+ resolution: "buffer-from@npm:1.1.2"
+ checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34
+ languageName: node
+ linkType: hard
+
+"buffer-xor@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "buffer-xor@npm:1.0.3"
+ checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c
+ languageName: node
+ linkType: hard
+
+"buffer@npm:^4.3.0":
+ version: 4.9.2
+ resolution: "buffer@npm:4.9.2"
+ dependencies:
+ base64-js: "npm:^1.0.2"
+ ieee754: "npm:^1.1.4"
+ isarray: "npm:^1.0.0"
+ checksum: 10c0/dc443d7e7caab23816b58aacdde710b72f525ad6eecd7d738fcaa29f6d6c12e8d9c13fed7219fd502be51ecf0615f5c077d4bdc6f9308dde2e53f8e5393c5b21
+ languageName: node
+ linkType: hard
+
+"builtin-status-codes@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "builtin-status-codes@npm:3.0.0"
+ checksum: 10c0/c37bbba11a34c4431e56bd681b175512e99147defbe2358318d8152b3a01df7bf25e0305873947e5b350073d5ef41a364a22b37e48f1fb6d2fe6d5286a0f348c
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^10.0.4":
+ version: 10.0.4
+ resolution: "cacache@npm:10.0.4"
+ dependencies:
+ bluebird: "npm:^3.5.1"
+ chownr: "npm:^1.0.1"
+ glob: "npm:^7.1.2"
+ graceful-fs: "npm:^4.1.11"
+ lru-cache: "npm:^4.1.1"
+ mississippi: "npm:^2.0.0"
+ mkdirp: "npm:^0.5.1"
+ move-concurrently: "npm:^1.0.1"
+ promise-inflight: "npm:^1.0.1"
+ rimraf: "npm:^2.6.2"
+ ssri: "npm:^5.2.4"
+ unique-filename: "npm:^1.1.0"
+ y18n: "npm:^4.0.0"
+ checksum: 10c0/4c82d037ecc0ef87f58f96ecd3662bdb24aaedd18fa96d749363bc20dee3ac9f623e2c41e09bf894a3f62de1612a8cea8ddae22563a91ce2ef5cb69fe4cf54dd
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^20.0.1":
+ version: 20.0.4
+ resolution: "cacache@npm:20.0.4"
+ dependencies:
+ "@npmcli/fs": "npm:^5.0.0"
+ fs-minipass: "npm:^3.0.0"
+ glob: "npm:^13.0.0"
+ lru-cache: "npm:^11.1.0"
+ minipass: "npm:^7.0.3"
+ minipass-collect: "npm:^2.0.1"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ p-map: "npm:^7.0.2"
+ ssri: "npm:^13.0.0"
+ checksum: 10c0/539bf4020e44ba9ca5afc2ec435623ed7e0dd80c020097677e6b4a0545df5cc9d20b473212d01209c8b4aea43c0d095af0bb6da97bcb991642ea6fac0d7c462b
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^1.2.1":
+ version: 1.2.1
+ resolution: "camelcase@npm:1.2.1"
+ checksum: 10c0/dec70dfd46be8e31c5f8a4616f441cc3902da9b807f843c2ad4f2a0c79a8907d91914184b40166e2111bfa76cb66de6107924c0529017204e810ef14390381fa
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "camelcase@npm:4.1.0"
+ checksum: 10c0/54c0b6a85b54fb4e96a9d834a9d0d8f760fd608ab6752a6789042b5e1c38d3dd60f878d2c590d005046445d32d77f6e05e568a91fe8db3e282da0a1560d83058
+ languageName: node
+ linkType: hard
+
+"caniuse-api@npm:^1.5.2":
+ version: 1.6.1
+ resolution: "caniuse-api@npm:1.6.1"
+ dependencies:
+ browserslist: "npm:^1.3.6"
+ caniuse-db: "npm:^1.0.30000529"
+ lodash.memoize: "npm:^4.1.2"
+ lodash.uniq: "npm:^4.5.0"
+ checksum: 10c0/0769ffb827dcc9d7f6fb1d9616d6ac9dcb0a271cfacd3b1026459f0c5052491ef5a458bdaca12c2204b65bf65aa0c43b880b9bfbe497a0469e319cb48f5da4fb
+ languageName: node
+ linkType: hard
+
+"caniuse-db@npm:^1.0.30000529, caniuse-db@npm:^1.0.30000634, caniuse-db@npm:^1.0.30000639":
+ version: 1.0.30001312
+ resolution: "caniuse-db@npm:1.0.30001312"
+ checksum: 10c0/15ff3c027d64e26cd665f7f7c8b90b8f12de00929f063cc73f7a23f6afbc36ce7488209ad1537f9771ba0a87979f31ff28e5cc2ed6bc897e769e4c04a3a546c7
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "chalk@npm:1.1.3"
+ dependencies:
+ ansi-styles: "npm:^2.2.1"
+ escape-string-regexp: "npm:^1.0.2"
+ has-ansi: "npm:^2.0.0"
+ strip-ansi: "npm:^3.0.0"
+ supports-color: "npm:^2.0.0"
+ checksum: 10c0/28c3e399ec286bb3a7111fd4225ebedb0d7b813aef38a37bca7c498d032459c265ef43404201d5fbb8d888d29090899c95335b4c0cda13e8b126ff15c541cef8
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^2.4.1":
+ version: 2.4.2
+ resolution: "chalk@npm:2.4.2"
+ dependencies:
+ ansi-styles: "npm:^3.2.1"
+ escape-string-regexp: "npm:^1.0.5"
+ supports-color: "npm:^5.3.0"
+ checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^1.0.1":
+ version: 1.1.4
+ resolution: "chownr@npm:1.1.4"
+ checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "chownr@npm:3.0.0"
+ checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10
+ languageName: node
+ linkType: hard
+
+"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "cipher-base@npm:1.0.4"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b
+ languageName: node
+ linkType: hard
+
+"clap@npm:^1.0.9":
+ version: 1.2.3
+ resolution: "clap@npm:1.2.3"
+ dependencies:
+ chalk: "npm:^1.1.3"
+ checksum: 10c0/55da8d6a8b60e4718652e7b4310773cb618fbc0386c7648e57a2639a5696f409cb7b5e079b058759232de80cfda32d01fb38934520bbf7c07cd49898fb74bae2
+ languageName: node
+ linkType: hard
+
+"cliui@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "cliui@npm:3.2.0"
+ dependencies:
+ string-width: "npm:^1.0.1"
+ strip-ansi: "npm:^3.0.1"
+ wrap-ansi: "npm:^2.0.0"
+ checksum: 10c0/07b121fac7fd33ff8dbf3523f0d3dca0329d4e457e57dee54502aa5f27a33cbd9e66aa3e248f0260d8a1431b65b2bad8f510cd97fb8ab6a8e0506310a92e18d5
+ languageName: node
+ linkType: hard
+
+"clone@npm:^1.0.2":
+ version: 1.0.4
+ resolution: "clone@npm:1.0.4"
+ checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b
+ languageName: node
+ linkType: hard
+
+"co@npm:^4.6.0":
+ version: 4.6.0
+ resolution: "co@npm:4.6.0"
+ checksum: 10c0/c0e85ea0ca8bf0a50cbdca82efc5af0301240ca88ebe3644a6ffb8ffe911f34d40f8fbcf8f1d52c5ddd66706abd4d3bfcd64259f1e8e2371d4f47573b0dc8c28
+ languageName: node
+ linkType: hard
+
+"coa@npm:~1.0.1":
+ version: 1.0.4
+ resolution: "coa@npm:1.0.4"
+ dependencies:
+ q: "npm:^1.1.2"
+ checksum: 10c0/b15bb8d10f8a29b364fa6e4980aff1fee1da7ae4fe721ca9d806d04ddd95e394dcc9b6390028077b1911675e9cae26ea13c0d3fc332cdc3bb0a64e58547f7e60
+ languageName: node
+ linkType: hard
+
+"code-point-at@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "code-point-at@npm:1.1.0"
+ checksum: 10c0/33f6b234084e46e6e369b6f0b07949392651b4dde70fc6a592a8d3dafa08d5bb32e3981a02f31f6fc323a26bc03a4c063a9d56834848695bda7611c2417ea2e6
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^1.3.0, color-convert@npm:^1.9.0":
+ version: 1.9.3
+ resolution: "color-convert@npm:1.9.3"
+ dependencies:
+ color-name: "npm:1.1.3"
+ checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c
+ languageName: node
+ linkType: hard
+
+"color-name@npm:1.1.3":
+ version: 1.1.3
+ resolution: "color-name@npm:1.1.3"
+ checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6
+ languageName: node
+ linkType: hard
+
+"color-name@npm:^1.0.0":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
+ languageName: node
+ linkType: hard
+
+"color-string@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "color-string@npm:0.3.0"
+ dependencies:
+ color-name: "npm:^1.0.0"
+ checksum: 10c0/836bbbf58358c541cc5558ecb0376a4c857f08ed37519c2ab63f3d57ec205b52af929629f3d2d58b7d6f7fb7b6769697d83694454b667698be4eb46654f1f818
+ languageName: node
+ linkType: hard
+
+"color@npm:^0.11.0":
+ version: 0.11.4
+ resolution: "color@npm:0.11.4"
+ dependencies:
+ clone: "npm:^1.0.2"
+ color-convert: "npm:^1.3.0"
+ color-string: "npm:^0.3.0"
+ checksum: 10c0/93abcc7e2eb7c254d42b96a889aab887d2bf6fedf901fc13af88f8885377b84a0f0f11a033c3e9ef9e37dca65214466261acc781f00fdec1c8d221d20c4120ee
+ languageName: node
+ linkType: hard
+
+"colormin@npm:^1.0.5":
+ version: 1.1.2
+ resolution: "colormin@npm:1.1.2"
+ dependencies:
+ color: "npm:^0.11.0"
+ css-color-names: "npm:0.0.4"
+ has: "npm:^1.0.1"
+ checksum: 10c0/3488aca21bb100864c28b8070d5f86387fd4966bff93f552bb10cdc506a8ed9d42c4e239975b224c70eb664f170f543c74d8bda62f28216268141e8dba12777a
+ languageName: node
+ linkType: hard
+
+"colors@npm:~1.1.2":
+ version: 1.1.2
+ resolution: "colors@npm:1.1.2"
+ checksum: 10c0/21fa4c575e636d889187b4666988ff16a6464a845089ff7b5e0263883da8cfa9140029300ba67bc3e231f67a4eb610725f9e77cc1d74df47741b691a695aea11
+ languageName: node
+ linkType: hard
+
+"commander@npm:~2.13.0":
+ version: 2.13.0
+ resolution: "commander@npm:2.13.0"
+ checksum: 10c0/e3441096034439e506493ca1e5e9d5d5723ee0eadc3b2b92b3dd332b1d8fcbe72b70a1127f6790e6b3bedde3054316e9fe2cb36cef6ac051000b01559a16ba58
+ languageName: node
+ linkType: hard
+
+"commondir@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "commondir@npm:1.0.1"
+ checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
+ languageName: node
+ linkType: hard
+
+"concat-stream@npm:^1.5.0":
+ version: 1.6.2
+ resolution: "concat-stream@npm:1.6.2"
+ dependencies:
+ buffer-from: "npm:^1.0.0"
+ inherits: "npm:^2.0.3"
+ readable-stream: "npm:^2.2.2"
+ typedarray: "npm:^0.0.6"
+ checksum: 10c0/2e9864e18282946dabbccb212c5c7cec0702745e3671679eb8291812ca7fd12023f7d8cb36493942a62f770ac96a7f90009dc5c82ad69893438371720fa92617
+ languageName: node
+ linkType: hard
+
+"console-browserify@npm:^1.1.0":
+ version: 1.2.0
+ resolution: "console-browserify@npm:1.2.0"
+ checksum: 10c0/89b99a53b7d6cee54e1e64fa6b1f7ac24b844b4019c5d39db298637e55c1f4ffa5c165457ad984864de1379df2c8e1886cbbdac85d9dbb6876a9f26c3106f226
+ languageName: node
+ linkType: hard
+
+"constants-browserify@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "constants-browserify@npm:1.0.0"
+ checksum: 10c0/ab49b1d59a433ed77c964d90d19e08b2f77213fb823da4729c0baead55e3c597f8f97ebccfdfc47bd896d43854a117d114c849a6f659d9986420e97da0f83ac5
+ languageName: node
+ linkType: hard
+
+"copy-anything@npm:^2.0.1":
+ version: 2.0.6
+ resolution: "copy-anything@npm:2.0.6"
+ dependencies:
+ is-what: "npm:^3.14.1"
+ checksum: 10c0/2702998a8cc015f9917385b7f16b0d85f1f6e5e2fd34d99f14df584838f492f49aa0c390d973684c687e895c5c58d08b308a0400ac3e1e3d6fa1e5884a5402ad
+ languageName: node
+ linkType: hard
+
+"copy-concurrently@npm:^1.0.0":
+ version: 1.0.5
+ resolution: "copy-concurrently@npm:1.0.5"
+ dependencies:
+ aproba: "npm:^1.1.1"
+ fs-write-stream-atomic: "npm:^1.0.8"
+ iferr: "npm:^0.1.5"
+ mkdirp: "npm:^0.5.1"
+ rimraf: "npm:^2.5.4"
+ run-queue: "npm:^1.0.0"
+ checksum: 10c0/c2ce213cb27ee3df584d16eb6c9bfe99cfb531585007533c3e4c752521b4fbf0b2f7f90807d79c496683330808ecd9fdbd9ab9ddfa0913150b7f5097423348ce
+ languageName: node
+ linkType: hard
+
+"core-util-is@npm:~1.0.0":
+ version: 1.0.3
+ resolution: "core-util-is@npm:1.0.3"
+ checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9
+ languageName: node
+ linkType: hard
+
+"create-ecdh@npm:^4.0.0":
+ version: 4.0.4
+ resolution: "create-ecdh@npm:4.0.4"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ elliptic: "npm:^6.5.3"
+ checksum: 10c0/77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f
+ languageName: node
+ linkType: hard
+
+"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "create-hash@npm:1.2.0"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ inherits: "npm:^2.0.1"
+ md5.js: "npm:^1.3.4"
+ ripemd160: "npm:^2.0.1"
+ sha.js: "npm:^2.4.0"
+ checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915
+ languageName: node
+ linkType: hard
+
+"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7":
+ version: 1.1.7
+ resolution: "create-hmac@npm:1.1.7"
+ dependencies:
+ cipher-base: "npm:^1.0.3"
+ create-hash: "npm:^1.1.0"
+ inherits: "npm:^2.0.1"
+ ripemd160: "npm:^2.0.0"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^5.0.1":
+ version: 5.1.0
+ resolution: "cross-spawn@npm:5.1.0"
+ dependencies:
+ lru-cache: "npm:^4.0.1"
+ shebang-command: "npm:^1.2.0"
+ which: "npm:^1.2.9"
+ checksum: 10c0/1918621fddb9f8c61e02118b2dbf81f611ccd1544ceaca0d026525341832b8511ce2504c60f935dbc06b35e5ef156fe8c1e72708c27dd486f034e9c0e1e07201
+ languageName: node
+ linkType: hard
+
+"crypto-browserify@npm:^3.11.0":
+ version: 3.12.0
+ resolution: "crypto-browserify@npm:3.12.0"
+ dependencies:
+ browserify-cipher: "npm:^1.0.0"
+ browserify-sign: "npm:^4.0.0"
+ create-ecdh: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ create-hmac: "npm:^1.1.0"
+ diffie-hellman: "npm:^5.0.0"
+ inherits: "npm:^2.0.1"
+ pbkdf2: "npm:^3.0.3"
+ public-encrypt: "npm:^4.0.0"
+ randombytes: "npm:^2.0.0"
+ randomfill: "npm:^1.0.3"
+ checksum: 10c0/0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92
+ languageName: node
+ linkType: hard
+
+"css-color-names@npm:0.0.4":
+ version: 0.0.4
+ resolution: "css-color-names@npm:0.0.4"
+ checksum: 10c0/88ef97c25bcfb217469cdff428049022438cc546eb208210f0edec03b75050723db3ba02cd0f4959c84cd0659be0b43af3323eff80d1ba5fb15c2accf09ccbe2
+ languageName: node
+ linkType: hard
+
+"css-loader@npm:^0.28.11":
+ version: 0.28.11
+ resolution: "css-loader@npm:0.28.11"
+ dependencies:
+ babel-code-frame: "npm:^6.26.0"
+ css-selector-tokenizer: "npm:^0.7.0"
+ cssnano: "npm:^3.10.0"
+ icss-utils: "npm:^2.1.0"
+ loader-utils: "npm:^1.0.2"
+ lodash.camelcase: "npm:^4.3.0"
+ object-assign: "npm:^4.1.1"
+ postcss: "npm:^5.0.6"
+ postcss-modules-extract-imports: "npm:^1.2.0"
+ postcss-modules-local-by-default: "npm:^1.2.0"
+ postcss-modules-scope: "npm:^1.1.0"
+ postcss-modules-values: "npm:^1.3.0"
+ postcss-value-parser: "npm:^3.3.0"
+ source-list-map: "npm:^2.0.0"
+ checksum: 10c0/36434d7fafde8a4de3995c444713a455df17f74cfe10f089481cb7918db6f206267301daf2ae0496544809ca35bb226df47aa4edeb9580704c96281a07091f8b
+ languageName: node
+ linkType: hard
+
+"css-selector-tokenizer@npm:^0.7.0":
+ version: 0.7.3
+ resolution: "css-selector-tokenizer@npm:0.7.3"
+ dependencies:
+ cssesc: "npm:^3.0.0"
+ fastparse: "npm:^1.1.2"
+ checksum: 10c0/bc4d14204bf5716f70085526bf370cbdd1c643dcb2e7366ba96212649fa5a07885e3f5dc2bde53646bac557ded79a60c7118cf7cf5d4dda898353a9e08277649
+ languageName: node
+ linkType: hard
+
+"cssesc@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "cssesc@npm:3.0.0"
+ bin:
+ cssesc: bin/cssesc
+ checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7
+ languageName: node
+ linkType: hard
+
+"cssnano@npm:^3.10.0":
+ version: 3.10.0
+ resolution: "cssnano@npm:3.10.0"
+ dependencies:
+ autoprefixer: "npm:^6.3.1"
+ decamelize: "npm:^1.1.2"
+ defined: "npm:^1.0.0"
+ has: "npm:^1.0.1"
+ object-assign: "npm:^4.0.1"
+ postcss: "npm:^5.0.14"
+ postcss-calc: "npm:^5.2.0"
+ postcss-colormin: "npm:^2.1.8"
+ postcss-convert-values: "npm:^2.3.4"
+ postcss-discard-comments: "npm:^2.0.4"
+ postcss-discard-duplicates: "npm:^2.0.1"
+ postcss-discard-empty: "npm:^2.0.1"
+ postcss-discard-overridden: "npm:^0.1.1"
+ postcss-discard-unused: "npm:^2.2.1"
+ postcss-filter-plugins: "npm:^2.0.0"
+ postcss-merge-idents: "npm:^2.1.5"
+ postcss-merge-longhand: "npm:^2.0.1"
+ postcss-merge-rules: "npm:^2.0.3"
+ postcss-minify-font-values: "npm:^1.0.2"
+ postcss-minify-gradients: "npm:^1.0.1"
+ postcss-minify-params: "npm:^1.0.4"
+ postcss-minify-selectors: "npm:^2.0.4"
+ postcss-normalize-charset: "npm:^1.1.0"
+ postcss-normalize-url: "npm:^3.0.7"
+ postcss-ordered-values: "npm:^2.1.0"
+ postcss-reduce-idents: "npm:^2.2.2"
+ postcss-reduce-initial: "npm:^1.0.0"
+ postcss-reduce-transforms: "npm:^1.0.3"
+ postcss-svgo: "npm:^2.1.1"
+ postcss-unique-selectors: "npm:^2.0.2"
+ postcss-value-parser: "npm:^3.2.3"
+ postcss-zindex: "npm:^2.0.1"
+ checksum: 10c0/1231f79be4761fa61478fb2a51d1aa95798eb426e33cde95341b5e9c71ec56c170fcc4c8d0618a8961033efb9da6230539eea933431c983ef065c014865e50f4
+ languageName: node
+ linkType: hard
+
+"csso@npm:~2.3.1":
+ version: 2.3.2
+ resolution: "csso@npm:2.3.2"
+ dependencies:
+ clap: "npm:^1.0.9"
+ source-map: "npm:^0.5.3"
+ bin:
+ csso: ./bin/csso
+ checksum: 10c0/e36a1cae8f371327cbf22d6770b8827291fa4f372bbaab938d5afc869e73f0a452ba4e87738bf03bfbb3bba27770efa04a6b4acaf5f36e94f88e8c481b9df7fa
+ languageName: node
+ linkType: hard
+
+"cyclist@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "cyclist@npm:1.0.1"
+ checksum: 10c0/3381d3b66a3b268e6e0abcc1fa8fbeeb9a98391d8455677509f9833813d7680cc737a10141f54c229e42f5b3133250f36f1aa04f56ef4ba9b29fa728c3c48c01
+ languageName: node
+ linkType: hard
+
+"d@npm:1, d@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "d@npm:1.0.1"
+ dependencies:
+ es5-ext: "npm:^0.10.50"
+ type: "npm:^1.0.1"
+ checksum: 10c0/1fedcb3b956a461f64d86b94b347441beff5cef8910b6ac4ec509a2c67eeaa7093660a98b26601ac91f91260238add73bdf25867a9c0cb783774642bc4c1523f
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.3.4":
+ version: 4.4.3
+ resolution: "debug@npm:4.4.3"
+ dependencies:
+ ms: "npm:^2.1.3"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6
+ languageName: node
+ linkType: hard
+
+"debug@npm:^3.2.6":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: "npm:^2.1.1"
+ checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a
+ languageName: node
+ linkType: hard
+
+"decamelize@npm:^1.1.1, decamelize@npm:^1.1.2":
+ version: 1.2.0
+ resolution: "decamelize@npm:1.2.0"
+ checksum: 10c0/85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2
+ languageName: node
+ linkType: hard
+
+"defined@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "defined@npm:1.0.0"
+ checksum: 10c0/2b9929414857729a97cfcc77987e65005e03b3fd92747e1d6a743b054c1387b62e669dc453b53e3a8105f1398df6aad54c07eed984871c93be8c7f4560a1828b
+ languageName: node
+ linkType: hard
+
+"des.js@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "des.js@npm:1.0.1"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ minimalistic-assert: "npm:^1.0.0"
+ checksum: 10c0/69bf742d1c381e01d75151bdcaac71a18d251d7debfc9b6ae5ee4b4edaf39691ae203c5ec9173ba89aedb3ddc622cdff4fca065448c6c2afb1140d9fb826339d
+ languageName: node
+ linkType: hard
+
+"diff@npm:~5.0.0":
+ version: 5.0.0
+ resolution: "diff@npm:5.0.0"
+ checksum: 10c0/08c5904779bbababcd31f1707657b1ad57f8a9b65e6f88d3fb501d09a965d5f8d73066898a7d3f35981f9e4101892c61d99175d421f3b759533213c253d91134
+ languageName: node
+ linkType: hard
+
+"diffie-hellman@npm:^5.0.0":
+ version: 5.0.3
+ resolution: "diffie-hellman@npm:5.0.3"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ miller-rabin: "npm:^4.0.0"
+ randombytes: "npm:^2.0.0"
+ checksum: 10c0/ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf
+ languageName: node
+ linkType: hard
+
+"domain-browser@npm:^1.1.1":
+ version: 1.2.0
+ resolution: "domain-browser@npm:1.2.0"
+ checksum: 10c0/a955f482f4b4710fbd77c12a33e77548d63603c30c80f61a80519f27e3db1ba8530b914584cc9e9365d2038753d6b5bd1f4e6c81e432b007b0ec95b8b5e69b1b
+ languageName: node
+ linkType: hard
"dropzone@https://github.com/CenterForOpenScience/dropzone.git#aba21eb6b82cc823ac7a7a53d6e035791c082bae":
- version "4.3.0"
- resolved "https://github.com/CenterForOpenScience/dropzone.git#aba21eb6b82cc823ac7a7a53d6e035791c082bae"
-
-duplexify@^3.4.2, duplexify@^3.6.0:
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
- integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
- dependencies:
- end-of-stream "^1.0.0"
- inherits "^2.0.1"
- readable-stream "^2.0.0"
- stream-shift "^1.0.0"
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
- integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-
-electron-to-chromium@^1.2.7:
- version "1.4.71"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.71.tgz#17056914465da0890ce00351a3b946fd4cd51ff6"
- integrity sha512-Hk61vXXKRb2cd3znPE9F+2pLWdIOmP7GjiTj45y6L3W/lO+hSnUSUhq+6lEaERWBdZOHbk2s3YV5c9xVl3boVw==
-
-elliptic@^6.5.3:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
- integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
- dependencies:
- bn.js "^4.11.9"
- brorand "^1.1.0"
- hash.js "^1.0.0"
- hmac-drbg "^1.0.1"
- inherits "^2.0.4"
- minimalistic-assert "^1.0.1"
- minimalistic-crypto-utils "^1.0.1"
-
-emojis-list@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
- integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
-
-emojis-list@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
- integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
-
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
- integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
- dependencies:
- once "^1.4.0"
-
-enhanced-resolve@^3.4.0:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
- integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=
- dependencies:
- graceful-fs "^4.1.2"
- memory-fs "^0.4.0"
- object-assign "^4.0.1"
- tapable "^0.2.7"
-
-errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
- integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
- dependencies:
- prr "~1.0.1"
-
-error-ex@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14:
- version "0.10.53"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
- integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
- dependencies:
- es6-iterator "~2.0.3"
- es6-symbol "~3.1.3"
- next-tick "~1.0.0"
-
-es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
- integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
- dependencies:
- d "1"
- es5-ext "^0.10.35"
- es6-symbol "^3.1.1"
-
-es6-map@^0.1.3:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
- integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-set "~0.1.5"
- es6-symbol "~3.1.1"
- event-emitter "~0.3.5"
-
-es6-set@~0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
- integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-symbol "3.1.1"
- event-emitter "~0.3.5"
-
-es6-symbol@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
- integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
- integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
- dependencies:
- d "^1.0.1"
- ext "^1.1.2"
-
-es6-weak-map@^2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
- integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
- dependencies:
- d "1"
- es5-ext "^0.10.46"
- es6-iterator "^2.0.3"
- es6-symbol "^3.1.1"
-
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-
-escope@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
- integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=
- dependencies:
- es6-map "^0.1.3"
- es6-weak-map "^2.0.1"
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
-esprima@^2.6.0:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
- integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=
-
-esrecurse@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
- integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
- dependencies:
- estraverse "^5.2.0"
-
-estraverse@^4.1.1:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
- integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
-estraverse@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
- integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-event-emitter@~0.3.5:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
- integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-events@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
- integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
-
-evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
- integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
- dependencies:
- md5.js "^1.3.4"
- safe-buffer "^5.1.1"
-
-execa@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
- integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
-exports-loader@0.6.3:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.3.tgz#57dc78917f709b96f247fa91e69b554c855013c8"
- integrity sha1-V9x4kX9wm5byR/qR5ptVTIVQE8g=
- dependencies:
- loader-utils "0.2.x"
- source-map "0.1.x"
-
-ext@^1.1.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52"
- integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==
- dependencies:
- type "^2.5.0"
-
-fast-deep-equal@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
- integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
-
-fast-deep-equal@^3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
- integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-json-stable-stringify@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
-fastparse@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
- integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
-
-file-loader@^0.11.2:
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34"
- integrity sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==
- dependencies:
- loader-utils "^1.0.2"
-
-find-cache-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
- integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=
- dependencies:
- commondir "^1.0.1"
- make-dir "^1.0.0"
- pkg-dir "^2.0.0"
-
-find-up@^2.0.0, find-up@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
- dependencies:
- locate-path "^2.0.0"
-
-flatten@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
- integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==
-
-flush-write-stream@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
- integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
- dependencies:
- inherits "^2.0.3"
- readable-stream "^2.3.6"
-
-from2@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
- integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
- dependencies:
- inherits "^2.0.1"
- readable-stream "^2.0.0"
-
-fs-write-stream-atomic@^1.0.8:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
- integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
- dependencies:
- graceful-fs "^4.1.2"
- iferr "^0.1.5"
- imurmurhash "^0.1.4"
- readable-stream "1 || 2"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
-get-caller-file@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
- integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
-
-get-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
- integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
-
-glob-to-regexp@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
- integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
-
-glob@^7.1.2, glob@^7.1.3:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
- integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.2:
- version "4.2.9"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
- integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
-
-gsap@3.9.1:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/gsap/-/gsap-3.9.1.tgz#d4c7443540497afee9ddc0824fd0180224e33360"
- integrity sha512-JSGVYoC6da4pIjdF/yxFU6Rz8OojOIDkbooveZlfNg0+JIoFoRruyfWAEi6R/gUeNcuOiTqUIb0gi1nCNrHf8w==
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
- dependencies:
- ansi-regex "^2.0.0"
-
-has-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
- integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
-
-has-flag@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
- integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=
-
-has-flag@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
- integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
-
-has@^1.0.1, has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- dependencies:
- function-bind "^1.1.1"
-
-hash-base@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
- integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
- dependencies:
- inherits "^2.0.4"
- readable-stream "^3.6.0"
- safe-buffer "^5.2.0"
-
-hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
- integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
- dependencies:
- inherits "^2.0.3"
- minimalistic-assert "^1.0.1"
-
-highlight.js@~9.18.2:
- version "9.18.5"
- resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
- integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
-
-hmac-drbg@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
- integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
- dependencies:
- hash.js "^1.0.3"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.1"
-
-hosted-git-info@^2.1.4:
- version "2.8.9"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
- integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
-
-html-comment-regex@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
- integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-
-http-errors@1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
- integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.4"
- setprototypeof "1.2.0"
- statuses ">= 1.5.0 < 2"
- toidentifier "1.0.1"
-
-https-browserify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
- integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-
-iconv-lite@0.4.24, iconv-lite@^0.4.4:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
-icss-replace-symbols@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
- integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
-
-icss-utils@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
- integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=
- dependencies:
- postcss "^6.0.1"
-
-ieee754@^1.1.4:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
- integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-
-iferr@^0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
- integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
-
-image-size@~0.5.0:
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
- integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
-
-imports-loader@^0.6.3:
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.6.5.tgz#ae74653031d59e37b3c2fb2544ac61aeae3530a6"
- integrity sha1-rnRlMDHVnjezwvslRKxhrq41MKY=
- dependencies:
- loader-utils "0.2.x"
- source-map "0.1.x"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
- integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
-
-indexes-of@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
- integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inherits@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
- integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
-
-inherits@2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
- integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-
-interpret@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
- integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
- integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
-
-is-absolute-url@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
- integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-
-is-core-module@^2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
- integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
- dependencies:
- has "^1.0.3"
-
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-
-is-plain-obj@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
- integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
-
-is-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
- integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
-
-is-svg@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9"
- integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=
- dependencies:
- html-comment-regex "^1.1.0"
-
-is-what@^3.14.1:
- version "3.14.1"
- resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
- integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
-
-isarray@^1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-jquery-ui@>=1.10.4:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.1.tgz#d0b7a42e73a04c31bb5706adf86f6f8942f64eaa"
- integrity sha512-2VlU59N5P4HaumDK1Z3XEVjSvegFbEOQRgpHUBaB2Ak98Axl3hFhJ6RFcNQNuk9SfL6WxIbuLst8dW/U56NSiA==
- dependencies:
- jquery ">=1.8.0 <4.0.0"
-
-jquery@>=1.11.0, jquery@>=1.7, "jquery@>=1.8.0 <4.0.0", jquery@^3.5.1:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
- integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
-
-js-base64@^2.1.9:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
- integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
-
-js-cookie@3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414"
- integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==
-
-js-md5@^0.7.3:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/js-md5/-/js-md5-0.7.3.tgz#b4f2fbb0b327455f598d6727e38ec272cd09c3f2"
- integrity sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==
-
-js-tokens@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
- integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
-
-js-yaml@~3.7.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
- integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=
- dependencies:
- argparse "^1.0.7"
- esprima "^2.6.0"
-
-json-loader@^0.5.4:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
- integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==
-
-json-schema-traverse@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
- integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
-
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json5@^0.5.0, json5@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
- integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
-
-json5@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
- integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
- dependencies:
- minimist "^1.2.0"
-
-jstimezonedetect@^1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/jstimezonedetect/-/jstimezonedetect-1.0.7.tgz#54bc13ff9960a6510288665cc9596244e21bd29d"
- integrity sha512-ARADHortktl9IZ1tr4GHwGPIAzgz3mLNCbR/YjWtRtc/O0o634O3NeFlpLjv95EvuDA5dc8z6yfgbS8nUc4zcQ==
-
-keen-dataviz@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/keen-dataviz/-/keen-dataviz-1.2.1.tgz#6f7595a2051652e1bece2ce2296e47ffa5d79dd9"
- integrity sha1-b3WVogUWUuG+ziziKW5H/6XXndk=
- dependencies:
- c3 "^0.4.18"
- d3 "^3.5.17"
-
-knockout.validation@^2.0.2:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/knockout.validation/-/knockout.validation-2.0.4.tgz#e87f82f41b5bdcb7029ea6be3fef2a903054558b"
- integrity sha512-64eDuEvALXf5GsRK5b2WIetF/eSIlTsw/ZDerrhKt+3eRBBk95SXdczTLhcoNL4Hi8Gym14YYIjj7vLCXEeHDA==
-
-knockout@~3.4.2:
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/knockout/-/knockout-3.4.2.tgz#e87958de77ad1e936f7ce645bab8b5d7c456d937"
- integrity sha1-6HlY3netHpNvfOZFuri118RW2Tc=
-
-lcid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
- dependencies:
- invert-kv "^1.0.0"
-
-less@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/less/-/less-4.1.2.tgz#6099ee584999750c2624b65f80145f8674e4b4b0"
- integrity sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==
- dependencies:
- copy-anything "^2.0.1"
- parse-node-version "^1.0.1"
- tslib "^2.3.0"
- optionalDependencies:
- errno "^0.1.1"
- graceful-fs "^4.1.2"
- image-size "~0.5.0"
- make-dir "^2.1.0"
- mime "^1.4.1"
- needle "^2.5.2"
- source-map "~0.6.0"
-
-linkifyjs@^3.0.5:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-3.0.5.tgz#99e51a3a0c0e232fcb63ebb89eea3ff923378f34"
- integrity sha512-1Y9XQH65eQKA9p2xtk+zxvnTeQBG7rdAXSkUG97DmuI/Xhji9uaUzaWxRj6rf9YC0v8KKHkxav7tnLX82Sz5Fg==
-
-load-json-file@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
- integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- strip-bom "^3.0.0"
-
-loader-runner@^2.3.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
- integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-
-loader-utils@0.2.x:
- version "0.2.17"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
- integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
- dependencies:
- big.js "^3.1.3"
- emojis-list "^2.0.0"
- json5 "^0.5.0"
- object-assign "^4.0.1"
-
-loader-utils@^1.0.2, loader-utils@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
- integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
- dependencies:
- big.js "^5.2.2"
- emojis-list "^3.0.0"
- json5 "^1.0.1"
-
-loaders.css@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/loaders.css/-/loaders.css-0.1.2.tgz#3a9fb43726c73334a38142af9d0629019b658743"
- integrity sha1-Op+0NybHMzSjgUKvnQYpAZtlh0M=
-
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
-
-lodash.camelcase@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
- integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
-
-lodash.chunk@^4.0.6:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
- integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=
-
-lodash.find@^4.3.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
- integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=
-
-lodash.get@^4.2.1:
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
- integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
-
-lodash.has@^4.5.2:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"
- integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=
-
-lodash.includes@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
- integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
-
-lodash.memoize@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
- integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
-
-lodash.set@^4.3.2:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"
- integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=
-
-lodash.uniq@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
- integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-
-lodash@^4.17.14:
- version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-lru-cache@^4.0.1, lru-cache@^4.1.1:
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
- integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
- dependencies:
- pseudomap "^1.0.2"
- yallist "^2.1.2"
-
-make-dir@^1.0.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
- integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
- dependencies:
- pify "^3.0.0"
-
-make-dir@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
- integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
- dependencies:
- pify "^4.0.1"
- semver "^5.6.0"
-
-math-expression-evaluator@^1.2.14:
- version "1.3.14"
- resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.3.14.tgz#0ebeaccf65fea0f6f5a626f88df41814e5fcd9bf"
- integrity sha512-M6AMrvq9bO8uL42KvQHPA2/SbAobA0R7gviUmPrcTcGfdwpaLitz4q2Euzx2lP9Oy88vxK3HOrsISgSwKsYS4A==
-
-md5.js@^1.3.4:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
- integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
- dependencies:
- hash-base "^3.0.0"
- inherits "^2.0.1"
- safe-buffer "^5.1.2"
-
-media-typer@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
- integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
-
-mem@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
- integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
- dependencies:
- mimic-fn "^1.0.0"
-
-memory-fs@^0.4.0, memory-fs@~0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
- integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
- dependencies:
- errno "^0.1.3"
- readable-stream "^2.0.1"
-
-miller-rabin@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
- integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
- dependencies:
- bn.js "^4.0.0"
- brorand "^1.0.1"
-
-mime-db@1.51.0:
- version "1.51.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
- integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
-
-mime-db@1.52.0:
- version "1.52.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
- integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-
-mime-types@~2.1.24:
- version "2.1.34"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
- integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
- dependencies:
- mime-db "1.51.0"
-
-mime-types@~2.1.34:
- version "2.1.35"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
- integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
- dependencies:
- mime-db "1.52.0"
-
-mime@^1.4.1:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-mimic-fn@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
- integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
- integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
-minimalistic-crypto-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
- integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-
-minimatch@^3.0.4:
- version "3.0.5"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3"
- integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@^1.2.0, minimist@^1.2.5:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
- integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-
-mississippi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
- integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
- dependencies:
- concat-stream "^1.5.0"
- duplexify "^3.4.2"
- end-of-stream "^1.1.0"
- flush-write-stream "^1.0.0"
- from2 "^2.1.0"
- parallel-transform "^1.1.0"
- pump "^2.0.1"
- pumpify "^1.3.3"
- stream-each "^1.1.0"
- through2 "^2.0.0"
-
-mithril@0.2.0, mithril@>=0.2:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/mithril/-/mithril-0.2.0.tgz#98e007699a15b243a26b3b522f61bee90fa5ffb9"
- integrity sha1-mOAHaZoVskOiaztSL2G+6Q+l/7k=
-
-mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
- integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
- dependencies:
- minimist "^1.2.5"
-
-moment@^2.14.1:
- version "2.29.1"
- resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
- integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
-
-move-concurrently@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
- integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
- dependencies:
- aproba "^1.1.1"
- copy-concurrently "^1.0.0"
- fs-write-stream-atomic "^1.0.8"
- mkdirp "^0.5.1"
- rimraf "^2.5.4"
- run-queue "^1.0.3"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-
-ms@^2.1.1:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-needle@^2.5.2:
- version "2.9.1"
- resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684"
- integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==
- dependencies:
- debug "^3.2.6"
- iconv-lite "^0.4.4"
- sax "^1.2.4"
-
-next-tick@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
- integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
-
-node-libs-browser@^2.0.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
- integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
- dependencies:
- assert "^1.1.1"
- browserify-zlib "^0.2.0"
- buffer "^4.3.0"
- console-browserify "^1.1.0"
- constants-browserify "^1.0.0"
- crypto-browserify "^3.11.0"
- domain-browser "^1.1.1"
- events "^3.0.0"
- https-browserify "^1.0.0"
- os-browserify "^0.3.0"
- path-browserify "0.0.1"
- process "^0.11.10"
- punycode "^1.2.4"
- querystring-es3 "^0.2.0"
- readable-stream "^2.3.3"
- stream-browserify "^2.0.1"
- stream-http "^2.7.2"
- string_decoder "^1.0.0"
- timers-browserify "^2.0.4"
- tty-browserify "0.0.0"
- url "^0.11.0"
- util "^0.11.0"
- vm-browserify "^1.0.1"
-
-normalize-package-data@^2.3.2:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
- integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
- dependencies:
- hosted-git-info "^2.1.4"
- resolve "^1.10.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
-
-normalize-range@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
- integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
-
-normalize-url@^1.4.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
- integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
- dependencies:
- object-assign "^4.0.1"
- prepend-http "^1.0.0"
- query-string "^4.1.0"
- sort-keys "^1.0.0"
-
-npm-run-path@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
- integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
- dependencies:
- path-key "^2.0.0"
-
-num2fraction@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
- integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
-
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
-object-assign@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
- integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=
-
-object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
- integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
- dependencies:
- ee-first "1.1.1"
-
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
- dependencies:
- wrappy "1"
-
-os-browserify@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
- integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
-
-os-locale@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
- integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
- dependencies:
- execa "^0.7.0"
- lcid "^1.0.0"
- mem "^1.1.0"
-
-p-finally@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
- integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-
-p-limit@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
- integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
- dependencies:
- p-try "^1.0.0"
-
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
- dependencies:
- p-limit "^1.1.0"
-
-p-try@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
- integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
-
-pako@~1.0.5:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
- integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
-
-parallel-transform@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
- integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
- dependencies:
- cyclist "^1.0.1"
- inherits "^2.0.3"
- readable-stream "^2.1.5"
-
-parse-asn1@^5.0.0, parse-asn1@^5.1.5:
- version "5.1.6"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
- integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
- dependencies:
- asn1.js "^5.2.0"
- browserify-aes "^1.0.0"
- evp_bytestokey "^1.0.0"
- pbkdf2 "^3.0.3"
- safe-buffer "^5.1.1"
-
-parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
- dependencies:
- error-ex "^1.2.0"
-
-parse-node-version@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
- integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
-
-path-browserify@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
- integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
-
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-
-path-key@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
- integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-path-type@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
- integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
- dependencies:
- pify "^2.0.0"
-
-pbkdf2@^3.0.3:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
- integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
- dependencies:
- create-hash "^1.1.2"
- create-hmac "^1.1.4"
- ripemd160 "^2.0.1"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
- integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
-
-pify@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
- integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
-
-pify@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
- integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-
-pikaday@^1.3.2:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/pikaday/-/pikaday-1.8.2.tgz#72cc73fab7ccc068cbdf7dcaa1ce400fcfd894e3"
- integrity sha512-TNtsE+34BIax3WtkB/qqu5uepV1McKYEgvL3kWzU7aqPCpMEN6rBF3AOwu4WCwAealWlBGobXny/9kJb49C1ew==
-
-pkg-dir@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
- integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
- dependencies:
- find-up "^2.1.0"
-
-popper.js@^1.16.0:
- version "1.16.1"
- resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
- integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
-
-postcss-calc@^5.2.0:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e"
- integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14=
- dependencies:
- postcss "^5.0.2"
- postcss-message-helpers "^2.0.0"
- reduce-css-calc "^1.2.6"
-
-postcss-colormin@^2.1.8:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b"
- integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=
- dependencies:
- colormin "^1.0.5"
- postcss "^5.0.13"
- postcss-value-parser "^3.2.3"
-
-postcss-convert-values@^2.3.4:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d"
- integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=
- dependencies:
- postcss "^5.0.11"
- postcss-value-parser "^3.1.2"
-
-postcss-discard-comments@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d"
- integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=
- dependencies:
- postcss "^5.0.14"
-
-postcss-discard-duplicates@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932"
- integrity sha1-uavye4isGIFYpesSq8riAmO5GTI=
- dependencies:
- postcss "^5.0.4"
-
-postcss-discard-empty@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5"
- integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=
- dependencies:
- postcss "^5.0.14"
-
-postcss-discard-overridden@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58"
- integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=
- dependencies:
- postcss "^5.0.16"
-
-postcss-discard-unused@^2.2.1:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433"
- integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=
- dependencies:
- postcss "^5.0.14"
- uniqs "^2.0.0"
-
-postcss-filter-plugins@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec"
- integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==
- dependencies:
- postcss "^5.0.4"
-
-postcss-merge-idents@^2.1.5:
- version "2.1.7"
- resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270"
- integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=
- dependencies:
- has "^1.0.1"
- postcss "^5.0.10"
- postcss-value-parser "^3.1.1"
-
-postcss-merge-longhand@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658"
- integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=
- dependencies:
- postcss "^5.0.4"
-
-postcss-merge-rules@^2.0.3:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721"
- integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE=
- dependencies:
- browserslist "^1.5.2"
- caniuse-api "^1.5.2"
- postcss "^5.0.4"
- postcss-selector-parser "^2.2.2"
- vendors "^1.0.0"
-
-postcss-message-helpers@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"
- integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=
-
-postcss-minify-font-values@^1.0.2:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69"
- integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k=
- dependencies:
- object-assign "^4.0.1"
- postcss "^5.0.4"
- postcss-value-parser "^3.0.2"
-
-postcss-minify-gradients@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1"
- integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=
- dependencies:
- postcss "^5.0.12"
- postcss-value-parser "^3.3.0"
-
-postcss-minify-params@^1.0.4:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3"
- integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=
- dependencies:
- alphanum-sort "^1.0.1"
- postcss "^5.0.2"
- postcss-value-parser "^3.0.2"
- uniqs "^2.0.0"
-
-postcss-minify-selectors@^2.0.4:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf"
- integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8=
- dependencies:
- alphanum-sort "^1.0.2"
- has "^1.0.1"
- postcss "^5.0.14"
- postcss-selector-parser "^2.0.0"
-
-postcss-modules-extract-imports@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a"
- integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==
- dependencies:
- postcss "^6.0.1"
-
-postcss-modules-local-by-default@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
- integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=
- dependencies:
- css-selector-tokenizer "^0.7.0"
- postcss "^6.0.1"
-
-postcss-modules-scope@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
- integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A=
- dependencies:
- css-selector-tokenizer "^0.7.0"
- postcss "^6.0.1"
-
-postcss-modules-values@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
- integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=
- dependencies:
- icss-replace-symbols "^1.1.0"
- postcss "^6.0.1"
-
-postcss-normalize-charset@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1"
- integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E=
- dependencies:
- postcss "^5.0.5"
-
-postcss-normalize-url@^3.0.7:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222"
- integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI=
- dependencies:
- is-absolute-url "^2.0.0"
- normalize-url "^1.4.0"
- postcss "^5.0.14"
- postcss-value-parser "^3.2.3"
-
-postcss-ordered-values@^2.1.0:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d"
- integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=
- dependencies:
- postcss "^5.0.4"
- postcss-value-parser "^3.0.1"
-
-postcss-reduce-idents@^2.2.2:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3"
- integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=
- dependencies:
- postcss "^5.0.4"
- postcss-value-parser "^3.0.2"
-
-postcss-reduce-initial@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea"
- integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=
- dependencies:
- postcss "^5.0.4"
-
-postcss-reduce-transforms@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1"
- integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=
- dependencies:
- has "^1.0.1"
- postcss "^5.0.8"
- postcss-value-parser "^3.0.1"
-
-postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
- integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=
- dependencies:
- flatten "^1.0.2"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-svgo@^2.1.1:
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d"
- integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=
- dependencies:
- is-svg "^2.0.0"
- postcss "^5.0.14"
- postcss-value-parser "^3.2.3"
- svgo "^0.7.0"
-
-postcss-unique-selectors@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d"
- integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=
- dependencies:
- alphanum-sort "^1.0.1"
- postcss "^5.0.4"
- uniqs "^2.0.0"
-
-postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
- integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-
-postcss-zindex@^2.0.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22"
- integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=
- dependencies:
- has "^1.0.1"
- postcss "^5.0.4"
- uniqs "^2.0.0"
-
-postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16:
- version "5.2.18"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
- integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
- dependencies:
- chalk "^1.1.3"
- js-base64 "^2.1.9"
- source-map "^0.5.6"
- supports-color "^3.2.3"
-
-postcss@^6.0.1:
- version "6.0.23"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
- integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
- dependencies:
- chalk "^2.4.1"
- source-map "^0.6.1"
- supports-color "^5.4.0"
-
-prepend-http@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
- integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
-
-pretty-data@^0.40.0:
- version "0.40.0"
- resolved "https://registry.yarnpkg.com/pretty-data/-/pretty-data-0.40.0.tgz#572aa8ea23467467ab94b6b5266a6fd9c8fddd72"
- integrity sha1-Vyqo6iNGdGerlLa1Jmpv2cj93XI=
-
-process-nextick-args@~2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-
-process@^0.11.10:
- version "0.11.10"
- resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
- integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
-
-promise-inflight@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
- integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
-
-prr@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
- integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
-
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
- integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-
-public-encrypt@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
- integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
- dependencies:
- bn.js "^4.1.0"
- browserify-rsa "^4.0.0"
- create-hash "^1.1.0"
- parse-asn1 "^5.0.0"
- randombytes "^2.0.1"
- safe-buffer "^5.1.2"
-
-pump@^2.0.0, pump@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
- integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
-pumpify@^1.3.3:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
- integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
- dependencies:
- duplexify "^3.6.0"
- inherits "^2.0.3"
- pump "^2.0.0"
-
-punycode@1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
- integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
-
-punycode@^1.2.4:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
- integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
-
-punycode@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
- integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-
-q@^1.1.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
- integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-
-qs@6.9.7:
- version "6.9.7"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe"
- integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
-
-query-string@^4.1.0:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
- integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s=
- dependencies:
- object-assign "^4.1.0"
- strict-uri-encode "^1.0.0"
-
-querystring-es3@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
- integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
-
-querystring@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
- integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
-
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
- integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
- dependencies:
- safe-buffer "^5.1.0"
-
-randomfill@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
- integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
- dependencies:
- randombytes "^2.0.5"
- safe-buffer "^5.1.0"
-
-raw-body@2.4.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c"
- integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==
- dependencies:
- bytes "3.1.2"
- http-errors "1.8.1"
- iconv-lite "0.4.24"
- unpipe "1.0.0"
-
-raw-loader@~0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
- integrity sha1-DD0L6u2KAclm2Xh793goElKpeao=
-
-read-pkg-up@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
- integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
- dependencies:
- find-up "^2.0.0"
- read-pkg "^2.0.0"
-
-read-pkg@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
- integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
- dependencies:
- load-json-file "^2.0.0"
- normalize-package-data "^2.3.2"
- path-type "^2.0.0"
-
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
- version "2.3.7"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
- integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~2.0.0"
- safe-buffer "~5.1.1"
- string_decoder "~1.1.1"
- util-deprecate "~1.0.1"
-
-readable-stream@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
- integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
- dependencies:
- inherits "^2.0.3"
- string_decoder "^1.1.1"
- util-deprecate "^1.0.1"
-
-reduce-css-calc@^1.2.6:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
- integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=
- dependencies:
- balanced-match "^0.4.2"
- math-expression-evaluator "^1.2.14"
- reduce-function-call "^1.0.1"
-
-reduce-function-call@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f"
- integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==
- dependencies:
- balanced-match "^1.0.0"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-
-require-main-filename@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
- integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
-
-resolve@^1.10.0:
- version "1.22.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
- integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
- dependencies:
- is-core-module "^2.8.1"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-rimraf@^2.5.4, rimraf@^2.6.2:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
- integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
- dependencies:
- glob "^7.1.3"
-
-ripemd160@^2.0.0, ripemd160@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
- integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
- dependencies:
- hash-base "^3.0.0"
- inherits "^2.0.1"
-
-run-queue@^1.0.0, run-queue@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
- integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
- dependencies:
- aproba "^1.1.1"
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-sax@^1.2.4, sax@~1.2.1:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
- integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
-schema-utils@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
- integrity sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=
- dependencies:
- ajv "^5.0.0"
-
-schema-utils@^0.4.5:
- version "0.4.7"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
- integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
- dependencies:
- ajv "^6.1.0"
- ajv-keywords "^3.1.0"
-
-schema-utils@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
- integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
- dependencies:
- ajv "^6.1.0"
- ajv-errors "^1.0.0"
- ajv-keywords "^3.1.0"
-
-select2@3.5.1:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/select2/-/select2-3.5.1.tgz#f2819489bbc65fd6d328be72bbe2b95dd7e87cfe"
- integrity sha1-8oGUibvGX9bTKL5yu+K5XdfofP4=
-
-"semver@2 || 3 || 4 || 5", semver@^5.6.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-serialize-javascript@^1.4.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
- integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==
-
-set-blocking@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
- integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-setimmediate@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
- integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
-
-setprototypeof@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
- integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
-
-sha.js@^2.4.0, sha.js@^2.4.8:
- version "2.4.11"
- resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
- integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-shebang-command@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
- integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
- dependencies:
- shebang-regex "^1.0.0"
-
-shebang-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
- integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
-
-signal-exit@^3.0.0:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-sort-keys@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
- integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0=
- dependencies:
- is-plain-obj "^1.0.0"
-
-source-list-map@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
- integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
-
-source-map@0.1.x:
- version "0.1.43"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
- integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=
- dependencies:
- amdefine ">=0.0.4"
-
-source-map@^0.5.3, source-map@^0.5.6:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
- integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-
-source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-spdx-correct@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
- integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
- dependencies:
- spdx-expression-parse "^3.0.0"
- spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
- integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-
-spdx-expression-parse@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
- integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
- dependencies:
- spdx-exceptions "^2.1.0"
- spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
- version "3.0.11"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95"
- integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
-ssri@^5.2.4:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
- integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
- dependencies:
- safe-buffer "^5.1.1"
-
-"statuses@>= 1.5.0 < 2":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
- integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-
-stream-browserify@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
- integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
- dependencies:
- inherits "~2.0.1"
- readable-stream "^2.0.2"
-
-stream-each@^1.1.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
- integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
- dependencies:
- end-of-stream "^1.1.0"
- stream-shift "^1.0.0"
-
-stream-http@^2.7.2:
- version "2.8.3"
- resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
- integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
- dependencies:
- builtin-status-codes "^3.0.0"
- inherits "^2.0.1"
- readable-stream "^2.3.6"
- to-arraybuffer "^1.0.0"
- xtend "^4.0.0"
-
-stream-shift@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
- integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
-
-strict-uri-encode@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
- integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
-
-string-width@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-string-width@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
-string_decoder@^1.0.0, string_decoder@^1.1.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
- integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
- dependencies:
- safe-buffer "~5.2.0"
-
-string_decoder@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
- dependencies:
- safe-buffer "~5.1.0"
-
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
- dependencies:
- ansi-regex "^3.0.0"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
- integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
-
-strip-eof@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
- integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-
-style-loader@^0.23.1:
- version "0.23.1"
- resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
- integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==
- dependencies:
- loader-utils "^1.1.0"
- schema-utils "^1.0.0"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
- integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-
-supports-color@^3.2.3:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
- integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
- dependencies:
- has-flag "^1.0.0"
-
-supports-color@^4.2.1:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
- integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=
- dependencies:
- has-flag "^2.0.0"
-
-supports-color@^5.3.0, supports-color@^5.4.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
- integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
- dependencies:
- has-flag "^3.0.0"
-
-supports-preserve-symlinks-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-
-svgo@^0.7.0:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
- integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=
- dependencies:
- coa "~1.0.1"
- colors "~1.1.2"
- csso "~2.3.1"
- js-yaml "~3.7.0"
- mkdirp "~0.5.1"
- sax "~1.2.1"
- whet.extend "~0.9.9"
-
-tapable@^0.2.7:
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8"
- integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==
-
-through2@^2.0.0:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
- integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
- dependencies:
- readable-stream "~2.3.6"
- xtend "~4.0.1"
-
-timers-browserify@^2.0.4:
- version "2.0.12"
- resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
- integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
- dependencies:
- setimmediate "^1.0.4"
-
-to-arraybuffer@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
- integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
-
-toidentifier@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
- integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+ version: 4.3.0
+ resolution: "dropzone@https://github.com/CenterForOpenScience/dropzone.git#commit=aba21eb6b82cc823ac7a7a53d6e035791c082bae"
+ checksum: 10c0/3512cf3c01a4bacfccebb9e9e99c78af0a1e5adf5e89a31fd5316b9d1cd396562f86727a7cb65d1dc57626a9557db6c8f11d96b98d405a2cf1409f35ede85590
+ languageName: node
+ linkType: hard
+
+"duplexify@npm:^3.4.2, duplexify@npm:^3.6.0":
+ version: 3.7.1
+ resolution: "duplexify@npm:3.7.1"
+ dependencies:
+ end-of-stream: "npm:^1.0.0"
+ inherits: "npm:^2.0.1"
+ readable-stream: "npm:^2.0.0"
+ stream-shift: "npm:^1.0.0"
+ checksum: 10c0/59d1440c1b4e3a4db35ae96933392703ce83518db1828d06b9b6322920d6cbbf0b7159e88be120385fe459e77f1eb0c7622f26e9ec1f47c9ff05c2b35747dbd3
+ languageName: node
+ linkType: hard
+
+"electron-to-chromium@npm:^1.2.7":
+ version: 1.4.71
+ resolution: "electron-to-chromium@npm:1.4.71"
+ checksum: 10c0/849e48d95b26a458485c5581c051fcd61594b6cb5a461871019d986097f8abe1efc405db9add00f73fbfdbf92bb0025c8c64410b06fecce835430c3bb88f7fdb
+ languageName: node
+ linkType: hard
+
+"elliptic@npm:^6.5.3":
+ version: 6.5.4
+ resolution: "elliptic@npm:6.5.4"
+ dependencies:
+ bn.js: "npm:^4.11.9"
+ brorand: "npm:^1.1.0"
+ hash.js: "npm:^1.0.0"
+ hmac-drbg: "npm:^1.0.1"
+ inherits: "npm:^2.0.4"
+ minimalistic-assert: "npm:^1.0.1"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2
+ languageName: node
+ linkType: hard
+
+"emojis-list@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "emojis-list@npm:2.1.0"
+ checksum: 10c0/bbb941223bfb3e38054cb52ed1b3098a8dac0a90fdd2699eb8a3af3b2172cdc4af0932e05c3edd52e814997c8f45cf1d7f5e86e9ecdcd4e2390a0f27e6914db5
+ languageName: node
+ linkType: hard
+
+"emojis-list@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "emojis-list@npm:3.0.0"
+ checksum: 10c0/7dc4394b7b910444910ad64b812392159a21e1a7ecc637c775a440227dcb4f80eff7fe61f4453a7d7603fa23d23d30cc93fe9e4b5ed985b88d6441cd4a35117b
+ languageName: node
+ linkType: hard
+
+"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0":
+ version: 1.4.4
+ resolution: "end-of-stream@npm:1.4.4"
+ dependencies:
+ once: "npm:^1.4.0"
+ checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975
+ languageName: node
+ linkType: hard
+
+"enhanced-resolve@npm:^3.4.0":
+ version: 3.4.1
+ resolution: "enhanced-resolve@npm:3.4.1"
+ dependencies:
+ graceful-fs: "npm:^4.1.2"
+ memory-fs: "npm:^0.4.0"
+ object-assign: "npm:^4.0.1"
+ tapable: "npm:^0.2.7"
+ checksum: 10c0/91f2da7e8e5ab2376823843a0e0176f683cfdb5749efbb6e1f26580b285593bb5b69006a1ae5e068c21ab1eb90271eec8b8fd6aa3ac36cc6f1f6de4d37a06456
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
+ languageName: node
+ linkType: hard
+
+"errno@npm:^0.1.1, errno@npm:^0.1.3, errno@npm:~0.1.7":
+ version: 0.1.8
+ resolution: "errno@npm:0.1.8"
+ dependencies:
+ prr: "npm:~1.0.1"
+ bin:
+ errno: cli.js
+ checksum: 10c0/83758951967ec57bf00b5f5b7dc797e6d65a6171e57ea57adcf1bd1a0b477fd9b5b35fae5be1ff18f4090ed156bce1db749fe7e317aac19d485a5d150f6a4936
+ languageName: node
+ linkType: hard
+
+"error-ex@npm:^1.2.0":
+ version: 1.3.2
+ resolution: "error-ex@npm:1.3.2"
+ dependencies:
+ is-arrayish: "npm:^0.2.1"
+ checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce
+ languageName: node
+ linkType: hard
+
+"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.46, es5-ext@npm:^0.10.50, es5-ext@npm:~0.10.14":
+ version: 0.10.53
+ resolution: "es5-ext@npm:0.10.53"
+ dependencies:
+ es6-iterator: "npm:~2.0.3"
+ es6-symbol: "npm:~3.1.3"
+ next-tick: "npm:~1.0.0"
+ checksum: 10c0/02989b89e777264756696baf64b6daf54e0be631b09870dfab8473e81129303c2791a001bf1f06bb38bf008403a0daad02e8001cb419ad8e4430452400ecd771
+ languageName: node
+ linkType: hard
+
+"es6-iterator@npm:^2.0.3, es6-iterator@npm:~2.0.1, es6-iterator@npm:~2.0.3":
+ version: 2.0.3
+ resolution: "es6-iterator@npm:2.0.3"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:^0.10.35"
+ es6-symbol: "npm:^3.1.1"
+ checksum: 10c0/91f20b799dba28fb05bf623c31857fc1524a0f1c444903beccaf8929ad196c8c9ded233e5ac7214fc63a92b3f25b64b7f2737fcca8b1f92d2d96cf3ac902f5d8
+ languageName: node
+ linkType: hard
+
+"es6-map@npm:^0.1.3":
+ version: 0.1.5
+ resolution: "es6-map@npm:0.1.5"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:~0.10.14"
+ es6-iterator: "npm:~2.0.1"
+ es6-set: "npm:~0.1.5"
+ es6-symbol: "npm:~3.1.1"
+ event-emitter: "npm:~0.3.5"
+ checksum: 10c0/62fe1a90ead1704bed699cb9c975e642023f590d5338c2a640d60ce0a846de7d5197561393ac03dd11473b96087cf8793c9e4836fe05ad4d2ef6afda6b9a3511
+ languageName: node
+ linkType: hard
+
+"es6-set@npm:~0.1.5":
+ version: 0.1.5
+ resolution: "es6-set@npm:0.1.5"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:~0.10.14"
+ es6-iterator: "npm:~2.0.1"
+ es6-symbol: "npm:3.1.1"
+ event-emitter: "npm:~0.3.5"
+ checksum: 10c0/a1fe925f77bd529b7b5135ca1a8bc9ff378fa0e3fd9686f3ac1b8e87eb00fbffc100e81a3c44262cd324cbfcc772d7a75ca5471e3fb24247ac85c5beb6af0d14
+ languageName: node
+ linkType: hard
+
+"es6-symbol@npm:3.1.1":
+ version: 3.1.1
+ resolution: "es6-symbol@npm:3.1.1"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:~0.10.14"
+ checksum: 10c0/eb4ec788a99dc2c04e5e9abd90f478991425a881eced99a7165eada0c832bfc9a8fbb76b688c3c3b6e103f94d23e8e19addf9cf18abb537fb918d066d5ce1d7f
+ languageName: node
+ linkType: hard
+
+"es6-symbol@npm:^3.1.1, es6-symbol@npm:~3.1.1, es6-symbol@npm:~3.1.3":
+ version: 3.1.3
+ resolution: "es6-symbol@npm:3.1.3"
+ dependencies:
+ d: "npm:^1.0.1"
+ ext: "npm:^1.1.2"
+ checksum: 10c0/22982f815f00df553a89f4fb74c5048fed85df598482b4bd38dbd173174247949c72982a7d7132a58b147525398400e5f182db59b0916cb49f1e245fb0e22233
+ languageName: node
+ linkType: hard
+
+"es6-weak-map@npm:^2.0.1":
+ version: 2.0.3
+ resolution: "es6-weak-map@npm:2.0.3"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:^0.10.46"
+ es6-iterator: "npm:^2.0.3"
+ es6-symbol: "npm:^3.1.1"
+ checksum: 10c0/460932be9542473dbbddd183e21c15a66cfec1b2c17dae2b514e190d6fb2896b7eb683783d4b36da036609d2e1c93d2815f21b374dfccaf02a8978694c2f7b67
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.3, escape-string-regexp@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "escape-string-regexp@npm:1.0.5"
+ checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371
+ languageName: node
+ linkType: hard
+
+"escope@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "escope@npm:3.6.0"
+ dependencies:
+ es6-map: "npm:^0.1.3"
+ es6-weak-map: "npm:^2.0.1"
+ esrecurse: "npm:^4.1.0"
+ estraverse: "npm:^4.1.1"
+ checksum: 10c0/79cbb30bf126628eb7e586575b2f5fd31b14ea108cd2379c571fe4dc09ea5208f42dacf1cd43a702b59efccb128e9c9e7762d5cd670d2d184a889947aea509e5
+ languageName: node
+ linkType: hard
+
+"esprima@npm:^2.6.0":
+ version: 2.7.3
+ resolution: "esprima@npm:2.7.3"
+ bin:
+ esparse: ./bin/esparse.js
+ esvalidate: ./bin/esvalidate.js
+ checksum: 10c0/6e1e99f280eed2ecd521ae28217c5f7c7a03fd0a1ac913bffd4a4ba278caf32cb8d9fc01e41d4b4bc904617282873dea297d60e1f93ea20156f29994c348a04f
+ languageName: node
+ linkType: hard
+
+"esrecurse@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "esrecurse@npm:4.3.0"
+ dependencies:
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^4.1.1":
+ version: 4.3.0
+ resolution: "estraverse@npm:4.3.0"
+ checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^5.2.0":
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
+ languageName: node
+ linkType: hard
+
+"event-emitter@npm:~0.3.5":
+ version: 0.3.5
+ resolution: "event-emitter@npm:0.3.5"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:~0.10.14"
+ checksum: 10c0/75082fa8ffb3929766d0f0a063bfd6046bd2a80bea2666ebaa0cfd6f4a9116be6647c15667bea77222afc12f5b4071b68d393cf39fdaa0e8e81eda006160aff0
+ languageName: node
+ linkType: hard
+
+"events@npm:^3.0.0":
+ version: 3.3.0
+ resolution: "events@npm:3.3.0"
+ checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
+ languageName: node
+ linkType: hard
+
+"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "evp_bytestokey@npm:1.0.3"
+ dependencies:
+ md5.js: "npm:^1.3.4"
+ node-gyp: "npm:latest"
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99
+ languageName: node
+ linkType: hard
+
+"execa@npm:^0.7.0":
+ version: 0.7.0
+ resolution: "execa@npm:0.7.0"
+ dependencies:
+ cross-spawn: "npm:^5.0.1"
+ get-stream: "npm:^3.0.0"
+ is-stream: "npm:^1.1.0"
+ npm-run-path: "npm:^2.0.0"
+ p-finally: "npm:^1.0.0"
+ signal-exit: "npm:^3.0.0"
+ strip-eof: "npm:^1.0.0"
+ checksum: 10c0/812f1776e2a6b2226532e43c1af87d8a12e26de03a06e7e043f653acf5565e0656f5f6c64d66726fefa17178ac129caaa419a50905934e7c4a846417abb25d4a
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.3
+ resolution: "exponential-backoff@npm:3.1.3"
+ checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267
+ languageName: node
+ linkType: hard
+
+"exports-loader@npm:0.6.3":
+ version: 0.6.3
+ resolution: "exports-loader@npm:0.6.3"
+ dependencies:
+ loader-utils: "npm:0.2.x"
+ source-map: "npm:0.1.x"
+ checksum: 10c0/b793b51b9845e57b207533a02544cf25a35dde1aa71d69f25fa7607294768a3190e52155abf405bcd4a270b524063405ec548c7410e3028d1200c8d1b4d1c338
+ languageName: node
+ linkType: hard
+
+"ext@npm:^1.1.2":
+ version: 1.6.0
+ resolution: "ext@npm:1.6.0"
+ dependencies:
+ type: "npm:^2.5.0"
+ checksum: 10c0/d6ff29ca86fbe4e69743d10702ece124e0239faa435a6c3b2833282787b9eace2c8cbf5d8439d0c85312255d5472d251bf3cd4c4d1b9de8f8a8090e6b43db948
+ languageName: node
+ linkType: hard
+
+"fast-deep-equal@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "fast-deep-equal@npm:1.1.0"
+ checksum: 10c0/2cdcb17ca3c28ea199863de4ff0f4de14722c63bb19d716c1bbb4a661479413a0cbfb27e8596d34204e4525f0de11ff7c8ac6a27673c961bd0f37d0e48f9c743
+ languageName: node
+ linkType: hard
+
+"fast-deep-equal@npm:^3.1.1":
+ version: 3.1.3
+ resolution: "fast-deep-equal@npm:3.1.3"
+ checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
+ languageName: node
+ linkType: hard
+
+"fast-json-stable-stringify@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fast-json-stable-stringify@npm:2.1.0"
+ checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
+ languageName: node
+ linkType: hard
+
+"fastparse@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "fastparse@npm:1.1.2"
+ checksum: 10c0/c08d6e7ef10c0928426c1963dd4593e2baaf44d223ab1e5ba5d7b30470144b3a4ecb3605958b73754cea3f857ecef00b67c885f07ca2c312b38b67d9d88b84b5
+ languageName: node
+ linkType: hard
+
+"fdir@npm:^6.5.0":
+ version: 6.5.0
+ resolution: "fdir@npm:6.5.0"
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+ checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f
+ languageName: node
+ linkType: hard
+
+"file-loader@npm:^0.11.2":
+ version: 0.11.2
+ resolution: "file-loader@npm:0.11.2"
+ dependencies:
+ loader-utils: "npm:^1.0.2"
+ checksum: 10c0/55ce4c44ee84926cd8f913ba2e55f55c21425f47bf64b130d46d7d7f1cfb32571c997f726c46b6446b7364f062f90d9a4587792b6114afc4b55460b26915c055
+ languageName: node
+ linkType: hard
+
+"find-cache-dir@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "find-cache-dir@npm:1.0.0"
+ dependencies:
+ commondir: "npm:^1.0.1"
+ make-dir: "npm:^1.0.0"
+ pkg-dir: "npm:^2.0.0"
+ checksum: 10c0/264b706771f30b39385cf921a5576c80ef95cb4c8ef2df8761b8be62326a1537ea63feecf0deac52cd84d6937b312a8d9554b4012a092937ade43a165cd5b6f9
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^2.0.0, find-up@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "find-up@npm:2.1.0"
+ dependencies:
+ locate-path: "npm:^2.0.0"
+ checksum: 10c0/c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840
+ languageName: node
+ linkType: hard
+
+"flatten@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "flatten@npm:1.0.3"
+ checksum: 10c0/9f9b1f3dcd05be057bb83ec27f2513da5306e7bfc0cf8bd839ab423eb1b0f99683a25c97b48fafd5959819159659ce9f1397623a46f89a8577ba095fcf5fb753
+ languageName: node
+ linkType: hard
+
+"flush-write-stream@npm:^1.0.0":
+ version: 1.1.1
+ resolution: "flush-write-stream@npm:1.1.1"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ readable-stream: "npm:^2.3.6"
+ checksum: 10c0/2cd4f65b728d5f388197a03dafabc6a5e4f0c2ed1a2d912e288f7aa1c2996dd90875e55b50cf32c78dca55ad2e2dfae5d3db09b223838388033d87cf5920dd87
+ languageName: node
+ linkType: hard
+
+"from2@npm:^2.1.0":
+ version: 2.3.0
+ resolution: "from2@npm:2.3.0"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ readable-stream: "npm:^2.0.0"
+ checksum: 10c0/f87f7a2e4513244d551454a7f8324ef1f7837864a8701c536417286ec19ff4915606b1dfa8909a21b7591ebd8440ffde3642f7c303690b9a4d7c832d62248aa1
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^3.0.0":
+ version: 3.0.3
+ resolution: "fs-minipass@npm:3.0.3"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
+ languageName: node
+ linkType: hard
+
+"fs-write-stream-atomic@npm:^1.0.8":
+ version: 1.0.10
+ resolution: "fs-write-stream-atomic@npm:1.0.10"
+ dependencies:
+ graceful-fs: "npm:^4.1.2"
+ iferr: "npm:^0.1.5"
+ imurmurhash: "npm:^0.1.4"
+ readable-stream: "npm:1 || 2"
+ checksum: 10c0/293b2b4ed346d35a28f8637a20cb2aef31be86503da501c42c2eda8fefed328bac16ce0e5daa7019f9329d73930c58031eaea2ce0c70f1680943fbfb7cff808b
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "function-bind@npm:1.1.1"
+ checksum: 10c0/60b74b2407e1942e1ed7f8c284f8ef714d0689dcfce5319985a5b7da3fc727f40b4a59ec72dc55aa83365ad7b8fa4fac3a30d93c850a2b452f29ae03dbc10a1e
+ languageName: node
+ linkType: hard
+
+"get-caller-file@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "get-caller-file@npm:1.0.3"
+ checksum: 10c0/763dcee2de8ff60ae7e13a4bad8306205a2fbe108e555686344ddd9ef211b8bebfe459d3a739669257014c59e7cc1e7a44003c21af805c1214673e6a45f06c51
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "get-stream@npm:3.0.0"
+ checksum: 10c0/003f5f3b8870da59c6aafdf6ed7e7b07b48c2f8629cd461bd3900726548b6b8cfa2e14d6b7814fbb08f07a42f4f738407fa70b989928b2783a76b278505bba22
+ languageName: node
+ linkType: hard
+
+"glob-to-regexp@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "glob-to-regexp@npm:0.4.1"
+ checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429
+ languageName: node
+ linkType: hard
+
+"glob@npm:^13.0.0":
+ version: 13.0.6
+ resolution: "glob@npm:13.0.6"
+ dependencies:
+ minimatch: "npm:^10.2.2"
+ minipass: "npm:^7.1.3"
+ path-scurry: "npm:^2.0.2"
+ checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.1.2, glob@npm:^7.1.3":
+ version: 7.2.0
+ resolution: "glob@npm:7.2.0"
+ dependencies:
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.0.4"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10c0/478b40e38be5a3d514e64950e1e07e0ac120585add6a37c98d0ed24d72d9127d734d2a125786073c8deb687096e84ae82b641c441a869ada3a9cc91b68978632
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2":
+ version: 4.2.9
+ resolution: "graceful-fs@npm:4.2.9"
+ checksum: 10c0/2a66760ce6677ca18a24a1ef15d440cfd970086446af1e78c9e9de083c48122d8bd9c3fdc37f8f80f34aae833fa0d9dd52725e75a1c3f433ddd34eece39e7376
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.2.6":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
+ languageName: node
+ linkType: hard
+
+"gsap@npm:3.9.1":
+ version: 3.9.1
+ resolution: "gsap@npm:3.9.1"
+ checksum: 10c0/0be73e9e46972e9456b8af16f9f4eb666cef81a1a56b73f0d1a267ee121d95356cff3d068001b182d71bf20bb1efe3d751161d96ca49d54294d89e56f9f71735
+ languageName: node
+ linkType: hard
+
+"has-ansi@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "has-ansi@npm:2.0.0"
+ dependencies:
+ ansi-regex: "npm:^2.0.0"
+ checksum: 10c0/f54e4887b9f8f3c4bfefd649c48825b3c093987c92c27880ee9898539e6f01aed261e82e73153c3f920fde0db5bf6ebd58deb498ed1debabcb4bc40113ccdf05
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "has-flag@npm:1.0.0"
+ checksum: 10c0/d0ad4bebbbc005edccfa1e2c0600c89375be5663d23f49a129e0f817187405748b0b515abfc5b3c209c92692e39bb0481c83c0ee4df69433d6ffd0242183100b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "has-flag@npm:2.0.0"
+ checksum: 10c0/5e1f136c7f801c2719048bedfabcf834a1ed46276cd4c98c6fcddb89a482f5d6a16df0771a38805cfc2d9010b4de157909e1a71b708e1d339b6e311041bde9b4
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "has-flag@npm:3.0.0"
+ checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473
+ languageName: node
+ linkType: hard
+
+"has@npm:^1.0.1, has@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has@npm:1.0.3"
+ dependencies:
+ function-bind: "npm:^1.1.1"
+ checksum: 10c0/e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b
+ languageName: node
+ linkType: hard
+
+"hash-base@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "hash-base@npm:3.1.0"
+ dependencies:
+ inherits: "npm:^2.0.4"
+ readable-stream: "npm:^3.6.0"
+ safe-buffer: "npm:^5.2.0"
+ checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0
+ languageName: node
+ linkType: hard
+
+"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3":
+ version: 1.1.7
+ resolution: "hash.js@npm:1.1.7"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ minimalistic-assert: "npm:^1.0.1"
+ checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4
+ languageName: node
+ linkType: hard
+
+"highlight.js@npm:~9.18.2":
+ version: 9.18.5
+ resolution: "highlight.js@npm:9.18.5"
+ checksum: 10c0/bad99a5bfd31825769f76718e54372d291b9c3ad197df3c3102066c5baa08ee611f6a2aa6ffdc7e1cd24c7d4025b0b6db965837a14cbc4d4d06f2ad2fbf07a3d
+ languageName: node
+ linkType: hard
+
+"hmac-drbg@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "hmac-drbg@npm:1.0.1"
+ dependencies:
+ hash.js: "npm:^1.0.3"
+ minimalistic-assert: "npm:^1.0.0"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d
+ languageName: node
+ linkType: hard
+
+"hosted-git-info@npm:^2.1.4":
+ version: 2.8.9
+ resolution: "hosted-git-info@npm:2.8.9"
+ checksum: 10c0/317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70
+ languageName: node
+ linkType: hard
+
+"html-comment-regex@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "html-comment-regex@npm:1.1.2"
+ checksum: 10c0/c6fe47e7efbb2e853217854cdf352e53a6d414f87a6029456010250179f9ac2c77ef657dd4e26f4d3930f8def0e2fad015c233a3181a195a59fb4eeda6d333f9
+ languageName: node
+ linkType: hard
+
+"http-cache-semantics@npm:^4.1.1":
+ version: 4.2.0
+ resolution: "http-cache-semantics@npm:4.2.0"
+ checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^7.0.0":
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ debug: "npm:^4.3.4"
+ checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
+ languageName: node
+ linkType: hard
+
+"https-browserify@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "https-browserify@npm:1.0.0"
+ checksum: 10c0/e17b6943bc24ea9b9a7da5714645d808670af75a425f29baffc3284962626efdc1eb3aa9bbffaa6e64028a6ad98af5b09fabcb454a8f918fb686abfdc9e9b8ae
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^7.0.1":
+ version: 7.0.6
+ resolution: "https-proxy-agent@npm:7.0.6"
+ dependencies:
+ agent-base: "npm:^7.1.2"
+ debug: "npm:4"
+ checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.4.4":
+ version: 0.4.24
+ resolution: "iconv-lite@npm:0.4.24"
+ dependencies:
+ safer-buffer: "npm:>= 2.1.2 < 3"
+ checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.7.2":
+ version: 0.7.2
+ resolution: "iconv-lite@npm:0.7.2"
+ dependencies:
+ safer-buffer: "npm:>= 2.1.2 < 3.0.0"
+ checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722
+ languageName: node
+ linkType: hard
+
+"icss-replace-symbols@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "icss-replace-symbols@npm:1.1.0"
+ checksum: 10c0/aaa5b67f82781fccc77bf6df14eaa9177ce3944462ef82b2b9e3b9f17d8fcd90f8851ffd5e6e249ebc5c464bfda07c2eccce2d122274c51c9d5b359b087f7049
+ languageName: node
+ linkType: hard
+
+"icss-utils@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "icss-utils@npm:2.1.0"
+ dependencies:
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/69d3b8fdea58fbf5c26d8dc2d1b7d8ded34fd8fb0800ed60b390e0ae5f596e77b155c587fb62e7642d1064d2d72fc672676df58ef935eba7303d79467e43edbf
+ languageName: node
+ linkType: hard
+
+"ieee754@npm:^1.1.4":
+ version: 1.2.1
+ resolution: "ieee754@npm:1.2.1"
+ checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
+ languageName: node
+ linkType: hard
+
+"iferr@npm:^0.1.5":
+ version: 0.1.5
+ resolution: "iferr@npm:0.1.5"
+ checksum: 10c0/e0669b1757d0501b43a158321945d1cc1fe56f28a972df2f88a5818f05c8853c7669ba5d6cfbbf9a1a312850699de6e528626df108d559005df7e15d16ee334c
+ languageName: node
+ linkType: hard
+
+"image-size@npm:~0.5.0":
+ version: 0.5.5
+ resolution: "image-size@npm:0.5.5"
+ bin:
+ image-size: bin/image-size.js
+ checksum: 10c0/655204163af06732f483a9fe7cce9dff4a29b7b2e88f5c957a5852e8143fa750f5e54b1955a2ca83de99c5220dbd680002d0d4e09140b01433520f4d5a0b1f4c
+ languageName: node
+ linkType: hard
+
+"imports-loader@npm:^0.6.3":
+ version: 0.6.5
+ resolution: "imports-loader@npm:0.6.5"
+ dependencies:
+ loader-utils: "npm:0.2.x"
+ source-map: "npm:0.1.x"
+ checksum: 10c0/177b4a74af7ee4ae058ee3e49c8590ef3f0dfab7ca9e87ef762bf7c7a502235d32108dc4e1641c6fc869581815caff050282693aa47bf3479cade6fd6ff87a5f
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
+ languageName: node
+ linkType: hard
+
+"indexes-of@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "indexes-of@npm:1.0.1"
+ checksum: 10c0/1ea1d2d00173fa38f728acfa00303657e1115361481e52f6cbae47c5d603219006c9357abf6bc323f1fb0fbe937e363bbb19e5c66c12578eea6ec6b7e892bdba
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: "npm:^1.3.0"
+ wrappy: "npm:1"
+ checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2.0.1":
+ version: 2.0.1
+ resolution: "inherits@npm:2.0.1"
+ checksum: 10c0/bfc7b37c21a2cddb272adc65b053b1716612d408bb2c9a4e5c32679dc2b08032aadd67880c405be3dff060a62e45b353fc3d9fa79a3067ad7a3deb6a283cc5c6
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2.0.3":
+ version: 2.0.3
+ resolution: "inherits@npm:2.0.3"
+ checksum: 10c0/6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7
+ languageName: node
+ linkType: hard
+
+"interpret@npm:^1.0.0":
+ version: 1.4.0
+ resolution: "interpret@npm:1.4.0"
+ checksum: 10c0/08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450
+ languageName: node
+ linkType: hard
+
+"invert-kv@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "invert-kv@npm:1.0.0"
+ checksum: 10c0/9ccef12ada8494c56175cc0380b4cea18b6c0a368436f324a30e43a332db90bdfb83cd3a7987b71df359cdf931ce45b7daf35b677da56658565d61068e4bc20b
+ languageName: node
+ linkType: hard
+
+"ip-address@npm:^10.0.1":
+ version: 10.1.0
+ resolution: "ip-address@npm:10.1.0"
+ checksum: 10c0/0103516cfa93f6433b3bd7333fa876eb21263912329bfa47010af5e16934eeeff86f3d2ae700a3744a137839ddfad62b900c7a445607884a49b5d1e32a3d7566
+ languageName: node
+ linkType: hard
+
+"is-absolute-url@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "is-absolute-url@npm:2.1.0"
+ checksum: 10c0/2c324c3118752d82c18afadffbea14d35224e76f37a2ee80e05b209386c46d19bef77b58ede41f7b3be552cde16c6cdb0d884807175a6eb40e8c61281dc67c2f
+ languageName: node
+ linkType: hard
+
+"is-arrayish@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "is-arrayish@npm:0.2.1"
+ checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.8.1":
+ version: 2.8.1
+ resolution: "is-core-module@npm:2.8.1"
+ dependencies:
+ has: "npm:^1.0.3"
+ checksum: 10c0/f1139970deb2ec159c54be154d35cd17d71b9b56c60221ff7c8c328ca7efe20b6d676cef43d08c21966e162bfd5068dcd0ce23e64c77b76a19824563ecd82e0e
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-fullwidth-code-point@npm:1.0.0"
+ dependencies:
+ number-is-nan: "npm:^1.0.0"
+ checksum: 10c0/12acfcf16142f2d431bf6af25d68569d3198e81b9799b4ae41058247aafcc666b0127d64384ea28e67a746372611fcbe9b802f69175287aba466da3eddd5ba0f
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-fullwidth-code-point@npm:2.0.0"
+ checksum: 10c0/e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9
+ languageName: node
+ linkType: hard
+
+"is-plain-obj@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "is-plain-obj@npm:1.1.0"
+ checksum: 10c0/daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-stream@npm:1.1.0"
+ checksum: 10c0/b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002
+ languageName: node
+ linkType: hard
+
+"is-svg@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "is-svg@npm:2.1.0"
+ dependencies:
+ html-comment-regex: "npm:^1.1.0"
+ checksum: 10c0/b2709e619c6159dabd27731c7ff69b73319bc8694b1dd27dc886026a6e1f895f04c1cc9903ca90310d3766a5f2d01a959735ae9a69be71f3cc9545f8206e1bb9
+ languageName: node
+ linkType: hard
+
+"is-what@npm:^3.14.1":
+ version: 3.14.1
+ resolution: "is-what@npm:3.14.1"
+ checksum: 10c0/4b770b85454c877b6929a84fd47c318e1f8c2ff70fd72fd625bc3fde8e0c18a6e57345b6e7aa1ee9fbd1c608d27cfe885df473036c5c2e40cd2187250804a2c7
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^1.0.0, isarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "isarray@npm:1.0.0"
+ checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "isexe@npm:4.0.0"
+ checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce
+ languageName: node
+ linkType: hard
+
+"jquery-ui@npm:>=1.10.4":
+ version: 1.13.1
+ resolution: "jquery-ui@npm:1.13.1"
+ dependencies:
+ jquery: "npm:>=1.8.0 <4.0.0"
+ checksum: 10c0/8e3935b47eaab3a29a8ec3fb93287fae23ffebc2600d6537eda4ab246a19b2b31d7663c0baefbc3af339fa434df80037bb2c7945af41c00f732c00812edde3f3
+ languageName: node
+ linkType: hard
+
+"jquery@npm:>=1.11.0, jquery@npm:>=1.7, jquery@npm:>=1.8.0 <4.0.0, jquery@npm:^3.5.1":
+ version: 3.6.0
+ resolution: "jquery@npm:3.6.0"
+ checksum: 10c0/45a63f8376a8918087c0277b2394dd382fcacff765c41ccbb5009a9336f8c971bf41c6a0519062edc1dff6333d96959c3a3ec55c95eb6c94d5372253d6cbf82f
+ languageName: node
+ linkType: hard
+
+"js-base64@npm:^2.1.9":
+ version: 2.6.4
+ resolution: "js-base64@npm:2.6.4"
+ checksum: 10c0/95d93c4eca0bbe0f2d5ffe8682d9acd23051e5c0ad71873ff5a48dd46a5f19025de9f7b36e63fa3f02f342ae4a8ca4c56e7b590d7300ebb6639ce09675e0fd02
+ languageName: node
+ linkType: hard
+
+"js-cookie@npm:3.0.1":
+ version: 3.0.1
+ resolution: "js-cookie@npm:3.0.1"
+ checksum: 10c0/a7dab91286c49610fb198bcc0d78fbafe9be869cf3cea6f7eaea515abdfdc9d347982fe22316e34666b479a0701119482d46faa3a350a3a3404eb954405edf72
+ languageName: node
+ linkType: hard
+
+"js-md5@npm:^0.7.3":
+ version: 0.7.3
+ resolution: "js-md5@npm:0.7.3"
+ checksum: 10c0/3e7048590c40edb0b8fb290e13a81d6eebbd682c70c520c4853820ae8fe3a3c5e375cfa0ca9a731aa8d8e0ba82cd8f922fea34c737caf72a7f9ab819bb8382a7
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "js-tokens@npm:3.0.2"
+ checksum: 10c0/e3c3ee4d12643d90197628eb022a2884a15f08ea7dcac1ce97fdeee43031fbfc7ede674f2cdbbb582dcd4c94388b22e52d56c6cbeb2ac7d1b57c2f33c405e2ba
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:~3.7.0":
+ version: 3.7.0
+ resolution: "js-yaml@npm:3.7.0"
+ dependencies:
+ argparse: "npm:^1.0.7"
+ esprima: "npm:^2.6.0"
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: 10c0/e236852d4439c7750c810f217ca80631844cfb0e4ab4993349c3e612ee273256d9895e1bb06b3990a3cc42fa1105ffcaa55a6b711f25901c0d803287bdcf52e1
+ languageName: node
+ linkType: hard
+
+"json-loader@npm:^0.5.4":
+ version: 0.5.7
+ resolution: "json-loader@npm:0.5.7"
+ checksum: 10c0/b155b81f644693b5418e595c127c552c34373f749d2d125df24cfe753de6b3b0af88dda5d58e7b65940ed03ec46c19fc3d09f53b932b45c9ae3ca1fb55e44a15
+ languageName: node
+ linkType: hard
+
+"json-schema-traverse@npm:^0.3.0":
+ version: 0.3.1
+ resolution: "json-schema-traverse@npm:0.3.1"
+ checksum: 10c0/462316de759d3dd9278959de17861e8d214c3722e1f0bf3c510daac990009bc2b0e11e89f9b299d765cd52569db74c8fa1a371a2b08c514a07998fb2f10eb57e
+ languageName: node
+ linkType: hard
+
+"json-schema-traverse@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "json-schema-traverse@npm:0.4.1"
+ checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
+ languageName: node
+ linkType: hard
+
+"json5@npm:^0.5.0, json5@npm:^0.5.1":
+ version: 0.5.1
+ resolution: "json5@npm:0.5.1"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/aca0ab7ccf1883d3fc2ecc16219bc389716a773f774552817deaadb549acc0bb502e317a81946fc0a48f9eb6e0822cf1dc5a097009203f2c94de84c8db02a1f3
+ languageName: node
+ linkType: hard
+
+"json5@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "json5@npm:1.0.1"
+ dependencies:
+ minimist: "npm:^1.2.0"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/7f75dd797151680a4e14c4224c1343b32a43272aa6e6333ddec2b0822df4ea116971689b251879a1248592da24f7929902c13f83d7390c3f3d44f18e8e9719f5
+ languageName: node
+ linkType: hard
+
+"jstimezonedetect@npm:^1.0.6":
+ version: 1.0.7
+ resolution: "jstimezonedetect@npm:1.0.7"
+ checksum: 10c0/8ea4eb123e007bf585cd5ed82ef8033bdeb5dcd4f4ffdec4cd9c69dbb1c7497370db931f024721edcab659eabe89c8f9ef1f882e84369e70aec1630584e4f019
+ languageName: node
+ linkType: hard
+
+"knockout.validation@npm:^2.0.2":
+ version: 2.0.4
+ resolution: "knockout.validation@npm:2.0.4"
+ peerDependencies:
+ knockout: ">=2.3.0"
+ checksum: 10c0/fac8708108303b307b37b4382c4206004bdf216b85226835e868d731e872981dcd8c222ec91cc6028874e00ae43f29c1297bb60a87b17f06e5e72525c150763b
+ languageName: node
+ linkType: hard
+
+"knockout@npm:~3.4.2":
+ version: 3.4.2
+ resolution: "knockout@npm:3.4.2"
+ checksum: 10c0/dd2f4973f72f54eeef2fd4306957a7158910c6046d636432ac0decae796be66925bf7d227b1f0b5c1fe3da479d7fbe15f6d518e4d5cfd812dd7bb8511907a465
+ languageName: node
+ linkType: hard
+
+"lcid@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "lcid@npm:1.0.0"
+ dependencies:
+ invert-kv: "npm:^1.0.0"
+ checksum: 10c0/87fb32196c3c80458778f34f71c042e114f3134a3c86c0d60ee9c94f0750e467d7ca0c005a5224ffd9d49a6e449b5e5c31e1544f1827765a0ba8747298f5980e
+ languageName: node
+ linkType: hard
+
+"less@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "less@npm:4.1.2"
+ dependencies:
+ copy-anything: "npm:^2.0.1"
+ errno: "npm:^0.1.1"
+ graceful-fs: "npm:^4.1.2"
+ image-size: "npm:~0.5.0"
+ make-dir: "npm:^2.1.0"
+ mime: "npm:^1.4.1"
+ needle: "npm:^2.5.2"
+ parse-node-version: "npm:^1.0.1"
+ source-map: "npm:~0.6.0"
+ tslib: "npm:^2.3.0"
+ dependenciesMeta:
+ errno:
+ optional: true
+ graceful-fs:
+ optional: true
+ image-size:
+ optional: true
+ make-dir:
+ optional: true
+ mime:
+ optional: true
+ needle:
+ optional: true
+ source-map:
+ optional: true
+ bin:
+ lessc: bin/lessc
+ checksum: 10c0/fa5ea22f81ce12d127881742d7a2b6666727751214c6f014a7793ebb7e406a153a46bb3c77c86adf68e1b79bc7477a156f84b01dfff56c532591fbb094194b5a
+ languageName: node
+ linkType: hard
+
+"linkifyjs@npm:^3.0.5":
+ version: 3.0.5
+ resolution: "linkifyjs@npm:3.0.5"
+ checksum: 10c0/a5d6565e457fabcae73400923f9999cf0651108378e61bb112b0d651d0d260450d22107d31127fcc38cfe9c3604bb59dfcc25db388a1eeabc09d53a5177da7fc
+ languageName: node
+ linkType: hard
+
+"load-json-file@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "load-json-file@npm:2.0.0"
+ dependencies:
+ graceful-fs: "npm:^4.1.2"
+ parse-json: "npm:^2.2.0"
+ pify: "npm:^2.0.0"
+ strip-bom: "npm:^3.0.0"
+ checksum: 10c0/15cf1259361325fadfc54cd4ecc5d6729103c8873492001ba5473fb1ef753000f680c887db6c86fec69a4ede009efeb8c0c0c77b2a31bc54d2793767e25577c9
+ languageName: node
+ linkType: hard
+
+"loader-runner@npm:^2.3.0":
+ version: 2.4.0
+ resolution: "loader-runner@npm:2.4.0"
+ checksum: 10c0/1f723bd8318453c2d073d7befbf891ba6d2a02f22622688bf7d22e7ba527a0f9476c7fdfedc6bfa2b55c0389d9f406f3a5239ed1b33c9088d77cfed085086a1e
+ languageName: node
+ linkType: hard
+
+"loader-utils@npm:0.2.x":
+ version: 0.2.17
+ resolution: "loader-utils@npm:0.2.17"
+ dependencies:
+ big.js: "npm:^3.1.3"
+ emojis-list: "npm:^2.0.0"
+ json5: "npm:^0.5.0"
+ object-assign: "npm:^4.0.1"
+ checksum: 10c0/d6b65a0d460d2c8621f72e0471127895f4a25ea3a5d2caabf0710c8e58a904af5876834c6ad89d2fbab35e74c6e7f2f4f8137559e6e4e84b74957f4592bcab0b
+ languageName: node
+ linkType: hard
+
+"loader-utils@npm:^1.0.2, loader-utils@npm:^1.1.0":
+ version: 1.4.0
+ resolution: "loader-utils@npm:1.4.0"
+ dependencies:
+ big.js: "npm:^5.2.2"
+ emojis-list: "npm:^3.0.0"
+ json5: "npm:^1.0.1"
+ checksum: 10c0/b3f383612c23c0adf535d61709fb3eaf864afa54dae45608e3831156b89b4b05a0a4ddc6db7d742071babe872750ba3f4f9ce89326d94f6e096dbed978fa424e
+ languageName: node
+ linkType: hard
+
+"loaders.css@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "loaders.css@npm:0.1.2"
+ checksum: 10c0/962b49327a906fa3d9dd4551ef46c6ba8e0f56fb700b1ab20843169a0dc90b1992a08fa55ddaf42feb5700833ecf8b389cb6f1b8c20dd2594037b1d74a5e9e50
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "locate-path@npm:2.0.0"
+ dependencies:
+ p-locate: "npm:^2.0.0"
+ path-exists: "npm:^3.0.0"
+ checksum: 10c0/24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133
+ languageName: node
+ linkType: hard
+
+"lodash.camelcase@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "lodash.camelcase@npm:4.3.0"
+ checksum: 10c0/fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432
+ languageName: node
+ linkType: hard
+
+"lodash.find@npm:^4.3.0":
+ version: 4.6.0
+ resolution: "lodash.find@npm:4.6.0"
+ checksum: 10c0/0238f3abc0b87aa441820ab0ab31a81156e1809a66285f454fbea18cbdf4d16572d504dd9e96c22df8a36b81d0272bca9205d09d217d61f9b53fa3358023377f
+ languageName: node
+ linkType: hard
+
+"lodash.get@npm:^4.2.1":
+ version: 4.4.2
+ resolution: "lodash.get@npm:4.4.2"
+ checksum: 10c0/48f40d471a1654397ed41685495acb31498d5ed696185ac8973daef424a749ca0c7871bf7b665d5c14f5cc479394479e0307e781f61d5573831769593411be6e
+ languageName: node
+ linkType: hard
+
+"lodash.has@npm:^4.5.2":
+ version: 4.5.2
+ resolution: "lodash.has@npm:4.5.2"
+ checksum: 10c0/3ffa9e549f321996a5fdf6204494c035ff550b2df703f936a448c553131bbb55492b4e7995bb13500648b50b268ed8afc974a7a0c0a43744d28d61cc95cb1ffe
+ languageName: node
+ linkType: hard
+
+"lodash.includes@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "lodash.includes@npm:4.3.0"
+ checksum: 10c0/7ca498b9b75bf602d04e48c0adb842dfc7d90f77bcb2a91a2b2be34a723ad24bc1c8b3683ec6b2552a90f216c723cdea530ddb11a3320e08fa38265703978f4b
+ languageName: node
+ linkType: hard
+
+"lodash.memoize@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "lodash.memoize@npm:4.1.2"
+ checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8
+ languageName: node
+ linkType: hard
+
+"lodash.set@npm:^4.3.2":
+ version: 4.3.2
+ resolution: "lodash.set@npm:4.3.2"
+ checksum: 10c0/c641d31905e51df43170dce8a1d11a1cff11356e2e2e75fe2615995408e9687d58c3e1d64c3c284c2df2bc519f79a98af737d2944d382ff82ffd244ff6075c29
+ languageName: node
+ linkType: hard
+
+"lodash.uniq@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "lodash.uniq@npm:4.5.0"
+ checksum: 10c0/262d400bb0952f112162a320cc4a75dea4f66078b9e7e3075ffbc9c6aa30b3e9df3cf20e7da7d566105e1ccf7804e4fbd7d804eee0b53de05d83f16ffbf41c5e
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.14":
+ version: 4.17.21
+ resolution: "lodash@npm:4.17.21"
+ checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1":
+ version: 11.2.7
+ resolution: "lru-cache@npm:11.2.7"
+ checksum: 10c0/549cdb59488baa617135fc12159cafb1a97f91079f35093bb3bcad72e849fc64ace636d244212c181dfdf1a99bbfa90757ff303f98561958ee4d0f885d9bd5f7
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^4.0.1, lru-cache@npm:^4.1.1":
+ version: 4.1.5
+ resolution: "lru-cache@npm:4.1.5"
+ dependencies:
+ pseudomap: "npm:^1.0.2"
+ yallist: "npm:^2.1.2"
+ checksum: 10c0/1ca5306814e5add9ec63556d6fd9b24a4ecdeaef8e9cea52cbf30301e6b88c8d8ddc7cab45b59b56eb763e6c45af911585dc89925a074ab65e1502e3fe8103cf
+ languageName: node
+ linkType: hard
+
+"make-dir@npm:^1.0.0":
+ version: 1.3.0
+ resolution: "make-dir@npm:1.3.0"
+ dependencies:
+ pify: "npm:^3.0.0"
+ checksum: 10c0/5eb94f47d7ef41d89d1b8eef6539b8950d5bd99eeba093a942bfd327faa37d2d62227526b88b73633243a2ec7972d21eb0f4e5d62ae4e02a79e389f4a7bb3022
+ languageName: node
+ linkType: hard
+
+"make-dir@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "make-dir@npm:2.1.0"
+ dependencies:
+ pify: "npm:^4.0.1"
+ semver: "npm:^5.6.0"
+ checksum: 10c0/ada869944d866229819735bee5548944caef560d7a8536ecbc6536edca28c72add47cc4f6fc39c54fb25d06b58da1f8994cf7d9df7dadea047064749efc085d8
+ languageName: node
+ linkType: hard
+
+"make-fetch-happen@npm:^15.0.0":
+ version: 15.0.5
+ resolution: "make-fetch-happen@npm:15.0.5"
+ dependencies:
+ "@gar/promise-retry": "npm:^1.0.0"
+ "@npmcli/agent": "npm:^4.0.0"
+ "@npmcli/redact": "npm:^4.0.0"
+ cacache: "npm:^20.0.1"
+ http-cache-semantics: "npm:^4.1.1"
+ minipass: "npm:^7.0.2"
+ minipass-fetch: "npm:^5.0.0"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ negotiator: "npm:^1.0.0"
+ proc-log: "npm:^6.0.0"
+ ssri: "npm:^13.0.0"
+ checksum: 10c0/527580eb5e5476e6ad07a4e3bd017d13e935f4be815674b442081ae5a721c13d3af5715006619e6be79a85723067e047f83a0c9e699f41d8cec43609a8de4f7b
+ languageName: node
+ linkType: hard
+
+"math-expression-evaluator@npm:^1.2.14":
+ version: 1.3.14
+ resolution: "math-expression-evaluator@npm:1.3.14"
+ checksum: 10c0/a98dcb54510f57d9d78c66f73c6ee5e8e3a69d7dcfd3f0e611bc6957a764f23fed3b342888fca79ed49b865b09338581d19bb3acc4d788ee308618c7c7cdca10
+ languageName: node
+ linkType: hard
+
+"md5.js@npm:^1.3.4":
+ version: 1.3.5
+ resolution: "md5.js@npm:1.3.5"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5
+ languageName: node
+ linkType: hard
+
+"mem@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "mem@npm:1.1.0"
+ dependencies:
+ mimic-fn: "npm:^1.0.0"
+ checksum: 10c0/f5150bb975a7d641375d3c1962426bf338952142a429ce01e9792b03df9b63d5911d3feb7e5e50f406531ace646f3fbe39b7dc716c729d617a28b3bbdc799649
+ languageName: node
+ linkType: hard
+
+"memory-fs@npm:^0.4.0, memory-fs@npm:~0.4.1":
+ version: 0.4.1
+ resolution: "memory-fs@npm:0.4.1"
+ dependencies:
+ errno: "npm:^0.1.3"
+ readable-stream: "npm:^2.0.1"
+ checksum: 10c0/f114c44ad8285103cb0e71420cf5bb628d3eb6cbd918197f5951590ff56ba2072f4a97924949c170320cdf180d2da4e8d16a0edd92ba0ca2d2de51dc932841e2
+ languageName: node
+ linkType: hard
+
+"miller-rabin@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "miller-rabin@npm:4.0.1"
+ dependencies:
+ bn.js: "npm:^4.0.0"
+ brorand: "npm:^1.0.1"
+ bin:
+ miller-rabin: bin/miller-rabin
+ checksum: 10c0/26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:~2.1.34":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: "npm:1.52.0"
+ checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
+ languageName: node
+ linkType: hard
+
+"mime@npm:^1.4.1":
+ version: 1.6.0
+ resolution: "mime@npm:1.6.0"
+ bin:
+ mime: cli.js
+ checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^1.0.0":
+ version: 1.2.0
+ resolution: "mimic-fn@npm:1.2.0"
+ checksum: 10c0/ad55214aec6094c0af4c0beec1a13787556f8116ed88807cf3f05828500f21f93a9482326bcd5a077ae91e3e8795b4e76b5b4c8bb12237ff0e4043a365516cba
+ languageName: node
+ linkType: hard
+
+"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-assert@npm:1.0.1"
+ checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd
+ languageName: node
+ linkType: hard
+
+"minimalistic-crypto-utils@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-crypto-utils@npm:1.0.1"
+ checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^10.2.2":
+ version: 10.2.4
+ resolution: "minimatch@npm:10.2.4"
+ dependencies:
+ brace-expansion: "npm:^5.0.2"
+ checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.0.4":
+ version: 3.0.5
+ resolution: "minimatch@npm:3.0.5"
+ dependencies:
+ brace-expansion: "npm:^1.1.7"
+ checksum: 10c0/f398652d0d260137c289c270a4ac98ebe0a27cd316fa0fac72b096e96cbdc89f71d80d47ac7065c716ba3b0b730783b19180bd85a35f9247535d2adfe96bba76
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.0, minimist@npm:^1.2.5":
+ version: 1.2.5
+ resolution: "minimist@npm:1.2.5"
+ checksum: 10c0/c143b0c199af4df7a55c7a37b6465cdd438acdc6a3a345ba0fe9d94dfcc2042263f650879bc73be607c843deeaeaadf39c864e55bc6d80b36a025eca1a062ee7
+ languageName: node
+ linkType: hard
+
+"minipass-collect@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "minipass-collect@npm:2.0.1"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
+ languageName: node
+ linkType: hard
+
+"minipass-fetch@npm:^5.0.0":
+ version: 5.0.2
+ resolution: "minipass-fetch@npm:5.0.2"
+ dependencies:
+ iconv-lite: "npm:^0.7.2"
+ minipass: "npm:^7.0.3"
+ minipass-sized: "npm:^2.0.0"
+ minizlib: "npm:^3.0.1"
+ dependenciesMeta:
+ iconv-lite:
+ optional: true
+ checksum: 10c0/ce4ab9f21cfabaead2097d95dd33f485af8072fbc6b19611bce694965393453a1639d641c2bcf1c48f2ea7d41ea7fab8278373f1d0bee4e63b0a5b2cdd0ef649
+ languageName: node
+ linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
+ languageName: node
+ linkType: hard
+
+"minipass-pipeline@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "minipass-pipeline@npm:1.2.4"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
+ languageName: node
+ linkType: hard
+
+"minipass-sized@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "minipass-sized@npm:2.0.0"
+ dependencies:
+ minipass: "npm:^7.1.2"
+ checksum: 10c0/f9201696a6f6d68610d04c9c83e3d2e5cb9c026aae1c8cbf7e17f386105cb79c1bb088dbc21bf0b1eb4f3fb5df384fd1e7aa3bf1f33868c416ae8c8a92679db8
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^3.0.0":
+ version: 3.3.6
+ resolution: "minipass@npm:3.3.6"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3":
+ version: 7.1.3
+ resolution: "minipass@npm:7.1.3"
+ checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "minizlib@npm:3.1.0"
+ dependencies:
+ minipass: "npm:^7.1.2"
+ checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec
+ languageName: node
+ linkType: hard
+
+"mississippi@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "mississippi@npm:2.0.0"
+ dependencies:
+ concat-stream: "npm:^1.5.0"
+ duplexify: "npm:^3.4.2"
+ end-of-stream: "npm:^1.1.0"
+ flush-write-stream: "npm:^1.0.0"
+ from2: "npm:^2.1.0"
+ parallel-transform: "npm:^1.1.0"
+ pump: "npm:^2.0.1"
+ pumpify: "npm:^1.3.3"
+ stream-each: "npm:^1.1.0"
+ through2: "npm:^2.0.0"
+ checksum: 10c0/f84beaa40491c2466c4a3d15025ceb1ecc822a8e5ef4f6e5622aeb832b32e4eda056c3982337ae2c1e4b3b77fb431af4d3874923c26dee0c026601547589b2db
+ languageName: node
+ linkType: hard
+
+"mithril@npm:0.2.0":
+ version: 0.2.0
+ resolution: "mithril@npm:0.2.0"
+ checksum: 10c0/9abb48c285f1d31744bcafd4cb3f6631bf3dc6ff3c653cf97ee01b646d4736f0b25f7aef9423740b23a13e6dd0a6593a6807e2faa2f021a285ae855a72f1952f
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^0.5.1, mkdirp@npm:~0.5.0, mkdirp@npm:~0.5.1":
+ version: 0.5.5
+ resolution: "mkdirp@npm:0.5.5"
+ dependencies:
+ minimist: "npm:^1.2.5"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: 10c0/4469faeeba703bc46b7cdbe3097d6373747a581eb8b556ce41c8fd25a826eb3254466c6522ba823c2edb0b6f0da7beb91cf71f040bc4e361534a3e67f0994bd0
+ languageName: node
+ linkType: hard
+
+"moment@npm:^2.14.1":
+ version: 2.29.1
+ resolution: "moment@npm:2.29.1"
+ checksum: 10c0/2617e383c0e0f910696214d026b9742173ea1916775d2023b39fd7d5fc3fae694f67c17876d154e246b139ad2a8028c42b2898c66cd665316b61c18453a5103f
+ languageName: node
+ linkType: hard
+
+"move-concurrently@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "move-concurrently@npm:1.0.1"
+ dependencies:
+ aproba: "npm:^1.1.1"
+ copy-concurrently: "npm:^1.0.0"
+ fs-write-stream-atomic: "npm:^1.0.8"
+ mkdirp: "npm:^0.5.1"
+ rimraf: "npm:^2.5.4"
+ run-queue: "npm:^1.0.3"
+ checksum: 10c0/0fe81acf3bbbc322013c2f4ee4a48cf8d180a7d925fb9284c0f1f444e862d7eb0421ee074b68d35357a12f0d5e94a322049dc9da480672331b5b8895743eb66a
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.1.1, ms@npm:^2.1.3":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
+ languageName: node
+ linkType: hard
+
+"needle@npm:^2.5.2":
+ version: 2.9.1
+ resolution: "needle@npm:2.9.1"
+ dependencies:
+ debug: "npm:^3.2.6"
+ iconv-lite: "npm:^0.4.4"
+ sax: "npm:^1.2.4"
+ bin:
+ needle: ./bin/needle
+ checksum: 10c0/65a7eaeaf4ca3410de492957474592af9838e02875273d9232ff6cff331393c58a95e48c592bd9a05f575e5bb9b08543d6cfd19eb96595dbd3d7da2c5fe1accb
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "negotiator@npm:1.0.0"
+ checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b
+ languageName: node
+ linkType: hard
+
+"next-tick@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "next-tick@npm:1.0.0"
+ checksum: 10c0/851058d7af979a94743ae0ae4c71f0257662a2b7129e0a159273d13782401823c154ee2e49a790e979e5b92126dbc2b5eb522eaff631b997ddf95903e7c5e9cc
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 12.2.0
+ resolution: "node-gyp@npm:12.2.0"
+ dependencies:
+ env-paths: "npm:^2.2.0"
+ exponential-backoff: "npm:^3.1.1"
+ graceful-fs: "npm:^4.2.6"
+ make-fetch-happen: "npm:^15.0.0"
+ nopt: "npm:^9.0.0"
+ proc-log: "npm:^6.0.0"
+ semver: "npm:^7.3.5"
+ tar: "npm:^7.5.4"
+ tinyglobby: "npm:^0.2.12"
+ which: "npm:^6.0.0"
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 10c0/3ed046746a5a7d90950cd8b0547332b06598443f31fe213ef4332a7174c7b7d259e1704835feda79b87d3f02e59d7791842aac60642ede4396ab25fdf0f8f759
+ languageName: node
+ linkType: hard
+
+"node-libs-browser@npm:^2.0.0":
+ version: 2.2.1
+ resolution: "node-libs-browser@npm:2.2.1"
+ dependencies:
+ assert: "npm:^1.1.1"
+ browserify-zlib: "npm:^0.2.0"
+ buffer: "npm:^4.3.0"
+ console-browserify: "npm:^1.1.0"
+ constants-browserify: "npm:^1.0.0"
+ crypto-browserify: "npm:^3.11.0"
+ domain-browser: "npm:^1.1.1"
+ events: "npm:^3.0.0"
+ https-browserify: "npm:^1.0.0"
+ os-browserify: "npm:^0.3.0"
+ path-browserify: "npm:0.0.1"
+ process: "npm:^0.11.10"
+ punycode: "npm:^1.2.4"
+ querystring-es3: "npm:^0.2.0"
+ readable-stream: "npm:^2.3.3"
+ stream-browserify: "npm:^2.0.1"
+ stream-http: "npm:^2.7.2"
+ string_decoder: "npm:^1.0.0"
+ timers-browserify: "npm:^2.0.4"
+ tty-browserify: "npm:0.0.0"
+ url: "npm:^0.11.0"
+ util: "npm:^0.11.0"
+ vm-browserify: "npm:^1.0.1"
+ checksum: 10c0/0e05321a6396408903ed642231d2bca7dd96492d074c7af161ba06a63c95378bd3de50b4105eccbbc02d93ba3da69f0ff5e624bc2a8c92ca462ceb6a403e7986
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^9.0.0":
+ version: 9.0.0
+ resolution: "nopt@npm:9.0.0"
+ dependencies:
+ abbrev: "npm:^4.0.0"
+ bin:
+ nopt: bin/nopt.js
+ checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd
+ languageName: node
+ linkType: hard
+
+"normalize-package-data@npm:^2.3.2":
+ version: 2.5.0
+ resolution: "normalize-package-data@npm:2.5.0"
+ dependencies:
+ hosted-git-info: "npm:^2.1.4"
+ resolve: "npm:^1.10.0"
+ semver: "npm:2 || 3 || 4 || 5"
+ validate-npm-package-license: "npm:^3.0.1"
+ checksum: 10c0/357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504
+ languageName: node
+ linkType: hard
+
+"normalize-range@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "normalize-range@npm:0.1.2"
+ checksum: 10c0/bf39b73a63e0a42ad1a48c2bd1bda5a07ede64a7e2567307a407674e595bcff0fa0d57e8e5f1e7fa5e91000797c7615e13613227aaaa4d6d6e87f5bd5cc95de6
+ languageName: node
+ linkType: hard
+
+"normalize-url@npm:^1.4.0":
+ version: 1.9.1
+ resolution: "normalize-url@npm:1.9.1"
+ dependencies:
+ object-assign: "npm:^4.0.1"
+ prepend-http: "npm:^1.0.0"
+ query-string: "npm:^4.1.0"
+ sort-keys: "npm:^1.0.0"
+ checksum: 10c0/5ecd525f743c3fb5370d2bab8e78446f3e3bd7c0c97a5fd3f0bc0c5f396fbd117d13c9118766128d25ed575755cb539dc33a38419f18ca9d8577c8d1cd7a8daf
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "npm-run-path@npm:2.0.2"
+ dependencies:
+ path-key: "npm:^2.0.0"
+ checksum: 10c0/95549a477886f48346568c97b08c4fda9cdbf7ce8a4fbc2213f36896d0d19249e32d68d7451bdcbca8041b5fba04a6b2c4a618beaf19849505c05b700740f1de
+ languageName: node
+ linkType: hard
+
+"num2fraction@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "num2fraction@npm:1.2.2"
+ checksum: 10c0/3bf17b44af00508a2b0370146629710645c3e3ff3c052893680efe3f4a6ff5c953ce9e54734013b02b35744a49352d54fbc5d8b455fac979047ef17dd8ec74bd
+ languageName: node
+ linkType: hard
+
+"number-is-nan@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "number-is-nan@npm:1.0.1"
+ checksum: 10c0/cb97149006acc5cd512c13c1838223abdf202e76ddfa059c5e8e7507aff2c3a78cd19057516885a2f6f5b576543dc4f7b6f3c997cc7df53ae26c260855466df5
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "object-assign@npm:3.0.0"
+ checksum: 10c0/88d1b93de35a2073df309239486829b8b3252ef86196a0d5e06fae20f9e6e5830a33ccaa1c675bd63191eec4310961797ff577fa586583a92a09ece53e668416
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: "npm:1"
+ checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0
+ languageName: node
+ linkType: hard
+
+"os-browserify@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "os-browserify@npm:0.3.0"
+ checksum: 10c0/6ff32cb1efe2bc6930ad0fd4c50e30c38010aee909eba8d65be60af55efd6cbb48f0287e3649b4e3f3a63dce5a667b23c187c4293a75e557f0d5489d735bcf52
+ languageName: node
+ linkType: hard
+
+"os-locale@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "os-locale@npm:2.1.0"
+ dependencies:
+ execa: "npm:^0.7.0"
+ lcid: "npm:^1.0.0"
+ mem: "npm:^1.1.0"
+ checksum: 10c0/6f1acc060552a59f477ab541e9149a712f93a4d7b5262d070698dbe98cf047f35c7685d759a86dc56c12b76fdfbab1bf7216a74232263efbe7365de2a5d70834
+ languageName: node
+ linkType: hard
+
+"p-finally@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "p-finally@npm:1.0.0"
+ checksum: 10c0/6b8552339a71fe7bd424d01d8451eea92d379a711fc62f6b2fe64cad8a472c7259a236c9a22b4733abca0b5666ad503cb497792a0478c5af31ded793d00937e7
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^1.1.0":
+ version: 1.3.0
+ resolution: "p-limit@npm:1.3.0"
+ dependencies:
+ p-try: "npm:^1.0.0"
+ checksum: 10c0/5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "p-locate@npm:2.0.0"
+ dependencies:
+ p-limit: "npm:^1.1.0"
+ checksum: 10c0/82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^7.0.2":
+ version: 7.0.4
+ resolution: "p-map@npm:7.0.4"
+ checksum: 10c0/a5030935d3cb2919d7e89454d1ce82141e6f9955413658b8c9403cfe379283770ed3048146b44cde168aa9e8c716505f196d5689db0ae3ce9a71521a2fef3abd
+ languageName: node
+ linkType: hard
+
+"p-try@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "p-try@npm:1.0.0"
+ checksum: 10c0/757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a
+ languageName: node
+ linkType: hard
+
+"pako@npm:~1.0.5":
+ version: 1.0.11
+ resolution: "pako@npm:1.0.11"
+ checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe
+ languageName: node
+ linkType: hard
+
+"parallel-transform@npm:^1.1.0":
+ version: 1.2.0
+ resolution: "parallel-transform@npm:1.2.0"
+ dependencies:
+ cyclist: "npm:^1.0.1"
+ inherits: "npm:^2.0.3"
+ readable-stream: "npm:^2.1.5"
+ checksum: 10c0/ab0e58569e73681ca4b9c9228189bdb6cbea535295fae344cf0d8342fd33a950961914f3c414f81894c1498fb9ad1c079b4625d2b7ceae9e6ab812f22e3bea3f
+ languageName: node
+ linkType: hard
+
+"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.5":
+ version: 5.1.6
+ resolution: "parse-asn1@npm:5.1.6"
+ dependencies:
+ asn1.js: "npm:^5.2.0"
+ browserify-aes: "npm:^1.0.0"
+ evp_bytestokey: "npm:^1.0.0"
+ pbkdf2: "npm:^3.0.3"
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/4ed1d9b9e120c5484d29d67bb90171aac0b73422bc016d6294160aea983275c28a27ab85d862059a36a86a97dd31b7ddd97486802ca9fac67115fe3409e9dcbd
+ languageName: node
+ linkType: hard
+
+"parse-json@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "parse-json@npm:2.2.0"
+ dependencies:
+ error-ex: "npm:^1.2.0"
+ checksum: 10c0/7a90132aa76016f518a3d5d746a21b3f1ad0f97a68436ed71b6f995b67c7151141f5464eea0c16c59aec9b7756519a0e3007a8f98cf3714632d509ec07736df6
+ languageName: node
+ linkType: hard
+
+"parse-node-version@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "parse-node-version@npm:1.0.1"
+ checksum: 10c0/999cd3d7da1425c2e182dce82b226c6dc842562d3ed79ec47f5c719c32a7f6c1a5352495b894fc25df164be7f2ede4224758255da9902ddef81f2b77ba46bb2c
+ languageName: node
+ linkType: hard
+
+"path-browserify@npm:0.0.1":
+ version: 0.0.1
+ resolution: "path-browserify@npm:0.0.1"
+ checksum: 10c0/3d59710cddeea06509d91935196185900f3d9d29376dff68ff0e146fbd41d0fb304e983d0158f30cabe4dd2ffcc6a7d3d977631994ee984c88e66aed50a1ccd3
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "path-exists@npm:3.0.0"
+ checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "path-key@npm:2.0.1"
+ checksum: 10c0/dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1
+ languageName: node
+ linkType: hard
+
+"path-scurry@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "path-scurry@npm:2.0.2"
+ dependencies:
+ lru-cache: "npm:^11.0.0"
+ minipass: "npm:^7.1.2"
+ checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482
+ languageName: node
+ linkType: hard
+
+"path-type@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "path-type@npm:2.0.0"
+ dependencies:
+ pify: "npm:^2.0.0"
+ checksum: 10c0/e475cead839e65a2f8fdde634b24a4116b49daea3917470552e19d49c63e59ef17963bec2f57df2c72a85fcd1f86c8850d9742e68dba9c9c8d9bcac38bab03d6
+ languageName: node
+ linkType: hard
+
+"pbkdf2@npm:^3.0.3":
+ version: 3.1.2
+ resolution: "pbkdf2@npm:3.1.2"
+ dependencies:
+ create-hash: "npm:^1.1.2"
+ create-hmac: "npm:^1.1.4"
+ ripemd160: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^4.0.3":
+ version: 4.0.3
+ resolution: "picomatch@npm:4.0.3"
+ checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
+ languageName: node
+ linkType: hard
+
+"pify@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "pify@npm:2.3.0"
+ checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc
+ languageName: node
+ linkType: hard
+
+"pify@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "pify@npm:3.0.0"
+ checksum: 10c0/fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10
+ languageName: node
+ linkType: hard
+
+"pify@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "pify@npm:4.0.1"
+ checksum: 10c0/6f9d404b0d47a965437403c9b90eca8bb2536407f03de165940e62e72c8c8b75adda5516c6b9b23675a5877cc0bcac6bdfb0ef0e39414cd2476d5495da40e7cf
+ languageName: node
+ linkType: hard
+
+"pikaday@npm:^1.3.2":
+ version: 1.8.2
+ resolution: "pikaday@npm:1.8.2"
+ checksum: 10c0/c3c8ec32b18ad941f91ef0e9e24f80b785749428373137ef1592ee2ac1e2f0d858fcd240063f6d6f15c4f3d361b1653879fee7868ebf6415900ecef9c0ed0d7d
+ languageName: node
+ linkType: hard
+
+"pkg-dir@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "pkg-dir@npm:2.0.0"
+ dependencies:
+ find-up: "npm:^2.1.0"
+ checksum: 10c0/7cdc46c4921bf2c5f9a438851d16243ddde9906928116647ec7784982dd9038ea61c964fbca6f489201845742188180ecd1001b4f69781de1d1dc7d100b14089
+ languageName: node
+ linkType: hard
+
+"popper.js@npm:^1.16.0":
+ version: 1.16.1
+ resolution: "popper.js@npm:1.16.1"
+ checksum: 10c0/1c1a826f757edb5b8c2049dfd7a9febf6ae1e9d0e51342fc715b49a0c1020fced250d26484619883651e097c5764bbcacd2f31496e3646027f079dd83e072681
+ languageName: node
+ linkType: hard
+
+"postcss-calc@npm:^5.2.0":
+ version: 5.3.1
+ resolution: "postcss-calc@npm:5.3.1"
+ dependencies:
+ postcss: "npm:^5.0.2"
+ postcss-message-helpers: "npm:^2.0.0"
+ reduce-css-calc: "npm:^1.2.6"
+ checksum: 10c0/96444e979f0e7ef2c6e15d545a05c4ebc05eaa00d1743c9181c1008fb0cc06c926242e50b600ef627d9bd418c3fd24adb6732c482eeed0de8e60b64c1c105176
+ languageName: node
+ linkType: hard
+
+"postcss-colormin@npm:^2.1.8":
+ version: 2.2.2
+ resolution: "postcss-colormin@npm:2.2.2"
+ dependencies:
+ colormin: "npm:^1.0.5"
+ postcss: "npm:^5.0.13"
+ postcss-value-parser: "npm:^3.2.3"
+ checksum: 10c0/defcfa7e3c8daa0c116747acd01346867374505347e802115b2e7b476b6f74df4e67820bcd98743a0c02cd92159005d41db42e428700f873bb54647e54417e95
+ languageName: node
+ linkType: hard
+
+"postcss-convert-values@npm:^2.3.4":
+ version: 2.6.1
+ resolution: "postcss-convert-values@npm:2.6.1"
+ dependencies:
+ postcss: "npm:^5.0.11"
+ postcss-value-parser: "npm:^3.1.2"
+ checksum: 10c0/3efbc1c5feaa6c2eb56da61ad2c9e784c50aad1524d9c6a5a5992da43a276ead2b2d2986c8f8647fad484eefe3e22855993b2fe1984b392c45fd82aa92e7bfb9
+ languageName: node
+ linkType: hard
+
+"postcss-discard-comments@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "postcss-discard-comments@npm:2.0.4"
+ dependencies:
+ postcss: "npm:^5.0.14"
+ checksum: 10c0/436039351e2e6fba1358077728f51c5923cf943584394fc38b441444fe572980f08c5c7d1733a2e48fa17096cb98e8180e73b45ed2aea7baabc162943ed403dc
+ languageName: node
+ linkType: hard
+
+"postcss-discard-duplicates@npm:^2.0.1":
+ version: 2.1.0
+ resolution: "postcss-discard-duplicates@npm:2.1.0"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ checksum: 10c0/0da451c605fa8b26981f2c8a059f9231eade6616026e01834dd5b305ad6ffbaae28916d3de5fe91b6d9810e0bff69e70ffe44cae3a908e12493bc4295cbf4a6f
+ languageName: node
+ linkType: hard
+
+"postcss-discard-empty@npm:^2.0.1":
+ version: 2.1.0
+ resolution: "postcss-discard-empty@npm:2.1.0"
+ dependencies:
+ postcss: "npm:^5.0.14"
+ checksum: 10c0/e2008b574f80cc3621c3e318e59e36895077865a48800f1c25eb688128f8d43f0402c8effc21143533fd114200e532dcfbaca9813f0d07f9e71e32b6a859afbd
+ languageName: node
+ linkType: hard
+
+"postcss-discard-overridden@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "postcss-discard-overridden@npm:0.1.1"
+ dependencies:
+ postcss: "npm:^5.0.16"
+ checksum: 10c0/e1fd38e98045966be5f64252cbd553a597bc7678f64101025b850abe66851f35219320095321e4b0e9632843b6fc64e8bfe9b390064d9725a60a623a4a88b28d
+ languageName: node
+ linkType: hard
+
+"postcss-discard-unused@npm:^2.2.1":
+ version: 2.2.3
+ resolution: "postcss-discard-unused@npm:2.2.3"
+ dependencies:
+ postcss: "npm:^5.0.14"
+ uniqs: "npm:^2.0.0"
+ checksum: 10c0/0058b5f15363a5a6a0d01e28aaea98506639e52e42b49878ffc80d75ab9c4c9a8136c99ca2b5c9bf4d734469620ff5c84ab4f811a7bf9bc2e7dfd5f76e6d68fb
+ languageName: node
+ linkType: hard
+
+"postcss-filter-plugins@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "postcss-filter-plugins@npm:2.0.3"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ checksum: 10c0/a6d92215995486878dddab275ef65e55fd4432f779cc27ed435df49a22232743dad3285b9db8a5b32e4a618279d3f7415a501a9a4556411ee9d408bac447c5a0
+ languageName: node
+ linkType: hard
+
+"postcss-merge-idents@npm:^2.1.5":
+ version: 2.1.7
+ resolution: "postcss-merge-idents@npm:2.1.7"
+ dependencies:
+ has: "npm:^1.0.1"
+ postcss: "npm:^5.0.10"
+ postcss-value-parser: "npm:^3.1.1"
+ checksum: 10c0/5ef35d2ab59ceb32ca38d597753f8468dafb0782308930df820c96f3b23e4b4e36318ad29d76f88559c6a69d9c8d6283f1900617c0b6e4504bb5ab7523c120f8
+ languageName: node
+ linkType: hard
+
+"postcss-merge-longhand@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "postcss-merge-longhand@npm:2.0.2"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ checksum: 10c0/84145e5fee9e3064f1b22bde14fe5448449e519e3866a4c59cab42866309e3912638cc7e3d900c16090577a5f94899a2b46ed3a77c721592038671ce86e5395c
+ languageName: node
+ linkType: hard
+
+"postcss-merge-rules@npm:^2.0.3":
+ version: 2.1.2
+ resolution: "postcss-merge-rules@npm:2.1.2"
+ dependencies:
+ browserslist: "npm:^1.5.2"
+ caniuse-api: "npm:^1.5.2"
+ postcss: "npm:^5.0.4"
+ postcss-selector-parser: "npm:^2.2.2"
+ vendors: "npm:^1.0.0"
+ checksum: 10c0/aa825593d06079de4776f8ec71a05276c145aab734b66fbdea2c42bb545c2ec9fe075912ecb28d18d9c3b506784e8cf7db0951f9af287bc090f3ed7e6e72c332
+ languageName: node
+ linkType: hard
+
+"postcss-message-helpers@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "postcss-message-helpers@npm:2.0.0"
+ checksum: 10c0/5696c59befc408b208853a57994224f717c3a81a5b7129205c3087ad2af8159e209f29b66bfed7d79a1afc709cad76c3fbba06616ca71aeec77d7d029440dc72
+ languageName: node
+ linkType: hard
+
+"postcss-minify-font-values@npm:^1.0.2":
+ version: 1.0.5
+ resolution: "postcss-minify-font-values@npm:1.0.5"
+ dependencies:
+ object-assign: "npm:^4.0.1"
+ postcss: "npm:^5.0.4"
+ postcss-value-parser: "npm:^3.0.2"
+ checksum: 10c0/375fc0b1943b1d1e3c61bc33c19a70853ac2cebfdb0dcac23e5324edb218cf989bd7a8877cf846eafbb2d2e7cec4b7bc70922ac9300f9304c2422d807ccd4a85
+ languageName: node
+ linkType: hard
+
+"postcss-minify-gradients@npm:^1.0.1":
+ version: 1.0.5
+ resolution: "postcss-minify-gradients@npm:1.0.5"
+ dependencies:
+ postcss: "npm:^5.0.12"
+ postcss-value-parser: "npm:^3.3.0"
+ checksum: 10c0/ce5ed6151349ee4546b860cf9f7af38d8bfb942c32b45025b82c332603e2c49f6ee76ac9bda0cf8279cd2492baa4925b3298776deea7324f5efbd6a85782f0bc
+ languageName: node
+ linkType: hard
+
+"postcss-minify-params@npm:^1.0.4":
+ version: 1.2.2
+ resolution: "postcss-minify-params@npm:1.2.2"
+ dependencies:
+ alphanum-sort: "npm:^1.0.1"
+ postcss: "npm:^5.0.2"
+ postcss-value-parser: "npm:^3.0.2"
+ uniqs: "npm:^2.0.0"
+ checksum: 10c0/e48823f55e60e8dc2c44fb7810a323146bd5f9aa3384a203ee56c08b77a84d5227446a005b84371e8560dd0d6cefed667acc8cf020367c6934c7233fd890f7c8
+ languageName: node
+ linkType: hard
+
+"postcss-minify-selectors@npm:^2.0.4":
+ version: 2.1.1
+ resolution: "postcss-minify-selectors@npm:2.1.1"
+ dependencies:
+ alphanum-sort: "npm:^1.0.2"
+ has: "npm:^1.0.1"
+ postcss: "npm:^5.0.14"
+ postcss-selector-parser: "npm:^2.0.0"
+ checksum: 10c0/3fd37f12d4d4518a4c7e3e4c9a6ab8cf4757faff6d388700e5d148b9b7b6f1d1f28a6be0ffda5f0077a4e4d509fec65cef3e1343ff72d02e1945a1fba2543ac1
+ languageName: node
+ linkType: hard
+
+"postcss-modules-extract-imports@npm:^1.2.0":
+ version: 1.2.1
+ resolution: "postcss-modules-extract-imports@npm:1.2.1"
+ dependencies:
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/5746702936c1e1b78a7b31c4e20092197aa89c4e59c156249aea861c84cd0781c11c8c4648b95bcfdce010c48c8edd83b94eb9103f7c72ef8eb96c4b15716ed3
+ languageName: node
+ linkType: hard
+
+"postcss-modules-local-by-default@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "postcss-modules-local-by-default@npm:1.2.0"
+ dependencies:
+ css-selector-tokenizer: "npm:^0.7.0"
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/9139846ccefbb089cff17abda76e199c4d464d899816265f0b3939f5cf588b8ba59f9119b87eccaf3bfde3049bddd6ac5989f46e6d8fa9ba936cc6ccb27b89bd
+ languageName: node
+ linkType: hard
+
+"postcss-modules-scope@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "postcss-modules-scope@npm:1.1.0"
+ dependencies:
+ css-selector-tokenizer: "npm:^0.7.0"
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/ef0328204912f2a3b98322ac5f3d377c234c391a2afd29f51ec83961ad0e0c4dc01192968649ce47c75c85a6c922dd8c608b137c1cce548fe5d92d6fb4454bb2
+ languageName: node
+ linkType: hard
+
+"postcss-modules-values@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "postcss-modules-values@npm:1.3.0"
+ dependencies:
+ icss-replace-symbols: "npm:^1.1.0"
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/11bb1af2478291b72f6cc106ba48dc566079021976b2da8c7989db6dca643db6fe81653aba43d4cfb0467754853d77d1eb0e3593a621affe62a1cc2d72541c70
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-charset@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "postcss-normalize-charset@npm:1.1.1"
+ dependencies:
+ postcss: "npm:^5.0.5"
+ checksum: 10c0/69e67c67ad2a71b2dee440769a3651c84dee7bfcb713749ebbef544454b0151ef0c84833228513d6f53afd63c721b38cd640c54eca9602e3768139158e0f316a
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-url@npm:^3.0.7":
+ version: 3.0.8
+ resolution: "postcss-normalize-url@npm:3.0.8"
+ dependencies:
+ is-absolute-url: "npm:^2.0.0"
+ normalize-url: "npm:^1.4.0"
+ postcss: "npm:^5.0.14"
+ postcss-value-parser: "npm:^3.2.3"
+ checksum: 10c0/c53225ca485dd10d156e33e5ee5c3a830082f3f68a337b9e48f5a9d5083f6bebdf13008103d056b2025622c56421284bd391d9a86949ca468541cd0e2df682a6
+ languageName: node
+ linkType: hard
+
+"postcss-ordered-values@npm:^2.1.0":
+ version: 2.2.3
+ resolution: "postcss-ordered-values@npm:2.2.3"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ postcss-value-parser: "npm:^3.0.1"
+ checksum: 10c0/4d55a1c7f108f01181c22db1cb886ba0d47f71472a0e531f66b6d90094e74754a35a85cae7c142b4f6277066d2d4c586814dbd909ac7bb9d4c9d1180ac34d10b
+ languageName: node
+ linkType: hard
+
+"postcss-reduce-idents@npm:^2.2.2":
+ version: 2.4.0
+ resolution: "postcss-reduce-idents@npm:2.4.0"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ postcss-value-parser: "npm:^3.0.2"
+ checksum: 10c0/a63b42193dd19298b28411bb6186ec6aa5cc176cbb2a4e4e67567cecf116feaa02407744eb734521a49445be497156afad70d0ab5dcd1d9af772e2aca1fd127c
+ languageName: node
+ linkType: hard
+
+"postcss-reduce-initial@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "postcss-reduce-initial@npm:1.0.1"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ checksum: 10c0/f1c40830ceea191cc31353cc5085a1dab8e94f40ce009d0779b0589329546c8f11a10c0ba3d6514032cbee1439d76dc5e0b49bb841b1ca388827cc8be79b587a
+ languageName: node
+ linkType: hard
+
+"postcss-reduce-transforms@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "postcss-reduce-transforms@npm:1.0.4"
+ dependencies:
+ has: "npm:^1.0.1"
+ postcss: "npm:^5.0.8"
+ postcss-value-parser: "npm:^3.0.1"
+ checksum: 10c0/9c8cf2373dd84adb132fcd15ca48379276ef353ab8e51c18506d2e9688658579affff77bcbff19e460e875483b9a7d18fb40488f89f8d15b635f10503da9d875
+ languageName: node
+ linkType: hard
+
+"postcss-selector-parser@npm:^2.0.0, postcss-selector-parser@npm:^2.2.2":
+ version: 2.2.3
+ resolution: "postcss-selector-parser@npm:2.2.3"
+ dependencies:
+ flatten: "npm:^1.0.2"
+ indexes-of: "npm:^1.0.1"
+ uniq: "npm:^1.0.1"
+ checksum: 10c0/dc8aee6807096a93a6a1079bddb8d3e94ca385688889da087156ecfe48f3ad7db7581395fada92737d0d6e6a2cda96697fb2d94bbbf97484adb1acff261efe00
+ languageName: node
+ linkType: hard
+
+"postcss-svgo@npm:^2.1.1":
+ version: 2.1.6
+ resolution: "postcss-svgo@npm:2.1.6"
+ dependencies:
+ is-svg: "npm:^2.0.0"
+ postcss: "npm:^5.0.14"
+ postcss-value-parser: "npm:^3.2.3"
+ svgo: "npm:^0.7.0"
+ checksum: 10c0/a4e33316888c609b2db8e0dbaa7db49f4c0c880985df364d1a237fc1ef170815f21949433e4ea5684da2c2b3d8ef2f6c0e944d3757c6749b350dbf19d534b5f2
+ languageName: node
+ linkType: hard
+
+"postcss-unique-selectors@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "postcss-unique-selectors@npm:2.0.2"
+ dependencies:
+ alphanum-sort: "npm:^1.0.1"
+ postcss: "npm:^5.0.4"
+ uniqs: "npm:^2.0.0"
+ checksum: 10c0/4d1fac25aec01952390df2746f1cb9392b1cfe29bd167608248408755bd8b510209f95213953bda61b3c1201fb580620acdffd4f29fb85c3986f2a04b9b6bb52
+ languageName: node
+ linkType: hard
+
+"postcss-value-parser@npm:^3.0.1, postcss-value-parser@npm:^3.0.2, postcss-value-parser@npm:^3.1.1, postcss-value-parser@npm:^3.1.2, postcss-value-parser@npm:^3.2.3, postcss-value-parser@npm:^3.3.0":
+ version: 3.3.1
+ resolution: "postcss-value-parser@npm:3.3.1"
+ checksum: 10c0/23eed98d8eeadb1f9ef1db4a2757da0f1d8e7c1dac2a38d6b35d971aab9eb3c6d8a967d0e9f435558834ffcd966afbbe875a56bcc5bcdd09e663008c106b3e47
+ languageName: node
+ linkType: hard
+
+"postcss-zindex@npm:^2.0.1":
+ version: 2.2.0
+ resolution: "postcss-zindex@npm:2.2.0"
+ dependencies:
+ has: "npm:^1.0.1"
+ postcss: "npm:^5.0.4"
+ uniqs: "npm:^2.0.0"
+ checksum: 10c0/3c99a8fcd7132ecd5f56df7d8bdbe9a9d78f6c92c784435d522e1909b4e5f624905734c528787b0257a2ae23ec45f5bf435f8e2dcd47733fad8d779b91f2ba09
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^5.0.10, postcss@npm:^5.0.11, postcss@npm:^5.0.12, postcss@npm:^5.0.13, postcss@npm:^5.0.14, postcss@npm:^5.0.16, postcss@npm:^5.0.2, postcss@npm:^5.0.4, postcss@npm:^5.0.5, postcss@npm:^5.0.6, postcss@npm:^5.0.8, postcss@npm:^5.2.16":
+ version: 5.2.18
+ resolution: "postcss@npm:5.2.18"
+ dependencies:
+ chalk: "npm:^1.1.3"
+ js-base64: "npm:^2.1.9"
+ source-map: "npm:^0.5.6"
+ supports-color: "npm:^3.2.3"
+ checksum: 10c0/1f9f6673dd24d52f1ed33b800248e6ef752d6b6a092fe268021e398df0d7e0956f00fb961781647264d659240c3d67f5bfd3df9bf1b7af985aa996be619d30b1
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^6.0.1":
+ version: 6.0.23
+ resolution: "postcss@npm:6.0.23"
+ dependencies:
+ chalk: "npm:^2.4.1"
+ source-map: "npm:^0.6.1"
+ supports-color: "npm:^5.4.0"
+ checksum: 10c0/45d45184ffbb9d510e7585d9441af9a1a771a56b7553b1d598544e54acdfd31df439a95d5f00a6dc57b85b76d0c8925fec18614b1cc795887c845c3965e32e63
+ languageName: node
+ linkType: hard
+
+"prepend-http@npm:^1.0.0":
+ version: 1.0.4
+ resolution: "prepend-http@npm:1.0.4"
+ checksum: 10c0/c6c173ca439e58163ba7bea7cbba52a1ed11e3e3da1c048da296f37d4b7654f78f7304e03f76d5923f4b83af7e2d55533e0f79064209c75b743ccddee13904f8
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^6.0.0":
+ version: 6.1.0
+ resolution: "proc-log@npm:6.1.0"
+ checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82
+ languageName: node
+ linkType: hard
+
+"process-nextick-args@npm:~2.0.0":
+ version: 2.0.1
+ resolution: "process-nextick-args@npm:2.0.1"
+ checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367
+ languageName: node
+ linkType: hard
+
+"process@npm:^0.11.10":
+ version: 0.11.10
+ resolution: "process@npm:0.11.10"
+ checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3
+ languageName: node
+ linkType: hard
+
+"promise-inflight@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "promise-inflight@npm:1.0.1"
+ checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc
+ languageName: node
+ linkType: hard
+
+"prr@npm:~1.0.1":
+ version: 1.0.1
+ resolution: "prr@npm:1.0.1"
+ checksum: 10c0/5b9272c602e4f4472a215e58daff88f802923b84bc39c8860376bb1c0e42aaf18c25d69ad974bd06ec6db6f544b783edecd5502cd3d184748d99080d68e4be5f
+ languageName: node
+ linkType: hard
+
+"pseudomap@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "pseudomap@npm:1.0.2"
+ checksum: 10c0/5a91ce114c64ed3a6a553aa7d2943868811377388bb31447f9d8028271bae9b05b340fe0b6961a64e45b9c72946aeb0a4ab635e8f7cb3715ffd0ff2beeb6a679
+ languageName: node
+ linkType: hard
+
+"public-encrypt@npm:^4.0.0":
+ version: 4.0.3
+ resolution: "public-encrypt@npm:4.0.3"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ browserify-rsa: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ parse-asn1: "npm:^5.0.0"
+ randombytes: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700
+ languageName: node
+ linkType: hard
+
+"pump@npm:^2.0.0, pump@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "pump@npm:2.0.1"
+ dependencies:
+ end-of-stream: "npm:^1.1.0"
+ once: "npm:^1.3.1"
+ checksum: 10c0/f1fe8960f44d145f8617ea4c67de05392da4557052980314c8f85081aee26953bdcab64afad58a2b1df0e8ff7203e3710e848cbe81a01027978edc6e264db355
+ languageName: node
+ linkType: hard
+
+"pumpify@npm:^1.3.3":
+ version: 1.5.1
+ resolution: "pumpify@npm:1.5.1"
+ dependencies:
+ duplexify: "npm:^3.6.0"
+ inherits: "npm:^2.0.3"
+ pump: "npm:^2.0.0"
+ checksum: 10c0/0bcabf9e3dbf2d0cc1f9b84ac80d3c75386111caf8963bfd98817a1e2192000ac0ccc804ca6ccd5b2b8430fdb71347b20fb2f014fe3d41adbacb1b502a841c45
+ languageName: node
+ linkType: hard
+
+"punycode@npm:1.3.2":
+ version: 1.3.2
+ resolution: "punycode@npm:1.3.2"
+ checksum: 10c0/281fd20eaf4704f79d80cb0dc65065bf6452ee67989b3e8941aed6360a5a9a8a01d3e2ed71d0bde3cd74fb5a5dd9db4160bed5a8c20bed4b6764c24ce4c7d2d2
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^1.2.4":
+ version: 1.4.1
+ resolution: "punycode@npm:1.4.1"
+ checksum: 10c0/354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^2.1.0":
+ version: 2.1.1
+ resolution: "punycode@npm:2.1.1"
+ checksum: 10c0/83815ca9b9177f055771f31980cbec7ffaef10257d50a95ab99b4a30f0404846e85fa6887ee1bbc0aaddb7bad6d96e2fa150a016051ff0f6b92be4ad613ddca8
+ languageName: node
+ linkType: hard
+
+"q@npm:^1.1.2":
+ version: 1.5.1
+ resolution: "q@npm:1.5.1"
+ checksum: 10c0/7855fbdba126cb7e92ef3a16b47ba998c0786ec7fface236e3eb0135b65df36429d91a86b1fff3ab0927b4ac4ee88a2c44527c7c3b8e2a37efbec9fe34803df4
+ languageName: node
+ linkType: hard
+
+"query-string@npm:^4.1.0":
+ version: 4.3.4
+ resolution: "query-string@npm:4.3.4"
+ dependencies:
+ object-assign: "npm:^4.1.0"
+ strict-uri-encode: "npm:^1.0.0"
+ checksum: 10c0/6181c343074c2049fbbcde63f87c1da5d3a49c6e34c8d94a61d692e886e0b8cd1ae4a4be00b598112bb9c4cb819e423ed503a5d246e4d24ecb0990d8bb21570b
+ languageName: node
+ linkType: hard
+
+"querystring-es3@npm:^0.2.0":
+ version: 0.2.1
+ resolution: "querystring-es3@npm:0.2.1"
+ checksum: 10c0/476938c1adb45c141f024fccd2ffd919a3746e79ed444d00e670aad68532977b793889648980e7ca7ff5ffc7bfece623118d0fbadcaf217495eeb7059ae51580
+ languageName: node
+ linkType: hard
+
+"querystring@npm:0.2.0":
+ version: 0.2.0
+ resolution: "querystring@npm:0.2.0"
+ checksum: 10c0/2036c9424beaacd3978bac9e4ba514331cc73163bea7bf3ad7e2c7355e55501938ec195312c607753f9c6e70b1bf9dfcda38db6241bd299c034e27ac639d64ed
+ languageName: node
+ linkType: hard
+
+"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5":
+ version: 2.1.0
+ resolution: "randombytes@npm:2.1.0"
+ dependencies:
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3
+ languageName: node
+ linkType: hard
+
+"randomfill@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "randomfill@npm:1.0.4"
+ dependencies:
+ randombytes: "npm:^2.0.5"
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c
+ languageName: node
+ linkType: hard
+
+"raw-loader@npm:~0.5.0":
+ version: 0.5.1
+ resolution: "raw-loader@npm:0.5.1"
+ checksum: 10c0/0961d64c0c21c25f8a1ecddd5bf17a4308e5d82addff11044a42c28dde35f14b34c6dbf4665adda7ce3a64922a3132785276c25e1f33c0c62689ff366ab8fb6e
+ languageName: node
+ linkType: hard
+
+"read-pkg-up@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "read-pkg-up@npm:2.0.0"
+ dependencies:
+ find-up: "npm:^2.0.0"
+ read-pkg: "npm:^2.0.0"
+ checksum: 10c0/6fbb9f8c1a9ed3c8a5764387a77ac4456082f1fe98757d1ed300d8b0a4c70501f28cbb053ae7b3e0de6094930fb7258fbfe099957a53c999337aaf8bc53ff37f
+ languageName: node
+ linkType: hard
+
+"read-pkg@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "read-pkg@npm:2.0.0"
+ dependencies:
+ load-json-file: "npm:^2.0.0"
+ normalize-package-data: "npm:^2.3.2"
+ path-type: "npm:^2.0.0"
+ checksum: 10c0/c0d1b66c58e58fadaabe48c83c525fb1966304555e5089fab5ccce2c3dfe0fad726720b170a5fa23ff20452e22d1dbe817f5c63f03546bb85cbfb6b84da84c2b
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6":
+ version: 2.3.7
+ resolution: "readable-stream@npm:2.3.7"
+ dependencies:
+ core-util-is: "npm:~1.0.0"
+ inherits: "npm:~2.0.3"
+ isarray: "npm:~1.0.0"
+ process-nextick-args: "npm:~2.0.0"
+ safe-buffer: "npm:~5.1.1"
+ string_decoder: "npm:~1.1.1"
+ util-deprecate: "npm:~1.0.1"
+ checksum: 10c0/1708755e6cf9daff6ff60fa5b4575636472289c5b95d38058a91f94732b8d024a940a0d4d955639195ce42c22cab16973ee8fea8deedd24b5fec3dd596465f86
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "readable-stream@npm:3.6.0"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ string_decoder: "npm:^1.1.1"
+ util-deprecate: "npm:^1.0.1"
+ checksum: 10c0/937bedd29ac8a68331666291922bea892fa2be1a33269e582de9f844a2002f146cf831e39cd49fe6a378d3f0c27358f259ed0e20d20f0bdc6a3f8fc21fce42dc
+ languageName: node
+ linkType: hard
+
+"reduce-css-calc@npm:^1.2.6":
+ version: 1.3.0
+ resolution: "reduce-css-calc@npm:1.3.0"
+ dependencies:
+ balanced-match: "npm:^0.4.2"
+ math-expression-evaluator: "npm:^1.2.14"
+ reduce-function-call: "npm:^1.0.1"
+ checksum: 10c0/c0b192bbdc7617ee7e3bcd09332f7f810c2b52f1da8521c4eda03879ead00bcca65bcae78d5bc8cd925610f776532a3457e8b2fd8f4bb936bdb40f057590f20d
+ languageName: node
+ linkType: hard
+
+"reduce-function-call@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "reduce-function-call@npm:1.0.3"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ checksum: 10c0/7e844708d8c3d2946d3df5c537ee1e23c3c60c98ac0dbc724828f36d8d309c391a14995f47ce4f5ba84eea2df5c73d58e4ba100ba331af496920932421a322ed
+ languageName: node
+ linkType: hard
+
+"require-directory@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "require-directory@npm:2.1.1"
+ checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99
+ languageName: node
+ linkType: hard
+
+"require-main-filename@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "require-main-filename@npm:1.0.1"
+ checksum: 10c0/1ab87efb72a0e223a667154e92f29ca753fd42eb87f22db142b91c86d134e29ecf18af929111ccd255fd340b57d84a9d39489498d8dfd5136b300ded30a5f0b6
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.10.0":
+ version: 1.22.0
+ resolution: "resolve@npm:1.22.0"
+ dependencies:
+ is-core-module: "npm:^2.8.1"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/efe07a7cd69015a95a5f4e6cc3d372354b93d67a70410ec686413b2054dfa0d5ef16ff52c057a83634debb17f278b99db6dbc60367a4475ae01dda29c6eaa6e4
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin":
+ version: 1.22.0
+ resolution: "resolve@patch:resolve@npm%3A1.22.0#optional!builtin::version=1.22.0&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.8.1"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/ef8061e81f40c39070748e8e263c8767d8fcc7c34e9ee85211b29fbc2aedb1ae7cda7d735c2cdbe9367060e9f85ec11c2694e370c121c6bcbb472a7bd0b19555
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^2.5.4, rimraf@npm:^2.6.2":
+ version: 2.7.1
+ resolution: "rimraf@npm:2.7.1"
+ dependencies:
+ glob: "npm:^7.1.3"
+ bin:
+ rimraf: ./bin.js
+ checksum: 10c0/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40
+ languageName: node
+ linkType: hard
+
+"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "ripemd160@npm:2.0.2"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a
+ languageName: node
+ linkType: hard
+
+"run-queue@npm:^1.0.0, run-queue@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "run-queue@npm:1.0.3"
+ dependencies:
+ aproba: "npm:^1.1.1"
+ checksum: 10c0/4e8964279d8f160f9ffaabe82eaad11a1d4c0db596a0f2b5257ae9d2b900c7e1ffcece3e5719199436f50718e1e7f45bb4bf7a82e331a4e734d67c2588a90cbb
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
+ version: 5.1.2
+ resolution: "safe-buffer@npm:5.1.2"
+ checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.1.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
+ languageName: node
+ linkType: hard
+
+"sax@npm:^1.2.4, sax@npm:~1.2.1":
+ version: 1.2.4
+ resolution: "sax@npm:1.2.4"
+ checksum: 10c0/6e9b05ff443ee5e5096ce92d31c0740a20d33002fad714ebcb8fc7a664d9ee159103ebe8f7aef0a1f7c5ecacdd01f177f510dff95611c589399baf76437d3fe3
+ languageName: node
+ linkType: hard
+
+"schema-utils@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "schema-utils@npm:0.3.0"
+ dependencies:
+ ajv: "npm:^5.0.0"
+ checksum: 10c0/dd0694d6cfec83372273dcc73eeaab3cc8a8026cb0f57e896ea8ef3832421998423c6081ceea04e361ae95b40b6e5e3b9aebc7f3c6d8099ec99dc0a1843d9e67
+ languageName: node
+ linkType: hard
+
+"schema-utils@npm:^0.4.5":
+ version: 0.4.7
+ resolution: "schema-utils@npm:0.4.7"
+ dependencies:
+ ajv: "npm:^6.1.0"
+ ajv-keywords: "npm:^3.1.0"
+ checksum: 10c0/0de445cee6bf9a54b7b18b284b5f5ebe5b481f57e71854872c4215bd8eda73811a5f4964718c26f24b50f46a5eafbaf8a391459a7f10b78c242a798a3e0e24c8
+ languageName: node
+ linkType: hard
+
+"schema-utils@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "schema-utils@npm:1.0.0"
+ dependencies:
+ ajv: "npm:^6.1.0"
+ ajv-errors: "npm:^1.0.0"
+ ajv-keywords: "npm:^3.1.0"
+ checksum: 10c0/670e22d7f0ff0b6f4514a4d6fb27c359101b44b7dbfd9563af201af72eb4a9ff06144020cab5f85b16e88821fd09b97cbdae6c893721c6528c8cb704124e6a2f
+ languageName: node
+ linkType: hard
+
+"select2@npm:3.5.1":
+ version: 3.5.1
+ resolution: "select2@npm:3.5.1"
+ checksum: 10c0/be98375c6c58fea8498f9b0f25fe9a10427b0338ae3c47d1ac49c09d8b31d233ac7f258621ea12d75b7eb9c1be441f90bf9aef03203b04d2838c4f9d54e73b31
+ languageName: node
+ linkType: hard
+
+"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0":
+ version: 5.7.1
+ resolution: "semver@npm:5.7.1"
+ bin:
+ semver: ./bin/semver
+ checksum: 10c0/d4884f2aeca28bff35d0bd40ff0a9b2dfc4b36a883bf0ea5dc15d10d9a01bdc9041035b05f825d4b5ac8a56e490703dbf0d986d054de82cc5e9bad3f02ca6e00
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5":
+ version: 7.7.4
+ resolution: "semver@npm:7.7.4"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2
+ languageName: node
+ linkType: hard
+
+"serialize-javascript@npm:^1.4.0":
+ version: 1.9.1
+ resolution: "serialize-javascript@npm:1.9.1"
+ checksum: 10c0/01c1aabb28a50133ac7c86038ec14be26b13e0d8d43ac6ad4bad57789bc8dc33b33fef2424330ab9d138da40d9a3c2520f0d66e8c3474eeeab01669d3a38cae1
+ languageName: node
+ linkType: hard
+
+"set-blocking@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "set-blocking@npm:2.0.0"
+ checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454
+ languageName: node
+ linkType: hard
+
+"setimmediate@npm:^1.0.4":
+ version: 1.0.5
+ resolution: "setimmediate@npm:1.0.5"
+ checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49
+ languageName: node
+ linkType: hard
+
+"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8":
+ version: 2.4.11
+ resolution: "sha.js@npm:2.4.11"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ bin:
+ sha.js: ./bin.js
+ checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "shebang-command@npm:1.2.0"
+ dependencies:
+ shebang-regex: "npm:^1.0.0"
+ checksum: 10c0/7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "shebang-regex@npm:1.0.0"
+ checksum: 10c0/9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^3.0.0":
+ version: 3.0.7
+ resolution: "signal-exit@npm:3.0.7"
+ checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912
+ languageName: node
+ linkType: hard
+
+"smart-buffer@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "smart-buffer@npm:4.2.0"
+ checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
+ languageName: node
+ linkType: hard
+
+"socks-proxy-agent@npm:^8.0.3":
+ version: 8.0.5
+ resolution: "socks-proxy-agent@npm:8.0.5"
+ dependencies:
+ agent-base: "npm:^7.1.2"
+ debug: "npm:^4.3.4"
+ socks: "npm:^2.8.3"
+ checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6
+ languageName: node
+ linkType: hard
+
+"socks@npm:^2.8.3":
+ version: 2.8.7
+ resolution: "socks@npm:2.8.7"
+ dependencies:
+ ip-address: "npm:^10.0.1"
+ smart-buffer: "npm:^4.2.0"
+ checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2
+ languageName: node
+ linkType: hard
+
+"sort-keys@npm:^1.0.0":
+ version: 1.1.2
+ resolution: "sort-keys@npm:1.1.2"
+ dependencies:
+ is-plain-obj: "npm:^1.0.0"
+ checksum: 10c0/5dd383b0299a40277051f7498c3999520138e2eb50d422962f658738341c9e82349fad4a3024d5ba1a3122688fbaf958f2a472d4c53bade55515097c2ce15420
+ languageName: node
+ linkType: hard
+
+"source-list-map@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "source-list-map@npm:2.0.1"
+ checksum: 10c0/2e5e421b185dcd857f46c3c70e2e711a65d717b78c5f795e2e248c9d67757882ea989b80ebc08cf164eeeda5f4be8aa95d3b990225070b2daaaf3257c5958149
+ languageName: node
+ linkType: hard
+
+"source-map@npm:0.1.x":
+ version: 0.1.43
+ resolution: "source-map@npm:0.1.43"
+ dependencies:
+ amdefine: "npm:>=0.0.4"
+ checksum: 10c0/0cf092a91a0aadfad21ed7cb9ac78878b16242fcc9cd8f631e340b607f311d2f5391df574a29b9e243b35a7d1efd471f357b4b81da8e65145bcae242d46d0297
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.5.3, source-map@npm:^0.5.6":
+ version: 0.5.7
+ resolution: "source-map@npm:0.5.7"
+ checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
+ version: 0.6.1
+ resolution: "source-map@npm:0.6.1"
+ checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011
+ languageName: node
+ linkType: hard
+
+"spdx-correct@npm:^3.0.0":
+ version: 3.1.1
+ resolution: "spdx-correct@npm:3.1.1"
+ dependencies:
+ spdx-expression-parse: "npm:^3.0.0"
+ spdx-license-ids: "npm:^3.0.0"
+ checksum: 10c0/25909eecc4024963a8e398399dbdd59ddb925bd7dbecd9c9cf6df0d75c29b68cd30b82123564acc51810eb02cfc4b634a2e16e88aa982433306012e318849249
+ languageName: node
+ linkType: hard
+
+"spdx-exceptions@npm:^2.1.0":
+ version: 2.3.0
+ resolution: "spdx-exceptions@npm:2.3.0"
+ checksum: 10c0/83089e77d2a91cb6805a5c910a2bedb9e50799da091f532c2ba4150efdef6e53f121523d3e2dc2573a340dc0189e648b03157097f65465b3a0c06da1f18d7e8a
+ languageName: node
+ linkType: hard
+
+"spdx-expression-parse@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "spdx-expression-parse@npm:3.0.1"
+ dependencies:
+ spdx-exceptions: "npm:^2.1.0"
+ spdx-license-ids: "npm:^3.0.0"
+ checksum: 10c0/6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171
+ languageName: node
+ linkType: hard
+
+"spdx-license-ids@npm:^3.0.0":
+ version: 3.0.11
+ resolution: "spdx-license-ids@npm:3.0.11"
+ checksum: 10c0/6c53cfdb3417e80fd612341319f1296507f797e0387e144047f547c378d9d38d6032ec342de42ef7883256f6690b2fca9889979d0dd015a61dc49b323f9b379b
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:~1.0.2":
+ version: 1.0.3
+ resolution: "sprintf-js@npm:1.0.3"
+ checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^13.0.0":
+ version: 13.0.1
+ resolution: "ssri@npm:13.0.1"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/cf6408a18676c57ff2ed06b8a20dc64bb3e748e5c7e095332e6aecaa2b8422b1e94a739a8453bf65156a8a47afe23757ba4ab52d3ea3b62322dc40875763e17a
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^5.2.4":
+ version: 5.3.0
+ resolution: "ssri@npm:5.3.0"
+ dependencies:
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/f80372ec982cacb3d8e4b53c2a82a7f7502d915a57aef99a29e6cd293302d5944185a569df5fce694a857abb1e602585fcee90182cd2e853bae3d1c20a84d8cb
+ languageName: node
+ linkType: hard
+
+"stream-browserify@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "stream-browserify@npm:2.0.2"
+ dependencies:
+ inherits: "npm:~2.0.1"
+ readable-stream: "npm:^2.0.2"
+ checksum: 10c0/485562bd5d962d633ae178449029c6fa2611052e356bdb5668f768544aa4daa94c4f9a97de718f3f30ad98f3cb98a5f396252bb3855aff153c138f79c0e8f6ac
+ languageName: node
+ linkType: hard
+
+"stream-each@npm:^1.1.0":
+ version: 1.2.3
+ resolution: "stream-each@npm:1.2.3"
+ dependencies:
+ end-of-stream: "npm:^1.1.0"
+ stream-shift: "npm:^1.0.0"
+ checksum: 10c0/7ed229d3b7c24373058b5742b00066da8d3122d1487c8219a025ed53a8978545c77654a529a8e9c62ba83ae80c424cbb0204776b49abf72270d2e8154831dd5f
+ languageName: node
+ linkType: hard
+
+"stream-http@npm:^2.7.2":
+ version: 2.8.3
+ resolution: "stream-http@npm:2.8.3"
+ dependencies:
+ builtin-status-codes: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ readable-stream: "npm:^2.3.6"
+ to-arraybuffer: "npm:^1.0.0"
+ xtend: "npm:^4.0.0"
+ checksum: 10c0/fbe7d327a29216bbabe88d3819bb8f7a502f11eeacf3212579e5af1f76fa7283f6ffa66134ab7d80928070051f571d1029e85f65ce3369fffd4c4df3669446c4
+ languageName: node
+ linkType: hard
+
+"stream-shift@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "stream-shift@npm:1.0.1"
+ checksum: 10c0/b63a0d178cde34b920ad93e2c0c9395b840f408d36803b07c61416edac80ef9e480a51910e0ceea0d679cec90921bcd2cccab020d3a9fa6c73a98b0fbec132fd
+ languageName: node
+ linkType: hard
+
+"strict-uri-encode@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "strict-uri-encode@npm:1.1.0"
+ checksum: 10c0/eb8a4109ba2588239787389313ba58ec49e043d4c64a1d44716defe5821a68ae49abe0cdefed9946ca9fc2a4af7ecf321da92422b0a67258ec0a3638b053ae62
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "string-width@npm:1.0.2"
+ dependencies:
+ code-point-at: "npm:^1.0.0"
+ is-fullwidth-code-point: "npm:^1.0.0"
+ strip-ansi: "npm:^3.0.0"
+ checksum: 10c0/c558438baed23a9ab9370bb6a939acbdb2b2ffc517838d651aad0f5b2b674fb85d460d9b1d0b6a4c210dffd09e3235222d89a5bd4c0c1587f78b2bb7bc00c65e
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^2.0.0":
+ version: 2.1.1
+ resolution: "string-width@npm:2.1.1"
+ dependencies:
+ is-fullwidth-code-point: "npm:^2.0.0"
+ strip-ansi: "npm:^4.0.0"
+ checksum: 10c0/e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1":
+ version: 1.3.0
+ resolution: "string_decoder@npm:1.3.0"
+ dependencies:
+ safe-buffer: "npm:~5.2.0"
+ checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:~1.1.1":
+ version: 1.1.1
+ resolution: "string_decoder@npm:1.1.1"
+ dependencies:
+ safe-buffer: "npm:~5.1.0"
+ checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "strip-ansi@npm:3.0.1"
+ dependencies:
+ ansi-regex: "npm:^2.0.0"
+ checksum: 10c0/f6e7fbe8e700105dccf7102eae20e4f03477537c74b286fd22cfc970f139002ed6f0d9c10d0e21aa9ed9245e0fa3c9275930e8795c5b947da136e4ecb644a70f
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "strip-ansi@npm:4.0.0"
+ dependencies:
+ ansi-regex: "npm:^3.0.0"
+ checksum: 10c0/d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d
+ languageName: node
+ linkType: hard
+
+"strip-bom@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-bom@npm:3.0.0"
+ checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1
+ languageName: node
+ linkType: hard
+
+"strip-eof@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "strip-eof@npm:1.0.0"
+ checksum: 10c0/f336beed8622f7c1dd02f2cbd8422da9208fae81daf184f73656332899978919d5c0ca84dc6cfc49ad1fc4dd7badcde5412a063cf4e0d7f8ed95a13a63f68f45
+ languageName: node
+ linkType: hard
+
+"style-loader@npm:^0.23.1":
+ version: 0.23.1
+ resolution: "style-loader@npm:0.23.1"
+ dependencies:
+ loader-utils: "npm:^1.1.0"
+ schema-utils: "npm:^1.0.0"
+ checksum: 10c0/9752920e4284e53067282f8cca68402604db152b60251525106414ceb7dedbfa5571ad544c95062006c1ff8801aa337e231e848dd3f1a8f73ec3fa680f530895
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "supports-color@npm:2.0.0"
+ checksum: 10c0/570e0b63be36cccdd25186350a6cb2eaad332a95ff162fa06d9499982315f2fe4217e69dd98e862fbcd9c81eaff300a825a1fe7bf5cc752e5b84dfed042b0dda
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^3.2.3":
+ version: 3.2.3
+ resolution: "supports-color@npm:3.2.3"
+ dependencies:
+ has-flag: "npm:^1.0.0"
+ checksum: 10c0/d39a57dbd75c3b5740654f8ec16aaf7203b8d12b8a51314507bed590c9081120805f105b4ce741db13105e6f842ac09700e4bd665b9ffc46eb0b34ba54720bd3
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^4.2.1":
+ version: 4.5.0
+ resolution: "supports-color@npm:4.5.0"
+ dependencies:
+ has-flag: "npm:^2.0.0"
+ checksum: 10c0/2dc369eeac73954e87037dea1ebae0238b2abc0a39d7e35aa60eb8a84cc8d1dcade8b62e010597f5859f94c937e992abe6a6195460855fcc5e51f8cfc7fcc72a
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^5.3.0, supports-color@npm:^5.4.0":
+ version: 5.5.0
+ resolution: "supports-color@npm:5.5.0"
+ dependencies:
+ has-flag: "npm:^3.0.0"
+ checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39
+ languageName: node
+ linkType: hard
+
+"svgo@npm:^0.7.0":
+ version: 0.7.2
+ resolution: "svgo@npm:0.7.2"
+ dependencies:
+ coa: "npm:~1.0.1"
+ colors: "npm:~1.1.2"
+ csso: "npm:~2.3.1"
+ js-yaml: "npm:~3.7.0"
+ mkdirp: "npm:~0.5.1"
+ sax: "npm:~1.2.1"
+ whet.extend: "npm:~0.9.9"
+ bin:
+ svgo: ./bin/svgo
+ checksum: 10c0/cc3314ec0227b7fd4dfcbc622b69e45ac79462a2add2c5198b863f107e4afe459e01812e668fae868b3fb02326ffbb4cd25ca7d1f2580656b14beae10eb2596c
+ languageName: node
+ linkType: hard
+
+"tapable@npm:^0.2.7":
+ version: 0.2.9
+ resolution: "tapable@npm:0.2.9"
+ checksum: 10c0/93d0e5994621a9496112fe241784d59325684b509eb74d1abd9032802639b53ba9619db0f5db6ccdab994a5279bc4ed07b638a8a25143ba6b10603e409f314fb
+ languageName: node
+ linkType: hard
+
+"tar@npm:^7.5.4":
+ version: 7.5.12
+ resolution: "tar@npm:7.5.12"
+ dependencies:
+ "@isaacs/fs-minipass": "npm:^4.0.0"
+ chownr: "npm:^3.0.0"
+ minipass: "npm:^7.1.2"
+ minizlib: "npm:^3.1.0"
+ yallist: "npm:^5.0.0"
+ checksum: 10c0/3825c5974f5fde792981f47ee9ffea021ee7f4b552b7ab95eeb98e5dfadfd5a5d5861f01fb772e2e5637a41980d3c019fd6cdad1be48b462b886abd7fe0fa17c
+ languageName: node
+ linkType: hard
+
+"through2@npm:^2.0.0":
+ version: 2.0.5
+ resolution: "through2@npm:2.0.5"
+ dependencies:
+ readable-stream: "npm:~2.3.6"
+ xtend: "npm:~4.0.1"
+ checksum: 10c0/cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade
+ languageName: node
+ linkType: hard
+
+"timers-browserify@npm:^2.0.4":
+ version: 2.0.12
+ resolution: "timers-browserify@npm:2.0.12"
+ dependencies:
+ setimmediate: "npm:^1.0.4"
+ checksum: 10c0/98e84db1a685bc8827c117a8bc62aac811ad56a995d07938fc7ed8cdc5bf3777bfe2d4e5da868847194e771aac3749a20f6cdd22091300fe889a76fe214a4641
+ languageName: node
+ linkType: hard
+
+"tinyglobby@npm:^0.2.12":
+ version: 0.2.15
+ resolution: "tinyglobby@npm:0.2.15"
+ dependencies:
+ fdir: "npm:^6.5.0"
+ picomatch: "npm:^4.0.3"
+ checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844
+ languageName: node
+ linkType: hard
+
+"to-arraybuffer@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "to-arraybuffer@npm:1.0.1"
+ checksum: 10c0/2460bd95524f4845a751e4f8bf9937f9f3dcd1651f104e1512868782f858f8302c1cf25bbc30794bc1b3ff65c4e135158377302f2abaff43a2d8e3c38dfe098c
+ languageName: node
+ linkType: hard
"treebeard@https://github.com/CenterForOpenScience/treebeard.git#d2bb8f6f8104fcac040402727f431c26722b269e":
- version "0.6.1"
- resolved "https://github.com/CenterForOpenScience/treebeard.git#d2bb8f6f8104fcac040402727f431c26722b269e"
- dependencies:
- bootstrap "~3.3.2"
- jquery ">=1.11.0"
- jquery-ui ">=1.10.4"
- mithril ">=0.2"
-
-tslib@^2.3.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
- integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
-
-tty-browserify@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
- integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
-
-type-is@~1.6.18:
- version "1.6.18"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
- integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
- dependencies:
- media-typer "0.3.0"
- mime-types "~2.1.24"
-
-type@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
- integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
-
-type@^2.5.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f"
- integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==
-
-typeahead.js@^0.11.1:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/typeahead.js/-/typeahead.js-0.11.1.tgz#4e64e671b22310a8606f4aec805924ba84b015b8"
- integrity sha1-TmTmcbIjEKhgb0rsgFkkuoSwFbg=
- dependencies:
- jquery ">=1.7"
-
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
- integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-
-uglify-es@^3.3.4:
- version "3.3.9"
- resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
- integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
- dependencies:
- commander "~2.13.0"
- source-map "~0.6.1"
-
-uglifyjs-webpack-plugin@1.3.0, uglifyjs-webpack-plugin@^0.4.6:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
- integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==
- dependencies:
- cacache "^10.0.4"
- find-cache-dir "^1.0.0"
- schema-utils "^0.4.5"
- serialize-javascript "^1.4.0"
- source-map "^0.6.1"
- uglify-es "^3.3.4"
- webpack-sources "^1.1.0"
- worker-farm "^1.5.2"
-
-uniq@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
- integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
-
-uniqs@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
- integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
-
-unique-filename@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
- integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
- dependencies:
- unique-slug "^2.0.0"
-
-unique-slug@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
- integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
- dependencies:
- imurmurhash "^0.1.4"
-
-unpipe@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
- integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-
-uri-js@^4.2.2:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
- integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- dependencies:
- punycode "^2.1.0"
-
-url-loader@~0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7"
- integrity sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==
- dependencies:
- loader-utils "^1.0.2"
- mime "^1.4.1"
- schema-utils "^0.3.0"
-
-url@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
- integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
- dependencies:
- punycode "1.3.2"
- querystring "0.2.0"
-
-util-deprecate@^1.0.1, util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
- integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-
-util@0.10.3:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
- integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
- dependencies:
- inherits "2.0.1"
-
-util@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
- integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
- dependencies:
- inherits "2.0.3"
-
-uuid@^8.3.2:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
- integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-
-validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
- integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
- dependencies:
- spdx-correct "^3.0.0"
- spdx-expression-parse "^3.0.0"
-
-vendors@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
- integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
-
-vm-browserify@^1.0.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
- integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
-
-watchpack@^1.4.0, watchpack@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25"
- integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==
- dependencies:
- glob-to-regexp "^0.4.1"
- graceful-fs "^4.1.2"
-
-webpack-sources@^1.0.1, webpack-sources@^1.1.0:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
- integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
- dependencies:
- source-list-map "^2.0.0"
- source-map "~0.6.1"
-
-webpack@3.12.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74"
- integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==
- dependencies:
- acorn "^5.0.0"
- acorn-dynamic-import "^2.0.0"
- ajv "^6.1.0"
- ajv-keywords "^3.1.0"
- async "^2.1.2"
- enhanced-resolve "^3.4.0"
- escope "^3.6.0"
- interpret "^1.0.0"
- json-loader "^0.5.4"
- json5 "^0.5.1"
- loader-runner "^2.3.0"
- loader-utils "^1.1.0"
- memory-fs "~0.4.1"
- mkdirp "~0.5.0"
- node-libs-browser "^2.0.0"
- source-map "^0.5.3"
- supports-color "^4.2.1"
- tapable "^0.2.7"
- uglifyjs-webpack-plugin "^0.4.6"
- watchpack "^1.4.0"
- webpack-sources "^1.0.1"
- yargs "^8.0.2"
-
-whet.extend@~0.9.9:
- version "0.9.9"
- resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
- integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=
-
-which-module@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
- integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-
-which@^1.2.9:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
- integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
- dependencies:
- isexe "^2.0.0"
-
-worker-farm@^1.5.2:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
- integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
- dependencies:
- errno "~0.1.7"
-
-wrap-ansi@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
- integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-xtend@^4.0.0, xtend@~4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-y18n@^3.2.1:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
- integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
-
-y18n@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
- integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
-
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
- integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-
-yargs-parser@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
- integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k=
- dependencies:
- camelcase "^4.1.0"
-
-yargs@^8.0.2:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
- integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A=
- dependencies:
- camelcase "^4.1.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^2.0.0"
- read-pkg-up "^2.0.0"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^2.0.0"
- which-module "^2.0.0"
- y18n "^3.2.1"
- yargs-parser "^7.0.0"
-
-zxcvbn@^4.2.0:
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/zxcvbn/-/zxcvbn-4.4.2.tgz#28ec17cf09743edcab056ddd8b1b06262cc73c30"
- integrity sha1-KOwXzwl0PtyrBW3dixsGJizHPDA=
+ version: 0.6.1
+ resolution: "treebeard@https://github.com/CenterForOpenScience/treebeard.git#commit=d2bb8f6f8104fcac040402727f431c26722b269e"
+ dependencies:
+ bootstrap: "npm:~3.3.2"
+ jquery: "npm:>=1.11.0"
+ jquery-ui: "npm:>=1.10.4"
+ mithril: "npm:>=0.2"
+ checksum: 10c0/7e6828645a194d2bc2ad96c8efd6a3fd9077cf1be9c443c8a76e48e3427f10643af3ce19a2fd8b9a56913d420a2792f754cca3013057cac5b574005861939f63
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.3.0":
+ version: 2.3.1
+ resolution: "tslib@npm:2.3.1"
+ checksum: 10c0/4efd888895bdb3b987086b2b7793ad1013566f882b0eb7a328384e5ecc0d71cafb16bbeab3196200cbf7f01a73ccc25acc2f131d4ea6ee959be7436a8a306482
+ languageName: node
+ linkType: hard
+
+"tty-browserify@npm:0.0.0":
+ version: 0.0.0
+ resolution: "tty-browserify@npm:0.0.0"
+ checksum: 10c0/c0c68206565f1372e924d5cdeeff1a0d9cc729833f1da98c03d78be8f939e5f61a107bd0ab77d1ef6a47d62bb0e48b1081fbea273acf404959e22fd3891439c5
+ languageName: node
+ linkType: hard
+
+"type@npm:^1.0.1":
+ version: 1.2.0
+ resolution: "type@npm:1.2.0"
+ checksum: 10c0/444660849aaebef8cbb9bc43b28ec2068952064cfce6a646f88db97aaa2e2d6570c5629cd79238b71ba23aa3f75146a0b96e24e198210ee0089715a6f8889bf7
+ languageName: node
+ linkType: hard
+
+"type@npm:^2.5.0":
+ version: 2.6.0
+ resolution: "type@npm:2.6.0"
+ checksum: 10c0/d08063a1c3415140d0b6fd17ede55f373cdd6c5503776693ad5ead574a06404823374d62d6233e43bc30ec22f596b790cbb8661429bed75a75dab986b506ac60
+ languageName: node
+ linkType: hard
+
+"typeahead.js@npm:^0.11.1":
+ version: 0.11.1
+ resolution: "typeahead.js@npm:0.11.1"
+ dependencies:
+ jquery: "npm:>=1.7"
+ checksum: 10c0/c5c0387e711ad1cae8993bbae55a26d2ca0d6f06de550466977109ba323fe019e241c7d8e3858455214dc4bbfdec82481cd2f6313629eefe0c587222915ffa28
+ languageName: node
+ linkType: hard
+
+"typedarray@npm:^0.0.6":
+ version: 0.0.6
+ resolution: "typedarray@npm:0.0.6"
+ checksum: 10c0/6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412
+ languageName: node
+ linkType: hard
+
+"uglify-es@npm:^3.3.4":
+ version: 3.3.9
+ resolution: "uglify-es@npm:3.3.9"
+ dependencies:
+ commander: "npm:~2.13.0"
+ source-map: "npm:~0.6.1"
+ bin:
+ uglifyjs: bin/uglifyjs
+ checksum: 10c0/b591de4ea2c7153f446f80f2559bbabcb4ff53a17dbfd27b9bb980b31f5fb7e563bdae6e9abc07d97ecb484ac4ceba4c7a207e6854cb2aaca72e80e6090c989e
+ languageName: node
+ linkType: hard
+
+"uglifyjs-webpack-plugin@npm:1.3.0":
+ version: 1.3.0
+ resolution: "uglifyjs-webpack-plugin@npm:1.3.0"
+ dependencies:
+ cacache: "npm:^10.0.4"
+ find-cache-dir: "npm:^1.0.0"
+ schema-utils: "npm:^0.4.5"
+ serialize-javascript: "npm:^1.4.0"
+ source-map: "npm:^0.6.1"
+ uglify-es: "npm:^3.3.4"
+ webpack-sources: "npm:^1.1.0"
+ worker-farm: "npm:^1.5.2"
+ peerDependencies:
+ webpack: ^2.0.0 || ^3.0.0 || ^4.0.0
+ checksum: 10c0/d10ae2ac25f64afddff328fbaa58640450c099c53e44d66829681a5415ef72aa2563d1e5ed43e0e9c409db869575fd914293faaa39288e21da518084878de413
+ languageName: node
+ linkType: hard
+
+"uniq@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "uniq@npm:1.0.1"
+ checksum: 10c0/369dca4a07fdd8de9e48378b9d4b6861722ca71d5f496e91687916bd4b48b8cf3d6db1677be1b40eea63bc6d4728efb4b4e0bd7a89c5fd2d23e7a2cff8009c7a
+ languageName: node
+ linkType: hard
+
+"uniqs@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "uniqs@npm:2.0.0"
+ checksum: 10c0/f244b158f6b3d30ddea2092c581fe9eb746d6db889a859fd0001e4b7566767bfcc53cdf11e6286f097bb130ebad71025709f41f2e4dd38e5c2f03ec28052baab
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "unique-filename@npm:1.1.1"
+ dependencies:
+ unique-slug: "npm:^2.0.0"
+ checksum: 10c0/d005bdfaae6894da8407c4de2b52f38b3c58ec86e79fc2ee19939da3085374413b073478ec54e721dc8e32b102cf9e50d0481b8331abdc62202e774b789ea874
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "unique-slug@npm:2.0.2"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ checksum: 10c0/9eabc51680cf0b8b197811a48857e41f1364b25362300c1ff636c0eca5ec543a92a38786f59cf0697e62c6f814b11ecbe64e8093db71246468a1f03b80c83970
+ languageName: node
+ linkType: hard
+
+"uri-js@npm:^4.2.2":
+ version: 4.4.1
+ resolution: "uri-js@npm:4.4.1"
+ dependencies:
+ punycode: "npm:^2.1.0"
+ checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
+ languageName: node
+ linkType: hard
+
+"url-loader@npm:~0.6.2":
+ version: 0.6.2
+ resolution: "url-loader@npm:0.6.2"
+ dependencies:
+ loader-utils: "npm:^1.0.2"
+ mime: "npm:^1.4.1"
+ schema-utils: "npm:^0.3.0"
+ peerDependencies:
+ file-loader: "*"
+ checksum: 10c0/c8e2de856011315fb436201ddd2f870d5bc52fcca68cb69c35f74cab891e5a24b97cd75dd4c753046d55841521b0c0939e7f9aef5170b7c8536c6cd3617880b4
+ languageName: node
+ linkType: hard
+
+"url@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "url@npm:0.11.0"
+ dependencies:
+ punycode: "npm:1.3.2"
+ querystring: "npm:0.2.0"
+ checksum: 10c0/bbe05f9f570ec5c06421c50ca63f287e61279092eed0891db69a9619323703ccd3987e6eed234c468794cf25680c599680d5c1f58d26090f1956c8e9ed8346a2
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
+ languageName: node
+ linkType: hard
+
+"util@npm:0.10.3":
+ version: 0.10.3
+ resolution: "util@npm:0.10.3"
+ dependencies:
+ inherits: "npm:2.0.1"
+ checksum: 10c0/88bb58fec3b1f5f43dea27795f61f24b3b505bbba6f3ad6e91b32db0cd0928b2acb54ebe21603a75743c6e21a52f954cd2ffb6cddafed5a01169dd1287db3ff3
+ languageName: node
+ linkType: hard
+
+"util@npm:^0.11.0":
+ version: 0.11.1
+ resolution: "util@npm:0.11.1"
+ dependencies:
+ inherits: "npm:2.0.3"
+ checksum: 10c0/8e9d1a85e661c8a8d9883d821aedbff3f8d9c3accd85357020905386ada5653b20389fc3591901e2a0bde64f8dc86b28c3f990114aa5a38eaaf30b455fa3cdf6
+ languageName: node
+ linkType: hard
+
+"validate-npm-package-license@npm:^3.0.1":
+ version: 3.0.4
+ resolution: "validate-npm-package-license@npm:3.0.4"
+ dependencies:
+ spdx-correct: "npm:^3.0.0"
+ spdx-expression-parse: "npm:^3.0.0"
+ checksum: 10c0/7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f
+ languageName: node
+ linkType: hard
+
+"vendors@npm:^1.0.0":
+ version: 1.0.4
+ resolution: "vendors@npm:1.0.4"
+ checksum: 10c0/a9b097f3607013a23bf447cbaff85b79b694cc23b20e81a6aea1ea9e1c59854c93f7c87abcc71b57999e050606e499d9ce18df67968823644b20f6e03d56022a
+ languageName: node
+ linkType: hard
+
+"vm-browserify@npm:^1.0.1":
+ version: 1.1.2
+ resolution: "vm-browserify@npm:1.1.2"
+ checksum: 10c0/0cc1af6e0d880deb58bc974921320c187f9e0a94f25570fca6b1bd64e798ce454ab87dfd797551b1b0cc1849307421aae0193cedf5f06bdb5680476780ee344b
+ languageName: node
+ linkType: hard
+
+"watchpack@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "watchpack@npm:2.3.1"
+ dependencies:
+ glob-to-regexp: "npm:^0.4.1"
+ graceful-fs: "npm:^4.1.2"
+ checksum: 10c0/00e44f5cc6ca299dd1ff52bf926a70a23ae1aeb6b399b7e32569d6d31ef1fc9bc3f5570ade6fef220dd6d74ee70259c9621b79cf487552caf1ea2727aa40f984
+ languageName: node
+ linkType: hard
+
+"webpack-sources@npm:^1.0.1, webpack-sources@npm:^1.1.0":
+ version: 1.4.3
+ resolution: "webpack-sources@npm:1.4.3"
+ dependencies:
+ source-list-map: "npm:^2.0.0"
+ source-map: "npm:~0.6.1"
+ checksum: 10c0/78dafb3e1e297d3f4eb6204311e8c64d28cd028f82887ba33aaf03fffc82482d8e1fdf6de25a60f4dde621d3565f4c3b1bfb350f09add8f4e54e00279ff3db5e
+ languageName: node
+ linkType: hard
+
+"webpack@npm:3.12.0":
+ version: 3.12.0
+ resolution: "webpack@npm:3.12.0"
+ dependencies:
+ acorn: "npm:^5.0.0"
+ acorn-dynamic-import: "npm:^2.0.0"
+ ajv: "npm:^6.1.0"
+ ajv-keywords: "npm:^3.1.0"
+ async: "npm:^2.1.2"
+ enhanced-resolve: "npm:^3.4.0"
+ escope: "npm:^3.6.0"
+ interpret: "npm:^1.0.0"
+ json-loader: "npm:^0.5.4"
+ json5: "npm:^0.5.1"
+ loader-runner: "npm:^2.3.0"
+ loader-utils: "npm:^1.1.0"
+ memory-fs: "npm:~0.4.1"
+ mkdirp: "npm:~0.5.0"
+ node-libs-browser: "npm:^2.0.0"
+ source-map: "npm:^0.5.3"
+ supports-color: "npm:^4.2.1"
+ tapable: "npm:^0.2.7"
+ uglifyjs-webpack-plugin: "npm:^0.4.6"
+ watchpack: "npm:^1.4.0"
+ webpack-sources: "npm:^1.0.1"
+ yargs: "npm:^8.0.2"
+ bin:
+ webpack: ./bin/webpack.js
+ checksum: 10c0/64051e33b94d641ea6ed85e6d33d0964ff27ce28f4dd9a989dee39ce98b67fadd057fecd2bfdf49c8fe8909c0c74e415f01381e7a105f926968b1a6eb92f5220
+ languageName: node
+ linkType: hard
+
+"whet.extend@npm:~0.9.9":
+ version: 0.9.9
+ resolution: "whet.extend@npm:0.9.9"
+ checksum: 10c0/75c48bfe0cdd36b7c510286d591b34a1a6810ba914b0c8f23788c2a17f4592706debaf1f1f667c7f46f1a657c4f1d5f2889ce234b570827acbb29bf28799ce7f
+ languageName: node
+ linkType: hard
+
+"which-module@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "which-module@npm:2.0.0"
+ checksum: 10c0/946ffdbcd6f0cf517638f8f2319c6d51e528c3b41bc2c0f5dc3dc46047347abd7326aea5cdf5def0a8b32bdca313ac87a32ce5a76b943fe1ca876c4557e6b716
+ languageName: node
+ linkType: hard
+
+"which@npm:^1.2.9":
+ version: 1.3.1
+ resolution: "which@npm:1.3.1"
+ dependencies:
+ isexe: "npm:^2.0.0"
+ bin:
+ which: ./bin/which
+ checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59
+ languageName: node
+ linkType: hard
+
+"which@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "which@npm:6.0.1"
+ dependencies:
+ isexe: "npm:^4.0.0"
+ bin:
+ node-which: bin/which.js
+ checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5
+ languageName: node
+ linkType: hard
+
+"worker-farm@npm:^1.5.2":
+ version: 1.7.0
+ resolution: "worker-farm@npm:1.7.0"
+ dependencies:
+ errno: "npm:~0.1.7"
+ checksum: 10c0/069a032f9198a07273a7608dc0c23d7288c1c25256b66008e1ae95838cda6fa2c7aefb3b7ba760f975c8d18120ca54eb193afb66d7237b2a05e5da12c1c961f7
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "wrap-ansi@npm:2.1.0"
+ dependencies:
+ string-width: "npm:^1.0.1"
+ strip-ansi: "npm:^3.0.1"
+ checksum: 10c0/1a47367eef192fc9ecaf00238bad5de8987c3368082b619ab36c5e2d6d7b0a2aef95a2ca65840be598c56ced5090a3ba487956c7aee0cac7c45017502fa980fb
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0
+ languageName: node
+ linkType: hard
+
+"xtend@npm:^4.0.0, xtend@npm:~4.0.1":
+ version: 4.0.2
+ resolution: "xtend@npm:4.0.2"
+ checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^3.2.1":
+ version: 3.2.2
+ resolution: "y18n@npm:3.2.2"
+ checksum: 10c0/08dc1880f6f766057ed25cd61ef0c7dab3db93639db9a7487a84f75dac7a349dface8dff8d1d8b7bdf50969fcd69ab858ab26b06968b4e4b12ee60d195233c46
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^4.0.0":
+ version: 4.0.3
+ resolution: "y18n@npm:4.0.3"
+ checksum: 10c0/308a2efd7cc296ab2c0f3b9284fd4827be01cfeb647b3ba18230e3a416eb1bc887ac050de9f8c4fd9e7856b2e8246e05d190b53c96c5ad8d8cb56dffb6f81024
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "yallist@npm:2.1.2"
+ checksum: 10c0/0b9e25aa00adf19e01d2bcd4b208aee2b0db643d9927131797b7af5ff69480fc80f1c3db738cbf3946f0bddf39d8f2d0a5709c644fd42d4aa3a4e6e786c087b5
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "yallist@npm:5.0.0"
+ checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416
+ languageName: node
+ linkType: hard
+
+"yargs-parser@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "yargs-parser@npm:7.0.0"
+ dependencies:
+ camelcase: "npm:^4.1.0"
+ checksum: 10c0/6fde2df522dd071cf76308fe4e37fd2fb8eae3eb1fb6c6759c2d448264c8451162649eb8558ac8d83aff79278cabfddc17ecba3e1a0d0fe2e406cf4e1bc95b0d
+ languageName: node
+ linkType: hard
+
+"yargs@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "yargs@npm:8.0.2"
+ dependencies:
+ camelcase: "npm:^4.1.0"
+ cliui: "npm:^3.2.0"
+ decamelize: "npm:^1.1.1"
+ get-caller-file: "npm:^1.0.1"
+ os-locale: "npm:^2.0.0"
+ read-pkg-up: "npm:^2.0.0"
+ require-directory: "npm:^2.1.1"
+ require-main-filename: "npm:^1.0.1"
+ set-blocking: "npm:^2.0.0"
+ string-width: "npm:^2.0.0"
+ which-module: "npm:^2.0.0"
+ y18n: "npm:^3.2.1"
+ yargs-parser: "npm:^7.0.0"
+ checksum: 10c0/70e4ed99e3f1e8a034d0b600773db9fb44e03ec88cfa7125fc65a965428051ad59e77c074afa1afcbe3ec34436d3a6e7ba18b3ec62b4e5f59f30606df791b125
+ languageName: node
+ linkType: hard
+
+"zxcvbn@npm:^4.2.0":
+ version: 4.4.2
+ resolution: "zxcvbn@npm:4.4.2"
+ checksum: 10c0/862f101cc95247b30290bad67ade333e430a16763bb771ce4e4c5414396d987f9a64288225675c96bd6f8d3eba65da0dee119b2a4eaa2e249da3f540b036942e
+ languageName: node
+ linkType: hard
From 3b8db24c9c6936871997c1c41ce85a1ea697be3a Mon Sep 17 00:00:00 2001
From: Yuhuai Liu
Date: Mon, 23 Mar 2026 10:19:54 -0400
Subject: [PATCH 28/31] Feature/pbs 26 2 (#11647)
* update yarn lock
* update admin yarn.lock
---
admin/yarn.lock | 8353 ++++++++++++++++++++++++++++-------------------
1 file changed, 4965 insertions(+), 3388 deletions(-)
diff --git a/admin/yarn.lock b/admin/yarn.lock
index 90252afd898..7a99e1b573b 100644
--- a/admin/yarn.lock
+++ b/admin/yarn.lock
@@ -1,3388 +1,4965 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-JSON2@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/JSON2/-/JSON2-0.1.0.tgz#8d7493040a63d5835af75f47decb83ab6c8c0790"
- integrity sha512-MRguCg79vy8Kx15/CXzoO5pEPi0tQq7T70mL/t1Hv3G+hVfJVO2BZqX3sl2kbWW08GAmzQYSRfWRtQhmK/eaYA==
-
-acorn-dynamic-import@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
- integrity sha512-GKp5tQ8h0KMPWIYGRHHXI1s5tUpZixZ3IHF2jAu42wSCf6In/G873s6/y4DdKdhWvzhu1T6mE1JgvnhAKqyYYQ==
- dependencies:
- acorn "^4.0.3"
-
-acorn@^4.0.3:
- version "4.0.13"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
- integrity sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==
-
-acorn@^5.0.0:
- version "5.7.4"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
- integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
-
-ajv-errors@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
- integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
-
-ajv-keywords@^3.1.0:
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
- integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
-
-ajv@^6.1.0:
- version "6.12.6"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
- integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
- dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
- integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==
-
-ansi-regex@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d"
- integrity sha512-q5i8bFLg2wDfsuR56c1NzlJFPzVD+9mxhDrhqOGigEFa87OZHlF+9dWeGWzVTP/0ECiA/JUGzfzRr2t3eYORRw==
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
- integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
-
-ansi-regex@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
- integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
- integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
-
-ansi-styles@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
-aproba@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
- integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-asn1.js@^5.2.0:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
- integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
- dependencies:
- bn.js "^4.0.0"
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
- safer-buffer "^2.1.0"
-
-assert@^1.1.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
- integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
- dependencies:
- object-assign "^4.1.1"
- util "0.10.3"
-
-async@^1.4.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
- integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==
-
-async@^2.1.2:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
- integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
- dependencies:
- lodash "^4.17.14"
-
-autoprefixer@^6.3.1:
- version "6.7.7"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014"
- integrity sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==
- dependencies:
- browserslist "^1.7.6"
- caniuse-db "^1.0.30000634"
- normalize-range "^0.1.2"
- num2fraction "^1.2.2"
- postcss "^5.2.16"
- postcss-value-parser "^3.2.3"
-
-babel-code-frame@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
- integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==
- dependencies:
- chalk "^1.1.3"
- esutils "^2.0.2"
- js-tokens "^3.0.2"
-
-babel-core@^6.0.0, babel-core@^6.26.0:
- version "6.26.3"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
- integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
- dependencies:
- babel-code-frame "^6.26.0"
- babel-generator "^6.26.0"
- babel-helpers "^6.24.1"
- babel-messages "^6.23.0"
- babel-register "^6.26.0"
- babel-runtime "^6.26.0"
- babel-template "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- convert-source-map "^1.5.1"
- debug "^2.6.9"
- json5 "^0.5.1"
- lodash "^4.17.4"
- minimatch "^3.0.4"
- path-is-absolute "^1.0.1"
- private "^0.1.8"
- slash "^1.0.0"
- source-map "^0.5.7"
-
-babel-generator@^6.26.0:
- version "6.26.1"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
- integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==
- dependencies:
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- detect-indent "^4.0.0"
- jsesc "^1.3.0"
- lodash "^4.17.4"
- source-map "^0.5.7"
- trim-right "^1.0.1"
-
-babel-helpers@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
- integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==
- dependencies:
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-loader@^6.4.1:
- version "6.4.1"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca"
- integrity sha512-hHvbCsXtwKIznu5Qmqfe/IwZ4O5frqe+j04fN/5u/9Rg48dpWIKyYqAN68N1wwqGSMToo4FhU9/MrH+QZlFdkQ==
- dependencies:
- find-cache-dir "^0.1.1"
- loader-utils "^0.2.16"
- mkdirp "^0.5.1"
- object-assign "^4.0.1"
-
-babel-messages@^6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
- integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-register@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
- integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==
- dependencies:
- babel-core "^6.26.0"
- babel-runtime "^6.26.0"
- core-js "^2.5.0"
- home-or-tmp "^2.0.0"
- lodash "^4.17.4"
- mkdirp "^0.5.1"
- source-map-support "^0.4.15"
-
-babel-runtime@^6.22.0, babel-runtime@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
- integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.11.0"
-
-babel-template@^6.24.1, babel-template@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
- integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==
- dependencies:
- babel-runtime "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- lodash "^4.17.4"
-
-babel-traverse@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
- integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==
- dependencies:
- babel-code-frame "^6.26.0"
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- debug "^2.6.8"
- globals "^9.18.0"
- invariant "^2.2.2"
- lodash "^4.17.4"
-
-babel-types@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
- integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==
- dependencies:
- babel-runtime "^6.26.0"
- esutils "^2.0.2"
- lodash "^4.17.4"
- to-fast-properties "^1.0.3"
-
-babylon@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
- integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
-
-balanced-match@^0.4.2:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
- integrity sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg==
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-base64-js@^1.0.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
- integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-
-big.js@^3.1.3:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
- integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
-
-big.js@^5.2.2:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
- integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
-
-bluebird@^3.5.1:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
- integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
- version "4.12.0"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
- integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-
-bn.js@^5.0.0, bn.js@^5.1.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
- integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
-
-bootstrap-colorpicker@^2.5.2:
- version "2.5.3"
- resolved "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-2.5.3.tgz#b50aff8590fbaa6b5aa63a5624e4213f1659a49d"
- integrity sha512-xdllX8LSMvKULs3b8JrgRXTvyvjkSMHHHVuHjjN5FNMqr6kRe5NPiMHFmeAFjlgDF73MspikudLuEwR28LbzLw==
- dependencies:
- jquery ">=1.10"
-
-bootstrap-tagsinput@^0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/bootstrap-tagsinput/-/bootstrap-tagsinput-0.7.1.tgz#ffe3b06bbe2a106945ef2814568005a94f211937"
- integrity sha512-xSks67GWgXLnmO5gqp788vhh7WoXd9mHj5uKE5zg8rvw3sNYYSCjrSlrPRlPdpYKwmuxeuf2jsNjBSWEucyB1w==
-
-bower@^1.3.12:
- version "1.8.14"
- resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.14.tgz#985722a3c1fcd35c93d4136ecbeafbeaaea74e86"
- integrity sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ==
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-brorand@^1.0.1, brorand@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
- integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
-
-browserify-aes@^1.0.0, browserify-aes@^1.0.4:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
- integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
- dependencies:
- buffer-xor "^1.0.3"
- cipher-base "^1.0.0"
- create-hash "^1.1.0"
- evp_bytestokey "^1.0.3"
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-browserify-cipher@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
- integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
- dependencies:
- browserify-aes "^1.0.4"
- browserify-des "^1.0.0"
- evp_bytestokey "^1.0.0"
-
-browserify-des@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
- integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
- dependencies:
- cipher-base "^1.0.1"
- des.js "^1.0.0"
- inherits "^2.0.1"
- safe-buffer "^5.1.2"
-
-browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
- integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
- dependencies:
- bn.js "^5.0.0"
- randombytes "^2.0.1"
-
-browserify-sign@^4.0.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
- integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
- dependencies:
- bn.js "^5.1.1"
- browserify-rsa "^4.0.1"
- create-hash "^1.2.0"
- create-hmac "^1.1.7"
- elliptic "^6.5.3"
- inherits "^2.0.4"
- parse-asn1 "^5.1.5"
- readable-stream "^3.6.0"
- safe-buffer "^5.2.0"
-
-browserify-versionify@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/browserify-versionify/-/browserify-versionify-1.0.3.tgz#927eaaf85f16fe8d8d59eb1c6da76b488c01406c"
- integrity sha512-QJ6s79FZWcKlYptoyd1K5/m+hYuVN8aW8k5b5Z7U9GhL8lR9YrAtADftcSeBJOeltjqfr2JlmtU3FfS+GU/cXQ==
- dependencies:
- find-root "^0.1.1"
- through2 "0.6.3"
-
-browserify-zlib@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
- integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
- dependencies:
- pako "~1.0.5"
-
-browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
- version "1.7.7"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
- integrity sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==
- dependencies:
- caniuse-db "^1.0.30000639"
- electron-to-chromium "^1.2.7"
-
-buffer-from@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-buffer-xor@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
- integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
-
-buffer@^4.3.0:
- version "4.9.2"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
- integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
- dependencies:
- base64-js "^1.0.2"
- ieee754 "^1.1.4"
- isarray "^1.0.0"
-
-builtin-status-codes@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
- integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==
-
-cacache@^10.0.4:
- version "10.0.4"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
- integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
- dependencies:
- bluebird "^3.5.1"
- chownr "^1.0.1"
- glob "^7.1.2"
- graceful-fs "^4.1.11"
- lru-cache "^4.1.1"
- mississippi "^2.0.0"
- mkdirp "^0.5.1"
- move-concurrently "^1.0.1"
- promise-inflight "^1.0.1"
- rimraf "^2.6.2"
- ssri "^5.2.4"
- unique-filename "^1.1.0"
- y18n "^4.0.0"
-
-camelcase@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
- integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==
-
-caniuse-api@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
- integrity sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q==
- dependencies:
- browserslist "^1.3.6"
- caniuse-db "^1.0.30000529"
- lodash.memoize "^4.1.2"
- lodash.uniq "^4.5.0"
-
-caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
- version "1.0.30001359"
- resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001359.tgz#6642bf0d654c7db0df413e45d9be9ee15db822a1"
- integrity sha512-9c4zPEXTKlVEWtHY5SDVxQZg09US8oyCf7wEPByyGR7T9lKXdhgxMiyS5DWwXaz4cPJiW4zmkM/mUsJSBb9VXw==
-
-chalk@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-chalk@^2.4.1:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
-charenc@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
- integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
-
-chownr@^1.0.1:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
- integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
-
-cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
- integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-clap@^1.0.9:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
- integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==
- dependencies:
- chalk "^1.1.3"
-
-cliui@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
- integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wrap-ansi "^2.0.0"
-
-clone@^1.0.2:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
- integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
-
-coa@~1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
- integrity sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==
- dependencies:
- q "^1.1.2"
-
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
- integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==
-
-color-convert@^1.3.0, color-convert@^1.9.0:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
-
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
-
-color-name@^1.0.0:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-color-string@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
- integrity sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA==
- dependencies:
- color-name "^1.0.0"
-
-color@^0.11.0:
- version "0.11.4"
- resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
- integrity sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA==
- dependencies:
- clone "^1.0.2"
- color-convert "^1.3.0"
- color-string "^0.3.0"
-
-colormin@^1.0.5:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
- integrity sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ==
- dependencies:
- color "^0.11.0"
- css-color-names "0.0.4"
- has "^1.0.1"
-
-colors@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
- integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==
-
-combined-stream@^1.0.5:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
- integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
- dependencies:
- delayed-stream "~1.0.0"
-
-commander@~2.13.0:
- version "2.13.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
- integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
-
-commondir@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
- integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
-
-component-emitter@^1.1.3:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
- integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
-component-emitter@~1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
- integrity sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-concat-stream@^1.5.0:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
- integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
- dependencies:
- buffer-from "^1.0.0"
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
-console-browserify@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
- integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
-
-constants-browserify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
- integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==
-
-convert-source-map@^1.5.1:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
- integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
- dependencies:
- safe-buffer "~5.1.1"
-
-cookie@0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
- integrity sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==
-
-cookiejar@2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.0.6.tgz#0abf356ad00d1c5a219d88d44518046dd026acfe"
- integrity sha512-X9IsySmsr1heROBZCpyEYhqJyU7CXNJoVxIlQ5bBb7DskYUx0mQ+g2f7yPYajceZeGJWHQbIfGB6j0hywV/ARQ==
-
-copy-anything@^2.0.1:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480"
- integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==
- dependencies:
- is-what "^3.14.1"
-
-copy-concurrently@^1.0.0:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
- integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
- dependencies:
- aproba "^1.1.1"
- fs-write-stream-atomic "^1.0.8"
- iferr "^0.1.5"
- mkdirp "^0.5.1"
- rimraf "^2.5.4"
- run-queue "^1.0.0"
-
-core-js@^2.4.0, core-js@^2.5.0:
- version "2.6.12"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
- integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
-
-core-util-is@~1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
- integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
-
-create-ecdh@^4.0.0:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
- integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
- dependencies:
- bn.js "^4.1.0"
- elliptic "^6.5.3"
-
-create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
- integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
- dependencies:
- cipher-base "^1.0.1"
- inherits "^2.0.1"
- md5.js "^1.3.4"
- ripemd160 "^2.0.1"
- sha.js "^2.4.0"
-
-create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
- integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
- dependencies:
- cipher-base "^1.0.3"
- create-hash "^1.1.0"
- inherits "^2.0.1"
- ripemd160 "^2.0.0"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-cross-spawn@^5.0.1:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
- integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==
- dependencies:
- lru-cache "^4.0.1"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
-crypt@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
- integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==
-
-crypto-browserify@^3.11.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
- integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
- dependencies:
- browserify-cipher "^1.0.0"
- browserify-sign "^4.0.0"
- create-ecdh "^4.0.0"
- create-hash "^1.1.0"
- create-hmac "^1.1.0"
- diffie-hellman "^5.0.0"
- inherits "^2.0.1"
- pbkdf2 "^3.0.3"
- public-encrypt "^4.0.0"
- randombytes "^2.0.0"
- randomfill "^1.0.3"
-
-css-color-names@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
- integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==
-
-css-loader@^0.28.11, css-loader@~0.26.1:
- version "0.28.11"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7"
- integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==
- dependencies:
- babel-code-frame "^6.26.0"
- css-selector-tokenizer "^0.7.0"
- cssnano "^3.10.0"
- icss-utils "^2.1.0"
- loader-utils "^1.0.2"
- lodash.camelcase "^4.3.0"
- object-assign "^4.1.1"
- postcss "^5.0.6"
- postcss-modules-extract-imports "^1.2.0"
- postcss-modules-local-by-default "^1.2.0"
- postcss-modules-scope "^1.1.0"
- postcss-modules-values "^1.3.0"
- postcss-value-parser "^3.3.0"
- source-list-map "^2.0.0"
-
-css-selector-tokenizer@^0.7.0:
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1"
- integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==
- dependencies:
- cssesc "^3.0.0"
- fastparse "^1.1.2"
-
-cssesc@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
- integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-
-cssnano@^3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"
- integrity sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg==
- dependencies:
- autoprefixer "^6.3.1"
- decamelize "^1.1.2"
- defined "^1.0.0"
- has "^1.0.1"
- object-assign "^4.0.1"
- postcss "^5.0.14"
- postcss-calc "^5.2.0"
- postcss-colormin "^2.1.8"
- postcss-convert-values "^2.3.4"
- postcss-discard-comments "^2.0.4"
- postcss-discard-duplicates "^2.0.1"
- postcss-discard-empty "^2.0.1"
- postcss-discard-overridden "^0.1.1"
- postcss-discard-unused "^2.2.1"
- postcss-filter-plugins "^2.0.0"
- postcss-merge-idents "^2.1.5"
- postcss-merge-longhand "^2.0.1"
- postcss-merge-rules "^2.0.3"
- postcss-minify-font-values "^1.0.2"
- postcss-minify-gradients "^1.0.1"
- postcss-minify-params "^1.0.4"
- postcss-minify-selectors "^2.0.4"
- postcss-normalize-charset "^1.1.0"
- postcss-normalize-url "^3.0.7"
- postcss-ordered-values "^2.1.0"
- postcss-reduce-idents "^2.2.2"
- postcss-reduce-initial "^1.0.0"
- postcss-reduce-transforms "^1.0.3"
- postcss-svgo "^2.1.1"
- postcss-unique-selectors "^2.0.2"
- postcss-value-parser "^3.2.3"
- postcss-zindex "^2.0.1"
-
-csso@~2.3.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85"
- integrity sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w==
- dependencies:
- clap "^1.0.9"
- source-map "^0.5.3"
-
-cyclist@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
- integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==
-
-d@1, d@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
- integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
- dependencies:
- es5-ext "^0.10.50"
- type "^1.0.1"
-
-debug@2, debug@^2.6.8, debug@^2.6.9:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-debug@^3.2.6:
- version "3.2.7"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
- integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
- dependencies:
- ms "^2.1.1"
-
-decamelize@^1.1.1, decamelize@^1.1.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
-
-defined@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693"
- integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
- integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
-
-des.js@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
- integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
- dependencies:
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
-
-detect-indent@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
- integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==
- dependencies:
- repeating "^2.0.0"
-
-diffie-hellman@^5.0.0:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
- integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
- dependencies:
- bn.js "^4.1.0"
- miller-rabin "^4.0.0"
- randombytes "^2.0.0"
-
-domain-browser@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
- integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-
-domready@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/domready/-/domready-0.3.0.tgz#b3740facbd09163018152d12aec239383e102175"
- integrity sha512-0w07yqKSi2caAo0qESL8Ou+ZkDfOrzxyJzSvJEdKmjOzPobPo7d4QFxpLjrq8zmigWP2mh2i/5F53NKSkPIqbA==
-
-duplexify@^3.4.2, duplexify@^3.6.0:
- version "3.7.1"
- resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
- integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
- dependencies:
- end-of-stream "^1.0.0"
- inherits "^2.0.1"
- readable-stream "^2.0.0"
- stream-shift "^1.0.0"
-
-electron-to-chromium@^1.2.7:
- version "1.4.172"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.172.tgz#87335795a3dc19e7b6dd5af291038477d81dc6b1"
- integrity sha512-yDoFfTJnqBAB6hSiPvzmsBJSrjOXJtHSJoqJdI/zSIh7DYupYnIOHt/bbPw/WE31BJjNTybDdNAs21gCMnTh0Q==
-
-elliptic@^6.5.3:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
- integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
- dependencies:
- bn.js "^4.11.9"
- brorand "^1.1.0"
- hash.js "^1.0.0"
- hmac-drbg "^1.0.1"
- inherits "^2.0.4"
- minimalistic-assert "^1.0.1"
- minimalistic-crypto-utils "^1.0.1"
-
-emojis-list@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
- integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==
-
-emojis-list@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
- integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
-
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
- integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
- dependencies:
- once "^1.4.0"
-
-enhanced-resolve@^3.4.0:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
- integrity sha512-ZaAux1rigq1e2nQrztHn4h2ugvpzZxs64qneNah+8Mh/K0CRqJFJc+UoXnUsq+1yX+DmQFPPdVqboKAJ89e0Iw==
- dependencies:
- graceful-fs "^4.1.2"
- memory-fs "^0.4.0"
- object-assign "^4.0.1"
- tapable "^0.2.7"
-
-errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
- integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
- dependencies:
- prr "~1.0.1"
-
-error-ex@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14:
- version "0.10.61"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.61.tgz#311de37949ef86b6b0dcea894d1ffedb909d3269"
- integrity sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==
- dependencies:
- es6-iterator "^2.0.3"
- es6-symbol "^3.1.3"
- next-tick "^1.1.0"
-
-es6-iterator@^2.0.3, es6-iterator@~2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
- integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
- dependencies:
- d "1"
- es5-ext "^0.10.35"
- es6-symbol "^3.1.1"
-
-es6-map@^0.1.3:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
- integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-set "~0.1.5"
- es6-symbol "~3.1.1"
- event-emitter "~0.3.5"
-
-es6-set@~0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
- integrity sha512-7S8YXIcUfPMOr3rqJBVMePAbRsD1nWeSMQ86K/lDI76S3WKXz+KWILvTIPbTroubOkZTGh+b+7/xIIphZXNYbA==
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-symbol "3.1.1"
- event-emitter "~0.3.5"
-
-es6-symbol@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
- integrity sha512-exfuQY8UGtn/N+gL1iKkH8fpNd5sJ760nJq6mmZAHldfxMD5kX07lbQuYlspoXsuknXNv9Fb7y2GsPOnQIbxHg==
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
- integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
- dependencies:
- d "^1.0.1"
- ext "^1.1.2"
-
-es6-weak-map@^2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
- integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
- dependencies:
- d "1"
- es5-ext "^0.10.46"
- es6-iterator "^2.0.3"
- es6-symbol "^3.1.1"
-
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
-
-escope@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
- integrity sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==
- dependencies:
- es6-map "^0.1.3"
- es6-weak-map "^2.0.1"
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
-esprima@^2.6.0:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
- integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==
-
-esrecurse@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
- integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
- dependencies:
- estraverse "^5.2.0"
-
-estraverse@^4.1.1:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
- integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
-estraverse@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
- integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-event-emitter@~0.3.5:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
- integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-events@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
- integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
-
-evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
- integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
- dependencies:
- md5.js "^1.3.4"
- safe-buffer "^5.1.1"
-
-execa@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
- integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==
- dependencies:
- cross-spawn "^5.0.1"
- get-stream "^3.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
-ext@^1.1.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52"
- integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==
- dependencies:
- type "^2.5.0"
-
-extend@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
- integrity sha512-5mYyg57hpD+sFaJmgNL9BidQ5C7dmJE3U5vzlRWbuqG+8dytvYEoxvKs6Tj5cm3LpMsFvRt20qz1ckezmsOUgQ==
-
-fast-deep-equal@^3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
- integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-json-stable-stringify@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
-fastparse@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
- integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
-
-find-cache-dir@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
- integrity sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A==
- dependencies:
- commondir "^1.0.1"
- mkdirp "^0.5.1"
- pkg-dir "^1.0.0"
-
-find-cache-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
- integrity sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==
- dependencies:
- commondir "^1.0.1"
- make-dir "^1.0.0"
- pkg-dir "^2.0.0"
-
-find-root@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1"
- integrity sha512-GyDxVgA61TZcrgDJPqOqGBpi80Uf2yIstubgizi7AjC9yPdRrqBR+Y0MvK4kXnYlaoz3d+SGxDHMYVkwI/yd2w==
-
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
-find-up@^2.0.0, find-up@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
- dependencies:
- locate-path "^2.0.0"
-
-flatten@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
- integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==
-
-flush-write-stream@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
- integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
- dependencies:
- inherits "^2.0.3"
- readable-stream "^2.3.6"
-
-font-awesome-webpack@0.0.5-beta.2:
- version "0.0.5-beta.2"
- resolved "https://registry.yarnpkg.com/font-awesome-webpack/-/font-awesome-webpack-0.0.5-beta.2.tgz#9ea5f22f0615d08e76d8db341563649a726286d6"
- integrity sha512-er4SI8BEy7gwq360+H0/s00IqekBuyOYgr5on3wG7/Kj9SQa8D3LJ87aj8zXTTyp+qswHtbWl5gye/ZhYJdrYQ==
- dependencies:
- css-loader "~0.26.1"
- less-loader "~2.2.3"
- style-loader "~0.13.1"
-
-font-awesome@^4.5.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
- integrity sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==
-
-form-data@1.0.0-rc3:
- version "1.0.0-rc3"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.0-rc3.tgz#d35bc62e7fbc2937ae78f948aaa0d38d90607577"
- integrity sha512-Z5JWXWsFDI8x73Rt/Dc7SK/EvKBzudhqIVBtEhcAhtoevCTqO3YJmctGBLzT0Ggg39xFcefkXt00t1TYLz6D0w==
- dependencies:
- async "^1.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.3"
-
-formidable@~1.0.14:
- version "1.0.17"
- resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.17.tgz#ef5491490f9433b705faa77249c99029ae348559"
- integrity sha512-95MFT5qipMvUiesmuvGP1BI4hh5XWCzyTapiNJ/k8JBQda7rPy7UCWYItz2uZEdTgGNy1eInjzlL9Wx1O9fedg==
-
-from2@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
- integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==
- dependencies:
- inherits "^2.0.1"
- readable-stream "^2.0.0"
-
-fs-write-stream-atomic@^1.0.8:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
- integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==
- dependencies:
- graceful-fs "^4.1.2"
- iferr "^0.1.5"
- imurmurhash "^0.1.4"
- readable-stream "1 || 2"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
-get-caller-file@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
- integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
-
-get-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
- integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==
-
-glob-to-regexp@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
- integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
-
-glob@^7.1.2, glob@^7.1.3:
- version "7.2.3"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^9.18.0:
- version "9.18.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
- integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.2:
- version "4.2.10"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
- integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
- dependencies:
- ansi-regex "^2.0.0"
-
-has-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
- integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==
-
-has-flag@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
- integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==
-
-has-flag@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
- integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
-
-has@^1.0.1, has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- dependencies:
- function-bind "^1.1.1"
-
-hash-base@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
- integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
- dependencies:
- inherits "^2.0.4"
- readable-stream "^3.6.0"
- safe-buffer "^5.2.0"
-
-hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
- integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
- dependencies:
- inherits "^2.0.3"
- minimalistic-assert "^1.0.1"
-
-hmac-drbg@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
- integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
- dependencies:
- hash.js "^1.0.3"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.1"
-
-home-or-tmp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
- integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.1"
-
-hosted-git-info@^2.1.4:
- version "2.8.9"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
- integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
-
-html-comment-regex@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
- integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-
-https-browserify@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
- integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==
-
-iconv-lite@^0.6.3:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
- integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
- dependencies:
- safer-buffer ">= 2.1.2 < 3.0.0"
-
-icss-replace-symbols@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
- integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==
-
-icss-utils@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
- integrity sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==
- dependencies:
- postcss "^6.0.1"
-
-ieee754@^1.1.4:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
- integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-
-iferr@^0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
- integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==
-
-image-size@~0.5.0:
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
- integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-indexes-of@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
- integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inherits@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
- integrity sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==
-
-inherits@2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
- integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
-
-interpret@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
- integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-
-invariant@^2.2.2:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
- integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
- dependencies:
- loose-envify "^1.0.0"
-
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
- integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==
-
-is-absolute-url@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
- integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
-
-is-buffer@~1.1.6:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
- integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-core-module@^2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
- integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
- dependencies:
- has "^1.0.3"
-
-is-finite@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
- integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
-
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
-
-is-plain-obj@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
- integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
-
-is-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
- integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
-
-is-svg@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9"
- integrity sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw==
- dependencies:
- html-comment-regex "^1.1.0"
-
-is-what@^3.14.1:
- version "3.14.1"
- resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
- integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
-
-isarray@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
- integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
-
-isarray@^1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-
-jquery-datetimepicker@^2.5.21:
- version "2.5.21"
- resolved "https://registry.yarnpkg.com/jquery-datetimepicker/-/jquery-datetimepicker-2.5.21.tgz#00c388a78df2732fedfdb5c6529b6e84d53e0235"
- integrity sha512-wDTpZ4f1PWd1XGaIIE0n6jLynlm+akBJ7/NjaB1bk2UJSS593CHJPZ3+FNEXoyvNVUeBlBC0oX6WTfCyfUhX/w==
- dependencies:
- jquery ">= 1.7.2"
- jquery-mousewheel ">= 3.1.13"
- php-date-formatter "^1.3.4"
-
-"jquery-mousewheel@>= 3.1.13":
- version "3.1.13"
- resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5"
- integrity sha512-GXhSjfOPyDemM005YCEHvzrEALhKDIswtxSHSR2e4K/suHVJKJxxRCGz3skPjNxjJjQa9AVSGGlYjv1M3VLIPg==
-
-"jquery@>= 1.7.2", jquery@>=1.10:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
- integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
-
-js-base64@^2.1.9:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
- integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
-
-"js-tokens@^3.0.0 || ^4.0.0":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-tokens@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
- integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==
-
-js-yaml@~3.7.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
- integrity sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ==
- dependencies:
- argparse "^1.0.7"
- esprima "^2.6.0"
-
-jsesc@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
- integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==
-
-json-loader@^0.5.1, json-loader@^0.5.4:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
- integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==
-
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json3@^3.3.2:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
- integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
-
-json5@^0.5.0, json5@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
- integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==
-
-json5@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
- integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
- dependencies:
- minimist "^1.2.0"
-
-keen-js@^3.0.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/keen-js/-/keen-js-3.5.0.tgz#9274be9bb9ee1a92867872acb3627f5aa8147b79"
- integrity sha512-lB/JZ/KfF+EL8xoUEJgGUv7adBQiQ4Q8PLI22Lzl00GqX47UmjyWnY8GETfUML5gjNxl0uqGHx2kXu0jzHHFKQ==
- dependencies:
- JSON2 "^0.1.0"
- browserify-versionify "1.0.3"
- component-emitter "^1.1.3"
- domready "0.3.0"
- json3 "^3.3.2"
- spin.js "^2.0.1"
- superagent "^1.8.3"
-
-klona@^2.0.4:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc"
- integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==
-
-knockout@3.5.1:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/knockout/-/knockout-3.5.1.tgz#62c81e81843bea2008fd23c575edd9ca978e75cf"
- integrity sha512-wRJ9I4az0QcsH7A4v4l0enUpkS++MBx0BnL/68KaLzJg7x1qmbjSlwEoCNol7KTYZ+pmtI7Eh2J0Nu6/2Z5J/Q==
-
-lcid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==
- dependencies:
- invert-kv "^1.0.0"
-
-less-loader@^10.2.0:
- version "10.2.0"
- resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-10.2.0.tgz#97286d8797dc3dc05b1d16b0ecec5f968bdd4e32"
- integrity sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==
- dependencies:
- klona "^2.0.4"
-
-less-loader@~2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-2.2.3.tgz#b6d8f8139c8493df09d992a93a00734b08f84528"
- integrity sha512-U7lgRusyqTj1TUB6OBlmow6GigLk0n5ADuTSGblCp0nkXOk+lFq/lHTDXCHkm3WydZha2FVNZivEjCEZNFJCiw==
- dependencies:
- loader-utils "^0.2.5"
-
-less@^4.1.2:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/less/-/less-4.1.3.tgz#175be9ddcbf9b250173e0a00b4d6920a5b770246"
- integrity sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==
- dependencies:
- copy-anything "^2.0.1"
- parse-node-version "^1.0.1"
- tslib "^2.3.0"
- optionalDependencies:
- errno "^0.1.1"
- graceful-fs "^4.1.2"
- image-size "~0.5.0"
- make-dir "^2.1.0"
- mime "^1.4.1"
- needle "^3.1.0"
- source-map "~0.6.0"
-
-load-json-file@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
- integrity sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- strip-bom "^3.0.0"
-
-loader-runner@^2.3.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
- integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-
-loader-utils@^0.2.16, loader-utils@^0.2.5:
- version "0.2.17"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
- integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==
- dependencies:
- big.js "^3.1.3"
- emojis-list "^2.0.0"
- json5 "^0.5.0"
- object-assign "^4.0.1"
-
-loader-utils@^1.0.2, loader-utils@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
- integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
- dependencies:
- big.js "^5.2.2"
- emojis-list "^3.0.0"
- json5 "^1.0.1"
-
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
-
-lodash.camelcase@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
- integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
-
-lodash.memoize@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
- integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
-
-lodash.uniq@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
- integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
-
-lodash@^4.17.14, lodash@^4.17.4:
- version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-loose-envify@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
- integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
- dependencies:
- js-tokens "^3.0.0 || ^4.0.0"
-
-lru-cache@^4.0.1, lru-cache@^4.1.1:
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
- integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
- dependencies:
- pseudomap "^1.0.2"
- yallist "^2.1.2"
-
-make-dir@^1.0.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
- integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
- dependencies:
- pify "^3.0.0"
-
-make-dir@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
- integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
- dependencies:
- pify "^4.0.1"
- semver "^5.6.0"
-
-math-expression-evaluator@^1.2.14:
- version "1.3.14"
- resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.3.14.tgz#0ebeaccf65fea0f6f5a626f88df41814e5fcd9bf"
- integrity sha512-M6AMrvq9bO8uL42KvQHPA2/SbAobA0R7gviUmPrcTcGfdwpaLitz4q2Euzx2lP9Oy88vxK3HOrsISgSwKsYS4A==
-
-md5.js@^1.3.4:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
- integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
- dependencies:
- hash-base "^3.0.0"
- inherits "^2.0.1"
- safe-buffer "^5.1.2"
-
-md5@^2.2.1:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
- integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==
- dependencies:
- charenc "0.0.2"
- crypt "0.0.2"
- is-buffer "~1.1.6"
-
-mem@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
- integrity sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==
- dependencies:
- mimic-fn "^1.0.0"
-
-memory-fs@^0.4.0, memory-fs@~0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
- integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==
- dependencies:
- errno "^0.1.3"
- readable-stream "^2.0.1"
-
-methods@~1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
- integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
-
-miller-rabin@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
- integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
- dependencies:
- bn.js "^4.0.0"
- brorand "^1.0.1"
-
-mime-db@1.52.0:
- version "1.52.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
- integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-
-mime-types@^2.1.3:
- version "2.1.35"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
- integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
- dependencies:
- mime-db "1.52.0"
-
-mime@1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
- integrity sha512-sAaYXszED5ALBt665F0wMQCUXpGuZsGdopoqcHPdL39ZYdi7uHoZlhrfZfhv8WzivhBzr/oXwaj+yiK5wY8MXQ==
-
-mime@^1.4.1:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-mimic-fn@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
- integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
- integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
-minimalistic-crypto-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
- integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
-
-minimatch@^3.0.4, minimatch@^3.1.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@^1.2.0, minimist@^1.2.6:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
- integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
-
-mississippi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
- integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
- dependencies:
- concat-stream "^1.5.0"
- duplexify "^3.4.2"
- end-of-stream "^1.1.0"
- flush-write-stream "^1.0.0"
- from2 "^2.1.0"
- parallel-transform "^1.1.0"
- pump "^2.0.1"
- pumpify "^1.3.3"
- stream-each "^1.1.0"
- through2 "^2.0.0"
-
-mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
- integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
- dependencies:
- minimist "^1.2.6"
-
-move-concurrently@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
- integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==
- dependencies:
- aproba "^1.1.1"
- copy-concurrently "^1.0.0"
- fs-write-stream-atomic "^1.0.8"
- mkdirp "^0.5.1"
- rimraf "^2.5.4"
- run-queue "^1.0.3"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
-
-ms@^2.1.1:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-needle@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/needle/-/needle-3.1.0.tgz#3bf5cd090c28eb15644181ab6699e027bd6c53c9"
- integrity sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==
- dependencies:
- debug "^3.2.6"
- iconv-lite "^0.6.3"
- sax "^1.2.4"
-
-next-tick@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
- integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
-
-node-libs-browser@^2.0.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
- integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
- dependencies:
- assert "^1.1.1"
- browserify-zlib "^0.2.0"
- buffer "^4.3.0"
- console-browserify "^1.1.0"
- constants-browserify "^1.0.0"
- crypto-browserify "^3.11.0"
- domain-browser "^1.1.1"
- events "^3.0.0"
- https-browserify "^1.0.0"
- os-browserify "^0.3.0"
- path-browserify "0.0.1"
- process "^0.11.10"
- punycode "^1.2.4"
- querystring-es3 "^0.2.0"
- readable-stream "^2.3.3"
- stream-browserify "^2.0.1"
- stream-http "^2.7.2"
- string_decoder "^1.0.0"
- timers-browserify "^2.0.4"
- tty-browserify "0.0.0"
- url "^0.11.0"
- util "^0.11.0"
- vm-browserify "^1.0.1"
-
-normalize-package-data@^2.3.2:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
- integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
- dependencies:
- hosted-git-info "^2.1.4"
- resolve "^1.10.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
-
-normalize-range@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
- integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
-
-normalize-url@^1.4.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
- integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==
- dependencies:
- object-assign "^4.0.1"
- prepend-http "^1.0.0"
- query-string "^4.1.0"
- sort-keys "^1.0.0"
-
-npm-run-path@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
- integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
- dependencies:
- path-key "^2.0.0"
-
-num2fraction@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
- integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==
-
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
-
-object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
- dependencies:
- wrappy "1"
-
-os-browserify@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
- integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==
-
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
- integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==
-
-os-locale@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
- integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
- dependencies:
- execa "^0.7.0"
- lcid "^1.0.0"
- mem "^1.1.0"
-
-os-tmpdir@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
- integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
-
-p-finally@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
- integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
-
-p-limit@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
- integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
- dependencies:
- p-try "^1.0.0"
-
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
- dependencies:
- p-limit "^1.1.0"
-
-p-try@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
- integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
-
-pako@~1.0.5:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
- integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
-
-parallel-transform@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
- integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
- dependencies:
- cyclist "^1.0.1"
- inherits "^2.0.3"
- readable-stream "^2.1.5"
-
-parse-asn1@^5.0.0, parse-asn1@^5.1.5:
- version "5.1.6"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
- integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
- dependencies:
- asn1.js "^5.2.0"
- browserify-aes "^1.0.0"
- evp_bytestokey "^1.0.0"
- pbkdf2 "^3.0.3"
- safe-buffer "^5.1.1"
-
-parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==
- dependencies:
- error-ex "^1.2.0"
-
-parse-node-version@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
- integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
-
-path-browserify@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
- integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
-
-path-exists@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==
- dependencies:
- pinkie-promise "^2.0.0"
-
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
-
-path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-key@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
- integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-path-type@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
- integrity sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==
- dependencies:
- pify "^2.0.0"
-
-pbkdf2@^3.0.3:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
- integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
- dependencies:
- create-hash "^1.1.2"
- create-hmac "^1.1.4"
- ripemd160 "^2.0.1"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-php-date-formatter@^1.3.4:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/php-date-formatter/-/php-date-formatter-1.3.6.tgz#6d67359da890c742005fa89d20be3ded31cc1d2a"
- integrity sha512-/CKsZYmAwXeNh8KpD/CF9hcJDZNhdb2ICN8+qgqOt5sUu9liZIxZ1R284TNj5MtPt8RjG5X0xn6WSqL0kcKMBg==
-
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
- integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
-
-pify@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
- integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
-
-pify@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
- integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
- integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
-
-pkg-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
- integrity sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg==
- dependencies:
- find-up "^1.0.0"
-
-pkg-dir@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
- integrity sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==
- dependencies:
- find-up "^2.1.0"
-
-postcss-calc@^5.2.0:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e"
- integrity sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q==
- dependencies:
- postcss "^5.0.2"
- postcss-message-helpers "^2.0.0"
- reduce-css-calc "^1.2.6"
-
-postcss-colormin@^2.1.8:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b"
- integrity sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w==
- dependencies:
- colormin "^1.0.5"
- postcss "^5.0.13"
- postcss-value-parser "^3.2.3"
-
-postcss-convert-values@^2.3.4:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d"
- integrity sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA==
- dependencies:
- postcss "^5.0.11"
- postcss-value-parser "^3.1.2"
-
-postcss-discard-comments@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d"
- integrity sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg==
- dependencies:
- postcss "^5.0.14"
-
-postcss-discard-duplicates@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932"
- integrity sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA==
- dependencies:
- postcss "^5.0.4"
-
-postcss-discard-empty@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5"
- integrity sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og==
- dependencies:
- postcss "^5.0.14"
-
-postcss-discard-overridden@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58"
- integrity sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA==
- dependencies:
- postcss "^5.0.16"
-
-postcss-discard-unused@^2.2.1:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433"
- integrity sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg==
- dependencies:
- postcss "^5.0.14"
- uniqs "^2.0.0"
-
-postcss-filter-plugins@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec"
- integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==
- dependencies:
- postcss "^5.0.4"
-
-postcss-merge-idents@^2.1.5:
- version "2.1.7"
- resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270"
- integrity sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA==
- dependencies:
- has "^1.0.1"
- postcss "^5.0.10"
- postcss-value-parser "^3.1.1"
-
-postcss-merge-longhand@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658"
- integrity sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg==
- dependencies:
- postcss "^5.0.4"
-
-postcss-merge-rules@^2.0.3:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721"
- integrity sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q==
- dependencies:
- browserslist "^1.5.2"
- caniuse-api "^1.5.2"
- postcss "^5.0.4"
- postcss-selector-parser "^2.2.2"
- vendors "^1.0.0"
-
-postcss-message-helpers@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"
- integrity sha512-tPLZzVAiIJp46TBbpXtrUAKqedXSyW5xDEo1sikrfEfnTs+49SBZR/xDdqCiJvSSbtr615xDsaMF3RrxS2jZlA==
-
-postcss-minify-font-values@^1.0.2:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69"
- integrity sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ==
- dependencies:
- object-assign "^4.0.1"
- postcss "^5.0.4"
- postcss-value-parser "^3.0.2"
-
-postcss-minify-gradients@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1"
- integrity sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q==
- dependencies:
- postcss "^5.0.12"
- postcss-value-parser "^3.3.0"
-
-postcss-minify-params@^1.0.4:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3"
- integrity sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow==
- dependencies:
- alphanum-sort "^1.0.1"
- postcss "^5.0.2"
- postcss-value-parser "^3.0.2"
- uniqs "^2.0.0"
-
-postcss-minify-selectors@^2.0.4:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf"
- integrity sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA==
- dependencies:
- alphanum-sort "^1.0.2"
- has "^1.0.1"
- postcss "^5.0.14"
- postcss-selector-parser "^2.0.0"
-
-postcss-modules-extract-imports@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a"
- integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==
- dependencies:
- postcss "^6.0.1"
-
-postcss-modules-local-by-default@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
- integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==
- dependencies:
- css-selector-tokenizer "^0.7.0"
- postcss "^6.0.1"
-
-postcss-modules-scope@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
- integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==
- dependencies:
- css-selector-tokenizer "^0.7.0"
- postcss "^6.0.1"
-
-postcss-modules-values@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
- integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==
- dependencies:
- icss-replace-symbols "^1.1.0"
- postcss "^6.0.1"
-
-postcss-normalize-charset@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1"
- integrity sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ==
- dependencies:
- postcss "^5.0.5"
-
-postcss-normalize-url@^3.0.7:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222"
- integrity sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig==
- dependencies:
- is-absolute-url "^2.0.0"
- normalize-url "^1.4.0"
- postcss "^5.0.14"
- postcss-value-parser "^3.2.3"
-
-postcss-ordered-values@^2.1.0:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d"
- integrity sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg==
- dependencies:
- postcss "^5.0.4"
- postcss-value-parser "^3.0.1"
-
-postcss-reduce-idents@^2.2.2:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3"
- integrity sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w==
- dependencies:
- postcss "^5.0.4"
- postcss-value-parser "^3.0.2"
-
-postcss-reduce-initial@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea"
- integrity sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA==
- dependencies:
- postcss "^5.0.4"
-
-postcss-reduce-transforms@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1"
- integrity sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ==
- dependencies:
- has "^1.0.1"
- postcss "^5.0.8"
- postcss-value-parser "^3.0.1"
-
-postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
- integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA==
- dependencies:
- flatten "^1.0.2"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-svgo@^2.1.1:
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d"
- integrity sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ==
- dependencies:
- is-svg "^2.0.0"
- postcss "^5.0.14"
- postcss-value-parser "^3.2.3"
- svgo "^0.7.0"
-
-postcss-unique-selectors@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d"
- integrity sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g==
- dependencies:
- alphanum-sort "^1.0.1"
- postcss "^5.0.4"
- uniqs "^2.0.0"
-
-postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
- integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-
-postcss-zindex@^2.0.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22"
- integrity sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w==
- dependencies:
- has "^1.0.1"
- postcss "^5.0.4"
- uniqs "^2.0.0"
-
-postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16:
- version "5.2.18"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
- integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
- dependencies:
- chalk "^1.1.3"
- js-base64 "^2.1.9"
- source-map "^0.5.6"
- supports-color "^3.2.3"
-
-postcss@^6.0.1:
- version "6.0.23"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
- integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
- dependencies:
- chalk "^2.4.1"
- source-map "^0.6.1"
- supports-color "^5.4.0"
-
-prepend-http@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
- integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==
-
-private@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
- integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
-
-process-nextick-args@~2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-
-process@^0.11.10:
- version "0.11.10"
- resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
- integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
-
-promise-inflight@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
- integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
-
-prr@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
- integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
-
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
- integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
-
-public-encrypt@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
- integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
- dependencies:
- bn.js "^4.1.0"
- browserify-rsa "^4.0.0"
- create-hash "^1.1.0"
- parse-asn1 "^5.0.0"
- randombytes "^2.0.1"
- safe-buffer "^5.1.2"
-
-pump@^2.0.0, pump@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
- integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
-pumpify@^1.3.3:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
- integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
- dependencies:
- duplexify "^3.6.0"
- inherits "^2.0.3"
- pump "^2.0.0"
-
-punycode@1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
- integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==
-
-punycode@^1.2.4:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
- integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
-
-punycode@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
- integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-
-q@^1.1.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
- integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
-
-qs@2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404"
- integrity sha512-f5M0HQqZWkzU8GELTY8LyMrGkr3bPjKoFtTkwUEqJQbcljbeK8M7mliP9Ia2xoOI6oMerp+QPS7oYJtpGmWe/A==
-
-query-string@^4.1.0:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
- integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==
- dependencies:
- object-assign "^4.1.0"
- strict-uri-encode "^1.0.0"
-
-querystring-es3@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
- integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==
-
-querystring@0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
- integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==
-
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
- integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
- dependencies:
- safe-buffer "^5.1.0"
-
-randomfill@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
- integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
- dependencies:
- randombytes "^2.0.5"
- safe-buffer "^5.1.0"
-
-raven@^2.6.4:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.4.tgz#458d4a380c8fbb59e0150c655625aaf60c167ea3"
- integrity sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==
- dependencies:
- cookie "0.3.1"
- md5 "^2.2.1"
- stack-trace "0.0.10"
- timed-out "4.0.1"
- uuid "3.3.2"
-
-read-pkg-up@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
- integrity sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==
- dependencies:
- find-up "^2.0.0"
- read-pkg "^2.0.0"
-
-read-pkg@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
- integrity sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==
- dependencies:
- load-json-file "^2.0.0"
- normalize-package-data "^2.3.2"
- path-type "^2.0.0"
-
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
- version "2.3.7"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
- integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~2.0.0"
- safe-buffer "~5.1.1"
- string_decoder "~1.1.1"
- util-deprecate "~1.0.1"
-
-readable-stream@1.0.27-1:
- version "1.0.27-1"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.27-1.tgz#6b67983c20357cefd07f0165001a16d710d91078"
- integrity sha512-uQE31HGhpMrqZwtDjRliOs2aC3XBi+DdkhLs+Xa0dvVD5eDiZr3+k8rKVZcyTzxosgtMw7B/twQsK3P1KTZeVg==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-"readable-stream@>=1.0.33-1 <1.1.0-0":
- version "1.0.34"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
- integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-readable-stream@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
- integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
- dependencies:
- inherits "^2.0.3"
- string_decoder "^1.1.1"
- util-deprecate "^1.0.1"
-
-reduce-component@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da"
- integrity sha512-y0wyCcdQul3hI3xHfIs0vg/jSbboQc/YTOAqaxjFG7At+XSexduuOqBVL9SmOLSwa/ldkbzVzdwuk9s2EKTAZg==
-
-reduce-css-calc@^1.2.6:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
- integrity sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA==
- dependencies:
- balanced-match "^0.4.2"
- math-expression-evaluator "^1.2.14"
- reduce-function-call "^1.0.1"
-
-reduce-function-call@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f"
- integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==
- dependencies:
- balanced-match "^1.0.0"
-
-regenerator-runtime@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
- integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
-
-repeating@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
- integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==
- dependencies:
- is-finite "^1.0.0"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
-
-require-main-filename@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
- integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==
-
-resolve@^1.10.0:
- version "1.22.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
- integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
- dependencies:
- is-core-module "^2.9.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-rimraf@^2.5.4, rimraf@^2.6.2:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
- integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
- dependencies:
- glob "^7.1.3"
-
-ripemd160@^2.0.0, ripemd160@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
- integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
- dependencies:
- hash-base "^3.0.0"
- inherits "^2.0.1"
-
-run-queue@^1.0.0, run-queue@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
- integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==
- dependencies:
- aproba "^1.1.1"
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-sax@^1.2.4, sax@~1.2.1:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
- integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
-schema-utils@^0.4.5:
- version "0.4.7"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
- integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
- dependencies:
- ajv "^6.1.0"
- ajv-keywords "^3.1.0"
-
-schema-utils@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
- integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
- dependencies:
- ajv "^6.1.0"
- ajv-errors "^1.0.0"
- ajv-keywords "^3.1.0"
-
-"semver@2 || 3 || 4 || 5", semver@^5.6.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-serialize-javascript@^1.4.0:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
- integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==
-
-set-blocking@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
- integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
-
-setimmediate@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
- integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
-
-sha.js@^2.4.0, sha.js@^2.4.8:
- version "2.4.11"
- resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
- integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-shebang-command@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
- integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
- dependencies:
- shebang-regex "^1.0.0"
-
-shebang-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
- integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
-
-signal-exit@^3.0.0:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-simple-statistics@7.7.3:
- version "7.7.3"
- resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-7.7.3.tgz#8b7b51edae40e397a28dbe8ae762ddd156ae43b6"
- integrity sha512-ym356HUIJYLYEJASkbrYGAinlivGbBZhhgRNpTxWXVncfCGh61iUsaoSM+b84RrtGI2ZJvulTCUEwscE1s4yzw==
-
-slash@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
- integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==
-
-sort-keys@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
- integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==
- dependencies:
- is-plain-obj "^1.0.0"
-
-source-list-map@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
- integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
-
-source-map-support@^0.4.15:
- version "0.4.18"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
- integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
- dependencies:
- source-map "^0.5.6"
-
-source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
- integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
-
-source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-spdx-correct@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
- integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
- dependencies:
- spdx-expression-parse "^3.0.0"
- spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
- integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-
-spdx-expression-parse@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
- integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
- dependencies:
- spdx-exceptions "^2.1.0"
- spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
- version "3.0.11"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95"
- integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
-
-spin.js@^2.0.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/spin.js/-/spin.js-2.3.2.tgz#6caa56d520673450fd5cfbc6971e6d0772c37a1a"
- integrity sha512-ryhCvKCRa6J5Fxa7Y+fnhE2a+e05JwfW5dxO82zPd0uDM9o+qp8p74BJUurjiqCqmDsWNvGOAxfqdD317XIedg==
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-
-ssri@^5.2.4:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
- integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
- dependencies:
- safe-buffer "^5.1.1"
-
-stack-trace@0.0.10:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
- integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
-
-stream-browserify@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
- integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
- dependencies:
- inherits "~2.0.1"
- readable-stream "^2.0.2"
-
-stream-each@^1.1.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
- integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
- dependencies:
- end-of-stream "^1.1.0"
- stream-shift "^1.0.0"
-
-stream-http@^2.7.2:
- version "2.8.3"
- resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
- integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
- dependencies:
- builtin-status-codes "^3.0.0"
- inherits "^2.0.1"
- readable-stream "^2.3.6"
- to-arraybuffer "^1.0.0"
- xtend "^4.0.0"
-
-stream-shift@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
- integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
-
-strict-uri-encode@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
- integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
-
-string-width@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-string-width@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
-string_decoder@^1.0.0, string_decoder@^1.1.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
- integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
- dependencies:
- safe-buffer "~5.2.0"
-
-string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
- integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==
-
-string_decoder@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
- dependencies:
- safe-buffer "~5.1.0"
-
-strip-ansi@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e"
- integrity sha512-2h8q2CP3EeOhDJ+jd932PRMpa3/pOJFGoF22J1U/DNbEK2gSW2DqeF46VjCXsSQXhC+k/l8/gaaRBQKL6hUPfQ==
- dependencies:
- ansi-regex "^1.0.0"
-
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==
- dependencies:
- ansi-regex "^3.0.0"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
- integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
-
-strip-eof@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
- integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
-
-style-loader@^0.23.1, style-loader@~0.13.1:
- version "0.23.1"
- resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
- integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==
- dependencies:
- loader-utils "^1.1.0"
- schema-utils "^1.0.0"
-
-superagent@^1.8.3:
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/superagent/-/superagent-1.8.5.tgz#1c0ddc3af30e80eb84ebc05cb2122da8fe940b55"
- integrity sha512-4h4R6fISQXvgjIqZ8DjONYy3y2XPxgZO0LgHsBI6tDAEhzJLpWuK+thM60SmUiERJOEJzmxlIGx/GP6+azky/A==
- dependencies:
- component-emitter "~1.2.0"
- cookiejar "2.0.6"
- debug "2"
- extend "3.0.0"
- form-data "1.0.0-rc3"
- formidable "~1.0.14"
- methods "~1.1.1"
- mime "1.3.4"
- qs "2.3.3"
- readable-stream "1.0.27-1"
- reduce-component "1.0.1"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
- integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
-
-supports-color@^3.2.3:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
- integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==
- dependencies:
- has-flag "^1.0.0"
-
-supports-color@^4.2.1:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
- integrity sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==
- dependencies:
- has-flag "^2.0.0"
-
-supports-color@^5.3.0, supports-color@^5.4.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
- integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
- dependencies:
- has-flag "^3.0.0"
-
-supports-preserve-symlinks-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-
-svgo@^0.7.0:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
- integrity sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA==
- dependencies:
- coa "~1.0.1"
- colors "~1.1.2"
- csso "~2.3.1"
- js-yaml "~3.7.0"
- mkdirp "~0.5.1"
- sax "~1.2.1"
- whet.extend "~0.9.9"
-
-tapable@^0.2.7:
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8"
- integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==
-
-through2@0.6.3:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.3.tgz#795292fde9f254c2a368b38f9cc5d1bd4663afb6"
- integrity sha512-6UXIsO0fTTYMgxeQ9pisMOIqF/uL6Ebva+4HxihtLLR2gscWEu+OTMwar/0TYZaeDSNS1msIJAXJRis+GojL8g==
- dependencies:
- readable-stream ">=1.0.33-1 <1.1.0-0"
- xtend ">=4.0.0 <4.1.0-0"
-
-through2@^2.0.0:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
- integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
- dependencies:
- readable-stream "~2.3.6"
- xtend "~4.0.1"
-
-timed-out@4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
- integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==
-
-timers-browserify@^2.0.4:
- version "2.0.12"
- resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
- integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
- dependencies:
- setimmediate "^1.0.4"
-
-to-arraybuffer@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
- integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==
-
-to-fast-properties@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
- integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==
-
-trim-right@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
- integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==
-
-tslib@^2.3.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
- integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
-
-tty-browserify@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
- integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==
-
-type@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
- integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
-
-type@^2.5.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f"
- integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==
-
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
- integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
-
-uglify-es@^3.3.4:
- version "3.3.9"
- resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
- integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
- dependencies:
- commander "~2.13.0"
- source-map "~0.6.1"
-
-uglifyjs-webpack-plugin@1.3.0, uglifyjs-webpack-plugin@^0.4.6:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
- integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==
- dependencies:
- cacache "^10.0.4"
- find-cache-dir "^1.0.0"
- schema-utils "^0.4.5"
- serialize-javascript "^1.4.0"
- source-map "^0.6.1"
- uglify-es "^3.3.4"
- webpack-sources "^1.1.0"
- worker-farm "^1.5.2"
-
-uniq@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
- integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==
-
-uniqs@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
- integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==
-
-unique-filename@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
- integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
- dependencies:
- unique-slug "^2.0.0"
-
-unique-slug@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
- integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
- dependencies:
- imurmurhash "^0.1.4"
-
-uri-js@^4.2.2:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
- integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- dependencies:
- punycode "^2.1.0"
-
-urijs@^1.19.7:
- version "1.19.11"
- resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"
- integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==
-
-url@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
- integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==
- dependencies:
- punycode "1.3.2"
- querystring "0.2.0"
-
-util-deprecate@^1.0.1, util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
- integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-
-util@0.10.3:
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
- integrity sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==
- dependencies:
- inherits "2.0.1"
-
-util@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
- integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
- dependencies:
- inherits "2.0.3"
-
-uuid@3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
- integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
-
-validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
- integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
- dependencies:
- spdx-correct "^3.0.0"
- spdx-expression-parse "^3.0.0"
-
-vendors@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
- integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
-
-vm-browserify@^1.0.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
- integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
-
-watchpack@^1.4.0, watchpack@^2.3.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
- integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
- dependencies:
- glob-to-regexp "^0.4.1"
- graceful-fs "^4.1.2"
-
-webpack-bundle-tracker@0.0.9:
- version "0.0.9"
- resolved "https://registry.yarnpkg.com/webpack-bundle-tracker/-/webpack-bundle-tracker-0.0.9.tgz#fd6ba1e65478f5cd3414e6f2ef3d4e1be0e3cd9d"
- integrity sha512-Dnpn1zUrLjjKKsKbW4/F+FbR/tm254eEaiszVPAvF9Rnk+qVvmNMz5yH1QAW+cAHOg/bEfJwI8WghyOnh2e7zw==
- dependencies:
- mkdirp "^0.5.1"
- strip-ansi "^2.0.1"
-
-webpack-sources@^1.0.1, webpack-sources@^1.1.0:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
- integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
- dependencies:
- source-list-map "^2.0.0"
- source-map "~0.6.1"
-
-webpack@3.12.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74"
- integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==
- dependencies:
- acorn "^5.0.0"
- acorn-dynamic-import "^2.0.0"
- ajv "^6.1.0"
- ajv-keywords "^3.1.0"
- async "^2.1.2"
- enhanced-resolve "^3.4.0"
- escope "^3.6.0"
- interpret "^1.0.0"
- json-loader "^0.5.4"
- json5 "^0.5.1"
- loader-runner "^2.3.0"
- loader-utils "^1.1.0"
- memory-fs "~0.4.1"
- mkdirp "~0.5.0"
- node-libs-browser "^2.0.0"
- source-map "^0.5.3"
- supports-color "^4.2.1"
- tapable "^0.2.7"
- uglifyjs-webpack-plugin "^0.4.6"
- watchpack "^1.4.0"
- webpack-sources "^1.0.1"
- yargs "^8.0.2"
-
-whet.extend@~0.9.9:
- version "0.9.9"
- resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
- integrity sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==
-
-which-module@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
- integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==
-
-which@^1.2.9:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
- integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
- dependencies:
- isexe "^2.0.0"
-
-worker-farm@^1.5.2:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
- integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
- dependencies:
- errno "~0.1.7"
-
-wrap-ansi@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
- integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
-"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-y18n@^3.2.1:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
- integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
-
-y18n@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
- integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
-
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
- integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==
-
-yargs-parser@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
- integrity sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==
- dependencies:
- camelcase "^4.1.0"
-
-yargs@^8.0.2:
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
- integrity sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ==
- dependencies:
- camelcase "^4.1.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^2.0.0"
- read-pkg-up "^2.0.0"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^2.0.0"
- which-module "^2.0.0"
- y18n "^3.2.1"
- yargs-parser "^7.0.0"
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 8
+ cacheKey: 10c0
+
+"@gar/promise-retry@npm:^1.0.0":
+ version: 1.0.3
+ resolution: "@gar/promise-retry@npm:1.0.3"
+ checksum: 10c0/885b02c8b0d75b2d215da25f3b639158c4fbe8fefe0d79163304534b9a6d0710db4b7699f7cd3cc1a730792bff04cbe19f4850a62d3e105a663eaeec88f38332
+ languageName: node
+ linkType: hard
+
+"@isaacs/fs-minipass@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "@isaacs/fs-minipass@npm:4.0.1"
+ dependencies:
+ minipass: "npm:^7.0.4"
+ checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2
+ languageName: node
+ linkType: hard
+
+"@npmcli/agent@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "@npmcli/agent@npm:4.0.0"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ http-proxy-agent: "npm:^7.0.0"
+ https-proxy-agent: "npm:^7.0.1"
+ lru-cache: "npm:^11.2.1"
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10c0/f7b5ce0f3dd42c3f8c6546e8433573d8049f67ef11ec22aa4704bc41483122f68bf97752e06302c455ead667af5cb753e6a09bff06632bc465c1cfd4c4b75a53
+ languageName: node
+ linkType: hard
+
+"@npmcli/fs@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "@npmcli/fs@npm:5.0.0"
+ dependencies:
+ semver: "npm:^7.3.5"
+ checksum: 10c0/26e376d780f60ff16e874a0ac9bc3399186846baae0b6e1352286385ac134d900cc5dafaded77f38d77f86898fc923ae1cee9d7399f0275b1aa24878915d722b
+ languageName: node
+ linkType: hard
+
+"@npmcli/redact@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "@npmcli/redact@npm:4.0.0"
+ checksum: 10c0/a1e9ba9c70a6b40e175bda2c3dd8cfdaf096e6b7f7a132c855c083c8dfe545c3237cd56702e2e6627a580b1d63373599d49a1192c4078a85bf47bbde824df31c
+ languageName: node
+ linkType: hard
+
+"JSON2@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "JSON2@npm:0.1.0"
+ checksum: 10c0/7c8b82a50ff93fd28bf545eaad64c9237fea6df75dab779d2845fdd165806b1534bc420614807ec3f3d6c8697eb545b967daaea7fe1bd69f4df3211fa7635040
+ languageName: node
+ linkType: hard
+
+"OSF_Admin@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "OSF_Admin@workspace:."
+ dependencies:
+ babel-core: "npm:^6.0.0"
+ babel-loader: "npm:^6.4.1"
+ bootstrap-colorpicker: "npm:^2.5.2"
+ bootstrap-tagsinput: "npm:^0.7.1"
+ bower: "npm:^1.3.12"
+ font-awesome: "npm:^4.5.0"
+ font-awesome-webpack: "npm:0.0.5-beta.2"
+ jquery-datetimepicker: "npm:^2.5.21"
+ json-loader: "npm:^0.5.1"
+ keen-js: "npm:^3.0.0"
+ knockout: "npm:3.5.1"
+ less: "npm:^4.1.2"
+ less-loader: "npm:^10.2.0"
+ raven: "npm:^2.6.4"
+ simple-statistics: "npm:7.7.3"
+ urijs: "npm:^1.19.7"
+ webpack: "npm:3.12.0"
+ webpack-bundle-tracker: "npm:0.0.9"
+ languageName: unknown
+ linkType: soft
+
+"abbrev@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "abbrev@npm:4.0.0"
+ checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5
+ languageName: node
+ linkType: hard
+
+"acorn-dynamic-import@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "acorn-dynamic-import@npm:2.0.2"
+ dependencies:
+ acorn: "npm:^4.0.3"
+ checksum: 10c0/5dcac220ae8ddc8f8439402691c6da21f4e44f3a91b5645884cd2a5f03c8e39a40006a189de9ccd50fdfcdeda6c52724db45cd2100e56e9e9656d7b19e2bfd22
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^4.0.3":
+ version: 4.0.13
+ resolution: "acorn@npm:4.0.13"
+ bin:
+ acorn: ./bin/acorn
+ checksum: 10c0/ed73e42711474f80d7f2f94d68109e83a40d48c9596f0bcfd1a4c64e086636495259432421357524d04bfe317eed6de5b6202d2ab30f1b1c26bca12684979aa5
+ languageName: node
+ linkType: hard
+
+"acorn@npm:^5.0.0":
+ version: 5.7.4
+ resolution: "acorn@npm:5.7.4"
+ bin:
+ acorn: bin/acorn
+ checksum: 10c0/b29e61d48fa31ae69d38d74bb213b77b32de6317f125890a6cb76b44d173adccbcd3a07fc9a86acdfe8ab0a80f42b5ec6290df8b7944e0506504ac3b716232bd
+ languageName: node
+ linkType: hard
+
+"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2":
+ version: 7.1.4
+ resolution: "agent-base@npm:7.1.4"
+ checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe
+ languageName: node
+ linkType: hard
+
+"ajv-errors@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "ajv-errors@npm:1.0.1"
+ peerDependencies:
+ ajv: ">=5.0.0"
+ checksum: 10c0/de2d6e8100c8707ea063ee4785d53adf599b457c0d4f72c3592244d67ad16448a6d35f7ce45f12bdd2819939447c876e8ef2f1c0800896d7f2aa25c3838acdf1
+ languageName: node
+ linkType: hard
+
+"ajv-keywords@npm:^3.1.0":
+ version: 3.5.2
+ resolution: "ajv-keywords@npm:3.5.2"
+ peerDependencies:
+ ajv: ^6.9.1
+ checksum: 10c0/0c57a47cbd656e8cdfd99d7c2264de5868918ffa207c8d7a72a7f63379d4333254b2ba03d69e3c035e996a3fd3eb6d5725d7a1597cca10694296e32510546360
+ languageName: node
+ linkType: hard
+
+"ajv@npm:^6.1.0":
+ version: 6.12.6
+ resolution: "ajv@npm:6.12.6"
+ dependencies:
+ fast-deep-equal: "npm:^3.1.1"
+ fast-json-stable-stringify: "npm:^2.0.0"
+ json-schema-traverse: "npm:^0.4.1"
+ uri-js: "npm:^4.2.2"
+ checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
+ languageName: node
+ linkType: hard
+
+"alphanum-sort@npm:^1.0.1, alphanum-sort@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "alphanum-sort@npm:1.0.2"
+ checksum: 10c0/2944e7ae4d36328a2df071017c01cd1d06ef6a5d87c8fbbeffd9075d42f4da48051bde79a5e3d863b98f37778c76e8eebd4353c1e7bbba2480382096953ec2b8
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^1.0.0":
+ version: 1.1.1
+ resolution: "ansi-regex@npm:1.1.1"
+ checksum: 10c0/182450558e72f6d285fad08eede78f8b4b57d64e5b63c1ef0b1c2274f57daccb5b1c73900e7ee5306c97916a5d9c20e3dee3bdbd4d816d368320151cd17b5a4a
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^2.0.0":
+ version: 2.1.1
+ resolution: "ansi-regex@npm:2.1.1"
+ checksum: 10c0/78cebaf50bce2cb96341a7230adf28d804611da3ce6bf338efa7b72f06cc6ff648e29f80cd95e582617ba58d5fdbec38abfeed3500a98bce8381a9daec7c548b
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "ansi-regex@npm:3.0.1"
+ checksum: 10c0/d108a7498b8568caf4a46eea4f1784ab4e0dfb2e3f3938c697dee21443d622d765c958f2b7e2b9f6b9e55e2e2af0584eaa9915d51782b89a841c28e744e7a167
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^2.2.1":
+ version: 2.2.1
+ resolution: "ansi-styles@npm:2.2.1"
+ checksum: 10c0/7c68aed4f1857389e7a12f85537ea5b40d832656babbf511cc7ecd9efc52889b9c3e5653a71a6aade783c3c5e0aa223ad4ff8e83c27ac8a666514e6c79068cab
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^3.2.1":
+ version: 3.2.1
+ resolution: "ansi-styles@npm:3.2.1"
+ dependencies:
+ color-convert: "npm:^1.9.0"
+ checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b
+ languageName: node
+ linkType: hard
+
+"aproba@npm:^1.1.1":
+ version: 1.2.0
+ resolution: "aproba@npm:1.2.0"
+ checksum: 10c0/2d34f008c9edfa991f42fe4b667d541d38a474a39ae0e24805350486d76744cd91ee45313283c1d39a055b14026dd0fc4d0cbfc13f210855d59d7e8b5a61dc51
+ languageName: node
+ linkType: hard
+
+"argparse@npm:^1.0.7":
+ version: 1.0.10
+ resolution: "argparse@npm:1.0.10"
+ dependencies:
+ sprintf-js: "npm:~1.0.2"
+ checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de
+ languageName: node
+ linkType: hard
+
+"asn1.js@npm:^5.2.0":
+ version: 5.4.1
+ resolution: "asn1.js@npm:5.4.1"
+ dependencies:
+ bn.js: "npm:^4.0.0"
+ inherits: "npm:^2.0.1"
+ minimalistic-assert: "npm:^1.0.0"
+ safer-buffer: "npm:^2.1.0"
+ checksum: 10c0/b577232fa6069cc52bb128e564002c62b2b1fe47f7137bdcd709c0b8495aa79cee0f8cc458a831b2d8675900eea0d05781b006be5e1aa4f0ae3577a73ec20324
+ languageName: node
+ linkType: hard
+
+"assert@npm:^1.1.1":
+ version: 1.5.0
+ resolution: "assert@npm:1.5.0"
+ dependencies:
+ object-assign: "npm:^4.1.1"
+ util: "npm:0.10.3"
+ checksum: 10c0/188da37d63be479a3b14657c01080db90cdf7fa004e346af916cf8beebcaffb11359c596d0c9c3cd8174c9125a6225796ef1ce533487edc97f8ce3b18c1ab590
+ languageName: node
+ linkType: hard
+
+"async@npm:^1.4.0":
+ version: 1.5.2
+ resolution: "async@npm:1.5.2"
+ checksum: 10c0/9ee84592c393aad1047d1223004317ecc65a9a3f76101e0f4614a0818eac962e666510353400a3c9ea158df540579a293f486f3578e918c5e90a0f5ed52e8aea
+ languageName: node
+ linkType: hard
+
+"async@npm:^2.1.2":
+ version: 2.6.4
+ resolution: "async@npm:2.6.4"
+ dependencies:
+ lodash: "npm:^4.17.14"
+ checksum: 10c0/0ebb3273ef96513389520adc88e0d3c45e523d03653cc9b66f5c46f4239444294899bfd13d2b569e7dbfde7da2235c35cf5fd3ece9524f935d41bbe4efccdad0
+ languageName: node
+ linkType: hard
+
+"autoprefixer@npm:^6.3.1":
+ version: 6.7.7
+ resolution: "autoprefixer@npm:6.7.7"
+ dependencies:
+ browserslist: "npm:^1.7.6"
+ caniuse-db: "npm:^1.0.30000634"
+ normalize-range: "npm:^0.1.2"
+ num2fraction: "npm:^1.2.2"
+ postcss: "npm:^5.2.16"
+ postcss-value-parser: "npm:^3.2.3"
+ checksum: 10c0/bdcf8e53eacef1feb54940bbe33fcb67e12eb07d5572d5f0fbadb638b84be15ca91b3a343763962a2ce6ed12ba611e039c62e871d12e29b956b8f2b189c263ae
+ languageName: node
+ linkType: hard
+
+"babel-code-frame@npm:^6.26.0":
+ version: 6.26.0
+ resolution: "babel-code-frame@npm:6.26.0"
+ dependencies:
+ chalk: "npm:^1.1.3"
+ esutils: "npm:^2.0.2"
+ js-tokens: "npm:^3.0.2"
+ checksum: 10c0/7fecc128e87578cf1b96e78d2b25e0b260e202bdbbfcefa2eac23b7f8b7b2f7bc9276a14599cde14403cc798cc2a38e428e2cab50b77658ab49228b09ae92473
+ languageName: node
+ linkType: hard
+
+"babel-core@npm:^6.0.0, babel-core@npm:^6.26.0":
+ version: 6.26.3
+ resolution: "babel-core@npm:6.26.3"
+ dependencies:
+ babel-code-frame: "npm:^6.26.0"
+ babel-generator: "npm:^6.26.0"
+ babel-helpers: "npm:^6.24.1"
+ babel-messages: "npm:^6.23.0"
+ babel-register: "npm:^6.26.0"
+ babel-runtime: "npm:^6.26.0"
+ babel-template: "npm:^6.26.0"
+ babel-traverse: "npm:^6.26.0"
+ babel-types: "npm:^6.26.0"
+ babylon: "npm:^6.18.0"
+ convert-source-map: "npm:^1.5.1"
+ debug: "npm:^2.6.9"
+ json5: "npm:^0.5.1"
+ lodash: "npm:^4.17.4"
+ minimatch: "npm:^3.0.4"
+ path-is-absolute: "npm:^1.0.1"
+ private: "npm:^0.1.8"
+ slash: "npm:^1.0.0"
+ source-map: "npm:^0.5.7"
+ checksum: 10c0/10292649779f8c33d1908f5671c92ca9df036c9e1b9f35f97e7f62c9da9e3a146ee069f94fc401283ce129ba980f34a30339f137c512f3e62ddd354653b2da0e
+ languageName: node
+ linkType: hard
+
+"babel-generator@npm:^6.26.0":
+ version: 6.26.1
+ resolution: "babel-generator@npm:6.26.1"
+ dependencies:
+ babel-messages: "npm:^6.23.0"
+ babel-runtime: "npm:^6.26.0"
+ babel-types: "npm:^6.26.0"
+ detect-indent: "npm:^4.0.0"
+ jsesc: "npm:^1.3.0"
+ lodash: "npm:^4.17.4"
+ source-map: "npm:^0.5.7"
+ trim-right: "npm:^1.0.1"
+ checksum: 10c0/d5f9d20c6f7d8644dc41ee57d48c98a78d24d5b74dc305cc518d6e0872d4fa73c5fd8d47ec00e3515858eaf3c3e512a703cdbc184ff0061af5979bc206618555
+ languageName: node
+ linkType: hard
+
+"babel-helpers@npm:^6.24.1":
+ version: 6.24.1
+ resolution: "babel-helpers@npm:6.24.1"
+ dependencies:
+ babel-runtime: "npm:^6.22.0"
+ babel-template: "npm:^6.24.1"
+ checksum: 10c0/bbd082e42adaa9c584242515e8c5b1e861108e03ed9517f0b600189e1c1041376ab6a15c71265a2cc095c5af4bd15cfc97158e30ce95a81cbfcea1bfd81ce3e6
+ languageName: node
+ linkType: hard
+
+"babel-loader@npm:^6.4.1":
+ version: 6.4.1
+ resolution: "babel-loader@npm:6.4.1"
+ dependencies:
+ find-cache-dir: "npm:^0.1.1"
+ loader-utils: "npm:^0.2.16"
+ mkdirp: "npm:^0.5.1"
+ object-assign: "npm:^4.0.1"
+ peerDependencies:
+ babel-core: ^6.0.0
+ webpack: 1 || 2 || ^2.1.0-beta || ^2.2.0-rc
+ checksum: 10c0/6f7395e9433eddfcec39b6ad452b21d4c68798a980e62906e3b2b11926e2c49b949d9ffe97a2ef88cd6843f89ba6110f5634a3b9fc27566d6505dc9496f0e4a5
+ languageName: node
+ linkType: hard
+
+"babel-messages@npm:^6.23.0":
+ version: 6.23.0
+ resolution: "babel-messages@npm:6.23.0"
+ dependencies:
+ babel-runtime: "npm:^6.22.0"
+ checksum: 10c0/d4fd6414ee5bb1aa0dad6d8d2c4ffaa66331ec5a507959e11f56b19a683566e2c1e7a4d0b16cfef58ea4cc07db8acf5ff3dc8b25c585407cff2e09ac60553401
+ languageName: node
+ linkType: hard
+
+"babel-register@npm:^6.26.0":
+ version: 6.26.0
+ resolution: "babel-register@npm:6.26.0"
+ dependencies:
+ babel-core: "npm:^6.26.0"
+ babel-runtime: "npm:^6.26.0"
+ core-js: "npm:^2.5.0"
+ home-or-tmp: "npm:^2.0.0"
+ lodash: "npm:^4.17.4"
+ mkdirp: "npm:^0.5.1"
+ source-map-support: "npm:^0.4.15"
+ checksum: 10c0/4ffbc1bfa60a817fb306c98d1a6d10852b0130a614dae3a91e45f391dbebdc95f428d95b489943d85724e046527d2aac3bafb74d3c24f62143492b5f606e2e04
+ languageName: node
+ linkType: hard
+
+"babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0":
+ version: 6.26.0
+ resolution: "babel-runtime@npm:6.26.0"
+ dependencies:
+ core-js: "npm:^2.4.0"
+ regenerator-runtime: "npm:^0.11.0"
+ checksum: 10c0/caa752004936b1463765ed3199c52f6a55d0613b9bed108743d6f13ca532b821d4ea9decc4be1b583193164462b1e3e7eefdfa36b15c72e7daac58dd72c1772f
+ languageName: node
+ linkType: hard
+
+"babel-template@npm:^6.24.1, babel-template@npm:^6.26.0":
+ version: 6.26.0
+ resolution: "babel-template@npm:6.26.0"
+ dependencies:
+ babel-runtime: "npm:^6.26.0"
+ babel-traverse: "npm:^6.26.0"
+ babel-types: "npm:^6.26.0"
+ babylon: "npm:^6.18.0"
+ lodash: "npm:^4.17.4"
+ checksum: 10c0/67bc875f19d289dabb1830a1cde93d7f1e187e4599dac9b1d16392fd47f1d12b53fea902dacf7be360acd09807d440faafe0f7907758c13275b1a14d100b68e4
+ languageName: node
+ linkType: hard
+
+"babel-traverse@npm:^6.26.0":
+ version: 6.26.0
+ resolution: "babel-traverse@npm:6.26.0"
+ dependencies:
+ babel-code-frame: "npm:^6.26.0"
+ babel-messages: "npm:^6.23.0"
+ babel-runtime: "npm:^6.26.0"
+ babel-types: "npm:^6.26.0"
+ babylon: "npm:^6.18.0"
+ debug: "npm:^2.6.8"
+ globals: "npm:^9.18.0"
+ invariant: "npm:^2.2.2"
+ lodash: "npm:^4.17.4"
+ checksum: 10c0/dca71b23d07e3c00833c3222d7998202e687105f461048107afeb2b4a7aa2507efab1bd5a6e3e724724ebb9b1e0b14f0113621e1d8c25b4ffdb829392b54b8de
+ languageName: node
+ linkType: hard
+
+"babel-types@npm:^6.26.0":
+ version: 6.26.0
+ resolution: "babel-types@npm:6.26.0"
+ dependencies:
+ babel-runtime: "npm:^6.26.0"
+ esutils: "npm:^2.0.2"
+ lodash: "npm:^4.17.4"
+ to-fast-properties: "npm:^1.0.3"
+ checksum: 10c0/cabe371de1b32c4bbb1fd4ed0fe8a8726d42e5ad7d5cefb83cdae6de0f0a152dce591e4026719743fdf3aa45f84fea2c8851fb822fbe29b0c78a1f0094b67418
+ languageName: node
+ linkType: hard
+
+"babylon@npm:^6.18.0":
+ version: 6.18.0
+ resolution: "babylon@npm:6.18.0"
+ bin:
+ babylon: ./bin/babylon.js
+ checksum: 10c0/9b1bf946e16782deadb1f5414c1269efa6044eb1e97a3de2051f09a3f2a54e97be3542d4242b28d23de0ef67816f519d38ce1ec3ddb7be306131c39a60e5a667
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^0.4.2":
+ version: 0.4.2
+ resolution: "balanced-match@npm:0.4.2"
+ checksum: 10c0/cd4e15add0f4ef14c4fe960d9f4a343052d7c0f7939e1b5e54c8f24417a501bde1f17e191b676daebd16ae316955c918f93b8ed0414bb03d038dd0159c9998e5
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^4.0.2":
+ version: 4.0.4
+ resolution: "balanced-match@npm:4.0.4"
+ checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b
+ languageName: node
+ linkType: hard
+
+"base64-js@npm:^1.0.2":
+ version: 1.5.1
+ resolution: "base64-js@npm:1.5.1"
+ checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf
+ languageName: node
+ linkType: hard
+
+"big.js@npm:^3.1.3":
+ version: 3.2.0
+ resolution: "big.js@npm:3.2.0"
+ checksum: 10c0/de0b8e275171060a37846b521e8ebfe077c650532306c2470474da6720feb04351cc8588ef26088756b224923782946ae67e817b90122cc85692bbda7ccd2d0d
+ languageName: node
+ linkType: hard
+
+"big.js@npm:^5.2.2":
+ version: 5.2.2
+ resolution: "big.js@npm:5.2.2"
+ checksum: 10c0/230520f1ff920b2d2ce3e372d77a33faa4fa60d802fe01ca4ffbc321ee06023fe9a741ac02793ee778040a16b7e497f7d60c504d1c402b8fdab6f03bb785a25f
+ languageName: node
+ linkType: hard
+
+"bluebird@npm:^3.5.1":
+ version: 3.7.2
+ resolution: "bluebird@npm:3.7.2"
+ checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9":
+ version: 4.12.0
+ resolution: "bn.js@npm:4.12.0"
+ checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21
+ languageName: node
+ linkType: hard
+
+"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1":
+ version: 5.2.1
+ resolution: "bn.js@npm:5.2.1"
+ checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa
+ languageName: node
+ linkType: hard
+
+"bootstrap-colorpicker@npm:^2.5.2":
+ version: 2.5.3
+ resolution: "bootstrap-colorpicker@npm:2.5.3"
+ dependencies:
+ jquery: "npm:>=1.10"
+ checksum: 10c0/c150d2b0be75e859cd20957bcd0f75e0d0881553274ccd23783db9f9a844b3fd9ddf048bd831b0a59cf6910c1c2c861198718ada2605a5dd3e3a6076fc77e9ec
+ languageName: node
+ linkType: hard
+
+"bootstrap-tagsinput@npm:^0.7.1":
+ version: 0.7.1
+ resolution: "bootstrap-tagsinput@npm:0.7.1"
+ checksum: 10c0/3e50b7146c8ea9a704fefe742829099a4bc4f27db723177838f1a796024a4b3a6c03dd269a12369e2e8a4d847284e1f2c058c3398fddbbe80da526946e0ac7f1
+ languageName: node
+ linkType: hard
+
+"bower@npm:^1.3.12":
+ version: 1.8.14
+ resolution: "bower@npm:1.8.14"
+ bin:
+ bower: bin/bower
+ checksum: 10c0/dbf71f95eaf34785f98793b8dfa2c1eba0b18b9e94b5c052f2019cfbe6135c041f106901c3e96fdc1d83b486472a8da8aea245b1490fe0ea4211f13ea8dd3463
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.11
+ resolution: "brace-expansion@npm:1.1.11"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ concat-map: "npm:0.0.1"
+ checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^5.0.2":
+ version: 5.0.4
+ resolution: "brace-expansion@npm:5.0.4"
+ dependencies:
+ balanced-match: "npm:^4.0.2"
+ checksum: 10c0/359cbcfa80b2eb914ca1f3440e92313fbfe7919ee6b274c35db55bec555aded69dac5ee78f102cec90c35f98c20fa43d10936d0cd9978158823c249257e1643a
+ languageName: node
+ linkType: hard
+
+"brorand@npm:^1.0.1, brorand@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "brorand@npm:1.1.0"
+ checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571
+ languageName: node
+ linkType: hard
+
+"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4":
+ version: 1.2.0
+ resolution: "browserify-aes@npm:1.2.0"
+ dependencies:
+ buffer-xor: "npm:^1.0.3"
+ cipher-base: "npm:^1.0.0"
+ create-hash: "npm:^1.1.0"
+ evp_bytestokey: "npm:^1.0.3"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18
+ languageName: node
+ linkType: hard
+
+"browserify-cipher@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "browserify-cipher@npm:1.0.1"
+ dependencies:
+ browserify-aes: "npm:^1.0.4"
+ browserify-des: "npm:^1.0.0"
+ evp_bytestokey: "npm:^1.0.0"
+ checksum: 10c0/aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d
+ languageName: node
+ linkType: hard
+
+"browserify-des@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "browserify-des@npm:1.0.2"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ des.js: "npm:^1.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d
+ languageName: node
+ linkType: hard
+
+"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.0.1":
+ version: 4.1.0
+ resolution: "browserify-rsa@npm:4.1.0"
+ dependencies:
+ bn.js: "npm:^5.0.0"
+ randombytes: "npm:^2.0.1"
+ checksum: 10c0/fb2b5a8279d8a567a28d8ee03fb62e448428a906bab5c3dc9e9c3253ace551b5ea271db15e566ac78f1b1d71b243559031446604168b9235c351a32cae99d02a
+ languageName: node
+ linkType: hard
+
+"browserify-sign@npm:^4.0.0":
+ version: 4.2.1
+ resolution: "browserify-sign@npm:4.2.1"
+ dependencies:
+ bn.js: "npm:^5.1.1"
+ browserify-rsa: "npm:^4.0.1"
+ create-hash: "npm:^1.2.0"
+ create-hmac: "npm:^1.1.7"
+ elliptic: "npm:^6.5.3"
+ inherits: "npm:^2.0.4"
+ parse-asn1: "npm:^5.1.5"
+ readable-stream: "npm:^3.6.0"
+ safe-buffer: "npm:^5.2.0"
+ checksum: 10c0/8f00a370e3e97060977dc58e51251d3ca398ee73523994a44430321e8de2c7d85395362d59014b2b07efe4190f369baee2ff28eb8f405ff4660b776651cf052d
+ languageName: node
+ linkType: hard
+
+"browserify-versionify@npm:1.0.3":
+ version: 1.0.3
+ resolution: "browserify-versionify@npm:1.0.3"
+ dependencies:
+ find-root: "npm:^0.1.1"
+ through2: "npm:0.6.3"
+ checksum: 10c0/ffe542d32e2536bcc735d382f3f8b9ef0870aa730c5330ff33fe48e182cb4a2b8d7afe6718b2dbefa02a0edbc0293f7d4e34c2b889371d4a08e6c8f28c7d15af
+ languageName: node
+ linkType: hard
+
+"browserify-zlib@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "browserify-zlib@npm:0.2.0"
+ dependencies:
+ pako: "npm:~1.0.5"
+ checksum: 10c0/9ab10b6dc732c6c5ec8ebcbe5cb7fe1467f97402c9b2140113f47b5f187b9438f93a8e065d8baf8b929323c18324fbf1105af479ee86d9d36cab7d7ef3424ad9
+ languageName: node
+ linkType: hard
+
+"browserslist@npm:^1.3.6, browserslist@npm:^1.5.2, browserslist@npm:^1.7.6":
+ version: 1.7.7
+ resolution: "browserslist@npm:1.7.7"
+ dependencies:
+ caniuse-db: "npm:^1.0.30000639"
+ electron-to-chromium: "npm:^1.2.7"
+ bin:
+ browserslist: ./cli.js
+ checksum: 10c0/1caae2f00800711b3c18a834b84ab3109b955836f23e00a7eb0227e54c22a101b95a9606c1347a04ec882524a724ba57691f856a7aba3fde6dd197b867b8cd41
+ languageName: node
+ linkType: hard
+
+"buffer-from@npm:^1.0.0":
+ version: 1.1.2
+ resolution: "buffer-from@npm:1.1.2"
+ checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34
+ languageName: node
+ linkType: hard
+
+"buffer-xor@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "buffer-xor@npm:1.0.3"
+ checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c
+ languageName: node
+ linkType: hard
+
+"buffer@npm:^4.3.0":
+ version: 4.9.2
+ resolution: "buffer@npm:4.9.2"
+ dependencies:
+ base64-js: "npm:^1.0.2"
+ ieee754: "npm:^1.1.4"
+ isarray: "npm:^1.0.0"
+ checksum: 10c0/dc443d7e7caab23816b58aacdde710b72f525ad6eecd7d738fcaa29f6d6c12e8d9c13fed7219fd502be51ecf0615f5c077d4bdc6f9308dde2e53f8e5393c5b21
+ languageName: node
+ linkType: hard
+
+"builtin-status-codes@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "builtin-status-codes@npm:3.0.0"
+ checksum: 10c0/c37bbba11a34c4431e56bd681b175512e99147defbe2358318d8152b3a01df7bf25e0305873947e5b350073d5ef41a364a22b37e48f1fb6d2fe6d5286a0f348c
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^10.0.4":
+ version: 10.0.4
+ resolution: "cacache@npm:10.0.4"
+ dependencies:
+ bluebird: "npm:^3.5.1"
+ chownr: "npm:^1.0.1"
+ glob: "npm:^7.1.2"
+ graceful-fs: "npm:^4.1.11"
+ lru-cache: "npm:^4.1.1"
+ mississippi: "npm:^2.0.0"
+ mkdirp: "npm:^0.5.1"
+ move-concurrently: "npm:^1.0.1"
+ promise-inflight: "npm:^1.0.1"
+ rimraf: "npm:^2.6.2"
+ ssri: "npm:^5.2.4"
+ unique-filename: "npm:^1.1.0"
+ y18n: "npm:^4.0.0"
+ checksum: 10c0/4c82d037ecc0ef87f58f96ecd3662bdb24aaedd18fa96d749363bc20dee3ac9f623e2c41e09bf894a3f62de1612a8cea8ddae22563a91ce2ef5cb69fe4cf54dd
+ languageName: node
+ linkType: hard
+
+"cacache@npm:^20.0.1":
+ version: 20.0.4
+ resolution: "cacache@npm:20.0.4"
+ dependencies:
+ "@npmcli/fs": "npm:^5.0.0"
+ fs-minipass: "npm:^3.0.0"
+ glob: "npm:^13.0.0"
+ lru-cache: "npm:^11.1.0"
+ minipass: "npm:^7.0.3"
+ minipass-collect: "npm:^2.0.1"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ p-map: "npm:^7.0.2"
+ ssri: "npm:^13.0.0"
+ checksum: 10c0/539bf4020e44ba9ca5afc2ec435623ed7e0dd80c020097677e6b4a0545df5cc9d20b473212d01209c8b4aea43c0d095af0bb6da97bcb991642ea6fac0d7c462b
+ languageName: node
+ linkType: hard
+
+"camelcase@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "camelcase@npm:4.1.0"
+ checksum: 10c0/54c0b6a85b54fb4e96a9d834a9d0d8f760fd608ab6752a6789042b5e1c38d3dd60f878d2c590d005046445d32d77f6e05e568a91fe8db3e282da0a1560d83058
+ languageName: node
+ linkType: hard
+
+"caniuse-api@npm:^1.5.2":
+ version: 1.6.1
+ resolution: "caniuse-api@npm:1.6.1"
+ dependencies:
+ browserslist: "npm:^1.3.6"
+ caniuse-db: "npm:^1.0.30000529"
+ lodash.memoize: "npm:^4.1.2"
+ lodash.uniq: "npm:^4.5.0"
+ checksum: 10c0/0769ffb827dcc9d7f6fb1d9616d6ac9dcb0a271cfacd3b1026459f0c5052491ef5a458bdaca12c2204b65bf65aa0c43b880b9bfbe497a0469e319cb48f5da4fb
+ languageName: node
+ linkType: hard
+
+"caniuse-db@npm:^1.0.30000529, caniuse-db@npm:^1.0.30000634, caniuse-db@npm:^1.0.30000639":
+ version: 1.0.30001359
+ resolution: "caniuse-db@npm:1.0.30001359"
+ checksum: 10c0/8e079ed42d1094b3fd47816947bb1dea3f8efa3dc6cdf7a53482c504c9d8899ab068cb2c922427ada5e00132aeaddde8dff071785399315e32d3173e8c34bc64
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "chalk@npm:1.1.3"
+ dependencies:
+ ansi-styles: "npm:^2.2.1"
+ escape-string-regexp: "npm:^1.0.2"
+ has-ansi: "npm:^2.0.0"
+ strip-ansi: "npm:^3.0.0"
+ supports-color: "npm:^2.0.0"
+ checksum: 10c0/28c3e399ec286bb3a7111fd4225ebedb0d7b813aef38a37bca7c498d032459c265ef43404201d5fbb8d888d29090899c95335b4c0cda13e8b126ff15c541cef8
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^2.4.1":
+ version: 2.4.2
+ resolution: "chalk@npm:2.4.2"
+ dependencies:
+ ansi-styles: "npm:^3.2.1"
+ escape-string-regexp: "npm:^1.0.5"
+ supports-color: "npm:^5.3.0"
+ checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073
+ languageName: node
+ linkType: hard
+
+"charenc@npm:0.0.2":
+ version: 0.0.2
+ resolution: "charenc@npm:0.0.2"
+ checksum: 10c0/a45ec39363a16799d0f9365c8dd0c78e711415113c6f14787a22462ef451f5013efae8a28f1c058f81fc01f2a6a16955f7a5fd0cd56247ce94a45349c89877d8
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^1.0.1":
+ version: 1.1.4
+ resolution: "chownr@npm:1.1.4"
+ checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db
+ languageName: node
+ linkType: hard
+
+"chownr@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "chownr@npm:3.0.0"
+ checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10
+ languageName: node
+ linkType: hard
+
+"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "cipher-base@npm:1.0.4"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b
+ languageName: node
+ linkType: hard
+
+"clap@npm:^1.0.9":
+ version: 1.2.3
+ resolution: "clap@npm:1.2.3"
+ dependencies:
+ chalk: "npm:^1.1.3"
+ checksum: 10c0/55da8d6a8b60e4718652e7b4310773cb618fbc0386c7648e57a2639a5696f409cb7b5e079b058759232de80cfda32d01fb38934520bbf7c07cd49898fb74bae2
+ languageName: node
+ linkType: hard
+
+"cliui@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "cliui@npm:3.2.0"
+ dependencies:
+ string-width: "npm:^1.0.1"
+ strip-ansi: "npm:^3.0.1"
+ wrap-ansi: "npm:^2.0.0"
+ checksum: 10c0/07b121fac7fd33ff8dbf3523f0d3dca0329d4e457e57dee54502aa5f27a33cbd9e66aa3e248f0260d8a1431b65b2bad8f510cd97fb8ab6a8e0506310a92e18d5
+ languageName: node
+ linkType: hard
+
+"clone@npm:^1.0.2":
+ version: 1.0.4
+ resolution: "clone@npm:1.0.4"
+ checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b
+ languageName: node
+ linkType: hard
+
+"coa@npm:~1.0.1":
+ version: 1.0.4
+ resolution: "coa@npm:1.0.4"
+ dependencies:
+ q: "npm:^1.1.2"
+ checksum: 10c0/b15bb8d10f8a29b364fa6e4980aff1fee1da7ae4fe721ca9d806d04ddd95e394dcc9b6390028077b1911675e9cae26ea13c0d3fc332cdc3bb0a64e58547f7e60
+ languageName: node
+ linkType: hard
+
+"code-point-at@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "code-point-at@npm:1.1.0"
+ checksum: 10c0/33f6b234084e46e6e369b6f0b07949392651b4dde70fc6a592a8d3dafa08d5bb32e3981a02f31f6fc323a26bc03a4c063a9d56834848695bda7611c2417ea2e6
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^1.3.0, color-convert@npm:^1.9.0":
+ version: 1.9.3
+ resolution: "color-convert@npm:1.9.3"
+ dependencies:
+ color-name: "npm:1.1.3"
+ checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c
+ languageName: node
+ linkType: hard
+
+"color-name@npm:1.1.3":
+ version: 1.1.3
+ resolution: "color-name@npm:1.1.3"
+ checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6
+ languageName: node
+ linkType: hard
+
+"color-name@npm:^1.0.0":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
+ languageName: node
+ linkType: hard
+
+"color-string@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "color-string@npm:0.3.0"
+ dependencies:
+ color-name: "npm:^1.0.0"
+ checksum: 10c0/836bbbf58358c541cc5558ecb0376a4c857f08ed37519c2ab63f3d57ec205b52af929629f3d2d58b7d6f7fb7b6769697d83694454b667698be4eb46654f1f818
+ languageName: node
+ linkType: hard
+
+"color@npm:^0.11.0":
+ version: 0.11.4
+ resolution: "color@npm:0.11.4"
+ dependencies:
+ clone: "npm:^1.0.2"
+ color-convert: "npm:^1.3.0"
+ color-string: "npm:^0.3.0"
+ checksum: 10c0/93abcc7e2eb7c254d42b96a889aab887d2bf6fedf901fc13af88f8885377b84a0f0f11a033c3e9ef9e37dca65214466261acc781f00fdec1c8d221d20c4120ee
+ languageName: node
+ linkType: hard
+
+"colormin@npm:^1.0.5":
+ version: 1.1.2
+ resolution: "colormin@npm:1.1.2"
+ dependencies:
+ color: "npm:^0.11.0"
+ css-color-names: "npm:0.0.4"
+ has: "npm:^1.0.1"
+ checksum: 10c0/3488aca21bb100864c28b8070d5f86387fd4966bff93f552bb10cdc506a8ed9d42c4e239975b224c70eb664f170f543c74d8bda62f28216268141e8dba12777a
+ languageName: node
+ linkType: hard
+
+"colors@npm:~1.1.2":
+ version: 1.1.2
+ resolution: "colors@npm:1.1.2"
+ checksum: 10c0/21fa4c575e636d889187b4666988ff16a6464a845089ff7b5e0263883da8cfa9140029300ba67bc3e231f67a4eb610725f9e77cc1d74df47741b691a695aea11
+ languageName: node
+ linkType: hard
+
+"combined-stream@npm:^1.0.5":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: "npm:~1.0.0"
+ checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
+ languageName: node
+ linkType: hard
+
+"commander@npm:~2.13.0":
+ version: 2.13.0
+ resolution: "commander@npm:2.13.0"
+ checksum: 10c0/e3441096034439e506493ca1e5e9d5d5723ee0eadc3b2b92b3dd332b1d8fcbe72b70a1127f6790e6b3bedde3054316e9fe2cb36cef6ac051000b01559a16ba58
+ languageName: node
+ linkType: hard
+
+"commondir@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "commondir@npm:1.0.1"
+ checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6
+ languageName: node
+ linkType: hard
+
+"component-emitter@npm:^1.1.3":
+ version: 1.3.0
+ resolution: "component-emitter@npm:1.3.0"
+ checksum: 10c0/68774a0a3754fb6c0ba53c2e88886dfbd0c773931066abb1d7fd1b0c893b2a838d8f088ab4dca1f18cc1a4fc2e6932019eba3ded2d931b5ba2241ce40e93a24f
+ languageName: node
+ linkType: hard
+
+"component-emitter@npm:~1.2.0":
+ version: 1.2.1
+ resolution: "component-emitter@npm:1.2.1"
+ checksum: 10c0/6c27bd7bba028776464cee6c1686c8e02cb9a576a11df93f1fc211ae3eb2de234ae90952d0b7fb3acc9c92c8baa389fa7389681b2e8689d2ca463e94f3ad30b2
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
+ languageName: node
+ linkType: hard
+
+"concat-stream@npm:^1.5.0":
+ version: 1.6.2
+ resolution: "concat-stream@npm:1.6.2"
+ dependencies:
+ buffer-from: "npm:^1.0.0"
+ inherits: "npm:^2.0.3"
+ readable-stream: "npm:^2.2.2"
+ typedarray: "npm:^0.0.6"
+ checksum: 10c0/2e9864e18282946dabbccb212c5c7cec0702745e3671679eb8291812ca7fd12023f7d8cb36493942a62f770ac96a7f90009dc5c82ad69893438371720fa92617
+ languageName: node
+ linkType: hard
+
+"console-browserify@npm:^1.1.0":
+ version: 1.2.0
+ resolution: "console-browserify@npm:1.2.0"
+ checksum: 10c0/89b99a53b7d6cee54e1e64fa6b1f7ac24b844b4019c5d39db298637e55c1f4ffa5c165457ad984864de1379df2c8e1886cbbdac85d9dbb6876a9f26c3106f226
+ languageName: node
+ linkType: hard
+
+"constants-browserify@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "constants-browserify@npm:1.0.0"
+ checksum: 10c0/ab49b1d59a433ed77c964d90d19e08b2f77213fb823da4729c0baead55e3c597f8f97ebccfdfc47bd896d43854a117d114c849a6f659d9986420e97da0f83ac5
+ languageName: node
+ linkType: hard
+
+"convert-source-map@npm:^1.5.1":
+ version: 1.8.0
+ resolution: "convert-source-map@npm:1.8.0"
+ dependencies:
+ safe-buffer: "npm:~5.1.1"
+ checksum: 10c0/da4649990b633c070c0dab1680b89a67b9315dd2b1168d143536f667214c97e4eb4a49e5b7ff912f0196fe303e31fc16a529457436d25b2b5a89613eaf4f27fa
+ languageName: node
+ linkType: hard
+
+"cookie@npm:0.3.1":
+ version: 0.3.1
+ resolution: "cookie@npm:0.3.1"
+ checksum: 10c0/0d73c4d605b234c4d04de335aefa4988157f03265845f4a89ea311e3ba1ce73ab42b52d33652ed1c9671342eb77742a58f61753f3e90f31711284fb6031b2962
+ languageName: node
+ linkType: hard
+
+"cookiejar@npm:2.0.6":
+ version: 2.0.6
+ resolution: "cookiejar@npm:2.0.6"
+ checksum: 10c0/e62e345b74f29c396720e0592c9f6b7de6b29250867cf5abf6a7e798e4ea2efcb811210439ab6243b5dc2cde9d992133214039b08f7e474142eef441b102a58d
+ languageName: node
+ linkType: hard
+
+"copy-anything@npm:^2.0.1":
+ version: 2.0.6
+ resolution: "copy-anything@npm:2.0.6"
+ dependencies:
+ is-what: "npm:^3.14.1"
+ checksum: 10c0/2702998a8cc015f9917385b7f16b0d85f1f6e5e2fd34d99f14df584838f492f49aa0c390d973684c687e895c5c58d08b308a0400ac3e1e3d6fa1e5884a5402ad
+ languageName: node
+ linkType: hard
+
+"copy-concurrently@npm:^1.0.0":
+ version: 1.0.5
+ resolution: "copy-concurrently@npm:1.0.5"
+ dependencies:
+ aproba: "npm:^1.1.1"
+ fs-write-stream-atomic: "npm:^1.0.8"
+ iferr: "npm:^0.1.5"
+ mkdirp: "npm:^0.5.1"
+ rimraf: "npm:^2.5.4"
+ run-queue: "npm:^1.0.0"
+ checksum: 10c0/c2ce213cb27ee3df584d16eb6c9bfe99cfb531585007533c3e4c752521b4fbf0b2f7f90807d79c496683330808ecd9fdbd9ab9ddfa0913150b7f5097423348ce
+ languageName: node
+ linkType: hard
+
+"core-js@npm:^2.4.0, core-js@npm:^2.5.0":
+ version: 2.6.12
+ resolution: "core-js@npm:2.6.12"
+ checksum: 10c0/00128efe427789120a06b819adc94cc72b96955acb331cb71d09287baf9bd37bebd191d91f1ee4939c893a050307ead4faea08876f09115112612b6a05684b63
+ languageName: node
+ linkType: hard
+
+"core-util-is@npm:~1.0.0":
+ version: 1.0.3
+ resolution: "core-util-is@npm:1.0.3"
+ checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9
+ languageName: node
+ linkType: hard
+
+"create-ecdh@npm:^4.0.0":
+ version: 4.0.4
+ resolution: "create-ecdh@npm:4.0.4"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ elliptic: "npm:^6.5.3"
+ checksum: 10c0/77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f
+ languageName: node
+ linkType: hard
+
+"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "create-hash@npm:1.2.0"
+ dependencies:
+ cipher-base: "npm:^1.0.1"
+ inherits: "npm:^2.0.1"
+ md5.js: "npm:^1.3.4"
+ ripemd160: "npm:^2.0.1"
+ sha.js: "npm:^2.4.0"
+ checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915
+ languageName: node
+ linkType: hard
+
+"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7":
+ version: 1.1.7
+ resolution: "create-hmac@npm:1.1.7"
+ dependencies:
+ cipher-base: "npm:^1.0.3"
+ create-hash: "npm:^1.1.0"
+ inherits: "npm:^2.0.1"
+ ripemd160: "npm:^2.0.0"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^5.0.1":
+ version: 5.1.0
+ resolution: "cross-spawn@npm:5.1.0"
+ dependencies:
+ lru-cache: "npm:^4.0.1"
+ shebang-command: "npm:^1.2.0"
+ which: "npm:^1.2.9"
+ checksum: 10c0/1918621fddb9f8c61e02118b2dbf81f611ccd1544ceaca0d026525341832b8511ce2504c60f935dbc06b35e5ef156fe8c1e72708c27dd486f034e9c0e1e07201
+ languageName: node
+ linkType: hard
+
+"crypt@npm:0.0.2":
+ version: 0.0.2
+ resolution: "crypt@npm:0.0.2"
+ checksum: 10c0/adbf263441dd801665d5425f044647533f39f4612544071b1471962209d235042fb703c27eea2795c7c53e1dfc242405173003f83cf4f4761a633d11f9653f18
+ languageName: node
+ linkType: hard
+
+"crypto-browserify@npm:^3.11.0":
+ version: 3.12.0
+ resolution: "crypto-browserify@npm:3.12.0"
+ dependencies:
+ browserify-cipher: "npm:^1.0.0"
+ browserify-sign: "npm:^4.0.0"
+ create-ecdh: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ create-hmac: "npm:^1.1.0"
+ diffie-hellman: "npm:^5.0.0"
+ inherits: "npm:^2.0.1"
+ pbkdf2: "npm:^3.0.3"
+ public-encrypt: "npm:^4.0.0"
+ randombytes: "npm:^2.0.0"
+ randomfill: "npm:^1.0.3"
+ checksum: 10c0/0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92
+ languageName: node
+ linkType: hard
+
+"css-color-names@npm:0.0.4":
+ version: 0.0.4
+ resolution: "css-color-names@npm:0.0.4"
+ checksum: 10c0/88ef97c25bcfb217469cdff428049022438cc546eb208210f0edec03b75050723db3ba02cd0f4959c84cd0659be0b43af3323eff80d1ba5fb15c2accf09ccbe2
+ languageName: node
+ linkType: hard
+
+"css-loader@npm:^0.28.11":
+ version: 0.28.11
+ resolution: "css-loader@npm:0.28.11"
+ dependencies:
+ babel-code-frame: "npm:^6.26.0"
+ css-selector-tokenizer: "npm:^0.7.0"
+ cssnano: "npm:^3.10.0"
+ icss-utils: "npm:^2.1.0"
+ loader-utils: "npm:^1.0.2"
+ lodash.camelcase: "npm:^4.3.0"
+ object-assign: "npm:^4.1.1"
+ postcss: "npm:^5.0.6"
+ postcss-modules-extract-imports: "npm:^1.2.0"
+ postcss-modules-local-by-default: "npm:^1.2.0"
+ postcss-modules-scope: "npm:^1.1.0"
+ postcss-modules-values: "npm:^1.3.0"
+ postcss-value-parser: "npm:^3.3.0"
+ source-list-map: "npm:^2.0.0"
+ checksum: 10c0/36434d7fafde8a4de3995c444713a455df17f74cfe10f089481cb7918db6f206267301daf2ae0496544809ca35bb226df47aa4edeb9580704c96281a07091f8b
+ languageName: node
+ linkType: hard
+
+"css-selector-tokenizer@npm:^0.7.0":
+ version: 0.7.3
+ resolution: "css-selector-tokenizer@npm:0.7.3"
+ dependencies:
+ cssesc: "npm:^3.0.0"
+ fastparse: "npm:^1.1.2"
+ checksum: 10c0/bc4d14204bf5716f70085526bf370cbdd1c643dcb2e7366ba96212649fa5a07885e3f5dc2bde53646bac557ded79a60c7118cf7cf5d4dda898353a9e08277649
+ languageName: node
+ linkType: hard
+
+"cssesc@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "cssesc@npm:3.0.0"
+ bin:
+ cssesc: bin/cssesc
+ checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7
+ languageName: node
+ linkType: hard
+
+"cssnano@npm:^3.10.0":
+ version: 3.10.0
+ resolution: "cssnano@npm:3.10.0"
+ dependencies:
+ autoprefixer: "npm:^6.3.1"
+ decamelize: "npm:^1.1.2"
+ defined: "npm:^1.0.0"
+ has: "npm:^1.0.1"
+ object-assign: "npm:^4.0.1"
+ postcss: "npm:^5.0.14"
+ postcss-calc: "npm:^5.2.0"
+ postcss-colormin: "npm:^2.1.8"
+ postcss-convert-values: "npm:^2.3.4"
+ postcss-discard-comments: "npm:^2.0.4"
+ postcss-discard-duplicates: "npm:^2.0.1"
+ postcss-discard-empty: "npm:^2.0.1"
+ postcss-discard-overridden: "npm:^0.1.1"
+ postcss-discard-unused: "npm:^2.2.1"
+ postcss-filter-plugins: "npm:^2.0.0"
+ postcss-merge-idents: "npm:^2.1.5"
+ postcss-merge-longhand: "npm:^2.0.1"
+ postcss-merge-rules: "npm:^2.0.3"
+ postcss-minify-font-values: "npm:^1.0.2"
+ postcss-minify-gradients: "npm:^1.0.1"
+ postcss-minify-params: "npm:^1.0.4"
+ postcss-minify-selectors: "npm:^2.0.4"
+ postcss-normalize-charset: "npm:^1.1.0"
+ postcss-normalize-url: "npm:^3.0.7"
+ postcss-ordered-values: "npm:^2.1.0"
+ postcss-reduce-idents: "npm:^2.2.2"
+ postcss-reduce-initial: "npm:^1.0.0"
+ postcss-reduce-transforms: "npm:^1.0.3"
+ postcss-svgo: "npm:^2.1.1"
+ postcss-unique-selectors: "npm:^2.0.2"
+ postcss-value-parser: "npm:^3.2.3"
+ postcss-zindex: "npm:^2.0.1"
+ checksum: 10c0/1231f79be4761fa61478fb2a51d1aa95798eb426e33cde95341b5e9c71ec56c170fcc4c8d0618a8961033efb9da6230539eea933431c983ef065c014865e50f4
+ languageName: node
+ linkType: hard
+
+"csso@npm:~2.3.1":
+ version: 2.3.2
+ resolution: "csso@npm:2.3.2"
+ dependencies:
+ clap: "npm:^1.0.9"
+ source-map: "npm:^0.5.3"
+ bin:
+ csso: ./bin/csso
+ checksum: 10c0/e36a1cae8f371327cbf22d6770b8827291fa4f372bbaab938d5afc869e73f0a452ba4e87738bf03bfbb3bba27770efa04a6b4acaf5f36e94f88e8c481b9df7fa
+ languageName: node
+ linkType: hard
+
+"cyclist@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "cyclist@npm:1.0.1"
+ checksum: 10c0/3381d3b66a3b268e6e0abcc1fa8fbeeb9a98391d8455677509f9833813d7680cc737a10141f54c229e42f5b3133250f36f1aa04f56ef4ba9b29fa728c3c48c01
+ languageName: node
+ linkType: hard
+
+"d@npm:1, d@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "d@npm:1.0.1"
+ dependencies:
+ es5-ext: "npm:^0.10.50"
+ type: "npm:^1.0.1"
+ checksum: 10c0/1fedcb3b956a461f64d86b94b347441beff5cef8910b6ac4ec509a2c67eeaa7093660a98b26601ac91f91260238add73bdf25867a9c0cb783774642bc4c1523f
+ languageName: node
+ linkType: hard
+
+"debug@npm:2, debug@npm:^2.6.8, debug@npm:^2.6.9":
+ version: 2.6.9
+ resolution: "debug@npm:2.6.9"
+ dependencies:
+ ms: "npm:2.0.0"
+ checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589
+ languageName: node
+ linkType: hard
+
+"debug@npm:4, debug@npm:^4.3.4":
+ version: 4.4.3
+ resolution: "debug@npm:4.4.3"
+ dependencies:
+ ms: "npm:^2.1.3"
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6
+ languageName: node
+ linkType: hard
+
+"debug@npm:^3.2.6":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: "npm:^2.1.1"
+ checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a
+ languageName: node
+ linkType: hard
+
+"decamelize@npm:^1.1.1, decamelize@npm:^1.1.2":
+ version: 1.2.0
+ resolution: "decamelize@npm:1.2.0"
+ checksum: 10c0/85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2
+ languageName: node
+ linkType: hard
+
+"defined@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "defined@npm:1.0.0"
+ checksum: 10c0/2b9929414857729a97cfcc77987e65005e03b3fd92747e1d6a743b054c1387b62e669dc453b53e3a8105f1398df6aad54c07eed984871c93be8c7f4560a1828b
+ languageName: node
+ linkType: hard
+
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
+ languageName: node
+ linkType: hard
+
+"des.js@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "des.js@npm:1.0.1"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ minimalistic-assert: "npm:^1.0.0"
+ checksum: 10c0/69bf742d1c381e01d75151bdcaac71a18d251d7debfc9b6ae5ee4b4edaf39691ae203c5ec9173ba89aedb3ddc622cdff4fca065448c6c2afb1140d9fb826339d
+ languageName: node
+ linkType: hard
+
+"detect-indent@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "detect-indent@npm:4.0.0"
+ dependencies:
+ repeating: "npm:^2.0.0"
+ checksum: 10c0/066a0d13eadebb1e7d2ba395fdf9f3956f31f8383a6db263320108c283e2230250a102f4871f54926cc8a77c6323ac7103f30550a4ac3d6518aa1b934c041295
+ languageName: node
+ linkType: hard
+
+"diffie-hellman@npm:^5.0.0":
+ version: 5.0.3
+ resolution: "diffie-hellman@npm:5.0.3"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ miller-rabin: "npm:^4.0.0"
+ randombytes: "npm:^2.0.0"
+ checksum: 10c0/ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf
+ languageName: node
+ linkType: hard
+
+"domain-browser@npm:^1.1.1":
+ version: 1.2.0
+ resolution: "domain-browser@npm:1.2.0"
+ checksum: 10c0/a955f482f4b4710fbd77c12a33e77548d63603c30c80f61a80519f27e3db1ba8530b914584cc9e9365d2038753d6b5bd1f4e6c81e432b007b0ec95b8b5e69b1b
+ languageName: node
+ linkType: hard
+
+"domready@npm:0.3.0":
+ version: 0.3.0
+ resolution: "domready@npm:0.3.0"
+ checksum: 10c0/c08ad5ece9e4d4bb5425422534c580c93443956acb1963019788ac1607c671d25de38f540b6d57f18e9364690ae010b81eb13a4c1fbef1cbedddeabf08963eff
+ languageName: node
+ linkType: hard
+
+"duplexify@npm:^3.4.2, duplexify@npm:^3.6.0":
+ version: 3.7.1
+ resolution: "duplexify@npm:3.7.1"
+ dependencies:
+ end-of-stream: "npm:^1.0.0"
+ inherits: "npm:^2.0.1"
+ readable-stream: "npm:^2.0.0"
+ stream-shift: "npm:^1.0.0"
+ checksum: 10c0/59d1440c1b4e3a4db35ae96933392703ce83518db1828d06b9b6322920d6cbbf0b7159e88be120385fe459e77f1eb0c7622f26e9ec1f47c9ff05c2b35747dbd3
+ languageName: node
+ linkType: hard
+
+"electron-to-chromium@npm:^1.2.7":
+ version: 1.4.172
+ resolution: "electron-to-chromium@npm:1.4.172"
+ checksum: 10c0/b0543ef0331708ccfb049f71be39edd340d9d4e8e0f7cafec9c7e3e8a7982c88d36bbc143b2e29858e42d5bccafbe394b6f389c95c23ed9f8c499e59b93ce623
+ languageName: node
+ linkType: hard
+
+"elliptic@npm:^6.5.3":
+ version: 6.5.4
+ resolution: "elliptic@npm:6.5.4"
+ dependencies:
+ bn.js: "npm:^4.11.9"
+ brorand: "npm:^1.1.0"
+ hash.js: "npm:^1.0.0"
+ hmac-drbg: "npm:^1.0.1"
+ inherits: "npm:^2.0.4"
+ minimalistic-assert: "npm:^1.0.1"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2
+ languageName: node
+ linkType: hard
+
+"emojis-list@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "emojis-list@npm:2.1.0"
+ checksum: 10c0/bbb941223bfb3e38054cb52ed1b3098a8dac0a90fdd2699eb8a3af3b2172cdc4af0932e05c3edd52e814997c8f45cf1d7f5e86e9ecdcd4e2390a0f27e6914db5
+ languageName: node
+ linkType: hard
+
+"emojis-list@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "emojis-list@npm:3.0.0"
+ checksum: 10c0/7dc4394b7b910444910ad64b812392159a21e1a7ecc637c775a440227dcb4f80eff7fe61f4453a7d7603fa23d23d30cc93fe9e4b5ed985b88d6441cd4a35117b
+ languageName: node
+ linkType: hard
+
+"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0":
+ version: 1.4.4
+ resolution: "end-of-stream@npm:1.4.4"
+ dependencies:
+ once: "npm:^1.4.0"
+ checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975
+ languageName: node
+ linkType: hard
+
+"enhanced-resolve@npm:^3.4.0":
+ version: 3.4.1
+ resolution: "enhanced-resolve@npm:3.4.1"
+ dependencies:
+ graceful-fs: "npm:^4.1.2"
+ memory-fs: "npm:^0.4.0"
+ object-assign: "npm:^4.0.1"
+ tapable: "npm:^0.2.7"
+ checksum: 10c0/91f2da7e8e5ab2376823843a0e0176f683cfdb5749efbb6e1f26580b285593bb5b69006a1ae5e068c21ab1eb90271eec8b8fd6aa3ac36cc6f1f6de4d37a06456
+ languageName: node
+ linkType: hard
+
+"env-paths@npm:^2.2.0":
+ version: 2.2.1
+ resolution: "env-paths@npm:2.2.1"
+ checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
+ languageName: node
+ linkType: hard
+
+"errno@npm:^0.1.1, errno@npm:^0.1.3, errno@npm:~0.1.7":
+ version: 0.1.8
+ resolution: "errno@npm:0.1.8"
+ dependencies:
+ prr: "npm:~1.0.1"
+ bin:
+ errno: cli.js
+ checksum: 10c0/83758951967ec57bf00b5f5b7dc797e6d65a6171e57ea57adcf1bd1a0b477fd9b5b35fae5be1ff18f4090ed156bce1db749fe7e317aac19d485a5d150f6a4936
+ languageName: node
+ linkType: hard
+
+"error-ex@npm:^1.2.0":
+ version: 1.3.2
+ resolution: "error-ex@npm:1.3.2"
+ dependencies:
+ is-arrayish: "npm:^0.2.1"
+ checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce
+ languageName: node
+ linkType: hard
+
+"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.46, es5-ext@npm:^0.10.50, es5-ext@npm:~0.10.14":
+ version: 0.10.61
+ resolution: "es5-ext@npm:0.10.61"
+ dependencies:
+ es6-iterator: "npm:^2.0.3"
+ es6-symbol: "npm:^3.1.3"
+ next-tick: "npm:^1.1.0"
+ checksum: 10c0/fceee484bbf3d7b064b8b3b9ad9095fa64e8736de322f8b48abd162f215bdd503390a3bb8c3cdeebae619825111f7eff83e1e4400fe232733da027ade8e1823e
+ languageName: node
+ linkType: hard
+
+"es6-iterator@npm:^2.0.3, es6-iterator@npm:~2.0.1":
+ version: 2.0.3
+ resolution: "es6-iterator@npm:2.0.3"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:^0.10.35"
+ es6-symbol: "npm:^3.1.1"
+ checksum: 10c0/91f20b799dba28fb05bf623c31857fc1524a0f1c444903beccaf8929ad196c8c9ded233e5ac7214fc63a92b3f25b64b7f2737fcca8b1f92d2d96cf3ac902f5d8
+ languageName: node
+ linkType: hard
+
+"es6-map@npm:^0.1.3":
+ version: 0.1.5
+ resolution: "es6-map@npm:0.1.5"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:~0.10.14"
+ es6-iterator: "npm:~2.0.1"
+ es6-set: "npm:~0.1.5"
+ es6-symbol: "npm:~3.1.1"
+ event-emitter: "npm:~0.3.5"
+ checksum: 10c0/62fe1a90ead1704bed699cb9c975e642023f590d5338c2a640d60ce0a846de7d5197561393ac03dd11473b96087cf8793c9e4836fe05ad4d2ef6afda6b9a3511
+ languageName: node
+ linkType: hard
+
+"es6-set@npm:~0.1.5":
+ version: 0.1.5
+ resolution: "es6-set@npm:0.1.5"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:~0.10.14"
+ es6-iterator: "npm:~2.0.1"
+ es6-symbol: "npm:3.1.1"
+ event-emitter: "npm:~0.3.5"
+ checksum: 10c0/a1fe925f77bd529b7b5135ca1a8bc9ff378fa0e3fd9686f3ac1b8e87eb00fbffc100e81a3c44262cd324cbfcc772d7a75ca5471e3fb24247ac85c5beb6af0d14
+ languageName: node
+ linkType: hard
+
+"es6-symbol@npm:3.1.1":
+ version: 3.1.1
+ resolution: "es6-symbol@npm:3.1.1"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:~0.10.14"
+ checksum: 10c0/eb4ec788a99dc2c04e5e9abd90f478991425a881eced99a7165eada0c832bfc9a8fbb76b688c3c3b6e103f94d23e8e19addf9cf18abb537fb918d066d5ce1d7f
+ languageName: node
+ linkType: hard
+
+"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3, es6-symbol@npm:~3.1.1":
+ version: 3.1.3
+ resolution: "es6-symbol@npm:3.1.3"
+ dependencies:
+ d: "npm:^1.0.1"
+ ext: "npm:^1.1.2"
+ checksum: 10c0/22982f815f00df553a89f4fb74c5048fed85df598482b4bd38dbd173174247949c72982a7d7132a58b147525398400e5f182db59b0916cb49f1e245fb0e22233
+ languageName: node
+ linkType: hard
+
+"es6-weak-map@npm:^2.0.1":
+ version: 2.0.3
+ resolution: "es6-weak-map@npm:2.0.3"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:^0.10.46"
+ es6-iterator: "npm:^2.0.3"
+ es6-symbol: "npm:^3.1.1"
+ checksum: 10c0/460932be9542473dbbddd183e21c15a66cfec1b2c17dae2b514e190d6fb2896b7eb683783d4b36da036609d2e1c93d2815f21b374dfccaf02a8978694c2f7b67
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "escape-string-regexp@npm:1.0.5"
+ checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371
+ languageName: node
+ linkType: hard
+
+"escope@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "escope@npm:3.6.0"
+ dependencies:
+ es6-map: "npm:^0.1.3"
+ es6-weak-map: "npm:^2.0.1"
+ esrecurse: "npm:^4.1.0"
+ estraverse: "npm:^4.1.1"
+ checksum: 10c0/79cbb30bf126628eb7e586575b2f5fd31b14ea108cd2379c571fe4dc09ea5208f42dacf1cd43a702b59efccb128e9c9e7762d5cd670d2d184a889947aea509e5
+ languageName: node
+ linkType: hard
+
+"esprima@npm:^2.6.0":
+ version: 2.7.3
+ resolution: "esprima@npm:2.7.3"
+ bin:
+ esparse: ./bin/esparse.js
+ esvalidate: ./bin/esvalidate.js
+ checksum: 10c0/6e1e99f280eed2ecd521ae28217c5f7c7a03fd0a1ac913bffd4a4ba278caf32cb8d9fc01e41d4b4bc904617282873dea297d60e1f93ea20156f29994c348a04f
+ languageName: node
+ linkType: hard
+
+"esrecurse@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "esrecurse@npm:4.3.0"
+ dependencies:
+ estraverse: "npm:^5.2.0"
+ checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^4.1.1":
+ version: 4.3.0
+ resolution: "estraverse@npm:4.3.0"
+ checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d
+ languageName: node
+ linkType: hard
+
+"estraverse@npm:^5.2.0":
+ version: 5.3.0
+ resolution: "estraverse@npm:5.3.0"
+ checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
+ languageName: node
+ linkType: hard
+
+"esutils@npm:^2.0.2":
+ version: 2.0.3
+ resolution: "esutils@npm:2.0.3"
+ checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
+ languageName: node
+ linkType: hard
+
+"event-emitter@npm:~0.3.5":
+ version: 0.3.5
+ resolution: "event-emitter@npm:0.3.5"
+ dependencies:
+ d: "npm:1"
+ es5-ext: "npm:~0.10.14"
+ checksum: 10c0/75082fa8ffb3929766d0f0a063bfd6046bd2a80bea2666ebaa0cfd6f4a9116be6647c15667bea77222afc12f5b4071b68d393cf39fdaa0e8e81eda006160aff0
+ languageName: node
+ linkType: hard
+
+"events@npm:^3.0.0":
+ version: 3.3.0
+ resolution: "events@npm:3.3.0"
+ checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
+ languageName: node
+ linkType: hard
+
+"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "evp_bytestokey@npm:1.0.3"
+ dependencies:
+ md5.js: "npm:^1.3.4"
+ node-gyp: "npm:latest"
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99
+ languageName: node
+ linkType: hard
+
+"execa@npm:^0.7.0":
+ version: 0.7.0
+ resolution: "execa@npm:0.7.0"
+ dependencies:
+ cross-spawn: "npm:^5.0.1"
+ get-stream: "npm:^3.0.0"
+ is-stream: "npm:^1.1.0"
+ npm-run-path: "npm:^2.0.0"
+ p-finally: "npm:^1.0.0"
+ signal-exit: "npm:^3.0.0"
+ strip-eof: "npm:^1.0.0"
+ checksum: 10c0/812f1776e2a6b2226532e43c1af87d8a12e26de03a06e7e043f653acf5565e0656f5f6c64d66726fefa17178ac129caaa419a50905934e7c4a846417abb25d4a
+ languageName: node
+ linkType: hard
+
+"exponential-backoff@npm:^3.1.1":
+ version: 3.1.3
+ resolution: "exponential-backoff@npm:3.1.3"
+ checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267
+ languageName: node
+ linkType: hard
+
+"ext@npm:^1.1.2":
+ version: 1.6.0
+ resolution: "ext@npm:1.6.0"
+ dependencies:
+ type: "npm:^2.5.0"
+ checksum: 10c0/d6ff29ca86fbe4e69743d10702ece124e0239faa435a6c3b2833282787b9eace2c8cbf5d8439d0c85312255d5472d251bf3cd4c4d1b9de8f8a8090e6b43db948
+ languageName: node
+ linkType: hard
+
+"extend@npm:3.0.0":
+ version: 3.0.0
+ resolution: "extend@npm:3.0.0"
+ checksum: 10c0/67a867fd39abcd36f3d11e99c6e2808d0237214239ca7a194278b1a91790945a3755e22fd4e16521a247e511f9bce866142b483e1ca61d33d7c2317aa98ecf5a
+ languageName: node
+ linkType: hard
+
+"fast-deep-equal@npm:^3.1.1":
+ version: 3.1.3
+ resolution: "fast-deep-equal@npm:3.1.3"
+ checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
+ languageName: node
+ linkType: hard
+
+"fast-json-stable-stringify@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "fast-json-stable-stringify@npm:2.1.0"
+ checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
+ languageName: node
+ linkType: hard
+
+"fastparse@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "fastparse@npm:1.1.2"
+ checksum: 10c0/c08d6e7ef10c0928426c1963dd4593e2baaf44d223ab1e5ba5d7b30470144b3a4ecb3605958b73754cea3f857ecef00b67c885f07ca2c312b38b67d9d88b84b5
+ languageName: node
+ linkType: hard
+
+"fdir@npm:^6.5.0":
+ version: 6.5.0
+ resolution: "fdir@npm:6.5.0"
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+ checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f
+ languageName: node
+ linkType: hard
+
+"find-cache-dir@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "find-cache-dir@npm:0.1.1"
+ dependencies:
+ commondir: "npm:^1.0.1"
+ mkdirp: "npm:^0.5.1"
+ pkg-dir: "npm:^1.0.0"
+ checksum: 10c0/797d978c94352851f684d0565e3a60eca4aa380be91643c0a9066eec48c75ee0b382f6b04309fa6d183dea0bff1471ad7da116fcc7c8f95d4af8f5aca444ec41
+ languageName: node
+ linkType: hard
+
+"find-cache-dir@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "find-cache-dir@npm:1.0.0"
+ dependencies:
+ commondir: "npm:^1.0.1"
+ make-dir: "npm:^1.0.0"
+ pkg-dir: "npm:^2.0.0"
+ checksum: 10c0/264b706771f30b39385cf921a5576c80ef95cb4c8ef2df8761b8be62326a1537ea63feecf0deac52cd84d6937b312a8d9554b4012a092937ade43a165cd5b6f9
+ languageName: node
+ linkType: hard
+
+"find-root@npm:^0.1.1":
+ version: 0.1.2
+ resolution: "find-root@npm:0.1.2"
+ checksum: 10c0/698fd94b2505da9c5ceee77d76b7a152ec5dbd3000f354497f95a66de3c0f249d5cd43fb2a05afb5715baf1a4a91498f90a66e0c3844a09fbd0afe0f16024058
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^1.0.0":
+ version: 1.1.2
+ resolution: "find-up@npm:1.1.2"
+ dependencies:
+ path-exists: "npm:^2.0.0"
+ pinkie-promise: "npm:^2.0.0"
+ checksum: 10c0/51e35c62d9b7efe82d7d5cce966bfe10c2eaa78c769333f8114627e3a8a4a4f50747f5f50bff50b1094cbc6527776f0d3b9ff74d3561ef714a5290a17c80c2bc
+ languageName: node
+ linkType: hard
+
+"find-up@npm:^2.0.0, find-up@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "find-up@npm:2.1.0"
+ dependencies:
+ locate-path: "npm:^2.0.0"
+ checksum: 10c0/c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840
+ languageName: node
+ linkType: hard
+
+"flatten@npm:^1.0.2":
+ version: 1.0.3
+ resolution: "flatten@npm:1.0.3"
+ checksum: 10c0/9f9b1f3dcd05be057bb83ec27f2513da5306e7bfc0cf8bd839ab423eb1b0f99683a25c97b48fafd5959819159659ce9f1397623a46f89a8577ba095fcf5fb753
+ languageName: node
+ linkType: hard
+
+"flush-write-stream@npm:^1.0.0":
+ version: 1.1.1
+ resolution: "flush-write-stream@npm:1.1.1"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ readable-stream: "npm:^2.3.6"
+ checksum: 10c0/2cd4f65b728d5f388197a03dafabc6a5e4f0c2ed1a2d912e288f7aa1c2996dd90875e55b50cf32c78dca55ad2e2dfae5d3db09b223838388033d87cf5920dd87
+ languageName: node
+ linkType: hard
+
+"font-awesome-webpack@npm:0.0.5-beta.2":
+ version: 0.0.5-beta.2
+ resolution: "font-awesome-webpack@npm:0.0.5-beta.2"
+ dependencies:
+ css-loader: "npm:~0.26.1"
+ less-loader: "npm:~2.2.3"
+ style-loader: "npm:~0.13.1"
+ peerDependencies:
+ font-awesome: ">=4.3.0"
+ checksum: 10c0/fd36231eba4f9e9cacbcbcc1b814b03c99ba9ea0d8520a0870da6bf8bd049f2107b39866769e678c4f214e93da9a13a056d40ee260fed1071a1abf0763fdf0a4
+ languageName: node
+ linkType: hard
+
+"font-awesome@npm:^4.5.0":
+ version: 4.7.0
+ resolution: "font-awesome@npm:4.7.0"
+ checksum: 10c0/1c456e2939c55192eed67db9c0efb8db3e92fd357ca189ca00030eb44acffa1e9f835288d2204c14b9a9c490a7b14b7090dfaff80ded6b2473f50a923dfb41e7
+ languageName: node
+ linkType: hard
+
+"form-data@npm:1.0.0-rc3":
+ version: 1.0.0-rc3
+ resolution: "form-data@npm:1.0.0-rc3"
+ dependencies:
+ async: "npm:^1.4.0"
+ combined-stream: "npm:^1.0.5"
+ mime-types: "npm:^2.1.3"
+ checksum: 10c0/d67674a76f46253f69aebdc5c1c86aa123385940d147346b2f801681656ab5df6b82bd9568483e1579fd53bf277795f2da7592c6a842893465ef69e9073c342f
+ languageName: node
+ linkType: hard
+
+"formidable@npm:~1.0.14":
+ version: 1.0.17
+ resolution: "formidable@npm:1.0.17"
+ checksum: 10c0/651c7394574ab6b451467200495bcb5064776419d883e6f82512f31019a0528de90c729d28d89d519eb00cb456302206aa389a4d63d2aba69eef5653ba863714
+ languageName: node
+ linkType: hard
+
+"from2@npm:^2.1.0":
+ version: 2.3.0
+ resolution: "from2@npm:2.3.0"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ readable-stream: "npm:^2.0.0"
+ checksum: 10c0/f87f7a2e4513244d551454a7f8324ef1f7837864a8701c536417286ec19ff4915606b1dfa8909a21b7591ebd8440ffde3642f7c303690b9a4d7c832d62248aa1
+ languageName: node
+ linkType: hard
+
+"fs-minipass@npm:^3.0.0":
+ version: 3.0.3
+ resolution: "fs-minipass@npm:3.0.3"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
+ languageName: node
+ linkType: hard
+
+"fs-write-stream-atomic@npm:^1.0.8":
+ version: 1.0.10
+ resolution: "fs-write-stream-atomic@npm:1.0.10"
+ dependencies:
+ graceful-fs: "npm:^4.1.2"
+ iferr: "npm:^0.1.5"
+ imurmurhash: "npm:^0.1.4"
+ readable-stream: "npm:1 || 2"
+ checksum: 10c0/293b2b4ed346d35a28f8637a20cb2aef31be86503da501c42c2eda8fefed328bac16ce0e5daa7019f9329d73930c58031eaea2ce0c70f1680943fbfb7cff808b
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "function-bind@npm:1.1.1"
+ checksum: 10c0/60b74b2407e1942e1ed7f8c284f8ef714d0689dcfce5319985a5b7da3fc727f40b4a59ec72dc55aa83365ad7b8fa4fac3a30d93c850a2b452f29ae03dbc10a1e
+ languageName: node
+ linkType: hard
+
+"get-caller-file@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "get-caller-file@npm:1.0.3"
+ checksum: 10c0/763dcee2de8ff60ae7e13a4bad8306205a2fbe108e555686344ddd9ef211b8bebfe459d3a739669257014c59e7cc1e7a44003c21af805c1214673e6a45f06c51
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "get-stream@npm:3.0.0"
+ checksum: 10c0/003f5f3b8870da59c6aafdf6ed7e7b07b48c2f8629cd461bd3900726548b6b8cfa2e14d6b7814fbb08f07a42f4f738407fa70b989928b2783a76b278505bba22
+ languageName: node
+ linkType: hard
+
+"glob-to-regexp@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "glob-to-regexp@npm:0.4.1"
+ checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429
+ languageName: node
+ linkType: hard
+
+"glob@npm:^13.0.0":
+ version: 13.0.6
+ resolution: "glob@npm:13.0.6"
+ dependencies:
+ minimatch: "npm:^10.2.2"
+ minipass: "npm:^7.1.3"
+ path-scurry: "npm:^2.0.2"
+ checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.1.2, glob@npm:^7.1.3":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ dependencies:
+ fs.realpath: "npm:^1.0.0"
+ inflight: "npm:^1.0.4"
+ inherits: "npm:2"
+ minimatch: "npm:^3.1.1"
+ once: "npm:^1.3.0"
+ path-is-absolute: "npm:^1.0.0"
+ checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe
+ languageName: node
+ linkType: hard
+
+"globals@npm:^9.18.0":
+ version: 9.18.0
+ resolution: "globals@npm:9.18.0"
+ checksum: 10c0/5ab74cb67cf060a9fceede4a0f2babc4c2c0b90dbb13847d2659defdf2121c60035ef23823c8417ce8c11bdaa7b412396077f2b3d2a7dedab490a881a0a96754
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2":
+ version: 4.2.10
+ resolution: "graceful-fs@npm:4.2.10"
+ checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.2.6":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
+ languageName: node
+ linkType: hard
+
+"has-ansi@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "has-ansi@npm:2.0.0"
+ dependencies:
+ ansi-regex: "npm:^2.0.0"
+ checksum: 10c0/f54e4887b9f8f3c4bfefd649c48825b3c093987c92c27880ee9898539e6f01aed261e82e73153c3f920fde0db5bf6ebd58deb498ed1debabcb4bc40113ccdf05
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "has-flag@npm:1.0.0"
+ checksum: 10c0/d0ad4bebbbc005edccfa1e2c0600c89375be5663d23f49a129e0f817187405748b0b515abfc5b3c209c92692e39bb0481c83c0ee4df69433d6ffd0242183100b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "has-flag@npm:2.0.0"
+ checksum: 10c0/5e1f136c7f801c2719048bedfabcf834a1ed46276cd4c98c6fcddb89a482f5d6a16df0771a38805cfc2d9010b4de157909e1a71b708e1d339b6e311041bde9b4
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "has-flag@npm:3.0.0"
+ checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473
+ languageName: node
+ linkType: hard
+
+"has@npm:^1.0.1, has@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has@npm:1.0.3"
+ dependencies:
+ function-bind: "npm:^1.1.1"
+ checksum: 10c0/e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b
+ languageName: node
+ linkType: hard
+
+"hash-base@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "hash-base@npm:3.1.0"
+ dependencies:
+ inherits: "npm:^2.0.4"
+ readable-stream: "npm:^3.6.0"
+ safe-buffer: "npm:^5.2.0"
+ checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0
+ languageName: node
+ linkType: hard
+
+"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3":
+ version: 1.1.7
+ resolution: "hash.js@npm:1.1.7"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ minimalistic-assert: "npm:^1.0.1"
+ checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4
+ languageName: node
+ linkType: hard
+
+"hmac-drbg@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "hmac-drbg@npm:1.0.1"
+ dependencies:
+ hash.js: "npm:^1.0.3"
+ minimalistic-assert: "npm:^1.0.0"
+ minimalistic-crypto-utils: "npm:^1.0.1"
+ checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d
+ languageName: node
+ linkType: hard
+
+"home-or-tmp@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "home-or-tmp@npm:2.0.0"
+ dependencies:
+ os-homedir: "npm:^1.0.0"
+ os-tmpdir: "npm:^1.0.1"
+ checksum: 10c0/a0e0d26db09dc0b3245f52a9159d3e970e628ddc22d69842e8413ea42f81d5a29c3808f9b08ea4d48db084e4e693193cc238c114775aa92d753bf95a9daa10fb
+ languageName: node
+ linkType: hard
+
+"hosted-git-info@npm:^2.1.4":
+ version: 2.8.9
+ resolution: "hosted-git-info@npm:2.8.9"
+ checksum: 10c0/317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70
+ languageName: node
+ linkType: hard
+
+"html-comment-regex@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "html-comment-regex@npm:1.1.2"
+ checksum: 10c0/c6fe47e7efbb2e853217854cdf352e53a6d414f87a6029456010250179f9ac2c77ef657dd4e26f4d3930f8def0e2fad015c233a3181a195a59fb4eeda6d333f9
+ languageName: node
+ linkType: hard
+
+"http-cache-semantics@npm:^4.1.1":
+ version: 4.2.0
+ resolution: "http-cache-semantics@npm:4.2.0"
+ checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37
+ languageName: node
+ linkType: hard
+
+"http-proxy-agent@npm:^7.0.0":
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
+ dependencies:
+ agent-base: "npm:^7.1.0"
+ debug: "npm:^4.3.4"
+ checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
+ languageName: node
+ linkType: hard
+
+"https-browserify@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "https-browserify@npm:1.0.0"
+ checksum: 10c0/e17b6943bc24ea9b9a7da5714645d808670af75a425f29baffc3284962626efdc1eb3aa9bbffaa6e64028a6ad98af5b09fabcb454a8f918fb686abfdc9e9b8ae
+ languageName: node
+ linkType: hard
+
+"https-proxy-agent@npm:^7.0.1":
+ version: 7.0.6
+ resolution: "https-proxy-agent@npm:7.0.6"
+ dependencies:
+ agent-base: "npm:^7.1.2"
+ debug: "npm:4"
+ checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.6.3":
+ version: 0.6.3
+ resolution: "iconv-lite@npm:0.6.3"
+ dependencies:
+ safer-buffer: "npm:>= 2.1.2 < 3.0.0"
+ checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
+ languageName: node
+ linkType: hard
+
+"iconv-lite@npm:^0.7.2":
+ version: 0.7.2
+ resolution: "iconv-lite@npm:0.7.2"
+ dependencies:
+ safer-buffer: "npm:>= 2.1.2 < 3.0.0"
+ checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722
+ languageName: node
+ linkType: hard
+
+"icss-replace-symbols@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "icss-replace-symbols@npm:1.1.0"
+ checksum: 10c0/aaa5b67f82781fccc77bf6df14eaa9177ce3944462ef82b2b9e3b9f17d8fcd90f8851ffd5e6e249ebc5c464bfda07c2eccce2d122274c51c9d5b359b087f7049
+ languageName: node
+ linkType: hard
+
+"icss-utils@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "icss-utils@npm:2.1.0"
+ dependencies:
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/69d3b8fdea58fbf5c26d8dc2d1b7d8ded34fd8fb0800ed60b390e0ae5f596e77b155c587fb62e7642d1064d2d72fc672676df58ef935eba7303d79467e43edbf
+ languageName: node
+ linkType: hard
+
+"ieee754@npm:^1.1.4":
+ version: 1.2.1
+ resolution: "ieee754@npm:1.2.1"
+ checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
+ languageName: node
+ linkType: hard
+
+"iferr@npm:^0.1.5":
+ version: 0.1.5
+ resolution: "iferr@npm:0.1.5"
+ checksum: 10c0/e0669b1757d0501b43a158321945d1cc1fe56f28a972df2f88a5818f05c8853c7669ba5d6cfbbf9a1a312850699de6e528626df108d559005df7e15d16ee334c
+ languageName: node
+ linkType: hard
+
+"image-size@npm:~0.5.0":
+ version: 0.5.5
+ resolution: "image-size@npm:0.5.5"
+ bin:
+ image-size: bin/image-size.js
+ checksum: 10c0/655204163af06732f483a9fe7cce9dff4a29b7b2e88f5c957a5852e8143fa750f5e54b1955a2ca83de99c5220dbd680002d0d4e09140b01433520f4d5a0b1f4c
+ languageName: node
+ linkType: hard
+
+"imurmurhash@npm:^0.1.4":
+ version: 0.1.4
+ resolution: "imurmurhash@npm:0.1.4"
+ checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
+ languageName: node
+ linkType: hard
+
+"indexes-of@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "indexes-of@npm:1.0.1"
+ checksum: 10c0/1ea1d2d00173fa38f728acfa00303657e1115361481e52f6cbae47c5d603219006c9357abf6bc323f1fb0fbe937e363bbb19e5c66c12578eea6ec6b7e892bdba
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: "npm:^1.3.0"
+ wrappy: "npm:1"
+ checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2.0.1":
+ version: 2.0.1
+ resolution: "inherits@npm:2.0.1"
+ checksum: 10c0/bfc7b37c21a2cddb272adc65b053b1716612d408bb2c9a4e5c32679dc2b08032aadd67880c405be3dff060a62e45b353fc3d9fa79a3067ad7a3deb6a283cc5c6
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2.0.3":
+ version: 2.0.3
+ resolution: "inherits@npm:2.0.3"
+ checksum: 10c0/6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7
+ languageName: node
+ linkType: hard
+
+"interpret@npm:^1.0.0":
+ version: 1.4.0
+ resolution: "interpret@npm:1.4.0"
+ checksum: 10c0/08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450
+ languageName: node
+ linkType: hard
+
+"invariant@npm:^2.2.2":
+ version: 2.2.4
+ resolution: "invariant@npm:2.2.4"
+ dependencies:
+ loose-envify: "npm:^1.0.0"
+ checksum: 10c0/5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc
+ languageName: node
+ linkType: hard
+
+"invert-kv@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "invert-kv@npm:1.0.0"
+ checksum: 10c0/9ccef12ada8494c56175cc0380b4cea18b6c0a368436f324a30e43a332db90bdfb83cd3a7987b71df359cdf931ce45b7daf35b677da56658565d61068e4bc20b
+ languageName: node
+ linkType: hard
+
+"ip-address@npm:^10.0.1":
+ version: 10.1.0
+ resolution: "ip-address@npm:10.1.0"
+ checksum: 10c0/0103516cfa93f6433b3bd7333fa876eb21263912329bfa47010af5e16934eeeff86f3d2ae700a3744a137839ddfad62b900c7a445607884a49b5d1e32a3d7566
+ languageName: node
+ linkType: hard
+
+"is-absolute-url@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "is-absolute-url@npm:2.1.0"
+ checksum: 10c0/2c324c3118752d82c18afadffbea14d35224e76f37a2ee80e05b209386c46d19bef77b58ede41f7b3be552cde16c6cdb0d884807175a6eb40e8c61281dc67c2f
+ languageName: node
+ linkType: hard
+
+"is-arrayish@npm:^0.2.1":
+ version: 0.2.1
+ resolution: "is-arrayish@npm:0.2.1"
+ checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729
+ languageName: node
+ linkType: hard
+
+"is-buffer@npm:~1.1.6":
+ version: 1.1.6
+ resolution: "is-buffer@npm:1.1.6"
+ checksum: 10c0/ae18aa0b6e113d6c490ad1db5e8df9bdb57758382b313f5a22c9c61084875c6396d50bbf49315f5b1926d142d74dfb8d31b40d993a383e0a158b15fea7a82234
+ languageName: node
+ linkType: hard
+
+"is-core-module@npm:^2.9.0":
+ version: 2.9.0
+ resolution: "is-core-module@npm:2.9.0"
+ dependencies:
+ has: "npm:^1.0.3"
+ checksum: 10c0/056fe4c5f9f383dc1c1b0dc3250c300880b9b1e17e1885077d64a1667926ecc11ba696776597616bfd2fd7f87c7476c01b127a0c842b4821bee2414d0e296e6e
+ languageName: node
+ linkType: hard
+
+"is-finite@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "is-finite@npm:1.1.0"
+ checksum: 10c0/ca6bc7a0321b339f098e657bd4cbf4bb2410f5a11f1b9adb1a1a9ab72288b64368e8251326cb1f74e985f2779299cec3e1f1e558b68ce7e1e2c9be17b7cfd626
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "is-fullwidth-code-point@npm:1.0.0"
+ dependencies:
+ number-is-nan: "npm:^1.0.0"
+ checksum: 10c0/12acfcf16142f2d431bf6af25d68569d3198e81b9799b4ae41058247aafcc666b0127d64384ea28e67a746372611fcbe9b802f69175287aba466da3eddd5ba0f
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "is-fullwidth-code-point@npm:2.0.0"
+ checksum: 10c0/e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9
+ languageName: node
+ linkType: hard
+
+"is-plain-obj@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "is-plain-obj@npm:1.1.0"
+ checksum: 10c0/daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "is-stream@npm:1.1.0"
+ checksum: 10c0/b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002
+ languageName: node
+ linkType: hard
+
+"is-svg@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "is-svg@npm:2.1.0"
+ dependencies:
+ html-comment-regex: "npm:^1.1.0"
+ checksum: 10c0/b2709e619c6159dabd27731c7ff69b73319bc8694b1dd27dc886026a6e1f895f04c1cc9903ca90310d3766a5f2d01a959735ae9a69be71f3cc9545f8206e1bb9
+ languageName: node
+ linkType: hard
+
+"is-what@npm:^3.14.1":
+ version: 3.14.1
+ resolution: "is-what@npm:3.14.1"
+ checksum: 10c0/4b770b85454c877b6929a84fd47c318e1f8c2ff70fd72fd625bc3fde8e0c18a6e57345b6e7aa1ee9fbd1c608d27cfe885df473036c5c2e40cd2187250804a2c7
+ languageName: node
+ linkType: hard
+
+"isarray@npm:0.0.1":
+ version: 0.0.1
+ resolution: "isarray@npm:0.0.1"
+ checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^1.0.0, isarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "isarray@npm:1.0.0"
+ checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "isexe@npm:4.0.0"
+ checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce
+ languageName: node
+ linkType: hard
+
+"jquery-datetimepicker@npm:^2.5.21":
+ version: 2.5.21
+ resolution: "jquery-datetimepicker@npm:2.5.21"
+ dependencies:
+ jquery: "npm:>= 1.7.2"
+ jquery-mousewheel: "npm:>= 3.1.13"
+ php-date-formatter: "npm:^1.3.4"
+ checksum: 10c0/e8d91b51cbf41379d4d357d697a7a613427703f4a42f6dc8aed3f9f932431f02a8ebda14327c80b2db00b69fa172070e6daa5c0e97b199f922c28172ce3ec56f
+ languageName: node
+ linkType: hard
+
+"jquery-mousewheel@npm:>= 3.1.13":
+ version: 3.1.13
+ resolution: "jquery-mousewheel@npm:3.1.13"
+ checksum: 10c0/acd57dfe7d2268ddddb906cfca6316fb364aeb74dc4d15379baa60c88b5fd3cc0aa7830e09cb6e702a4de9306e467519f147396e49f2f9c9f2c7118537721fab
+ languageName: node
+ linkType: hard
+
+"jquery@npm:>= 1.7.2, jquery@npm:>=1.10":
+ version: 3.6.0
+ resolution: "jquery@npm:3.6.0"
+ checksum: 10c0/45a63f8376a8918087c0277b2394dd382fcacff765c41ccbb5009a9336f8c971bf41c6a0519062edc1dff6333d96959c3a3ec55c95eb6c94d5372253d6cbf82f
+ languageName: node
+ linkType: hard
+
+"js-base64@npm:^2.1.9":
+ version: 2.6.4
+ resolution: "js-base64@npm:2.6.4"
+ checksum: 10c0/95d93c4eca0bbe0f2d5ffe8682d9acd23051e5c0ad71873ff5a48dd46a5f19025de9f7b36e63fa3f02f342ae4a8ca4c56e7b590d7300ebb6639ce09675e0fd02
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.0 || ^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "js-tokens@npm:3.0.2"
+ checksum: 10c0/e3c3ee4d12643d90197628eb022a2884a15f08ea7dcac1ce97fdeee43031fbfc7ede674f2cdbbb582dcd4c94388b22e52d56c6cbeb2ac7d1b57c2f33c405e2ba
+ languageName: node
+ linkType: hard
+
+"js-yaml@npm:~3.7.0":
+ version: 3.7.0
+ resolution: "js-yaml@npm:3.7.0"
+ dependencies:
+ argparse: "npm:^1.0.7"
+ esprima: "npm:^2.6.0"
+ bin:
+ js-yaml: bin/js-yaml.js
+ checksum: 10c0/e236852d4439c7750c810f217ca80631844cfb0e4ab4993349c3e612ee273256d9895e1bb06b3990a3cc42fa1105ffcaa55a6b711f25901c0d803287bdcf52e1
+ languageName: node
+ linkType: hard
+
+"jsesc@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "jsesc@npm:1.3.0"
+ bin:
+ jsesc: bin/jsesc
+ checksum: 10c0/62420889dd46b4cdba4df20fe6ffdefa6eeab7532fb4079170ea1b53c45d5a6abcb485144905833e5a69cc1735db12319b1e0b0f9a556811ec926b57a22318a7
+ languageName: node
+ linkType: hard
+
+"json-loader@npm:^0.5.1, json-loader@npm:^0.5.4":
+ version: 0.5.7
+ resolution: "json-loader@npm:0.5.7"
+ checksum: 10c0/b155b81f644693b5418e595c127c552c34373f749d2d125df24cfe753de6b3b0af88dda5d58e7b65940ed03ec46c19fc3d09f53b932b45c9ae3ca1fb55e44a15
+ languageName: node
+ linkType: hard
+
+"json-schema-traverse@npm:^0.4.1":
+ version: 0.4.1
+ resolution: "json-schema-traverse@npm:0.4.1"
+ checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
+ languageName: node
+ linkType: hard
+
+"json3@npm:^3.3.2":
+ version: 3.3.3
+ resolution: "json3@npm:3.3.3"
+ checksum: 10c0/ca6942dbcef852c8fda5a87261b82dfa9135b43777cd05bdfc08d071592bd328e289c78eb15d0c45884d9cfe71a2a20601aaa9be16e98d488b5a2f51ee91f259
+ languageName: node
+ linkType: hard
+
+"json5@npm:^0.5.0, json5@npm:^0.5.1":
+ version: 0.5.1
+ resolution: "json5@npm:0.5.1"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/aca0ab7ccf1883d3fc2ecc16219bc389716a773f774552817deaadb549acc0bb502e317a81946fc0a48f9eb6e0822cf1dc5a097009203f2c94de84c8db02a1f3
+ languageName: node
+ linkType: hard
+
+"json5@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "json5@npm:1.0.1"
+ dependencies:
+ minimist: "npm:^1.2.0"
+ bin:
+ json5: lib/cli.js
+ checksum: 10c0/7f75dd797151680a4e14c4224c1343b32a43272aa6e6333ddec2b0822df4ea116971689b251879a1248592da24f7929902c13f83d7390c3f3d44f18e8e9719f5
+ languageName: node
+ linkType: hard
+
+"keen-js@npm:^3.0.0":
+ version: 3.5.0
+ resolution: "keen-js@npm:3.5.0"
+ dependencies:
+ JSON2: "npm:^0.1.0"
+ browserify-versionify: "npm:1.0.3"
+ component-emitter: "npm:^1.1.3"
+ domready: "npm:0.3.0"
+ json3: "npm:^3.3.2"
+ spin.js: "npm:^2.0.1"
+ superagent: "npm:^1.8.3"
+ checksum: 10c0/ebaf9e5f04e61fe15bf69c7fe50c231431784bae28c9b215a4dab8b173a6e73dec5cd56c4d27b561591997b532758047614af1ab8ef37f42dbfeb0dde477673d
+ languageName: node
+ linkType: hard
+
+"klona@npm:^2.0.4":
+ version: 2.0.5
+ resolution: "klona@npm:2.0.5"
+ checksum: 10c0/5b752c11ca8e2996612386699f52cc5aed802aa4116663d26239ac0b054fae25191dacb95587ecf1a167b039daa9fc3fa2da17dfd5d0821f3037de3821d9a9e5
+ languageName: node
+ linkType: hard
+
+"knockout@npm:3.5.1":
+ version: 3.5.1
+ resolution: "knockout@npm:3.5.1"
+ checksum: 10c0/cf091711cbdcbccab12ab814b3a2f44f7b6cc00e30b08045ba514a78c369066fa7b979e07b4caad20eea3457e3b589ff86779cb214bafbc9943ff36240eb5c00
+ languageName: node
+ linkType: hard
+
+"lcid@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "lcid@npm:1.0.0"
+ dependencies:
+ invert-kv: "npm:^1.0.0"
+ checksum: 10c0/87fb32196c3c80458778f34f71c042e114f3134a3c86c0d60ee9c94f0750e467d7ca0c005a5224ffd9d49a6e449b5e5c31e1544f1827765a0ba8747298f5980e
+ languageName: node
+ linkType: hard
+
+"less-loader@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "less-loader@npm:10.2.0"
+ dependencies:
+ klona: "npm:^2.0.4"
+ peerDependencies:
+ less: ^3.5.0 || ^4.0.0
+ webpack: ^5.0.0
+ checksum: 10c0/214f190c7139a6a005f8f505d7f05e929361b1a16eaae427be8809f722ef798d1cb6525114d9e03ab87b6fa5e3fbe2d849494016df971cb29b9c10fd9f1a5a66
+ languageName: node
+ linkType: hard
+
+"less-loader@npm:~2.2.3":
+ version: 2.2.3
+ resolution: "less-loader@npm:2.2.3"
+ dependencies:
+ loader-utils: "npm:^0.2.5"
+ peerDependencies:
+ less: ^2.3.1
+ checksum: 10c0/fe0b5b5965023869b7a734d4fa5fc6a883436db36f2a7b723d55a5fd1bdd7bbdc69c1a249365693baa3e7592b311b6da0a7d8ec2ffae5a236a710b4ca3b7b277
+ languageName: node
+ linkType: hard
+
+"less@npm:^4.1.2":
+ version: 4.1.3
+ resolution: "less@npm:4.1.3"
+ dependencies:
+ copy-anything: "npm:^2.0.1"
+ errno: "npm:^0.1.1"
+ graceful-fs: "npm:^4.1.2"
+ image-size: "npm:~0.5.0"
+ make-dir: "npm:^2.1.0"
+ mime: "npm:^1.4.1"
+ needle: "npm:^3.1.0"
+ parse-node-version: "npm:^1.0.1"
+ source-map: "npm:~0.6.0"
+ tslib: "npm:^2.3.0"
+ dependenciesMeta:
+ errno:
+ optional: true
+ graceful-fs:
+ optional: true
+ image-size:
+ optional: true
+ make-dir:
+ optional: true
+ mime:
+ optional: true
+ needle:
+ optional: true
+ source-map:
+ optional: true
+ bin:
+ lessc: bin/lessc
+ checksum: 10c0/d67ca673a2c409a3069bb088c21976fa6a22eaf4428a23f486afa3ca57c2c004f424e7466dfc8d38a4dca25bc7b75943de5e3394d3a7841d8812cec696790e22
+ languageName: node
+ linkType: hard
+
+"load-json-file@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "load-json-file@npm:2.0.0"
+ dependencies:
+ graceful-fs: "npm:^4.1.2"
+ parse-json: "npm:^2.2.0"
+ pify: "npm:^2.0.0"
+ strip-bom: "npm:^3.0.0"
+ checksum: 10c0/15cf1259361325fadfc54cd4ecc5d6729103c8873492001ba5473fb1ef753000f680c887db6c86fec69a4ede009efeb8c0c0c77b2a31bc54d2793767e25577c9
+ languageName: node
+ linkType: hard
+
+"loader-runner@npm:^2.3.0":
+ version: 2.4.0
+ resolution: "loader-runner@npm:2.4.0"
+ checksum: 10c0/1f723bd8318453c2d073d7befbf891ba6d2a02f22622688bf7d22e7ba527a0f9476c7fdfedc6bfa2b55c0389d9f406f3a5239ed1b33c9088d77cfed085086a1e
+ languageName: node
+ linkType: hard
+
+"loader-utils@npm:^0.2.16, loader-utils@npm:^0.2.5":
+ version: 0.2.17
+ resolution: "loader-utils@npm:0.2.17"
+ dependencies:
+ big.js: "npm:^3.1.3"
+ emojis-list: "npm:^2.0.0"
+ json5: "npm:^0.5.0"
+ object-assign: "npm:^4.0.1"
+ checksum: 10c0/d6b65a0d460d2c8621f72e0471127895f4a25ea3a5d2caabf0710c8e58a904af5876834c6ad89d2fbab35e74c6e7f2f4f8137559e6e4e84b74957f4592bcab0b
+ languageName: node
+ linkType: hard
+
+"loader-utils@npm:^1.0.2, loader-utils@npm:^1.1.0":
+ version: 1.4.0
+ resolution: "loader-utils@npm:1.4.0"
+ dependencies:
+ big.js: "npm:^5.2.2"
+ emojis-list: "npm:^3.0.0"
+ json5: "npm:^1.0.1"
+ checksum: 10c0/b3f383612c23c0adf535d61709fb3eaf864afa54dae45608e3831156b89b4b05a0a4ddc6db7d742071babe872750ba3f4f9ce89326d94f6e096dbed978fa424e
+ languageName: node
+ linkType: hard
+
+"locate-path@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "locate-path@npm:2.0.0"
+ dependencies:
+ p-locate: "npm:^2.0.0"
+ path-exists: "npm:^3.0.0"
+ checksum: 10c0/24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133
+ languageName: node
+ linkType: hard
+
+"lodash.camelcase@npm:^4.3.0":
+ version: 4.3.0
+ resolution: "lodash.camelcase@npm:4.3.0"
+ checksum: 10c0/fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432
+ languageName: node
+ linkType: hard
+
+"lodash.memoize@npm:^4.1.2":
+ version: 4.1.2
+ resolution: "lodash.memoize@npm:4.1.2"
+ checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8
+ languageName: node
+ linkType: hard
+
+"lodash.uniq@npm:^4.5.0":
+ version: 4.5.0
+ resolution: "lodash.uniq@npm:4.5.0"
+ checksum: 10c0/262d400bb0952f112162a320cc4a75dea4f66078b9e7e3075ffbc9c6aa30b3e9df3cf20e7da7d566105e1ccf7804e4fbd7d804eee0b53de05d83f16ffbf41c5e
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.14, lodash@npm:^4.17.4":
+ version: 4.17.21
+ resolution: "lodash@npm:4.17.21"
+ checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
+ languageName: node
+ linkType: hard
+
+"loose-envify@npm:^1.0.0":
+ version: 1.4.0
+ resolution: "loose-envify@npm:1.4.0"
+ dependencies:
+ js-tokens: "npm:^3.0.0 || ^4.0.0"
+ bin:
+ loose-envify: cli.js
+ checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1":
+ version: 11.2.7
+ resolution: "lru-cache@npm:11.2.7"
+ checksum: 10c0/549cdb59488baa617135fc12159cafb1a97f91079f35093bb3bcad72e849fc64ace636d244212c181dfdf1a99bbfa90757ff303f98561958ee4d0f885d9bd5f7
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^4.0.1, lru-cache@npm:^4.1.1":
+ version: 4.1.5
+ resolution: "lru-cache@npm:4.1.5"
+ dependencies:
+ pseudomap: "npm:^1.0.2"
+ yallist: "npm:^2.1.2"
+ checksum: 10c0/1ca5306814e5add9ec63556d6fd9b24a4ecdeaef8e9cea52cbf30301e6b88c8d8ddc7cab45b59b56eb763e6c45af911585dc89925a074ab65e1502e3fe8103cf
+ languageName: node
+ linkType: hard
+
+"make-dir@npm:^1.0.0":
+ version: 1.3.0
+ resolution: "make-dir@npm:1.3.0"
+ dependencies:
+ pify: "npm:^3.0.0"
+ checksum: 10c0/5eb94f47d7ef41d89d1b8eef6539b8950d5bd99eeba093a942bfd327faa37d2d62227526b88b73633243a2ec7972d21eb0f4e5d62ae4e02a79e389f4a7bb3022
+ languageName: node
+ linkType: hard
+
+"make-dir@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "make-dir@npm:2.1.0"
+ dependencies:
+ pify: "npm:^4.0.1"
+ semver: "npm:^5.6.0"
+ checksum: 10c0/ada869944d866229819735bee5548944caef560d7a8536ecbc6536edca28c72add47cc4f6fc39c54fb25d06b58da1f8994cf7d9df7dadea047064749efc085d8
+ languageName: node
+ linkType: hard
+
+"make-fetch-happen@npm:^15.0.0":
+ version: 15.0.5
+ resolution: "make-fetch-happen@npm:15.0.5"
+ dependencies:
+ "@gar/promise-retry": "npm:^1.0.0"
+ "@npmcli/agent": "npm:^4.0.0"
+ "@npmcli/redact": "npm:^4.0.0"
+ cacache: "npm:^20.0.1"
+ http-cache-semantics: "npm:^4.1.1"
+ minipass: "npm:^7.0.2"
+ minipass-fetch: "npm:^5.0.0"
+ minipass-flush: "npm:^1.0.5"
+ minipass-pipeline: "npm:^1.2.4"
+ negotiator: "npm:^1.0.0"
+ proc-log: "npm:^6.0.0"
+ ssri: "npm:^13.0.0"
+ checksum: 10c0/527580eb5e5476e6ad07a4e3bd017d13e935f4be815674b442081ae5a721c13d3af5715006619e6be79a85723067e047f83a0c9e699f41d8cec43609a8de4f7b
+ languageName: node
+ linkType: hard
+
+"math-expression-evaluator@npm:^1.2.14":
+ version: 1.3.14
+ resolution: "math-expression-evaluator@npm:1.3.14"
+ checksum: 10c0/a98dcb54510f57d9d78c66f73c6ee5e8e3a69d7dcfd3f0e611bc6957a764f23fed3b342888fca79ed49b865b09338581d19bb3acc4d788ee308618c7c7cdca10
+ languageName: node
+ linkType: hard
+
+"md5.js@npm:^1.3.4":
+ version: 1.3.5
+ resolution: "md5.js@npm:1.3.5"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5
+ languageName: node
+ linkType: hard
+
+"md5@npm:^2.2.1":
+ version: 2.3.0
+ resolution: "md5@npm:2.3.0"
+ dependencies:
+ charenc: "npm:0.0.2"
+ crypt: "npm:0.0.2"
+ is-buffer: "npm:~1.1.6"
+ checksum: 10c0/14a21d597d92e5b738255fbe7fe379905b8cb97e0a49d44a20b58526a646ec5518c337b817ce0094ca94d3e81a3313879c4c7b510d250c282d53afbbdede9110
+ languageName: node
+ linkType: hard
+
+"mem@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "mem@npm:1.1.0"
+ dependencies:
+ mimic-fn: "npm:^1.0.0"
+ checksum: 10c0/f5150bb975a7d641375d3c1962426bf338952142a429ce01e9792b03df9b63d5911d3feb7e5e50f406531ace646f3fbe39b7dc716c729d617a28b3bbdc799649
+ languageName: node
+ linkType: hard
+
+"memory-fs@npm:^0.4.0, memory-fs@npm:~0.4.1":
+ version: 0.4.1
+ resolution: "memory-fs@npm:0.4.1"
+ dependencies:
+ errno: "npm:^0.1.3"
+ readable-stream: "npm:^2.0.1"
+ checksum: 10c0/f114c44ad8285103cb0e71420cf5bb628d3eb6cbd918197f5951590ff56ba2072f4a97924949c170320cdf180d2da4e8d16a0edd92ba0ca2d2de51dc932841e2
+ languageName: node
+ linkType: hard
+
+"methods@npm:~1.1.1":
+ version: 1.1.2
+ resolution: "methods@npm:1.1.2"
+ checksum: 10c0/bdf7cc72ff0a33e3eede03708c08983c4d7a173f91348b4b1e4f47d4cdbf734433ad971e7d1e8c77247d9e5cd8adb81ea4c67b0a2db526b758b2233d7814b8b2
+ languageName: node
+ linkType: hard
+
+"miller-rabin@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "miller-rabin@npm:4.0.1"
+ dependencies:
+ bn.js: "npm:^4.0.0"
+ brorand: "npm:^1.0.1"
+ bin:
+ miller-rabin: bin/miller-rabin
+ checksum: 10c0/26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:^2.1.3":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: "npm:1.52.0"
+ checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
+ languageName: node
+ linkType: hard
+
+"mime@npm:1.3.4":
+ version: 1.3.4
+ resolution: "mime@npm:1.3.4"
+ bin:
+ mime: cli.js
+ checksum: 10c0/06ca13fe3be58eedfadc4351ca735c19ad25f2f8f0ecc746c1b2e780934829cc0e4b303269f0abfc919ecb6f149f1b648700f996d2b7935fb23208f7357438d4
+ languageName: node
+ linkType: hard
+
+"mime@npm:^1.4.1":
+ version: 1.6.0
+ resolution: "mime@npm:1.6.0"
+ bin:
+ mime: cli.js
+ checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^1.0.0":
+ version: 1.2.0
+ resolution: "mimic-fn@npm:1.2.0"
+ checksum: 10c0/ad55214aec6094c0af4c0beec1a13787556f8116ed88807cf3f05828500f21f93a9482326bcd5a077ae91e3e8795b4e76b5b4c8bb12237ff0e4043a365516cba
+ languageName: node
+ linkType: hard
+
+"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-assert@npm:1.0.1"
+ checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd
+ languageName: node
+ linkType: hard
+
+"minimalistic-crypto-utils@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "minimalistic-crypto-utils@npm:1.0.1"
+ checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^10.2.2":
+ version: 10.2.4
+ resolution: "minimatch@npm:10.2.4"
+ dependencies:
+ brace-expansion: "npm:^5.0.2"
+ checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1":
+ version: 3.1.2
+ resolution: "minimatch@npm:3.1.2"
+ dependencies:
+ brace-expansion: "npm:^1.1.7"
+ checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
+ version: 1.2.6
+ resolution: "minimist@npm:1.2.6"
+ checksum: 10c0/d0b566204044481c4401abbd24cc75814e753b37268e7fe7ccc78612bf3e37bf1e45a6c43fb0b119445ea1c413c000bde013f320b7211974f2f49bcbec1d0dbf
+ languageName: node
+ linkType: hard
+
+"minipass-collect@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "minipass-collect@npm:2.0.1"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
+ languageName: node
+ linkType: hard
+
+"minipass-fetch@npm:^5.0.0":
+ version: 5.0.2
+ resolution: "minipass-fetch@npm:5.0.2"
+ dependencies:
+ iconv-lite: "npm:^0.7.2"
+ minipass: "npm:^7.0.3"
+ minipass-sized: "npm:^2.0.0"
+ minizlib: "npm:^3.0.1"
+ dependenciesMeta:
+ iconv-lite:
+ optional: true
+ checksum: 10c0/ce4ab9f21cfabaead2097d95dd33f485af8072fbc6b19611bce694965393453a1639d641c2bcf1c48f2ea7d41ea7fab8278373f1d0bee4e63b0a5b2cdd0ef649
+ languageName: node
+ linkType: hard
+
+"minipass-flush@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "minipass-flush@npm:1.0.5"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
+ languageName: node
+ linkType: hard
+
+"minipass-pipeline@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "minipass-pipeline@npm:1.2.4"
+ dependencies:
+ minipass: "npm:^3.0.0"
+ checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
+ languageName: node
+ linkType: hard
+
+"minipass-sized@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "minipass-sized@npm:2.0.0"
+ dependencies:
+ minipass: "npm:^7.1.2"
+ checksum: 10c0/f9201696a6f6d68610d04c9c83e3d2e5cb9c026aae1c8cbf7e17f386105cb79c1bb088dbc21bf0b1eb4f3fb5df384fd1e7aa3bf1f33868c416ae8c8a92679db8
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^3.0.0":
+ version: 3.3.6
+ resolution: "minipass@npm:3.3.6"
+ dependencies:
+ yallist: "npm:^4.0.0"
+ checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
+ languageName: node
+ linkType: hard
+
+"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3":
+ version: 7.1.3
+ resolution: "minipass@npm:7.1.3"
+ checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb
+ languageName: node
+ linkType: hard
+
+"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "minizlib@npm:3.1.0"
+ dependencies:
+ minipass: "npm:^7.1.2"
+ checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec
+ languageName: node
+ linkType: hard
+
+"mississippi@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "mississippi@npm:2.0.0"
+ dependencies:
+ concat-stream: "npm:^1.5.0"
+ duplexify: "npm:^3.4.2"
+ end-of-stream: "npm:^1.1.0"
+ flush-write-stream: "npm:^1.0.0"
+ from2: "npm:^2.1.0"
+ parallel-transform: "npm:^1.1.0"
+ pump: "npm:^2.0.1"
+ pumpify: "npm:^1.3.3"
+ stream-each: "npm:^1.1.0"
+ through2: "npm:^2.0.0"
+ checksum: 10c0/f84beaa40491c2466c4a3d15025ceb1ecc822a8e5ef4f6e5622aeb832b32e4eda056c3982337ae2c1e4b3b77fb431af4d3874923c26dee0c026601547589b2db
+ languageName: node
+ linkType: hard
+
+"mkdirp@npm:^0.5.1, mkdirp@npm:~0.5.0, mkdirp@npm:~0.5.1":
+ version: 0.5.6
+ resolution: "mkdirp@npm:0.5.6"
+ dependencies:
+ minimist: "npm:^1.2.6"
+ bin:
+ mkdirp: bin/cmd.js
+ checksum: 10c0/e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01
+ languageName: node
+ linkType: hard
+
+"move-concurrently@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "move-concurrently@npm:1.0.1"
+ dependencies:
+ aproba: "npm:^1.1.1"
+ copy-concurrently: "npm:^1.0.0"
+ fs-write-stream-atomic: "npm:^1.0.8"
+ mkdirp: "npm:^0.5.1"
+ rimraf: "npm:^2.5.4"
+ run-queue: "npm:^1.0.3"
+ checksum: 10c0/0fe81acf3bbbc322013c2f4ee4a48cf8d180a7d925fb9284c0f1f444e862d7eb0421ee074b68d35357a12f0d5e94a322049dc9da480672331b5b8895743eb66a
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.0.0":
+ version: 2.0.0
+ resolution: "ms@npm:2.0.0"
+ checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.1.1, ms@npm:^2.1.3":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
+ languageName: node
+ linkType: hard
+
+"needle@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "needle@npm:3.1.0"
+ dependencies:
+ debug: "npm:^3.2.6"
+ iconv-lite: "npm:^0.6.3"
+ sax: "npm:^1.2.4"
+ bin:
+ needle: bin/needle
+ checksum: 10c0/b55e169878b7480a8d09bcfcd5614e7b96aa2f04af7e0f86e446c022eaac35dd7aed694aa4a9e751741e574e1f648d3ff388b16c2528787fee49ed5bf02853e0
+ languageName: node
+ linkType: hard
+
+"negotiator@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "negotiator@npm:1.0.0"
+ checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b
+ languageName: node
+ linkType: hard
+
+"next-tick@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "next-tick@npm:1.1.0"
+ checksum: 10c0/3ba80dd805fcb336b4f52e010992f3e6175869c8d88bf4ff0a81d5d66e6049f89993463b28211613e58a6b7fe93ff5ccbba0da18d4fa574b96289e8f0b577f28
+ languageName: node
+ linkType: hard
+
+"node-gyp@npm:latest":
+ version: 12.2.0
+ resolution: "node-gyp@npm:12.2.0"
+ dependencies:
+ env-paths: "npm:^2.2.0"
+ exponential-backoff: "npm:^3.1.1"
+ graceful-fs: "npm:^4.2.6"
+ make-fetch-happen: "npm:^15.0.0"
+ nopt: "npm:^9.0.0"
+ proc-log: "npm:^6.0.0"
+ semver: "npm:^7.3.5"
+ tar: "npm:^7.5.4"
+ tinyglobby: "npm:^0.2.12"
+ which: "npm:^6.0.0"
+ bin:
+ node-gyp: bin/node-gyp.js
+ checksum: 10c0/3ed046746a5a7d90950cd8b0547332b06598443f31fe213ef4332a7174c7b7d259e1704835feda79b87d3f02e59d7791842aac60642ede4396ab25fdf0f8f759
+ languageName: node
+ linkType: hard
+
+"node-libs-browser@npm:^2.0.0":
+ version: 2.2.1
+ resolution: "node-libs-browser@npm:2.2.1"
+ dependencies:
+ assert: "npm:^1.1.1"
+ browserify-zlib: "npm:^0.2.0"
+ buffer: "npm:^4.3.0"
+ console-browserify: "npm:^1.1.0"
+ constants-browserify: "npm:^1.0.0"
+ crypto-browserify: "npm:^3.11.0"
+ domain-browser: "npm:^1.1.1"
+ events: "npm:^3.0.0"
+ https-browserify: "npm:^1.0.0"
+ os-browserify: "npm:^0.3.0"
+ path-browserify: "npm:0.0.1"
+ process: "npm:^0.11.10"
+ punycode: "npm:^1.2.4"
+ querystring-es3: "npm:^0.2.0"
+ readable-stream: "npm:^2.3.3"
+ stream-browserify: "npm:^2.0.1"
+ stream-http: "npm:^2.7.2"
+ string_decoder: "npm:^1.0.0"
+ timers-browserify: "npm:^2.0.4"
+ tty-browserify: "npm:0.0.0"
+ url: "npm:^0.11.0"
+ util: "npm:^0.11.0"
+ vm-browserify: "npm:^1.0.1"
+ checksum: 10c0/0e05321a6396408903ed642231d2bca7dd96492d074c7af161ba06a63c95378bd3de50b4105eccbbc02d93ba3da69f0ff5e624bc2a8c92ca462ceb6a403e7986
+ languageName: node
+ linkType: hard
+
+"nopt@npm:^9.0.0":
+ version: 9.0.0
+ resolution: "nopt@npm:9.0.0"
+ dependencies:
+ abbrev: "npm:^4.0.0"
+ bin:
+ nopt: bin/nopt.js
+ checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd
+ languageName: node
+ linkType: hard
+
+"normalize-package-data@npm:^2.3.2":
+ version: 2.5.0
+ resolution: "normalize-package-data@npm:2.5.0"
+ dependencies:
+ hosted-git-info: "npm:^2.1.4"
+ resolve: "npm:^1.10.0"
+ semver: "npm:2 || 3 || 4 || 5"
+ validate-npm-package-license: "npm:^3.0.1"
+ checksum: 10c0/357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504
+ languageName: node
+ linkType: hard
+
+"normalize-range@npm:^0.1.2":
+ version: 0.1.2
+ resolution: "normalize-range@npm:0.1.2"
+ checksum: 10c0/bf39b73a63e0a42ad1a48c2bd1bda5a07ede64a7e2567307a407674e595bcff0fa0d57e8e5f1e7fa5e91000797c7615e13613227aaaa4d6d6e87f5bd5cc95de6
+ languageName: node
+ linkType: hard
+
+"normalize-url@npm:^1.4.0":
+ version: 1.9.1
+ resolution: "normalize-url@npm:1.9.1"
+ dependencies:
+ object-assign: "npm:^4.0.1"
+ prepend-http: "npm:^1.0.0"
+ query-string: "npm:^4.1.0"
+ sort-keys: "npm:^1.0.0"
+ checksum: 10c0/5ecd525f743c3fb5370d2bab8e78446f3e3bd7c0c97a5fd3f0bc0c5f396fbd117d13c9118766128d25ed575755cb539dc33a38419f18ca9d8577c8d1cd7a8daf
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "npm-run-path@npm:2.0.2"
+ dependencies:
+ path-key: "npm:^2.0.0"
+ checksum: 10c0/95549a477886f48346568c97b08c4fda9cdbf7ce8a4fbc2213f36896d0d19249e32d68d7451bdcbca8041b5fba04a6b2c4a618beaf19849505c05b700740f1de
+ languageName: node
+ linkType: hard
+
+"num2fraction@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "num2fraction@npm:1.2.2"
+ checksum: 10c0/3bf17b44af00508a2b0370146629710645c3e3ff3c052893680efe3f4a6ff5c953ce9e54734013b02b35744a49352d54fbc5d8b455fac979047ef17dd8ec74bd
+ languageName: node
+ linkType: hard
+
+"number-is-nan@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "number-is-nan@npm:1.0.1"
+ checksum: 10c0/cb97149006acc5cd512c13c1838223abdf202e76ddfa059c5e8e7507aff2c3a78cd19057516885a2f6f5b576543dc4f7b6f3c997cc7df53ae26c260855466df5
+ languageName: node
+ linkType: hard
+
+"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "object-assign@npm:4.1.1"
+ checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: "npm:1"
+ checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0
+ languageName: node
+ linkType: hard
+
+"os-browserify@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "os-browserify@npm:0.3.0"
+ checksum: 10c0/6ff32cb1efe2bc6930ad0fd4c50e30c38010aee909eba8d65be60af55efd6cbb48f0287e3649b4e3f3a63dce5a667b23c187c4293a75e557f0d5489d735bcf52
+ languageName: node
+ linkType: hard
+
+"os-homedir@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "os-homedir@npm:1.0.2"
+ checksum: 10c0/6be4aa67317ee247b8d46142e243fb4ef1d2d65d3067f54bfc5079257a2f4d4d76b2da78cba7af3cb3f56dbb2e4202e0c47f26171d11ca1ed4008d842c90363f
+ languageName: node
+ linkType: hard
+
+"os-locale@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "os-locale@npm:2.1.0"
+ dependencies:
+ execa: "npm:^0.7.0"
+ lcid: "npm:^1.0.0"
+ mem: "npm:^1.1.0"
+ checksum: 10c0/6f1acc060552a59f477ab541e9149a712f93a4d7b5262d070698dbe98cf047f35c7685d759a86dc56c12b76fdfbab1bf7216a74232263efbe7365de2a5d70834
+ languageName: node
+ linkType: hard
+
+"os-tmpdir@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "os-tmpdir@npm:1.0.2"
+ checksum: 10c0/f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990
+ languageName: node
+ linkType: hard
+
+"p-finally@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "p-finally@npm:1.0.0"
+ checksum: 10c0/6b8552339a71fe7bd424d01d8451eea92d379a711fc62f6b2fe64cad8a472c7259a236c9a22b4733abca0b5666ad503cb497792a0478c5af31ded793d00937e7
+ languageName: node
+ linkType: hard
+
+"p-limit@npm:^1.1.0":
+ version: 1.3.0
+ resolution: "p-limit@npm:1.3.0"
+ dependencies:
+ p-try: "npm:^1.0.0"
+ checksum: 10c0/5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee
+ languageName: node
+ linkType: hard
+
+"p-locate@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "p-locate@npm:2.0.0"
+ dependencies:
+ p-limit: "npm:^1.1.0"
+ checksum: 10c0/82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^7.0.2":
+ version: 7.0.4
+ resolution: "p-map@npm:7.0.4"
+ checksum: 10c0/a5030935d3cb2919d7e89454d1ce82141e6f9955413658b8c9403cfe379283770ed3048146b44cde168aa9e8c716505f196d5689db0ae3ce9a71521a2fef3abd
+ languageName: node
+ linkType: hard
+
+"p-try@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "p-try@npm:1.0.0"
+ checksum: 10c0/757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a
+ languageName: node
+ linkType: hard
+
+"pako@npm:~1.0.5":
+ version: 1.0.11
+ resolution: "pako@npm:1.0.11"
+ checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe
+ languageName: node
+ linkType: hard
+
+"parallel-transform@npm:^1.1.0":
+ version: 1.2.0
+ resolution: "parallel-transform@npm:1.2.0"
+ dependencies:
+ cyclist: "npm:^1.0.1"
+ inherits: "npm:^2.0.3"
+ readable-stream: "npm:^2.1.5"
+ checksum: 10c0/ab0e58569e73681ca4b9c9228189bdb6cbea535295fae344cf0d8342fd33a950961914f3c414f81894c1498fb9ad1c079b4625d2b7ceae9e6ab812f22e3bea3f
+ languageName: node
+ linkType: hard
+
+"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.5":
+ version: 5.1.6
+ resolution: "parse-asn1@npm:5.1.6"
+ dependencies:
+ asn1.js: "npm:^5.2.0"
+ browserify-aes: "npm:^1.0.0"
+ evp_bytestokey: "npm:^1.0.0"
+ pbkdf2: "npm:^3.0.3"
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/4ed1d9b9e120c5484d29d67bb90171aac0b73422bc016d6294160aea983275c28a27ab85d862059a36a86a97dd31b7ddd97486802ca9fac67115fe3409e9dcbd
+ languageName: node
+ linkType: hard
+
+"parse-json@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "parse-json@npm:2.2.0"
+ dependencies:
+ error-ex: "npm:^1.2.0"
+ checksum: 10c0/7a90132aa76016f518a3d5d746a21b3f1ad0f97a68436ed71b6f995b67c7151141f5464eea0c16c59aec9b7756519a0e3007a8f98cf3714632d509ec07736df6
+ languageName: node
+ linkType: hard
+
+"parse-node-version@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "parse-node-version@npm:1.0.1"
+ checksum: 10c0/999cd3d7da1425c2e182dce82b226c6dc842562d3ed79ec47f5c719c32a7f6c1a5352495b894fc25df164be7f2ede4224758255da9902ddef81f2b77ba46bb2c
+ languageName: node
+ linkType: hard
+
+"path-browserify@npm:0.0.1":
+ version: 0.0.1
+ resolution: "path-browserify@npm:0.0.1"
+ checksum: 10c0/3d59710cddeea06509d91935196185900f3d9d29376dff68ff0e146fbd41d0fb304e983d0158f30cabe4dd2ffcc6a7d3d977631994ee984c88e66aed50a1ccd3
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "path-exists@npm:2.1.0"
+ dependencies:
+ pinkie-promise: "npm:^2.0.0"
+ checksum: 10c0/87352f1601c085d5a6eb202f60e5c016c1b790bd0bc09398af446ed3f5c4510b4531ff99cf8acac2d91868886e792927b4292f768b35a83dce12588fb7cbb46e
+ languageName: node
+ linkType: hard
+
+"path-exists@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "path-exists@npm:3.0.0"
+ checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0, path-is-absolute@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "path-key@npm:2.0.1"
+ checksum: 10c0/dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b
+ languageName: node
+ linkType: hard
+
+"path-parse@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1
+ languageName: node
+ linkType: hard
+
+"path-scurry@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "path-scurry@npm:2.0.2"
+ dependencies:
+ lru-cache: "npm:^11.0.0"
+ minipass: "npm:^7.1.2"
+ checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482
+ languageName: node
+ linkType: hard
+
+"path-type@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "path-type@npm:2.0.0"
+ dependencies:
+ pify: "npm:^2.0.0"
+ checksum: 10c0/e475cead839e65a2f8fdde634b24a4116b49daea3917470552e19d49c63e59ef17963bec2f57df2c72a85fcd1f86c8850d9742e68dba9c9c8d9bcac38bab03d6
+ languageName: node
+ linkType: hard
+
+"pbkdf2@npm:^3.0.3":
+ version: 3.1.2
+ resolution: "pbkdf2@npm:3.1.2"
+ dependencies:
+ create-hash: "npm:^1.1.2"
+ create-hmac: "npm:^1.1.4"
+ ripemd160: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ sha.js: "npm:^2.4.8"
+ checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd
+ languageName: node
+ linkType: hard
+
+"php-date-formatter@npm:^1.3.4":
+ version: 1.3.6
+ resolution: "php-date-formatter@npm:1.3.6"
+ checksum: 10c0/758a752df7aa6b8febbf41f3b049b841adfcc6beae5d2aae7a4e86fdf63b8cbfbcb32e78fd27287992b3dd52ad2f1f41504e1ed8c8a337eab1ab67a871d2b10a
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^4.0.3":
+ version: 4.0.3
+ resolution: "picomatch@npm:4.0.3"
+ checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
+ languageName: node
+ linkType: hard
+
+"pify@npm:^2.0.0":
+ version: 2.3.0
+ resolution: "pify@npm:2.3.0"
+ checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc
+ languageName: node
+ linkType: hard
+
+"pify@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "pify@npm:3.0.0"
+ checksum: 10c0/fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10
+ languageName: node
+ linkType: hard
+
+"pify@npm:^4.0.1":
+ version: 4.0.1
+ resolution: "pify@npm:4.0.1"
+ checksum: 10c0/6f9d404b0d47a965437403c9b90eca8bb2536407f03de165940e62e72c8c8b75adda5516c6b9b23675a5877cc0bcac6bdfb0ef0e39414cd2476d5495da40e7cf
+ languageName: node
+ linkType: hard
+
+"pinkie-promise@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "pinkie-promise@npm:2.0.1"
+ dependencies:
+ pinkie: "npm:^2.0.0"
+ checksum: 10c0/11b5e5ce2b090c573f8fad7b517cbca1bb9a247587306f05ae71aef6f9b2cd2b923c304aa9663c2409cfde27b367286179f1379bc4ec18a3fbf2bb0d473b160a
+ languageName: node
+ linkType: hard
+
+"pinkie@npm:^2.0.0":
+ version: 2.0.4
+ resolution: "pinkie@npm:2.0.4"
+ checksum: 10c0/25228b08b5597da42dc384221aa0ce56ee0fbf32965db12ba838e2a9ca0193c2f0609c45551ee077ccd2060bf109137fdb185b00c6d7e0ed7e35006d20fdcbc6
+ languageName: node
+ linkType: hard
+
+"pkg-dir@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "pkg-dir@npm:1.0.0"
+ dependencies:
+ find-up: "npm:^1.0.0"
+ checksum: 10c0/aa4c0322b5804fee90081ecc79f89b00922016ff56415a8e6bbafb19833e1bd8001a8999571599fb3212719d4e74e1fdb48338f6ff5b57d857a32cc939701e1a
+ languageName: node
+ linkType: hard
+
+"pkg-dir@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "pkg-dir@npm:2.0.0"
+ dependencies:
+ find-up: "npm:^2.1.0"
+ checksum: 10c0/7cdc46c4921bf2c5f9a438851d16243ddde9906928116647ec7784982dd9038ea61c964fbca6f489201845742188180ecd1001b4f69781de1d1dc7d100b14089
+ languageName: node
+ linkType: hard
+
+"postcss-calc@npm:^5.2.0":
+ version: 5.3.1
+ resolution: "postcss-calc@npm:5.3.1"
+ dependencies:
+ postcss: "npm:^5.0.2"
+ postcss-message-helpers: "npm:^2.0.0"
+ reduce-css-calc: "npm:^1.2.6"
+ checksum: 10c0/96444e979f0e7ef2c6e15d545a05c4ebc05eaa00d1743c9181c1008fb0cc06c926242e50b600ef627d9bd418c3fd24adb6732c482eeed0de8e60b64c1c105176
+ languageName: node
+ linkType: hard
+
+"postcss-colormin@npm:^2.1.8":
+ version: 2.2.2
+ resolution: "postcss-colormin@npm:2.2.2"
+ dependencies:
+ colormin: "npm:^1.0.5"
+ postcss: "npm:^5.0.13"
+ postcss-value-parser: "npm:^3.2.3"
+ checksum: 10c0/defcfa7e3c8daa0c116747acd01346867374505347e802115b2e7b476b6f74df4e67820bcd98743a0c02cd92159005d41db42e428700f873bb54647e54417e95
+ languageName: node
+ linkType: hard
+
+"postcss-convert-values@npm:^2.3.4":
+ version: 2.6.1
+ resolution: "postcss-convert-values@npm:2.6.1"
+ dependencies:
+ postcss: "npm:^5.0.11"
+ postcss-value-parser: "npm:^3.1.2"
+ checksum: 10c0/3efbc1c5feaa6c2eb56da61ad2c9e784c50aad1524d9c6a5a5992da43a276ead2b2d2986c8f8647fad484eefe3e22855993b2fe1984b392c45fd82aa92e7bfb9
+ languageName: node
+ linkType: hard
+
+"postcss-discard-comments@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "postcss-discard-comments@npm:2.0.4"
+ dependencies:
+ postcss: "npm:^5.0.14"
+ checksum: 10c0/436039351e2e6fba1358077728f51c5923cf943584394fc38b441444fe572980f08c5c7d1733a2e48fa17096cb98e8180e73b45ed2aea7baabc162943ed403dc
+ languageName: node
+ linkType: hard
+
+"postcss-discard-duplicates@npm:^2.0.1":
+ version: 2.1.0
+ resolution: "postcss-discard-duplicates@npm:2.1.0"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ checksum: 10c0/0da451c605fa8b26981f2c8a059f9231eade6616026e01834dd5b305ad6ffbaae28916d3de5fe91b6d9810e0bff69e70ffe44cae3a908e12493bc4295cbf4a6f
+ languageName: node
+ linkType: hard
+
+"postcss-discard-empty@npm:^2.0.1":
+ version: 2.1.0
+ resolution: "postcss-discard-empty@npm:2.1.0"
+ dependencies:
+ postcss: "npm:^5.0.14"
+ checksum: 10c0/e2008b574f80cc3621c3e318e59e36895077865a48800f1c25eb688128f8d43f0402c8effc21143533fd114200e532dcfbaca9813f0d07f9e71e32b6a859afbd
+ languageName: node
+ linkType: hard
+
+"postcss-discard-overridden@npm:^0.1.1":
+ version: 0.1.1
+ resolution: "postcss-discard-overridden@npm:0.1.1"
+ dependencies:
+ postcss: "npm:^5.0.16"
+ checksum: 10c0/e1fd38e98045966be5f64252cbd553a597bc7678f64101025b850abe66851f35219320095321e4b0e9632843b6fc64e8bfe9b390064d9725a60a623a4a88b28d
+ languageName: node
+ linkType: hard
+
+"postcss-discard-unused@npm:^2.2.1":
+ version: 2.2.3
+ resolution: "postcss-discard-unused@npm:2.2.3"
+ dependencies:
+ postcss: "npm:^5.0.14"
+ uniqs: "npm:^2.0.0"
+ checksum: 10c0/0058b5f15363a5a6a0d01e28aaea98506639e52e42b49878ffc80d75ab9c4c9a8136c99ca2b5c9bf4d734469620ff5c84ab4f811a7bf9bc2e7dfd5f76e6d68fb
+ languageName: node
+ linkType: hard
+
+"postcss-filter-plugins@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "postcss-filter-plugins@npm:2.0.3"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ checksum: 10c0/a6d92215995486878dddab275ef65e55fd4432f779cc27ed435df49a22232743dad3285b9db8a5b32e4a618279d3f7415a501a9a4556411ee9d408bac447c5a0
+ languageName: node
+ linkType: hard
+
+"postcss-merge-idents@npm:^2.1.5":
+ version: 2.1.7
+ resolution: "postcss-merge-idents@npm:2.1.7"
+ dependencies:
+ has: "npm:^1.0.1"
+ postcss: "npm:^5.0.10"
+ postcss-value-parser: "npm:^3.1.1"
+ checksum: 10c0/5ef35d2ab59ceb32ca38d597753f8468dafb0782308930df820c96f3b23e4b4e36318ad29d76f88559c6a69d9c8d6283f1900617c0b6e4504bb5ab7523c120f8
+ languageName: node
+ linkType: hard
+
+"postcss-merge-longhand@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "postcss-merge-longhand@npm:2.0.2"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ checksum: 10c0/84145e5fee9e3064f1b22bde14fe5448449e519e3866a4c59cab42866309e3912638cc7e3d900c16090577a5f94899a2b46ed3a77c721592038671ce86e5395c
+ languageName: node
+ linkType: hard
+
+"postcss-merge-rules@npm:^2.0.3":
+ version: 2.1.2
+ resolution: "postcss-merge-rules@npm:2.1.2"
+ dependencies:
+ browserslist: "npm:^1.5.2"
+ caniuse-api: "npm:^1.5.2"
+ postcss: "npm:^5.0.4"
+ postcss-selector-parser: "npm:^2.2.2"
+ vendors: "npm:^1.0.0"
+ checksum: 10c0/aa825593d06079de4776f8ec71a05276c145aab734b66fbdea2c42bb545c2ec9fe075912ecb28d18d9c3b506784e8cf7db0951f9af287bc090f3ed7e6e72c332
+ languageName: node
+ linkType: hard
+
+"postcss-message-helpers@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "postcss-message-helpers@npm:2.0.0"
+ checksum: 10c0/5696c59befc408b208853a57994224f717c3a81a5b7129205c3087ad2af8159e209f29b66bfed7d79a1afc709cad76c3fbba06616ca71aeec77d7d029440dc72
+ languageName: node
+ linkType: hard
+
+"postcss-minify-font-values@npm:^1.0.2":
+ version: 1.0.5
+ resolution: "postcss-minify-font-values@npm:1.0.5"
+ dependencies:
+ object-assign: "npm:^4.0.1"
+ postcss: "npm:^5.0.4"
+ postcss-value-parser: "npm:^3.0.2"
+ checksum: 10c0/375fc0b1943b1d1e3c61bc33c19a70853ac2cebfdb0dcac23e5324edb218cf989bd7a8877cf846eafbb2d2e7cec4b7bc70922ac9300f9304c2422d807ccd4a85
+ languageName: node
+ linkType: hard
+
+"postcss-minify-gradients@npm:^1.0.1":
+ version: 1.0.5
+ resolution: "postcss-minify-gradients@npm:1.0.5"
+ dependencies:
+ postcss: "npm:^5.0.12"
+ postcss-value-parser: "npm:^3.3.0"
+ checksum: 10c0/ce5ed6151349ee4546b860cf9f7af38d8bfb942c32b45025b82c332603e2c49f6ee76ac9bda0cf8279cd2492baa4925b3298776deea7324f5efbd6a85782f0bc
+ languageName: node
+ linkType: hard
+
+"postcss-minify-params@npm:^1.0.4":
+ version: 1.2.2
+ resolution: "postcss-minify-params@npm:1.2.2"
+ dependencies:
+ alphanum-sort: "npm:^1.0.1"
+ postcss: "npm:^5.0.2"
+ postcss-value-parser: "npm:^3.0.2"
+ uniqs: "npm:^2.0.0"
+ checksum: 10c0/e48823f55e60e8dc2c44fb7810a323146bd5f9aa3384a203ee56c08b77a84d5227446a005b84371e8560dd0d6cefed667acc8cf020367c6934c7233fd890f7c8
+ languageName: node
+ linkType: hard
+
+"postcss-minify-selectors@npm:^2.0.4":
+ version: 2.1.1
+ resolution: "postcss-minify-selectors@npm:2.1.1"
+ dependencies:
+ alphanum-sort: "npm:^1.0.2"
+ has: "npm:^1.0.1"
+ postcss: "npm:^5.0.14"
+ postcss-selector-parser: "npm:^2.0.0"
+ checksum: 10c0/3fd37f12d4d4518a4c7e3e4c9a6ab8cf4757faff6d388700e5d148b9b7b6f1d1f28a6be0ffda5f0077a4e4d509fec65cef3e1343ff72d02e1945a1fba2543ac1
+ languageName: node
+ linkType: hard
+
+"postcss-modules-extract-imports@npm:^1.2.0":
+ version: 1.2.1
+ resolution: "postcss-modules-extract-imports@npm:1.2.1"
+ dependencies:
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/5746702936c1e1b78a7b31c4e20092197aa89c4e59c156249aea861c84cd0781c11c8c4648b95bcfdce010c48c8edd83b94eb9103f7c72ef8eb96c4b15716ed3
+ languageName: node
+ linkType: hard
+
+"postcss-modules-local-by-default@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "postcss-modules-local-by-default@npm:1.2.0"
+ dependencies:
+ css-selector-tokenizer: "npm:^0.7.0"
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/9139846ccefbb089cff17abda76e199c4d464d899816265f0b3939f5cf588b8ba59f9119b87eccaf3bfde3049bddd6ac5989f46e6d8fa9ba936cc6ccb27b89bd
+ languageName: node
+ linkType: hard
+
+"postcss-modules-scope@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "postcss-modules-scope@npm:1.1.0"
+ dependencies:
+ css-selector-tokenizer: "npm:^0.7.0"
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/ef0328204912f2a3b98322ac5f3d377c234c391a2afd29f51ec83961ad0e0c4dc01192968649ce47c75c85a6c922dd8c608b137c1cce548fe5d92d6fb4454bb2
+ languageName: node
+ linkType: hard
+
+"postcss-modules-values@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "postcss-modules-values@npm:1.3.0"
+ dependencies:
+ icss-replace-symbols: "npm:^1.1.0"
+ postcss: "npm:^6.0.1"
+ checksum: 10c0/11bb1af2478291b72f6cc106ba48dc566079021976b2da8c7989db6dca643db6fe81653aba43d4cfb0467754853d77d1eb0e3593a621affe62a1cc2d72541c70
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-charset@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "postcss-normalize-charset@npm:1.1.1"
+ dependencies:
+ postcss: "npm:^5.0.5"
+ checksum: 10c0/69e67c67ad2a71b2dee440769a3651c84dee7bfcb713749ebbef544454b0151ef0c84833228513d6f53afd63c721b38cd640c54eca9602e3768139158e0f316a
+ languageName: node
+ linkType: hard
+
+"postcss-normalize-url@npm:^3.0.7":
+ version: 3.0.8
+ resolution: "postcss-normalize-url@npm:3.0.8"
+ dependencies:
+ is-absolute-url: "npm:^2.0.0"
+ normalize-url: "npm:^1.4.0"
+ postcss: "npm:^5.0.14"
+ postcss-value-parser: "npm:^3.2.3"
+ checksum: 10c0/c53225ca485dd10d156e33e5ee5c3a830082f3f68a337b9e48f5a9d5083f6bebdf13008103d056b2025622c56421284bd391d9a86949ca468541cd0e2df682a6
+ languageName: node
+ linkType: hard
+
+"postcss-ordered-values@npm:^2.1.0":
+ version: 2.2.3
+ resolution: "postcss-ordered-values@npm:2.2.3"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ postcss-value-parser: "npm:^3.0.1"
+ checksum: 10c0/4d55a1c7f108f01181c22db1cb886ba0d47f71472a0e531f66b6d90094e74754a35a85cae7c142b4f6277066d2d4c586814dbd909ac7bb9d4c9d1180ac34d10b
+ languageName: node
+ linkType: hard
+
+"postcss-reduce-idents@npm:^2.2.2":
+ version: 2.4.0
+ resolution: "postcss-reduce-idents@npm:2.4.0"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ postcss-value-parser: "npm:^3.0.2"
+ checksum: 10c0/a63b42193dd19298b28411bb6186ec6aa5cc176cbb2a4e4e67567cecf116feaa02407744eb734521a49445be497156afad70d0ab5dcd1d9af772e2aca1fd127c
+ languageName: node
+ linkType: hard
+
+"postcss-reduce-initial@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "postcss-reduce-initial@npm:1.0.1"
+ dependencies:
+ postcss: "npm:^5.0.4"
+ checksum: 10c0/f1c40830ceea191cc31353cc5085a1dab8e94f40ce009d0779b0589329546c8f11a10c0ba3d6514032cbee1439d76dc5e0b49bb841b1ca388827cc8be79b587a
+ languageName: node
+ linkType: hard
+
+"postcss-reduce-transforms@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "postcss-reduce-transforms@npm:1.0.4"
+ dependencies:
+ has: "npm:^1.0.1"
+ postcss: "npm:^5.0.8"
+ postcss-value-parser: "npm:^3.0.1"
+ checksum: 10c0/9c8cf2373dd84adb132fcd15ca48379276ef353ab8e51c18506d2e9688658579affff77bcbff19e460e875483b9a7d18fb40488f89f8d15b635f10503da9d875
+ languageName: node
+ linkType: hard
+
+"postcss-selector-parser@npm:^2.0.0, postcss-selector-parser@npm:^2.2.2":
+ version: 2.2.3
+ resolution: "postcss-selector-parser@npm:2.2.3"
+ dependencies:
+ flatten: "npm:^1.0.2"
+ indexes-of: "npm:^1.0.1"
+ uniq: "npm:^1.0.1"
+ checksum: 10c0/dc8aee6807096a93a6a1079bddb8d3e94ca385688889da087156ecfe48f3ad7db7581395fada92737d0d6e6a2cda96697fb2d94bbbf97484adb1acff261efe00
+ languageName: node
+ linkType: hard
+
+"postcss-svgo@npm:^2.1.1":
+ version: 2.1.6
+ resolution: "postcss-svgo@npm:2.1.6"
+ dependencies:
+ is-svg: "npm:^2.0.0"
+ postcss: "npm:^5.0.14"
+ postcss-value-parser: "npm:^3.2.3"
+ svgo: "npm:^0.7.0"
+ checksum: 10c0/a4e33316888c609b2db8e0dbaa7db49f4c0c880985df364d1a237fc1ef170815f21949433e4ea5684da2c2b3d8ef2f6c0e944d3757c6749b350dbf19d534b5f2
+ languageName: node
+ linkType: hard
+
+"postcss-unique-selectors@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "postcss-unique-selectors@npm:2.0.2"
+ dependencies:
+ alphanum-sort: "npm:^1.0.1"
+ postcss: "npm:^5.0.4"
+ uniqs: "npm:^2.0.0"
+ checksum: 10c0/4d1fac25aec01952390df2746f1cb9392b1cfe29bd167608248408755bd8b510209f95213953bda61b3c1201fb580620acdffd4f29fb85c3986f2a04b9b6bb52
+ languageName: node
+ linkType: hard
+
+"postcss-value-parser@npm:^3.0.1, postcss-value-parser@npm:^3.0.2, postcss-value-parser@npm:^3.1.1, postcss-value-parser@npm:^3.1.2, postcss-value-parser@npm:^3.2.3, postcss-value-parser@npm:^3.3.0":
+ version: 3.3.1
+ resolution: "postcss-value-parser@npm:3.3.1"
+ checksum: 10c0/23eed98d8eeadb1f9ef1db4a2757da0f1d8e7c1dac2a38d6b35d971aab9eb3c6d8a967d0e9f435558834ffcd966afbbe875a56bcc5bcdd09e663008c106b3e47
+ languageName: node
+ linkType: hard
+
+"postcss-zindex@npm:^2.0.1":
+ version: 2.2.0
+ resolution: "postcss-zindex@npm:2.2.0"
+ dependencies:
+ has: "npm:^1.0.1"
+ postcss: "npm:^5.0.4"
+ uniqs: "npm:^2.0.0"
+ checksum: 10c0/3c99a8fcd7132ecd5f56df7d8bdbe9a9d78f6c92c784435d522e1909b4e5f624905734c528787b0257a2ae23ec45f5bf435f8e2dcd47733fad8d779b91f2ba09
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^5.0.10, postcss@npm:^5.0.11, postcss@npm:^5.0.12, postcss@npm:^5.0.13, postcss@npm:^5.0.14, postcss@npm:^5.0.16, postcss@npm:^5.0.2, postcss@npm:^5.0.4, postcss@npm:^5.0.5, postcss@npm:^5.0.6, postcss@npm:^5.0.8, postcss@npm:^5.2.16":
+ version: 5.2.18
+ resolution: "postcss@npm:5.2.18"
+ dependencies:
+ chalk: "npm:^1.1.3"
+ js-base64: "npm:^2.1.9"
+ source-map: "npm:^0.5.6"
+ supports-color: "npm:^3.2.3"
+ checksum: 10c0/1f9f6673dd24d52f1ed33b800248e6ef752d6b6a092fe268021e398df0d7e0956f00fb961781647264d659240c3d67f5bfd3df9bf1b7af985aa996be619d30b1
+ languageName: node
+ linkType: hard
+
+"postcss@npm:^6.0.1":
+ version: 6.0.23
+ resolution: "postcss@npm:6.0.23"
+ dependencies:
+ chalk: "npm:^2.4.1"
+ source-map: "npm:^0.6.1"
+ supports-color: "npm:^5.4.0"
+ checksum: 10c0/45d45184ffbb9d510e7585d9441af9a1a771a56b7553b1d598544e54acdfd31df439a95d5f00a6dc57b85b76d0c8925fec18614b1cc795887c845c3965e32e63
+ languageName: node
+ linkType: hard
+
+"prepend-http@npm:^1.0.0":
+ version: 1.0.4
+ resolution: "prepend-http@npm:1.0.4"
+ checksum: 10c0/c6c173ca439e58163ba7bea7cbba52a1ed11e3e3da1c048da296f37d4b7654f78f7304e03f76d5923f4b83af7e2d55533e0f79064209c75b743ccddee13904f8
+ languageName: node
+ linkType: hard
+
+"private@npm:^0.1.8":
+ version: 0.1.8
+ resolution: "private@npm:0.1.8"
+ checksum: 10c0/829a23723e5fd3105c72b2dadeeb65743a430f7e6967a8a6f3e49392a1b3ea52975a255376d8c513b0c988bdf162f1a5edf9d9bac27d1ab11f8dba8cdb58880e
+ languageName: node
+ linkType: hard
+
+"proc-log@npm:^6.0.0":
+ version: 6.1.0
+ resolution: "proc-log@npm:6.1.0"
+ checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82
+ languageName: node
+ linkType: hard
+
+"process-nextick-args@npm:~2.0.0":
+ version: 2.0.1
+ resolution: "process-nextick-args@npm:2.0.1"
+ checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367
+ languageName: node
+ linkType: hard
+
+"process@npm:^0.11.10":
+ version: 0.11.10
+ resolution: "process@npm:0.11.10"
+ checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3
+ languageName: node
+ linkType: hard
+
+"promise-inflight@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "promise-inflight@npm:1.0.1"
+ checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc
+ languageName: node
+ linkType: hard
+
+"prr@npm:~1.0.1":
+ version: 1.0.1
+ resolution: "prr@npm:1.0.1"
+ checksum: 10c0/5b9272c602e4f4472a215e58daff88f802923b84bc39c8860376bb1c0e42aaf18c25d69ad974bd06ec6db6f544b783edecd5502cd3d184748d99080d68e4be5f
+ languageName: node
+ linkType: hard
+
+"pseudomap@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "pseudomap@npm:1.0.2"
+ checksum: 10c0/5a91ce114c64ed3a6a553aa7d2943868811377388bb31447f9d8028271bae9b05b340fe0b6961a64e45b9c72946aeb0a4ab635e8f7cb3715ffd0ff2beeb6a679
+ languageName: node
+ linkType: hard
+
+"public-encrypt@npm:^4.0.0":
+ version: 4.0.3
+ resolution: "public-encrypt@npm:4.0.3"
+ dependencies:
+ bn.js: "npm:^4.1.0"
+ browserify-rsa: "npm:^4.0.0"
+ create-hash: "npm:^1.1.0"
+ parse-asn1: "npm:^5.0.0"
+ randombytes: "npm:^2.0.1"
+ safe-buffer: "npm:^5.1.2"
+ checksum: 10c0/6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700
+ languageName: node
+ linkType: hard
+
+"pump@npm:^2.0.0, pump@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "pump@npm:2.0.1"
+ dependencies:
+ end-of-stream: "npm:^1.1.0"
+ once: "npm:^1.3.1"
+ checksum: 10c0/f1fe8960f44d145f8617ea4c67de05392da4557052980314c8f85081aee26953bdcab64afad58a2b1df0e8ff7203e3710e848cbe81a01027978edc6e264db355
+ languageName: node
+ linkType: hard
+
+"pumpify@npm:^1.3.3":
+ version: 1.5.1
+ resolution: "pumpify@npm:1.5.1"
+ dependencies:
+ duplexify: "npm:^3.6.0"
+ inherits: "npm:^2.0.3"
+ pump: "npm:^2.0.0"
+ checksum: 10c0/0bcabf9e3dbf2d0cc1f9b84ac80d3c75386111caf8963bfd98817a1e2192000ac0ccc804ca6ccd5b2b8430fdb71347b20fb2f014fe3d41adbacb1b502a841c45
+ languageName: node
+ linkType: hard
+
+"punycode@npm:1.3.2":
+ version: 1.3.2
+ resolution: "punycode@npm:1.3.2"
+ checksum: 10c0/281fd20eaf4704f79d80cb0dc65065bf6452ee67989b3e8941aed6360a5a9a8a01d3e2ed71d0bde3cd74fb5a5dd9db4160bed5a8c20bed4b6764c24ce4c7d2d2
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^1.2.4":
+ version: 1.4.1
+ resolution: "punycode@npm:1.4.1"
+ checksum: 10c0/354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^2.1.0":
+ version: 2.1.1
+ resolution: "punycode@npm:2.1.1"
+ checksum: 10c0/83815ca9b9177f055771f31980cbec7ffaef10257d50a95ab99b4a30f0404846e85fa6887ee1bbc0aaddb7bad6d96e2fa150a016051ff0f6b92be4ad613ddca8
+ languageName: node
+ linkType: hard
+
+"q@npm:^1.1.2":
+ version: 1.5.1
+ resolution: "q@npm:1.5.1"
+ checksum: 10c0/7855fbdba126cb7e92ef3a16b47ba998c0786ec7fface236e3eb0135b65df36429d91a86b1fff3ab0927b4ac4ee88a2c44527c7c3b8e2a37efbec9fe34803df4
+ languageName: node
+ linkType: hard
+
+"qs@npm:2.3.3":
+ version: 2.3.3
+ resolution: "qs@npm:2.3.3"
+ checksum: 10c0/4c02f03f77e50219799f52608dd72f57389ea364be499f5e8b02d505377cb93f6414239e00b3a7342b0d05a730ad85b3ffb5e7f0a5ba2f3d8ef7303283c01e17
+ languageName: node
+ linkType: hard
+
+"query-string@npm:^4.1.0":
+ version: 4.3.4
+ resolution: "query-string@npm:4.3.4"
+ dependencies:
+ object-assign: "npm:^4.1.0"
+ strict-uri-encode: "npm:^1.0.0"
+ checksum: 10c0/6181c343074c2049fbbcde63f87c1da5d3a49c6e34c8d94a61d692e886e0b8cd1ae4a4be00b598112bb9c4cb819e423ed503a5d246e4d24ecb0990d8bb21570b
+ languageName: node
+ linkType: hard
+
+"querystring-es3@npm:^0.2.0":
+ version: 0.2.1
+ resolution: "querystring-es3@npm:0.2.1"
+ checksum: 10c0/476938c1adb45c141f024fccd2ffd919a3746e79ed444d00e670aad68532977b793889648980e7ca7ff5ffc7bfece623118d0fbadcaf217495eeb7059ae51580
+ languageName: node
+ linkType: hard
+
+"querystring@npm:0.2.0":
+ version: 0.2.0
+ resolution: "querystring@npm:0.2.0"
+ checksum: 10c0/2036c9424beaacd3978bac9e4ba514331cc73163bea7bf3ad7e2c7355e55501938ec195312c607753f9c6e70b1bf9dfcda38db6241bd299c034e27ac639d64ed
+ languageName: node
+ linkType: hard
+
+"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5":
+ version: 2.1.0
+ resolution: "randombytes@npm:2.1.0"
+ dependencies:
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3
+ languageName: node
+ linkType: hard
+
+"randomfill@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "randomfill@npm:1.0.4"
+ dependencies:
+ randombytes: "npm:^2.0.5"
+ safe-buffer: "npm:^5.1.0"
+ checksum: 10c0/11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c
+ languageName: node
+ linkType: hard
+
+"raven@npm:^2.6.4":
+ version: 2.6.4
+ resolution: "raven@npm:2.6.4"
+ dependencies:
+ cookie: "npm:0.3.1"
+ md5: "npm:^2.2.1"
+ stack-trace: "npm:0.0.10"
+ timed-out: "npm:4.0.1"
+ uuid: "npm:3.3.2"
+ bin:
+ raven: ./bin/raven
+ checksum: 10c0/688dd6137c16f0d6cd67dadf1450b1cc0f74cbd3abac010c1d2aa84334a17799859f525a2a5478b803000f514dd74ef60bd97a96274c329ff7acf68dd6350927
+ languageName: node
+ linkType: hard
+
+"read-pkg-up@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "read-pkg-up@npm:2.0.0"
+ dependencies:
+ find-up: "npm:^2.0.0"
+ read-pkg: "npm:^2.0.0"
+ checksum: 10c0/6fbb9f8c1a9ed3c8a5764387a77ac4456082f1fe98757d1ed300d8b0a4c70501f28cbb053ae7b3e0de6094930fb7258fbfe099957a53c999337aaf8bc53ff37f
+ languageName: node
+ linkType: hard
+
+"read-pkg@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "read-pkg@npm:2.0.0"
+ dependencies:
+ load-json-file: "npm:^2.0.0"
+ normalize-package-data: "npm:^2.3.2"
+ path-type: "npm:^2.0.0"
+ checksum: 10c0/c0d1b66c58e58fadaabe48c83c525fb1966304555e5089fab5ccce2c3dfe0fad726720b170a5fa23ff20452e22d1dbe817f5c63f03546bb85cbfb6b84da84c2b
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6":
+ version: 2.3.7
+ resolution: "readable-stream@npm:2.3.7"
+ dependencies:
+ core-util-is: "npm:~1.0.0"
+ inherits: "npm:~2.0.3"
+ isarray: "npm:~1.0.0"
+ process-nextick-args: "npm:~2.0.0"
+ safe-buffer: "npm:~5.1.1"
+ string_decoder: "npm:~1.1.1"
+ util-deprecate: "npm:~1.0.1"
+ checksum: 10c0/1708755e6cf9daff6ff60fa5b4575636472289c5b95d38058a91f94732b8d024a940a0d4d955639195ce42c22cab16973ee8fea8deedd24b5fec3dd596465f86
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:1.0.27-1":
+ version: 1.0.27-1
+ resolution: "readable-stream@npm:1.0.27-1"
+ dependencies:
+ core-util-is: "npm:~1.0.0"
+ inherits: "npm:~2.0.1"
+ isarray: "npm:0.0.1"
+ string_decoder: "npm:~0.10.x"
+ checksum: 10c0/b887546e0a2c9e3204141be697d96f7966c4f25110925d9cd6714cf451d750b77ad873fd176ed03e40e4cb5da52f35a382ddd50e306e3f5fd37e238044897cd3
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:>=1.0.33-1 <1.1.0-0":
+ version: 1.0.34
+ resolution: "readable-stream@npm:1.0.34"
+ dependencies:
+ core-util-is: "npm:~1.0.0"
+ inherits: "npm:~2.0.1"
+ isarray: "npm:0.0.1"
+ string_decoder: "npm:~0.10.x"
+ checksum: 10c0/02272551396ed8930ddee1a088bdf0379f0f7cc47ac49ed8804e998076cb7daec9fbd2b1fd9c0490ec72e56e8bb3651abeb8080492b8e0a9c3f2158330908ed6
+ languageName: node
+ linkType: hard
+
+"readable-stream@npm:^3.6.0":
+ version: 3.6.0
+ resolution: "readable-stream@npm:3.6.0"
+ dependencies:
+ inherits: "npm:^2.0.3"
+ string_decoder: "npm:^1.1.1"
+ util-deprecate: "npm:^1.0.1"
+ checksum: 10c0/937bedd29ac8a68331666291922bea892fa2be1a33269e582de9f844a2002f146cf831e39cd49fe6a378d3f0c27358f259ed0e20d20f0bdc6a3f8fc21fce42dc
+ languageName: node
+ linkType: hard
+
+"reduce-component@npm:1.0.1":
+ version: 1.0.1
+ resolution: "reduce-component@npm:1.0.1"
+ checksum: 10c0/a06392549d3783c626daff88e49ca29d02390b27028a37a75116c3f36b544ad1772d32332b0f374990545287edf4403159de990d0678fb799b254ebbe113fa71
+ languageName: node
+ linkType: hard
+
+"reduce-css-calc@npm:^1.2.6":
+ version: 1.3.0
+ resolution: "reduce-css-calc@npm:1.3.0"
+ dependencies:
+ balanced-match: "npm:^0.4.2"
+ math-expression-evaluator: "npm:^1.2.14"
+ reduce-function-call: "npm:^1.0.1"
+ checksum: 10c0/c0b192bbdc7617ee7e3bcd09332f7f810c2b52f1da8521c4eda03879ead00bcca65bcae78d5bc8cd925610f776532a3457e8b2fd8f4bb936bdb40f057590f20d
+ languageName: node
+ linkType: hard
+
+"reduce-function-call@npm:^1.0.1":
+ version: 1.0.3
+ resolution: "reduce-function-call@npm:1.0.3"
+ dependencies:
+ balanced-match: "npm:^1.0.0"
+ checksum: 10c0/7e844708d8c3d2946d3df5c537ee1e23c3c60c98ac0dbc724828f36d8d309c391a14995f47ce4f5ba84eea2df5c73d58e4ba100ba331af496920932421a322ed
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.11.0":
+ version: 0.11.1
+ resolution: "regenerator-runtime@npm:0.11.1"
+ checksum: 10c0/69cfa839efcf2d627fe358bf302ab8b24e5f182cb69f13e66f0612d3640d7838aad1e55662135e3ef2c1cc4322315b757626094fab13a48f9a64ab4bdeb8795b
+ languageName: node
+ linkType: hard
+
+"repeating@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "repeating@npm:2.0.1"
+ dependencies:
+ is-finite: "npm:^1.0.0"
+ checksum: 10c0/7f5cd293ec47d9c074ef0852800d5ff5c49028ce65242a7528d84f32bd2fe200b142930562af58c96d869c5a3046e87253030058e45231acaa129c1a7087d2e7
+ languageName: node
+ linkType: hard
+
+"require-directory@npm:^2.1.1":
+ version: 2.1.1
+ resolution: "require-directory@npm:2.1.1"
+ checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99
+ languageName: node
+ linkType: hard
+
+"require-main-filename@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "require-main-filename@npm:1.0.1"
+ checksum: 10c0/1ab87efb72a0e223a667154e92f29ca753fd42eb87f22db142b91c86d134e29ecf18af929111ccd255fd340b57d84a9d39489498d8dfd5136b300ded30a5f0b6
+ languageName: node
+ linkType: hard
+
+"resolve@npm:^1.10.0":
+ version: 1.22.1
+ resolution: "resolve@npm:1.22.1"
+ dependencies:
+ is-core-module: "npm:^2.9.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/6d58b1cb40f3fc80b9e45dd799d84cdc3829a993e4b9fa3b59d331e1dfacd0870e1851f4d0eb549d68c796e0b7087b43d1aec162653ccccff9e18191221a6e7d
+ languageName: node
+ linkType: hard
+
+"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin":
+ version: 1.22.1
+ resolution: "resolve@patch:resolve@npm%3A1.22.1#optional!builtin::version=1.22.1&hash=c3c19d"
+ dependencies:
+ is-core-module: "npm:^2.9.0"
+ path-parse: "npm:^1.0.7"
+ supports-preserve-symlinks-flag: "npm:^1.0.0"
+ bin:
+ resolve: bin/resolve
+ checksum: 10c0/0d8ccceba5537769c42aa75e4aa75ae854aac866a11d7e9ffdb1663f0158ee646a0d48fc2818ed5e7fb364d64220a1fb9092a160e11e00cbdd5fbab39a13092c
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^2.5.4, rimraf@npm:^2.6.2":
+ version: 2.7.1
+ resolution: "rimraf@npm:2.7.1"
+ dependencies:
+ glob: "npm:^7.1.3"
+ bin:
+ rimraf: ./bin.js
+ checksum: 10c0/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40
+ languageName: node
+ linkType: hard
+
+"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "ripemd160@npm:2.0.2"
+ dependencies:
+ hash-base: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a
+ languageName: node
+ linkType: hard
+
+"run-queue@npm:^1.0.0, run-queue@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "run-queue@npm:1.0.3"
+ dependencies:
+ aproba: "npm:^1.1.1"
+ checksum: 10c0/4e8964279d8f160f9ffaabe82eaad11a1d4c0db596a0f2b5257ae9d2b900c7e1ffcece3e5719199436f50718e1e7f45bb4bf7a82e331a4e734d67c2588a90cbb
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
+ version: 5.1.2
+ resolution: "safe-buffer@npm:5.1.2"
+ checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.1.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
+ languageName: node
+ linkType: hard
+
+"sax@npm:^1.2.4, sax@npm:~1.2.1":
+ version: 1.2.4
+ resolution: "sax@npm:1.2.4"
+ checksum: 10c0/6e9b05ff443ee5e5096ce92d31c0740a20d33002fad714ebcb8fc7a664d9ee159103ebe8f7aef0a1f7c5ecacdd01f177f510dff95611c589399baf76437d3fe3
+ languageName: node
+ linkType: hard
+
+"schema-utils@npm:^0.4.5":
+ version: 0.4.7
+ resolution: "schema-utils@npm:0.4.7"
+ dependencies:
+ ajv: "npm:^6.1.0"
+ ajv-keywords: "npm:^3.1.0"
+ checksum: 10c0/0de445cee6bf9a54b7b18b284b5f5ebe5b481f57e71854872c4215bd8eda73811a5f4964718c26f24b50f46a5eafbaf8a391459a7f10b78c242a798a3e0e24c8
+ languageName: node
+ linkType: hard
+
+"schema-utils@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "schema-utils@npm:1.0.0"
+ dependencies:
+ ajv: "npm:^6.1.0"
+ ajv-errors: "npm:^1.0.0"
+ ajv-keywords: "npm:^3.1.0"
+ checksum: 10c0/670e22d7f0ff0b6f4514a4d6fb27c359101b44b7dbfd9563af201af72eb4a9ff06144020cab5f85b16e88821fd09b97cbdae6c893721c6528c8cb704124e6a2f
+ languageName: node
+ linkType: hard
+
+"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0":
+ version: 5.7.1
+ resolution: "semver@npm:5.7.1"
+ bin:
+ semver: ./bin/semver
+ checksum: 10c0/d4884f2aeca28bff35d0bd40ff0a9b2dfc4b36a883bf0ea5dc15d10d9a01bdc9041035b05f825d4b5ac8a56e490703dbf0d986d054de82cc5e9bad3f02ca6e00
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.5":
+ version: 7.7.4
+ resolution: "semver@npm:7.7.4"
+ bin:
+ semver: bin/semver.js
+ checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2
+ languageName: node
+ linkType: hard
+
+"serialize-javascript@npm:^1.4.0":
+ version: 1.9.1
+ resolution: "serialize-javascript@npm:1.9.1"
+ checksum: 10c0/01c1aabb28a50133ac7c86038ec14be26b13e0d8d43ac6ad4bad57789bc8dc33b33fef2424330ab9d138da40d9a3c2520f0d66e8c3474eeeab01669d3a38cae1
+ languageName: node
+ linkType: hard
+
+"set-blocking@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "set-blocking@npm:2.0.0"
+ checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454
+ languageName: node
+ linkType: hard
+
+"setimmediate@npm:^1.0.4":
+ version: 1.0.5
+ resolution: "setimmediate@npm:1.0.5"
+ checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49
+ languageName: node
+ linkType: hard
+
+"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8":
+ version: 2.4.11
+ resolution: "sha.js@npm:2.4.11"
+ dependencies:
+ inherits: "npm:^2.0.1"
+ safe-buffer: "npm:^5.0.1"
+ bin:
+ sha.js: ./bin.js
+ checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^1.2.0":
+ version: 1.2.0
+ resolution: "shebang-command@npm:1.2.0"
+ dependencies:
+ shebang-regex: "npm:^1.0.0"
+ checksum: 10c0/7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "shebang-regex@npm:1.0.0"
+ checksum: 10c0/9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^3.0.0":
+ version: 3.0.7
+ resolution: "signal-exit@npm:3.0.7"
+ checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912
+ languageName: node
+ linkType: hard
+
+"simple-statistics@npm:7.7.3":
+ version: 7.7.3
+ resolution: "simple-statistics@npm:7.7.3"
+ checksum: 10c0/a65fe89dbeb6233735f2aea0a9c41d9bb33b57779c3a47b0ea2daab62c6c2dd03ce867cde73083fb373bf6faaf874d10c1c7615eb5426237aa6d8c4e54fd6a47
+ languageName: node
+ linkType: hard
+
+"slash@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "slash@npm:1.0.0"
+ checksum: 10c0/3944659885d905480f98810542fd314f3e1006eaad25ec78227a7835a469d9ed66fc3dd90abc7377dd2e71f4b5473e8f766bd08198fdd25152a80792e9ed464c
+ languageName: node
+ linkType: hard
+
+"smart-buffer@npm:^4.2.0":
+ version: 4.2.0
+ resolution: "smart-buffer@npm:4.2.0"
+ checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
+ languageName: node
+ linkType: hard
+
+"socks-proxy-agent@npm:^8.0.3":
+ version: 8.0.5
+ resolution: "socks-proxy-agent@npm:8.0.5"
+ dependencies:
+ agent-base: "npm:^7.1.2"
+ debug: "npm:^4.3.4"
+ socks: "npm:^2.8.3"
+ checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6
+ languageName: node
+ linkType: hard
+
+"socks@npm:^2.8.3":
+ version: 2.8.7
+ resolution: "socks@npm:2.8.7"
+ dependencies:
+ ip-address: "npm:^10.0.1"
+ smart-buffer: "npm:^4.2.0"
+ checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2
+ languageName: node
+ linkType: hard
+
+"sort-keys@npm:^1.0.0":
+ version: 1.1.2
+ resolution: "sort-keys@npm:1.1.2"
+ dependencies:
+ is-plain-obj: "npm:^1.0.0"
+ checksum: 10c0/5dd383b0299a40277051f7498c3999520138e2eb50d422962f658738341c9e82349fad4a3024d5ba1a3122688fbaf958f2a472d4c53bade55515097c2ce15420
+ languageName: node
+ linkType: hard
+
+"source-list-map@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "source-list-map@npm:2.0.1"
+ checksum: 10c0/2e5e421b185dcd857f46c3c70e2e711a65d717b78c5f795e2e248c9d67757882ea989b80ebc08cf164eeeda5f4be8aa95d3b990225070b2daaaf3257c5958149
+ languageName: node
+ linkType: hard
+
+"source-map-support@npm:^0.4.15":
+ version: 0.4.18
+ resolution: "source-map-support@npm:0.4.18"
+ dependencies:
+ source-map: "npm:^0.5.6"
+ checksum: 10c0/cd9f0309c1632b1e01a7715a009e0b036d565f3af8930fa8cda2a06aeec05ad1d86180e743b7e1f02cc3c97abe8b6d8de7c3878c2d8e01e86e17f876f7ecf98e
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.5.3, source-map@npm:^0.5.6, source-map@npm:^0.5.7":
+ version: 0.5.7
+ resolution: "source-map@npm:0.5.7"
+ checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
+ version: 0.6.1
+ resolution: "source-map@npm:0.6.1"
+ checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011
+ languageName: node
+ linkType: hard
+
+"spdx-correct@npm:^3.0.0":
+ version: 3.1.1
+ resolution: "spdx-correct@npm:3.1.1"
+ dependencies:
+ spdx-expression-parse: "npm:^3.0.0"
+ spdx-license-ids: "npm:^3.0.0"
+ checksum: 10c0/25909eecc4024963a8e398399dbdd59ddb925bd7dbecd9c9cf6df0d75c29b68cd30b82123564acc51810eb02cfc4b634a2e16e88aa982433306012e318849249
+ languageName: node
+ linkType: hard
+
+"spdx-exceptions@npm:^2.1.0":
+ version: 2.3.0
+ resolution: "spdx-exceptions@npm:2.3.0"
+ checksum: 10c0/83089e77d2a91cb6805a5c910a2bedb9e50799da091f532c2ba4150efdef6e53f121523d3e2dc2573a340dc0189e648b03157097f65465b3a0c06da1f18d7e8a
+ languageName: node
+ linkType: hard
+
+"spdx-expression-parse@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "spdx-expression-parse@npm:3.0.1"
+ dependencies:
+ spdx-exceptions: "npm:^2.1.0"
+ spdx-license-ids: "npm:^3.0.0"
+ checksum: 10c0/6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171
+ languageName: node
+ linkType: hard
+
+"spdx-license-ids@npm:^3.0.0":
+ version: 3.0.11
+ resolution: "spdx-license-ids@npm:3.0.11"
+ checksum: 10c0/6c53cfdb3417e80fd612341319f1296507f797e0387e144047f547c378d9d38d6032ec342de42ef7883256f6690b2fca9889979d0dd015a61dc49b323f9b379b
+ languageName: node
+ linkType: hard
+
+"spin.js@npm:^2.0.1":
+ version: 2.3.2
+ resolution: "spin.js@npm:2.3.2"
+ checksum: 10c0/bf3ff85e8dc1491ce6ea8c0b83b559bb5d315fcb55104dd9a103b42d3bad03a7d3a1e72c6d7b32b7cc28d6f0b4fd93ed4321a41184debfa20fb71898c748e599
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:~1.0.2":
+ version: 1.0.3
+ resolution: "sprintf-js@npm:1.0.3"
+ checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^13.0.0":
+ version: 13.0.1
+ resolution: "ssri@npm:13.0.1"
+ dependencies:
+ minipass: "npm:^7.0.3"
+ checksum: 10c0/cf6408a18676c57ff2ed06b8a20dc64bb3e748e5c7e095332e6aecaa2b8422b1e94a739a8453bf65156a8a47afe23757ba4ab52d3ea3b62322dc40875763e17a
+ languageName: node
+ linkType: hard
+
+"ssri@npm:^5.2.4":
+ version: 5.3.0
+ resolution: "ssri@npm:5.3.0"
+ dependencies:
+ safe-buffer: "npm:^5.1.1"
+ checksum: 10c0/f80372ec982cacb3d8e4b53c2a82a7f7502d915a57aef99a29e6cd293302d5944185a569df5fce694a857abb1e602585fcee90182cd2e853bae3d1c20a84d8cb
+ languageName: node
+ linkType: hard
+
+"stack-trace@npm:0.0.10":
+ version: 0.0.10
+ resolution: "stack-trace@npm:0.0.10"
+ checksum: 10c0/9ff3dabfad4049b635a85456f927a075c9d0c210e3ea336412d18220b2a86cbb9b13ec46d6c37b70a302a4ea4d49e30e5d4944dd60ae784073f1cde778ac8f4b
+ languageName: node
+ linkType: hard
+
+"stream-browserify@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "stream-browserify@npm:2.0.2"
+ dependencies:
+ inherits: "npm:~2.0.1"
+ readable-stream: "npm:^2.0.2"
+ checksum: 10c0/485562bd5d962d633ae178449029c6fa2611052e356bdb5668f768544aa4daa94c4f9a97de718f3f30ad98f3cb98a5f396252bb3855aff153c138f79c0e8f6ac
+ languageName: node
+ linkType: hard
+
+"stream-each@npm:^1.1.0":
+ version: 1.2.3
+ resolution: "stream-each@npm:1.2.3"
+ dependencies:
+ end-of-stream: "npm:^1.1.0"
+ stream-shift: "npm:^1.0.0"
+ checksum: 10c0/7ed229d3b7c24373058b5742b00066da8d3122d1487c8219a025ed53a8978545c77654a529a8e9c62ba83ae80c424cbb0204776b49abf72270d2e8154831dd5f
+ languageName: node
+ linkType: hard
+
+"stream-http@npm:^2.7.2":
+ version: 2.8.3
+ resolution: "stream-http@npm:2.8.3"
+ dependencies:
+ builtin-status-codes: "npm:^3.0.0"
+ inherits: "npm:^2.0.1"
+ readable-stream: "npm:^2.3.6"
+ to-arraybuffer: "npm:^1.0.0"
+ xtend: "npm:^4.0.0"
+ checksum: 10c0/fbe7d327a29216bbabe88d3819bb8f7a502f11eeacf3212579e5af1f76fa7283f6ffa66134ab7d80928070051f571d1029e85f65ce3369fffd4c4df3669446c4
+ languageName: node
+ linkType: hard
+
+"stream-shift@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "stream-shift@npm:1.0.1"
+ checksum: 10c0/b63a0d178cde34b920ad93e2c0c9395b840f408d36803b07c61416edac80ef9e480a51910e0ceea0d679cec90921bcd2cccab020d3a9fa6c73a98b0fbec132fd
+ languageName: node
+ linkType: hard
+
+"strict-uri-encode@npm:^1.0.0":
+ version: 1.1.0
+ resolution: "strict-uri-encode@npm:1.1.0"
+ checksum: 10c0/eb8a4109ba2588239787389313ba58ec49e043d4c64a1d44716defe5821a68ae49abe0cdefed9946ca9fc2a4af7ecf321da92422b0a67258ec0a3638b053ae62
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "string-width@npm:1.0.2"
+ dependencies:
+ code-point-at: "npm:^1.0.0"
+ is-fullwidth-code-point: "npm:^1.0.0"
+ strip-ansi: "npm:^3.0.0"
+ checksum: 10c0/c558438baed23a9ab9370bb6a939acbdb2b2ffc517838d651aad0f5b2b674fb85d460d9b1d0b6a4c210dffd09e3235222d89a5bd4c0c1587f78b2bb7bc00c65e
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^2.0.0":
+ version: 2.1.1
+ resolution: "string-width@npm:2.1.1"
+ dependencies:
+ is-fullwidth-code-point: "npm:^2.0.0"
+ strip-ansi: "npm:^4.0.0"
+ checksum: 10c0/e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1":
+ version: 1.3.0
+ resolution: "string_decoder@npm:1.3.0"
+ dependencies:
+ safe-buffer: "npm:~5.2.0"
+ checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:~0.10.x":
+ version: 0.10.31
+ resolution: "string_decoder@npm:0.10.31"
+ checksum: 10c0/1c628d78f974aa7539c496029f48e7019acc32487fc695464f9d6bdfec98edd7d933a06b3216bc2016918f6e75074c611d84430a53cb0e43071597d6c1ac5e25
+ languageName: node
+ linkType: hard
+
+"string_decoder@npm:~1.1.1":
+ version: 1.1.1
+ resolution: "string_decoder@npm:1.1.1"
+ dependencies:
+ safe-buffer: "npm:~5.1.0"
+ checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "strip-ansi@npm:2.0.1"
+ dependencies:
+ ansi-regex: "npm:^1.0.0"
+ bin:
+ strip-ansi: cli.js
+ checksum: 10c0/5517a3787f5fdb4fb621fbd13ae2688211329654a6e1415b4ba0af517adb1bc4e3a593abc40347ca0501cb68a978e25f46fb253ac369b44d25bb6f736cc48986
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1":
+ version: 3.0.1
+ resolution: "strip-ansi@npm:3.0.1"
+ dependencies:
+ ansi-regex: "npm:^2.0.0"
+ checksum: 10c0/f6e7fbe8e700105dccf7102eae20e4f03477537c74b286fd22cfc970f139002ed6f0d9c10d0e21aa9ed9245e0fa3c9275930e8795c5b947da136e4ecb644a70f
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "strip-ansi@npm:4.0.0"
+ dependencies:
+ ansi-regex: "npm:^3.0.0"
+ checksum: 10c0/d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d
+ languageName: node
+ linkType: hard
+
+"strip-bom@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-bom@npm:3.0.0"
+ checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1
+ languageName: node
+ linkType: hard
+
+"strip-eof@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "strip-eof@npm:1.0.0"
+ checksum: 10c0/f336beed8622f7c1dd02f2cbd8422da9208fae81daf184f73656332899978919d5c0ca84dc6cfc49ad1fc4dd7badcde5412a063cf4e0d7f8ed95a13a63f68f45
+ languageName: node
+ linkType: hard
+
+"style-loader@npm:^0.23.1":
+ version: 0.23.1
+ resolution: "style-loader@npm:0.23.1"
+ dependencies:
+ loader-utils: "npm:^1.1.0"
+ schema-utils: "npm:^1.0.0"
+ checksum: 10c0/9752920e4284e53067282f8cca68402604db152b60251525106414ceb7dedbfa5571ad544c95062006c1ff8801aa337e231e848dd3f1a8f73ec3fa680f530895
+ languageName: node
+ linkType: hard
+
+"superagent@npm:^1.8.3":
+ version: 1.8.5
+ resolution: "superagent@npm:1.8.5"
+ dependencies:
+ component-emitter: "npm:~1.2.0"
+ cookiejar: "npm:2.0.6"
+ debug: "npm:2"
+ extend: "npm:3.0.0"
+ form-data: "npm:1.0.0-rc3"
+ formidable: "npm:~1.0.14"
+ methods: "npm:~1.1.1"
+ mime: "npm:1.3.4"
+ qs: "npm:2.3.3"
+ readable-stream: "npm:1.0.27-1"
+ reduce-component: "npm:1.0.1"
+ checksum: 10c0/636198862a8bad386adc9fbe5f129a2617893fb79dbc007b6c7e92be9a114a7b3aed32c08adf00d286fa8726e6b5d51b8d46345a037a0066d7764b0c41bde4f9
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "supports-color@npm:2.0.0"
+ checksum: 10c0/570e0b63be36cccdd25186350a6cb2eaad332a95ff162fa06d9499982315f2fe4217e69dd98e862fbcd9c81eaff300a825a1fe7bf5cc752e5b84dfed042b0dda
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^3.2.3":
+ version: 3.2.3
+ resolution: "supports-color@npm:3.2.3"
+ dependencies:
+ has-flag: "npm:^1.0.0"
+ checksum: 10c0/d39a57dbd75c3b5740654f8ec16aaf7203b8d12b8a51314507bed590c9081120805f105b4ce741db13105e6f842ac09700e4bd665b9ffc46eb0b34ba54720bd3
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^4.2.1":
+ version: 4.5.0
+ resolution: "supports-color@npm:4.5.0"
+ dependencies:
+ has-flag: "npm:^2.0.0"
+ checksum: 10c0/2dc369eeac73954e87037dea1ebae0238b2abc0a39d7e35aa60eb8a84cc8d1dcade8b62e010597f5859f94c937e992abe6a6195460855fcc5e51f8cfc7fcc72a
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^5.3.0, supports-color@npm:^5.4.0":
+ version: 5.5.0
+ resolution: "supports-color@npm:5.5.0"
+ dependencies:
+ has-flag: "npm:^3.0.0"
+ checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05
+ languageName: node
+ linkType: hard
+
+"supports-preserve-symlinks-flag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
+ checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39
+ languageName: node
+ linkType: hard
+
+"svgo@npm:^0.7.0":
+ version: 0.7.2
+ resolution: "svgo@npm:0.7.2"
+ dependencies:
+ coa: "npm:~1.0.1"
+ colors: "npm:~1.1.2"
+ csso: "npm:~2.3.1"
+ js-yaml: "npm:~3.7.0"
+ mkdirp: "npm:~0.5.1"
+ sax: "npm:~1.2.1"
+ whet.extend: "npm:~0.9.9"
+ bin:
+ svgo: ./bin/svgo
+ checksum: 10c0/cc3314ec0227b7fd4dfcbc622b69e45ac79462a2add2c5198b863f107e4afe459e01812e668fae868b3fb02326ffbb4cd25ca7d1f2580656b14beae10eb2596c
+ languageName: node
+ linkType: hard
+
+"tapable@npm:^0.2.7":
+ version: 0.2.9
+ resolution: "tapable@npm:0.2.9"
+ checksum: 10c0/93d0e5994621a9496112fe241784d59325684b509eb74d1abd9032802639b53ba9619db0f5db6ccdab994a5279bc4ed07b638a8a25143ba6b10603e409f314fb
+ languageName: node
+ linkType: hard
+
+"tar@npm:^7.5.4":
+ version: 7.5.12
+ resolution: "tar@npm:7.5.12"
+ dependencies:
+ "@isaacs/fs-minipass": "npm:^4.0.0"
+ chownr: "npm:^3.0.0"
+ minipass: "npm:^7.1.2"
+ minizlib: "npm:^3.1.0"
+ yallist: "npm:^5.0.0"
+ checksum: 10c0/3825c5974f5fde792981f47ee9ffea021ee7f4b552b7ab95eeb98e5dfadfd5a5d5861f01fb772e2e5637a41980d3c019fd6cdad1be48b462b886abd7fe0fa17c
+ languageName: node
+ linkType: hard
+
+"through2@npm:0.6.3":
+ version: 0.6.3
+ resolution: "through2@npm:0.6.3"
+ dependencies:
+ readable-stream: "npm:>=1.0.33-1 <1.1.0-0"
+ xtend: "npm:>=4.0.0 <4.1.0-0"
+ checksum: 10c0/5c3cd5427280d42378582fcb9c31eec15ffdcba482101c565e73715f4216eaa360d7ff339c7b29ff3a39a77a8a3f90010b390329446b10e61c5b3c59b064af75
+ languageName: node
+ linkType: hard
+
+"through2@npm:^2.0.0":
+ version: 2.0.5
+ resolution: "through2@npm:2.0.5"
+ dependencies:
+ readable-stream: "npm:~2.3.6"
+ xtend: "npm:~4.0.1"
+ checksum: 10c0/cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade
+ languageName: node
+ linkType: hard
+
+"timed-out@npm:4.0.1":
+ version: 4.0.1
+ resolution: "timed-out@npm:4.0.1"
+ checksum: 10c0/86f03ffce5b80c5a066e02e59e411d3fbbfcf242b19290ba76817b4180abd1b85558489586b6022b798fb1cf26fc644c0ce0efb9c271d67ec83fada4b9542a56
+ languageName: node
+ linkType: hard
+
+"timers-browserify@npm:^2.0.4":
+ version: 2.0.12
+ resolution: "timers-browserify@npm:2.0.12"
+ dependencies:
+ setimmediate: "npm:^1.0.4"
+ checksum: 10c0/98e84db1a685bc8827c117a8bc62aac811ad56a995d07938fc7ed8cdc5bf3777bfe2d4e5da868847194e771aac3749a20f6cdd22091300fe889a76fe214a4641
+ languageName: node
+ linkType: hard
+
+"tinyglobby@npm:^0.2.12":
+ version: 0.2.15
+ resolution: "tinyglobby@npm:0.2.15"
+ dependencies:
+ fdir: "npm:^6.5.0"
+ picomatch: "npm:^4.0.3"
+ checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844
+ languageName: node
+ linkType: hard
+
+"to-arraybuffer@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "to-arraybuffer@npm:1.0.1"
+ checksum: 10c0/2460bd95524f4845a751e4f8bf9937f9f3dcd1651f104e1512868782f858f8302c1cf25bbc30794bc1b3ff65c4e135158377302f2abaff43a2d8e3c38dfe098c
+ languageName: node
+ linkType: hard
+
+"to-fast-properties@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "to-fast-properties@npm:1.0.3"
+ checksum: 10c0/78974a4f4528700d18e4c2bbf0b1fb1b19862dcc20a18dc5ed659843dea2dff4f933d167a11d3819865c1191042003aea65f7f035791af9e65d070f2e05af787
+ languageName: node
+ linkType: hard
+
+"trim-right@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "trim-right@npm:1.0.1"
+ checksum: 10c0/71989ec179c6b42a56e03db68e60190baabf39d32d4e1252fa1501c4e478398ae29d7191beffe015b9d9dc76f04f4b3a946bdb9949ad6b0c0b0c5db65f3eb672
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.3.0":
+ version: 2.4.0
+ resolution: "tslib@npm:2.4.0"
+ checksum: 10c0/eb19bda3ae545b03caea6a244b34593468e23d53b26bf8649fbc20fce43e9b21a71127fd6d2b9662c0fe48ee6ff668ead48fd00d3b88b2b716b1c12edae25b5d
+ languageName: node
+ linkType: hard
+
+"tty-browserify@npm:0.0.0":
+ version: 0.0.0
+ resolution: "tty-browserify@npm:0.0.0"
+ checksum: 10c0/c0c68206565f1372e924d5cdeeff1a0d9cc729833f1da98c03d78be8f939e5f61a107bd0ab77d1ef6a47d62bb0e48b1081fbea273acf404959e22fd3891439c5
+ languageName: node
+ linkType: hard
+
+"type@npm:^1.0.1":
+ version: 1.2.0
+ resolution: "type@npm:1.2.0"
+ checksum: 10c0/444660849aaebef8cbb9bc43b28ec2068952064cfce6a646f88db97aaa2e2d6570c5629cd79238b71ba23aa3f75146a0b96e24e198210ee0089715a6f8889bf7
+ languageName: node
+ linkType: hard
+
+"type@npm:^2.5.0":
+ version: 2.6.0
+ resolution: "type@npm:2.6.0"
+ checksum: 10c0/d08063a1c3415140d0b6fd17ede55f373cdd6c5503776693ad5ead574a06404823374d62d6233e43bc30ec22f596b790cbb8661429bed75a75dab986b506ac60
+ languageName: node
+ linkType: hard
+
+"typedarray@npm:^0.0.6":
+ version: 0.0.6
+ resolution: "typedarray@npm:0.0.6"
+ checksum: 10c0/6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412
+ languageName: node
+ linkType: hard
+
+"uglify-es@npm:^3.3.4":
+ version: 3.3.9
+ resolution: "uglify-es@npm:3.3.9"
+ dependencies:
+ commander: "npm:~2.13.0"
+ source-map: "npm:~0.6.1"
+ bin:
+ uglifyjs: bin/uglifyjs
+ checksum: 10c0/b591de4ea2c7153f446f80f2559bbabcb4ff53a17dbfd27b9bb980b31f5fb7e563bdae6e9abc07d97ecb484ac4ceba4c7a207e6854cb2aaca72e80e6090c989e
+ languageName: node
+ linkType: hard
+
+"uglifyjs-webpack-plugin@npm:1.3.0":
+ version: 1.3.0
+ resolution: "uglifyjs-webpack-plugin@npm:1.3.0"
+ dependencies:
+ cacache: "npm:^10.0.4"
+ find-cache-dir: "npm:^1.0.0"
+ schema-utils: "npm:^0.4.5"
+ serialize-javascript: "npm:^1.4.0"
+ source-map: "npm:^0.6.1"
+ uglify-es: "npm:^3.3.4"
+ webpack-sources: "npm:^1.1.0"
+ worker-farm: "npm:^1.5.2"
+ peerDependencies:
+ webpack: ^2.0.0 || ^3.0.0 || ^4.0.0
+ checksum: 10c0/d10ae2ac25f64afddff328fbaa58640450c099c53e44d66829681a5415ef72aa2563d1e5ed43e0e9c409db869575fd914293faaa39288e21da518084878de413
+ languageName: node
+ linkType: hard
+
+"uniq@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "uniq@npm:1.0.1"
+ checksum: 10c0/369dca4a07fdd8de9e48378b9d4b6861722ca71d5f496e91687916bd4b48b8cf3d6db1677be1b40eea63bc6d4728efb4b4e0bd7a89c5fd2d23e7a2cff8009c7a
+ languageName: node
+ linkType: hard
+
+"uniqs@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "uniqs@npm:2.0.0"
+ checksum: 10c0/f244b158f6b3d30ddea2092c581fe9eb746d6db889a859fd0001e4b7566767bfcc53cdf11e6286f097bb130ebad71025709f41f2e4dd38e5c2f03ec28052baab
+ languageName: node
+ linkType: hard
+
+"unique-filename@npm:^1.1.0":
+ version: 1.1.1
+ resolution: "unique-filename@npm:1.1.1"
+ dependencies:
+ unique-slug: "npm:^2.0.0"
+ checksum: 10c0/d005bdfaae6894da8407c4de2b52f38b3c58ec86e79fc2ee19939da3085374413b073478ec54e721dc8e32b102cf9e50d0481b8331abdc62202e774b789ea874
+ languageName: node
+ linkType: hard
+
+"unique-slug@npm:^2.0.0":
+ version: 2.0.2
+ resolution: "unique-slug@npm:2.0.2"
+ dependencies:
+ imurmurhash: "npm:^0.1.4"
+ checksum: 10c0/9eabc51680cf0b8b197811a48857e41f1364b25362300c1ff636c0eca5ec543a92a38786f59cf0697e62c6f814b11ecbe64e8093db71246468a1f03b80c83970
+ languageName: node
+ linkType: hard
+
+"uri-js@npm:^4.2.2":
+ version: 4.4.1
+ resolution: "uri-js@npm:4.4.1"
+ dependencies:
+ punycode: "npm:^2.1.0"
+ checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
+ languageName: node
+ linkType: hard
+
+"urijs@npm:^1.19.7":
+ version: 1.19.11
+ resolution: "urijs@npm:1.19.11"
+ checksum: 10c0/96e15eea5b41a99361d506e4d8fcc64dc43f334bd5fd34e08261467b6954b97a6b45929a8d6c79e2dc76aadfd6ca950e0f4bd7f3c0757a08978429634d07eda1
+ languageName: node
+ linkType: hard
+
+"url@npm:^0.11.0":
+ version: 0.11.0
+ resolution: "url@npm:0.11.0"
+ dependencies:
+ punycode: "npm:1.3.2"
+ querystring: "npm:0.2.0"
+ checksum: 10c0/bbe05f9f570ec5c06421c50ca63f287e61279092eed0891db69a9619323703ccd3987e6eed234c468794cf25680c599680d5c1f58d26090f1956c8e9ed8346a2
+ languageName: node
+ linkType: hard
+
+"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
+ version: 1.0.2
+ resolution: "util-deprecate@npm:1.0.2"
+ checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
+ languageName: node
+ linkType: hard
+
+"util@npm:0.10.3":
+ version: 0.10.3
+ resolution: "util@npm:0.10.3"
+ dependencies:
+ inherits: "npm:2.0.1"
+ checksum: 10c0/88bb58fec3b1f5f43dea27795f61f24b3b505bbba6f3ad6e91b32db0cd0928b2acb54ebe21603a75743c6e21a52f954cd2ffb6cddafed5a01169dd1287db3ff3
+ languageName: node
+ linkType: hard
+
+"util@npm:^0.11.0":
+ version: 0.11.1
+ resolution: "util@npm:0.11.1"
+ dependencies:
+ inherits: "npm:2.0.3"
+ checksum: 10c0/8e9d1a85e661c8a8d9883d821aedbff3f8d9c3accd85357020905386ada5653b20389fc3591901e2a0bde64f8dc86b28c3f990114aa5a38eaaf30b455fa3cdf6
+ languageName: node
+ linkType: hard
+
+"uuid@npm:3.3.2":
+ version: 3.3.2
+ resolution: "uuid@npm:3.3.2"
+ bin:
+ uuid: ./bin/uuid
+ checksum: 10c0/847bd7b389f44d05cf5341134d52803116b616c7344f12c74040effd75280b58273ea3a2bee6ba6e5405688c5edbb0696f4adcbc89e1206dc1d8650bdaece7a6
+ languageName: node
+ linkType: hard
+
+"validate-npm-package-license@npm:^3.0.1":
+ version: 3.0.4
+ resolution: "validate-npm-package-license@npm:3.0.4"
+ dependencies:
+ spdx-correct: "npm:^3.0.0"
+ spdx-expression-parse: "npm:^3.0.0"
+ checksum: 10c0/7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f
+ languageName: node
+ linkType: hard
+
+"vendors@npm:^1.0.0":
+ version: 1.0.4
+ resolution: "vendors@npm:1.0.4"
+ checksum: 10c0/a9b097f3607013a23bf447cbaff85b79b694cc23b20e81a6aea1ea9e1c59854c93f7c87abcc71b57999e050606e499d9ce18df67968823644b20f6e03d56022a
+ languageName: node
+ linkType: hard
+
+"vm-browserify@npm:^1.0.1":
+ version: 1.1.2
+ resolution: "vm-browserify@npm:1.1.2"
+ checksum: 10c0/0cc1af6e0d880deb58bc974921320c187f9e0a94f25570fca6b1bd64e798ce454ab87dfd797551b1b0cc1849307421aae0193cedf5f06bdb5680476780ee344b
+ languageName: node
+ linkType: hard
+
+"watchpack@npm:^2.3.1":
+ version: 2.4.0
+ resolution: "watchpack@npm:2.4.0"
+ dependencies:
+ glob-to-regexp: "npm:^0.4.1"
+ graceful-fs: "npm:^4.1.2"
+ checksum: 10c0/c5e35f9fb9338d31d2141d9835643c0f49b5f9c521440bb648181059e5940d93dd8ed856aa8a33fbcdd4e121dad63c7e8c15c063cf485429cd9d427be197fe62
+ languageName: node
+ linkType: hard
+
+"webpack-bundle-tracker@npm:0.0.9":
+ version: 0.0.9
+ resolution: "webpack-bundle-tracker@npm:0.0.9"
+ dependencies:
+ mkdirp: "npm:^0.5.1"
+ strip-ansi: "npm:^2.0.1"
+ checksum: 10c0/76da10a1a26deec3e3d10ac4143e9fec9434147a08572561bf00d45ba38807296ff5eb894d5595e2c4124067bcb048f9fa3622932f7f9b5c8111d2526bddb9fe
+ languageName: node
+ linkType: hard
+
+"webpack-sources@npm:^1.0.1, webpack-sources@npm:^1.1.0":
+ version: 1.4.3
+ resolution: "webpack-sources@npm:1.4.3"
+ dependencies:
+ source-list-map: "npm:^2.0.0"
+ source-map: "npm:~0.6.1"
+ checksum: 10c0/78dafb3e1e297d3f4eb6204311e8c64d28cd028f82887ba33aaf03fffc82482d8e1fdf6de25a60f4dde621d3565f4c3b1bfb350f09add8f4e54e00279ff3db5e
+ languageName: node
+ linkType: hard
+
+"webpack@npm:3.12.0":
+ version: 3.12.0
+ resolution: "webpack@npm:3.12.0"
+ dependencies:
+ acorn: "npm:^5.0.0"
+ acorn-dynamic-import: "npm:^2.0.0"
+ ajv: "npm:^6.1.0"
+ ajv-keywords: "npm:^3.1.0"
+ async: "npm:^2.1.2"
+ enhanced-resolve: "npm:^3.4.0"
+ escope: "npm:^3.6.0"
+ interpret: "npm:^1.0.0"
+ json-loader: "npm:^0.5.4"
+ json5: "npm:^0.5.1"
+ loader-runner: "npm:^2.3.0"
+ loader-utils: "npm:^1.1.0"
+ memory-fs: "npm:~0.4.1"
+ mkdirp: "npm:~0.5.0"
+ node-libs-browser: "npm:^2.0.0"
+ source-map: "npm:^0.5.3"
+ supports-color: "npm:^4.2.1"
+ tapable: "npm:^0.2.7"
+ uglifyjs-webpack-plugin: "npm:^0.4.6"
+ watchpack: "npm:^1.4.0"
+ webpack-sources: "npm:^1.0.1"
+ yargs: "npm:^8.0.2"
+ bin:
+ webpack: ./bin/webpack.js
+ checksum: 10c0/64051e33b94d641ea6ed85e6d33d0964ff27ce28f4dd9a989dee39ce98b67fadd057fecd2bfdf49c8fe8909c0c74e415f01381e7a105f926968b1a6eb92f5220
+ languageName: node
+ linkType: hard
+
+"whet.extend@npm:~0.9.9":
+ version: 0.9.9
+ resolution: "whet.extend@npm:0.9.9"
+ checksum: 10c0/75c48bfe0cdd36b7c510286d591b34a1a6810ba914b0c8f23788c2a17f4592706debaf1f1f667c7f46f1a657c4f1d5f2889ce234b570827acbb29bf28799ce7f
+ languageName: node
+ linkType: hard
+
+"which-module@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "which-module@npm:2.0.0"
+ checksum: 10c0/946ffdbcd6f0cf517638f8f2319c6d51e528c3b41bc2c0f5dc3dc46047347abd7326aea5cdf5def0a8b32bdca313ac87a32ce5a76b943fe1ca876c4557e6b716
+ languageName: node
+ linkType: hard
+
+"which@npm:^1.2.9":
+ version: 1.3.1
+ resolution: "which@npm:1.3.1"
+ dependencies:
+ isexe: "npm:^2.0.0"
+ bin:
+ which: ./bin/which
+ checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59
+ languageName: node
+ linkType: hard
+
+"which@npm:^6.0.0":
+ version: 6.0.1
+ resolution: "which@npm:6.0.1"
+ dependencies:
+ isexe: "npm:^4.0.0"
+ bin:
+ node-which: bin/which.js
+ checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5
+ languageName: node
+ linkType: hard
+
+"worker-farm@npm:^1.5.2":
+ version: 1.7.0
+ resolution: "worker-farm@npm:1.7.0"
+ dependencies:
+ errno: "npm:~0.1.7"
+ checksum: 10c0/069a032f9198a07273a7608dc0c23d7288c1c25256b66008e1ae95838cda6fa2c7aefb3b7ba760f975c8d18120ca54eb193afb66d7237b2a05e5da12c1c961f7
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^2.0.0":
+ version: 2.1.0
+ resolution: "wrap-ansi@npm:2.1.0"
+ dependencies:
+ string-width: "npm:^1.0.1"
+ strip-ansi: "npm:^3.0.1"
+ checksum: 10c0/1a47367eef192fc9ecaf00238bad5de8987c3368082b619ab36c5e2d6d7b0a2aef95a2ca65840be598c56ced5090a3ba487956c7aee0cac7c45017502fa980fb
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0
+ languageName: node
+ linkType: hard
+
+"xtend@npm:>=4.0.0 <4.1.0-0, xtend@npm:^4.0.0, xtend@npm:~4.0.1":
+ version: 4.0.2
+ resolution: "xtend@npm:4.0.2"
+ checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^3.2.1":
+ version: 3.2.2
+ resolution: "y18n@npm:3.2.2"
+ checksum: 10c0/08dc1880f6f766057ed25cd61ef0c7dab3db93639db9a7487a84f75dac7a349dface8dff8d1d8b7bdf50969fcd69ab858ab26b06968b4e4b12ee60d195233c46
+ languageName: node
+ linkType: hard
+
+"y18n@npm:^4.0.0":
+ version: 4.0.3
+ resolution: "y18n@npm:4.0.3"
+ checksum: 10c0/308a2efd7cc296ab2c0f3b9284fd4827be01cfeb647b3ba18230e3a416eb1bc887ac050de9f8c4fd9e7856b2e8246e05d190b53c96c5ad8d8cb56dffb6f81024
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "yallist@npm:2.1.2"
+ checksum: 10c0/0b9e25aa00adf19e01d2bcd4b208aee2b0db643d9927131797b7af5ff69480fc80f1c3db738cbf3946f0bddf39d8f2d0a5709c644fd42d4aa3a4e6e786c087b5
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "yallist@npm:5.0.0"
+ checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416
+ languageName: node
+ linkType: hard
+
+"yargs-parser@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "yargs-parser@npm:7.0.0"
+ dependencies:
+ camelcase: "npm:^4.1.0"
+ checksum: 10c0/6fde2df522dd071cf76308fe4e37fd2fb8eae3eb1fb6c6759c2d448264c8451162649eb8558ac8d83aff79278cabfddc17ecba3e1a0d0fe2e406cf4e1bc95b0d
+ languageName: node
+ linkType: hard
+
+"yargs@npm:^8.0.2":
+ version: 8.0.2
+ resolution: "yargs@npm:8.0.2"
+ dependencies:
+ camelcase: "npm:^4.1.0"
+ cliui: "npm:^3.2.0"
+ decamelize: "npm:^1.1.1"
+ get-caller-file: "npm:^1.0.1"
+ os-locale: "npm:^2.0.0"
+ read-pkg-up: "npm:^2.0.0"
+ require-directory: "npm:^2.1.1"
+ require-main-filename: "npm:^1.0.1"
+ set-blocking: "npm:^2.0.0"
+ string-width: "npm:^2.0.0"
+ which-module: "npm:^2.0.0"
+ y18n: "npm:^3.2.1"
+ yargs-parser: "npm:^7.0.0"
+ checksum: 10c0/70e4ed99e3f1e8a034d0b600773db9fb44e03ec88cfa7125fc65a965428051ad59e77c074afa1afcbe3ec34436d3a6e7ba18b3ec62b4e5f59f30606df791b125
+ languageName: node
+ linkType: hard
From 2ea532e0b5e7566dabb82314bf0a65805fef18d8 Mon Sep 17 00:00:00 2001
From: Yuhuai Liu
Date: Mon, 23 Mar 2026 13:10:04 -0400
Subject: [PATCH 29/31] yarn with 1.22.19 (#11648)
---
admin/yarn.lock | 8603 ++++++++++++++++++++---------------------------
yarn.lock | 7878 ++++++++++++++++++-------------------------
2 files changed, 6941 insertions(+), 9540 deletions(-)
diff --git a/admin/yarn.lock b/admin/yarn.lock
index 7a99e1b573b..b253aa5b5a0 100644
--- a/admin/yarn.lock
+++ b/admin/yarn.lock
@@ -1,4965 +1,3638 @@
-# This file is generated by running "yarn install" inside your project.
-# Manual changes might be lost - proceed with caution!
-
-__metadata:
- version: 8
- cacheKey: 10c0
-
-"@gar/promise-retry@npm:^1.0.0":
- version: 1.0.3
- resolution: "@gar/promise-retry@npm:1.0.3"
- checksum: 10c0/885b02c8b0d75b2d215da25f3b639158c4fbe8fefe0d79163304534b9a6d0710db4b7699f7cd3cc1a730792bff04cbe19f4850a62d3e105a663eaeec88f38332
- languageName: node
- linkType: hard
-
-"@isaacs/fs-minipass@npm:^4.0.0":
- version: 4.0.1
- resolution: "@isaacs/fs-minipass@npm:4.0.1"
- dependencies:
- minipass: "npm:^7.0.4"
- checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2
- languageName: node
- linkType: hard
-
-"@npmcli/agent@npm:^4.0.0":
- version: 4.0.0
- resolution: "@npmcli/agent@npm:4.0.0"
- dependencies:
- agent-base: "npm:^7.1.0"
- http-proxy-agent: "npm:^7.0.0"
- https-proxy-agent: "npm:^7.0.1"
- lru-cache: "npm:^11.2.1"
- socks-proxy-agent: "npm:^8.0.3"
- checksum: 10c0/f7b5ce0f3dd42c3f8c6546e8433573d8049f67ef11ec22aa4704bc41483122f68bf97752e06302c455ead667af5cb753e6a09bff06632bc465c1cfd4c4b75a53
- languageName: node
- linkType: hard
-
-"@npmcli/fs@npm:^5.0.0":
- version: 5.0.0
- resolution: "@npmcli/fs@npm:5.0.0"
- dependencies:
- semver: "npm:^7.3.5"
- checksum: 10c0/26e376d780f60ff16e874a0ac9bc3399186846baae0b6e1352286385ac134d900cc5dafaded77f38d77f86898fc923ae1cee9d7399f0275b1aa24878915d722b
- languageName: node
- linkType: hard
-
-"@npmcli/redact@npm:^4.0.0":
- version: 4.0.0
- resolution: "@npmcli/redact@npm:4.0.0"
- checksum: 10c0/a1e9ba9c70a6b40e175bda2c3dd8cfdaf096e6b7f7a132c855c083c8dfe545c3237cd56702e2e6627a580b1d63373599d49a1192c4078a85bf47bbde824df31c
- languageName: node
- linkType: hard
-
-"JSON2@npm:^0.1.0":
- version: 0.1.0
- resolution: "JSON2@npm:0.1.0"
- checksum: 10c0/7c8b82a50ff93fd28bf545eaad64c9237fea6df75dab779d2845fdd165806b1534bc420614807ec3f3d6c8697eb545b967daaea7fe1bd69f4df3211fa7635040
- languageName: node
- linkType: hard
-
-"OSF_Admin@workspace:.":
- version: 0.0.0-use.local
- resolution: "OSF_Admin@workspace:."
- dependencies:
- babel-core: "npm:^6.0.0"
- babel-loader: "npm:^6.4.1"
- bootstrap-colorpicker: "npm:^2.5.2"
- bootstrap-tagsinput: "npm:^0.7.1"
- bower: "npm:^1.3.12"
- font-awesome: "npm:^4.5.0"
- font-awesome-webpack: "npm:0.0.5-beta.2"
- jquery-datetimepicker: "npm:^2.5.21"
- json-loader: "npm:^0.5.1"
- keen-js: "npm:^3.0.0"
- knockout: "npm:3.5.1"
- less: "npm:^4.1.2"
- less-loader: "npm:^10.2.0"
- raven: "npm:^2.6.4"
- simple-statistics: "npm:7.7.3"
- urijs: "npm:^1.19.7"
- webpack: "npm:3.12.0"
- webpack-bundle-tracker: "npm:0.0.9"
- languageName: unknown
- linkType: soft
-
-"abbrev@npm:^4.0.0":
- version: 4.0.0
- resolution: "abbrev@npm:4.0.0"
- checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5
- languageName: node
- linkType: hard
-
-"acorn-dynamic-import@npm:^2.0.0":
- version: 2.0.2
- resolution: "acorn-dynamic-import@npm:2.0.2"
- dependencies:
- acorn: "npm:^4.0.3"
- checksum: 10c0/5dcac220ae8ddc8f8439402691c6da21f4e44f3a91b5645884cd2a5f03c8e39a40006a189de9ccd50fdfcdeda6c52724db45cd2100e56e9e9656d7b19e2bfd22
- languageName: node
- linkType: hard
-
-"acorn@npm:^4.0.3":
- version: 4.0.13
- resolution: "acorn@npm:4.0.13"
- bin:
- acorn: ./bin/acorn
- checksum: 10c0/ed73e42711474f80d7f2f94d68109e83a40d48c9596f0bcfd1a4c64e086636495259432421357524d04bfe317eed6de5b6202d2ab30f1b1c26bca12684979aa5
- languageName: node
- linkType: hard
-
-"acorn@npm:^5.0.0":
- version: 5.7.4
- resolution: "acorn@npm:5.7.4"
- bin:
- acorn: bin/acorn
- checksum: 10c0/b29e61d48fa31ae69d38d74bb213b77b32de6317f125890a6cb76b44d173adccbcd3a07fc9a86acdfe8ab0a80f42b5ec6290df8b7944e0506504ac3b716232bd
- languageName: node
- linkType: hard
-
-"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2":
- version: 7.1.4
- resolution: "agent-base@npm:7.1.4"
- checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe
- languageName: node
- linkType: hard
-
-"ajv-errors@npm:^1.0.0":
- version: 1.0.1
- resolution: "ajv-errors@npm:1.0.1"
- peerDependencies:
- ajv: ">=5.0.0"
- checksum: 10c0/de2d6e8100c8707ea063ee4785d53adf599b457c0d4f72c3592244d67ad16448a6d35f7ce45f12bdd2819939447c876e8ef2f1c0800896d7f2aa25c3838acdf1
- languageName: node
- linkType: hard
-
-"ajv-keywords@npm:^3.1.0":
- version: 3.5.2
- resolution: "ajv-keywords@npm:3.5.2"
- peerDependencies:
- ajv: ^6.9.1
- checksum: 10c0/0c57a47cbd656e8cdfd99d7c2264de5868918ffa207c8d7a72a7f63379d4333254b2ba03d69e3c035e996a3fd3eb6d5725d7a1597cca10694296e32510546360
- languageName: node
- linkType: hard
-
-"ajv@npm:^6.1.0":
- version: 6.12.6
- resolution: "ajv@npm:6.12.6"
- dependencies:
- fast-deep-equal: "npm:^3.1.1"
- fast-json-stable-stringify: "npm:^2.0.0"
- json-schema-traverse: "npm:^0.4.1"
- uri-js: "npm:^4.2.2"
- checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
- languageName: node
- linkType: hard
-
-"alphanum-sort@npm:^1.0.1, alphanum-sort@npm:^1.0.2":
- version: 1.0.2
- resolution: "alphanum-sort@npm:1.0.2"
- checksum: 10c0/2944e7ae4d36328a2df071017c01cd1d06ef6a5d87c8fbbeffd9075d42f4da48051bde79a5e3d863b98f37778c76e8eebd4353c1e7bbba2480382096953ec2b8
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^1.0.0":
- version: 1.1.1
- resolution: "ansi-regex@npm:1.1.1"
- checksum: 10c0/182450558e72f6d285fad08eede78f8b4b57d64e5b63c1ef0b1c2274f57daccb5b1c73900e7ee5306c97916a5d9c20e3dee3bdbd4d816d368320151cd17b5a4a
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^2.0.0":
- version: 2.1.1
- resolution: "ansi-regex@npm:2.1.1"
- checksum: 10c0/78cebaf50bce2cb96341a7230adf28d804611da3ce6bf338efa7b72f06cc6ff648e29f80cd95e582617ba58d5fdbec38abfeed3500a98bce8381a9daec7c548b
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^3.0.0":
- version: 3.0.1
- resolution: "ansi-regex@npm:3.0.1"
- checksum: 10c0/d108a7498b8568caf4a46eea4f1784ab4e0dfb2e3f3938c697dee21443d622d765c958f2b7e2b9f6b9e55e2e2af0584eaa9915d51782b89a841c28e744e7a167
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^2.2.1":
- version: 2.2.1
- resolution: "ansi-styles@npm:2.2.1"
- checksum: 10c0/7c68aed4f1857389e7a12f85537ea5b40d832656babbf511cc7ecd9efc52889b9c3e5653a71a6aade783c3c5e0aa223ad4ff8e83c27ac8a666514e6c79068cab
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^3.2.1":
- version: 3.2.1
- resolution: "ansi-styles@npm:3.2.1"
- dependencies:
- color-convert: "npm:^1.9.0"
- checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b
- languageName: node
- linkType: hard
-
-"aproba@npm:^1.1.1":
- version: 1.2.0
- resolution: "aproba@npm:1.2.0"
- checksum: 10c0/2d34f008c9edfa991f42fe4b667d541d38a474a39ae0e24805350486d76744cd91ee45313283c1d39a055b14026dd0fc4d0cbfc13f210855d59d7e8b5a61dc51
- languageName: node
- linkType: hard
-
-"argparse@npm:^1.0.7":
- version: 1.0.10
- resolution: "argparse@npm:1.0.10"
- dependencies:
- sprintf-js: "npm:~1.0.2"
- checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de
- languageName: node
- linkType: hard
-
-"asn1.js@npm:^5.2.0":
- version: 5.4.1
- resolution: "asn1.js@npm:5.4.1"
- dependencies:
- bn.js: "npm:^4.0.0"
- inherits: "npm:^2.0.1"
- minimalistic-assert: "npm:^1.0.0"
- safer-buffer: "npm:^2.1.0"
- checksum: 10c0/b577232fa6069cc52bb128e564002c62b2b1fe47f7137bdcd709c0b8495aa79cee0f8cc458a831b2d8675900eea0d05781b006be5e1aa4f0ae3577a73ec20324
- languageName: node
- linkType: hard
-
-"assert@npm:^1.1.1":
- version: 1.5.0
- resolution: "assert@npm:1.5.0"
- dependencies:
- object-assign: "npm:^4.1.1"
- util: "npm:0.10.3"
- checksum: 10c0/188da37d63be479a3b14657c01080db90cdf7fa004e346af916cf8beebcaffb11359c596d0c9c3cd8174c9125a6225796ef1ce533487edc97f8ce3b18c1ab590
- languageName: node
- linkType: hard
-
-"async@npm:^1.4.0":
- version: 1.5.2
- resolution: "async@npm:1.5.2"
- checksum: 10c0/9ee84592c393aad1047d1223004317ecc65a9a3f76101e0f4614a0818eac962e666510353400a3c9ea158df540579a293f486f3578e918c5e90a0f5ed52e8aea
- languageName: node
- linkType: hard
-
-"async@npm:^2.1.2":
- version: 2.6.4
- resolution: "async@npm:2.6.4"
- dependencies:
- lodash: "npm:^4.17.14"
- checksum: 10c0/0ebb3273ef96513389520adc88e0d3c45e523d03653cc9b66f5c46f4239444294899bfd13d2b569e7dbfde7da2235c35cf5fd3ece9524f935d41bbe4efccdad0
- languageName: node
- linkType: hard
-
-"autoprefixer@npm:^6.3.1":
- version: 6.7.7
- resolution: "autoprefixer@npm:6.7.7"
- dependencies:
- browserslist: "npm:^1.7.6"
- caniuse-db: "npm:^1.0.30000634"
- normalize-range: "npm:^0.1.2"
- num2fraction: "npm:^1.2.2"
- postcss: "npm:^5.2.16"
- postcss-value-parser: "npm:^3.2.3"
- checksum: 10c0/bdcf8e53eacef1feb54940bbe33fcb67e12eb07d5572d5f0fbadb638b84be15ca91b3a343763962a2ce6ed12ba611e039c62e871d12e29b956b8f2b189c263ae
- languageName: node
- linkType: hard
-
-"babel-code-frame@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-code-frame@npm:6.26.0"
- dependencies:
- chalk: "npm:^1.1.3"
- esutils: "npm:^2.0.2"
- js-tokens: "npm:^3.0.2"
- checksum: 10c0/7fecc128e87578cf1b96e78d2b25e0b260e202bdbbfcefa2eac23b7f8b7b2f7bc9276a14599cde14403cc798cc2a38e428e2cab50b77658ab49228b09ae92473
- languageName: node
- linkType: hard
-
-"babel-core@npm:^6.0.0, babel-core@npm:^6.26.0":
- version: 6.26.3
- resolution: "babel-core@npm:6.26.3"
- dependencies:
- babel-code-frame: "npm:^6.26.0"
- babel-generator: "npm:^6.26.0"
- babel-helpers: "npm:^6.24.1"
- babel-messages: "npm:^6.23.0"
- babel-register: "npm:^6.26.0"
- babel-runtime: "npm:^6.26.0"
- babel-template: "npm:^6.26.0"
- babel-traverse: "npm:^6.26.0"
- babel-types: "npm:^6.26.0"
- babylon: "npm:^6.18.0"
- convert-source-map: "npm:^1.5.1"
- debug: "npm:^2.6.9"
- json5: "npm:^0.5.1"
- lodash: "npm:^4.17.4"
- minimatch: "npm:^3.0.4"
- path-is-absolute: "npm:^1.0.1"
- private: "npm:^0.1.8"
- slash: "npm:^1.0.0"
- source-map: "npm:^0.5.7"
- checksum: 10c0/10292649779f8c33d1908f5671c92ca9df036c9e1b9f35f97e7f62c9da9e3a146ee069f94fc401283ce129ba980f34a30339f137c512f3e62ddd354653b2da0e
- languageName: node
- linkType: hard
-
-"babel-generator@npm:^6.26.0":
- version: 6.26.1
- resolution: "babel-generator@npm:6.26.1"
- dependencies:
- babel-messages: "npm:^6.23.0"
- babel-runtime: "npm:^6.26.0"
- babel-types: "npm:^6.26.0"
- detect-indent: "npm:^4.0.0"
- jsesc: "npm:^1.3.0"
- lodash: "npm:^4.17.4"
- source-map: "npm:^0.5.7"
- trim-right: "npm:^1.0.1"
- checksum: 10c0/d5f9d20c6f7d8644dc41ee57d48c98a78d24d5b74dc305cc518d6e0872d4fa73c5fd8d47ec00e3515858eaf3c3e512a703cdbc184ff0061af5979bc206618555
- languageName: node
- linkType: hard
-
-"babel-helpers@npm:^6.24.1":
- version: 6.24.1
- resolution: "babel-helpers@npm:6.24.1"
- dependencies:
- babel-runtime: "npm:^6.22.0"
- babel-template: "npm:^6.24.1"
- checksum: 10c0/bbd082e42adaa9c584242515e8c5b1e861108e03ed9517f0b600189e1c1041376ab6a15c71265a2cc095c5af4bd15cfc97158e30ce95a81cbfcea1bfd81ce3e6
- languageName: node
- linkType: hard
-
-"babel-loader@npm:^6.4.1":
- version: 6.4.1
- resolution: "babel-loader@npm:6.4.1"
- dependencies:
- find-cache-dir: "npm:^0.1.1"
- loader-utils: "npm:^0.2.16"
- mkdirp: "npm:^0.5.1"
- object-assign: "npm:^4.0.1"
- peerDependencies:
- babel-core: ^6.0.0
- webpack: 1 || 2 || ^2.1.0-beta || ^2.2.0-rc
- checksum: 10c0/6f7395e9433eddfcec39b6ad452b21d4c68798a980e62906e3b2b11926e2c49b949d9ffe97a2ef88cd6843f89ba6110f5634a3b9fc27566d6505dc9496f0e4a5
- languageName: node
- linkType: hard
-
-"babel-messages@npm:^6.23.0":
- version: 6.23.0
- resolution: "babel-messages@npm:6.23.0"
- dependencies:
- babel-runtime: "npm:^6.22.0"
- checksum: 10c0/d4fd6414ee5bb1aa0dad6d8d2c4ffaa66331ec5a507959e11f56b19a683566e2c1e7a4d0b16cfef58ea4cc07db8acf5ff3dc8b25c585407cff2e09ac60553401
- languageName: node
- linkType: hard
-
-"babel-register@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-register@npm:6.26.0"
- dependencies:
- babel-core: "npm:^6.26.0"
- babel-runtime: "npm:^6.26.0"
- core-js: "npm:^2.5.0"
- home-or-tmp: "npm:^2.0.0"
- lodash: "npm:^4.17.4"
- mkdirp: "npm:^0.5.1"
- source-map-support: "npm:^0.4.15"
- checksum: 10c0/4ffbc1bfa60a817fb306c98d1a6d10852b0130a614dae3a91e45f391dbebdc95f428d95b489943d85724e046527d2aac3bafb74d3c24f62143492b5f606e2e04
- languageName: node
- linkType: hard
-
-"babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-runtime@npm:6.26.0"
- dependencies:
- core-js: "npm:^2.4.0"
- regenerator-runtime: "npm:^0.11.0"
- checksum: 10c0/caa752004936b1463765ed3199c52f6a55d0613b9bed108743d6f13ca532b821d4ea9decc4be1b583193164462b1e3e7eefdfa36b15c72e7daac58dd72c1772f
- languageName: node
- linkType: hard
-
-"babel-template@npm:^6.24.1, babel-template@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-template@npm:6.26.0"
- dependencies:
- babel-runtime: "npm:^6.26.0"
- babel-traverse: "npm:^6.26.0"
- babel-types: "npm:^6.26.0"
- babylon: "npm:^6.18.0"
- lodash: "npm:^4.17.4"
- checksum: 10c0/67bc875f19d289dabb1830a1cde93d7f1e187e4599dac9b1d16392fd47f1d12b53fea902dacf7be360acd09807d440faafe0f7907758c13275b1a14d100b68e4
- languageName: node
- linkType: hard
-
-"babel-traverse@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-traverse@npm:6.26.0"
- dependencies:
- babel-code-frame: "npm:^6.26.0"
- babel-messages: "npm:^6.23.0"
- babel-runtime: "npm:^6.26.0"
- babel-types: "npm:^6.26.0"
- babylon: "npm:^6.18.0"
- debug: "npm:^2.6.8"
- globals: "npm:^9.18.0"
- invariant: "npm:^2.2.2"
- lodash: "npm:^4.17.4"
- checksum: 10c0/dca71b23d07e3c00833c3222d7998202e687105f461048107afeb2b4a7aa2507efab1bd5a6e3e724724ebb9b1e0b14f0113621e1d8c25b4ffdb829392b54b8de
- languageName: node
- linkType: hard
-
-"babel-types@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-types@npm:6.26.0"
- dependencies:
- babel-runtime: "npm:^6.26.0"
- esutils: "npm:^2.0.2"
- lodash: "npm:^4.17.4"
- to-fast-properties: "npm:^1.0.3"
- checksum: 10c0/cabe371de1b32c4bbb1fd4ed0fe8a8726d42e5ad7d5cefb83cdae6de0f0a152dce591e4026719743fdf3aa45f84fea2c8851fb822fbe29b0c78a1f0094b67418
- languageName: node
- linkType: hard
-
-"babylon@npm:^6.18.0":
- version: 6.18.0
- resolution: "babylon@npm:6.18.0"
- bin:
- babylon: ./bin/babylon.js
- checksum: 10c0/9b1bf946e16782deadb1f5414c1269efa6044eb1e97a3de2051f09a3f2a54e97be3542d4242b28d23de0ef67816f519d38ce1ec3ddb7be306131c39a60e5a667
- languageName: node
- linkType: hard
-
-"balanced-match@npm:^0.4.2":
- version: 0.4.2
- resolution: "balanced-match@npm:0.4.2"
- checksum: 10c0/cd4e15add0f4ef14c4fe960d9f4a343052d7c0f7939e1b5e54c8f24417a501bde1f17e191b676daebd16ae316955c918f93b8ed0414bb03d038dd0159c9998e5
- languageName: node
- linkType: hard
-
-"balanced-match@npm:^1.0.0":
- version: 1.0.2
- resolution: "balanced-match@npm:1.0.2"
- checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
- languageName: node
- linkType: hard
-
-"balanced-match@npm:^4.0.2":
- version: 4.0.4
- resolution: "balanced-match@npm:4.0.4"
- checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b
- languageName: node
- linkType: hard
-
-"base64-js@npm:^1.0.2":
- version: 1.5.1
- resolution: "base64-js@npm:1.5.1"
- checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf
- languageName: node
- linkType: hard
-
-"big.js@npm:^3.1.3":
- version: 3.2.0
- resolution: "big.js@npm:3.2.0"
- checksum: 10c0/de0b8e275171060a37846b521e8ebfe077c650532306c2470474da6720feb04351cc8588ef26088756b224923782946ae67e817b90122cc85692bbda7ccd2d0d
- languageName: node
- linkType: hard
-
-"big.js@npm:^5.2.2":
- version: 5.2.2
- resolution: "big.js@npm:5.2.2"
- checksum: 10c0/230520f1ff920b2d2ce3e372d77a33faa4fa60d802fe01ca4ffbc321ee06023fe9a741ac02793ee778040a16b7e497f7d60c504d1c402b8fdab6f03bb785a25f
- languageName: node
- linkType: hard
-
-"bluebird@npm:^3.5.1":
- version: 3.7.2
- resolution: "bluebird@npm:3.7.2"
- checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2
- languageName: node
- linkType: hard
-
-"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9":
- version: 4.12.0
- resolution: "bn.js@npm:4.12.0"
- checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21
- languageName: node
- linkType: hard
-
-"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1":
- version: 5.2.1
- resolution: "bn.js@npm:5.2.1"
- checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa
- languageName: node
- linkType: hard
-
-"bootstrap-colorpicker@npm:^2.5.2":
- version: 2.5.3
- resolution: "bootstrap-colorpicker@npm:2.5.3"
- dependencies:
- jquery: "npm:>=1.10"
- checksum: 10c0/c150d2b0be75e859cd20957bcd0f75e0d0881553274ccd23783db9f9a844b3fd9ddf048bd831b0a59cf6910c1c2c861198718ada2605a5dd3e3a6076fc77e9ec
- languageName: node
- linkType: hard
-
-"bootstrap-tagsinput@npm:^0.7.1":
- version: 0.7.1
- resolution: "bootstrap-tagsinput@npm:0.7.1"
- checksum: 10c0/3e50b7146c8ea9a704fefe742829099a4bc4f27db723177838f1a796024a4b3a6c03dd269a12369e2e8a4d847284e1f2c058c3398fddbbe80da526946e0ac7f1
- languageName: node
- linkType: hard
-
-"bower@npm:^1.3.12":
- version: 1.8.14
- resolution: "bower@npm:1.8.14"
- bin:
- bower: bin/bower
- checksum: 10c0/dbf71f95eaf34785f98793b8dfa2c1eba0b18b9e94b5c052f2019cfbe6135c041f106901c3e96fdc1d83b486472a8da8aea245b1490fe0ea4211f13ea8dd3463
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^1.1.7":
- version: 1.1.11
- resolution: "brace-expansion@npm:1.1.11"
- dependencies:
- balanced-match: "npm:^1.0.0"
- concat-map: "npm:0.0.1"
- checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^5.0.2":
- version: 5.0.4
- resolution: "brace-expansion@npm:5.0.4"
- dependencies:
- balanced-match: "npm:^4.0.2"
- checksum: 10c0/359cbcfa80b2eb914ca1f3440e92313fbfe7919ee6b274c35db55bec555aded69dac5ee78f102cec90c35f98c20fa43d10936d0cd9978158823c249257e1643a
- languageName: node
- linkType: hard
-
-"brorand@npm:^1.0.1, brorand@npm:^1.1.0":
- version: 1.1.0
- resolution: "brorand@npm:1.1.0"
- checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571
- languageName: node
- linkType: hard
-
-"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4":
- version: 1.2.0
- resolution: "browserify-aes@npm:1.2.0"
- dependencies:
- buffer-xor: "npm:^1.0.3"
- cipher-base: "npm:^1.0.0"
- create-hash: "npm:^1.1.0"
- evp_bytestokey: "npm:^1.0.3"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18
- languageName: node
- linkType: hard
-
-"browserify-cipher@npm:^1.0.0":
- version: 1.0.1
- resolution: "browserify-cipher@npm:1.0.1"
- dependencies:
- browserify-aes: "npm:^1.0.4"
- browserify-des: "npm:^1.0.0"
- evp_bytestokey: "npm:^1.0.0"
- checksum: 10c0/aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d
- languageName: node
- linkType: hard
-
-"browserify-des@npm:^1.0.0":
- version: 1.0.2
- resolution: "browserify-des@npm:1.0.2"
- dependencies:
- cipher-base: "npm:^1.0.1"
- des.js: "npm:^1.0.0"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10c0/943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d
- languageName: node
- linkType: hard
-
-"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.0.1":
- version: 4.1.0
- resolution: "browserify-rsa@npm:4.1.0"
- dependencies:
- bn.js: "npm:^5.0.0"
- randombytes: "npm:^2.0.1"
- checksum: 10c0/fb2b5a8279d8a567a28d8ee03fb62e448428a906bab5c3dc9e9c3253ace551b5ea271db15e566ac78f1b1d71b243559031446604168b9235c351a32cae99d02a
- languageName: node
- linkType: hard
-
-"browserify-sign@npm:^4.0.0":
- version: 4.2.1
- resolution: "browserify-sign@npm:4.2.1"
- dependencies:
- bn.js: "npm:^5.1.1"
- browserify-rsa: "npm:^4.0.1"
- create-hash: "npm:^1.2.0"
- create-hmac: "npm:^1.1.7"
- elliptic: "npm:^6.5.3"
- inherits: "npm:^2.0.4"
- parse-asn1: "npm:^5.1.5"
- readable-stream: "npm:^3.6.0"
- safe-buffer: "npm:^5.2.0"
- checksum: 10c0/8f00a370e3e97060977dc58e51251d3ca398ee73523994a44430321e8de2c7d85395362d59014b2b07efe4190f369baee2ff28eb8f405ff4660b776651cf052d
- languageName: node
- linkType: hard
-
-"browserify-versionify@npm:1.0.3":
- version: 1.0.3
- resolution: "browserify-versionify@npm:1.0.3"
- dependencies:
- find-root: "npm:^0.1.1"
- through2: "npm:0.6.3"
- checksum: 10c0/ffe542d32e2536bcc735d382f3f8b9ef0870aa730c5330ff33fe48e182cb4a2b8d7afe6718b2dbefa02a0edbc0293f7d4e34c2b889371d4a08e6c8f28c7d15af
- languageName: node
- linkType: hard
-
-"browserify-zlib@npm:^0.2.0":
- version: 0.2.0
- resolution: "browserify-zlib@npm:0.2.0"
- dependencies:
- pako: "npm:~1.0.5"
- checksum: 10c0/9ab10b6dc732c6c5ec8ebcbe5cb7fe1467f97402c9b2140113f47b5f187b9438f93a8e065d8baf8b929323c18324fbf1105af479ee86d9d36cab7d7ef3424ad9
- languageName: node
- linkType: hard
-
-"browserslist@npm:^1.3.6, browserslist@npm:^1.5.2, browserslist@npm:^1.7.6":
- version: 1.7.7
- resolution: "browserslist@npm:1.7.7"
- dependencies:
- caniuse-db: "npm:^1.0.30000639"
- electron-to-chromium: "npm:^1.2.7"
- bin:
- browserslist: ./cli.js
- checksum: 10c0/1caae2f00800711b3c18a834b84ab3109b955836f23e00a7eb0227e54c22a101b95a9606c1347a04ec882524a724ba57691f856a7aba3fde6dd197b867b8cd41
- languageName: node
- linkType: hard
-
-"buffer-from@npm:^1.0.0":
- version: 1.1.2
- resolution: "buffer-from@npm:1.1.2"
- checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34
- languageName: node
- linkType: hard
-
-"buffer-xor@npm:^1.0.3":
- version: 1.0.3
- resolution: "buffer-xor@npm:1.0.3"
- checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c
- languageName: node
- linkType: hard
-
-"buffer@npm:^4.3.0":
- version: 4.9.2
- resolution: "buffer@npm:4.9.2"
- dependencies:
- base64-js: "npm:^1.0.2"
- ieee754: "npm:^1.1.4"
- isarray: "npm:^1.0.0"
- checksum: 10c0/dc443d7e7caab23816b58aacdde710b72f525ad6eecd7d738fcaa29f6d6c12e8d9c13fed7219fd502be51ecf0615f5c077d4bdc6f9308dde2e53f8e5393c5b21
- languageName: node
- linkType: hard
-
-"builtin-status-codes@npm:^3.0.0":
- version: 3.0.0
- resolution: "builtin-status-codes@npm:3.0.0"
- checksum: 10c0/c37bbba11a34c4431e56bd681b175512e99147defbe2358318d8152b3a01df7bf25e0305873947e5b350073d5ef41a364a22b37e48f1fb6d2fe6d5286a0f348c
- languageName: node
- linkType: hard
-
-"cacache@npm:^10.0.4":
- version: 10.0.4
- resolution: "cacache@npm:10.0.4"
- dependencies:
- bluebird: "npm:^3.5.1"
- chownr: "npm:^1.0.1"
- glob: "npm:^7.1.2"
- graceful-fs: "npm:^4.1.11"
- lru-cache: "npm:^4.1.1"
- mississippi: "npm:^2.0.0"
- mkdirp: "npm:^0.5.1"
- move-concurrently: "npm:^1.0.1"
- promise-inflight: "npm:^1.0.1"
- rimraf: "npm:^2.6.2"
- ssri: "npm:^5.2.4"
- unique-filename: "npm:^1.1.0"
- y18n: "npm:^4.0.0"
- checksum: 10c0/4c82d037ecc0ef87f58f96ecd3662bdb24aaedd18fa96d749363bc20dee3ac9f623e2c41e09bf894a3f62de1612a8cea8ddae22563a91ce2ef5cb69fe4cf54dd
- languageName: node
- linkType: hard
-
-"cacache@npm:^20.0.1":
- version: 20.0.4
- resolution: "cacache@npm:20.0.4"
- dependencies:
- "@npmcli/fs": "npm:^5.0.0"
- fs-minipass: "npm:^3.0.0"
- glob: "npm:^13.0.0"
- lru-cache: "npm:^11.1.0"
- minipass: "npm:^7.0.3"
- minipass-collect: "npm:^2.0.1"
- minipass-flush: "npm:^1.0.5"
- minipass-pipeline: "npm:^1.2.4"
- p-map: "npm:^7.0.2"
- ssri: "npm:^13.0.0"
- checksum: 10c0/539bf4020e44ba9ca5afc2ec435623ed7e0dd80c020097677e6b4a0545df5cc9d20b473212d01209c8b4aea43c0d095af0bb6da97bcb991642ea6fac0d7c462b
- languageName: node
- linkType: hard
-
-"camelcase@npm:^4.1.0":
- version: 4.1.0
- resolution: "camelcase@npm:4.1.0"
- checksum: 10c0/54c0b6a85b54fb4e96a9d834a9d0d8f760fd608ab6752a6789042b5e1c38d3dd60f878d2c590d005046445d32d77f6e05e568a91fe8db3e282da0a1560d83058
- languageName: node
- linkType: hard
-
-"caniuse-api@npm:^1.5.2":
- version: 1.6.1
- resolution: "caniuse-api@npm:1.6.1"
- dependencies:
- browserslist: "npm:^1.3.6"
- caniuse-db: "npm:^1.0.30000529"
- lodash.memoize: "npm:^4.1.2"
- lodash.uniq: "npm:^4.5.0"
- checksum: 10c0/0769ffb827dcc9d7f6fb1d9616d6ac9dcb0a271cfacd3b1026459f0c5052491ef5a458bdaca12c2204b65bf65aa0c43b880b9bfbe497a0469e319cb48f5da4fb
- languageName: node
- linkType: hard
-
-"caniuse-db@npm:^1.0.30000529, caniuse-db@npm:^1.0.30000634, caniuse-db@npm:^1.0.30000639":
- version: 1.0.30001359
- resolution: "caniuse-db@npm:1.0.30001359"
- checksum: 10c0/8e079ed42d1094b3fd47816947bb1dea3f8efa3dc6cdf7a53482c504c9d8899ab068cb2c922427ada5e00132aeaddde8dff071785399315e32d3173e8c34bc64
- languageName: node
- linkType: hard
-
-"chalk@npm:^1.1.3":
- version: 1.1.3
- resolution: "chalk@npm:1.1.3"
- dependencies:
- ansi-styles: "npm:^2.2.1"
- escape-string-regexp: "npm:^1.0.2"
- has-ansi: "npm:^2.0.0"
- strip-ansi: "npm:^3.0.0"
- supports-color: "npm:^2.0.0"
- checksum: 10c0/28c3e399ec286bb3a7111fd4225ebedb0d7b813aef38a37bca7c498d032459c265ef43404201d5fbb8d888d29090899c95335b4c0cda13e8b126ff15c541cef8
- languageName: node
- linkType: hard
-
-"chalk@npm:^2.4.1":
- version: 2.4.2
- resolution: "chalk@npm:2.4.2"
- dependencies:
- ansi-styles: "npm:^3.2.1"
- escape-string-regexp: "npm:^1.0.5"
- supports-color: "npm:^5.3.0"
- checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073
- languageName: node
- linkType: hard
-
-"charenc@npm:0.0.2":
- version: 0.0.2
- resolution: "charenc@npm:0.0.2"
- checksum: 10c0/a45ec39363a16799d0f9365c8dd0c78e711415113c6f14787a22462ef451f5013efae8a28f1c058f81fc01f2a6a16955f7a5fd0cd56247ce94a45349c89877d8
- languageName: node
- linkType: hard
-
-"chownr@npm:^1.0.1":
- version: 1.1.4
- resolution: "chownr@npm:1.1.4"
- checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db
- languageName: node
- linkType: hard
-
-"chownr@npm:^3.0.0":
- version: 3.0.0
- resolution: "chownr@npm:3.0.0"
- checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10
- languageName: node
- linkType: hard
-
-"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
- version: 1.0.4
- resolution: "cipher-base@npm:1.0.4"
- dependencies:
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b
- languageName: node
- linkType: hard
-
-"clap@npm:^1.0.9":
- version: 1.2.3
- resolution: "clap@npm:1.2.3"
- dependencies:
- chalk: "npm:^1.1.3"
- checksum: 10c0/55da8d6a8b60e4718652e7b4310773cb618fbc0386c7648e57a2639a5696f409cb7b5e079b058759232de80cfda32d01fb38934520bbf7c07cd49898fb74bae2
- languageName: node
- linkType: hard
-
-"cliui@npm:^3.2.0":
- version: 3.2.0
- resolution: "cliui@npm:3.2.0"
- dependencies:
- string-width: "npm:^1.0.1"
- strip-ansi: "npm:^3.0.1"
- wrap-ansi: "npm:^2.0.0"
- checksum: 10c0/07b121fac7fd33ff8dbf3523f0d3dca0329d4e457e57dee54502aa5f27a33cbd9e66aa3e248f0260d8a1431b65b2bad8f510cd97fb8ab6a8e0506310a92e18d5
- languageName: node
- linkType: hard
-
-"clone@npm:^1.0.2":
- version: 1.0.4
- resolution: "clone@npm:1.0.4"
- checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b
- languageName: node
- linkType: hard
-
-"coa@npm:~1.0.1":
- version: 1.0.4
- resolution: "coa@npm:1.0.4"
- dependencies:
- q: "npm:^1.1.2"
- checksum: 10c0/b15bb8d10f8a29b364fa6e4980aff1fee1da7ae4fe721ca9d806d04ddd95e394dcc9b6390028077b1911675e9cae26ea13c0d3fc332cdc3bb0a64e58547f7e60
- languageName: node
- linkType: hard
-
-"code-point-at@npm:^1.0.0":
- version: 1.1.0
- resolution: "code-point-at@npm:1.1.0"
- checksum: 10c0/33f6b234084e46e6e369b6f0b07949392651b4dde70fc6a592a8d3dafa08d5bb32e3981a02f31f6fc323a26bc03a4c063a9d56834848695bda7611c2417ea2e6
- languageName: node
- linkType: hard
-
-"color-convert@npm:^1.3.0, color-convert@npm:^1.9.0":
- version: 1.9.3
- resolution: "color-convert@npm:1.9.3"
- dependencies:
- color-name: "npm:1.1.3"
- checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c
- languageName: node
- linkType: hard
-
-"color-name@npm:1.1.3":
- version: 1.1.3
- resolution: "color-name@npm:1.1.3"
- checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6
- languageName: node
- linkType: hard
-
-"color-name@npm:^1.0.0":
- version: 1.1.4
- resolution: "color-name@npm:1.1.4"
- checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
- languageName: node
- linkType: hard
-
-"color-string@npm:^0.3.0":
- version: 0.3.0
- resolution: "color-string@npm:0.3.0"
- dependencies:
- color-name: "npm:^1.0.0"
- checksum: 10c0/836bbbf58358c541cc5558ecb0376a4c857f08ed37519c2ab63f3d57ec205b52af929629f3d2d58b7d6f7fb7b6769697d83694454b667698be4eb46654f1f818
- languageName: node
- linkType: hard
-
-"color@npm:^0.11.0":
- version: 0.11.4
- resolution: "color@npm:0.11.4"
- dependencies:
- clone: "npm:^1.0.2"
- color-convert: "npm:^1.3.0"
- color-string: "npm:^0.3.0"
- checksum: 10c0/93abcc7e2eb7c254d42b96a889aab887d2bf6fedf901fc13af88f8885377b84a0f0f11a033c3e9ef9e37dca65214466261acc781f00fdec1c8d221d20c4120ee
- languageName: node
- linkType: hard
-
-"colormin@npm:^1.0.5":
- version: 1.1.2
- resolution: "colormin@npm:1.1.2"
- dependencies:
- color: "npm:^0.11.0"
- css-color-names: "npm:0.0.4"
- has: "npm:^1.0.1"
- checksum: 10c0/3488aca21bb100864c28b8070d5f86387fd4966bff93f552bb10cdc506a8ed9d42c4e239975b224c70eb664f170f543c74d8bda62f28216268141e8dba12777a
- languageName: node
- linkType: hard
-
-"colors@npm:~1.1.2":
- version: 1.1.2
- resolution: "colors@npm:1.1.2"
- checksum: 10c0/21fa4c575e636d889187b4666988ff16a6464a845089ff7b5e0263883da8cfa9140029300ba67bc3e231f67a4eb610725f9e77cc1d74df47741b691a695aea11
- languageName: node
- linkType: hard
-
-"combined-stream@npm:^1.0.5":
- version: 1.0.8
- resolution: "combined-stream@npm:1.0.8"
- dependencies:
- delayed-stream: "npm:~1.0.0"
- checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5
- languageName: node
- linkType: hard
-
-"commander@npm:~2.13.0":
- version: 2.13.0
- resolution: "commander@npm:2.13.0"
- checksum: 10c0/e3441096034439e506493ca1e5e9d5d5723ee0eadc3b2b92b3dd332b1d8fcbe72b70a1127f6790e6b3bedde3054316e9fe2cb36cef6ac051000b01559a16ba58
- languageName: node
- linkType: hard
-
-"commondir@npm:^1.0.1":
- version: 1.0.1
- resolution: "commondir@npm:1.0.1"
- checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6
- languageName: node
- linkType: hard
-
-"component-emitter@npm:^1.1.3":
- version: 1.3.0
- resolution: "component-emitter@npm:1.3.0"
- checksum: 10c0/68774a0a3754fb6c0ba53c2e88886dfbd0c773931066abb1d7fd1b0c893b2a838d8f088ab4dca1f18cc1a4fc2e6932019eba3ded2d931b5ba2241ce40e93a24f
- languageName: node
- linkType: hard
-
-"component-emitter@npm:~1.2.0":
- version: 1.2.1
- resolution: "component-emitter@npm:1.2.1"
- checksum: 10c0/6c27bd7bba028776464cee6c1686c8e02cb9a576a11df93f1fc211ae3eb2de234ae90952d0b7fb3acc9c92c8baa389fa7389681b2e8689d2ca463e94f3ad30b2
- languageName: node
- linkType: hard
-
-"concat-map@npm:0.0.1":
- version: 0.0.1
- resolution: "concat-map@npm:0.0.1"
- checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
- languageName: node
- linkType: hard
-
-"concat-stream@npm:^1.5.0":
- version: 1.6.2
- resolution: "concat-stream@npm:1.6.2"
- dependencies:
- buffer-from: "npm:^1.0.0"
- inherits: "npm:^2.0.3"
- readable-stream: "npm:^2.2.2"
- typedarray: "npm:^0.0.6"
- checksum: 10c0/2e9864e18282946dabbccb212c5c7cec0702745e3671679eb8291812ca7fd12023f7d8cb36493942a62f770ac96a7f90009dc5c82ad69893438371720fa92617
- languageName: node
- linkType: hard
-
-"console-browserify@npm:^1.1.0":
- version: 1.2.0
- resolution: "console-browserify@npm:1.2.0"
- checksum: 10c0/89b99a53b7d6cee54e1e64fa6b1f7ac24b844b4019c5d39db298637e55c1f4ffa5c165457ad984864de1379df2c8e1886cbbdac85d9dbb6876a9f26c3106f226
- languageName: node
- linkType: hard
-
-"constants-browserify@npm:^1.0.0":
- version: 1.0.0
- resolution: "constants-browserify@npm:1.0.0"
- checksum: 10c0/ab49b1d59a433ed77c964d90d19e08b2f77213fb823da4729c0baead55e3c597f8f97ebccfdfc47bd896d43854a117d114c849a6f659d9986420e97da0f83ac5
- languageName: node
- linkType: hard
-
-"convert-source-map@npm:^1.5.1":
- version: 1.8.0
- resolution: "convert-source-map@npm:1.8.0"
- dependencies:
- safe-buffer: "npm:~5.1.1"
- checksum: 10c0/da4649990b633c070c0dab1680b89a67b9315dd2b1168d143536f667214c97e4eb4a49e5b7ff912f0196fe303e31fc16a529457436d25b2b5a89613eaf4f27fa
- languageName: node
- linkType: hard
-
-"cookie@npm:0.3.1":
- version: 0.3.1
- resolution: "cookie@npm:0.3.1"
- checksum: 10c0/0d73c4d605b234c4d04de335aefa4988157f03265845f4a89ea311e3ba1ce73ab42b52d33652ed1c9671342eb77742a58f61753f3e90f31711284fb6031b2962
- languageName: node
- linkType: hard
-
-"cookiejar@npm:2.0.6":
- version: 2.0.6
- resolution: "cookiejar@npm:2.0.6"
- checksum: 10c0/e62e345b74f29c396720e0592c9f6b7de6b29250867cf5abf6a7e798e4ea2efcb811210439ab6243b5dc2cde9d992133214039b08f7e474142eef441b102a58d
- languageName: node
- linkType: hard
-
-"copy-anything@npm:^2.0.1":
- version: 2.0.6
- resolution: "copy-anything@npm:2.0.6"
- dependencies:
- is-what: "npm:^3.14.1"
- checksum: 10c0/2702998a8cc015f9917385b7f16b0d85f1f6e5e2fd34d99f14df584838f492f49aa0c390d973684c687e895c5c58d08b308a0400ac3e1e3d6fa1e5884a5402ad
- languageName: node
- linkType: hard
-
-"copy-concurrently@npm:^1.0.0":
- version: 1.0.5
- resolution: "copy-concurrently@npm:1.0.5"
- dependencies:
- aproba: "npm:^1.1.1"
- fs-write-stream-atomic: "npm:^1.0.8"
- iferr: "npm:^0.1.5"
- mkdirp: "npm:^0.5.1"
- rimraf: "npm:^2.5.4"
- run-queue: "npm:^1.0.0"
- checksum: 10c0/c2ce213cb27ee3df584d16eb6c9bfe99cfb531585007533c3e4c752521b4fbf0b2f7f90807d79c496683330808ecd9fdbd9ab9ddfa0913150b7f5097423348ce
- languageName: node
- linkType: hard
-
-"core-js@npm:^2.4.0, core-js@npm:^2.5.0":
- version: 2.6.12
- resolution: "core-js@npm:2.6.12"
- checksum: 10c0/00128efe427789120a06b819adc94cc72b96955acb331cb71d09287baf9bd37bebd191d91f1ee4939c893a050307ead4faea08876f09115112612b6a05684b63
- languageName: node
- linkType: hard
-
-"core-util-is@npm:~1.0.0":
- version: 1.0.3
- resolution: "core-util-is@npm:1.0.3"
- checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9
- languageName: node
- linkType: hard
-
-"create-ecdh@npm:^4.0.0":
- version: 4.0.4
- resolution: "create-ecdh@npm:4.0.4"
- dependencies:
- bn.js: "npm:^4.1.0"
- elliptic: "npm:^6.5.3"
- checksum: 10c0/77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f
- languageName: node
- linkType: hard
-
-"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
- version: 1.2.0
- resolution: "create-hash@npm:1.2.0"
- dependencies:
- cipher-base: "npm:^1.0.1"
- inherits: "npm:^2.0.1"
- md5.js: "npm:^1.3.4"
- ripemd160: "npm:^2.0.1"
- sha.js: "npm:^2.4.0"
- checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915
- languageName: node
- linkType: hard
-
-"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7":
- version: 1.1.7
- resolution: "create-hmac@npm:1.1.7"
- dependencies:
- cipher-base: "npm:^1.0.3"
- create-hash: "npm:^1.1.0"
- inherits: "npm:^2.0.1"
- ripemd160: "npm:^2.0.0"
- safe-buffer: "npm:^5.0.1"
- sha.js: "npm:^2.4.8"
- checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835
- languageName: node
- linkType: hard
-
-"cross-spawn@npm:^5.0.1":
- version: 5.1.0
- resolution: "cross-spawn@npm:5.1.0"
- dependencies:
- lru-cache: "npm:^4.0.1"
- shebang-command: "npm:^1.2.0"
- which: "npm:^1.2.9"
- checksum: 10c0/1918621fddb9f8c61e02118b2dbf81f611ccd1544ceaca0d026525341832b8511ce2504c60f935dbc06b35e5ef156fe8c1e72708c27dd486f034e9c0e1e07201
- languageName: node
- linkType: hard
-
-"crypt@npm:0.0.2":
- version: 0.0.2
- resolution: "crypt@npm:0.0.2"
- checksum: 10c0/adbf263441dd801665d5425f044647533f39f4612544071b1471962209d235042fb703c27eea2795c7c53e1dfc242405173003f83cf4f4761a633d11f9653f18
- languageName: node
- linkType: hard
-
-"crypto-browserify@npm:^3.11.0":
- version: 3.12.0
- resolution: "crypto-browserify@npm:3.12.0"
- dependencies:
- browserify-cipher: "npm:^1.0.0"
- browserify-sign: "npm:^4.0.0"
- create-ecdh: "npm:^4.0.0"
- create-hash: "npm:^1.1.0"
- create-hmac: "npm:^1.1.0"
- diffie-hellman: "npm:^5.0.0"
- inherits: "npm:^2.0.1"
- pbkdf2: "npm:^3.0.3"
- public-encrypt: "npm:^4.0.0"
- randombytes: "npm:^2.0.0"
- randomfill: "npm:^1.0.3"
- checksum: 10c0/0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92
- languageName: node
- linkType: hard
-
-"css-color-names@npm:0.0.4":
- version: 0.0.4
- resolution: "css-color-names@npm:0.0.4"
- checksum: 10c0/88ef97c25bcfb217469cdff428049022438cc546eb208210f0edec03b75050723db3ba02cd0f4959c84cd0659be0b43af3323eff80d1ba5fb15c2accf09ccbe2
- languageName: node
- linkType: hard
-
-"css-loader@npm:^0.28.11":
- version: 0.28.11
- resolution: "css-loader@npm:0.28.11"
- dependencies:
- babel-code-frame: "npm:^6.26.0"
- css-selector-tokenizer: "npm:^0.7.0"
- cssnano: "npm:^3.10.0"
- icss-utils: "npm:^2.1.0"
- loader-utils: "npm:^1.0.2"
- lodash.camelcase: "npm:^4.3.0"
- object-assign: "npm:^4.1.1"
- postcss: "npm:^5.0.6"
- postcss-modules-extract-imports: "npm:^1.2.0"
- postcss-modules-local-by-default: "npm:^1.2.0"
- postcss-modules-scope: "npm:^1.1.0"
- postcss-modules-values: "npm:^1.3.0"
- postcss-value-parser: "npm:^3.3.0"
- source-list-map: "npm:^2.0.0"
- checksum: 10c0/36434d7fafde8a4de3995c444713a455df17f74cfe10f089481cb7918db6f206267301daf2ae0496544809ca35bb226df47aa4edeb9580704c96281a07091f8b
- languageName: node
- linkType: hard
-
-"css-selector-tokenizer@npm:^0.7.0":
- version: 0.7.3
- resolution: "css-selector-tokenizer@npm:0.7.3"
- dependencies:
- cssesc: "npm:^3.0.0"
- fastparse: "npm:^1.1.2"
- checksum: 10c0/bc4d14204bf5716f70085526bf370cbdd1c643dcb2e7366ba96212649fa5a07885e3f5dc2bde53646bac557ded79a60c7118cf7cf5d4dda898353a9e08277649
- languageName: node
- linkType: hard
-
-"cssesc@npm:^3.0.0":
- version: 3.0.0
- resolution: "cssesc@npm:3.0.0"
- bin:
- cssesc: bin/cssesc
- checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7
- languageName: node
- linkType: hard
-
-"cssnano@npm:^3.10.0":
- version: 3.10.0
- resolution: "cssnano@npm:3.10.0"
- dependencies:
- autoprefixer: "npm:^6.3.1"
- decamelize: "npm:^1.1.2"
- defined: "npm:^1.0.0"
- has: "npm:^1.0.1"
- object-assign: "npm:^4.0.1"
- postcss: "npm:^5.0.14"
- postcss-calc: "npm:^5.2.0"
- postcss-colormin: "npm:^2.1.8"
- postcss-convert-values: "npm:^2.3.4"
- postcss-discard-comments: "npm:^2.0.4"
- postcss-discard-duplicates: "npm:^2.0.1"
- postcss-discard-empty: "npm:^2.0.1"
- postcss-discard-overridden: "npm:^0.1.1"
- postcss-discard-unused: "npm:^2.2.1"
- postcss-filter-plugins: "npm:^2.0.0"
- postcss-merge-idents: "npm:^2.1.5"
- postcss-merge-longhand: "npm:^2.0.1"
- postcss-merge-rules: "npm:^2.0.3"
- postcss-minify-font-values: "npm:^1.0.2"
- postcss-minify-gradients: "npm:^1.0.1"
- postcss-minify-params: "npm:^1.0.4"
- postcss-minify-selectors: "npm:^2.0.4"
- postcss-normalize-charset: "npm:^1.1.0"
- postcss-normalize-url: "npm:^3.0.7"
- postcss-ordered-values: "npm:^2.1.0"
- postcss-reduce-idents: "npm:^2.2.2"
- postcss-reduce-initial: "npm:^1.0.0"
- postcss-reduce-transforms: "npm:^1.0.3"
- postcss-svgo: "npm:^2.1.1"
- postcss-unique-selectors: "npm:^2.0.2"
- postcss-value-parser: "npm:^3.2.3"
- postcss-zindex: "npm:^2.0.1"
- checksum: 10c0/1231f79be4761fa61478fb2a51d1aa95798eb426e33cde95341b5e9c71ec56c170fcc4c8d0618a8961033efb9da6230539eea933431c983ef065c014865e50f4
- languageName: node
- linkType: hard
-
-"csso@npm:~2.3.1":
- version: 2.3.2
- resolution: "csso@npm:2.3.2"
- dependencies:
- clap: "npm:^1.0.9"
- source-map: "npm:^0.5.3"
- bin:
- csso: ./bin/csso
- checksum: 10c0/e36a1cae8f371327cbf22d6770b8827291fa4f372bbaab938d5afc869e73f0a452ba4e87738bf03bfbb3bba27770efa04a6b4acaf5f36e94f88e8c481b9df7fa
- languageName: node
- linkType: hard
-
-"cyclist@npm:^1.0.1":
- version: 1.0.1
- resolution: "cyclist@npm:1.0.1"
- checksum: 10c0/3381d3b66a3b268e6e0abcc1fa8fbeeb9a98391d8455677509f9833813d7680cc737a10141f54c229e42f5b3133250f36f1aa04f56ef4ba9b29fa728c3c48c01
- languageName: node
- linkType: hard
-
-"d@npm:1, d@npm:^1.0.1":
- version: 1.0.1
- resolution: "d@npm:1.0.1"
- dependencies:
- es5-ext: "npm:^0.10.50"
- type: "npm:^1.0.1"
- checksum: 10c0/1fedcb3b956a461f64d86b94b347441beff5cef8910b6ac4ec509a2c67eeaa7093660a98b26601ac91f91260238add73bdf25867a9c0cb783774642bc4c1523f
- languageName: node
- linkType: hard
-
-"debug@npm:2, debug@npm:^2.6.8, debug@npm:^2.6.9":
- version: 2.6.9
- resolution: "debug@npm:2.6.9"
- dependencies:
- ms: "npm:2.0.0"
- checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589
- languageName: node
- linkType: hard
-
-"debug@npm:4, debug@npm:^4.3.4":
- version: 4.4.3
- resolution: "debug@npm:4.4.3"
- dependencies:
- ms: "npm:^2.1.3"
- peerDependenciesMeta:
- supports-color:
- optional: true
- checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6
- languageName: node
- linkType: hard
-
-"debug@npm:^3.2.6":
- version: 3.2.7
- resolution: "debug@npm:3.2.7"
- dependencies:
- ms: "npm:^2.1.1"
- checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a
- languageName: node
- linkType: hard
-
-"decamelize@npm:^1.1.1, decamelize@npm:^1.1.2":
- version: 1.2.0
- resolution: "decamelize@npm:1.2.0"
- checksum: 10c0/85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2
- languageName: node
- linkType: hard
-
-"defined@npm:^1.0.0":
- version: 1.0.0
- resolution: "defined@npm:1.0.0"
- checksum: 10c0/2b9929414857729a97cfcc77987e65005e03b3fd92747e1d6a743b054c1387b62e669dc453b53e3a8105f1398df6aad54c07eed984871c93be8c7f4560a1828b
- languageName: node
- linkType: hard
-
-"delayed-stream@npm:~1.0.0":
- version: 1.0.0
- resolution: "delayed-stream@npm:1.0.0"
- checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19
- languageName: node
- linkType: hard
-
-"des.js@npm:^1.0.0":
- version: 1.0.1
- resolution: "des.js@npm:1.0.1"
- dependencies:
- inherits: "npm:^2.0.1"
- minimalistic-assert: "npm:^1.0.0"
- checksum: 10c0/69bf742d1c381e01d75151bdcaac71a18d251d7debfc9b6ae5ee4b4edaf39691ae203c5ec9173ba89aedb3ddc622cdff4fca065448c6c2afb1140d9fb826339d
- languageName: node
- linkType: hard
-
-"detect-indent@npm:^4.0.0":
- version: 4.0.0
- resolution: "detect-indent@npm:4.0.0"
- dependencies:
- repeating: "npm:^2.0.0"
- checksum: 10c0/066a0d13eadebb1e7d2ba395fdf9f3956f31f8383a6db263320108c283e2230250a102f4871f54926cc8a77c6323ac7103f30550a4ac3d6518aa1b934c041295
- languageName: node
- linkType: hard
-
-"diffie-hellman@npm:^5.0.0":
- version: 5.0.3
- resolution: "diffie-hellman@npm:5.0.3"
- dependencies:
- bn.js: "npm:^4.1.0"
- miller-rabin: "npm:^4.0.0"
- randombytes: "npm:^2.0.0"
- checksum: 10c0/ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf
- languageName: node
- linkType: hard
-
-"domain-browser@npm:^1.1.1":
- version: 1.2.0
- resolution: "domain-browser@npm:1.2.0"
- checksum: 10c0/a955f482f4b4710fbd77c12a33e77548d63603c30c80f61a80519f27e3db1ba8530b914584cc9e9365d2038753d6b5bd1f4e6c81e432b007b0ec95b8b5e69b1b
- languageName: node
- linkType: hard
-
-"domready@npm:0.3.0":
- version: 0.3.0
- resolution: "domready@npm:0.3.0"
- checksum: 10c0/c08ad5ece9e4d4bb5425422534c580c93443956acb1963019788ac1607c671d25de38f540b6d57f18e9364690ae010b81eb13a4c1fbef1cbedddeabf08963eff
- languageName: node
- linkType: hard
-
-"duplexify@npm:^3.4.2, duplexify@npm:^3.6.0":
- version: 3.7.1
- resolution: "duplexify@npm:3.7.1"
- dependencies:
- end-of-stream: "npm:^1.0.0"
- inherits: "npm:^2.0.1"
- readable-stream: "npm:^2.0.0"
- stream-shift: "npm:^1.0.0"
- checksum: 10c0/59d1440c1b4e3a4db35ae96933392703ce83518db1828d06b9b6322920d6cbbf0b7159e88be120385fe459e77f1eb0c7622f26e9ec1f47c9ff05c2b35747dbd3
- languageName: node
- linkType: hard
-
-"electron-to-chromium@npm:^1.2.7":
- version: 1.4.172
- resolution: "electron-to-chromium@npm:1.4.172"
- checksum: 10c0/b0543ef0331708ccfb049f71be39edd340d9d4e8e0f7cafec9c7e3e8a7982c88d36bbc143b2e29858e42d5bccafbe394b6f389c95c23ed9f8c499e59b93ce623
- languageName: node
- linkType: hard
-
-"elliptic@npm:^6.5.3":
- version: 6.5.4
- resolution: "elliptic@npm:6.5.4"
- dependencies:
- bn.js: "npm:^4.11.9"
- brorand: "npm:^1.1.0"
- hash.js: "npm:^1.0.0"
- hmac-drbg: "npm:^1.0.1"
- inherits: "npm:^2.0.4"
- minimalistic-assert: "npm:^1.0.1"
- minimalistic-crypto-utils: "npm:^1.0.1"
- checksum: 10c0/5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2
- languageName: node
- linkType: hard
-
-"emojis-list@npm:^2.0.0":
- version: 2.1.0
- resolution: "emojis-list@npm:2.1.0"
- checksum: 10c0/bbb941223bfb3e38054cb52ed1b3098a8dac0a90fdd2699eb8a3af3b2172cdc4af0932e05c3edd52e814997c8f45cf1d7f5e86e9ecdcd4e2390a0f27e6914db5
- languageName: node
- linkType: hard
-
-"emojis-list@npm:^3.0.0":
- version: 3.0.0
- resolution: "emojis-list@npm:3.0.0"
- checksum: 10c0/7dc4394b7b910444910ad64b812392159a21e1a7ecc637c775a440227dcb4f80eff7fe61f4453a7d7603fa23d23d30cc93fe9e4b5ed985b88d6441cd4a35117b
- languageName: node
- linkType: hard
-
-"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0":
- version: 1.4.4
- resolution: "end-of-stream@npm:1.4.4"
- dependencies:
- once: "npm:^1.4.0"
- checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975
- languageName: node
- linkType: hard
-
-"enhanced-resolve@npm:^3.4.0":
- version: 3.4.1
- resolution: "enhanced-resolve@npm:3.4.1"
- dependencies:
- graceful-fs: "npm:^4.1.2"
- memory-fs: "npm:^0.4.0"
- object-assign: "npm:^4.0.1"
- tapable: "npm:^0.2.7"
- checksum: 10c0/91f2da7e8e5ab2376823843a0e0176f683cfdb5749efbb6e1f26580b285593bb5b69006a1ae5e068c21ab1eb90271eec8b8fd6aa3ac36cc6f1f6de4d37a06456
- languageName: node
- linkType: hard
-
-"env-paths@npm:^2.2.0":
- version: 2.2.1
- resolution: "env-paths@npm:2.2.1"
- checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
- languageName: node
- linkType: hard
-
-"errno@npm:^0.1.1, errno@npm:^0.1.3, errno@npm:~0.1.7":
- version: 0.1.8
- resolution: "errno@npm:0.1.8"
- dependencies:
- prr: "npm:~1.0.1"
- bin:
- errno: cli.js
- checksum: 10c0/83758951967ec57bf00b5f5b7dc797e6d65a6171e57ea57adcf1bd1a0b477fd9b5b35fae5be1ff18f4090ed156bce1db749fe7e317aac19d485a5d150f6a4936
- languageName: node
- linkType: hard
-
-"error-ex@npm:^1.2.0":
- version: 1.3.2
- resolution: "error-ex@npm:1.3.2"
- dependencies:
- is-arrayish: "npm:^0.2.1"
- checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce
- languageName: node
- linkType: hard
-
-"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.46, es5-ext@npm:^0.10.50, es5-ext@npm:~0.10.14":
- version: 0.10.61
- resolution: "es5-ext@npm:0.10.61"
- dependencies:
- es6-iterator: "npm:^2.0.3"
- es6-symbol: "npm:^3.1.3"
- next-tick: "npm:^1.1.0"
- checksum: 10c0/fceee484bbf3d7b064b8b3b9ad9095fa64e8736de322f8b48abd162f215bdd503390a3bb8c3cdeebae619825111f7eff83e1e4400fe232733da027ade8e1823e
- languageName: node
- linkType: hard
-
-"es6-iterator@npm:^2.0.3, es6-iterator@npm:~2.0.1":
- version: 2.0.3
- resolution: "es6-iterator@npm:2.0.3"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:^0.10.35"
- es6-symbol: "npm:^3.1.1"
- checksum: 10c0/91f20b799dba28fb05bf623c31857fc1524a0f1c444903beccaf8929ad196c8c9ded233e5ac7214fc63a92b3f25b64b7f2737fcca8b1f92d2d96cf3ac902f5d8
- languageName: node
- linkType: hard
-
-"es6-map@npm:^0.1.3":
- version: 0.1.5
- resolution: "es6-map@npm:0.1.5"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- es6-iterator: "npm:~2.0.1"
- es6-set: "npm:~0.1.5"
- es6-symbol: "npm:~3.1.1"
- event-emitter: "npm:~0.3.5"
- checksum: 10c0/62fe1a90ead1704bed699cb9c975e642023f590d5338c2a640d60ce0a846de7d5197561393ac03dd11473b96087cf8793c9e4836fe05ad4d2ef6afda6b9a3511
- languageName: node
- linkType: hard
-
-"es6-set@npm:~0.1.5":
- version: 0.1.5
- resolution: "es6-set@npm:0.1.5"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- es6-iterator: "npm:~2.0.1"
- es6-symbol: "npm:3.1.1"
- event-emitter: "npm:~0.3.5"
- checksum: 10c0/a1fe925f77bd529b7b5135ca1a8bc9ff378fa0e3fd9686f3ac1b8e87eb00fbffc100e81a3c44262cd324cbfcc772d7a75ca5471e3fb24247ac85c5beb6af0d14
- languageName: node
- linkType: hard
-
-"es6-symbol@npm:3.1.1":
- version: 3.1.1
- resolution: "es6-symbol@npm:3.1.1"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- checksum: 10c0/eb4ec788a99dc2c04e5e9abd90f478991425a881eced99a7165eada0c832bfc9a8fbb76b688c3c3b6e103f94d23e8e19addf9cf18abb537fb918d066d5ce1d7f
- languageName: node
- linkType: hard
-
-"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3, es6-symbol@npm:~3.1.1":
- version: 3.1.3
- resolution: "es6-symbol@npm:3.1.3"
- dependencies:
- d: "npm:^1.0.1"
- ext: "npm:^1.1.2"
- checksum: 10c0/22982f815f00df553a89f4fb74c5048fed85df598482b4bd38dbd173174247949c72982a7d7132a58b147525398400e5f182db59b0916cb49f1e245fb0e22233
- languageName: node
- linkType: hard
-
-"es6-weak-map@npm:^2.0.1":
- version: 2.0.3
- resolution: "es6-weak-map@npm:2.0.3"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:^0.10.46"
- es6-iterator: "npm:^2.0.3"
- es6-symbol: "npm:^3.1.1"
- checksum: 10c0/460932be9542473dbbddd183e21c15a66cfec1b2c17dae2b514e190d6fb2896b7eb683783d4b36da036609d2e1c93d2815f21b374dfccaf02a8978694c2f7b67
- languageName: node
- linkType: hard
-
-"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5":
- version: 1.0.5
- resolution: "escape-string-regexp@npm:1.0.5"
- checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371
- languageName: node
- linkType: hard
-
-"escope@npm:^3.6.0":
- version: 3.6.0
- resolution: "escope@npm:3.6.0"
- dependencies:
- es6-map: "npm:^0.1.3"
- es6-weak-map: "npm:^2.0.1"
- esrecurse: "npm:^4.1.0"
- estraverse: "npm:^4.1.1"
- checksum: 10c0/79cbb30bf126628eb7e586575b2f5fd31b14ea108cd2379c571fe4dc09ea5208f42dacf1cd43a702b59efccb128e9c9e7762d5cd670d2d184a889947aea509e5
- languageName: node
- linkType: hard
-
-"esprima@npm:^2.6.0":
- version: 2.7.3
- resolution: "esprima@npm:2.7.3"
- bin:
- esparse: ./bin/esparse.js
- esvalidate: ./bin/esvalidate.js
- checksum: 10c0/6e1e99f280eed2ecd521ae28217c5f7c7a03fd0a1ac913bffd4a4ba278caf32cb8d9fc01e41d4b4bc904617282873dea297d60e1f93ea20156f29994c348a04f
- languageName: node
- linkType: hard
-
-"esrecurse@npm:^4.1.0":
- version: 4.3.0
- resolution: "esrecurse@npm:4.3.0"
- dependencies:
- estraverse: "npm:^5.2.0"
- checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
- languageName: node
- linkType: hard
-
-"estraverse@npm:^4.1.1":
- version: 4.3.0
- resolution: "estraverse@npm:4.3.0"
- checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d
- languageName: node
- linkType: hard
-
-"estraverse@npm:^5.2.0":
- version: 5.3.0
- resolution: "estraverse@npm:5.3.0"
- checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
- languageName: node
- linkType: hard
-
-"esutils@npm:^2.0.2":
- version: 2.0.3
- resolution: "esutils@npm:2.0.3"
- checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
- languageName: node
- linkType: hard
-
-"event-emitter@npm:~0.3.5":
- version: 0.3.5
- resolution: "event-emitter@npm:0.3.5"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- checksum: 10c0/75082fa8ffb3929766d0f0a063bfd6046bd2a80bea2666ebaa0cfd6f4a9116be6647c15667bea77222afc12f5b4071b68d393cf39fdaa0e8e81eda006160aff0
- languageName: node
- linkType: hard
-
-"events@npm:^3.0.0":
- version: 3.3.0
- resolution: "events@npm:3.3.0"
- checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
- languageName: node
- linkType: hard
-
-"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3":
- version: 1.0.3
- resolution: "evp_bytestokey@npm:1.0.3"
- dependencies:
- md5.js: "npm:^1.3.4"
- node-gyp: "npm:latest"
- safe-buffer: "npm:^5.1.1"
- checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99
- languageName: node
- linkType: hard
-
-"execa@npm:^0.7.0":
- version: 0.7.0
- resolution: "execa@npm:0.7.0"
- dependencies:
- cross-spawn: "npm:^5.0.1"
- get-stream: "npm:^3.0.0"
- is-stream: "npm:^1.1.0"
- npm-run-path: "npm:^2.0.0"
- p-finally: "npm:^1.0.0"
- signal-exit: "npm:^3.0.0"
- strip-eof: "npm:^1.0.0"
- checksum: 10c0/812f1776e2a6b2226532e43c1af87d8a12e26de03a06e7e043f653acf5565e0656f5f6c64d66726fefa17178ac129caaa419a50905934e7c4a846417abb25d4a
- languageName: node
- linkType: hard
-
-"exponential-backoff@npm:^3.1.1":
- version: 3.1.3
- resolution: "exponential-backoff@npm:3.1.3"
- checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267
- languageName: node
- linkType: hard
-
-"ext@npm:^1.1.2":
- version: 1.6.0
- resolution: "ext@npm:1.6.0"
- dependencies:
- type: "npm:^2.5.0"
- checksum: 10c0/d6ff29ca86fbe4e69743d10702ece124e0239faa435a6c3b2833282787b9eace2c8cbf5d8439d0c85312255d5472d251bf3cd4c4d1b9de8f8a8090e6b43db948
- languageName: node
- linkType: hard
-
-"extend@npm:3.0.0":
- version: 3.0.0
- resolution: "extend@npm:3.0.0"
- checksum: 10c0/67a867fd39abcd36f3d11e99c6e2808d0237214239ca7a194278b1a91790945a3755e22fd4e16521a247e511f9bce866142b483e1ca61d33d7c2317aa98ecf5a
- languageName: node
- linkType: hard
-
-"fast-deep-equal@npm:^3.1.1":
- version: 3.1.3
- resolution: "fast-deep-equal@npm:3.1.3"
- checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
- languageName: node
- linkType: hard
-
-"fast-json-stable-stringify@npm:^2.0.0":
- version: 2.1.0
- resolution: "fast-json-stable-stringify@npm:2.1.0"
- checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
- languageName: node
- linkType: hard
-
-"fastparse@npm:^1.1.2":
- version: 1.1.2
- resolution: "fastparse@npm:1.1.2"
- checksum: 10c0/c08d6e7ef10c0928426c1963dd4593e2baaf44d223ab1e5ba5d7b30470144b3a4ecb3605958b73754cea3f857ecef00b67c885f07ca2c312b38b67d9d88b84b5
- languageName: node
- linkType: hard
-
-"fdir@npm:^6.5.0":
- version: 6.5.0
- resolution: "fdir@npm:6.5.0"
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
- checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f
- languageName: node
- linkType: hard
-
-"find-cache-dir@npm:^0.1.1":
- version: 0.1.1
- resolution: "find-cache-dir@npm:0.1.1"
- dependencies:
- commondir: "npm:^1.0.1"
- mkdirp: "npm:^0.5.1"
- pkg-dir: "npm:^1.0.0"
- checksum: 10c0/797d978c94352851f684d0565e3a60eca4aa380be91643c0a9066eec48c75ee0b382f6b04309fa6d183dea0bff1471ad7da116fcc7c8f95d4af8f5aca444ec41
- languageName: node
- linkType: hard
-
-"find-cache-dir@npm:^1.0.0":
- version: 1.0.0
- resolution: "find-cache-dir@npm:1.0.0"
- dependencies:
- commondir: "npm:^1.0.1"
- make-dir: "npm:^1.0.0"
- pkg-dir: "npm:^2.0.0"
- checksum: 10c0/264b706771f30b39385cf921a5576c80ef95cb4c8ef2df8761b8be62326a1537ea63feecf0deac52cd84d6937b312a8d9554b4012a092937ade43a165cd5b6f9
- languageName: node
- linkType: hard
-
-"find-root@npm:^0.1.1":
- version: 0.1.2
- resolution: "find-root@npm:0.1.2"
- checksum: 10c0/698fd94b2505da9c5ceee77d76b7a152ec5dbd3000f354497f95a66de3c0f249d5cd43fb2a05afb5715baf1a4a91498f90a66e0c3844a09fbd0afe0f16024058
- languageName: node
- linkType: hard
-
-"find-up@npm:^1.0.0":
- version: 1.1.2
- resolution: "find-up@npm:1.1.2"
- dependencies:
- path-exists: "npm:^2.0.0"
- pinkie-promise: "npm:^2.0.0"
- checksum: 10c0/51e35c62d9b7efe82d7d5cce966bfe10c2eaa78c769333f8114627e3a8a4a4f50747f5f50bff50b1094cbc6527776f0d3b9ff74d3561ef714a5290a17c80c2bc
- languageName: node
- linkType: hard
-
-"find-up@npm:^2.0.0, find-up@npm:^2.1.0":
- version: 2.1.0
- resolution: "find-up@npm:2.1.0"
- dependencies:
- locate-path: "npm:^2.0.0"
- checksum: 10c0/c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840
- languageName: node
- linkType: hard
-
-"flatten@npm:^1.0.2":
- version: 1.0.3
- resolution: "flatten@npm:1.0.3"
- checksum: 10c0/9f9b1f3dcd05be057bb83ec27f2513da5306e7bfc0cf8bd839ab423eb1b0f99683a25c97b48fafd5959819159659ce9f1397623a46f89a8577ba095fcf5fb753
- languageName: node
- linkType: hard
-
-"flush-write-stream@npm:^1.0.0":
- version: 1.1.1
- resolution: "flush-write-stream@npm:1.1.1"
- dependencies:
- inherits: "npm:^2.0.3"
- readable-stream: "npm:^2.3.6"
- checksum: 10c0/2cd4f65b728d5f388197a03dafabc6a5e4f0c2ed1a2d912e288f7aa1c2996dd90875e55b50cf32c78dca55ad2e2dfae5d3db09b223838388033d87cf5920dd87
- languageName: node
- linkType: hard
-
-"font-awesome-webpack@npm:0.0.5-beta.2":
- version: 0.0.5-beta.2
- resolution: "font-awesome-webpack@npm:0.0.5-beta.2"
- dependencies:
- css-loader: "npm:~0.26.1"
- less-loader: "npm:~2.2.3"
- style-loader: "npm:~0.13.1"
- peerDependencies:
- font-awesome: ">=4.3.0"
- checksum: 10c0/fd36231eba4f9e9cacbcbcc1b814b03c99ba9ea0d8520a0870da6bf8bd049f2107b39866769e678c4f214e93da9a13a056d40ee260fed1071a1abf0763fdf0a4
- languageName: node
- linkType: hard
-
-"font-awesome@npm:^4.5.0":
- version: 4.7.0
- resolution: "font-awesome@npm:4.7.0"
- checksum: 10c0/1c456e2939c55192eed67db9c0efb8db3e92fd357ca189ca00030eb44acffa1e9f835288d2204c14b9a9c490a7b14b7090dfaff80ded6b2473f50a923dfb41e7
- languageName: node
- linkType: hard
-
-"form-data@npm:1.0.0-rc3":
- version: 1.0.0-rc3
- resolution: "form-data@npm:1.0.0-rc3"
- dependencies:
- async: "npm:^1.4.0"
- combined-stream: "npm:^1.0.5"
- mime-types: "npm:^2.1.3"
- checksum: 10c0/d67674a76f46253f69aebdc5c1c86aa123385940d147346b2f801681656ab5df6b82bd9568483e1579fd53bf277795f2da7592c6a842893465ef69e9073c342f
- languageName: node
- linkType: hard
-
-"formidable@npm:~1.0.14":
- version: 1.0.17
- resolution: "formidable@npm:1.0.17"
- checksum: 10c0/651c7394574ab6b451467200495bcb5064776419d883e6f82512f31019a0528de90c729d28d89d519eb00cb456302206aa389a4d63d2aba69eef5653ba863714
- languageName: node
- linkType: hard
-
-"from2@npm:^2.1.0":
- version: 2.3.0
- resolution: "from2@npm:2.3.0"
- dependencies:
- inherits: "npm:^2.0.1"
- readable-stream: "npm:^2.0.0"
- checksum: 10c0/f87f7a2e4513244d551454a7f8324ef1f7837864a8701c536417286ec19ff4915606b1dfa8909a21b7591ebd8440ffde3642f7c303690b9a4d7c832d62248aa1
- languageName: node
- linkType: hard
-
-"fs-minipass@npm:^3.0.0":
- version: 3.0.3
- resolution: "fs-minipass@npm:3.0.3"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
- languageName: node
- linkType: hard
-
-"fs-write-stream-atomic@npm:^1.0.8":
- version: 1.0.10
- resolution: "fs-write-stream-atomic@npm:1.0.10"
- dependencies:
- graceful-fs: "npm:^4.1.2"
- iferr: "npm:^0.1.5"
- imurmurhash: "npm:^0.1.4"
- readable-stream: "npm:1 || 2"
- checksum: 10c0/293b2b4ed346d35a28f8637a20cb2aef31be86503da501c42c2eda8fefed328bac16ce0e5daa7019f9329d73930c58031eaea2ce0c70f1680943fbfb7cff808b
- languageName: node
- linkType: hard
-
-"fs.realpath@npm:^1.0.0":
- version: 1.0.0
- resolution: "fs.realpath@npm:1.0.0"
- checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948
- languageName: node
- linkType: hard
-
-"function-bind@npm:^1.1.1":
- version: 1.1.1
- resolution: "function-bind@npm:1.1.1"
- checksum: 10c0/60b74b2407e1942e1ed7f8c284f8ef714d0689dcfce5319985a5b7da3fc727f40b4a59ec72dc55aa83365ad7b8fa4fac3a30d93c850a2b452f29ae03dbc10a1e
- languageName: node
- linkType: hard
-
-"get-caller-file@npm:^1.0.1":
- version: 1.0.3
- resolution: "get-caller-file@npm:1.0.3"
- checksum: 10c0/763dcee2de8ff60ae7e13a4bad8306205a2fbe108e555686344ddd9ef211b8bebfe459d3a739669257014c59e7cc1e7a44003c21af805c1214673e6a45f06c51
- languageName: node
- linkType: hard
-
-"get-stream@npm:^3.0.0":
- version: 3.0.0
- resolution: "get-stream@npm:3.0.0"
- checksum: 10c0/003f5f3b8870da59c6aafdf6ed7e7b07b48c2f8629cd461bd3900726548b6b8cfa2e14d6b7814fbb08f07a42f4f738407fa70b989928b2783a76b278505bba22
- languageName: node
- linkType: hard
-
-"glob-to-regexp@npm:^0.4.1":
- version: 0.4.1
- resolution: "glob-to-regexp@npm:0.4.1"
- checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429
- languageName: node
- linkType: hard
-
-"glob@npm:^13.0.0":
- version: 13.0.6
- resolution: "glob@npm:13.0.6"
- dependencies:
- minimatch: "npm:^10.2.2"
- minipass: "npm:^7.1.3"
- path-scurry: "npm:^2.0.2"
- checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a
- languageName: node
- linkType: hard
-
-"glob@npm:^7.1.2, glob@npm:^7.1.3":
- version: 7.2.3
- resolution: "glob@npm:7.2.3"
- dependencies:
- fs.realpath: "npm:^1.0.0"
- inflight: "npm:^1.0.4"
- inherits: "npm:2"
- minimatch: "npm:^3.1.1"
- once: "npm:^1.3.0"
- path-is-absolute: "npm:^1.0.0"
- checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe
- languageName: node
- linkType: hard
-
-"globals@npm:^9.18.0":
- version: 9.18.0
- resolution: "globals@npm:9.18.0"
- checksum: 10c0/5ab74cb67cf060a9fceede4a0f2babc4c2c0b90dbb13847d2659defdf2121c60035ef23823c8417ce8c11bdaa7b412396077f2b3d2a7dedab490a881a0a96754
- languageName: node
- linkType: hard
-
-"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2":
- version: 4.2.10
- resolution: "graceful-fs@npm:4.2.10"
- checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952
- languageName: node
- linkType: hard
-
-"graceful-fs@npm:^4.2.6":
- version: 4.2.11
- resolution: "graceful-fs@npm:4.2.11"
- checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
- languageName: node
- linkType: hard
-
-"has-ansi@npm:^2.0.0":
- version: 2.0.0
- resolution: "has-ansi@npm:2.0.0"
- dependencies:
- ansi-regex: "npm:^2.0.0"
- checksum: 10c0/f54e4887b9f8f3c4bfefd649c48825b3c093987c92c27880ee9898539e6f01aed261e82e73153c3f920fde0db5bf6ebd58deb498ed1debabcb4bc40113ccdf05
- languageName: node
- linkType: hard
-
-"has-flag@npm:^1.0.0":
- version: 1.0.0
- resolution: "has-flag@npm:1.0.0"
- checksum: 10c0/d0ad4bebbbc005edccfa1e2c0600c89375be5663d23f49a129e0f817187405748b0b515abfc5b3c209c92692e39bb0481c83c0ee4df69433d6ffd0242183100b
- languageName: node
- linkType: hard
-
-"has-flag@npm:^2.0.0":
- version: 2.0.0
- resolution: "has-flag@npm:2.0.0"
- checksum: 10c0/5e1f136c7f801c2719048bedfabcf834a1ed46276cd4c98c6fcddb89a482f5d6a16df0771a38805cfc2d9010b4de157909e1a71b708e1d339b6e311041bde9b4
- languageName: node
- linkType: hard
-
-"has-flag@npm:^3.0.0":
- version: 3.0.0
- resolution: "has-flag@npm:3.0.0"
- checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473
- languageName: node
- linkType: hard
-
-"has@npm:^1.0.1, has@npm:^1.0.3":
- version: 1.0.3
- resolution: "has@npm:1.0.3"
- dependencies:
- function-bind: "npm:^1.1.1"
- checksum: 10c0/e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b
- languageName: node
- linkType: hard
-
-"hash-base@npm:^3.0.0":
- version: 3.1.0
- resolution: "hash-base@npm:3.1.0"
- dependencies:
- inherits: "npm:^2.0.4"
- readable-stream: "npm:^3.6.0"
- safe-buffer: "npm:^5.2.0"
- checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0
- languageName: node
- linkType: hard
-
-"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3":
- version: 1.1.7
- resolution: "hash.js@npm:1.1.7"
- dependencies:
- inherits: "npm:^2.0.3"
- minimalistic-assert: "npm:^1.0.1"
- checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4
- languageName: node
- linkType: hard
-
-"hmac-drbg@npm:^1.0.1":
- version: 1.0.1
- resolution: "hmac-drbg@npm:1.0.1"
- dependencies:
- hash.js: "npm:^1.0.3"
- minimalistic-assert: "npm:^1.0.0"
- minimalistic-crypto-utils: "npm:^1.0.1"
- checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d
- languageName: node
- linkType: hard
-
-"home-or-tmp@npm:^2.0.0":
- version: 2.0.0
- resolution: "home-or-tmp@npm:2.0.0"
- dependencies:
- os-homedir: "npm:^1.0.0"
- os-tmpdir: "npm:^1.0.1"
- checksum: 10c0/a0e0d26db09dc0b3245f52a9159d3e970e628ddc22d69842e8413ea42f81d5a29c3808f9b08ea4d48db084e4e693193cc238c114775aa92d753bf95a9daa10fb
- languageName: node
- linkType: hard
-
-"hosted-git-info@npm:^2.1.4":
- version: 2.8.9
- resolution: "hosted-git-info@npm:2.8.9"
- checksum: 10c0/317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70
- languageName: node
- linkType: hard
-
-"html-comment-regex@npm:^1.1.0":
- version: 1.1.2
- resolution: "html-comment-regex@npm:1.1.2"
- checksum: 10c0/c6fe47e7efbb2e853217854cdf352e53a6d414f87a6029456010250179f9ac2c77ef657dd4e26f4d3930f8def0e2fad015c233a3181a195a59fb4eeda6d333f9
- languageName: node
- linkType: hard
-
-"http-cache-semantics@npm:^4.1.1":
- version: 4.2.0
- resolution: "http-cache-semantics@npm:4.2.0"
- checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37
- languageName: node
- linkType: hard
-
-"http-proxy-agent@npm:^7.0.0":
- version: 7.0.2
- resolution: "http-proxy-agent@npm:7.0.2"
- dependencies:
- agent-base: "npm:^7.1.0"
- debug: "npm:^4.3.4"
- checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
- languageName: node
- linkType: hard
-
-"https-browserify@npm:^1.0.0":
- version: 1.0.0
- resolution: "https-browserify@npm:1.0.0"
- checksum: 10c0/e17b6943bc24ea9b9a7da5714645d808670af75a425f29baffc3284962626efdc1eb3aa9bbffaa6e64028a6ad98af5b09fabcb454a8f918fb686abfdc9e9b8ae
- languageName: node
- linkType: hard
-
-"https-proxy-agent@npm:^7.0.1":
- version: 7.0.6
- resolution: "https-proxy-agent@npm:7.0.6"
- dependencies:
- agent-base: "npm:^7.1.2"
- debug: "npm:4"
- checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:^0.6.3":
- version: 0.6.3
- resolution: "iconv-lite@npm:0.6.3"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3.0.0"
- checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:^0.7.2":
- version: 0.7.2
- resolution: "iconv-lite@npm:0.7.2"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3.0.0"
- checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722
- languageName: node
- linkType: hard
-
-"icss-replace-symbols@npm:^1.1.0":
- version: 1.1.0
- resolution: "icss-replace-symbols@npm:1.1.0"
- checksum: 10c0/aaa5b67f82781fccc77bf6df14eaa9177ce3944462ef82b2b9e3b9f17d8fcd90f8851ffd5e6e249ebc5c464bfda07c2eccce2d122274c51c9d5b359b087f7049
- languageName: node
- linkType: hard
-
-"icss-utils@npm:^2.1.0":
- version: 2.1.0
- resolution: "icss-utils@npm:2.1.0"
- dependencies:
- postcss: "npm:^6.0.1"
- checksum: 10c0/69d3b8fdea58fbf5c26d8dc2d1b7d8ded34fd8fb0800ed60b390e0ae5f596e77b155c587fb62e7642d1064d2d72fc672676df58ef935eba7303d79467e43edbf
- languageName: node
- linkType: hard
-
-"ieee754@npm:^1.1.4":
- version: 1.2.1
- resolution: "ieee754@npm:1.2.1"
- checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
- languageName: node
- linkType: hard
-
-"iferr@npm:^0.1.5":
- version: 0.1.5
- resolution: "iferr@npm:0.1.5"
- checksum: 10c0/e0669b1757d0501b43a158321945d1cc1fe56f28a972df2f88a5818f05c8853c7669ba5d6cfbbf9a1a312850699de6e528626df108d559005df7e15d16ee334c
- languageName: node
- linkType: hard
-
-"image-size@npm:~0.5.0":
- version: 0.5.5
- resolution: "image-size@npm:0.5.5"
- bin:
- image-size: bin/image-size.js
- checksum: 10c0/655204163af06732f483a9fe7cce9dff4a29b7b2e88f5c957a5852e8143fa750f5e54b1955a2ca83de99c5220dbd680002d0d4e09140b01433520f4d5a0b1f4c
- languageName: node
- linkType: hard
-
-"imurmurhash@npm:^0.1.4":
- version: 0.1.4
- resolution: "imurmurhash@npm:0.1.4"
- checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
- languageName: node
- linkType: hard
-
-"indexes-of@npm:^1.0.1":
- version: 1.0.1
- resolution: "indexes-of@npm:1.0.1"
- checksum: 10c0/1ea1d2d00173fa38f728acfa00303657e1115361481e52f6cbae47c5d603219006c9357abf6bc323f1fb0fbe937e363bbb19e5c66c12578eea6ec6b7e892bdba
- languageName: node
- linkType: hard
-
-"inflight@npm:^1.0.4":
- version: 1.0.6
- resolution: "inflight@npm:1.0.6"
- dependencies:
- once: "npm:^1.3.0"
- wrappy: "npm:1"
- checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2
- languageName: node
- linkType: hard
-
-"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3":
- version: 2.0.4
- resolution: "inherits@npm:2.0.4"
- checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
- languageName: node
- linkType: hard
-
-"inherits@npm:2.0.1":
- version: 2.0.1
- resolution: "inherits@npm:2.0.1"
- checksum: 10c0/bfc7b37c21a2cddb272adc65b053b1716612d408bb2c9a4e5c32679dc2b08032aadd67880c405be3dff060a62e45b353fc3d9fa79a3067ad7a3deb6a283cc5c6
- languageName: node
- linkType: hard
-
-"inherits@npm:2.0.3":
- version: 2.0.3
- resolution: "inherits@npm:2.0.3"
- checksum: 10c0/6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7
- languageName: node
- linkType: hard
-
-"interpret@npm:^1.0.0":
- version: 1.4.0
- resolution: "interpret@npm:1.4.0"
- checksum: 10c0/08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450
- languageName: node
- linkType: hard
-
-"invariant@npm:^2.2.2":
- version: 2.2.4
- resolution: "invariant@npm:2.2.4"
- dependencies:
- loose-envify: "npm:^1.0.0"
- checksum: 10c0/5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc
- languageName: node
- linkType: hard
-
-"invert-kv@npm:^1.0.0":
- version: 1.0.0
- resolution: "invert-kv@npm:1.0.0"
- checksum: 10c0/9ccef12ada8494c56175cc0380b4cea18b6c0a368436f324a30e43a332db90bdfb83cd3a7987b71df359cdf931ce45b7daf35b677da56658565d61068e4bc20b
- languageName: node
- linkType: hard
-
-"ip-address@npm:^10.0.1":
- version: 10.1.0
- resolution: "ip-address@npm:10.1.0"
- checksum: 10c0/0103516cfa93f6433b3bd7333fa876eb21263912329bfa47010af5e16934eeeff86f3d2ae700a3744a137839ddfad62b900c7a445607884a49b5d1e32a3d7566
- languageName: node
- linkType: hard
-
-"is-absolute-url@npm:^2.0.0":
- version: 2.1.0
- resolution: "is-absolute-url@npm:2.1.0"
- checksum: 10c0/2c324c3118752d82c18afadffbea14d35224e76f37a2ee80e05b209386c46d19bef77b58ede41f7b3be552cde16c6cdb0d884807175a6eb40e8c61281dc67c2f
- languageName: node
- linkType: hard
-
-"is-arrayish@npm:^0.2.1":
- version: 0.2.1
- resolution: "is-arrayish@npm:0.2.1"
- checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729
- languageName: node
- linkType: hard
-
-"is-buffer@npm:~1.1.6":
- version: 1.1.6
- resolution: "is-buffer@npm:1.1.6"
- checksum: 10c0/ae18aa0b6e113d6c490ad1db5e8df9bdb57758382b313f5a22c9c61084875c6396d50bbf49315f5b1926d142d74dfb8d31b40d993a383e0a158b15fea7a82234
- languageName: node
- linkType: hard
-
-"is-core-module@npm:^2.9.0":
- version: 2.9.0
- resolution: "is-core-module@npm:2.9.0"
- dependencies:
- has: "npm:^1.0.3"
- checksum: 10c0/056fe4c5f9f383dc1c1b0dc3250c300880b9b1e17e1885077d64a1667926ecc11ba696776597616bfd2fd7f87c7476c01b127a0c842b4821bee2414d0e296e6e
- languageName: node
- linkType: hard
-
-"is-finite@npm:^1.0.0":
- version: 1.1.0
- resolution: "is-finite@npm:1.1.0"
- checksum: 10c0/ca6bc7a0321b339f098e657bd4cbf4bb2410f5a11f1b9adb1a1a9ab72288b64368e8251326cb1f74e985f2779299cec3e1f1e558b68ce7e1e2c9be17b7cfd626
- languageName: node
- linkType: hard
-
-"is-fullwidth-code-point@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-fullwidth-code-point@npm:1.0.0"
- dependencies:
- number-is-nan: "npm:^1.0.0"
- checksum: 10c0/12acfcf16142f2d431bf6af25d68569d3198e81b9799b4ae41058247aafcc666b0127d64384ea28e67a746372611fcbe9b802f69175287aba466da3eddd5ba0f
- languageName: node
- linkType: hard
-
-"is-fullwidth-code-point@npm:^2.0.0":
- version: 2.0.0
- resolution: "is-fullwidth-code-point@npm:2.0.0"
- checksum: 10c0/e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9
- languageName: node
- linkType: hard
-
-"is-plain-obj@npm:^1.0.0":
- version: 1.1.0
- resolution: "is-plain-obj@npm:1.1.0"
- checksum: 10c0/daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c
- languageName: node
- linkType: hard
-
-"is-stream@npm:^1.1.0":
- version: 1.1.0
- resolution: "is-stream@npm:1.1.0"
- checksum: 10c0/b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002
- languageName: node
- linkType: hard
-
-"is-svg@npm:^2.0.0":
- version: 2.1.0
- resolution: "is-svg@npm:2.1.0"
- dependencies:
- html-comment-regex: "npm:^1.1.0"
- checksum: 10c0/b2709e619c6159dabd27731c7ff69b73319bc8694b1dd27dc886026a6e1f895f04c1cc9903ca90310d3766a5f2d01a959735ae9a69be71f3cc9545f8206e1bb9
- languageName: node
- linkType: hard
-
-"is-what@npm:^3.14.1":
- version: 3.14.1
- resolution: "is-what@npm:3.14.1"
- checksum: 10c0/4b770b85454c877b6929a84fd47c318e1f8c2ff70fd72fd625bc3fde8e0c18a6e57345b6e7aa1ee9fbd1c608d27cfe885df473036c5c2e40cd2187250804a2c7
- languageName: node
- linkType: hard
-
-"isarray@npm:0.0.1":
- version: 0.0.1
- resolution: "isarray@npm:0.0.1"
- checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311
- languageName: node
- linkType: hard
-
-"isarray@npm:^1.0.0, isarray@npm:~1.0.0":
- version: 1.0.0
- resolution: "isarray@npm:1.0.0"
- checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
- languageName: node
- linkType: hard
-
-"isexe@npm:^2.0.0":
- version: 2.0.0
- resolution: "isexe@npm:2.0.0"
- checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
- languageName: node
- linkType: hard
-
-"isexe@npm:^4.0.0":
- version: 4.0.0
- resolution: "isexe@npm:4.0.0"
- checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce
- languageName: node
- linkType: hard
-
-"jquery-datetimepicker@npm:^2.5.21":
- version: 2.5.21
- resolution: "jquery-datetimepicker@npm:2.5.21"
- dependencies:
- jquery: "npm:>= 1.7.2"
- jquery-mousewheel: "npm:>= 3.1.13"
- php-date-formatter: "npm:^1.3.4"
- checksum: 10c0/e8d91b51cbf41379d4d357d697a7a613427703f4a42f6dc8aed3f9f932431f02a8ebda14327c80b2db00b69fa172070e6daa5c0e97b199f922c28172ce3ec56f
- languageName: node
- linkType: hard
-
-"jquery-mousewheel@npm:>= 3.1.13":
- version: 3.1.13
- resolution: "jquery-mousewheel@npm:3.1.13"
- checksum: 10c0/acd57dfe7d2268ddddb906cfca6316fb364aeb74dc4d15379baa60c88b5fd3cc0aa7830e09cb6e702a4de9306e467519f147396e49f2f9c9f2c7118537721fab
- languageName: node
- linkType: hard
-
-"jquery@npm:>= 1.7.2, jquery@npm:>=1.10":
- version: 3.6.0
- resolution: "jquery@npm:3.6.0"
- checksum: 10c0/45a63f8376a8918087c0277b2394dd382fcacff765c41ccbb5009a9336f8c971bf41c6a0519062edc1dff6333d96959c3a3ec55c95eb6c94d5372253d6cbf82f
- languageName: node
- linkType: hard
-
-"js-base64@npm:^2.1.9":
- version: 2.6.4
- resolution: "js-base64@npm:2.6.4"
- checksum: 10c0/95d93c4eca0bbe0f2d5ffe8682d9acd23051e5c0ad71873ff5a48dd46a5f19025de9f7b36e63fa3f02f342ae4a8ca4c56e7b590d7300ebb6639ce09675e0fd02
- languageName: node
- linkType: hard
-
-"js-tokens@npm:^3.0.0 || ^4.0.0":
- version: 4.0.0
- resolution: "js-tokens@npm:4.0.0"
- checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
- languageName: node
- linkType: hard
-
-"js-tokens@npm:^3.0.2":
- version: 3.0.2
- resolution: "js-tokens@npm:3.0.2"
- checksum: 10c0/e3c3ee4d12643d90197628eb022a2884a15f08ea7dcac1ce97fdeee43031fbfc7ede674f2cdbbb582dcd4c94388b22e52d56c6cbeb2ac7d1b57c2f33c405e2ba
- languageName: node
- linkType: hard
-
-"js-yaml@npm:~3.7.0":
- version: 3.7.0
- resolution: "js-yaml@npm:3.7.0"
- dependencies:
- argparse: "npm:^1.0.7"
- esprima: "npm:^2.6.0"
- bin:
- js-yaml: bin/js-yaml.js
- checksum: 10c0/e236852d4439c7750c810f217ca80631844cfb0e4ab4993349c3e612ee273256d9895e1bb06b3990a3cc42fa1105ffcaa55a6b711f25901c0d803287bdcf52e1
- languageName: node
- linkType: hard
-
-"jsesc@npm:^1.3.0":
- version: 1.3.0
- resolution: "jsesc@npm:1.3.0"
- bin:
- jsesc: bin/jsesc
- checksum: 10c0/62420889dd46b4cdba4df20fe6ffdefa6eeab7532fb4079170ea1b53c45d5a6abcb485144905833e5a69cc1735db12319b1e0b0f9a556811ec926b57a22318a7
- languageName: node
- linkType: hard
-
-"json-loader@npm:^0.5.1, json-loader@npm:^0.5.4":
- version: 0.5.7
- resolution: "json-loader@npm:0.5.7"
- checksum: 10c0/b155b81f644693b5418e595c127c552c34373f749d2d125df24cfe753de6b3b0af88dda5d58e7b65940ed03ec46c19fc3d09f53b932b45c9ae3ca1fb55e44a15
- languageName: node
- linkType: hard
-
-"json-schema-traverse@npm:^0.4.1":
- version: 0.4.1
- resolution: "json-schema-traverse@npm:0.4.1"
- checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
- languageName: node
- linkType: hard
-
-"json3@npm:^3.3.2":
- version: 3.3.3
- resolution: "json3@npm:3.3.3"
- checksum: 10c0/ca6942dbcef852c8fda5a87261b82dfa9135b43777cd05bdfc08d071592bd328e289c78eb15d0c45884d9cfe71a2a20601aaa9be16e98d488b5a2f51ee91f259
- languageName: node
- linkType: hard
-
-"json5@npm:^0.5.0, json5@npm:^0.5.1":
- version: 0.5.1
- resolution: "json5@npm:0.5.1"
- bin:
- json5: lib/cli.js
- checksum: 10c0/aca0ab7ccf1883d3fc2ecc16219bc389716a773f774552817deaadb549acc0bb502e317a81946fc0a48f9eb6e0822cf1dc5a097009203f2c94de84c8db02a1f3
- languageName: node
- linkType: hard
-
-"json5@npm:^1.0.1":
- version: 1.0.1
- resolution: "json5@npm:1.0.1"
- dependencies:
- minimist: "npm:^1.2.0"
- bin:
- json5: lib/cli.js
- checksum: 10c0/7f75dd797151680a4e14c4224c1343b32a43272aa6e6333ddec2b0822df4ea116971689b251879a1248592da24f7929902c13f83d7390c3f3d44f18e8e9719f5
- languageName: node
- linkType: hard
-
-"keen-js@npm:^3.0.0":
- version: 3.5.0
- resolution: "keen-js@npm:3.5.0"
- dependencies:
- JSON2: "npm:^0.1.0"
- browserify-versionify: "npm:1.0.3"
- component-emitter: "npm:^1.1.3"
- domready: "npm:0.3.0"
- json3: "npm:^3.3.2"
- spin.js: "npm:^2.0.1"
- superagent: "npm:^1.8.3"
- checksum: 10c0/ebaf9e5f04e61fe15bf69c7fe50c231431784bae28c9b215a4dab8b173a6e73dec5cd56c4d27b561591997b532758047614af1ab8ef37f42dbfeb0dde477673d
- languageName: node
- linkType: hard
-
-"klona@npm:^2.0.4":
- version: 2.0.5
- resolution: "klona@npm:2.0.5"
- checksum: 10c0/5b752c11ca8e2996612386699f52cc5aed802aa4116663d26239ac0b054fae25191dacb95587ecf1a167b039daa9fc3fa2da17dfd5d0821f3037de3821d9a9e5
- languageName: node
- linkType: hard
-
-"knockout@npm:3.5.1":
- version: 3.5.1
- resolution: "knockout@npm:3.5.1"
- checksum: 10c0/cf091711cbdcbccab12ab814b3a2f44f7b6cc00e30b08045ba514a78c369066fa7b979e07b4caad20eea3457e3b589ff86779cb214bafbc9943ff36240eb5c00
- languageName: node
- linkType: hard
-
-"lcid@npm:^1.0.0":
- version: 1.0.0
- resolution: "lcid@npm:1.0.0"
- dependencies:
- invert-kv: "npm:^1.0.0"
- checksum: 10c0/87fb32196c3c80458778f34f71c042e114f3134a3c86c0d60ee9c94f0750e467d7ca0c005a5224ffd9d49a6e449b5e5c31e1544f1827765a0ba8747298f5980e
- languageName: node
- linkType: hard
-
-"less-loader@npm:^10.2.0":
- version: 10.2.0
- resolution: "less-loader@npm:10.2.0"
- dependencies:
- klona: "npm:^2.0.4"
- peerDependencies:
- less: ^3.5.0 || ^4.0.0
- webpack: ^5.0.0
- checksum: 10c0/214f190c7139a6a005f8f505d7f05e929361b1a16eaae427be8809f722ef798d1cb6525114d9e03ab87b6fa5e3fbe2d849494016df971cb29b9c10fd9f1a5a66
- languageName: node
- linkType: hard
-
-"less-loader@npm:~2.2.3":
- version: 2.2.3
- resolution: "less-loader@npm:2.2.3"
- dependencies:
- loader-utils: "npm:^0.2.5"
- peerDependencies:
- less: ^2.3.1
- checksum: 10c0/fe0b5b5965023869b7a734d4fa5fc6a883436db36f2a7b723d55a5fd1bdd7bbdc69c1a249365693baa3e7592b311b6da0a7d8ec2ffae5a236a710b4ca3b7b277
- languageName: node
- linkType: hard
-
-"less@npm:^4.1.2":
- version: 4.1.3
- resolution: "less@npm:4.1.3"
- dependencies:
- copy-anything: "npm:^2.0.1"
- errno: "npm:^0.1.1"
- graceful-fs: "npm:^4.1.2"
- image-size: "npm:~0.5.0"
- make-dir: "npm:^2.1.0"
- mime: "npm:^1.4.1"
- needle: "npm:^3.1.0"
- parse-node-version: "npm:^1.0.1"
- source-map: "npm:~0.6.0"
- tslib: "npm:^2.3.0"
- dependenciesMeta:
- errno:
- optional: true
- graceful-fs:
- optional: true
- image-size:
- optional: true
- make-dir:
- optional: true
- mime:
- optional: true
- needle:
- optional: true
- source-map:
- optional: true
- bin:
- lessc: bin/lessc
- checksum: 10c0/d67ca673a2c409a3069bb088c21976fa6a22eaf4428a23f486afa3ca57c2c004f424e7466dfc8d38a4dca25bc7b75943de5e3394d3a7841d8812cec696790e22
- languageName: node
- linkType: hard
-
-"load-json-file@npm:^2.0.0":
- version: 2.0.0
- resolution: "load-json-file@npm:2.0.0"
- dependencies:
- graceful-fs: "npm:^4.1.2"
- parse-json: "npm:^2.2.0"
- pify: "npm:^2.0.0"
- strip-bom: "npm:^3.0.0"
- checksum: 10c0/15cf1259361325fadfc54cd4ecc5d6729103c8873492001ba5473fb1ef753000f680c887db6c86fec69a4ede009efeb8c0c0c77b2a31bc54d2793767e25577c9
- languageName: node
- linkType: hard
-
-"loader-runner@npm:^2.3.0":
- version: 2.4.0
- resolution: "loader-runner@npm:2.4.0"
- checksum: 10c0/1f723bd8318453c2d073d7befbf891ba6d2a02f22622688bf7d22e7ba527a0f9476c7fdfedc6bfa2b55c0389d9f406f3a5239ed1b33c9088d77cfed085086a1e
- languageName: node
- linkType: hard
-
-"loader-utils@npm:^0.2.16, loader-utils@npm:^0.2.5":
- version: 0.2.17
- resolution: "loader-utils@npm:0.2.17"
- dependencies:
- big.js: "npm:^3.1.3"
- emojis-list: "npm:^2.0.0"
- json5: "npm:^0.5.0"
- object-assign: "npm:^4.0.1"
- checksum: 10c0/d6b65a0d460d2c8621f72e0471127895f4a25ea3a5d2caabf0710c8e58a904af5876834c6ad89d2fbab35e74c6e7f2f4f8137559e6e4e84b74957f4592bcab0b
- languageName: node
- linkType: hard
-
-"loader-utils@npm:^1.0.2, loader-utils@npm:^1.1.0":
- version: 1.4.0
- resolution: "loader-utils@npm:1.4.0"
- dependencies:
- big.js: "npm:^5.2.2"
- emojis-list: "npm:^3.0.0"
- json5: "npm:^1.0.1"
- checksum: 10c0/b3f383612c23c0adf535d61709fb3eaf864afa54dae45608e3831156b89b4b05a0a4ddc6db7d742071babe872750ba3f4f9ce89326d94f6e096dbed978fa424e
- languageName: node
- linkType: hard
-
-"locate-path@npm:^2.0.0":
- version: 2.0.0
- resolution: "locate-path@npm:2.0.0"
- dependencies:
- p-locate: "npm:^2.0.0"
- path-exists: "npm:^3.0.0"
- checksum: 10c0/24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133
- languageName: node
- linkType: hard
-
-"lodash.camelcase@npm:^4.3.0":
- version: 4.3.0
- resolution: "lodash.camelcase@npm:4.3.0"
- checksum: 10c0/fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432
- languageName: node
- linkType: hard
-
-"lodash.memoize@npm:^4.1.2":
- version: 4.1.2
- resolution: "lodash.memoize@npm:4.1.2"
- checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8
- languageName: node
- linkType: hard
-
-"lodash.uniq@npm:^4.5.0":
- version: 4.5.0
- resolution: "lodash.uniq@npm:4.5.0"
- checksum: 10c0/262d400bb0952f112162a320cc4a75dea4f66078b9e7e3075ffbc9c6aa30b3e9df3cf20e7da7d566105e1ccf7804e4fbd7d804eee0b53de05d83f16ffbf41c5e
- languageName: node
- linkType: hard
-
-"lodash@npm:^4.17.14, lodash@npm:^4.17.4":
- version: 4.17.21
- resolution: "lodash@npm:4.17.21"
- checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
- languageName: node
- linkType: hard
-
-"loose-envify@npm:^1.0.0":
- version: 1.4.0
- resolution: "loose-envify@npm:1.4.0"
- dependencies:
- js-tokens: "npm:^3.0.0 || ^4.0.0"
- bin:
- loose-envify: cli.js
- checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1":
- version: 11.2.7
- resolution: "lru-cache@npm:11.2.7"
- checksum: 10c0/549cdb59488baa617135fc12159cafb1a97f91079f35093bb3bcad72e849fc64ace636d244212c181dfdf1a99bbfa90757ff303f98561958ee4d0f885d9bd5f7
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^4.0.1, lru-cache@npm:^4.1.1":
- version: 4.1.5
- resolution: "lru-cache@npm:4.1.5"
- dependencies:
- pseudomap: "npm:^1.0.2"
- yallist: "npm:^2.1.2"
- checksum: 10c0/1ca5306814e5add9ec63556d6fd9b24a4ecdeaef8e9cea52cbf30301e6b88c8d8ddc7cab45b59b56eb763e6c45af911585dc89925a074ab65e1502e3fe8103cf
- languageName: node
- linkType: hard
-
-"make-dir@npm:^1.0.0":
- version: 1.3.0
- resolution: "make-dir@npm:1.3.0"
- dependencies:
- pify: "npm:^3.0.0"
- checksum: 10c0/5eb94f47d7ef41d89d1b8eef6539b8950d5bd99eeba093a942bfd327faa37d2d62227526b88b73633243a2ec7972d21eb0f4e5d62ae4e02a79e389f4a7bb3022
- languageName: node
- linkType: hard
-
-"make-dir@npm:^2.1.0":
- version: 2.1.0
- resolution: "make-dir@npm:2.1.0"
- dependencies:
- pify: "npm:^4.0.1"
- semver: "npm:^5.6.0"
- checksum: 10c0/ada869944d866229819735bee5548944caef560d7a8536ecbc6536edca28c72add47cc4f6fc39c54fb25d06b58da1f8994cf7d9df7dadea047064749efc085d8
- languageName: node
- linkType: hard
-
-"make-fetch-happen@npm:^15.0.0":
- version: 15.0.5
- resolution: "make-fetch-happen@npm:15.0.5"
- dependencies:
- "@gar/promise-retry": "npm:^1.0.0"
- "@npmcli/agent": "npm:^4.0.0"
- "@npmcli/redact": "npm:^4.0.0"
- cacache: "npm:^20.0.1"
- http-cache-semantics: "npm:^4.1.1"
- minipass: "npm:^7.0.2"
- minipass-fetch: "npm:^5.0.0"
- minipass-flush: "npm:^1.0.5"
- minipass-pipeline: "npm:^1.2.4"
- negotiator: "npm:^1.0.0"
- proc-log: "npm:^6.0.0"
- ssri: "npm:^13.0.0"
- checksum: 10c0/527580eb5e5476e6ad07a4e3bd017d13e935f4be815674b442081ae5a721c13d3af5715006619e6be79a85723067e047f83a0c9e699f41d8cec43609a8de4f7b
- languageName: node
- linkType: hard
-
-"math-expression-evaluator@npm:^1.2.14":
- version: 1.3.14
- resolution: "math-expression-evaluator@npm:1.3.14"
- checksum: 10c0/a98dcb54510f57d9d78c66f73c6ee5e8e3a69d7dcfd3f0e611bc6957a764f23fed3b342888fca79ed49b865b09338581d19bb3acc4d788ee308618c7c7cdca10
- languageName: node
- linkType: hard
-
-"md5.js@npm:^1.3.4":
- version: 1.3.5
- resolution: "md5.js@npm:1.3.5"
- dependencies:
- hash-base: "npm:^3.0.0"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5
- languageName: node
- linkType: hard
-
-"md5@npm:^2.2.1":
- version: 2.3.0
- resolution: "md5@npm:2.3.0"
- dependencies:
- charenc: "npm:0.0.2"
- crypt: "npm:0.0.2"
- is-buffer: "npm:~1.1.6"
- checksum: 10c0/14a21d597d92e5b738255fbe7fe379905b8cb97e0a49d44a20b58526a646ec5518c337b817ce0094ca94d3e81a3313879c4c7b510d250c282d53afbbdede9110
- languageName: node
- linkType: hard
-
-"mem@npm:^1.1.0":
- version: 1.1.0
- resolution: "mem@npm:1.1.0"
- dependencies:
- mimic-fn: "npm:^1.0.0"
- checksum: 10c0/f5150bb975a7d641375d3c1962426bf338952142a429ce01e9792b03df9b63d5911d3feb7e5e50f406531ace646f3fbe39b7dc716c729d617a28b3bbdc799649
- languageName: node
- linkType: hard
-
-"memory-fs@npm:^0.4.0, memory-fs@npm:~0.4.1":
- version: 0.4.1
- resolution: "memory-fs@npm:0.4.1"
- dependencies:
- errno: "npm:^0.1.3"
- readable-stream: "npm:^2.0.1"
- checksum: 10c0/f114c44ad8285103cb0e71420cf5bb628d3eb6cbd918197f5951590ff56ba2072f4a97924949c170320cdf180d2da4e8d16a0edd92ba0ca2d2de51dc932841e2
- languageName: node
- linkType: hard
-
-"methods@npm:~1.1.1":
- version: 1.1.2
- resolution: "methods@npm:1.1.2"
- checksum: 10c0/bdf7cc72ff0a33e3eede03708c08983c4d7a173f91348b4b1e4f47d4cdbf734433ad971e7d1e8c77247d9e5cd8adb81ea4c67b0a2db526b758b2233d7814b8b2
- languageName: node
- linkType: hard
-
-"miller-rabin@npm:^4.0.0":
- version: 4.0.1
- resolution: "miller-rabin@npm:4.0.1"
- dependencies:
- bn.js: "npm:^4.0.0"
- brorand: "npm:^1.0.1"
- bin:
- miller-rabin: bin/miller-rabin
- checksum: 10c0/26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346
- languageName: node
- linkType: hard
-
-"mime-db@npm:1.52.0":
- version: 1.52.0
- resolution: "mime-db@npm:1.52.0"
- checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
- languageName: node
- linkType: hard
-
-"mime-types@npm:^2.1.3":
- version: 2.1.35
- resolution: "mime-types@npm:2.1.35"
- dependencies:
- mime-db: "npm:1.52.0"
- checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
- languageName: node
- linkType: hard
-
-"mime@npm:1.3.4":
- version: 1.3.4
- resolution: "mime@npm:1.3.4"
- bin:
- mime: cli.js
- checksum: 10c0/06ca13fe3be58eedfadc4351ca735c19ad25f2f8f0ecc746c1b2e780934829cc0e4b303269f0abfc919ecb6f149f1b648700f996d2b7935fb23208f7357438d4
- languageName: node
- linkType: hard
-
-"mime@npm:^1.4.1":
- version: 1.6.0
- resolution: "mime@npm:1.6.0"
- bin:
- mime: cli.js
- checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0
- languageName: node
- linkType: hard
-
-"mimic-fn@npm:^1.0.0":
- version: 1.2.0
- resolution: "mimic-fn@npm:1.2.0"
- checksum: 10c0/ad55214aec6094c0af4c0beec1a13787556f8116ed88807cf3f05828500f21f93a9482326bcd5a077ae91e3e8795b4e76b5b4c8bb12237ff0e4043a365516cba
- languageName: node
- linkType: hard
-
-"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
- version: 1.0.1
- resolution: "minimalistic-assert@npm:1.0.1"
- checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd
- languageName: node
- linkType: hard
-
-"minimalistic-crypto-utils@npm:^1.0.1":
- version: 1.0.1
- resolution: "minimalistic-crypto-utils@npm:1.0.1"
- checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8
- languageName: node
- linkType: hard
-
-"minimatch@npm:^10.2.2":
- version: 10.2.4
- resolution: "minimatch@npm:10.2.4"
- dependencies:
- brace-expansion: "npm:^5.0.2"
- checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945
- languageName: node
- linkType: hard
-
-"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1":
- version: 3.1.2
- resolution: "minimatch@npm:3.1.2"
- dependencies:
- brace-expansion: "npm:^1.1.7"
- checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311
- languageName: node
- linkType: hard
-
-"minimist@npm:^1.2.0, minimist@npm:^1.2.6":
- version: 1.2.6
- resolution: "minimist@npm:1.2.6"
- checksum: 10c0/d0b566204044481c4401abbd24cc75814e753b37268e7fe7ccc78612bf3e37bf1e45a6c43fb0b119445ea1c413c000bde013f320b7211974f2f49bcbec1d0dbf
- languageName: node
- linkType: hard
-
-"minipass-collect@npm:^2.0.1":
- version: 2.0.1
- resolution: "minipass-collect@npm:2.0.1"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
- languageName: node
- linkType: hard
-
-"minipass-fetch@npm:^5.0.0":
- version: 5.0.2
- resolution: "minipass-fetch@npm:5.0.2"
- dependencies:
- iconv-lite: "npm:^0.7.2"
- minipass: "npm:^7.0.3"
- minipass-sized: "npm:^2.0.0"
- minizlib: "npm:^3.0.1"
- dependenciesMeta:
- iconv-lite:
- optional: true
- checksum: 10c0/ce4ab9f21cfabaead2097d95dd33f485af8072fbc6b19611bce694965393453a1639d641c2bcf1c48f2ea7d41ea7fab8278373f1d0bee4e63b0a5b2cdd0ef649
- languageName: node
- linkType: hard
-
-"minipass-flush@npm:^1.0.5":
- version: 1.0.5
- resolution: "minipass-flush@npm:1.0.5"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
- languageName: node
- linkType: hard
-
-"minipass-pipeline@npm:^1.2.4":
- version: 1.2.4
- resolution: "minipass-pipeline@npm:1.2.4"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
- languageName: node
- linkType: hard
-
-"minipass-sized@npm:^2.0.0":
- version: 2.0.0
- resolution: "minipass-sized@npm:2.0.0"
- dependencies:
- minipass: "npm:^7.1.2"
- checksum: 10c0/f9201696a6f6d68610d04c9c83e3d2e5cb9c026aae1c8cbf7e17f386105cb79c1bb088dbc21bf0b1eb4f3fb5df384fd1e7aa3bf1f33868c416ae8c8a92679db8
- languageName: node
- linkType: hard
-
-"minipass@npm:^3.0.0":
- version: 3.3.6
- resolution: "minipass@npm:3.3.6"
- dependencies:
- yallist: "npm:^4.0.0"
- checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
- languageName: node
- linkType: hard
-
-"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3":
- version: 7.1.3
- resolution: "minipass@npm:7.1.3"
- checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb
- languageName: node
- linkType: hard
-
-"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0":
- version: 3.1.0
- resolution: "minizlib@npm:3.1.0"
- dependencies:
- minipass: "npm:^7.1.2"
- checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec
- languageName: node
- linkType: hard
-
-"mississippi@npm:^2.0.0":
- version: 2.0.0
- resolution: "mississippi@npm:2.0.0"
- dependencies:
- concat-stream: "npm:^1.5.0"
- duplexify: "npm:^3.4.2"
- end-of-stream: "npm:^1.1.0"
- flush-write-stream: "npm:^1.0.0"
- from2: "npm:^2.1.0"
- parallel-transform: "npm:^1.1.0"
- pump: "npm:^2.0.1"
- pumpify: "npm:^1.3.3"
- stream-each: "npm:^1.1.0"
- through2: "npm:^2.0.0"
- checksum: 10c0/f84beaa40491c2466c4a3d15025ceb1ecc822a8e5ef4f6e5622aeb832b32e4eda056c3982337ae2c1e4b3b77fb431af4d3874923c26dee0c026601547589b2db
- languageName: node
- linkType: hard
-
-"mkdirp@npm:^0.5.1, mkdirp@npm:~0.5.0, mkdirp@npm:~0.5.1":
- version: 0.5.6
- resolution: "mkdirp@npm:0.5.6"
- dependencies:
- minimist: "npm:^1.2.6"
- bin:
- mkdirp: bin/cmd.js
- checksum: 10c0/e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01
- languageName: node
- linkType: hard
-
-"move-concurrently@npm:^1.0.1":
- version: 1.0.1
- resolution: "move-concurrently@npm:1.0.1"
- dependencies:
- aproba: "npm:^1.1.1"
- copy-concurrently: "npm:^1.0.0"
- fs-write-stream-atomic: "npm:^1.0.8"
- mkdirp: "npm:^0.5.1"
- rimraf: "npm:^2.5.4"
- run-queue: "npm:^1.0.3"
- checksum: 10c0/0fe81acf3bbbc322013c2f4ee4a48cf8d180a7d925fb9284c0f1f444e862d7eb0421ee074b68d35357a12f0d5e94a322049dc9da480672331b5b8895743eb66a
- languageName: node
- linkType: hard
-
-"ms@npm:2.0.0":
- version: 2.0.0
- resolution: "ms@npm:2.0.0"
- checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d
- languageName: node
- linkType: hard
-
-"ms@npm:^2.1.1, ms@npm:^2.1.3":
- version: 2.1.3
- resolution: "ms@npm:2.1.3"
- checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
- languageName: node
- linkType: hard
-
-"needle@npm:^3.1.0":
- version: 3.1.0
- resolution: "needle@npm:3.1.0"
- dependencies:
- debug: "npm:^3.2.6"
- iconv-lite: "npm:^0.6.3"
- sax: "npm:^1.2.4"
- bin:
- needle: bin/needle
- checksum: 10c0/b55e169878b7480a8d09bcfcd5614e7b96aa2f04af7e0f86e446c022eaac35dd7aed694aa4a9e751741e574e1f648d3ff388b16c2528787fee49ed5bf02853e0
- languageName: node
- linkType: hard
-
-"negotiator@npm:^1.0.0":
- version: 1.0.0
- resolution: "negotiator@npm:1.0.0"
- checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b
- languageName: node
- linkType: hard
-
-"next-tick@npm:^1.1.0":
- version: 1.1.0
- resolution: "next-tick@npm:1.1.0"
- checksum: 10c0/3ba80dd805fcb336b4f52e010992f3e6175869c8d88bf4ff0a81d5d66e6049f89993463b28211613e58a6b7fe93ff5ccbba0da18d4fa574b96289e8f0b577f28
- languageName: node
- linkType: hard
-
-"node-gyp@npm:latest":
- version: 12.2.0
- resolution: "node-gyp@npm:12.2.0"
- dependencies:
- env-paths: "npm:^2.2.0"
- exponential-backoff: "npm:^3.1.1"
- graceful-fs: "npm:^4.2.6"
- make-fetch-happen: "npm:^15.0.0"
- nopt: "npm:^9.0.0"
- proc-log: "npm:^6.0.0"
- semver: "npm:^7.3.5"
- tar: "npm:^7.5.4"
- tinyglobby: "npm:^0.2.12"
- which: "npm:^6.0.0"
- bin:
- node-gyp: bin/node-gyp.js
- checksum: 10c0/3ed046746a5a7d90950cd8b0547332b06598443f31fe213ef4332a7174c7b7d259e1704835feda79b87d3f02e59d7791842aac60642ede4396ab25fdf0f8f759
- languageName: node
- linkType: hard
-
-"node-libs-browser@npm:^2.0.0":
- version: 2.2.1
- resolution: "node-libs-browser@npm:2.2.1"
- dependencies:
- assert: "npm:^1.1.1"
- browserify-zlib: "npm:^0.2.0"
- buffer: "npm:^4.3.0"
- console-browserify: "npm:^1.1.0"
- constants-browserify: "npm:^1.0.0"
- crypto-browserify: "npm:^3.11.0"
- domain-browser: "npm:^1.1.1"
- events: "npm:^3.0.0"
- https-browserify: "npm:^1.0.0"
- os-browserify: "npm:^0.3.0"
- path-browserify: "npm:0.0.1"
- process: "npm:^0.11.10"
- punycode: "npm:^1.2.4"
- querystring-es3: "npm:^0.2.0"
- readable-stream: "npm:^2.3.3"
- stream-browserify: "npm:^2.0.1"
- stream-http: "npm:^2.7.2"
- string_decoder: "npm:^1.0.0"
- timers-browserify: "npm:^2.0.4"
- tty-browserify: "npm:0.0.0"
- url: "npm:^0.11.0"
- util: "npm:^0.11.0"
- vm-browserify: "npm:^1.0.1"
- checksum: 10c0/0e05321a6396408903ed642231d2bca7dd96492d074c7af161ba06a63c95378bd3de50b4105eccbbc02d93ba3da69f0ff5e624bc2a8c92ca462ceb6a403e7986
- languageName: node
- linkType: hard
-
-"nopt@npm:^9.0.0":
- version: 9.0.0
- resolution: "nopt@npm:9.0.0"
- dependencies:
- abbrev: "npm:^4.0.0"
- bin:
- nopt: bin/nopt.js
- checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd
- languageName: node
- linkType: hard
-
-"normalize-package-data@npm:^2.3.2":
- version: 2.5.0
- resolution: "normalize-package-data@npm:2.5.0"
- dependencies:
- hosted-git-info: "npm:^2.1.4"
- resolve: "npm:^1.10.0"
- semver: "npm:2 || 3 || 4 || 5"
- validate-npm-package-license: "npm:^3.0.1"
- checksum: 10c0/357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504
- languageName: node
- linkType: hard
-
-"normalize-range@npm:^0.1.2":
- version: 0.1.2
- resolution: "normalize-range@npm:0.1.2"
- checksum: 10c0/bf39b73a63e0a42ad1a48c2bd1bda5a07ede64a7e2567307a407674e595bcff0fa0d57e8e5f1e7fa5e91000797c7615e13613227aaaa4d6d6e87f5bd5cc95de6
- languageName: node
- linkType: hard
-
-"normalize-url@npm:^1.4.0":
- version: 1.9.1
- resolution: "normalize-url@npm:1.9.1"
- dependencies:
- object-assign: "npm:^4.0.1"
- prepend-http: "npm:^1.0.0"
- query-string: "npm:^4.1.0"
- sort-keys: "npm:^1.0.0"
- checksum: 10c0/5ecd525f743c3fb5370d2bab8e78446f3e3bd7c0c97a5fd3f0bc0c5f396fbd117d13c9118766128d25ed575755cb539dc33a38419f18ca9d8577c8d1cd7a8daf
- languageName: node
- linkType: hard
-
-"npm-run-path@npm:^2.0.0":
- version: 2.0.2
- resolution: "npm-run-path@npm:2.0.2"
- dependencies:
- path-key: "npm:^2.0.0"
- checksum: 10c0/95549a477886f48346568c97b08c4fda9cdbf7ce8a4fbc2213f36896d0d19249e32d68d7451bdcbca8041b5fba04a6b2c4a618beaf19849505c05b700740f1de
- languageName: node
- linkType: hard
-
-"num2fraction@npm:^1.2.2":
- version: 1.2.2
- resolution: "num2fraction@npm:1.2.2"
- checksum: 10c0/3bf17b44af00508a2b0370146629710645c3e3ff3c052893680efe3f4a6ff5c953ce9e54734013b02b35744a49352d54fbc5d8b455fac979047ef17dd8ec74bd
- languageName: node
- linkType: hard
-
-"number-is-nan@npm:^1.0.0":
- version: 1.0.1
- resolution: "number-is-nan@npm:1.0.1"
- checksum: 10c0/cb97149006acc5cd512c13c1838223abdf202e76ddfa059c5e8e7507aff2c3a78cd19057516885a2f6f5b576543dc4f7b6f3c997cc7df53ae26c260855466df5
- languageName: node
- linkType: hard
-
-"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
- version: 4.1.1
- resolution: "object-assign@npm:4.1.1"
- checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414
- languageName: node
- linkType: hard
-
-"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
- version: 1.4.0
- resolution: "once@npm:1.4.0"
- dependencies:
- wrappy: "npm:1"
- checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0
- languageName: node
- linkType: hard
-
-"os-browserify@npm:^0.3.0":
- version: 0.3.0
- resolution: "os-browserify@npm:0.3.0"
- checksum: 10c0/6ff32cb1efe2bc6930ad0fd4c50e30c38010aee909eba8d65be60af55efd6cbb48f0287e3649b4e3f3a63dce5a667b23c187c4293a75e557f0d5489d735bcf52
- languageName: node
- linkType: hard
-
-"os-homedir@npm:^1.0.0":
- version: 1.0.2
- resolution: "os-homedir@npm:1.0.2"
- checksum: 10c0/6be4aa67317ee247b8d46142e243fb4ef1d2d65d3067f54bfc5079257a2f4d4d76b2da78cba7af3cb3f56dbb2e4202e0c47f26171d11ca1ed4008d842c90363f
- languageName: node
- linkType: hard
-
-"os-locale@npm:^2.0.0":
- version: 2.1.0
- resolution: "os-locale@npm:2.1.0"
- dependencies:
- execa: "npm:^0.7.0"
- lcid: "npm:^1.0.0"
- mem: "npm:^1.1.0"
- checksum: 10c0/6f1acc060552a59f477ab541e9149a712f93a4d7b5262d070698dbe98cf047f35c7685d759a86dc56c12b76fdfbab1bf7216a74232263efbe7365de2a5d70834
- languageName: node
- linkType: hard
-
-"os-tmpdir@npm:^1.0.1":
- version: 1.0.2
- resolution: "os-tmpdir@npm:1.0.2"
- checksum: 10c0/f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990
- languageName: node
- linkType: hard
-
-"p-finally@npm:^1.0.0":
- version: 1.0.0
- resolution: "p-finally@npm:1.0.0"
- checksum: 10c0/6b8552339a71fe7bd424d01d8451eea92d379a711fc62f6b2fe64cad8a472c7259a236c9a22b4733abca0b5666ad503cb497792a0478c5af31ded793d00937e7
- languageName: node
- linkType: hard
-
-"p-limit@npm:^1.1.0":
- version: 1.3.0
- resolution: "p-limit@npm:1.3.0"
- dependencies:
- p-try: "npm:^1.0.0"
- checksum: 10c0/5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee
- languageName: node
- linkType: hard
-
-"p-locate@npm:^2.0.0":
- version: 2.0.0
- resolution: "p-locate@npm:2.0.0"
- dependencies:
- p-limit: "npm:^1.1.0"
- checksum: 10c0/82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67
- languageName: node
- linkType: hard
-
-"p-map@npm:^7.0.2":
- version: 7.0.4
- resolution: "p-map@npm:7.0.4"
- checksum: 10c0/a5030935d3cb2919d7e89454d1ce82141e6f9955413658b8c9403cfe379283770ed3048146b44cde168aa9e8c716505f196d5689db0ae3ce9a71521a2fef3abd
- languageName: node
- linkType: hard
-
-"p-try@npm:^1.0.0":
- version: 1.0.0
- resolution: "p-try@npm:1.0.0"
- checksum: 10c0/757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a
- languageName: node
- linkType: hard
-
-"pako@npm:~1.0.5":
- version: 1.0.11
- resolution: "pako@npm:1.0.11"
- checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe
- languageName: node
- linkType: hard
-
-"parallel-transform@npm:^1.1.0":
- version: 1.2.0
- resolution: "parallel-transform@npm:1.2.0"
- dependencies:
- cyclist: "npm:^1.0.1"
- inherits: "npm:^2.0.3"
- readable-stream: "npm:^2.1.5"
- checksum: 10c0/ab0e58569e73681ca4b9c9228189bdb6cbea535295fae344cf0d8342fd33a950961914f3c414f81894c1498fb9ad1c079b4625d2b7ceae9e6ab812f22e3bea3f
- languageName: node
- linkType: hard
-
-"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.5":
- version: 5.1.6
- resolution: "parse-asn1@npm:5.1.6"
- dependencies:
- asn1.js: "npm:^5.2.0"
- browserify-aes: "npm:^1.0.0"
- evp_bytestokey: "npm:^1.0.0"
- pbkdf2: "npm:^3.0.3"
- safe-buffer: "npm:^5.1.1"
- checksum: 10c0/4ed1d9b9e120c5484d29d67bb90171aac0b73422bc016d6294160aea983275c28a27ab85d862059a36a86a97dd31b7ddd97486802ca9fac67115fe3409e9dcbd
- languageName: node
- linkType: hard
-
-"parse-json@npm:^2.2.0":
- version: 2.2.0
- resolution: "parse-json@npm:2.2.0"
- dependencies:
- error-ex: "npm:^1.2.0"
- checksum: 10c0/7a90132aa76016f518a3d5d746a21b3f1ad0f97a68436ed71b6f995b67c7151141f5464eea0c16c59aec9b7756519a0e3007a8f98cf3714632d509ec07736df6
- languageName: node
- linkType: hard
-
-"parse-node-version@npm:^1.0.1":
- version: 1.0.1
- resolution: "parse-node-version@npm:1.0.1"
- checksum: 10c0/999cd3d7da1425c2e182dce82b226c6dc842562d3ed79ec47f5c719c32a7f6c1a5352495b894fc25df164be7f2ede4224758255da9902ddef81f2b77ba46bb2c
- languageName: node
- linkType: hard
-
-"path-browserify@npm:0.0.1":
- version: 0.0.1
- resolution: "path-browserify@npm:0.0.1"
- checksum: 10c0/3d59710cddeea06509d91935196185900f3d9d29376dff68ff0e146fbd41d0fb304e983d0158f30cabe4dd2ffcc6a7d3d977631994ee984c88e66aed50a1ccd3
- languageName: node
- linkType: hard
-
-"path-exists@npm:^2.0.0":
- version: 2.1.0
- resolution: "path-exists@npm:2.1.0"
- dependencies:
- pinkie-promise: "npm:^2.0.0"
- checksum: 10c0/87352f1601c085d5a6eb202f60e5c016c1b790bd0bc09398af446ed3f5c4510b4531ff99cf8acac2d91868886e792927b4292f768b35a83dce12588fb7cbb46e
- languageName: node
- linkType: hard
-
-"path-exists@npm:^3.0.0":
- version: 3.0.0
- resolution: "path-exists@npm:3.0.0"
- checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167
- languageName: node
- linkType: hard
-
-"path-is-absolute@npm:^1.0.0, path-is-absolute@npm:^1.0.1":
- version: 1.0.1
- resolution: "path-is-absolute@npm:1.0.1"
- checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078
- languageName: node
- linkType: hard
-
-"path-key@npm:^2.0.0":
- version: 2.0.1
- resolution: "path-key@npm:2.0.1"
- checksum: 10c0/dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b
- languageName: node
- linkType: hard
-
-"path-parse@npm:^1.0.7":
- version: 1.0.7
- resolution: "path-parse@npm:1.0.7"
- checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1
- languageName: node
- linkType: hard
-
-"path-scurry@npm:^2.0.2":
- version: 2.0.2
- resolution: "path-scurry@npm:2.0.2"
- dependencies:
- lru-cache: "npm:^11.0.0"
- minipass: "npm:^7.1.2"
- checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482
- languageName: node
- linkType: hard
-
-"path-type@npm:^2.0.0":
- version: 2.0.0
- resolution: "path-type@npm:2.0.0"
- dependencies:
- pify: "npm:^2.0.0"
- checksum: 10c0/e475cead839e65a2f8fdde634b24a4116b49daea3917470552e19d49c63e59ef17963bec2f57df2c72a85fcd1f86c8850d9742e68dba9c9c8d9bcac38bab03d6
- languageName: node
- linkType: hard
-
-"pbkdf2@npm:^3.0.3":
- version: 3.1.2
- resolution: "pbkdf2@npm:3.1.2"
- dependencies:
- create-hash: "npm:^1.1.2"
- create-hmac: "npm:^1.1.4"
- ripemd160: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- sha.js: "npm:^2.4.8"
- checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd
- languageName: node
- linkType: hard
-
-"php-date-formatter@npm:^1.3.4":
- version: 1.3.6
- resolution: "php-date-formatter@npm:1.3.6"
- checksum: 10c0/758a752df7aa6b8febbf41f3b049b841adfcc6beae5d2aae7a4e86fdf63b8cbfbcb32e78fd27287992b3dd52ad2f1f41504e1ed8c8a337eab1ab67a871d2b10a
- languageName: node
- linkType: hard
-
-"picomatch@npm:^4.0.3":
- version: 4.0.3
- resolution: "picomatch@npm:4.0.3"
- checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
- languageName: node
- linkType: hard
-
-"pify@npm:^2.0.0":
- version: 2.3.0
- resolution: "pify@npm:2.3.0"
- checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc
- languageName: node
- linkType: hard
-
-"pify@npm:^3.0.0":
- version: 3.0.0
- resolution: "pify@npm:3.0.0"
- checksum: 10c0/fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10
- languageName: node
- linkType: hard
-
-"pify@npm:^4.0.1":
- version: 4.0.1
- resolution: "pify@npm:4.0.1"
- checksum: 10c0/6f9d404b0d47a965437403c9b90eca8bb2536407f03de165940e62e72c8c8b75adda5516c6b9b23675a5877cc0bcac6bdfb0ef0e39414cd2476d5495da40e7cf
- languageName: node
- linkType: hard
-
-"pinkie-promise@npm:^2.0.0":
- version: 2.0.1
- resolution: "pinkie-promise@npm:2.0.1"
- dependencies:
- pinkie: "npm:^2.0.0"
- checksum: 10c0/11b5e5ce2b090c573f8fad7b517cbca1bb9a247587306f05ae71aef6f9b2cd2b923c304aa9663c2409cfde27b367286179f1379bc4ec18a3fbf2bb0d473b160a
- languageName: node
- linkType: hard
-
-"pinkie@npm:^2.0.0":
- version: 2.0.4
- resolution: "pinkie@npm:2.0.4"
- checksum: 10c0/25228b08b5597da42dc384221aa0ce56ee0fbf32965db12ba838e2a9ca0193c2f0609c45551ee077ccd2060bf109137fdb185b00c6d7e0ed7e35006d20fdcbc6
- languageName: node
- linkType: hard
-
-"pkg-dir@npm:^1.0.0":
- version: 1.0.0
- resolution: "pkg-dir@npm:1.0.0"
- dependencies:
- find-up: "npm:^1.0.0"
- checksum: 10c0/aa4c0322b5804fee90081ecc79f89b00922016ff56415a8e6bbafb19833e1bd8001a8999571599fb3212719d4e74e1fdb48338f6ff5b57d857a32cc939701e1a
- languageName: node
- linkType: hard
-
-"pkg-dir@npm:^2.0.0":
- version: 2.0.0
- resolution: "pkg-dir@npm:2.0.0"
- dependencies:
- find-up: "npm:^2.1.0"
- checksum: 10c0/7cdc46c4921bf2c5f9a438851d16243ddde9906928116647ec7784982dd9038ea61c964fbca6f489201845742188180ecd1001b4f69781de1d1dc7d100b14089
- languageName: node
- linkType: hard
-
-"postcss-calc@npm:^5.2.0":
- version: 5.3.1
- resolution: "postcss-calc@npm:5.3.1"
- dependencies:
- postcss: "npm:^5.0.2"
- postcss-message-helpers: "npm:^2.0.0"
- reduce-css-calc: "npm:^1.2.6"
- checksum: 10c0/96444e979f0e7ef2c6e15d545a05c4ebc05eaa00d1743c9181c1008fb0cc06c926242e50b600ef627d9bd418c3fd24adb6732c482eeed0de8e60b64c1c105176
- languageName: node
- linkType: hard
-
-"postcss-colormin@npm:^2.1.8":
- version: 2.2.2
- resolution: "postcss-colormin@npm:2.2.2"
- dependencies:
- colormin: "npm:^1.0.5"
- postcss: "npm:^5.0.13"
- postcss-value-parser: "npm:^3.2.3"
- checksum: 10c0/defcfa7e3c8daa0c116747acd01346867374505347e802115b2e7b476b6f74df4e67820bcd98743a0c02cd92159005d41db42e428700f873bb54647e54417e95
- languageName: node
- linkType: hard
-
-"postcss-convert-values@npm:^2.3.4":
- version: 2.6.1
- resolution: "postcss-convert-values@npm:2.6.1"
- dependencies:
- postcss: "npm:^5.0.11"
- postcss-value-parser: "npm:^3.1.2"
- checksum: 10c0/3efbc1c5feaa6c2eb56da61ad2c9e784c50aad1524d9c6a5a5992da43a276ead2b2d2986c8f8647fad484eefe3e22855993b2fe1984b392c45fd82aa92e7bfb9
- languageName: node
- linkType: hard
-
-"postcss-discard-comments@npm:^2.0.4":
- version: 2.0.4
- resolution: "postcss-discard-comments@npm:2.0.4"
- dependencies:
- postcss: "npm:^5.0.14"
- checksum: 10c0/436039351e2e6fba1358077728f51c5923cf943584394fc38b441444fe572980f08c5c7d1733a2e48fa17096cb98e8180e73b45ed2aea7baabc162943ed403dc
- languageName: node
- linkType: hard
-
-"postcss-discard-duplicates@npm:^2.0.1":
- version: 2.1.0
- resolution: "postcss-discard-duplicates@npm:2.1.0"
- dependencies:
- postcss: "npm:^5.0.4"
- checksum: 10c0/0da451c605fa8b26981f2c8a059f9231eade6616026e01834dd5b305ad6ffbaae28916d3de5fe91b6d9810e0bff69e70ffe44cae3a908e12493bc4295cbf4a6f
- languageName: node
- linkType: hard
-
-"postcss-discard-empty@npm:^2.0.1":
- version: 2.1.0
- resolution: "postcss-discard-empty@npm:2.1.0"
- dependencies:
- postcss: "npm:^5.0.14"
- checksum: 10c0/e2008b574f80cc3621c3e318e59e36895077865a48800f1c25eb688128f8d43f0402c8effc21143533fd114200e532dcfbaca9813f0d07f9e71e32b6a859afbd
- languageName: node
- linkType: hard
-
-"postcss-discard-overridden@npm:^0.1.1":
- version: 0.1.1
- resolution: "postcss-discard-overridden@npm:0.1.1"
- dependencies:
- postcss: "npm:^5.0.16"
- checksum: 10c0/e1fd38e98045966be5f64252cbd553a597bc7678f64101025b850abe66851f35219320095321e4b0e9632843b6fc64e8bfe9b390064d9725a60a623a4a88b28d
- languageName: node
- linkType: hard
-
-"postcss-discard-unused@npm:^2.2.1":
- version: 2.2.3
- resolution: "postcss-discard-unused@npm:2.2.3"
- dependencies:
- postcss: "npm:^5.0.14"
- uniqs: "npm:^2.0.0"
- checksum: 10c0/0058b5f15363a5a6a0d01e28aaea98506639e52e42b49878ffc80d75ab9c4c9a8136c99ca2b5c9bf4d734469620ff5c84ab4f811a7bf9bc2e7dfd5f76e6d68fb
- languageName: node
- linkType: hard
-
-"postcss-filter-plugins@npm:^2.0.0":
- version: 2.0.3
- resolution: "postcss-filter-plugins@npm:2.0.3"
- dependencies:
- postcss: "npm:^5.0.4"
- checksum: 10c0/a6d92215995486878dddab275ef65e55fd4432f779cc27ed435df49a22232743dad3285b9db8a5b32e4a618279d3f7415a501a9a4556411ee9d408bac447c5a0
- languageName: node
- linkType: hard
-
-"postcss-merge-idents@npm:^2.1.5":
- version: 2.1.7
- resolution: "postcss-merge-idents@npm:2.1.7"
- dependencies:
- has: "npm:^1.0.1"
- postcss: "npm:^5.0.10"
- postcss-value-parser: "npm:^3.1.1"
- checksum: 10c0/5ef35d2ab59ceb32ca38d597753f8468dafb0782308930df820c96f3b23e4b4e36318ad29d76f88559c6a69d9c8d6283f1900617c0b6e4504bb5ab7523c120f8
- languageName: node
- linkType: hard
-
-"postcss-merge-longhand@npm:^2.0.1":
- version: 2.0.2
- resolution: "postcss-merge-longhand@npm:2.0.2"
- dependencies:
- postcss: "npm:^5.0.4"
- checksum: 10c0/84145e5fee9e3064f1b22bde14fe5448449e519e3866a4c59cab42866309e3912638cc7e3d900c16090577a5f94899a2b46ed3a77c721592038671ce86e5395c
- languageName: node
- linkType: hard
-
-"postcss-merge-rules@npm:^2.0.3":
- version: 2.1.2
- resolution: "postcss-merge-rules@npm:2.1.2"
- dependencies:
- browserslist: "npm:^1.5.2"
- caniuse-api: "npm:^1.5.2"
- postcss: "npm:^5.0.4"
- postcss-selector-parser: "npm:^2.2.2"
- vendors: "npm:^1.0.0"
- checksum: 10c0/aa825593d06079de4776f8ec71a05276c145aab734b66fbdea2c42bb545c2ec9fe075912ecb28d18d9c3b506784e8cf7db0951f9af287bc090f3ed7e6e72c332
- languageName: node
- linkType: hard
-
-"postcss-message-helpers@npm:^2.0.0":
- version: 2.0.0
- resolution: "postcss-message-helpers@npm:2.0.0"
- checksum: 10c0/5696c59befc408b208853a57994224f717c3a81a5b7129205c3087ad2af8159e209f29b66bfed7d79a1afc709cad76c3fbba06616ca71aeec77d7d029440dc72
- languageName: node
- linkType: hard
-
-"postcss-minify-font-values@npm:^1.0.2":
- version: 1.0.5
- resolution: "postcss-minify-font-values@npm:1.0.5"
- dependencies:
- object-assign: "npm:^4.0.1"
- postcss: "npm:^5.0.4"
- postcss-value-parser: "npm:^3.0.2"
- checksum: 10c0/375fc0b1943b1d1e3c61bc33c19a70853ac2cebfdb0dcac23e5324edb218cf989bd7a8877cf846eafbb2d2e7cec4b7bc70922ac9300f9304c2422d807ccd4a85
- languageName: node
- linkType: hard
-
-"postcss-minify-gradients@npm:^1.0.1":
- version: 1.0.5
- resolution: "postcss-minify-gradients@npm:1.0.5"
- dependencies:
- postcss: "npm:^5.0.12"
- postcss-value-parser: "npm:^3.3.0"
- checksum: 10c0/ce5ed6151349ee4546b860cf9f7af38d8bfb942c32b45025b82c332603e2c49f6ee76ac9bda0cf8279cd2492baa4925b3298776deea7324f5efbd6a85782f0bc
- languageName: node
- linkType: hard
-
-"postcss-minify-params@npm:^1.0.4":
- version: 1.2.2
- resolution: "postcss-minify-params@npm:1.2.2"
- dependencies:
- alphanum-sort: "npm:^1.0.1"
- postcss: "npm:^5.0.2"
- postcss-value-parser: "npm:^3.0.2"
- uniqs: "npm:^2.0.0"
- checksum: 10c0/e48823f55e60e8dc2c44fb7810a323146bd5f9aa3384a203ee56c08b77a84d5227446a005b84371e8560dd0d6cefed667acc8cf020367c6934c7233fd890f7c8
- languageName: node
- linkType: hard
-
-"postcss-minify-selectors@npm:^2.0.4":
- version: 2.1.1
- resolution: "postcss-minify-selectors@npm:2.1.1"
- dependencies:
- alphanum-sort: "npm:^1.0.2"
- has: "npm:^1.0.1"
- postcss: "npm:^5.0.14"
- postcss-selector-parser: "npm:^2.0.0"
- checksum: 10c0/3fd37f12d4d4518a4c7e3e4c9a6ab8cf4757faff6d388700e5d148b9b7b6f1d1f28a6be0ffda5f0077a4e4d509fec65cef3e1343ff72d02e1945a1fba2543ac1
- languageName: node
- linkType: hard
-
-"postcss-modules-extract-imports@npm:^1.2.0":
- version: 1.2.1
- resolution: "postcss-modules-extract-imports@npm:1.2.1"
- dependencies:
- postcss: "npm:^6.0.1"
- checksum: 10c0/5746702936c1e1b78a7b31c4e20092197aa89c4e59c156249aea861c84cd0781c11c8c4648b95bcfdce010c48c8edd83b94eb9103f7c72ef8eb96c4b15716ed3
- languageName: node
- linkType: hard
-
-"postcss-modules-local-by-default@npm:^1.2.0":
- version: 1.2.0
- resolution: "postcss-modules-local-by-default@npm:1.2.0"
- dependencies:
- css-selector-tokenizer: "npm:^0.7.0"
- postcss: "npm:^6.0.1"
- checksum: 10c0/9139846ccefbb089cff17abda76e199c4d464d899816265f0b3939f5cf588b8ba59f9119b87eccaf3bfde3049bddd6ac5989f46e6d8fa9ba936cc6ccb27b89bd
- languageName: node
- linkType: hard
-
-"postcss-modules-scope@npm:^1.1.0":
- version: 1.1.0
- resolution: "postcss-modules-scope@npm:1.1.0"
- dependencies:
- css-selector-tokenizer: "npm:^0.7.0"
- postcss: "npm:^6.0.1"
- checksum: 10c0/ef0328204912f2a3b98322ac5f3d377c234c391a2afd29f51ec83961ad0e0c4dc01192968649ce47c75c85a6c922dd8c608b137c1cce548fe5d92d6fb4454bb2
- languageName: node
- linkType: hard
-
-"postcss-modules-values@npm:^1.3.0":
- version: 1.3.0
- resolution: "postcss-modules-values@npm:1.3.0"
- dependencies:
- icss-replace-symbols: "npm:^1.1.0"
- postcss: "npm:^6.0.1"
- checksum: 10c0/11bb1af2478291b72f6cc106ba48dc566079021976b2da8c7989db6dca643db6fe81653aba43d4cfb0467754853d77d1eb0e3593a621affe62a1cc2d72541c70
- languageName: node
- linkType: hard
-
-"postcss-normalize-charset@npm:^1.1.0":
- version: 1.1.1
- resolution: "postcss-normalize-charset@npm:1.1.1"
- dependencies:
- postcss: "npm:^5.0.5"
- checksum: 10c0/69e67c67ad2a71b2dee440769a3651c84dee7bfcb713749ebbef544454b0151ef0c84833228513d6f53afd63c721b38cd640c54eca9602e3768139158e0f316a
- languageName: node
- linkType: hard
-
-"postcss-normalize-url@npm:^3.0.7":
- version: 3.0.8
- resolution: "postcss-normalize-url@npm:3.0.8"
- dependencies:
- is-absolute-url: "npm:^2.0.0"
- normalize-url: "npm:^1.4.0"
- postcss: "npm:^5.0.14"
- postcss-value-parser: "npm:^3.2.3"
- checksum: 10c0/c53225ca485dd10d156e33e5ee5c3a830082f3f68a337b9e48f5a9d5083f6bebdf13008103d056b2025622c56421284bd391d9a86949ca468541cd0e2df682a6
- languageName: node
- linkType: hard
-
-"postcss-ordered-values@npm:^2.1.0":
- version: 2.2.3
- resolution: "postcss-ordered-values@npm:2.2.3"
- dependencies:
- postcss: "npm:^5.0.4"
- postcss-value-parser: "npm:^3.0.1"
- checksum: 10c0/4d55a1c7f108f01181c22db1cb886ba0d47f71472a0e531f66b6d90094e74754a35a85cae7c142b4f6277066d2d4c586814dbd909ac7bb9d4c9d1180ac34d10b
- languageName: node
- linkType: hard
-
-"postcss-reduce-idents@npm:^2.2.2":
- version: 2.4.0
- resolution: "postcss-reduce-idents@npm:2.4.0"
- dependencies:
- postcss: "npm:^5.0.4"
- postcss-value-parser: "npm:^3.0.2"
- checksum: 10c0/a63b42193dd19298b28411bb6186ec6aa5cc176cbb2a4e4e67567cecf116feaa02407744eb734521a49445be497156afad70d0ab5dcd1d9af772e2aca1fd127c
- languageName: node
- linkType: hard
-
-"postcss-reduce-initial@npm:^1.0.0":
- version: 1.0.1
- resolution: "postcss-reduce-initial@npm:1.0.1"
- dependencies:
- postcss: "npm:^5.0.4"
- checksum: 10c0/f1c40830ceea191cc31353cc5085a1dab8e94f40ce009d0779b0589329546c8f11a10c0ba3d6514032cbee1439d76dc5e0b49bb841b1ca388827cc8be79b587a
- languageName: node
- linkType: hard
-
-"postcss-reduce-transforms@npm:^1.0.3":
- version: 1.0.4
- resolution: "postcss-reduce-transforms@npm:1.0.4"
- dependencies:
- has: "npm:^1.0.1"
- postcss: "npm:^5.0.8"
- postcss-value-parser: "npm:^3.0.1"
- checksum: 10c0/9c8cf2373dd84adb132fcd15ca48379276ef353ab8e51c18506d2e9688658579affff77bcbff19e460e875483b9a7d18fb40488f89f8d15b635f10503da9d875
- languageName: node
- linkType: hard
-
-"postcss-selector-parser@npm:^2.0.0, postcss-selector-parser@npm:^2.2.2":
- version: 2.2.3
- resolution: "postcss-selector-parser@npm:2.2.3"
- dependencies:
- flatten: "npm:^1.0.2"
- indexes-of: "npm:^1.0.1"
- uniq: "npm:^1.0.1"
- checksum: 10c0/dc8aee6807096a93a6a1079bddb8d3e94ca385688889da087156ecfe48f3ad7db7581395fada92737d0d6e6a2cda96697fb2d94bbbf97484adb1acff261efe00
- languageName: node
- linkType: hard
-
-"postcss-svgo@npm:^2.1.1":
- version: 2.1.6
- resolution: "postcss-svgo@npm:2.1.6"
- dependencies:
- is-svg: "npm:^2.0.0"
- postcss: "npm:^5.0.14"
- postcss-value-parser: "npm:^3.2.3"
- svgo: "npm:^0.7.0"
- checksum: 10c0/a4e33316888c609b2db8e0dbaa7db49f4c0c880985df364d1a237fc1ef170815f21949433e4ea5684da2c2b3d8ef2f6c0e944d3757c6749b350dbf19d534b5f2
- languageName: node
- linkType: hard
-
-"postcss-unique-selectors@npm:^2.0.2":
- version: 2.0.2
- resolution: "postcss-unique-selectors@npm:2.0.2"
- dependencies:
- alphanum-sort: "npm:^1.0.1"
- postcss: "npm:^5.0.4"
- uniqs: "npm:^2.0.0"
- checksum: 10c0/4d1fac25aec01952390df2746f1cb9392b1cfe29bd167608248408755bd8b510209f95213953bda61b3c1201fb580620acdffd4f29fb85c3986f2a04b9b6bb52
- languageName: node
- linkType: hard
-
-"postcss-value-parser@npm:^3.0.1, postcss-value-parser@npm:^3.0.2, postcss-value-parser@npm:^3.1.1, postcss-value-parser@npm:^3.1.2, postcss-value-parser@npm:^3.2.3, postcss-value-parser@npm:^3.3.0":
- version: 3.3.1
- resolution: "postcss-value-parser@npm:3.3.1"
- checksum: 10c0/23eed98d8eeadb1f9ef1db4a2757da0f1d8e7c1dac2a38d6b35d971aab9eb3c6d8a967d0e9f435558834ffcd966afbbe875a56bcc5bcdd09e663008c106b3e47
- languageName: node
- linkType: hard
-
-"postcss-zindex@npm:^2.0.1":
- version: 2.2.0
- resolution: "postcss-zindex@npm:2.2.0"
- dependencies:
- has: "npm:^1.0.1"
- postcss: "npm:^5.0.4"
- uniqs: "npm:^2.0.0"
- checksum: 10c0/3c99a8fcd7132ecd5f56df7d8bdbe9a9d78f6c92c784435d522e1909b4e5f624905734c528787b0257a2ae23ec45f5bf435f8e2dcd47733fad8d779b91f2ba09
- languageName: node
- linkType: hard
-
-"postcss@npm:^5.0.10, postcss@npm:^5.0.11, postcss@npm:^5.0.12, postcss@npm:^5.0.13, postcss@npm:^5.0.14, postcss@npm:^5.0.16, postcss@npm:^5.0.2, postcss@npm:^5.0.4, postcss@npm:^5.0.5, postcss@npm:^5.0.6, postcss@npm:^5.0.8, postcss@npm:^5.2.16":
- version: 5.2.18
- resolution: "postcss@npm:5.2.18"
- dependencies:
- chalk: "npm:^1.1.3"
- js-base64: "npm:^2.1.9"
- source-map: "npm:^0.5.6"
- supports-color: "npm:^3.2.3"
- checksum: 10c0/1f9f6673dd24d52f1ed33b800248e6ef752d6b6a092fe268021e398df0d7e0956f00fb961781647264d659240c3d67f5bfd3df9bf1b7af985aa996be619d30b1
- languageName: node
- linkType: hard
-
-"postcss@npm:^6.0.1":
- version: 6.0.23
- resolution: "postcss@npm:6.0.23"
- dependencies:
- chalk: "npm:^2.4.1"
- source-map: "npm:^0.6.1"
- supports-color: "npm:^5.4.0"
- checksum: 10c0/45d45184ffbb9d510e7585d9441af9a1a771a56b7553b1d598544e54acdfd31df439a95d5f00a6dc57b85b76d0c8925fec18614b1cc795887c845c3965e32e63
- languageName: node
- linkType: hard
-
-"prepend-http@npm:^1.0.0":
- version: 1.0.4
- resolution: "prepend-http@npm:1.0.4"
- checksum: 10c0/c6c173ca439e58163ba7bea7cbba52a1ed11e3e3da1c048da296f37d4b7654f78f7304e03f76d5923f4b83af7e2d55533e0f79064209c75b743ccddee13904f8
- languageName: node
- linkType: hard
-
-"private@npm:^0.1.8":
- version: 0.1.8
- resolution: "private@npm:0.1.8"
- checksum: 10c0/829a23723e5fd3105c72b2dadeeb65743a430f7e6967a8a6f3e49392a1b3ea52975a255376d8c513b0c988bdf162f1a5edf9d9bac27d1ab11f8dba8cdb58880e
- languageName: node
- linkType: hard
-
-"proc-log@npm:^6.0.0":
- version: 6.1.0
- resolution: "proc-log@npm:6.1.0"
- checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82
- languageName: node
- linkType: hard
-
-"process-nextick-args@npm:~2.0.0":
- version: 2.0.1
- resolution: "process-nextick-args@npm:2.0.1"
- checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367
- languageName: node
- linkType: hard
-
-"process@npm:^0.11.10":
- version: 0.11.10
- resolution: "process@npm:0.11.10"
- checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3
- languageName: node
- linkType: hard
-
-"promise-inflight@npm:^1.0.1":
- version: 1.0.1
- resolution: "promise-inflight@npm:1.0.1"
- checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc
- languageName: node
- linkType: hard
-
-"prr@npm:~1.0.1":
- version: 1.0.1
- resolution: "prr@npm:1.0.1"
- checksum: 10c0/5b9272c602e4f4472a215e58daff88f802923b84bc39c8860376bb1c0e42aaf18c25d69ad974bd06ec6db6f544b783edecd5502cd3d184748d99080d68e4be5f
- languageName: node
- linkType: hard
-
-"pseudomap@npm:^1.0.2":
- version: 1.0.2
- resolution: "pseudomap@npm:1.0.2"
- checksum: 10c0/5a91ce114c64ed3a6a553aa7d2943868811377388bb31447f9d8028271bae9b05b340fe0b6961a64e45b9c72946aeb0a4ab635e8f7cb3715ffd0ff2beeb6a679
- languageName: node
- linkType: hard
-
-"public-encrypt@npm:^4.0.0":
- version: 4.0.3
- resolution: "public-encrypt@npm:4.0.3"
- dependencies:
- bn.js: "npm:^4.1.0"
- browserify-rsa: "npm:^4.0.0"
- create-hash: "npm:^1.1.0"
- parse-asn1: "npm:^5.0.0"
- randombytes: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10c0/6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700
- languageName: node
- linkType: hard
-
-"pump@npm:^2.0.0, pump@npm:^2.0.1":
- version: 2.0.1
- resolution: "pump@npm:2.0.1"
- dependencies:
- end-of-stream: "npm:^1.1.0"
- once: "npm:^1.3.1"
- checksum: 10c0/f1fe8960f44d145f8617ea4c67de05392da4557052980314c8f85081aee26953bdcab64afad58a2b1df0e8ff7203e3710e848cbe81a01027978edc6e264db355
- languageName: node
- linkType: hard
-
-"pumpify@npm:^1.3.3":
- version: 1.5.1
- resolution: "pumpify@npm:1.5.1"
- dependencies:
- duplexify: "npm:^3.6.0"
- inherits: "npm:^2.0.3"
- pump: "npm:^2.0.0"
- checksum: 10c0/0bcabf9e3dbf2d0cc1f9b84ac80d3c75386111caf8963bfd98817a1e2192000ac0ccc804ca6ccd5b2b8430fdb71347b20fb2f014fe3d41adbacb1b502a841c45
- languageName: node
- linkType: hard
-
-"punycode@npm:1.3.2":
- version: 1.3.2
- resolution: "punycode@npm:1.3.2"
- checksum: 10c0/281fd20eaf4704f79d80cb0dc65065bf6452ee67989b3e8941aed6360a5a9a8a01d3e2ed71d0bde3cd74fb5a5dd9db4160bed5a8c20bed4b6764c24ce4c7d2d2
- languageName: node
- linkType: hard
-
-"punycode@npm:^1.2.4":
- version: 1.4.1
- resolution: "punycode@npm:1.4.1"
- checksum: 10c0/354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08
- languageName: node
- linkType: hard
-
-"punycode@npm:^2.1.0":
- version: 2.1.1
- resolution: "punycode@npm:2.1.1"
- checksum: 10c0/83815ca9b9177f055771f31980cbec7ffaef10257d50a95ab99b4a30f0404846e85fa6887ee1bbc0aaddb7bad6d96e2fa150a016051ff0f6b92be4ad613ddca8
- languageName: node
- linkType: hard
-
-"q@npm:^1.1.2":
- version: 1.5.1
- resolution: "q@npm:1.5.1"
- checksum: 10c0/7855fbdba126cb7e92ef3a16b47ba998c0786ec7fface236e3eb0135b65df36429d91a86b1fff3ab0927b4ac4ee88a2c44527c7c3b8e2a37efbec9fe34803df4
- languageName: node
- linkType: hard
-
-"qs@npm:2.3.3":
- version: 2.3.3
- resolution: "qs@npm:2.3.3"
- checksum: 10c0/4c02f03f77e50219799f52608dd72f57389ea364be499f5e8b02d505377cb93f6414239e00b3a7342b0d05a730ad85b3ffb5e7f0a5ba2f3d8ef7303283c01e17
- languageName: node
- linkType: hard
-
-"query-string@npm:^4.1.0":
- version: 4.3.4
- resolution: "query-string@npm:4.3.4"
- dependencies:
- object-assign: "npm:^4.1.0"
- strict-uri-encode: "npm:^1.0.0"
- checksum: 10c0/6181c343074c2049fbbcde63f87c1da5d3a49c6e34c8d94a61d692e886e0b8cd1ae4a4be00b598112bb9c4cb819e423ed503a5d246e4d24ecb0990d8bb21570b
- languageName: node
- linkType: hard
-
-"querystring-es3@npm:^0.2.0":
- version: 0.2.1
- resolution: "querystring-es3@npm:0.2.1"
- checksum: 10c0/476938c1adb45c141f024fccd2ffd919a3746e79ed444d00e670aad68532977b793889648980e7ca7ff5ffc7bfece623118d0fbadcaf217495eeb7059ae51580
- languageName: node
- linkType: hard
-
-"querystring@npm:0.2.0":
- version: 0.2.0
- resolution: "querystring@npm:0.2.0"
- checksum: 10c0/2036c9424beaacd3978bac9e4ba514331cc73163bea7bf3ad7e2c7355e55501938ec195312c607753f9c6e70b1bf9dfcda38db6241bd299c034e27ac639d64ed
- languageName: node
- linkType: hard
-
-"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5":
- version: 2.1.0
- resolution: "randombytes@npm:2.1.0"
- dependencies:
- safe-buffer: "npm:^5.1.0"
- checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3
- languageName: node
- linkType: hard
-
-"randomfill@npm:^1.0.3":
- version: 1.0.4
- resolution: "randomfill@npm:1.0.4"
- dependencies:
- randombytes: "npm:^2.0.5"
- safe-buffer: "npm:^5.1.0"
- checksum: 10c0/11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c
- languageName: node
- linkType: hard
-
-"raven@npm:^2.6.4":
- version: 2.6.4
- resolution: "raven@npm:2.6.4"
- dependencies:
- cookie: "npm:0.3.1"
- md5: "npm:^2.2.1"
- stack-trace: "npm:0.0.10"
- timed-out: "npm:4.0.1"
- uuid: "npm:3.3.2"
- bin:
- raven: ./bin/raven
- checksum: 10c0/688dd6137c16f0d6cd67dadf1450b1cc0f74cbd3abac010c1d2aa84334a17799859f525a2a5478b803000f514dd74ef60bd97a96274c329ff7acf68dd6350927
- languageName: node
- linkType: hard
-
-"read-pkg-up@npm:^2.0.0":
- version: 2.0.0
- resolution: "read-pkg-up@npm:2.0.0"
- dependencies:
- find-up: "npm:^2.0.0"
- read-pkg: "npm:^2.0.0"
- checksum: 10c0/6fbb9f8c1a9ed3c8a5764387a77ac4456082f1fe98757d1ed300d8b0a4c70501f28cbb053ae7b3e0de6094930fb7258fbfe099957a53c999337aaf8bc53ff37f
- languageName: node
- linkType: hard
-
-"read-pkg@npm:^2.0.0":
- version: 2.0.0
- resolution: "read-pkg@npm:2.0.0"
- dependencies:
- load-json-file: "npm:^2.0.0"
- normalize-package-data: "npm:^2.3.2"
- path-type: "npm:^2.0.0"
- checksum: 10c0/c0d1b66c58e58fadaabe48c83c525fb1966304555e5089fab5ccce2c3dfe0fad726720b170a5fa23ff20452e22d1dbe817f5c63f03546bb85cbfb6b84da84c2b
- languageName: node
- linkType: hard
-
-"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6":
- version: 2.3.7
- resolution: "readable-stream@npm:2.3.7"
- dependencies:
- core-util-is: "npm:~1.0.0"
- inherits: "npm:~2.0.3"
- isarray: "npm:~1.0.0"
- process-nextick-args: "npm:~2.0.0"
- safe-buffer: "npm:~5.1.1"
- string_decoder: "npm:~1.1.1"
- util-deprecate: "npm:~1.0.1"
- checksum: 10c0/1708755e6cf9daff6ff60fa5b4575636472289c5b95d38058a91f94732b8d024a940a0d4d955639195ce42c22cab16973ee8fea8deedd24b5fec3dd596465f86
- languageName: node
- linkType: hard
-
-"readable-stream@npm:1.0.27-1":
- version: 1.0.27-1
- resolution: "readable-stream@npm:1.0.27-1"
- dependencies:
- core-util-is: "npm:~1.0.0"
- inherits: "npm:~2.0.1"
- isarray: "npm:0.0.1"
- string_decoder: "npm:~0.10.x"
- checksum: 10c0/b887546e0a2c9e3204141be697d96f7966c4f25110925d9cd6714cf451d750b77ad873fd176ed03e40e4cb5da52f35a382ddd50e306e3f5fd37e238044897cd3
- languageName: node
- linkType: hard
-
-"readable-stream@npm:>=1.0.33-1 <1.1.0-0":
- version: 1.0.34
- resolution: "readable-stream@npm:1.0.34"
- dependencies:
- core-util-is: "npm:~1.0.0"
- inherits: "npm:~2.0.1"
- isarray: "npm:0.0.1"
- string_decoder: "npm:~0.10.x"
- checksum: 10c0/02272551396ed8930ddee1a088bdf0379f0f7cc47ac49ed8804e998076cb7daec9fbd2b1fd9c0490ec72e56e8bb3651abeb8080492b8e0a9c3f2158330908ed6
- languageName: node
- linkType: hard
-
-"readable-stream@npm:^3.6.0":
- version: 3.6.0
- resolution: "readable-stream@npm:3.6.0"
- dependencies:
- inherits: "npm:^2.0.3"
- string_decoder: "npm:^1.1.1"
- util-deprecate: "npm:^1.0.1"
- checksum: 10c0/937bedd29ac8a68331666291922bea892fa2be1a33269e582de9f844a2002f146cf831e39cd49fe6a378d3f0c27358f259ed0e20d20f0bdc6a3f8fc21fce42dc
- languageName: node
- linkType: hard
-
-"reduce-component@npm:1.0.1":
- version: 1.0.1
- resolution: "reduce-component@npm:1.0.1"
- checksum: 10c0/a06392549d3783c626daff88e49ca29d02390b27028a37a75116c3f36b544ad1772d32332b0f374990545287edf4403159de990d0678fb799b254ebbe113fa71
- languageName: node
- linkType: hard
-
-"reduce-css-calc@npm:^1.2.6":
- version: 1.3.0
- resolution: "reduce-css-calc@npm:1.3.0"
- dependencies:
- balanced-match: "npm:^0.4.2"
- math-expression-evaluator: "npm:^1.2.14"
- reduce-function-call: "npm:^1.0.1"
- checksum: 10c0/c0b192bbdc7617ee7e3bcd09332f7f810c2b52f1da8521c4eda03879ead00bcca65bcae78d5bc8cd925610f776532a3457e8b2fd8f4bb936bdb40f057590f20d
- languageName: node
- linkType: hard
-
-"reduce-function-call@npm:^1.0.1":
- version: 1.0.3
- resolution: "reduce-function-call@npm:1.0.3"
- dependencies:
- balanced-match: "npm:^1.0.0"
- checksum: 10c0/7e844708d8c3d2946d3df5c537ee1e23c3c60c98ac0dbc724828f36d8d309c391a14995f47ce4f5ba84eea2df5c73d58e4ba100ba331af496920932421a322ed
- languageName: node
- linkType: hard
-
-"regenerator-runtime@npm:^0.11.0":
- version: 0.11.1
- resolution: "regenerator-runtime@npm:0.11.1"
- checksum: 10c0/69cfa839efcf2d627fe358bf302ab8b24e5f182cb69f13e66f0612d3640d7838aad1e55662135e3ef2c1cc4322315b757626094fab13a48f9a64ab4bdeb8795b
- languageName: node
- linkType: hard
-
-"repeating@npm:^2.0.0":
- version: 2.0.1
- resolution: "repeating@npm:2.0.1"
- dependencies:
- is-finite: "npm:^1.0.0"
- checksum: 10c0/7f5cd293ec47d9c074ef0852800d5ff5c49028ce65242a7528d84f32bd2fe200b142930562af58c96d869c5a3046e87253030058e45231acaa129c1a7087d2e7
- languageName: node
- linkType: hard
-
-"require-directory@npm:^2.1.1":
- version: 2.1.1
- resolution: "require-directory@npm:2.1.1"
- checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99
- languageName: node
- linkType: hard
-
-"require-main-filename@npm:^1.0.1":
- version: 1.0.1
- resolution: "require-main-filename@npm:1.0.1"
- checksum: 10c0/1ab87efb72a0e223a667154e92f29ca753fd42eb87f22db142b91c86d134e29ecf18af929111ccd255fd340b57d84a9d39489498d8dfd5136b300ded30a5f0b6
- languageName: node
- linkType: hard
-
-"resolve@npm:^1.10.0":
- version: 1.22.1
- resolution: "resolve@npm:1.22.1"
- dependencies:
- is-core-module: "npm:^2.9.0"
- path-parse: "npm:^1.0.7"
- supports-preserve-symlinks-flag: "npm:^1.0.0"
- bin:
- resolve: bin/resolve
- checksum: 10c0/6d58b1cb40f3fc80b9e45dd799d84cdc3829a993e4b9fa3b59d331e1dfacd0870e1851f4d0eb549d68c796e0b7087b43d1aec162653ccccff9e18191221a6e7d
- languageName: node
- linkType: hard
-
-"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin":
- version: 1.22.1
- resolution: "resolve@patch:resolve@npm%3A1.22.1#optional!builtin::version=1.22.1&hash=c3c19d"
- dependencies:
- is-core-module: "npm:^2.9.0"
- path-parse: "npm:^1.0.7"
- supports-preserve-symlinks-flag: "npm:^1.0.0"
- bin:
- resolve: bin/resolve
- checksum: 10c0/0d8ccceba5537769c42aa75e4aa75ae854aac866a11d7e9ffdb1663f0158ee646a0d48fc2818ed5e7fb364d64220a1fb9092a160e11e00cbdd5fbab39a13092c
- languageName: node
- linkType: hard
-
-"rimraf@npm:^2.5.4, rimraf@npm:^2.6.2":
- version: 2.7.1
- resolution: "rimraf@npm:2.7.1"
- dependencies:
- glob: "npm:^7.1.3"
- bin:
- rimraf: ./bin.js
- checksum: 10c0/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40
- languageName: node
- linkType: hard
-
-"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1":
- version: 2.0.2
- resolution: "ripemd160@npm:2.0.2"
- dependencies:
- hash-base: "npm:^3.0.0"
- inherits: "npm:^2.0.1"
- checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a
- languageName: node
- linkType: hard
-
-"run-queue@npm:^1.0.0, run-queue@npm:^1.0.3":
- version: 1.0.3
- resolution: "run-queue@npm:1.0.3"
- dependencies:
- aproba: "npm:^1.1.1"
- checksum: 10c0/4e8964279d8f160f9ffaabe82eaad11a1d4c0db596a0f2b5257ae9d2b900c7e1ffcece3e5719199436f50718e1e7f45bb4bf7a82e331a4e734d67c2588a90cbb
- languageName: node
- linkType: hard
-
-"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0":
- version: 5.2.1
- resolution: "safe-buffer@npm:5.2.1"
- checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
- languageName: node
- linkType: hard
-
-"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
- version: 5.1.2
- resolution: "safe-buffer@npm:5.1.2"
- checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21
- languageName: node
- linkType: hard
-
-"safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.1.0":
- version: 2.1.2
- resolution: "safer-buffer@npm:2.1.2"
- checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
- languageName: node
- linkType: hard
-
-"sax@npm:^1.2.4, sax@npm:~1.2.1":
- version: 1.2.4
- resolution: "sax@npm:1.2.4"
- checksum: 10c0/6e9b05ff443ee5e5096ce92d31c0740a20d33002fad714ebcb8fc7a664d9ee159103ebe8f7aef0a1f7c5ecacdd01f177f510dff95611c589399baf76437d3fe3
- languageName: node
- linkType: hard
-
-"schema-utils@npm:^0.4.5":
- version: 0.4.7
- resolution: "schema-utils@npm:0.4.7"
- dependencies:
- ajv: "npm:^6.1.0"
- ajv-keywords: "npm:^3.1.0"
- checksum: 10c0/0de445cee6bf9a54b7b18b284b5f5ebe5b481f57e71854872c4215bd8eda73811a5f4964718c26f24b50f46a5eafbaf8a391459a7f10b78c242a798a3e0e24c8
- languageName: node
- linkType: hard
-
-"schema-utils@npm:^1.0.0":
- version: 1.0.0
- resolution: "schema-utils@npm:1.0.0"
- dependencies:
- ajv: "npm:^6.1.0"
- ajv-errors: "npm:^1.0.0"
- ajv-keywords: "npm:^3.1.0"
- checksum: 10c0/670e22d7f0ff0b6f4514a4d6fb27c359101b44b7dbfd9563af201af72eb4a9ff06144020cab5f85b16e88821fd09b97cbdae6c893721c6528c8cb704124e6a2f
- languageName: node
- linkType: hard
-
-"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0":
- version: 5.7.1
- resolution: "semver@npm:5.7.1"
- bin:
- semver: ./bin/semver
- checksum: 10c0/d4884f2aeca28bff35d0bd40ff0a9b2dfc4b36a883bf0ea5dc15d10d9a01bdc9041035b05f825d4b5ac8a56e490703dbf0d986d054de82cc5e9bad3f02ca6e00
- languageName: node
- linkType: hard
-
-"semver@npm:^7.3.5":
- version: 7.7.4
- resolution: "semver@npm:7.7.4"
- bin:
- semver: bin/semver.js
- checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2
- languageName: node
- linkType: hard
-
-"serialize-javascript@npm:^1.4.0":
- version: 1.9.1
- resolution: "serialize-javascript@npm:1.9.1"
- checksum: 10c0/01c1aabb28a50133ac7c86038ec14be26b13e0d8d43ac6ad4bad57789bc8dc33b33fef2424330ab9d138da40d9a3c2520f0d66e8c3474eeeab01669d3a38cae1
- languageName: node
- linkType: hard
-
-"set-blocking@npm:^2.0.0":
- version: 2.0.0
- resolution: "set-blocking@npm:2.0.0"
- checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454
- languageName: node
- linkType: hard
-
-"setimmediate@npm:^1.0.4":
- version: 1.0.5
- resolution: "setimmediate@npm:1.0.5"
- checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49
- languageName: node
- linkType: hard
-
-"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8":
- version: 2.4.11
- resolution: "sha.js@npm:2.4.11"
- dependencies:
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- bin:
- sha.js: ./bin.js
- checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5
- languageName: node
- linkType: hard
-
-"shebang-command@npm:^1.2.0":
- version: 1.2.0
- resolution: "shebang-command@npm:1.2.0"
- dependencies:
- shebang-regex: "npm:^1.0.0"
- checksum: 10c0/7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d
- languageName: node
- linkType: hard
-
-"shebang-regex@npm:^1.0.0":
- version: 1.0.0
- resolution: "shebang-regex@npm:1.0.0"
- checksum: 10c0/9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2
- languageName: node
- linkType: hard
-
-"signal-exit@npm:^3.0.0":
- version: 3.0.7
- resolution: "signal-exit@npm:3.0.7"
- checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912
- languageName: node
- linkType: hard
-
-"simple-statistics@npm:7.7.3":
- version: 7.7.3
- resolution: "simple-statistics@npm:7.7.3"
- checksum: 10c0/a65fe89dbeb6233735f2aea0a9c41d9bb33b57779c3a47b0ea2daab62c6c2dd03ce867cde73083fb373bf6faaf874d10c1c7615eb5426237aa6d8c4e54fd6a47
- languageName: node
- linkType: hard
-
-"slash@npm:^1.0.0":
- version: 1.0.0
- resolution: "slash@npm:1.0.0"
- checksum: 10c0/3944659885d905480f98810542fd314f3e1006eaad25ec78227a7835a469d9ed66fc3dd90abc7377dd2e71f4b5473e8f766bd08198fdd25152a80792e9ed464c
- languageName: node
- linkType: hard
-
-"smart-buffer@npm:^4.2.0":
- version: 4.2.0
- resolution: "smart-buffer@npm:4.2.0"
- checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
- languageName: node
- linkType: hard
-
-"socks-proxy-agent@npm:^8.0.3":
- version: 8.0.5
- resolution: "socks-proxy-agent@npm:8.0.5"
- dependencies:
- agent-base: "npm:^7.1.2"
- debug: "npm:^4.3.4"
- socks: "npm:^2.8.3"
- checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6
- languageName: node
- linkType: hard
-
-"socks@npm:^2.8.3":
- version: 2.8.7
- resolution: "socks@npm:2.8.7"
- dependencies:
- ip-address: "npm:^10.0.1"
- smart-buffer: "npm:^4.2.0"
- checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2
- languageName: node
- linkType: hard
-
-"sort-keys@npm:^1.0.0":
- version: 1.1.2
- resolution: "sort-keys@npm:1.1.2"
- dependencies:
- is-plain-obj: "npm:^1.0.0"
- checksum: 10c0/5dd383b0299a40277051f7498c3999520138e2eb50d422962f658738341c9e82349fad4a3024d5ba1a3122688fbaf958f2a472d4c53bade55515097c2ce15420
- languageName: node
- linkType: hard
-
-"source-list-map@npm:^2.0.0":
- version: 2.0.1
- resolution: "source-list-map@npm:2.0.1"
- checksum: 10c0/2e5e421b185dcd857f46c3c70e2e711a65d717b78c5f795e2e248c9d67757882ea989b80ebc08cf164eeeda5f4be8aa95d3b990225070b2daaaf3257c5958149
- languageName: node
- linkType: hard
-
-"source-map-support@npm:^0.4.15":
- version: 0.4.18
- resolution: "source-map-support@npm:0.4.18"
- dependencies:
- source-map: "npm:^0.5.6"
- checksum: 10c0/cd9f0309c1632b1e01a7715a009e0b036d565f3af8930fa8cda2a06aeec05ad1d86180e743b7e1f02cc3c97abe8b6d8de7c3878c2d8e01e86e17f876f7ecf98e
- languageName: node
- linkType: hard
-
-"source-map@npm:^0.5.3, source-map@npm:^0.5.6, source-map@npm:^0.5.7":
- version: 0.5.7
- resolution: "source-map@npm:0.5.7"
- checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599
- languageName: node
- linkType: hard
-
-"source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
- version: 0.6.1
- resolution: "source-map@npm:0.6.1"
- checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011
- languageName: node
- linkType: hard
-
-"spdx-correct@npm:^3.0.0":
- version: 3.1.1
- resolution: "spdx-correct@npm:3.1.1"
- dependencies:
- spdx-expression-parse: "npm:^3.0.0"
- spdx-license-ids: "npm:^3.0.0"
- checksum: 10c0/25909eecc4024963a8e398399dbdd59ddb925bd7dbecd9c9cf6df0d75c29b68cd30b82123564acc51810eb02cfc4b634a2e16e88aa982433306012e318849249
- languageName: node
- linkType: hard
-
-"spdx-exceptions@npm:^2.1.0":
- version: 2.3.0
- resolution: "spdx-exceptions@npm:2.3.0"
- checksum: 10c0/83089e77d2a91cb6805a5c910a2bedb9e50799da091f532c2ba4150efdef6e53f121523d3e2dc2573a340dc0189e648b03157097f65465b3a0c06da1f18d7e8a
- languageName: node
- linkType: hard
-
-"spdx-expression-parse@npm:^3.0.0":
- version: 3.0.1
- resolution: "spdx-expression-parse@npm:3.0.1"
- dependencies:
- spdx-exceptions: "npm:^2.1.0"
- spdx-license-ids: "npm:^3.0.0"
- checksum: 10c0/6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171
- languageName: node
- linkType: hard
-
-"spdx-license-ids@npm:^3.0.0":
- version: 3.0.11
- resolution: "spdx-license-ids@npm:3.0.11"
- checksum: 10c0/6c53cfdb3417e80fd612341319f1296507f797e0387e144047f547c378d9d38d6032ec342de42ef7883256f6690b2fca9889979d0dd015a61dc49b323f9b379b
- languageName: node
- linkType: hard
-
-"spin.js@npm:^2.0.1":
- version: 2.3.2
- resolution: "spin.js@npm:2.3.2"
- checksum: 10c0/bf3ff85e8dc1491ce6ea8c0b83b559bb5d315fcb55104dd9a103b42d3bad03a7d3a1e72c6d7b32b7cc28d6f0b4fd93ed4321a41184debfa20fb71898c748e599
- languageName: node
- linkType: hard
-
-"sprintf-js@npm:~1.0.2":
- version: 1.0.3
- resolution: "sprintf-js@npm:1.0.3"
- checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb
- languageName: node
- linkType: hard
-
-"ssri@npm:^13.0.0":
- version: 13.0.1
- resolution: "ssri@npm:13.0.1"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/cf6408a18676c57ff2ed06b8a20dc64bb3e748e5c7e095332e6aecaa2b8422b1e94a739a8453bf65156a8a47afe23757ba4ab52d3ea3b62322dc40875763e17a
- languageName: node
- linkType: hard
-
-"ssri@npm:^5.2.4":
- version: 5.3.0
- resolution: "ssri@npm:5.3.0"
- dependencies:
- safe-buffer: "npm:^5.1.1"
- checksum: 10c0/f80372ec982cacb3d8e4b53c2a82a7f7502d915a57aef99a29e6cd293302d5944185a569df5fce694a857abb1e602585fcee90182cd2e853bae3d1c20a84d8cb
- languageName: node
- linkType: hard
-
-"stack-trace@npm:0.0.10":
- version: 0.0.10
- resolution: "stack-trace@npm:0.0.10"
- checksum: 10c0/9ff3dabfad4049b635a85456f927a075c9d0c210e3ea336412d18220b2a86cbb9b13ec46d6c37b70a302a4ea4d49e30e5d4944dd60ae784073f1cde778ac8f4b
- languageName: node
- linkType: hard
-
-"stream-browserify@npm:^2.0.1":
- version: 2.0.2
- resolution: "stream-browserify@npm:2.0.2"
- dependencies:
- inherits: "npm:~2.0.1"
- readable-stream: "npm:^2.0.2"
- checksum: 10c0/485562bd5d962d633ae178449029c6fa2611052e356bdb5668f768544aa4daa94c4f9a97de718f3f30ad98f3cb98a5f396252bb3855aff153c138f79c0e8f6ac
- languageName: node
- linkType: hard
-
-"stream-each@npm:^1.1.0":
- version: 1.2.3
- resolution: "stream-each@npm:1.2.3"
- dependencies:
- end-of-stream: "npm:^1.1.0"
- stream-shift: "npm:^1.0.0"
- checksum: 10c0/7ed229d3b7c24373058b5742b00066da8d3122d1487c8219a025ed53a8978545c77654a529a8e9c62ba83ae80c424cbb0204776b49abf72270d2e8154831dd5f
- languageName: node
- linkType: hard
-
-"stream-http@npm:^2.7.2":
- version: 2.8.3
- resolution: "stream-http@npm:2.8.3"
- dependencies:
- builtin-status-codes: "npm:^3.0.0"
- inherits: "npm:^2.0.1"
- readable-stream: "npm:^2.3.6"
- to-arraybuffer: "npm:^1.0.0"
- xtend: "npm:^4.0.0"
- checksum: 10c0/fbe7d327a29216bbabe88d3819bb8f7a502f11eeacf3212579e5af1f76fa7283f6ffa66134ab7d80928070051f571d1029e85f65ce3369fffd4c4df3669446c4
- languageName: node
- linkType: hard
-
-"stream-shift@npm:^1.0.0":
- version: 1.0.1
- resolution: "stream-shift@npm:1.0.1"
- checksum: 10c0/b63a0d178cde34b920ad93e2c0c9395b840f408d36803b07c61416edac80ef9e480a51910e0ceea0d679cec90921bcd2cccab020d3a9fa6c73a98b0fbec132fd
- languageName: node
- linkType: hard
-
-"strict-uri-encode@npm:^1.0.0":
- version: 1.1.0
- resolution: "strict-uri-encode@npm:1.1.0"
- checksum: 10c0/eb8a4109ba2588239787389313ba58ec49e043d4c64a1d44716defe5821a68ae49abe0cdefed9946ca9fc2a4af7ecf321da92422b0a67258ec0a3638b053ae62
- languageName: node
- linkType: hard
-
-"string-width@npm:^1.0.1":
- version: 1.0.2
- resolution: "string-width@npm:1.0.2"
- dependencies:
- code-point-at: "npm:^1.0.0"
- is-fullwidth-code-point: "npm:^1.0.0"
- strip-ansi: "npm:^3.0.0"
- checksum: 10c0/c558438baed23a9ab9370bb6a939acbdb2b2ffc517838d651aad0f5b2b674fb85d460d9b1d0b6a4c210dffd09e3235222d89a5bd4c0c1587f78b2bb7bc00c65e
- languageName: node
- linkType: hard
-
-"string-width@npm:^2.0.0":
- version: 2.1.1
- resolution: "string-width@npm:2.1.1"
- dependencies:
- is-fullwidth-code-point: "npm:^2.0.0"
- strip-ansi: "npm:^4.0.0"
- checksum: 10c0/e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610
- languageName: node
- linkType: hard
-
-"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1":
- version: 1.3.0
- resolution: "string_decoder@npm:1.3.0"
- dependencies:
- safe-buffer: "npm:~5.2.0"
- checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
- languageName: node
- linkType: hard
-
-"string_decoder@npm:~0.10.x":
- version: 0.10.31
- resolution: "string_decoder@npm:0.10.31"
- checksum: 10c0/1c628d78f974aa7539c496029f48e7019acc32487fc695464f9d6bdfec98edd7d933a06b3216bc2016918f6e75074c611d84430a53cb0e43071597d6c1ac5e25
- languageName: node
- linkType: hard
-
-"string_decoder@npm:~1.1.1":
- version: 1.1.1
- resolution: "string_decoder@npm:1.1.1"
- dependencies:
- safe-buffer: "npm:~5.1.0"
- checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^2.0.1":
- version: 2.0.1
- resolution: "strip-ansi@npm:2.0.1"
- dependencies:
- ansi-regex: "npm:^1.0.0"
- bin:
- strip-ansi: cli.js
- checksum: 10c0/5517a3787f5fdb4fb621fbd13ae2688211329654a6e1415b4ba0af517adb1bc4e3a593abc40347ca0501cb68a978e25f46fb253ac369b44d25bb6f736cc48986
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1":
- version: 3.0.1
- resolution: "strip-ansi@npm:3.0.1"
- dependencies:
- ansi-regex: "npm:^2.0.0"
- checksum: 10c0/f6e7fbe8e700105dccf7102eae20e4f03477537c74b286fd22cfc970f139002ed6f0d9c10d0e21aa9ed9245e0fa3c9275930e8795c5b947da136e4ecb644a70f
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^4.0.0":
- version: 4.0.0
- resolution: "strip-ansi@npm:4.0.0"
- dependencies:
- ansi-regex: "npm:^3.0.0"
- checksum: 10c0/d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d
- languageName: node
- linkType: hard
-
-"strip-bom@npm:^3.0.0":
- version: 3.0.0
- resolution: "strip-bom@npm:3.0.0"
- checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1
- languageName: node
- linkType: hard
-
-"strip-eof@npm:^1.0.0":
- version: 1.0.0
- resolution: "strip-eof@npm:1.0.0"
- checksum: 10c0/f336beed8622f7c1dd02f2cbd8422da9208fae81daf184f73656332899978919d5c0ca84dc6cfc49ad1fc4dd7badcde5412a063cf4e0d7f8ed95a13a63f68f45
- languageName: node
- linkType: hard
-
-"style-loader@npm:^0.23.1":
- version: 0.23.1
- resolution: "style-loader@npm:0.23.1"
- dependencies:
- loader-utils: "npm:^1.1.0"
- schema-utils: "npm:^1.0.0"
- checksum: 10c0/9752920e4284e53067282f8cca68402604db152b60251525106414ceb7dedbfa5571ad544c95062006c1ff8801aa337e231e848dd3f1a8f73ec3fa680f530895
- languageName: node
- linkType: hard
-
-"superagent@npm:^1.8.3":
- version: 1.8.5
- resolution: "superagent@npm:1.8.5"
- dependencies:
- component-emitter: "npm:~1.2.0"
- cookiejar: "npm:2.0.6"
- debug: "npm:2"
- extend: "npm:3.0.0"
- form-data: "npm:1.0.0-rc3"
- formidable: "npm:~1.0.14"
- methods: "npm:~1.1.1"
- mime: "npm:1.3.4"
- qs: "npm:2.3.3"
- readable-stream: "npm:1.0.27-1"
- reduce-component: "npm:1.0.1"
- checksum: 10c0/636198862a8bad386adc9fbe5f129a2617893fb79dbc007b6c7e92be9a114a7b3aed32c08adf00d286fa8726e6b5d51b8d46345a037a0066d7764b0c41bde4f9
- languageName: node
- linkType: hard
-
-"supports-color@npm:^2.0.0":
- version: 2.0.0
- resolution: "supports-color@npm:2.0.0"
- checksum: 10c0/570e0b63be36cccdd25186350a6cb2eaad332a95ff162fa06d9499982315f2fe4217e69dd98e862fbcd9c81eaff300a825a1fe7bf5cc752e5b84dfed042b0dda
- languageName: node
- linkType: hard
-
-"supports-color@npm:^3.2.3":
- version: 3.2.3
- resolution: "supports-color@npm:3.2.3"
- dependencies:
- has-flag: "npm:^1.0.0"
- checksum: 10c0/d39a57dbd75c3b5740654f8ec16aaf7203b8d12b8a51314507bed590c9081120805f105b4ce741db13105e6f842ac09700e4bd665b9ffc46eb0b34ba54720bd3
- languageName: node
- linkType: hard
-
-"supports-color@npm:^4.2.1":
- version: 4.5.0
- resolution: "supports-color@npm:4.5.0"
- dependencies:
- has-flag: "npm:^2.0.0"
- checksum: 10c0/2dc369eeac73954e87037dea1ebae0238b2abc0a39d7e35aa60eb8a84cc8d1dcade8b62e010597f5859f94c937e992abe6a6195460855fcc5e51f8cfc7fcc72a
- languageName: node
- linkType: hard
-
-"supports-color@npm:^5.3.0, supports-color@npm:^5.4.0":
- version: 5.5.0
- resolution: "supports-color@npm:5.5.0"
- dependencies:
- has-flag: "npm:^3.0.0"
- checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05
- languageName: node
- linkType: hard
-
-"supports-preserve-symlinks-flag@npm:^1.0.0":
- version: 1.0.0
- resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
- checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39
- languageName: node
- linkType: hard
-
-"svgo@npm:^0.7.0":
- version: 0.7.2
- resolution: "svgo@npm:0.7.2"
- dependencies:
- coa: "npm:~1.0.1"
- colors: "npm:~1.1.2"
- csso: "npm:~2.3.1"
- js-yaml: "npm:~3.7.0"
- mkdirp: "npm:~0.5.1"
- sax: "npm:~1.2.1"
- whet.extend: "npm:~0.9.9"
- bin:
- svgo: ./bin/svgo
- checksum: 10c0/cc3314ec0227b7fd4dfcbc622b69e45ac79462a2add2c5198b863f107e4afe459e01812e668fae868b3fb02326ffbb4cd25ca7d1f2580656b14beae10eb2596c
- languageName: node
- linkType: hard
-
-"tapable@npm:^0.2.7":
- version: 0.2.9
- resolution: "tapable@npm:0.2.9"
- checksum: 10c0/93d0e5994621a9496112fe241784d59325684b509eb74d1abd9032802639b53ba9619db0f5db6ccdab994a5279bc4ed07b638a8a25143ba6b10603e409f314fb
- languageName: node
- linkType: hard
-
-"tar@npm:^7.5.4":
- version: 7.5.12
- resolution: "tar@npm:7.5.12"
- dependencies:
- "@isaacs/fs-minipass": "npm:^4.0.0"
- chownr: "npm:^3.0.0"
- minipass: "npm:^7.1.2"
- minizlib: "npm:^3.1.0"
- yallist: "npm:^5.0.0"
- checksum: 10c0/3825c5974f5fde792981f47ee9ffea021ee7f4b552b7ab95eeb98e5dfadfd5a5d5861f01fb772e2e5637a41980d3c019fd6cdad1be48b462b886abd7fe0fa17c
- languageName: node
- linkType: hard
-
-"through2@npm:0.6.3":
- version: 0.6.3
- resolution: "through2@npm:0.6.3"
- dependencies:
- readable-stream: "npm:>=1.0.33-1 <1.1.0-0"
- xtend: "npm:>=4.0.0 <4.1.0-0"
- checksum: 10c0/5c3cd5427280d42378582fcb9c31eec15ffdcba482101c565e73715f4216eaa360d7ff339c7b29ff3a39a77a8a3f90010b390329446b10e61c5b3c59b064af75
- languageName: node
- linkType: hard
-
-"through2@npm:^2.0.0":
- version: 2.0.5
- resolution: "through2@npm:2.0.5"
- dependencies:
- readable-stream: "npm:~2.3.6"
- xtend: "npm:~4.0.1"
- checksum: 10c0/cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade
- languageName: node
- linkType: hard
-
-"timed-out@npm:4.0.1":
- version: 4.0.1
- resolution: "timed-out@npm:4.0.1"
- checksum: 10c0/86f03ffce5b80c5a066e02e59e411d3fbbfcf242b19290ba76817b4180abd1b85558489586b6022b798fb1cf26fc644c0ce0efb9c271d67ec83fada4b9542a56
- languageName: node
- linkType: hard
-
-"timers-browserify@npm:^2.0.4":
- version: 2.0.12
- resolution: "timers-browserify@npm:2.0.12"
- dependencies:
- setimmediate: "npm:^1.0.4"
- checksum: 10c0/98e84db1a685bc8827c117a8bc62aac811ad56a995d07938fc7ed8cdc5bf3777bfe2d4e5da868847194e771aac3749a20f6cdd22091300fe889a76fe214a4641
- languageName: node
- linkType: hard
-
-"tinyglobby@npm:^0.2.12":
- version: 0.2.15
- resolution: "tinyglobby@npm:0.2.15"
- dependencies:
- fdir: "npm:^6.5.0"
- picomatch: "npm:^4.0.3"
- checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844
- languageName: node
- linkType: hard
-
-"to-arraybuffer@npm:^1.0.0":
- version: 1.0.1
- resolution: "to-arraybuffer@npm:1.0.1"
- checksum: 10c0/2460bd95524f4845a751e4f8bf9937f9f3dcd1651f104e1512868782f858f8302c1cf25bbc30794bc1b3ff65c4e135158377302f2abaff43a2d8e3c38dfe098c
- languageName: node
- linkType: hard
-
-"to-fast-properties@npm:^1.0.3":
- version: 1.0.3
- resolution: "to-fast-properties@npm:1.0.3"
- checksum: 10c0/78974a4f4528700d18e4c2bbf0b1fb1b19862dcc20a18dc5ed659843dea2dff4f933d167a11d3819865c1191042003aea65f7f035791af9e65d070f2e05af787
- languageName: node
- linkType: hard
-
-"trim-right@npm:^1.0.1":
- version: 1.0.1
- resolution: "trim-right@npm:1.0.1"
- checksum: 10c0/71989ec179c6b42a56e03db68e60190baabf39d32d4e1252fa1501c4e478398ae29d7191beffe015b9d9dc76f04f4b3a946bdb9949ad6b0c0b0c5db65f3eb672
- languageName: node
- linkType: hard
-
-"tslib@npm:^2.3.0":
- version: 2.4.0
- resolution: "tslib@npm:2.4.0"
- checksum: 10c0/eb19bda3ae545b03caea6a244b34593468e23d53b26bf8649fbc20fce43e9b21a71127fd6d2b9662c0fe48ee6ff668ead48fd00d3b88b2b716b1c12edae25b5d
- languageName: node
- linkType: hard
-
-"tty-browserify@npm:0.0.0":
- version: 0.0.0
- resolution: "tty-browserify@npm:0.0.0"
- checksum: 10c0/c0c68206565f1372e924d5cdeeff1a0d9cc729833f1da98c03d78be8f939e5f61a107bd0ab77d1ef6a47d62bb0e48b1081fbea273acf404959e22fd3891439c5
- languageName: node
- linkType: hard
-
-"type@npm:^1.0.1":
- version: 1.2.0
- resolution: "type@npm:1.2.0"
- checksum: 10c0/444660849aaebef8cbb9bc43b28ec2068952064cfce6a646f88db97aaa2e2d6570c5629cd79238b71ba23aa3f75146a0b96e24e198210ee0089715a6f8889bf7
- languageName: node
- linkType: hard
-
-"type@npm:^2.5.0":
- version: 2.6.0
- resolution: "type@npm:2.6.0"
- checksum: 10c0/d08063a1c3415140d0b6fd17ede55f373cdd6c5503776693ad5ead574a06404823374d62d6233e43bc30ec22f596b790cbb8661429bed75a75dab986b506ac60
- languageName: node
- linkType: hard
-
-"typedarray@npm:^0.0.6":
- version: 0.0.6
- resolution: "typedarray@npm:0.0.6"
- checksum: 10c0/6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412
- languageName: node
- linkType: hard
-
-"uglify-es@npm:^3.3.4":
- version: 3.3.9
- resolution: "uglify-es@npm:3.3.9"
- dependencies:
- commander: "npm:~2.13.0"
- source-map: "npm:~0.6.1"
- bin:
- uglifyjs: bin/uglifyjs
- checksum: 10c0/b591de4ea2c7153f446f80f2559bbabcb4ff53a17dbfd27b9bb980b31f5fb7e563bdae6e9abc07d97ecb484ac4ceba4c7a207e6854cb2aaca72e80e6090c989e
- languageName: node
- linkType: hard
-
-"uglifyjs-webpack-plugin@npm:1.3.0":
- version: 1.3.0
- resolution: "uglifyjs-webpack-plugin@npm:1.3.0"
- dependencies:
- cacache: "npm:^10.0.4"
- find-cache-dir: "npm:^1.0.0"
- schema-utils: "npm:^0.4.5"
- serialize-javascript: "npm:^1.4.0"
- source-map: "npm:^0.6.1"
- uglify-es: "npm:^3.3.4"
- webpack-sources: "npm:^1.1.0"
- worker-farm: "npm:^1.5.2"
- peerDependencies:
- webpack: ^2.0.0 || ^3.0.0 || ^4.0.0
- checksum: 10c0/d10ae2ac25f64afddff328fbaa58640450c099c53e44d66829681a5415ef72aa2563d1e5ed43e0e9c409db869575fd914293faaa39288e21da518084878de413
- languageName: node
- linkType: hard
-
-"uniq@npm:^1.0.1":
- version: 1.0.1
- resolution: "uniq@npm:1.0.1"
- checksum: 10c0/369dca4a07fdd8de9e48378b9d4b6861722ca71d5f496e91687916bd4b48b8cf3d6db1677be1b40eea63bc6d4728efb4b4e0bd7a89c5fd2d23e7a2cff8009c7a
- languageName: node
- linkType: hard
-
-"uniqs@npm:^2.0.0":
- version: 2.0.0
- resolution: "uniqs@npm:2.0.0"
- checksum: 10c0/f244b158f6b3d30ddea2092c581fe9eb746d6db889a859fd0001e4b7566767bfcc53cdf11e6286f097bb130ebad71025709f41f2e4dd38e5c2f03ec28052baab
- languageName: node
- linkType: hard
-
-"unique-filename@npm:^1.1.0":
- version: 1.1.1
- resolution: "unique-filename@npm:1.1.1"
- dependencies:
- unique-slug: "npm:^2.0.0"
- checksum: 10c0/d005bdfaae6894da8407c4de2b52f38b3c58ec86e79fc2ee19939da3085374413b073478ec54e721dc8e32b102cf9e50d0481b8331abdc62202e774b789ea874
- languageName: node
- linkType: hard
-
-"unique-slug@npm:^2.0.0":
- version: 2.0.2
- resolution: "unique-slug@npm:2.0.2"
- dependencies:
- imurmurhash: "npm:^0.1.4"
- checksum: 10c0/9eabc51680cf0b8b197811a48857e41f1364b25362300c1ff636c0eca5ec543a92a38786f59cf0697e62c6f814b11ecbe64e8093db71246468a1f03b80c83970
- languageName: node
- linkType: hard
-
-"uri-js@npm:^4.2.2":
- version: 4.4.1
- resolution: "uri-js@npm:4.4.1"
- dependencies:
- punycode: "npm:^2.1.0"
- checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
- languageName: node
- linkType: hard
-
-"urijs@npm:^1.19.7":
- version: 1.19.11
- resolution: "urijs@npm:1.19.11"
- checksum: 10c0/96e15eea5b41a99361d506e4d8fcc64dc43f334bd5fd34e08261467b6954b97a6b45929a8d6c79e2dc76aadfd6ca950e0f4bd7f3c0757a08978429634d07eda1
- languageName: node
- linkType: hard
-
-"url@npm:^0.11.0":
- version: 0.11.0
- resolution: "url@npm:0.11.0"
- dependencies:
- punycode: "npm:1.3.2"
- querystring: "npm:0.2.0"
- checksum: 10c0/bbe05f9f570ec5c06421c50ca63f287e61279092eed0891db69a9619323703ccd3987e6eed234c468794cf25680c599680d5c1f58d26090f1956c8e9ed8346a2
- languageName: node
- linkType: hard
-
-"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
- version: 1.0.2
- resolution: "util-deprecate@npm:1.0.2"
- checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
- languageName: node
- linkType: hard
-
-"util@npm:0.10.3":
- version: 0.10.3
- resolution: "util@npm:0.10.3"
- dependencies:
- inherits: "npm:2.0.1"
- checksum: 10c0/88bb58fec3b1f5f43dea27795f61f24b3b505bbba6f3ad6e91b32db0cd0928b2acb54ebe21603a75743c6e21a52f954cd2ffb6cddafed5a01169dd1287db3ff3
- languageName: node
- linkType: hard
-
-"util@npm:^0.11.0":
- version: 0.11.1
- resolution: "util@npm:0.11.1"
- dependencies:
- inherits: "npm:2.0.3"
- checksum: 10c0/8e9d1a85e661c8a8d9883d821aedbff3f8d9c3accd85357020905386ada5653b20389fc3591901e2a0bde64f8dc86b28c3f990114aa5a38eaaf30b455fa3cdf6
- languageName: node
- linkType: hard
-
-"uuid@npm:3.3.2":
- version: 3.3.2
- resolution: "uuid@npm:3.3.2"
- bin:
- uuid: ./bin/uuid
- checksum: 10c0/847bd7b389f44d05cf5341134d52803116b616c7344f12c74040effd75280b58273ea3a2bee6ba6e5405688c5edbb0696f4adcbc89e1206dc1d8650bdaece7a6
- languageName: node
- linkType: hard
-
-"validate-npm-package-license@npm:^3.0.1":
- version: 3.0.4
- resolution: "validate-npm-package-license@npm:3.0.4"
- dependencies:
- spdx-correct: "npm:^3.0.0"
- spdx-expression-parse: "npm:^3.0.0"
- checksum: 10c0/7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f
- languageName: node
- linkType: hard
-
-"vendors@npm:^1.0.0":
- version: 1.0.4
- resolution: "vendors@npm:1.0.4"
- checksum: 10c0/a9b097f3607013a23bf447cbaff85b79b694cc23b20e81a6aea1ea9e1c59854c93f7c87abcc71b57999e050606e499d9ce18df67968823644b20f6e03d56022a
- languageName: node
- linkType: hard
-
-"vm-browserify@npm:^1.0.1":
- version: 1.1.2
- resolution: "vm-browserify@npm:1.1.2"
- checksum: 10c0/0cc1af6e0d880deb58bc974921320c187f9e0a94f25570fca6b1bd64e798ce454ab87dfd797551b1b0cc1849307421aae0193cedf5f06bdb5680476780ee344b
- languageName: node
- linkType: hard
-
-"watchpack@npm:^2.3.1":
- version: 2.4.0
- resolution: "watchpack@npm:2.4.0"
- dependencies:
- glob-to-regexp: "npm:^0.4.1"
- graceful-fs: "npm:^4.1.2"
- checksum: 10c0/c5e35f9fb9338d31d2141d9835643c0f49b5f9c521440bb648181059e5940d93dd8ed856aa8a33fbcdd4e121dad63c7e8c15c063cf485429cd9d427be197fe62
- languageName: node
- linkType: hard
-
-"webpack-bundle-tracker@npm:0.0.9":
- version: 0.0.9
- resolution: "webpack-bundle-tracker@npm:0.0.9"
- dependencies:
- mkdirp: "npm:^0.5.1"
- strip-ansi: "npm:^2.0.1"
- checksum: 10c0/76da10a1a26deec3e3d10ac4143e9fec9434147a08572561bf00d45ba38807296ff5eb894d5595e2c4124067bcb048f9fa3622932f7f9b5c8111d2526bddb9fe
- languageName: node
- linkType: hard
-
-"webpack-sources@npm:^1.0.1, webpack-sources@npm:^1.1.0":
- version: 1.4.3
- resolution: "webpack-sources@npm:1.4.3"
- dependencies:
- source-list-map: "npm:^2.0.0"
- source-map: "npm:~0.6.1"
- checksum: 10c0/78dafb3e1e297d3f4eb6204311e8c64d28cd028f82887ba33aaf03fffc82482d8e1fdf6de25a60f4dde621d3565f4c3b1bfb350f09add8f4e54e00279ff3db5e
- languageName: node
- linkType: hard
-
-"webpack@npm:3.12.0":
- version: 3.12.0
- resolution: "webpack@npm:3.12.0"
- dependencies:
- acorn: "npm:^5.0.0"
- acorn-dynamic-import: "npm:^2.0.0"
- ajv: "npm:^6.1.0"
- ajv-keywords: "npm:^3.1.0"
- async: "npm:^2.1.2"
- enhanced-resolve: "npm:^3.4.0"
- escope: "npm:^3.6.0"
- interpret: "npm:^1.0.0"
- json-loader: "npm:^0.5.4"
- json5: "npm:^0.5.1"
- loader-runner: "npm:^2.3.0"
- loader-utils: "npm:^1.1.0"
- memory-fs: "npm:~0.4.1"
- mkdirp: "npm:~0.5.0"
- node-libs-browser: "npm:^2.0.0"
- source-map: "npm:^0.5.3"
- supports-color: "npm:^4.2.1"
- tapable: "npm:^0.2.7"
- uglifyjs-webpack-plugin: "npm:^0.4.6"
- watchpack: "npm:^1.4.0"
- webpack-sources: "npm:^1.0.1"
- yargs: "npm:^8.0.2"
- bin:
- webpack: ./bin/webpack.js
- checksum: 10c0/64051e33b94d641ea6ed85e6d33d0964ff27ce28f4dd9a989dee39ce98b67fadd057fecd2bfdf49c8fe8909c0c74e415f01381e7a105f926968b1a6eb92f5220
- languageName: node
- linkType: hard
-
-"whet.extend@npm:~0.9.9":
- version: 0.9.9
- resolution: "whet.extend@npm:0.9.9"
- checksum: 10c0/75c48bfe0cdd36b7c510286d591b34a1a6810ba914b0c8f23788c2a17f4592706debaf1f1f667c7f46f1a657c4f1d5f2889ce234b570827acbb29bf28799ce7f
- languageName: node
- linkType: hard
-
-"which-module@npm:^2.0.0":
- version: 2.0.0
- resolution: "which-module@npm:2.0.0"
- checksum: 10c0/946ffdbcd6f0cf517638f8f2319c6d51e528c3b41bc2c0f5dc3dc46047347abd7326aea5cdf5def0a8b32bdca313ac87a32ce5a76b943fe1ca876c4557e6b716
- languageName: node
- linkType: hard
-
-"which@npm:^1.2.9":
- version: 1.3.1
- resolution: "which@npm:1.3.1"
- dependencies:
- isexe: "npm:^2.0.0"
- bin:
- which: ./bin/which
- checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59
- languageName: node
- linkType: hard
-
-"which@npm:^6.0.0":
- version: 6.0.1
- resolution: "which@npm:6.0.1"
- dependencies:
- isexe: "npm:^4.0.0"
- bin:
- node-which: bin/which.js
- checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5
- languageName: node
- linkType: hard
-
-"worker-farm@npm:^1.5.2":
- version: 1.7.0
- resolution: "worker-farm@npm:1.7.0"
- dependencies:
- errno: "npm:~0.1.7"
- checksum: 10c0/069a032f9198a07273a7608dc0c23d7288c1c25256b66008e1ae95838cda6fa2c7aefb3b7ba760f975c8d18120ca54eb193afb66d7237b2a05e5da12c1c961f7
- languageName: node
- linkType: hard
-
-"wrap-ansi@npm:^2.0.0":
- version: 2.1.0
- resolution: "wrap-ansi@npm:2.1.0"
- dependencies:
- string-width: "npm:^1.0.1"
- strip-ansi: "npm:^3.0.1"
- checksum: 10c0/1a47367eef192fc9ecaf00238bad5de8987c3368082b619ab36c5e2d6d7b0a2aef95a2ca65840be598c56ced5090a3ba487956c7aee0cac7c45017502fa980fb
- languageName: node
- linkType: hard
-
-"wrappy@npm:1":
- version: 1.0.2
- resolution: "wrappy@npm:1.0.2"
- checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0
- languageName: node
- linkType: hard
-
-"xtend@npm:>=4.0.0 <4.1.0-0, xtend@npm:^4.0.0, xtend@npm:~4.0.1":
- version: 4.0.2
- resolution: "xtend@npm:4.0.2"
- checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e
- languageName: node
- linkType: hard
-
-"y18n@npm:^3.2.1":
- version: 3.2.2
- resolution: "y18n@npm:3.2.2"
- checksum: 10c0/08dc1880f6f766057ed25cd61ef0c7dab3db93639db9a7487a84f75dac7a349dface8dff8d1d8b7bdf50969fcd69ab858ab26b06968b4e4b12ee60d195233c46
- languageName: node
- linkType: hard
-
-"y18n@npm:^4.0.0":
- version: 4.0.3
- resolution: "y18n@npm:4.0.3"
- checksum: 10c0/308a2efd7cc296ab2c0f3b9284fd4827be01cfeb647b3ba18230e3a416eb1bc887ac050de9f8c4fd9e7856b2e8246e05d190b53c96c5ad8d8cb56dffb6f81024
- languageName: node
- linkType: hard
-
-"yallist@npm:^2.1.2":
- version: 2.1.2
- resolution: "yallist@npm:2.1.2"
- checksum: 10c0/0b9e25aa00adf19e01d2bcd4b208aee2b0db643d9927131797b7af5ff69480fc80f1c3db738cbf3946f0bddf39d8f2d0a5709c644fd42d4aa3a4e6e786c087b5
- languageName: node
- linkType: hard
-
-"yallist@npm:^4.0.0":
- version: 4.0.0
- resolution: "yallist@npm:4.0.0"
- checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
- languageName: node
- linkType: hard
-
-"yallist@npm:^5.0.0":
- version: 5.0.0
- resolution: "yallist@npm:5.0.0"
- checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416
- languageName: node
- linkType: hard
-
-"yargs-parser@npm:^7.0.0":
- version: 7.0.0
- resolution: "yargs-parser@npm:7.0.0"
- dependencies:
- camelcase: "npm:^4.1.0"
- checksum: 10c0/6fde2df522dd071cf76308fe4e37fd2fb8eae3eb1fb6c6759c2d448264c8451162649eb8558ac8d83aff79278cabfddc17ecba3e1a0d0fe2e406cf4e1bc95b0d
- languageName: node
- linkType: hard
-
-"yargs@npm:^8.0.2":
- version: 8.0.2
- resolution: "yargs@npm:8.0.2"
- dependencies:
- camelcase: "npm:^4.1.0"
- cliui: "npm:^3.2.0"
- decamelize: "npm:^1.1.1"
- get-caller-file: "npm:^1.0.1"
- os-locale: "npm:^2.0.0"
- read-pkg-up: "npm:^2.0.0"
- require-directory: "npm:^2.1.1"
- require-main-filename: "npm:^1.0.1"
- set-blocking: "npm:^2.0.0"
- string-width: "npm:^2.0.0"
- which-module: "npm:^2.0.0"
- y18n: "npm:^3.2.1"
- yargs-parser: "npm:^7.0.0"
- checksum: 10c0/70e4ed99e3f1e8a034d0b600773db9fb44e03ec88cfa7125fc65a965428051ad59e77c074afa1afcbe3ec34436d3a6e7ba18b3ec62b4e5f59f30606df791b125
- languageName: node
- linkType: hard
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+JSON2@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/JSON2/-/JSON2-0.1.0.tgz#8d7493040a63d5835af75f47decb83ab6c8c0790"
+ integrity sha512-MRguCg79vy8Kx15/CXzoO5pEPi0tQq7T70mL/t1Hv3G+hVfJVO2BZqX3sl2kbWW08GAmzQYSRfWRtQhmK/eaYA==
+
+acorn-dynamic-import@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
+ integrity sha512-GKp5tQ8h0KMPWIYGRHHXI1s5tUpZixZ3IHF2jAu42wSCf6In/G873s6/y4DdKdhWvzhu1T6mE1JgvnhAKqyYYQ==
+ dependencies:
+ acorn "^4.0.3"
+
+acorn@^4.0.3:
+ version "4.0.13"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
+ integrity sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==
+
+acorn@^5.0.0:
+ version "5.7.4"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
+ integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
+
+ajv-errors@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+ integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
+
+ajv-keywords@^3.1.0:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^6.1.0:
+ version "6.14.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.14.0.tgz#fd067713e228210636ebb08c60bd3765d6dbe73a"
+ integrity sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
+ integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==
+
+ansi-regex@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d"
+ integrity sha512-q5i8bFLg2wDfsuR56c1NzlJFPzVD+9mxhDrhqOGigEFa87OZHlF+9dWeGWzVTP/0ECiA/JUGzfzRr2t3eYORRw==
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
+
+ansi-regex@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
+ integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+aproba@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+asn1.js@^4.10.1:
+ version "4.10.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
+ integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+assert@^1.1.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.1.tgz#038ab248e4ff078e7bc2485ba6e6388466c78f76"
+ integrity sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==
+ dependencies:
+ object.assign "^4.1.4"
+ util "^0.10.4"
+
+async@^1.4.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+ integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==
+
+async@^2.1.2:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
+ integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
+ dependencies:
+ lodash "^4.17.14"
+
+autoprefixer@^6.3.1:
+ version "6.7.7"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014"
+ integrity sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==
+ dependencies:
+ browserslist "^1.7.6"
+ caniuse-db "^1.0.30000634"
+ normalize-range "^0.1.2"
+ num2fraction "^1.2.2"
+ postcss "^5.2.16"
+ postcss-value-parser "^3.2.3"
+
+available-typed-arrays@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
+ integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
+ dependencies:
+ possible-typed-array-names "^1.0.0"
+
+babel-code-frame@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+babel-core@^6.0.0, babel-core@^6.26.0:
+ version "6.26.3"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
+ integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-generator "^6.26.0"
+ babel-helpers "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-register "^6.26.0"
+ babel-runtime "^6.26.0"
+ babel-template "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ convert-source-map "^1.5.1"
+ debug "^2.6.9"
+ json5 "^0.5.1"
+ lodash "^4.17.4"
+ minimatch "^3.0.4"
+ path-is-absolute "^1.0.1"
+ private "^0.1.8"
+ slash "^1.0.0"
+ source-map "^0.5.7"
+
+babel-generator@^6.26.0:
+ version "6.26.1"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
+ integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.17.4"
+ source-map "^0.5.7"
+ trim-right "^1.0.1"
+
+babel-helpers@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
+ integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-loader@^6.4.1:
+ version "6.4.1"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca"
+ integrity sha512-hHvbCsXtwKIznu5Qmqfe/IwZ4O5frqe+j04fN/5u/9Rg48dpWIKyYqAN68N1wwqGSMToo4FhU9/MrH+QZlFdkQ==
+ dependencies:
+ find-cache-dir "^0.1.1"
+ loader-utils "^0.2.16"
+ mkdirp "^0.5.1"
+ object-assign "^4.0.1"
+
+babel-messages@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
+ integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-register@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
+ integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==
+ dependencies:
+ babel-core "^6.26.0"
+ babel-runtime "^6.26.0"
+ core-js "^2.5.0"
+ home-or-tmp "^2.0.0"
+ lodash "^4.17.4"
+ mkdirp "^0.5.1"
+ source-map-support "^0.4.15"
+
+babel-runtime@^6.22.0, babel-runtime@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+babel-template@^6.24.1, babel-template@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
+ integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ lodash "^4.17.4"
+
+babel-traverse@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ debug "^2.6.8"
+ globals "^9.18.0"
+ invariant "^2.2.2"
+ lodash "^4.17.4"
+
+babel-types@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+ integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==
+ dependencies:
+ babel-runtime "^6.26.0"
+ esutils "^2.0.2"
+ lodash "^4.17.4"
+ to-fast-properties "^1.0.3"
+
+babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+ integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
+
+balanced-match@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+ integrity sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg==
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.0.2:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+big.js@^3.1.3:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+ integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
+
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+bluebird@^3.5.1:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
+ version "4.12.3"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e"
+ integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==
+
+bn.js@^5.2.1, bn.js@^5.2.2:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e"
+ integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==
+
+bootstrap-colorpicker@^2.5.2:
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-2.5.3.tgz#b50aff8590fbaa6b5aa63a5624e4213f1659a49d"
+ integrity sha512-xdllX8LSMvKULs3b8JrgRXTvyvjkSMHHHVuHjjN5FNMqr6kRe5NPiMHFmeAFjlgDF73MspikudLuEwR28LbzLw==
+ dependencies:
+ jquery ">=1.10"
+
+bootstrap-tagsinput@^0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/bootstrap-tagsinput/-/bootstrap-tagsinput-0.7.1.tgz#ffe3b06bbe2a106945ef2814568005a94f211937"
+ integrity sha512-xSks67GWgXLnmO5gqp788vhh7WoXd9mHj5uKE5zg8rvw3sNYYSCjrSlrPRlPdpYKwmuxeuf2jsNjBSWEucyB1w==
+
+bower@^1.3.12:
+ version "1.8.14"
+ resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.14.tgz#985722a3c1fcd35c93d4136ecbeafbeaaea74e86"
+ integrity sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ==
+
+brace-expansion@^1.1.7:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
+ integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+brorand@^1.0.1, brorand@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+ integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
+
+browserify-aes@^1.0.4, browserify-aes@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
+ dependencies:
+ buffer-xor "^1.0.3"
+ cipher-base "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.3"
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+browserify-cipher@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+ integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
+ dependencies:
+ browserify-aes "^1.0.4"
+ browserify-des "^1.0.0"
+ evp_bytestokey "^1.0.0"
+
+browserify-des@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+ integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
+ dependencies:
+ cipher-base "^1.0.1"
+ des.js "^1.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+browserify-rsa@^4.0.0, browserify-rsa@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.1.tgz#06e530907fe2949dc21fc3c2e2302e10b1437238"
+ integrity sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==
+ dependencies:
+ bn.js "^5.2.1"
+ randombytes "^2.1.0"
+ safe-buffer "^5.2.1"
+
+browserify-sign@^4.2.3:
+ version "4.2.5"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.5.tgz#3979269fa8af55ba18aac35deef11b45515cd27d"
+ integrity sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==
+ dependencies:
+ bn.js "^5.2.2"
+ browserify-rsa "^4.1.1"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ elliptic "^6.6.1"
+ inherits "^2.0.4"
+ parse-asn1 "^5.1.9"
+ readable-stream "^2.3.8"
+ safe-buffer "^5.2.1"
+
+browserify-versionify@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/browserify-versionify/-/browserify-versionify-1.0.3.tgz#927eaaf85f16fe8d8d59eb1c6da76b488c01406c"
+ integrity sha512-QJ6s79FZWcKlYptoyd1K5/m+hYuVN8aW8k5b5Z7U9GhL8lR9YrAtADftcSeBJOeltjqfr2JlmtU3FfS+GU/cXQ==
+ dependencies:
+ find-root "^0.1.1"
+ through2 "0.6.3"
+
+browserify-zlib@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+ integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
+ dependencies:
+ pako "~1.0.5"
+
+browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
+ version "1.7.7"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
+ integrity sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==
+ dependencies:
+ caniuse-db "^1.0.30000639"
+ electron-to-chromium "^1.2.7"
+
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+buffer-xor@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+ integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
+
+buffer@^4.3.0:
+ version "4.9.2"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
+ integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+ isarray "^1.0.0"
+
+builtin-status-codes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+ integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==
+
+cacache@^10.0.4:
+ version "10.0.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
+ integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
+ dependencies:
+ bluebird "^3.5.1"
+ chownr "^1.0.1"
+ glob "^7.1.2"
+ graceful-fs "^4.1.11"
+ lru-cache "^4.1.1"
+ mississippi "^2.0.0"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ promise-inflight "^1.0.1"
+ rimraf "^2.6.2"
+ ssri "^5.2.4"
+ unique-filename "^1.1.0"
+ y18n "^4.0.0"
+
+call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
+ integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+
+call-bind@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c"
+ integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==
+ dependencies:
+ call-bind-apply-helpers "^1.0.0"
+ es-define-property "^1.0.0"
+ get-intrinsic "^1.2.4"
+ set-function-length "^1.2.2"
+
+call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
+ integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
+ dependencies:
+ call-bind-apply-helpers "^1.0.2"
+ get-intrinsic "^1.3.0"
+
+camelcase@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+ integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==
+
+caniuse-api@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
+ integrity sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q==
+ dependencies:
+ browserslist "^1.3.6"
+ caniuse-db "^1.0.30000529"
+ lodash.memoize "^4.1.2"
+ lodash.uniq "^4.5.0"
+
+caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
+ version "1.0.30001781"
+ resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001781.tgz#7bc16b681ec25e23bd8b2e02067b9cede707c778"
+ integrity sha512-gNw4Hl6IfkgyGMNzgGRWrnalOUASAYFiCFywQemHI9OU16PC6TRRhHEnR7taYC2/Mad/nDLkzXAEtejGuNsUfg==
+
+chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@^2.4.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+charenc@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
+ integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
+
+chownr@^1.0.1:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
+cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.7.tgz#bd094bfef42634ccfd9e13b9fc73274997111e39"
+ integrity sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==
+ dependencies:
+ inherits "^2.0.4"
+ safe-buffer "^5.2.1"
+ to-buffer "^1.2.2"
+
+clap@^1.0.9:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
+ integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==
+ dependencies:
+ chalk "^1.1.3"
+
+cliui@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wrap-ansi "^2.0.0"
+
+clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
+
+coa@~1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
+ integrity sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==
+ dependencies:
+ q "^1.1.2"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==
+
+color-convert@^1.3.0, color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
+color-name@^1.0.0:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
+ integrity sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA==
+ dependencies:
+ color-name "^1.0.0"
+
+color@^0.11.0:
+ version "0.11.4"
+ resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
+ integrity sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA==
+ dependencies:
+ clone "^1.0.2"
+ color-convert "^1.3.0"
+ color-string "^0.3.0"
+
+colormin@^1.0.5:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
+ integrity sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ==
+ dependencies:
+ color "^0.11.0"
+ css-color-names "0.0.4"
+ has "^1.0.1"
+
+colors@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+ integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==
+
+combined-stream@^1.0.5:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@~2.13.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
+ integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+ integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
+
+component-emitter@^1.1.3:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17"
+ integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==
+
+component-emitter@~1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+ integrity sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+concat-stream@^1.5.0:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+console-browserify@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
+ integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
+
+constants-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+ integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==
+
+convert-source-map@^1.5.1:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
+ integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
+
+cookie@0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+ integrity sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==
+
+cookiejar@2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.0.6.tgz#0abf356ad00d1c5a219d88d44518046dd026acfe"
+ integrity sha512-X9IsySmsr1heROBZCpyEYhqJyU7CXNJoVxIlQ5bBb7DskYUx0mQ+g2f7yPYajceZeGJWHQbIfGB6j0hywV/ARQ==
+
+copy-anything@^3.0.5:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0"
+ integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==
+ dependencies:
+ is-what "^4.1.8"
+
+copy-concurrently@^1.0.0:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
+ dependencies:
+ aproba "^1.1.1"
+ fs-write-stream-atomic "^1.0.8"
+ iferr "^0.1.5"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.0"
+
+core-js@^2.4.0, core-js@^2.5.0:
+ version "2.6.12"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
+ integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
+
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
+create-ecdh@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
+ integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
+ dependencies:
+ bn.js "^4.1.0"
+ elliptic "^6.5.3"
+
+create-hash@^1.1.0, create-hash@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
+ dependencies:
+ cipher-base "^1.0.1"
+ inherits "^2.0.1"
+ md5.js "^1.3.4"
+ ripemd160 "^2.0.1"
+ sha.js "^2.4.0"
+
+create-hmac@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
+ dependencies:
+ cipher-base "^1.0.3"
+ create-hash "^1.1.0"
+ inherits "^2.0.1"
+ ripemd160 "^2.0.0"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+cross-spawn@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+crypt@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
+ integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==
+
+crypto-browserify@^3.11.0:
+ version "3.12.1"
+ resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz#bb8921bec9acc81633379aa8f52d69b0b69e0dac"
+ integrity sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==
+ dependencies:
+ browserify-cipher "^1.0.1"
+ browserify-sign "^4.2.3"
+ create-ecdh "^4.0.4"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ diffie-hellman "^5.0.3"
+ hash-base "~3.0.4"
+ inherits "^2.0.4"
+ pbkdf2 "^3.1.2"
+ public-encrypt "^4.0.3"
+ randombytes "^2.1.0"
+ randomfill "^1.0.4"
+
+css-color-names@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
+ integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==
+
+css-loader@^0.28.11, css-loader@~0.26.1:
+ version "0.28.11"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7"
+ integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==
+ dependencies:
+ babel-code-frame "^6.26.0"
+ css-selector-tokenizer "^0.7.0"
+ cssnano "^3.10.0"
+ icss-utils "^2.1.0"
+ loader-utils "^1.0.2"
+ lodash.camelcase "^4.3.0"
+ object-assign "^4.1.1"
+ postcss "^5.0.6"
+ postcss-modules-extract-imports "^1.2.0"
+ postcss-modules-local-by-default "^1.2.0"
+ postcss-modules-scope "^1.1.0"
+ postcss-modules-values "^1.3.0"
+ postcss-value-parser "^3.3.0"
+ source-list-map "^2.0.0"
+
+css-selector-tokenizer@^0.7.0:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1"
+ integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==
+ dependencies:
+ cssesc "^3.0.0"
+ fastparse "^1.1.2"
+
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+cssnano@^3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"
+ integrity sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg==
+ dependencies:
+ autoprefixer "^6.3.1"
+ decamelize "^1.1.2"
+ defined "^1.0.0"
+ has "^1.0.1"
+ object-assign "^4.0.1"
+ postcss "^5.0.14"
+ postcss-calc "^5.2.0"
+ postcss-colormin "^2.1.8"
+ postcss-convert-values "^2.3.4"
+ postcss-discard-comments "^2.0.4"
+ postcss-discard-duplicates "^2.0.1"
+ postcss-discard-empty "^2.0.1"
+ postcss-discard-overridden "^0.1.1"
+ postcss-discard-unused "^2.2.1"
+ postcss-filter-plugins "^2.0.0"
+ postcss-merge-idents "^2.1.5"
+ postcss-merge-longhand "^2.0.1"
+ postcss-merge-rules "^2.0.3"
+ postcss-minify-font-values "^1.0.2"
+ postcss-minify-gradients "^1.0.1"
+ postcss-minify-params "^1.0.4"
+ postcss-minify-selectors "^2.0.4"
+ postcss-normalize-charset "^1.1.0"
+ postcss-normalize-url "^3.0.7"
+ postcss-ordered-values "^2.1.0"
+ postcss-reduce-idents "^2.2.2"
+ postcss-reduce-initial "^1.0.0"
+ postcss-reduce-transforms "^1.0.3"
+ postcss-svgo "^2.1.1"
+ postcss-unique-selectors "^2.0.2"
+ postcss-value-parser "^3.2.3"
+ postcss-zindex "^2.0.1"
+
+csso@~2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85"
+ integrity sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w==
+ dependencies:
+ clap "^1.0.9"
+ source-map "^0.5.3"
+
+cyclist@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3"
+ integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==
+
+d@1, d@^1.0.1, d@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de"
+ integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==
+ dependencies:
+ es5-ext "^0.10.64"
+ type "^2.7.2"
+
+debug@2, debug@^2.6.8, debug@^2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+decamelize@^1.1.1, decamelize@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
+
+define-data-property@^1.0.1, define-data-property@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
+ integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ gopd "^1.0.1"
+
+define-properties@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+ integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ dependencies:
+ define-data-property "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
+defined@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf"
+ integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
+des.js@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da"
+ integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==
+ dependencies:
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+detect-indent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
+ integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==
+ dependencies:
+ repeating "^2.0.0"
+
+diffie-hellman@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
+ dependencies:
+ bn.js "^4.1.0"
+ miller-rabin "^4.0.0"
+ randombytes "^2.0.0"
+
+domain-browser@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
+ integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
+
+domready@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/domready/-/domready-0.3.0.tgz#b3740facbd09163018152d12aec239383e102175"
+ integrity sha512-0w07yqKSi2caAo0qESL8Ou+ZkDfOrzxyJzSvJEdKmjOzPobPo7d4QFxpLjrq8zmigWP2mh2i/5F53NKSkPIqbA==
+
+dunder-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
+ integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
+ dependencies:
+ call-bind-apply-helpers "^1.0.1"
+ es-errors "^1.3.0"
+ gopd "^1.2.0"
+
+duplexify@^3.4.2, duplexify@^3.6.0:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+ integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
+ dependencies:
+ end-of-stream "^1.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+ stream-shift "^1.0.0"
+
+electron-to-chromium@^1.2.7:
+ version "1.5.321"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz#57a80554e2e7fd65e3689d320f52a64723472d5d"
+ integrity sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==
+
+elliptic@^6.5.3, elliptic@^6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06"
+ integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
+emojis-list@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+ integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==
+
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c"
+ integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==
+ dependencies:
+ once "^1.4.0"
+
+enhanced-resolve@^3.4.0:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
+ integrity sha512-ZaAux1rigq1e2nQrztHn4h2ugvpzZxs64qneNah+8Mh/K0CRqJFJc+UoXnUsq+1yX+DmQFPPdVqboKAJ89e0Iw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ memory-fs "^0.4.0"
+ object-assign "^4.0.1"
+ tapable "^0.2.7"
+
+errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
+ integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
+ dependencies:
+ prr "~1.0.1"
+
+error-ex@^1.2.0:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414"
+ integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-define-property@^1.0.0, es-define-property@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
+ integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
+
+es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
+es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
+ integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
+ dependencies:
+ es-errors "^1.3.0"
+
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14:
+ version "0.10.64"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
+ integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
+ dependencies:
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.3"
+ esniff "^2.0.1"
+ next-tick "^1.1.0"
+
+es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.35"
+ es6-symbol "^3.1.1"
+
+es6-map@^0.1.3:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
+ integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-set "~0.1.5"
+ es6-symbol "~3.1.1"
+ event-emitter "~0.3.5"
+
+es6-set@~0.1.5:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8"
+ integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==
+ dependencies:
+ d "^1.0.1"
+ es5-ext "^0.10.62"
+ es6-iterator "~2.0.3"
+ es6-symbol "^3.1.3"
+ event-emitter "^0.3.5"
+ type "^2.7.2"
+
+es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c"
+ integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==
+ dependencies:
+ d "^1.0.2"
+ ext "^1.7.0"
+
+es6-weak-map@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
+ integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.46"
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.1"
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+escope@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+ integrity sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==
+ dependencies:
+ es6-map "^0.1.3"
+ es6-weak-map "^2.0.1"
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+esniff@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308"
+ integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==
+ dependencies:
+ d "^1.0.1"
+ es5-ext "^0.10.62"
+ event-emitter "^0.3.5"
+ type "^2.7.2"
+
+esprima@^2.6.0:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+ integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==
+
+esrecurse@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+event-emitter@^0.3.5, event-emitter@~0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+events@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+ integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
+ dependencies:
+ md5.js "^1.3.4"
+ safe-buffer "^5.1.1"
+
+execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+ext@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
+ integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==
+ dependencies:
+ type "^2.7.2"
+
+extend@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
+ integrity sha512-5mYyg57hpD+sFaJmgNL9BidQ5C7dmJE3U5vzlRWbuqG+8dytvYEoxvKs6Tj5cm3LpMsFvRt20qz1ckezmsOUgQ==
+
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fastparse@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
+ integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
+
+find-cache-dir@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+ integrity sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A==
+ dependencies:
+ commondir "^1.0.1"
+ mkdirp "^0.5.1"
+ pkg-dir "^1.0.0"
+
+find-cache-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
+ integrity sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^1.0.0"
+ pkg-dir "^2.0.0"
+
+find-root@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1"
+ integrity sha512-GyDxVgA61TZcrgDJPqOqGBpi80Uf2yIstubgizi7AjC9yPdRrqBR+Y0MvK4kXnYlaoz3d+SGxDHMYVkwI/yd2w==
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.0.0, find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
+ dependencies:
+ locate-path "^2.0.0"
+
+flatten@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
+ integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==
+
+flush-write-stream@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
+ integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
+ dependencies:
+ inherits "^2.0.3"
+ readable-stream "^2.3.6"
+
+font-awesome-webpack@0.0.5-beta.2:
+ version "0.0.5-beta.2"
+ resolved "https://registry.yarnpkg.com/font-awesome-webpack/-/font-awesome-webpack-0.0.5-beta.2.tgz#9ea5f22f0615d08e76d8db341563649a726286d6"
+ integrity sha512-er4SI8BEy7gwq360+H0/s00IqekBuyOYgr5on3wG7/Kj9SQa8D3LJ87aj8zXTTyp+qswHtbWl5gye/ZhYJdrYQ==
+ dependencies:
+ css-loader "~0.26.1"
+ less-loader "~2.2.3"
+ style-loader "~0.13.1"
+
+font-awesome@^4.5.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
+ integrity sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==
+
+for-each@^0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47"
+ integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==
+ dependencies:
+ is-callable "^1.2.7"
+
+form-data@1.0.0-rc3:
+ version "1.0.0-rc3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.0-rc3.tgz#d35bc62e7fbc2937ae78f948aaa0d38d90607577"
+ integrity sha512-Z5JWXWsFDI8x73Rt/Dc7SK/EvKBzudhqIVBtEhcAhtoevCTqO3YJmctGBLzT0Ggg39xFcefkXt00t1TYLz6D0w==
+ dependencies:
+ async "^1.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.3"
+
+formidable@~1.0.14:
+ version "1.0.17"
+ resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.17.tgz#ef5491490f9433b705faa77249c99029ae348559"
+ integrity sha512-95MFT5qipMvUiesmuvGP1BI4hh5XWCzyTapiNJ/k8JBQda7rPy7UCWYItz2uZEdTgGNy1eInjzlL9Wx1O9fedg==
+
+from2@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+
+fs-write-stream-atomic@^1.0.8:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+ integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==
+ dependencies:
+ graceful-fs "^4.1.2"
+ iferr "^0.1.5"
+ imurmurhash "^0.1.4"
+ readable-stream "1 || 2"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+get-caller-file@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+
+get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
+ integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
+ dependencies:
+ call-bind-apply-helpers "^1.0.2"
+ es-define-property "^1.0.1"
+ es-errors "^1.3.0"
+ es-object-atoms "^1.1.1"
+ function-bind "^1.1.2"
+ get-proto "^1.0.1"
+ gopd "^1.2.0"
+ has-symbols "^1.1.0"
+ hasown "^2.0.2"
+ math-intrinsics "^1.1.0"
+
+get-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
+ integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
+ dependencies:
+ dunder-proto "^1.0.1"
+ es-object-atoms "^1.0.0"
+
+get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+ integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==
+
+glob-to-regexp@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+ integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+glob@^7.1.2, glob@^7.1.3:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^9.18.0:
+ version "9.18.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+ integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
+
+gopd@^1.0.1, gopd@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
+ integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+ integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==
+
+has-flag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+ integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
+ integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ dependencies:
+ es-define-property "^1.0.0"
+
+has-symbols@^1.0.3, has-symbols@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
+ integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
+
+has-tostringtag@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
+ integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
+ dependencies:
+ has-symbols "^1.0.3"
+
+has@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6"
+ integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==
+
+hash-base@^3.0.0, hash-base@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.2.tgz#79d72def7611c3f6e3c3b5730652638001b10a74"
+ integrity sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==
+ dependencies:
+ inherits "^2.0.4"
+ readable-stream "^2.3.8"
+ safe-buffer "^5.2.1"
+ to-buffer "^1.2.1"
+
+hash-base@~3.0.4:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.5.tgz#52480e285395cf7fba17dc4c9e47acdc7f248a8a"
+ integrity sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==
+ dependencies:
+ inherits "^2.0.4"
+ safe-buffer "^5.2.1"
+
+hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+ integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.1"
+
+hasown@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
+ dependencies:
+ function-bind "^1.1.2"
+
+hmac-drbg@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+home-or-tmp@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
+ integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.1"
+
+hosted-git-info@^2.1.4:
+ version "2.8.9"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
+ integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+
+html-comment-regex@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
+ integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
+
+https-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+ integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==
+
+iconv-lite@^0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+icss-replace-symbols@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
+ integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==
+
+icss-utils@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
+ integrity sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==
+ dependencies:
+ postcss "^6.0.1"
+
+ieee754@^1.1.4:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+iferr@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+ integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==
+
+image-size@~0.5.0:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
+ integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+indexes-of@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
+ integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
+
+interpret@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
+
+invariant@^2.2.2:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+ integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
+ dependencies:
+ loose-envify "^1.0.0"
+
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==
+
+is-absolute-url@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
+ integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+is-buffer@~1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-callable@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
+ integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+
+is-core-module@^2.16.1:
+ version "2.16.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
+ integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
+ dependencies:
+ hasown "^2.0.2"
+
+is-finite@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
+ integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
+
+is-plain-obj@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+ integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
+
+is-svg@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9"
+ integrity sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw==
+ dependencies:
+ html-comment-regex "^1.1.0"
+
+is-typed-array@^1.1.14:
+ version "1.1.15"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b"
+ integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==
+ dependencies:
+ which-typed-array "^1.1.16"
+
+is-what@^4.1.8:
+ version "4.1.16"
+ resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f"
+ integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==
+
+isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
+
+isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+jquery-datetimepicker@^2.5.21:
+ version "2.5.21"
+ resolved "https://registry.yarnpkg.com/jquery-datetimepicker/-/jquery-datetimepicker-2.5.21.tgz#00c388a78df2732fedfdb5c6529b6e84d53e0235"
+ integrity sha512-wDTpZ4f1PWd1XGaIIE0n6jLynlm+akBJ7/NjaB1bk2UJSS593CHJPZ3+FNEXoyvNVUeBlBC0oX6WTfCyfUhX/w==
+ dependencies:
+ jquery ">= 1.7.2"
+ jquery-mousewheel ">= 3.1.13"
+ php-date-formatter "^1.3.4"
+
+"jquery-mousewheel@>= 3.1.13":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.2.2.tgz#48c833f6260ee0c46d438a999e7d0060ec9eed0b"
+ integrity sha512-JP71xTAg08ZY3hcs9ZbYUZ5i+dkSsz4yRl/zpWkAmtzc+kMs5EfPkpkINSidiLYMaR0MTo3DfFGF9WIezMsFQQ==
+ dependencies:
+ jquery ">=1.2.6"
+
+"jquery@>= 1.7.2", jquery@>=1.10, jquery@>=1.2.6:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-4.0.0.tgz#95c33ac29005ff72ec444c5ba1cf457e61404fbb"
+ integrity sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg==
+
+js-base64@^2.1.9:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
+ integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
+
+"js-tokens@^3.0.0 || ^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+ integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==
+
+js-yaml@~3.7.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
+ integrity sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^2.6.0"
+
+jsesc@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+ integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==
+
+json-loader@^0.5.1, json-loader@^0.5.4:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
+ integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json3@^3.3.2:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
+ integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
+
+json5@^0.5.0, json5@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+ integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==
+
+json5@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
+ integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
+ dependencies:
+ minimist "^1.2.0"
+
+keen-js@^3.0.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/keen-js/-/keen-js-3.5.0.tgz#9274be9bb9ee1a92867872acb3627f5aa8147b79"
+ integrity sha512-lB/JZ/KfF+EL8xoUEJgGUv7adBQiQ4Q8PLI22Lzl00GqX47UmjyWnY8GETfUML5gjNxl0uqGHx2kXu0jzHHFKQ==
+ dependencies:
+ JSON2 "^0.1.0"
+ browserify-versionify "1.0.3"
+ component-emitter "^1.1.3"
+ domready "0.3.0"
+ json3 "^3.3.2"
+ spin.js "^2.0.1"
+ superagent "^1.8.3"
+
+klona@^2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22"
+ integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==
+
+knockout@3.5.1:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/knockout/-/knockout-3.5.1.tgz#62c81e81843bea2008fd23c575edd9ca978e75cf"
+ integrity sha512-wRJ9I4az0QcsH7A4v4l0enUpkS++MBx0BnL/68KaLzJg7x1qmbjSlwEoCNol7KTYZ+pmtI7Eh2J0Nu6/2Z5J/Q==
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==
+ dependencies:
+ invert-kv "^1.0.0"
+
+less-loader@^10.2.0:
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-10.2.0.tgz#97286d8797dc3dc05b1d16b0ecec5f968bdd4e32"
+ integrity sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==
+ dependencies:
+ klona "^2.0.4"
+
+less-loader@~2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-2.2.3.tgz#b6d8f8139c8493df09d992a93a00734b08f84528"
+ integrity sha512-U7lgRusyqTj1TUB6OBlmow6GigLk0n5ADuTSGblCp0nkXOk+lFq/lHTDXCHkm3WydZha2FVNZivEjCEZNFJCiw==
+ dependencies:
+ loader-utils "^0.2.5"
+
+less@^4.1.2:
+ version "4.6.4"
+ resolved "https://registry.yarnpkg.com/less/-/less-4.6.4.tgz#3ff8068e6c8a59f1ece8a6b9227bda28c1ed68a2"
+ integrity sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg==
+ dependencies:
+ copy-anything "^3.0.5"
+ parse-node-version "^1.0.1"
+ optionalDependencies:
+ errno "^0.1.1"
+ graceful-fs "^4.1.2"
+ image-size "~0.5.0"
+ make-dir "^2.1.0"
+ mime "^1.4.1"
+ needle "^3.1.0"
+ source-map "~0.6.0"
+
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ integrity sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
+loader-runner@^2.3.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
+ integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
+
+loader-utils@^0.2.16, loader-utils@^0.2.5:
+ version "0.2.17"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
+ integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ json5 "^0.5.0"
+ object-assign "^4.0.1"
+
+loader-utils@^1.0.2, loader-utils@^1.1.0:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
+ integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^1.0.1"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
+
+lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
+
+lodash.uniq@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+ integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
+
+lodash@^4.17.14, lodash@^4.17.4:
+ version "4.17.23"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a"
+ integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
+
+loose-envify@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+lru-cache@^4.0.1, lru-cache@^4.1.1:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+make-dir@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
+ integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
+ dependencies:
+ pify "^3.0.0"
+
+make-dir@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+ integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.0"
+
+math-expression-evaluator@^1.2.14:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.4.0.tgz#3d66031117fbb7b9715ea6c9c68c2cd2eebd37e2"
+ integrity sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw==
+
+math-intrinsics@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
+ integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
+
+md5.js@^1.3.4:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
+ integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+md5@^2.2.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
+ integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==
+ dependencies:
+ charenc "0.0.2"
+ crypt "0.0.2"
+ is-buffer "~1.1.6"
+
+mem@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ integrity sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==
+ dependencies:
+ mimic-fn "^1.0.0"
+
+memory-fs@^0.4.0, memory-fs@~0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+ integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+methods@~1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
+
+miller-rabin@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+ integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
+ dependencies:
+ bn.js "^4.0.0"
+ brorand "^1.0.1"
+
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.3:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mime@1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
+ integrity sha512-sAaYXszED5ALBt665F0wMQCUXpGuZsGdopoqcHPdL39ZYdi7uHoZlhrfZfhv8WzivhBzr/oXwaj+yiK5wY8MXQ==
+
+mime@^1.4.1:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+
+minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+ integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
+
+minimatch@^3.0.4, minimatch@^3.1.1:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e"
+ integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@^1.2.0, minimist@^1.2.6:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+mississippi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
+ integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
+ dependencies:
+ concat-stream "^1.5.0"
+ duplexify "^3.4.2"
+ end-of-stream "^1.1.0"
+ flush-write-stream "^1.0.0"
+ from2 "^2.1.0"
+ parallel-transform "^1.1.0"
+ pump "^2.0.1"
+ pumpify "^1.3.3"
+ stream-each "^1.1.0"
+ through2 "^2.0.0"
+
+mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
+ integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
+ dependencies:
+ minimist "^1.2.6"
+
+move-concurrently@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+ integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==
+ dependencies:
+ aproba "^1.1.1"
+ copy-concurrently "^1.0.0"
+ fs-write-stream-atomic "^1.0.8"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.3"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
+
+needle@^3.1.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/needle/-/needle-3.5.0.tgz#aa2023642cb41b11a11babb733fd8fa952919112"
+ integrity sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==
+ dependencies:
+ iconv-lite "^0.6.3"
+ sax "^1.2.4"
+
+next-tick@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
+ integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
+
+node-libs-browser@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
+ integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
+ dependencies:
+ assert "^1.1.1"
+ browserify-zlib "^0.2.0"
+ buffer "^4.3.0"
+ console-browserify "^1.1.0"
+ constants-browserify "^1.0.0"
+ crypto-browserify "^3.11.0"
+ domain-browser "^1.1.1"
+ events "^3.0.0"
+ https-browserify "^1.0.0"
+ os-browserify "^0.3.0"
+ path-browserify "0.0.1"
+ process "^0.11.10"
+ punycode "^1.2.4"
+ querystring-es3 "^0.2.0"
+ readable-stream "^2.3.3"
+ stream-browserify "^2.0.1"
+ stream-http "^2.7.2"
+ string_decoder "^1.0.0"
+ timers-browserify "^2.0.4"
+ tty-browserify "0.0.0"
+ url "^0.11.0"
+ util "^0.11.0"
+ vm-browserify "^1.0.1"
+
+normalize-package-data@^2.3.2:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ dependencies:
+ hosted-git-info "^2.1.4"
+ resolve "^1.10.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
+
+normalize-url@^1.4.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
+ integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==
+ dependencies:
+ object-assign "^4.0.1"
+ prepend-http "^1.0.0"
+ query-string "^4.1.0"
+ sort-keys "^1.0.0"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
+ dependencies:
+ path-key "^2.0.0"
+
+num2fraction@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+ integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+ integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
+
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
+object-inspect@^1.13.3:
+ version "1.13.4"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
+ integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
+
+object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object.assign@^4.1.4:
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d"
+ integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==
+ dependencies:
+ call-bind "^1.0.8"
+ call-bound "^1.0.3"
+ define-properties "^1.2.1"
+ es-object-atoms "^1.0.0"
+ has-symbols "^1.1.0"
+ object-keys "^1.1.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+os-browserify@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
+ integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==
+
+os-homedir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+ integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==
+
+os-locale@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
+ dependencies:
+ execa "^0.7.0"
+ lcid "^1.0.0"
+ mem "^1.1.0"
+
+os-tmpdir@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
+
+p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+ dependencies:
+ p-try "^1.0.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
+ dependencies:
+ p-limit "^1.1.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
+
+pako@~1.0.5:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
+parallel-transform@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
+ integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
+ dependencies:
+ cyclist "^1.0.1"
+ inherits "^2.0.3"
+ readable-stream "^2.1.5"
+
+parse-asn1@^5.0.0, parse-asn1@^5.1.9:
+ version "5.1.9"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.9.tgz#8dd24c3ea8da77dffbc708d94eaf232fd6156e95"
+ integrity sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==
+ dependencies:
+ asn1.js "^4.10.1"
+ browserify-aes "^1.2.0"
+ evp_bytestokey "^1.0.3"
+ pbkdf2 "^3.1.5"
+ safe-buffer "^5.2.1"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==
+ dependencies:
+ error-ex "^1.2.0"
+
+parse-node-version@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
+ integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
+
+path-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
+ integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
+
+path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-key@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
+
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ integrity sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==
+ dependencies:
+ pify "^2.0.0"
+
+pbkdf2@^3.1.2, pbkdf2@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.5.tgz#444a59d7a259a95536c56e80c89de31cc01ed366"
+ integrity sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==
+ dependencies:
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ ripemd160 "^2.0.3"
+ safe-buffer "^5.2.1"
+ sha.js "^2.4.12"
+ to-buffer "^1.2.1"
+
+php-date-formatter@^1.3.4:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/php-date-formatter/-/php-date-formatter-1.3.7.tgz#915cb587674c5b3ab69884b22a59aedb9c89902d"
+ integrity sha512-pmHAp3AGz5Ih+TuEJQkmilkB8qWkKYQpnOn93VHzloQQvPFaDqd9vkMOJbLMw2avU6R4/7uPIlfI3A4isvhM3A==
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
+
+pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+ integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+ integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
+
+pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ integrity sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg==
+ dependencies:
+ find-up "^1.0.0"
+
+pkg-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+ integrity sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==
+ dependencies:
+ find-up "^2.1.0"
+
+possible-typed-array-names@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae"
+ integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==
+
+postcss-calc@^5.2.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e"
+ integrity sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q==
+ dependencies:
+ postcss "^5.0.2"
+ postcss-message-helpers "^2.0.0"
+ reduce-css-calc "^1.2.6"
+
+postcss-colormin@^2.1.8:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b"
+ integrity sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w==
+ dependencies:
+ colormin "^1.0.5"
+ postcss "^5.0.13"
+ postcss-value-parser "^3.2.3"
+
+postcss-convert-values@^2.3.4:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d"
+ integrity sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA==
+ dependencies:
+ postcss "^5.0.11"
+ postcss-value-parser "^3.1.2"
+
+postcss-discard-comments@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d"
+ integrity sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg==
+ dependencies:
+ postcss "^5.0.14"
+
+postcss-discard-duplicates@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932"
+ integrity sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA==
+ dependencies:
+ postcss "^5.0.4"
+
+postcss-discard-empty@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5"
+ integrity sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og==
+ dependencies:
+ postcss "^5.0.14"
+
+postcss-discard-overridden@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58"
+ integrity sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA==
+ dependencies:
+ postcss "^5.0.16"
+
+postcss-discard-unused@^2.2.1:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433"
+ integrity sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg==
+ dependencies:
+ postcss "^5.0.14"
+ uniqs "^2.0.0"
+
+postcss-filter-plugins@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec"
+ integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==
+ dependencies:
+ postcss "^5.0.4"
+
+postcss-merge-idents@^2.1.5:
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270"
+ integrity sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA==
+ dependencies:
+ has "^1.0.1"
+ postcss "^5.0.10"
+ postcss-value-parser "^3.1.1"
+
+postcss-merge-longhand@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658"
+ integrity sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg==
+ dependencies:
+ postcss "^5.0.4"
+
+postcss-merge-rules@^2.0.3:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721"
+ integrity sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q==
+ dependencies:
+ browserslist "^1.5.2"
+ caniuse-api "^1.5.2"
+ postcss "^5.0.4"
+ postcss-selector-parser "^2.2.2"
+ vendors "^1.0.0"
+
+postcss-message-helpers@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"
+ integrity sha512-tPLZzVAiIJp46TBbpXtrUAKqedXSyW5xDEo1sikrfEfnTs+49SBZR/xDdqCiJvSSbtr615xDsaMF3RrxS2jZlA==
+
+postcss-minify-font-values@^1.0.2:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69"
+ integrity sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ==
+ dependencies:
+ object-assign "^4.0.1"
+ postcss "^5.0.4"
+ postcss-value-parser "^3.0.2"
+
+postcss-minify-gradients@^1.0.1:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1"
+ integrity sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q==
+ dependencies:
+ postcss "^5.0.12"
+ postcss-value-parser "^3.3.0"
+
+postcss-minify-params@^1.0.4:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3"
+ integrity sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow==
+ dependencies:
+ alphanum-sort "^1.0.1"
+ postcss "^5.0.2"
+ postcss-value-parser "^3.0.2"
+ uniqs "^2.0.0"
+
+postcss-minify-selectors@^2.0.4:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf"
+ integrity sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA==
+ dependencies:
+ alphanum-sort "^1.0.2"
+ has "^1.0.1"
+ postcss "^5.0.14"
+ postcss-selector-parser "^2.0.0"
+
+postcss-modules-extract-imports@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a"
+ integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==
+ dependencies:
+ postcss "^6.0.1"
+
+postcss-modules-local-by-default@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
+ integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==
+ dependencies:
+ css-selector-tokenizer "^0.7.0"
+ postcss "^6.0.1"
+
+postcss-modules-scope@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
+ integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==
+ dependencies:
+ css-selector-tokenizer "^0.7.0"
+ postcss "^6.0.1"
+
+postcss-modules-values@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
+ integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==
+ dependencies:
+ icss-replace-symbols "^1.1.0"
+ postcss "^6.0.1"
+
+postcss-normalize-charset@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1"
+ integrity sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ==
+ dependencies:
+ postcss "^5.0.5"
+
+postcss-normalize-url@^3.0.7:
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222"
+ integrity sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig==
+ dependencies:
+ is-absolute-url "^2.0.0"
+ normalize-url "^1.4.0"
+ postcss "^5.0.14"
+ postcss-value-parser "^3.2.3"
+
+postcss-ordered-values@^2.1.0:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d"
+ integrity sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg==
+ dependencies:
+ postcss "^5.0.4"
+ postcss-value-parser "^3.0.1"
+
+postcss-reduce-idents@^2.2.2:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3"
+ integrity sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w==
+ dependencies:
+ postcss "^5.0.4"
+ postcss-value-parser "^3.0.2"
+
+postcss-reduce-initial@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea"
+ integrity sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA==
+ dependencies:
+ postcss "^5.0.4"
+
+postcss-reduce-transforms@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1"
+ integrity sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ==
+ dependencies:
+ has "^1.0.1"
+ postcss "^5.0.8"
+ postcss-value-parser "^3.0.1"
+
+postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
+ integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA==
+ dependencies:
+ flatten "^1.0.2"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+postcss-svgo@^2.1.1:
+ version "2.1.6"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d"
+ integrity sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ==
+ dependencies:
+ is-svg "^2.0.0"
+ postcss "^5.0.14"
+ postcss-value-parser "^3.2.3"
+ svgo "^0.7.0"
+
+postcss-unique-selectors@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d"
+ integrity sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g==
+ dependencies:
+ alphanum-sort "^1.0.1"
+ postcss "^5.0.4"
+ uniqs "^2.0.0"
+
+postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+ integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
+
+postcss-zindex@^2.0.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22"
+ integrity sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w==
+ dependencies:
+ has "^1.0.1"
+ postcss "^5.0.4"
+ uniqs "^2.0.0"
+
+postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16:
+ version "5.2.18"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
+ integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
+ dependencies:
+ chalk "^1.1.3"
+ js-base64 "^2.1.9"
+ source-map "^0.5.6"
+ supports-color "^3.2.3"
+
+postcss@^6.0.1:
+ version "6.0.23"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+ integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
+ dependencies:
+ chalk "^2.4.1"
+ source-map "^0.6.1"
+ supports-color "^5.4.0"
+
+prepend-http@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+ integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==
+
+private@^0.1.8:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
+ integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
+
+promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
+
+prr@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+ integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
+
+public-encrypt@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+ integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
+ dependencies:
+ bn.js "^4.1.0"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ parse-asn1 "^5.0.0"
+ randombytes "^2.0.1"
+ safe-buffer "^5.1.2"
+
+pump@^2.0.0, pump@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pumpify@^1.3.3:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
+ dependencies:
+ duplexify "^3.6.0"
+ inherits "^2.0.3"
+ pump "^2.0.0"
+
+punycode@^1.2.4, punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
+
+punycode@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
+q@^1.1.2:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+ integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
+
+qs@2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-2.3.3.tgz#e9e85adbe75da0bbe4c8e0476a086290f863b404"
+ integrity sha512-f5M0HQqZWkzU8GELTY8LyMrGkr3bPjKoFtTkwUEqJQbcljbeK8M7mliP9Ia2xoOI6oMerp+QPS7oYJtpGmWe/A==
+
+qs@^6.12.3:
+ version "6.15.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.0.tgz#db8fd5d1b1d2d6b5b33adaf87429805f1909e7b3"
+ integrity sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==
+ dependencies:
+ side-channel "^1.1.0"
+
+query-string@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+ integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==
+ dependencies:
+ object-assign "^4.1.0"
+ strict-uri-encode "^1.0.0"
+
+querystring-es3@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+ integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==
+
+randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+ dependencies:
+ safe-buffer "^5.1.0"
+
+randomfill@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+ integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
+ dependencies:
+ randombytes "^2.0.5"
+ safe-buffer "^5.1.0"
+
+raven@^2.6.4:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.4.tgz#458d4a380c8fbb59e0150c655625aaf60c167ea3"
+ integrity sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==
+ dependencies:
+ cookie "0.3.1"
+ md5 "^2.2.1"
+ stack-trace "0.0.10"
+ timed-out "4.0.1"
+ uuid "3.3.2"
+
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ integrity sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ integrity sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
+ integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readable-stream@1.0.27-1:
+ version "1.0.27-1"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.27-1.tgz#6b67983c20357cefd07f0165001a16d710d91078"
+ integrity sha512-uQE31HGhpMrqZwtDjRliOs2aC3XBi+DdkhLs+Xa0dvVD5eDiZr3+k8rKVZcyTzxosgtMw7B/twQsK3P1KTZeVg==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+"readable-stream@>=1.0.33-1 <1.1.0-0":
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
+reduce-component@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da"
+ integrity sha512-y0wyCcdQul3hI3xHfIs0vg/jSbboQc/YTOAqaxjFG7At+XSexduuOqBVL9SmOLSwa/ldkbzVzdwuk9s2EKTAZg==
+
+reduce-css-calc@^1.2.6:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
+ integrity sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA==
+ dependencies:
+ balanced-match "^0.4.2"
+ math-expression-evaluator "^1.2.14"
+ reduce-function-call "^1.0.1"
+
+reduce-function-call@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f"
+ integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==
+ dependencies:
+ balanced-match "^1.0.0"
+
+regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+ integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
+
+repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==
+ dependencies:
+ is-finite "^1.0.0"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+ integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==
+
+resolve@^1.10.0:
+ version "1.22.11"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262"
+ integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==
+ dependencies:
+ is-core-module "^2.16.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+rimraf@^2.5.4, rimraf@^2.6.2:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.3.tgz#9be54e4ba5e3559c8eee06a25cd7648bbccdf5a8"
+ integrity sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==
+ dependencies:
+ hash-base "^3.1.2"
+ inherits "^2.0.4"
+
+run-queue@^1.0.0, run-queue@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==
+ dependencies:
+ aproba "^1.1.1"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+"safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sax@^1.2.4:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.6.0.tgz#da59637629307b97e7c4cb28e080a7bc38560d5b"
+ integrity sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==
+
+sax@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+schema-utils@^0.4.5:
+ version "0.4.7"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
+ integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
+ dependencies:
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
+
+schema-utils@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+ integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
+ dependencies:
+ ajv "^6.1.0"
+ ajv-errors "^1.0.0"
+ ajv-keywords "^3.1.0"
+
+"semver@2 || 3 || 4 || 5", semver@^5.6.0:
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
+ integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
+
+serialize-javascript@^1.4.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
+ integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==
+
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
+
+set-function-length@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
+ integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
+ dependencies:
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.2"
+
+setimmediate@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
+
+sha.js@^2.4.0, sha.js@^2.4.12, sha.js@^2.4.8:
+ version "2.4.12"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f"
+ integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==
+ dependencies:
+ inherits "^2.0.4"
+ safe-buffer "^5.2.1"
+ to-buffer "^1.2.0"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
+
+side-channel-list@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad"
+ integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
+ dependencies:
+ es-errors "^1.3.0"
+ object-inspect "^1.13.3"
+
+side-channel-map@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42"
+ integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
+ dependencies:
+ call-bound "^1.0.2"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.5"
+ object-inspect "^1.13.3"
+
+side-channel-weakmap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea"
+ integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
+ dependencies:
+ call-bound "^1.0.2"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.5"
+ object-inspect "^1.13.3"
+ side-channel-map "^1.0.1"
+
+side-channel@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
+ integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
+ dependencies:
+ es-errors "^1.3.0"
+ object-inspect "^1.13.3"
+ side-channel-list "^1.0.0"
+ side-channel-map "^1.0.1"
+ side-channel-weakmap "^1.0.2"
+
+signal-exit@^3.0.0:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+simple-statistics@7.7.3:
+ version "7.7.3"
+ resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-7.7.3.tgz#8b7b51edae40e397a28dbe8ae762ddd156ae43b6"
+ integrity sha512-ym356HUIJYLYEJASkbrYGAinlivGbBZhhgRNpTxWXVncfCGh61iUsaoSM+b84RrtGI2ZJvulTCUEwscE1s4yzw==
+
+slash@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+ integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==
+
+sort-keys@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+ integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==
+ dependencies:
+ is-plain-obj "^1.0.0"
+
+source-list-map@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+ integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+
+source-map-support@^0.4.15:
+ version "0.4.18"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
+ integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
+ dependencies:
+ source-map "^0.5.6"
+
+source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
+
+source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+spdx-correct@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c"
+ integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66"
+ integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.23"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz#b069e687b1291a32f126893ed76a27a745ee2133"
+ integrity sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==
+
+spin.js@^2.0.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/spin.js/-/spin.js-2.3.2.tgz#6caa56d520673450fd5cfbc6971e6d0772c37a1a"
+ integrity sha512-ryhCvKCRa6J5Fxa7Y+fnhE2a+e05JwfW5dxO82zPd0uDM9o+qp8p74BJUurjiqCqmDsWNvGOAxfqdD317XIedg==
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+
+ssri@^5.2.4:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
+ integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
+ dependencies:
+ safe-buffer "^5.1.1"
+
+stack-trace@0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
+ integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
+
+stream-browserify@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
+ integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "^2.0.2"
+
+stream-each@^1.1.0:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+ integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
+ dependencies:
+ end-of-stream "^1.1.0"
+ stream-shift "^1.0.0"
+
+stream-http@^2.7.2:
+ version "2.8.3"
+ resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+ integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.3.6"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
+stream-shift@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b"
+ integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==
+
+strict-uri-encode@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
+ integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string_decoder@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+ integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e"
+ integrity sha512-2h8q2CP3EeOhDJ+jd932PRMpa3/pOJFGoF22J1U/DNbEK2gSW2DqeF46VjCXsSQXhC+k/l8/gaaRBQKL6hUPfQ==
+ dependencies:
+ ansi-regex "^1.0.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
+
+style-loader@^0.23.1, style-loader@~0.13.1:
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
+ integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==
+ dependencies:
+ loader-utils "^1.1.0"
+ schema-utils "^1.0.0"
+
+superagent@^1.8.3:
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/superagent/-/superagent-1.8.5.tgz#1c0ddc3af30e80eb84ebc05cb2122da8fe940b55"
+ integrity sha512-4h4R6fISQXvgjIqZ8DjONYy3y2XPxgZO0LgHsBI6tDAEhzJLpWuK+thM60SmUiERJOEJzmxlIGx/GP6+azky/A==
+ dependencies:
+ component-emitter "~1.2.0"
+ cookiejar "2.0.6"
+ debug "2"
+ extend "3.0.0"
+ form-data "1.0.0-rc3"
+ formidable "~1.0.14"
+ methods "~1.1.1"
+ mime "1.3.4"
+ qs "2.3.3"
+ readable-stream "1.0.27-1"
+ reduce-component "1.0.1"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
+
+supports-color@^3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==
+ dependencies:
+ has-flag "^1.0.0"
+
+supports-color@^4.2.1:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
+ integrity sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==
+ dependencies:
+ has-flag "^2.0.0"
+
+supports-color@^5.3.0, supports-color@^5.4.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+svgo@^0.7.0:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
+ integrity sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA==
+ dependencies:
+ coa "~1.0.1"
+ colors "~1.1.2"
+ csso "~2.3.1"
+ js-yaml "~3.7.0"
+ mkdirp "~0.5.1"
+ sax "~1.2.1"
+ whet.extend "~0.9.9"
+
+tapable@^0.2.7:
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8"
+ integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==
+
+through2@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.3.tgz#795292fde9f254c2a368b38f9cc5d1bd4663afb6"
+ integrity sha512-6UXIsO0fTTYMgxeQ9pisMOIqF/uL6Ebva+4HxihtLLR2gscWEu+OTMwar/0TYZaeDSNS1msIJAXJRis+GojL8g==
+ dependencies:
+ readable-stream ">=1.0.33-1 <1.1.0-0"
+ xtend ">=4.0.0 <4.1.0-0"
+
+through2@^2.0.0:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+timed-out@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
+ integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==
+
+timers-browserify@^2.0.4:
+ version "2.0.12"
+ resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
+ integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
+ dependencies:
+ setimmediate "^1.0.4"
+
+to-arraybuffer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+ integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==
+
+to-buffer@^1.2.0, to-buffer@^1.2.1, to-buffer@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.2.tgz#ffe59ef7522ada0a2d1cb5dfe03bb8abc3cdc133"
+ integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==
+ dependencies:
+ isarray "^2.0.5"
+ safe-buffer "^5.2.1"
+ typed-array-buffer "^1.0.3"
+
+to-fast-properties@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+ integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==
+
+trim-right@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+ integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==
+
+tty-browserify@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+ integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==
+
+type@^2.7.2:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486"
+ integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==
+
+typed-array-buffer@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536"
+ integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==
+ dependencies:
+ call-bound "^1.0.3"
+ es-errors "^1.3.0"
+ is-typed-array "^1.1.14"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+
+uglify-es@^3.3.4:
+ version "3.3.9"
+ resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
+ integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
+ dependencies:
+ commander "~2.13.0"
+ source-map "~0.6.1"
+
+uglifyjs-webpack-plugin@1.3.0, uglifyjs-webpack-plugin@^0.4.6:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
+ integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==
+ dependencies:
+ cacache "^10.0.4"
+ find-cache-dir "^1.0.0"
+ schema-utils "^0.4.5"
+ serialize-javascript "^1.4.0"
+ source-map "^0.6.1"
+ uglify-es "^3.3.4"
+ webpack-sources "^1.1.0"
+ worker-farm "^1.5.2"
+
+uniq@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+ integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==
+
+uniqs@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
+ integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==
+
+unique-filename@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+ integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
+ dependencies:
+ unique-slug "^2.0.0"
+
+unique-slug@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+ integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
+ dependencies:
+ imurmurhash "^0.1.4"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+urijs@^1.19.7:
+ version "1.19.11"
+ resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"
+ integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==
+
+url@^0.11.0:
+ version "0.11.4"
+ resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c"
+ integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==
+ dependencies:
+ punycode "^1.4.1"
+ qs "^6.12.3"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+util@^0.10.4:
+ version "0.10.4"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
+ integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
+ dependencies:
+ inherits "2.0.3"
+
+util@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
+ integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
+ dependencies:
+ inherits "2.0.3"
+
+uuid@3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
+ integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+vendors@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
+ integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
+
+vm-browserify@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
+ integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
+
+watchpack@^1.4.0, watchpack@^2.3.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.1.tgz#dd38b601f669e0cbf567cb802e75cead82cde102"
+ integrity sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==
+ dependencies:
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.1.2"
+
+webpack-bundle-tracker@0.0.9:
+ version "0.0.9"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-tracker/-/webpack-bundle-tracker-0.0.9.tgz#fd6ba1e65478f5cd3414e6f2ef3d4e1be0e3cd9d"
+ integrity sha512-Dnpn1zUrLjjKKsKbW4/F+FbR/tm254eEaiszVPAvF9Rnk+qVvmNMz5yH1QAW+cAHOg/bEfJwI8WghyOnh2e7zw==
+ dependencies:
+ mkdirp "^0.5.1"
+ strip-ansi "^2.0.1"
+
+webpack-sources@^1.0.1, webpack-sources@^1.1.0:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+ integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
+ dependencies:
+ source-list-map "^2.0.0"
+ source-map "~0.6.1"
+
+webpack@3.12.0:
+ version "3.12.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74"
+ integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==
+ dependencies:
+ acorn "^5.0.0"
+ acorn-dynamic-import "^2.0.0"
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
+ async "^2.1.2"
+ enhanced-resolve "^3.4.0"
+ escope "^3.6.0"
+ interpret "^1.0.0"
+ json-loader "^0.5.4"
+ json5 "^0.5.1"
+ loader-runner "^2.3.0"
+ loader-utils "^1.1.0"
+ memory-fs "~0.4.1"
+ mkdirp "~0.5.0"
+ node-libs-browser "^2.0.0"
+ source-map "^0.5.3"
+ supports-color "^4.2.1"
+ tapable "^0.2.7"
+ uglifyjs-webpack-plugin "^0.4.6"
+ watchpack "^1.4.0"
+ webpack-sources "^1.0.1"
+ yargs "^8.0.2"
+
+whet.extend@~0.9.9:
+ version "0.9.9"
+ resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
+ integrity sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==
+
+which-module@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
+ integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
+
+which-typed-array@^1.1.16:
+ version "1.1.20"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.20.tgz#3fdb7adfafe0ea69157b1509f3a1cd892bd1d122"
+ integrity sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==
+ dependencies:
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.8"
+ call-bound "^1.0.4"
+ for-each "^0.3.5"
+ get-proto "^1.0.1"
+ gopd "^1.2.0"
+ has-tostringtag "^1.0.2"
+
+which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
+worker-farm@^1.5.2:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
+ integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
+ dependencies:
+ errno "~0.1.7"
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^3.2.1:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
+ integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
+
+y18n@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
+ integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
+
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==
+
+yargs-parser@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
+ integrity sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs@^8.0.2:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
+ integrity sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ==
+ dependencies:
+ camelcase "^4.1.0"
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ read-pkg-up "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^7.0.0"
diff --git a/yarn.lock b/yarn.lock
index 25ca5aeb866..c3d2fececda 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1,4579 +1,3307 @@
-# This file is generated by running "yarn install" inside your project.
-# Manual changes might be lost - proceed with caution!
-
-__metadata:
- version: 8
- cacheKey: 10c0
-
-"@centerforopenscience/list-of-licenses@npm:^1.1.0":
- version: 1.1.0
- resolution: "@centerforopenscience/list-of-licenses@npm:1.1.0"
- checksum: 10c0/49254d7a30edfb52b6a681afd25a22b92275a45a61698de8804126176113d6094fd7a25baeec686e88a81652a8bd9b8f0ce9345df4ba5c04ec831349e96f65be
- languageName: node
- linkType: hard
-
-"@centerforopenscience/osf-style@npm:1.9.0":
- version: 1.9.0
- resolution: "@centerforopenscience/osf-style@npm:1.9.0"
- checksum: 10c0/243cc3e560329fed8c6448f91db8937b14d7f58fa94ac9f8cd74ada1d01cf621b990223bb75bd355e0b291b256804699889db7a3dcc96db858331a17d4018ff6
- languageName: node
- linkType: hard
-
-"@fortawesome/fontawesome-common-types@npm:7.0.1":
- version: 7.0.1
- resolution: "@fortawesome/fontawesome-common-types@npm:7.0.1"
- checksum: 10c0/1cebe9727950f8fcea581e115ed91f9b2bf287114077adde0cc1fb32d25c2c2ec282a8cff291b22ca558cbb1264af7fad04b85c5afcb899745584b2874df4151
- languageName: node
- linkType: hard
-
-"@fortawesome/fontawesome-free@npm:^7.0.1":
- version: 7.0.1
- resolution: "@fortawesome/fontawesome-free@npm:7.0.1"
- checksum: 10c0/60170c84f56f5e190ea532f4205b53a8b902b34b46e59fcacf4a8d8a97ec566c5bfc246c5b80393cd7e1c24e1faa895c57456bcaffc0177962fc07922756a1d5
- languageName: node
- linkType: hard
-
-"@fortawesome/fontawesome-svg-core@npm:^7.0.1":
- version: 7.0.1
- resolution: "@fortawesome/fontawesome-svg-core@npm:7.0.1"
- dependencies:
- "@fortawesome/fontawesome-common-types": "npm:7.0.1"
- checksum: 10c0/adf72373e45ec0b81e9a60e74a6aeadd70cd7da31ecf37736e6288ef956148699272155935d97d7bf02f37e2fefd8f9b8c34b626e59fcca54a5947be46ff06fe
- languageName: node
- linkType: hard
-
-"@fortawesome/free-brands-svg-icons@npm:^7.0.1":
- version: 7.0.1
- resolution: "@fortawesome/free-brands-svg-icons@npm:7.0.1"
- dependencies:
- "@fortawesome/fontawesome-common-types": "npm:7.0.1"
- checksum: 10c0/a05058f7ff8aaf86952a96877d270e52293c5da5804ae21cf127b28063dfedfa4a1bb260040f774ccd81c3e55a045d36e2137686ea93ad84c8310ffd6a2303ba
- languageName: node
- linkType: hard
-
-"@fortawesome/react-fontawesome@npm:^3.0.2":
- version: 3.0.2
- resolution: "@fortawesome/react-fontawesome@npm:3.0.2"
- peerDependencies:
- "@fortawesome/fontawesome-svg-core": ~6 || ~7
- react: ^18.0.0 || ^19.0.0
- checksum: 10c0/0a6a99ab16af74189232b01986d882ce3b2265836297a949709517f0f9b3d7c11dcf67e130200f09aca9d0e015abff21248d105796d768660901273a8ee232db
- languageName: node
- linkType: hard
-
-"@gar/promise-retry@npm:^1.0.0":
- version: 1.0.3
- resolution: "@gar/promise-retry@npm:1.0.3"
- checksum: 10c0/885b02c8b0d75b2d215da25f3b639158c4fbe8fefe0d79163304534b9a6d0710db4b7699f7cd3cc1a730792bff04cbe19f4850a62d3e105a663eaeec88f38332
- languageName: node
- linkType: hard
-
-"@isaacs/fs-minipass@npm:^4.0.0":
- version: 4.0.1
- resolution: "@isaacs/fs-minipass@npm:4.0.1"
- dependencies:
- minipass: "npm:^7.0.4"
- checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2
- languageName: node
- linkType: hard
-
-"@npmcli/agent@npm:^4.0.0":
- version: 4.0.0
- resolution: "@npmcli/agent@npm:4.0.0"
- dependencies:
- agent-base: "npm:^7.1.0"
- http-proxy-agent: "npm:^7.0.0"
- https-proxy-agent: "npm:^7.0.1"
- lru-cache: "npm:^11.2.1"
- socks-proxy-agent: "npm:^8.0.3"
- checksum: 10c0/f7b5ce0f3dd42c3f8c6546e8433573d8049f67ef11ec22aa4704bc41483122f68bf97752e06302c455ead667af5cb753e6a09bff06632bc465c1cfd4c4b75a53
- languageName: node
- linkType: hard
-
-"@npmcli/fs@npm:^5.0.0":
- version: 5.0.0
- resolution: "@npmcli/fs@npm:5.0.0"
- dependencies:
- semver: "npm:^7.3.5"
- checksum: 10c0/26e376d780f60ff16e874a0ac9bc3399186846baae0b6e1352286385ac134d900cc5dafaded77f38d77f86898fc923ae1cee9d7399f0275b1aa24878915d722b
- languageName: node
- linkType: hard
-
-"@npmcli/redact@npm:^4.0.0":
- version: 4.0.0
- resolution: "@npmcli/redact@npm:4.0.0"
- checksum: 10c0/a1e9ba9c70a6b40e175bda2c3dd8cfdaf096e6b7f7a132c855c083c8dfe545c3237cd56702e2e6627a580b1d63373599d49a1192c4078a85bf47bbde824df31c
- languageName: node
- linkType: hard
-
-"OSF@workspace:.":
- version: 0.0.0-use.local
- resolution: "OSF@workspace:."
- dependencies:
- "@centerforopenscience/list-of-licenses": "npm:^1.1.0"
- "@centerforopenscience/osf-style": "npm:1.9.0"
- "@fortawesome/fontawesome-free": "npm:^7.0.1"
- "@fortawesome/fontawesome-svg-core": "npm:^7.0.1"
- "@fortawesome/free-brands-svg-icons": "npm:^7.0.1"
- "@fortawesome/react-fontawesome": "npm:^3.0.2"
- URIjs: "npm:^1.14.1"
- assets-webpack-plugin: "npm:^2.3.0"
- bootbox: "npm:^5.5.2"
- bootstrap: "npm:3.3.7"
- bower: "npm:^1.8.8"
- css-loader: "npm:^0.28.11"
- diff: "npm:~5.0.0"
- dropzone: "https://github.com/CenterForOpenScience/dropzone.git#aba21eb6b82cc823ac7a7a53d6e035791c082bae"
- exports-loader: "npm:0.6.3"
- file-loader: "npm:^0.11.2"
- gsap: "npm:3.9.1"
- highlight.js: "npm:~9.18.2"
- imports-loader: "npm:^0.6.3"
- js-cookie: "npm:3.0.1"
- js-md5: "npm:^0.7.3"
- jstimezonedetect: "npm:^1.0.6"
- knockout: "npm:~3.4.2"
- knockout.validation: "npm:^2.0.2"
- less: "npm:^4.1.2"
- linkifyjs: "npm:^3.0.5"
- loaders.css: "npm:^0.1.2"
- lodash.find: "npm:^4.3.0"
- lodash.get: "npm:^4.2.1"
- lodash.has: "npm:^4.5.2"
- lodash.includes: "npm:^4.3.0"
- lodash.set: "npm:^4.3.2"
- mime-types: "npm:~2.1.34"
- mithril: "npm:0.2.0"
- moment: "npm:^2.14.1"
- object-assign: "npm:^3.0.0"
- pikaday: "npm:^1.3.2"
- raw-loader: "npm:~0.5.0"
- select2: "npm:3.5.1"
- style-loader: "npm:^0.23.1"
- treebeard: "https://github.com/CenterForOpenScience/treebeard.git#d2bb8f6f8104fcac040402727f431c26722b269e"
- typeahead.js: "npm:^0.11.1"
- url-loader: "npm:~0.6.2"
- webpack: "npm:3.12.0"
- zxcvbn: "npm:^4.2.0"
- languageName: unknown
- linkType: soft
-
-"URIjs@npm:^1.14.1":
- version: 1.16.1
- resolution: "URIjs@npm:1.16.1"
- checksum: 10c0/4709474a384394d4b28987b845989ca56297f07afed3ad58204ba309727530a3aa0106cc5a90b0d784cda390b0ca500575981951f1fa065e8e766a4ffec26f08
- languageName: node
- linkType: hard
-
-"abbrev@npm:^4.0.0":
- version: 4.0.0
- resolution: "abbrev@npm:4.0.0"
- checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5
- languageName: node
- linkType: hard
-
-"acorn-dynamic-import@npm:^2.0.0":
- version: 2.0.2
- resolution: "acorn-dynamic-import@npm:2.0.2"
- dependencies:
- acorn: "npm:^4.0.3"
- checksum: 10c0/5dcac220ae8ddc8f8439402691c6da21f4e44f3a91b5645884cd2a5f03c8e39a40006a189de9ccd50fdfcdeda6c52724db45cd2100e56e9e9656d7b19e2bfd22
- languageName: node
- linkType: hard
-
-"acorn@npm:^4.0.3":
- version: 4.0.13
- resolution: "acorn@npm:4.0.13"
- bin:
- acorn: ./bin/acorn
- checksum: 10c0/ed73e42711474f80d7f2f94d68109e83a40d48c9596f0bcfd1a4c64e086636495259432421357524d04bfe317eed6de5b6202d2ab30f1b1c26bca12684979aa5
- languageName: node
- linkType: hard
-
-"acorn@npm:^5.0.0":
- version: 5.7.4
- resolution: "acorn@npm:5.7.4"
- bin:
- acorn: bin/acorn
- checksum: 10c0/b29e61d48fa31ae69d38d74bb213b77b32de6317f125890a6cb76b44d173adccbcd3a07fc9a86acdfe8ab0a80f42b5ec6290df8b7944e0506504ac3b716232bd
- languageName: node
- linkType: hard
-
-"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2":
- version: 7.1.4
- resolution: "agent-base@npm:7.1.4"
- checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe
- languageName: node
- linkType: hard
-
-"ajv-errors@npm:^1.0.0":
- version: 1.0.1
- resolution: "ajv-errors@npm:1.0.1"
- peerDependencies:
- ajv: ">=5.0.0"
- checksum: 10c0/de2d6e8100c8707ea063ee4785d53adf599b457c0d4f72c3592244d67ad16448a6d35f7ce45f12bdd2819939447c876e8ef2f1c0800896d7f2aa25c3838acdf1
- languageName: node
- linkType: hard
-
-"ajv-keywords@npm:^3.1.0":
- version: 3.5.2
- resolution: "ajv-keywords@npm:3.5.2"
- peerDependencies:
- ajv: ^6.9.1
- checksum: 10c0/0c57a47cbd656e8cdfd99d7c2264de5868918ffa207c8d7a72a7f63379d4333254b2ba03d69e3c035e996a3fd3eb6d5725d7a1597cca10694296e32510546360
- languageName: node
- linkType: hard
-
-"ajv@npm:^5.0.0":
- version: 5.5.2
- resolution: "ajv@npm:5.5.2"
- dependencies:
- co: "npm:^4.6.0"
- fast-deep-equal: "npm:^1.0.0"
- fast-json-stable-stringify: "npm:^2.0.0"
- json-schema-traverse: "npm:^0.3.0"
- checksum: 10c0/9b8f762cd6b9da3935987b82418402247e76925e39814ca0d62088656117129db7e0cdc1d3e4aa6a3c4aa5ff67021551299ee4771735bcccb6cdd3f85061e565
- languageName: node
- linkType: hard
-
-"ajv@npm:^6.1.0":
- version: 6.12.6
- resolution: "ajv@npm:6.12.6"
- dependencies:
- fast-deep-equal: "npm:^3.1.1"
- fast-json-stable-stringify: "npm:^2.0.0"
- json-schema-traverse: "npm:^0.4.1"
- uri-js: "npm:^4.2.2"
- checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
- languageName: node
- linkType: hard
-
-"alphanum-sort@npm:^1.0.1, alphanum-sort@npm:^1.0.2":
- version: 1.0.2
- resolution: "alphanum-sort@npm:1.0.2"
- checksum: 10c0/2944e7ae4d36328a2df071017c01cd1d06ef6a5d87c8fbbeffd9075d42f4da48051bde79a5e3d863b98f37778c76e8eebd4353c1e7bbba2480382096953ec2b8
- languageName: node
- linkType: hard
-
-"amdefine@npm:>=0.0.4":
- version: 1.0.1
- resolution: "amdefine@npm:1.0.1"
- checksum: 10c0/ba8aa5d4ff5248b2ed067111e72644b36b5b7ae88d9a5a2c4223dddb3bdc9102db67291e0b414f59f12c6479ac6a365886bac72c7965e627cbc732e0962dd1ab
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^2.0.0":
- version: 2.1.1
- resolution: "ansi-regex@npm:2.1.1"
- checksum: 10c0/78cebaf50bce2cb96341a7230adf28d804611da3ce6bf338efa7b72f06cc6ff648e29f80cd95e582617ba58d5fdbec38abfeed3500a98bce8381a9daec7c548b
- languageName: node
- linkType: hard
-
-"ansi-regex@npm:^3.0.0":
- version: 3.0.0
- resolution: "ansi-regex@npm:3.0.0"
- checksum: 10c0/c6a2b226d009965decc65d330b953290039f0f2b31d200516a9a79b6010f5f8f9d6acbaa0917d925c578df0c0feaddcb56569aad05776f99e2918116d4233121
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^2.2.1":
- version: 2.2.1
- resolution: "ansi-styles@npm:2.2.1"
- checksum: 10c0/7c68aed4f1857389e7a12f85537ea5b40d832656babbf511cc7ecd9efc52889b9c3e5653a71a6aade783c3c5e0aa223ad4ff8e83c27ac8a666514e6c79068cab
- languageName: node
- linkType: hard
-
-"ansi-styles@npm:^3.2.1":
- version: 3.2.1
- resolution: "ansi-styles@npm:3.2.1"
- dependencies:
- color-convert: "npm:^1.9.0"
- checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b
- languageName: node
- linkType: hard
-
-"aproba@npm:^1.1.1":
- version: 1.2.0
- resolution: "aproba@npm:1.2.0"
- checksum: 10c0/2d34f008c9edfa991f42fe4b667d541d38a474a39ae0e24805350486d76744cd91ee45313283c1d39a055b14026dd0fc4d0cbfc13f210855d59d7e8b5a61dc51
- languageName: node
- linkType: hard
-
-"argparse@npm:^1.0.7":
- version: 1.0.10
- resolution: "argparse@npm:1.0.10"
- dependencies:
- sprintf-js: "npm:~1.0.2"
- checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de
- languageName: node
- linkType: hard
-
-"asn1.js@npm:^5.2.0":
- version: 5.4.1
- resolution: "asn1.js@npm:5.4.1"
- dependencies:
- bn.js: "npm:^4.0.0"
- inherits: "npm:^2.0.1"
- minimalistic-assert: "npm:^1.0.0"
- safer-buffer: "npm:^2.1.0"
- checksum: 10c0/b577232fa6069cc52bb128e564002c62b2b1fe47f7137bdcd709c0b8495aa79cee0f8cc458a831b2d8675900eea0d05781b006be5e1aa4f0ae3577a73ec20324
- languageName: node
- linkType: hard
-
-"assert@npm:^1.1.1":
- version: 1.5.0
- resolution: "assert@npm:1.5.0"
- dependencies:
- object-assign: "npm:^4.1.1"
- util: "npm:0.10.3"
- checksum: 10c0/188da37d63be479a3b14657c01080db90cdf7fa004e346af916cf8beebcaffb11359c596d0c9c3cd8174c9125a6225796ef1ce533487edc97f8ce3b18c1ab590
- languageName: node
- linkType: hard
-
-"assets-webpack-plugin@npm:^2.3.0":
- version: 2.3.0
- resolution: "assets-webpack-plugin@npm:2.3.0"
- dependencies:
- camelcase: "npm:^1.2.1"
- escape-string-regexp: "npm:^1.0.3"
- mkdirp: "npm:^0.5.1"
- checksum: 10c0/7d5a1fb70f1c7ef0eb59c6d84bc4046a6b2b9913d66e153960dd63e8ca40f27024ecdf130d0dd87db9b7384b7ba060e66a1c7d45ef658a1f4bf7df81356bc3fb
- languageName: node
- linkType: hard
-
-"async@npm:^2.1.2":
- version: 2.6.3
- resolution: "async@npm:2.6.3"
- dependencies:
- lodash: "npm:^4.17.14"
- checksum: 10c0/06c917c74a55f9036ff79dedfc51dfc9c52c2dee2f80866b600495d2fd3037251dbcfde6592f23fc47398c44d844174004e0ee532f94c32a888bb89fd1cf0f25
- languageName: node
- linkType: hard
-
-"autoprefixer@npm:^6.3.1":
- version: 6.7.7
- resolution: "autoprefixer@npm:6.7.7"
- dependencies:
- browserslist: "npm:^1.7.6"
- caniuse-db: "npm:^1.0.30000634"
- normalize-range: "npm:^0.1.2"
- num2fraction: "npm:^1.2.2"
- postcss: "npm:^5.2.16"
- postcss-value-parser: "npm:^3.2.3"
- checksum: 10c0/bdcf8e53eacef1feb54940bbe33fcb67e12eb07d5572d5f0fbadb638b84be15ca91b3a343763962a2ce6ed12ba611e039c62e871d12e29b956b8f2b189c263ae
- languageName: node
- linkType: hard
-
-"babel-code-frame@npm:^6.26.0":
- version: 6.26.0
- resolution: "babel-code-frame@npm:6.26.0"
- dependencies:
- chalk: "npm:^1.1.3"
- esutils: "npm:^2.0.2"
- js-tokens: "npm:^3.0.2"
- checksum: 10c0/7fecc128e87578cf1b96e78d2b25e0b260e202bdbbfcefa2eac23b7f8b7b2f7bc9276a14599cde14403cc798cc2a38e428e2cab50b77658ab49228b09ae92473
- languageName: node
- linkType: hard
-
-"balanced-match@npm:^0.4.2":
- version: 0.4.2
- resolution: "balanced-match@npm:0.4.2"
- checksum: 10c0/cd4e15add0f4ef14c4fe960d9f4a343052d7c0f7939e1b5e54c8f24417a501bde1f17e191b676daebd16ae316955c918f93b8ed0414bb03d038dd0159c9998e5
- languageName: node
- linkType: hard
-
-"balanced-match@npm:^1.0.0":
- version: 1.0.2
- resolution: "balanced-match@npm:1.0.2"
- checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
- languageName: node
- linkType: hard
-
-"balanced-match@npm:^4.0.2":
- version: 4.0.4
- resolution: "balanced-match@npm:4.0.4"
- checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b
- languageName: node
- linkType: hard
-
-"base64-js@npm:^1.0.2":
- version: 1.5.1
- resolution: "base64-js@npm:1.5.1"
- checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf
- languageName: node
- linkType: hard
-
-"big.js@npm:^3.1.3":
- version: 3.2.0
- resolution: "big.js@npm:3.2.0"
- checksum: 10c0/de0b8e275171060a37846b521e8ebfe077c650532306c2470474da6720feb04351cc8588ef26088756b224923782946ae67e817b90122cc85692bbda7ccd2d0d
- languageName: node
- linkType: hard
-
-"big.js@npm:^5.2.2":
- version: 5.2.2
- resolution: "big.js@npm:5.2.2"
- checksum: 10c0/230520f1ff920b2d2ce3e372d77a33faa4fa60d802fe01ca4ffbc321ee06023fe9a741ac02793ee778040a16b7e497f7d60c504d1c402b8fdab6f03bb785a25f
- languageName: node
- linkType: hard
-
-"bluebird@npm:^3.5.1":
- version: 3.7.2
- resolution: "bluebird@npm:3.7.2"
- checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2
- languageName: node
- linkType: hard
-
-"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9":
- version: 4.12.0
- resolution: "bn.js@npm:4.12.0"
- checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21
- languageName: node
- linkType: hard
-
-"bn.js@npm:^5.0.0, bn.js@npm:^5.1.1":
- version: 5.2.0
- resolution: "bn.js@npm:5.2.0"
- checksum: 10c0/67e17b1934d9c7a73aed9b89222dc8c1c8e3aff46cca6609b8c2ab04fa22c6b8db42c7774b039d09fa63136d8866b777ab88af0d64d8ea3839a94e69193a6b13
- languageName: node
- linkType: hard
-
-"bootbox@npm:^5.5.2":
- version: 5.5.2
- resolution: "bootbox@npm:5.5.2"
- dependencies:
- bootstrap: "npm:^4.4.0"
- jquery: "npm:^3.5.1"
- popper.js: "npm:^1.16.0"
- checksum: 10c0/a282c1349cf11cfc36260ac8301613517ffb407ade77d4b402d1eeaddddb1677008dcfa984a98ab9b21502cf833b3be02105cb784a25545bf48645cfe06e70ac
- languageName: node
- linkType: hard
-
-"bootstrap@npm:3.3.7":
- version: 3.3.7
- resolution: "bootstrap@npm:3.3.7"
- checksum: 10c0/6e711d39551d32a3fa2b7d6b22d59769266b4b5fccc20c18f6e6c8289d901a67cd23d00760415eedcd77a122db1bf5c46f6e8e9df1cea2fe2ada04741599ddbd
- languageName: node
- linkType: hard
-
-"bootstrap@npm:^3.3.7":
- version: 3.4.1
- resolution: "bootstrap@npm:3.4.1"
- checksum: 10c0/3ac443985a432fd77f1d6df2972d8f0a06e93bb0e10893fa890e6503e6d2b36e601f4a9894429223afa867c2232ead1af5c55ded4c23a64dc706ca25e49dc2da
- languageName: node
- linkType: hard
-
-"bower@npm:^1.8.8":
- version: 1.8.13
- resolution: "bower@npm:1.8.13"
- bin:
- bower: bin/bower
- checksum: 10c0/17724eb65745b7c4de57be0116eb06b4931bbdfaa152b40b1f1ab522d358b2036cd9fb30fb0e26ad0885586528c8ff6b872a3953649d6ce8bfa8a538c5e4a486
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^1.1.7":
- version: 1.1.11
- resolution: "brace-expansion@npm:1.1.11"
- dependencies:
- balanced-match: "npm:^1.0.0"
- concat-map: "npm:0.0.1"
- checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
- languageName: node
- linkType: hard
-
-"brace-expansion@npm:^5.0.2":
- version: 5.0.4
- resolution: "brace-expansion@npm:5.0.4"
- dependencies:
- balanced-match: "npm:^4.0.2"
- checksum: 10c0/359cbcfa80b2eb914ca1f3440e92313fbfe7919ee6b274c35db55bec555aded69dac5ee78f102cec90c35f98c20fa43d10936d0cd9978158823c249257e1643a
- languageName: node
- linkType: hard
-
-"brorand@npm:^1.0.1, brorand@npm:^1.1.0":
- version: 1.1.0
- resolution: "brorand@npm:1.1.0"
- checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571
- languageName: node
- linkType: hard
-
-"browserify-aes@npm:^1.0.0, browserify-aes@npm:^1.0.4":
- version: 1.2.0
- resolution: "browserify-aes@npm:1.2.0"
- dependencies:
- buffer-xor: "npm:^1.0.3"
- cipher-base: "npm:^1.0.0"
- create-hash: "npm:^1.1.0"
- evp_bytestokey: "npm:^1.0.3"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18
- languageName: node
- linkType: hard
-
-"browserify-cipher@npm:^1.0.0":
- version: 1.0.1
- resolution: "browserify-cipher@npm:1.0.1"
- dependencies:
- browserify-aes: "npm:^1.0.4"
- browserify-des: "npm:^1.0.0"
- evp_bytestokey: "npm:^1.0.0"
- checksum: 10c0/aa256dcb42bc53a67168bbc94ab85d243b0a3b56109dee3b51230b7d010d9b78985ffc1fb36e145c6e4db151f888076c1cfc207baf1525d3e375cbe8187fe27d
- languageName: node
- linkType: hard
-
-"browserify-des@npm:^1.0.0":
- version: 1.0.2
- resolution: "browserify-des@npm:1.0.2"
- dependencies:
- cipher-base: "npm:^1.0.1"
- des.js: "npm:^1.0.0"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10c0/943eb5d4045eff80a6cde5be4e5fbb1f2d5002126b5a4789c3c1aae3cdddb1eb92b00fb92277f512288e5c6af330730b1dbabcf7ce0923e749e151fcee5a074d
- languageName: node
- linkType: hard
-
-"browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.0.1":
- version: 4.1.0
- resolution: "browserify-rsa@npm:4.1.0"
- dependencies:
- bn.js: "npm:^5.0.0"
- randombytes: "npm:^2.0.1"
- checksum: 10c0/fb2b5a8279d8a567a28d8ee03fb62e448428a906bab5c3dc9e9c3253ace551b5ea271db15e566ac78f1b1d71b243559031446604168b9235c351a32cae99d02a
- languageName: node
- linkType: hard
-
-"browserify-sign@npm:^4.0.0":
- version: 4.2.1
- resolution: "browserify-sign@npm:4.2.1"
- dependencies:
- bn.js: "npm:^5.1.1"
- browserify-rsa: "npm:^4.0.1"
- create-hash: "npm:^1.2.0"
- create-hmac: "npm:^1.1.7"
- elliptic: "npm:^6.5.3"
- inherits: "npm:^2.0.4"
- parse-asn1: "npm:^5.1.5"
- readable-stream: "npm:^3.6.0"
- safe-buffer: "npm:^5.2.0"
- checksum: 10c0/8f00a370e3e97060977dc58e51251d3ca398ee73523994a44430321e8de2c7d85395362d59014b2b07efe4190f369baee2ff28eb8f405ff4660b776651cf052d
- languageName: node
- linkType: hard
-
-"browserify-zlib@npm:^0.2.0":
- version: 0.2.0
- resolution: "browserify-zlib@npm:0.2.0"
- dependencies:
- pako: "npm:~1.0.5"
- checksum: 10c0/9ab10b6dc732c6c5ec8ebcbe5cb7fe1467f97402c9b2140113f47b5f187b9438f93a8e065d8baf8b929323c18324fbf1105af479ee86d9d36cab7d7ef3424ad9
- languageName: node
- linkType: hard
-
-"browserslist@npm:^1.3.6, browserslist@npm:^1.5.2, browserslist@npm:^1.7.6":
- version: 1.7.7
- resolution: "browserslist@npm:1.7.7"
- dependencies:
- caniuse-db: "npm:^1.0.30000639"
- electron-to-chromium: "npm:^1.2.7"
- bin:
- browserslist: ./cli.js
- checksum: 10c0/1caae2f00800711b3c18a834b84ab3109b955836f23e00a7eb0227e54c22a101b95a9606c1347a04ec882524a724ba57691f856a7aba3fde6dd197b867b8cd41
- languageName: node
- linkType: hard
-
-"buffer-from@npm:^1.0.0":
- version: 1.1.2
- resolution: "buffer-from@npm:1.1.2"
- checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34
- languageName: node
- linkType: hard
-
-"buffer-xor@npm:^1.0.3":
- version: 1.0.3
- resolution: "buffer-xor@npm:1.0.3"
- checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c
- languageName: node
- linkType: hard
-
-"buffer@npm:^4.3.0":
- version: 4.9.2
- resolution: "buffer@npm:4.9.2"
- dependencies:
- base64-js: "npm:^1.0.2"
- ieee754: "npm:^1.1.4"
- isarray: "npm:^1.0.0"
- checksum: 10c0/dc443d7e7caab23816b58aacdde710b72f525ad6eecd7d738fcaa29f6d6c12e8d9c13fed7219fd502be51ecf0615f5c077d4bdc6f9308dde2e53f8e5393c5b21
- languageName: node
- linkType: hard
-
-"builtin-status-codes@npm:^3.0.0":
- version: 3.0.0
- resolution: "builtin-status-codes@npm:3.0.0"
- checksum: 10c0/c37bbba11a34c4431e56bd681b175512e99147defbe2358318d8152b3a01df7bf25e0305873947e5b350073d5ef41a364a22b37e48f1fb6d2fe6d5286a0f348c
- languageName: node
- linkType: hard
-
-"cacache@npm:^10.0.4":
- version: 10.0.4
- resolution: "cacache@npm:10.0.4"
- dependencies:
- bluebird: "npm:^3.5.1"
- chownr: "npm:^1.0.1"
- glob: "npm:^7.1.2"
- graceful-fs: "npm:^4.1.11"
- lru-cache: "npm:^4.1.1"
- mississippi: "npm:^2.0.0"
- mkdirp: "npm:^0.5.1"
- move-concurrently: "npm:^1.0.1"
- promise-inflight: "npm:^1.0.1"
- rimraf: "npm:^2.6.2"
- ssri: "npm:^5.2.4"
- unique-filename: "npm:^1.1.0"
- y18n: "npm:^4.0.0"
- checksum: 10c0/4c82d037ecc0ef87f58f96ecd3662bdb24aaedd18fa96d749363bc20dee3ac9f623e2c41e09bf894a3f62de1612a8cea8ddae22563a91ce2ef5cb69fe4cf54dd
- languageName: node
- linkType: hard
-
-"cacache@npm:^20.0.1":
- version: 20.0.4
- resolution: "cacache@npm:20.0.4"
- dependencies:
- "@npmcli/fs": "npm:^5.0.0"
- fs-minipass: "npm:^3.0.0"
- glob: "npm:^13.0.0"
- lru-cache: "npm:^11.1.0"
- minipass: "npm:^7.0.3"
- minipass-collect: "npm:^2.0.1"
- minipass-flush: "npm:^1.0.5"
- minipass-pipeline: "npm:^1.2.4"
- p-map: "npm:^7.0.2"
- ssri: "npm:^13.0.0"
- checksum: 10c0/539bf4020e44ba9ca5afc2ec435623ed7e0dd80c020097677e6b4a0545df5cc9d20b473212d01209c8b4aea43c0d095af0bb6da97bcb991642ea6fac0d7c462b
- languageName: node
- linkType: hard
-
-"camelcase@npm:^1.2.1":
- version: 1.2.1
- resolution: "camelcase@npm:1.2.1"
- checksum: 10c0/dec70dfd46be8e31c5f8a4616f441cc3902da9b807f843c2ad4f2a0c79a8907d91914184b40166e2111bfa76cb66de6107924c0529017204e810ef14390381fa
- languageName: node
- linkType: hard
-
-"camelcase@npm:^4.1.0":
- version: 4.1.0
- resolution: "camelcase@npm:4.1.0"
- checksum: 10c0/54c0b6a85b54fb4e96a9d834a9d0d8f760fd608ab6752a6789042b5e1c38d3dd60f878d2c590d005046445d32d77f6e05e568a91fe8db3e282da0a1560d83058
- languageName: node
- linkType: hard
-
-"caniuse-api@npm:^1.5.2":
- version: 1.6.1
- resolution: "caniuse-api@npm:1.6.1"
- dependencies:
- browserslist: "npm:^1.3.6"
- caniuse-db: "npm:^1.0.30000529"
- lodash.memoize: "npm:^4.1.2"
- lodash.uniq: "npm:^4.5.0"
- checksum: 10c0/0769ffb827dcc9d7f6fb1d9616d6ac9dcb0a271cfacd3b1026459f0c5052491ef5a458bdaca12c2204b65bf65aa0c43b880b9bfbe497a0469e319cb48f5da4fb
- languageName: node
- linkType: hard
-
-"caniuse-db@npm:^1.0.30000529, caniuse-db@npm:^1.0.30000634, caniuse-db@npm:^1.0.30000639":
- version: 1.0.30001312
- resolution: "caniuse-db@npm:1.0.30001312"
- checksum: 10c0/15ff3c027d64e26cd665f7f7c8b90b8f12de00929f063cc73f7a23f6afbc36ce7488209ad1537f9771ba0a87979f31ff28e5cc2ed6bc897e769e4c04a3a546c7
- languageName: node
- linkType: hard
-
-"chalk@npm:^1.1.3":
- version: 1.1.3
- resolution: "chalk@npm:1.1.3"
- dependencies:
- ansi-styles: "npm:^2.2.1"
- escape-string-regexp: "npm:^1.0.2"
- has-ansi: "npm:^2.0.0"
- strip-ansi: "npm:^3.0.0"
- supports-color: "npm:^2.0.0"
- checksum: 10c0/28c3e399ec286bb3a7111fd4225ebedb0d7b813aef38a37bca7c498d032459c265ef43404201d5fbb8d888d29090899c95335b4c0cda13e8b126ff15c541cef8
- languageName: node
- linkType: hard
-
-"chalk@npm:^2.4.1":
- version: 2.4.2
- resolution: "chalk@npm:2.4.2"
- dependencies:
- ansi-styles: "npm:^3.2.1"
- escape-string-regexp: "npm:^1.0.5"
- supports-color: "npm:^5.3.0"
- checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073
- languageName: node
- linkType: hard
-
-"chownr@npm:^1.0.1":
- version: 1.1.4
- resolution: "chownr@npm:1.1.4"
- checksum: 10c0/ed57952a84cc0c802af900cf7136de643d3aba2eecb59d29344bc2f3f9bf703a301b9d84cdc71f82c3ffc9ccde831b0d92f5b45f91727d6c9da62f23aef9d9db
- languageName: node
- linkType: hard
-
-"chownr@npm:^3.0.0":
- version: 3.0.0
- resolution: "chownr@npm:3.0.0"
- checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10
- languageName: node
- linkType: hard
-
-"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3":
- version: 1.0.4
- resolution: "cipher-base@npm:1.0.4"
- dependencies:
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b
- languageName: node
- linkType: hard
-
-"clap@npm:^1.0.9":
- version: 1.2.3
- resolution: "clap@npm:1.2.3"
- dependencies:
- chalk: "npm:^1.1.3"
- checksum: 10c0/55da8d6a8b60e4718652e7b4310773cb618fbc0386c7648e57a2639a5696f409cb7b5e079b058759232de80cfda32d01fb38934520bbf7c07cd49898fb74bae2
- languageName: node
- linkType: hard
-
-"cliui@npm:^3.2.0":
- version: 3.2.0
- resolution: "cliui@npm:3.2.0"
- dependencies:
- string-width: "npm:^1.0.1"
- strip-ansi: "npm:^3.0.1"
- wrap-ansi: "npm:^2.0.0"
- checksum: 10c0/07b121fac7fd33ff8dbf3523f0d3dca0329d4e457e57dee54502aa5f27a33cbd9e66aa3e248f0260d8a1431b65b2bad8f510cd97fb8ab6a8e0506310a92e18d5
- languageName: node
- linkType: hard
-
-"clone@npm:^1.0.2":
- version: 1.0.4
- resolution: "clone@npm:1.0.4"
- checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b
- languageName: node
- linkType: hard
-
-"co@npm:^4.6.0":
- version: 4.6.0
- resolution: "co@npm:4.6.0"
- checksum: 10c0/c0e85ea0ca8bf0a50cbdca82efc5af0301240ca88ebe3644a6ffb8ffe911f34d40f8fbcf8f1d52c5ddd66706abd4d3bfcd64259f1e8e2371d4f47573b0dc8c28
- languageName: node
- linkType: hard
-
-"coa@npm:~1.0.1":
- version: 1.0.4
- resolution: "coa@npm:1.0.4"
- dependencies:
- q: "npm:^1.1.2"
- checksum: 10c0/b15bb8d10f8a29b364fa6e4980aff1fee1da7ae4fe721ca9d806d04ddd95e394dcc9b6390028077b1911675e9cae26ea13c0d3fc332cdc3bb0a64e58547f7e60
- languageName: node
- linkType: hard
-
-"code-point-at@npm:^1.0.0":
- version: 1.1.0
- resolution: "code-point-at@npm:1.1.0"
- checksum: 10c0/33f6b234084e46e6e369b6f0b07949392651b4dde70fc6a592a8d3dafa08d5bb32e3981a02f31f6fc323a26bc03a4c063a9d56834848695bda7611c2417ea2e6
- languageName: node
- linkType: hard
-
-"color-convert@npm:^1.3.0, color-convert@npm:^1.9.0":
- version: 1.9.3
- resolution: "color-convert@npm:1.9.3"
- dependencies:
- color-name: "npm:1.1.3"
- checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c
- languageName: node
- linkType: hard
-
-"color-name@npm:1.1.3":
- version: 1.1.3
- resolution: "color-name@npm:1.1.3"
- checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6
- languageName: node
- linkType: hard
-
-"color-name@npm:^1.0.0":
- version: 1.1.4
- resolution: "color-name@npm:1.1.4"
- checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
- languageName: node
- linkType: hard
-
-"color-string@npm:^0.3.0":
- version: 0.3.0
- resolution: "color-string@npm:0.3.0"
- dependencies:
- color-name: "npm:^1.0.0"
- checksum: 10c0/836bbbf58358c541cc5558ecb0376a4c857f08ed37519c2ab63f3d57ec205b52af929629f3d2d58b7d6f7fb7b6769697d83694454b667698be4eb46654f1f818
- languageName: node
- linkType: hard
-
-"color@npm:^0.11.0":
- version: 0.11.4
- resolution: "color@npm:0.11.4"
- dependencies:
- clone: "npm:^1.0.2"
- color-convert: "npm:^1.3.0"
- color-string: "npm:^0.3.0"
- checksum: 10c0/93abcc7e2eb7c254d42b96a889aab887d2bf6fedf901fc13af88f8885377b84a0f0f11a033c3e9ef9e37dca65214466261acc781f00fdec1c8d221d20c4120ee
- languageName: node
- linkType: hard
-
-"colormin@npm:^1.0.5":
- version: 1.1.2
- resolution: "colormin@npm:1.1.2"
- dependencies:
- color: "npm:^0.11.0"
- css-color-names: "npm:0.0.4"
- has: "npm:^1.0.1"
- checksum: 10c0/3488aca21bb100864c28b8070d5f86387fd4966bff93f552bb10cdc506a8ed9d42c4e239975b224c70eb664f170f543c74d8bda62f28216268141e8dba12777a
- languageName: node
- linkType: hard
-
-"colors@npm:~1.1.2":
- version: 1.1.2
- resolution: "colors@npm:1.1.2"
- checksum: 10c0/21fa4c575e636d889187b4666988ff16a6464a845089ff7b5e0263883da8cfa9140029300ba67bc3e231f67a4eb610725f9e77cc1d74df47741b691a695aea11
- languageName: node
- linkType: hard
-
-"commander@npm:~2.13.0":
- version: 2.13.0
- resolution: "commander@npm:2.13.0"
- checksum: 10c0/e3441096034439e506493ca1e5e9d5d5723ee0eadc3b2b92b3dd332b1d8fcbe72b70a1127f6790e6b3bedde3054316e9fe2cb36cef6ac051000b01559a16ba58
- languageName: node
- linkType: hard
-
-"commondir@npm:^1.0.1":
- version: 1.0.1
- resolution: "commondir@npm:1.0.1"
- checksum: 10c0/33a124960e471c25ee19280c9ce31ccc19574b566dc514fe4f4ca4c34fa8b0b57cf437671f5de380e11353ea9426213fca17687dd2ef03134fea2dbc53809fd6
- languageName: node
- linkType: hard
-
-"concat-map@npm:0.0.1":
- version: 0.0.1
- resolution: "concat-map@npm:0.0.1"
- checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
- languageName: node
- linkType: hard
-
-"concat-stream@npm:^1.5.0":
- version: 1.6.2
- resolution: "concat-stream@npm:1.6.2"
- dependencies:
- buffer-from: "npm:^1.0.0"
- inherits: "npm:^2.0.3"
- readable-stream: "npm:^2.2.2"
- typedarray: "npm:^0.0.6"
- checksum: 10c0/2e9864e18282946dabbccb212c5c7cec0702745e3671679eb8291812ca7fd12023f7d8cb36493942a62f770ac96a7f90009dc5c82ad69893438371720fa92617
- languageName: node
- linkType: hard
-
-"console-browserify@npm:^1.1.0":
- version: 1.2.0
- resolution: "console-browserify@npm:1.2.0"
- checksum: 10c0/89b99a53b7d6cee54e1e64fa6b1f7ac24b844b4019c5d39db298637e55c1f4ffa5c165457ad984864de1379df2c8e1886cbbdac85d9dbb6876a9f26c3106f226
- languageName: node
- linkType: hard
-
-"constants-browserify@npm:^1.0.0":
- version: 1.0.0
- resolution: "constants-browserify@npm:1.0.0"
- checksum: 10c0/ab49b1d59a433ed77c964d90d19e08b2f77213fb823da4729c0baead55e3c597f8f97ebccfdfc47bd896d43854a117d114c849a6f659d9986420e97da0f83ac5
- languageName: node
- linkType: hard
-
-"copy-anything@npm:^2.0.1":
- version: 2.0.6
- resolution: "copy-anything@npm:2.0.6"
- dependencies:
- is-what: "npm:^3.14.1"
- checksum: 10c0/2702998a8cc015f9917385b7f16b0d85f1f6e5e2fd34d99f14df584838f492f49aa0c390d973684c687e895c5c58d08b308a0400ac3e1e3d6fa1e5884a5402ad
- languageName: node
- linkType: hard
-
-"copy-concurrently@npm:^1.0.0":
- version: 1.0.5
- resolution: "copy-concurrently@npm:1.0.5"
- dependencies:
- aproba: "npm:^1.1.1"
- fs-write-stream-atomic: "npm:^1.0.8"
- iferr: "npm:^0.1.5"
- mkdirp: "npm:^0.5.1"
- rimraf: "npm:^2.5.4"
- run-queue: "npm:^1.0.0"
- checksum: 10c0/c2ce213cb27ee3df584d16eb6c9bfe99cfb531585007533c3e4c752521b4fbf0b2f7f90807d79c496683330808ecd9fdbd9ab9ddfa0913150b7f5097423348ce
- languageName: node
- linkType: hard
-
-"core-util-is@npm:~1.0.0":
- version: 1.0.3
- resolution: "core-util-is@npm:1.0.3"
- checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9
- languageName: node
- linkType: hard
-
-"create-ecdh@npm:^4.0.0":
- version: 4.0.4
- resolution: "create-ecdh@npm:4.0.4"
- dependencies:
- bn.js: "npm:^4.1.0"
- elliptic: "npm:^6.5.3"
- checksum: 10c0/77b11a51360fec9c3bce7a76288fc0deba4b9c838d5fb354b3e40c59194d23d66efe6355fd4b81df7580da0661e1334a235a2a5c040b7569ba97db428d466e7f
- languageName: node
- linkType: hard
-
-"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0":
- version: 1.2.0
- resolution: "create-hash@npm:1.2.0"
- dependencies:
- cipher-base: "npm:^1.0.1"
- inherits: "npm:^2.0.1"
- md5.js: "npm:^1.3.4"
- ripemd160: "npm:^2.0.1"
- sha.js: "npm:^2.4.0"
- checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915
- languageName: node
- linkType: hard
-
-"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7":
- version: 1.1.7
- resolution: "create-hmac@npm:1.1.7"
- dependencies:
- cipher-base: "npm:^1.0.3"
- create-hash: "npm:^1.1.0"
- inherits: "npm:^2.0.1"
- ripemd160: "npm:^2.0.0"
- safe-buffer: "npm:^5.0.1"
- sha.js: "npm:^2.4.8"
- checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835
- languageName: node
- linkType: hard
-
-"cross-spawn@npm:^5.0.1":
- version: 5.1.0
- resolution: "cross-spawn@npm:5.1.0"
- dependencies:
- lru-cache: "npm:^4.0.1"
- shebang-command: "npm:^1.2.0"
- which: "npm:^1.2.9"
- checksum: 10c0/1918621fddb9f8c61e02118b2dbf81f611ccd1544ceaca0d026525341832b8511ce2504c60f935dbc06b35e5ef156fe8c1e72708c27dd486f034e9c0e1e07201
- languageName: node
- linkType: hard
-
-"crypto-browserify@npm:^3.11.0":
- version: 3.12.0
- resolution: "crypto-browserify@npm:3.12.0"
- dependencies:
- browserify-cipher: "npm:^1.0.0"
- browserify-sign: "npm:^4.0.0"
- create-ecdh: "npm:^4.0.0"
- create-hash: "npm:^1.1.0"
- create-hmac: "npm:^1.1.0"
- diffie-hellman: "npm:^5.0.0"
- inherits: "npm:^2.0.1"
- pbkdf2: "npm:^3.0.3"
- public-encrypt: "npm:^4.0.0"
- randombytes: "npm:^2.0.0"
- randomfill: "npm:^1.0.3"
- checksum: 10c0/0c20198886576050a6aa5ba6ae42f2b82778bfba1753d80c5e7a090836890dc372bdc780986b2568b4fb8ed2a91c958e61db1f0b6b1cc96af4bd03ffc298ba92
- languageName: node
- linkType: hard
-
-"css-color-names@npm:0.0.4":
- version: 0.0.4
- resolution: "css-color-names@npm:0.0.4"
- checksum: 10c0/88ef97c25bcfb217469cdff428049022438cc546eb208210f0edec03b75050723db3ba02cd0f4959c84cd0659be0b43af3323eff80d1ba5fb15c2accf09ccbe2
- languageName: node
- linkType: hard
-
-"css-loader@npm:^0.28.11":
- version: 0.28.11
- resolution: "css-loader@npm:0.28.11"
- dependencies:
- babel-code-frame: "npm:^6.26.0"
- css-selector-tokenizer: "npm:^0.7.0"
- cssnano: "npm:^3.10.0"
- icss-utils: "npm:^2.1.0"
- loader-utils: "npm:^1.0.2"
- lodash.camelcase: "npm:^4.3.0"
- object-assign: "npm:^4.1.1"
- postcss: "npm:^5.0.6"
- postcss-modules-extract-imports: "npm:^1.2.0"
- postcss-modules-local-by-default: "npm:^1.2.0"
- postcss-modules-scope: "npm:^1.1.0"
- postcss-modules-values: "npm:^1.3.0"
- postcss-value-parser: "npm:^3.3.0"
- source-list-map: "npm:^2.0.0"
- checksum: 10c0/36434d7fafde8a4de3995c444713a455df17f74cfe10f089481cb7918db6f206267301daf2ae0496544809ca35bb226df47aa4edeb9580704c96281a07091f8b
- languageName: node
- linkType: hard
-
-"css-selector-tokenizer@npm:^0.7.0":
- version: 0.7.3
- resolution: "css-selector-tokenizer@npm:0.7.3"
- dependencies:
- cssesc: "npm:^3.0.0"
- fastparse: "npm:^1.1.2"
- checksum: 10c0/bc4d14204bf5716f70085526bf370cbdd1c643dcb2e7366ba96212649fa5a07885e3f5dc2bde53646bac557ded79a60c7118cf7cf5d4dda898353a9e08277649
- languageName: node
- linkType: hard
-
-"cssesc@npm:^3.0.0":
- version: 3.0.0
- resolution: "cssesc@npm:3.0.0"
- bin:
- cssesc: bin/cssesc
- checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7
- languageName: node
- linkType: hard
-
-"cssnano@npm:^3.10.0":
- version: 3.10.0
- resolution: "cssnano@npm:3.10.0"
- dependencies:
- autoprefixer: "npm:^6.3.1"
- decamelize: "npm:^1.1.2"
- defined: "npm:^1.0.0"
- has: "npm:^1.0.1"
- object-assign: "npm:^4.0.1"
- postcss: "npm:^5.0.14"
- postcss-calc: "npm:^5.2.0"
- postcss-colormin: "npm:^2.1.8"
- postcss-convert-values: "npm:^2.3.4"
- postcss-discard-comments: "npm:^2.0.4"
- postcss-discard-duplicates: "npm:^2.0.1"
- postcss-discard-empty: "npm:^2.0.1"
- postcss-discard-overridden: "npm:^0.1.1"
- postcss-discard-unused: "npm:^2.2.1"
- postcss-filter-plugins: "npm:^2.0.0"
- postcss-merge-idents: "npm:^2.1.5"
- postcss-merge-longhand: "npm:^2.0.1"
- postcss-merge-rules: "npm:^2.0.3"
- postcss-minify-font-values: "npm:^1.0.2"
- postcss-minify-gradients: "npm:^1.0.1"
- postcss-minify-params: "npm:^1.0.4"
- postcss-minify-selectors: "npm:^2.0.4"
- postcss-normalize-charset: "npm:^1.1.0"
- postcss-normalize-url: "npm:^3.0.7"
- postcss-ordered-values: "npm:^2.1.0"
- postcss-reduce-idents: "npm:^2.2.2"
- postcss-reduce-initial: "npm:^1.0.0"
- postcss-reduce-transforms: "npm:^1.0.3"
- postcss-svgo: "npm:^2.1.1"
- postcss-unique-selectors: "npm:^2.0.2"
- postcss-value-parser: "npm:^3.2.3"
- postcss-zindex: "npm:^2.0.1"
- checksum: 10c0/1231f79be4761fa61478fb2a51d1aa95798eb426e33cde95341b5e9c71ec56c170fcc4c8d0618a8961033efb9da6230539eea933431c983ef065c014865e50f4
- languageName: node
- linkType: hard
-
-"csso@npm:~2.3.1":
- version: 2.3.2
- resolution: "csso@npm:2.3.2"
- dependencies:
- clap: "npm:^1.0.9"
- source-map: "npm:^0.5.3"
- bin:
- csso: ./bin/csso
- checksum: 10c0/e36a1cae8f371327cbf22d6770b8827291fa4f372bbaab938d5afc869e73f0a452ba4e87738bf03bfbb3bba27770efa04a6b4acaf5f36e94f88e8c481b9df7fa
- languageName: node
- linkType: hard
-
-"cyclist@npm:^1.0.1":
- version: 1.0.1
- resolution: "cyclist@npm:1.0.1"
- checksum: 10c0/3381d3b66a3b268e6e0abcc1fa8fbeeb9a98391d8455677509f9833813d7680cc737a10141f54c229e42f5b3133250f36f1aa04f56ef4ba9b29fa728c3c48c01
- languageName: node
- linkType: hard
-
-"d@npm:1, d@npm:^1.0.1":
- version: 1.0.1
- resolution: "d@npm:1.0.1"
- dependencies:
- es5-ext: "npm:^0.10.50"
- type: "npm:^1.0.1"
- checksum: 10c0/1fedcb3b956a461f64d86b94b347441beff5cef8910b6ac4ec509a2c67eeaa7093660a98b26601ac91f91260238add73bdf25867a9c0cb783774642bc4c1523f
- languageName: node
- linkType: hard
-
-"debug@npm:4, debug@npm:^4.3.4":
- version: 4.4.3
- resolution: "debug@npm:4.4.3"
- dependencies:
- ms: "npm:^2.1.3"
- peerDependenciesMeta:
- supports-color:
- optional: true
- checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6
- languageName: node
- linkType: hard
-
-"debug@npm:^3.2.6":
- version: 3.2.7
- resolution: "debug@npm:3.2.7"
- dependencies:
- ms: "npm:^2.1.1"
- checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a
- languageName: node
- linkType: hard
-
-"decamelize@npm:^1.1.1, decamelize@npm:^1.1.2":
- version: 1.2.0
- resolution: "decamelize@npm:1.2.0"
- checksum: 10c0/85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2
- languageName: node
- linkType: hard
-
-"defined@npm:^1.0.0":
- version: 1.0.0
- resolution: "defined@npm:1.0.0"
- checksum: 10c0/2b9929414857729a97cfcc77987e65005e03b3fd92747e1d6a743b054c1387b62e669dc453b53e3a8105f1398df6aad54c07eed984871c93be8c7f4560a1828b
- languageName: node
- linkType: hard
-
-"des.js@npm:^1.0.0":
- version: 1.0.1
- resolution: "des.js@npm:1.0.1"
- dependencies:
- inherits: "npm:^2.0.1"
- minimalistic-assert: "npm:^1.0.0"
- checksum: 10c0/69bf742d1c381e01d75151bdcaac71a18d251d7debfc9b6ae5ee4b4edaf39691ae203c5ec9173ba89aedb3ddc622cdff4fca065448c6c2afb1140d9fb826339d
- languageName: node
- linkType: hard
-
-"diff@npm:~5.0.0":
- version: 5.0.0
- resolution: "diff@npm:5.0.0"
- checksum: 10c0/08c5904779bbababcd31f1707657b1ad57f8a9b65e6f88d3fb501d09a965d5f8d73066898a7d3f35981f9e4101892c61d99175d421f3b759533213c253d91134
- languageName: node
- linkType: hard
-
-"diffie-hellman@npm:^5.0.0":
- version: 5.0.3
- resolution: "diffie-hellman@npm:5.0.3"
- dependencies:
- bn.js: "npm:^4.1.0"
- miller-rabin: "npm:^4.0.0"
- randombytes: "npm:^2.0.0"
- checksum: 10c0/ce53ccafa9ca544b7fc29b08a626e23a9b6562efc2a98559a0c97b4718937cebaa9b5d7d0a05032cc9c1435e9b3c1532b9e9bf2e0ede868525922807ad6e1ecf
- languageName: node
- linkType: hard
-
-"domain-browser@npm:^1.1.1":
- version: 1.2.0
- resolution: "domain-browser@npm:1.2.0"
- checksum: 10c0/a955f482f4b4710fbd77c12a33e77548d63603c30c80f61a80519f27e3db1ba8530b914584cc9e9365d2038753d6b5bd1f4e6c81e432b007b0ec95b8b5e69b1b
- languageName: node
- linkType: hard
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@centerforopenscience/list-of-licenses@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@centerforopenscience/list-of-licenses/-/list-of-licenses-1.1.0.tgz#2a4379633409205047e723e21cd818560a29ab45"
+ integrity sha512-EGU7gpRXczqC4TAlfKBiLzRaopxxZkL86kwS8/qdZdmRjTpG872z+bRd5E4ZJivxHBLpVpts5nK/bz4MsbdhTA==
+
+"@centerforopenscience/osf-style@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@centerforopenscience/osf-style/-/osf-style-1.9.0.tgz#0ab5cb17e2c531aafcc19e226f36ff86b734116e"
+ integrity sha512-R9IBVbz4eb/NkoM5TZGH46T9m5jspwK0H605O0oSMggHZPcTrf5gAHw0axeC26nKmEpz2FSXjvm84ziPNvhsvA==
+
+"@fortawesome/fontawesome-common-types@7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.2.0.tgz#ae54831ab5974bc1a64e8b07410f2da2b4abf87f"
+ integrity sha512-IpR0bER9FY25p+e7BmFH25MZKEwFHTfRAfhOyJubgiDnoJNsSvJ7nigLraHtp4VOG/cy8D7uiV0dLkHOne5Fhw==
+
+"@fortawesome/fontawesome-free@^7.0.1":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz#188c1053ce422ad1f934d7df242a973fcb89636d"
+ integrity sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==
+
+"@fortawesome/fontawesome-svg-core@^7.0.1":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.2.0.tgz#813550a5e8946a798e170d3f7331a685f8f8a550"
+ integrity sha512-6639htZMjEkwskf3J+e6/iar+4cTNM9qhoWuRfj9F3eJD6r7iCzV1SWnQr2Mdv0QT0suuqU8BoJCZUyCtP9R4Q==
+ dependencies:
+ "@fortawesome/fontawesome-common-types" "7.2.0"
+
+"@fortawesome/free-brands-svg-icons@^7.0.1":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-7.2.0.tgz#36f4306e671ad0acd23c1db96bde72e47d93e596"
+ integrity sha512-VNG8xqOip1JuJcC3zsVsKRQ60oXG9+oYNDCosjoU/H9pgYmLTEwWw8pE0jhPz/JWdHeUuK6+NQ3qsM4gIbdbYQ==
+ dependencies:
+ "@fortawesome/fontawesome-common-types" "7.2.0"
+
+"@fortawesome/react-fontawesome@^3.0.2":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-3.3.0.tgz#020364bdd71d785ffbb0e61425f53325f78fc647"
+ integrity sha512-EHmHeTf8WgO29sdY3iX/7ekE3gNUdlc2RW6mm/FzELlHFKfTrA9S4MlyquRR+RRCRCn8+jXfLFpLGB2l7wCWyw==
+
+URIjs@^1.14.1:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/URIjs/-/URIjs-1.16.1.tgz#edebc678b8b74b26b05d2b481e12383f5ae04b8b"
+ integrity sha512-ycFsR7J7p7Q+iJA4oVQP9tEnBEA7N/JD5RiOkLAhEeAmR1djRvZBpKCsWhmDaEoBNJLMhaCVpfLcRgqfaG6COw==
+
+acorn-dynamic-import@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
+ integrity sha512-GKp5tQ8h0KMPWIYGRHHXI1s5tUpZixZ3IHF2jAu42wSCf6In/G873s6/y4DdKdhWvzhu1T6mE1JgvnhAKqyYYQ==
+ dependencies:
+ acorn "^4.0.3"
+
+acorn@^4.0.3:
+ version "4.0.13"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
+ integrity sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==
+
+acorn@^5.0.0:
+ version "5.7.4"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
+ integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
+
+ajv-errors@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+ integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
+
+ajv-keywords@^3.1.0:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^5.0.0:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ integrity sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
+ajv@^6.1.0:
+ version "6.14.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.14.0.tgz#fd067713e228210636ebb08c60bd3765d6dbe73a"
+ integrity sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+alphanum-sort@^1.0.1, alphanum-sort@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
+ integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+ integrity sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
+
+ansi-regex@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
+ integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+aproba@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+asn1.js@^4.10.1:
+ version "4.10.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
+ integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+assert@^1.1.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.1.tgz#038ab248e4ff078e7bc2485ba6e6388466c78f76"
+ integrity sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==
+ dependencies:
+ object.assign "^4.1.4"
+ util "^0.10.4"
+
+assets-webpack-plugin@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/assets-webpack-plugin/-/assets-webpack-plugin-2.3.0.tgz#3e5fb861a19f1a9748aa02f56b8a03d7476ad0db"
+ integrity sha512-PqKXArZTW7wTnRp7sttlYbhBgNsa07z6Epk6csXa5ArkbGhlOexsJ4xAJqtdXslsgcP+xy3/qx3xG0W9+FAG4g==
+ dependencies:
+ camelcase "^1.2.1"
+ escape-string-regexp "^1.0.3"
+ mkdirp "^0.5.1"
+
+async@^2.1.2:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
+ integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
+ dependencies:
+ lodash "^4.17.14"
+
+autoprefixer@^6.3.1:
+ version "6.7.7"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014"
+ integrity sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==
+ dependencies:
+ browserslist "^1.7.6"
+ caniuse-db "^1.0.30000634"
+ normalize-range "^0.1.2"
+ num2fraction "^1.2.2"
+ postcss "^5.2.16"
+ postcss-value-parser "^3.2.3"
+
+available-typed-arrays@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
+ integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
+ dependencies:
+ possible-typed-array-names "^1.0.0"
+
+babel-code-frame@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+balanced-match@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+ integrity sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg==
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.0.2:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+big.js@^3.1.3:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+ integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
+
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+bluebird@^3.5.1:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
+ version "4.12.3"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e"
+ integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==
+
+bn.js@^5.2.1, bn.js@^5.2.2:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e"
+ integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==
+
+bootbox@^5.5.2:
+ version "5.5.3"
+ resolved "https://registry.yarnpkg.com/bootbox/-/bootbox-5.5.3.tgz#6b32da9c401a22b089e1544797cc9a91f1c35b23"
+ integrity sha512-B4mnm1DYgNHzoNtD7I0L/fixqvya4EEQy5bFF/yNmGI2Eq3WwVVwdfWf3hoF8KS+EaV4f0uIMqtxB1EAZwZPhQ==
+
+bootstrap@3.3.7, bootstrap@~3.3.2:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71"
+ integrity sha512-qcFaisBrcBhTFkz1IUnGDYnX6ZWfFzH8zOixUDtHW9Ip+r+7MfMFav2rzy7cIHc7rgIg7xjhWBoo1mS/U26j4g==
+
+bootstrap@^3.3.7:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72"
+ integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==
+
+bower@^1.8.8:
+ version "1.8.14"
+ resolved "https://registry.yarnpkg.com/bower/-/bower-1.8.14.tgz#985722a3c1fcd35c93d4136ecbeafbeaaea74e86"
+ integrity sha512-8Rq058FD91q9Nwthyhw0la9fzpBz0iwZTrt51LWl+w+PnJgZk9J+5wp3nibsJcIUPglMYXr4NRBaR+TUj0OkBQ==
+
+brace-expansion@^1.1.7:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
+ integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+brorand@^1.0.1, brorand@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+ integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
+
+browserify-aes@^1.0.4, browserify-aes@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
+ dependencies:
+ buffer-xor "^1.0.3"
+ cipher-base "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.3"
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+browserify-cipher@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+ integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
+ dependencies:
+ browserify-aes "^1.0.4"
+ browserify-des "^1.0.0"
+ evp_bytestokey "^1.0.0"
+
+browserify-des@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+ integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
+ dependencies:
+ cipher-base "^1.0.1"
+ des.js "^1.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+browserify-rsa@^4.0.0, browserify-rsa@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.1.tgz#06e530907fe2949dc21fc3c2e2302e10b1437238"
+ integrity sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==
+ dependencies:
+ bn.js "^5.2.1"
+ randombytes "^2.1.0"
+ safe-buffer "^5.2.1"
+
+browserify-sign@^4.2.3:
+ version "4.2.5"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.5.tgz#3979269fa8af55ba18aac35deef11b45515cd27d"
+ integrity sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==
+ dependencies:
+ bn.js "^5.2.2"
+ browserify-rsa "^4.1.1"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ elliptic "^6.6.1"
+ inherits "^2.0.4"
+ parse-asn1 "^5.1.9"
+ readable-stream "^2.3.8"
+ safe-buffer "^5.2.1"
+
+browserify-zlib@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+ integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
+ dependencies:
+ pako "~1.0.5"
+
+browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6:
+ version "1.7.7"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
+ integrity sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==
+ dependencies:
+ caniuse-db "^1.0.30000639"
+ electron-to-chromium "^1.2.7"
+
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+buffer-xor@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+ integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
+
+buffer@^4.3.0:
+ version "4.9.2"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
+ integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+ isarray "^1.0.0"
+
+builtin-status-codes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+ integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==
+
+cacache@^10.0.4:
+ version "10.0.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
+ integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==
+ dependencies:
+ bluebird "^3.5.1"
+ chownr "^1.0.1"
+ glob "^7.1.2"
+ graceful-fs "^4.1.11"
+ lru-cache "^4.1.1"
+ mississippi "^2.0.0"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ promise-inflight "^1.0.1"
+ rimraf "^2.6.2"
+ ssri "^5.2.4"
+ unique-filename "^1.1.0"
+ y18n "^4.0.0"
+
+call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
+ integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
+ dependencies:
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+
+call-bind@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c"
+ integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==
+ dependencies:
+ call-bind-apply-helpers "^1.0.0"
+ es-define-property "^1.0.0"
+ get-intrinsic "^1.2.4"
+ set-function-length "^1.2.2"
+
+call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a"
+ integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==
+ dependencies:
+ call-bind-apply-helpers "^1.0.2"
+ get-intrinsic "^1.3.0"
+
+camelcase@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+ integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==
+
+camelcase@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+ integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==
+
+caniuse-api@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
+ integrity sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q==
+ dependencies:
+ browserslist "^1.3.6"
+ caniuse-db "^1.0.30000529"
+ lodash.memoize "^4.1.2"
+ lodash.uniq "^4.5.0"
+
+caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
+ version "1.0.30001781"
+ resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001781.tgz#7bc16b681ec25e23bd8b2e02067b9cede707c778"
+ integrity sha512-gNw4Hl6IfkgyGMNzgGRWrnalOUASAYFiCFywQemHI9OU16PC6TRRhHEnR7taYC2/Mad/nDLkzXAEtejGuNsUfg==
+
+chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@^2.4.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chownr@^1.0.1:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
+cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.7.tgz#bd094bfef42634ccfd9e13b9fc73274997111e39"
+ integrity sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==
+ dependencies:
+ inherits "^2.0.4"
+ safe-buffer "^5.2.1"
+ to-buffer "^1.2.2"
+
+clap@^1.0.9:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51"
+ integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==
+ dependencies:
+ chalk "^1.1.3"
+
+cliui@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wrap-ansi "^2.0.0"
+
+clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
+
+coa@~1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd"
+ integrity sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==
+ dependencies:
+ q "^1.1.2"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==
+
+color-convert@^1.3.0, color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
+color-name@^1.0.0:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
+ integrity sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA==
+ dependencies:
+ color-name "^1.0.0"
+
+color@^0.11.0:
+ version "0.11.4"
+ resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764"
+ integrity sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA==
+ dependencies:
+ clone "^1.0.2"
+ color-convert "^1.3.0"
+ color-string "^0.3.0"
+
+colormin@^1.0.5:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
+ integrity sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ==
+ dependencies:
+ color "^0.11.0"
+ css-color-names "0.0.4"
+ has "^1.0.1"
+
+colors@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
+ integrity sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==
+
+commander@~2.13.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
+ integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+ integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+concat-stream@^1.5.0:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+console-browserify@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
+ integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
+
+constants-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+ integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==
+
+copy-anything@^3.0.5:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0"
+ integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==
+ dependencies:
+ is-what "^4.1.8"
+
+copy-concurrently@^1.0.0:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
+ dependencies:
+ aproba "^1.1.1"
+ fs-write-stream-atomic "^1.0.8"
+ iferr "^0.1.5"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.0"
+
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
+create-ecdh@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
+ integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
+ dependencies:
+ bn.js "^4.1.0"
+ elliptic "^6.5.3"
+
+create-hash@^1.1.0, create-hash@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
+ dependencies:
+ cipher-base "^1.0.1"
+ inherits "^2.0.1"
+ md5.js "^1.3.4"
+ ripemd160 "^2.0.1"
+ sha.js "^2.4.0"
+
+create-hmac@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
+ dependencies:
+ cipher-base "^1.0.3"
+ create-hash "^1.1.0"
+ inherits "^2.0.1"
+ ripemd160 "^2.0.0"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+cross-spawn@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+crypto-browserify@^3.11.0:
+ version "3.12.1"
+ resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz#bb8921bec9acc81633379aa8f52d69b0b69e0dac"
+ integrity sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==
+ dependencies:
+ browserify-cipher "^1.0.1"
+ browserify-sign "^4.2.3"
+ create-ecdh "^4.0.4"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ diffie-hellman "^5.0.3"
+ hash-base "~3.0.4"
+ inherits "^2.0.4"
+ pbkdf2 "^3.1.2"
+ public-encrypt "^4.0.3"
+ randombytes "^2.1.0"
+ randomfill "^1.0.4"
+
+css-color-names@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
+ integrity sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==
+
+css-loader@^0.28.11:
+ version "0.28.11"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7"
+ integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==
+ dependencies:
+ babel-code-frame "^6.26.0"
+ css-selector-tokenizer "^0.7.0"
+ cssnano "^3.10.0"
+ icss-utils "^2.1.0"
+ loader-utils "^1.0.2"
+ lodash.camelcase "^4.3.0"
+ object-assign "^4.1.1"
+ postcss "^5.0.6"
+ postcss-modules-extract-imports "^1.2.0"
+ postcss-modules-local-by-default "^1.2.0"
+ postcss-modules-scope "^1.1.0"
+ postcss-modules-values "^1.3.0"
+ postcss-value-parser "^3.3.0"
+ source-list-map "^2.0.0"
+
+css-selector-tokenizer@^0.7.0:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1"
+ integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==
+ dependencies:
+ cssesc "^3.0.0"
+ fastparse "^1.1.2"
+
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+cssnano@^3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38"
+ integrity sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg==
+ dependencies:
+ autoprefixer "^6.3.1"
+ decamelize "^1.1.2"
+ defined "^1.0.0"
+ has "^1.0.1"
+ object-assign "^4.0.1"
+ postcss "^5.0.14"
+ postcss-calc "^5.2.0"
+ postcss-colormin "^2.1.8"
+ postcss-convert-values "^2.3.4"
+ postcss-discard-comments "^2.0.4"
+ postcss-discard-duplicates "^2.0.1"
+ postcss-discard-empty "^2.0.1"
+ postcss-discard-overridden "^0.1.1"
+ postcss-discard-unused "^2.2.1"
+ postcss-filter-plugins "^2.0.0"
+ postcss-merge-idents "^2.1.5"
+ postcss-merge-longhand "^2.0.1"
+ postcss-merge-rules "^2.0.3"
+ postcss-minify-font-values "^1.0.2"
+ postcss-minify-gradients "^1.0.1"
+ postcss-minify-params "^1.0.4"
+ postcss-minify-selectors "^2.0.4"
+ postcss-normalize-charset "^1.1.0"
+ postcss-normalize-url "^3.0.7"
+ postcss-ordered-values "^2.1.0"
+ postcss-reduce-idents "^2.2.2"
+ postcss-reduce-initial "^1.0.0"
+ postcss-reduce-transforms "^1.0.3"
+ postcss-svgo "^2.1.1"
+ postcss-unique-selectors "^2.0.2"
+ postcss-value-parser "^3.2.3"
+ postcss-zindex "^2.0.1"
+
+csso@~2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85"
+ integrity sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w==
+ dependencies:
+ clap "^1.0.9"
+ source-map "^0.5.3"
+
+cyclist@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3"
+ integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==
+
+d@1, d@^1.0.1, d@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de"
+ integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==
+ dependencies:
+ es5-ext "^0.10.64"
+ type "^2.7.2"
+
+decamelize@^1.1.1, decamelize@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
+
+define-data-property@^1.0.1, define-data-property@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
+ integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
+ dependencies:
+ es-define-property "^1.0.0"
+ es-errors "^1.3.0"
+ gopd "^1.0.1"
+
+define-properties@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+ integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ dependencies:
+ define-data-property "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
+defined@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf"
+ integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==
+
+des.js@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da"
+ integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==
+ dependencies:
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+diff@~5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
+ integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
+
+diffie-hellman@^5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
+ dependencies:
+ bn.js "^4.1.0"
+ miller-rabin "^4.0.0"
+ randombytes "^2.0.0"
+
+domain-browser@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
+ integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
"dropzone@https://github.com/CenterForOpenScience/dropzone.git#aba21eb6b82cc823ac7a7a53d6e035791c082bae":
- version: 4.3.0
- resolution: "dropzone@https://github.com/CenterForOpenScience/dropzone.git#commit=aba21eb6b82cc823ac7a7a53d6e035791c082bae"
- checksum: 10c0/3512cf3c01a4bacfccebb9e9e99c78af0a1e5adf5e89a31fd5316b9d1cd396562f86727a7cb65d1dc57626a9557db6c8f11d96b98d405a2cf1409f35ede85590
- languageName: node
- linkType: hard
-
-"duplexify@npm:^3.4.2, duplexify@npm:^3.6.0":
- version: 3.7.1
- resolution: "duplexify@npm:3.7.1"
- dependencies:
- end-of-stream: "npm:^1.0.0"
- inherits: "npm:^2.0.1"
- readable-stream: "npm:^2.0.0"
- stream-shift: "npm:^1.0.0"
- checksum: 10c0/59d1440c1b4e3a4db35ae96933392703ce83518db1828d06b9b6322920d6cbbf0b7159e88be120385fe459e77f1eb0c7622f26e9ec1f47c9ff05c2b35747dbd3
- languageName: node
- linkType: hard
-
-"electron-to-chromium@npm:^1.2.7":
- version: 1.4.71
- resolution: "electron-to-chromium@npm:1.4.71"
- checksum: 10c0/849e48d95b26a458485c5581c051fcd61594b6cb5a461871019d986097f8abe1efc405db9add00f73fbfdbf92bb0025c8c64410b06fecce835430c3bb88f7fdb
- languageName: node
- linkType: hard
-
-"elliptic@npm:^6.5.3":
- version: 6.5.4
- resolution: "elliptic@npm:6.5.4"
- dependencies:
- bn.js: "npm:^4.11.9"
- brorand: "npm:^1.1.0"
- hash.js: "npm:^1.0.0"
- hmac-drbg: "npm:^1.0.1"
- inherits: "npm:^2.0.4"
- minimalistic-assert: "npm:^1.0.1"
- minimalistic-crypto-utils: "npm:^1.0.1"
- checksum: 10c0/5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2
- languageName: node
- linkType: hard
-
-"emojis-list@npm:^2.0.0":
- version: 2.1.0
- resolution: "emojis-list@npm:2.1.0"
- checksum: 10c0/bbb941223bfb3e38054cb52ed1b3098a8dac0a90fdd2699eb8a3af3b2172cdc4af0932e05c3edd52e814997c8f45cf1d7f5e86e9ecdcd4e2390a0f27e6914db5
- languageName: node
- linkType: hard
-
-"emojis-list@npm:^3.0.0":
- version: 3.0.0
- resolution: "emojis-list@npm:3.0.0"
- checksum: 10c0/7dc4394b7b910444910ad64b812392159a21e1a7ecc637c775a440227dcb4f80eff7fe61f4453a7d7603fa23d23d30cc93fe9e4b5ed985b88d6441cd4a35117b
- languageName: node
- linkType: hard
-
-"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0":
- version: 1.4.4
- resolution: "end-of-stream@npm:1.4.4"
- dependencies:
- once: "npm:^1.4.0"
- checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975
- languageName: node
- linkType: hard
-
-"enhanced-resolve@npm:^3.4.0":
- version: 3.4.1
- resolution: "enhanced-resolve@npm:3.4.1"
- dependencies:
- graceful-fs: "npm:^4.1.2"
- memory-fs: "npm:^0.4.0"
- object-assign: "npm:^4.0.1"
- tapable: "npm:^0.2.7"
- checksum: 10c0/91f2da7e8e5ab2376823843a0e0176f683cfdb5749efbb6e1f26580b285593bb5b69006a1ae5e068c21ab1eb90271eec8b8fd6aa3ac36cc6f1f6de4d37a06456
- languageName: node
- linkType: hard
-
-"env-paths@npm:^2.2.0":
- version: 2.2.1
- resolution: "env-paths@npm:2.2.1"
- checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
- languageName: node
- linkType: hard
-
-"errno@npm:^0.1.1, errno@npm:^0.1.3, errno@npm:~0.1.7":
- version: 0.1.8
- resolution: "errno@npm:0.1.8"
- dependencies:
- prr: "npm:~1.0.1"
- bin:
- errno: cli.js
- checksum: 10c0/83758951967ec57bf00b5f5b7dc797e6d65a6171e57ea57adcf1bd1a0b477fd9b5b35fae5be1ff18f4090ed156bce1db749fe7e317aac19d485a5d150f6a4936
- languageName: node
- linkType: hard
-
-"error-ex@npm:^1.2.0":
- version: 1.3.2
- resolution: "error-ex@npm:1.3.2"
- dependencies:
- is-arrayish: "npm:^0.2.1"
- checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce
- languageName: node
- linkType: hard
-
-"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.46, es5-ext@npm:^0.10.50, es5-ext@npm:~0.10.14":
- version: 0.10.53
- resolution: "es5-ext@npm:0.10.53"
- dependencies:
- es6-iterator: "npm:~2.0.3"
- es6-symbol: "npm:~3.1.3"
- next-tick: "npm:~1.0.0"
- checksum: 10c0/02989b89e777264756696baf64b6daf54e0be631b09870dfab8473e81129303c2791a001bf1f06bb38bf008403a0daad02e8001cb419ad8e4430452400ecd771
- languageName: node
- linkType: hard
-
-"es6-iterator@npm:^2.0.3, es6-iterator@npm:~2.0.1, es6-iterator@npm:~2.0.3":
- version: 2.0.3
- resolution: "es6-iterator@npm:2.0.3"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:^0.10.35"
- es6-symbol: "npm:^3.1.1"
- checksum: 10c0/91f20b799dba28fb05bf623c31857fc1524a0f1c444903beccaf8929ad196c8c9ded233e5ac7214fc63a92b3f25b64b7f2737fcca8b1f92d2d96cf3ac902f5d8
- languageName: node
- linkType: hard
-
-"es6-map@npm:^0.1.3":
- version: 0.1.5
- resolution: "es6-map@npm:0.1.5"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- es6-iterator: "npm:~2.0.1"
- es6-set: "npm:~0.1.5"
- es6-symbol: "npm:~3.1.1"
- event-emitter: "npm:~0.3.5"
- checksum: 10c0/62fe1a90ead1704bed699cb9c975e642023f590d5338c2a640d60ce0a846de7d5197561393ac03dd11473b96087cf8793c9e4836fe05ad4d2ef6afda6b9a3511
- languageName: node
- linkType: hard
-
-"es6-set@npm:~0.1.5":
- version: 0.1.5
- resolution: "es6-set@npm:0.1.5"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- es6-iterator: "npm:~2.0.1"
- es6-symbol: "npm:3.1.1"
- event-emitter: "npm:~0.3.5"
- checksum: 10c0/a1fe925f77bd529b7b5135ca1a8bc9ff378fa0e3fd9686f3ac1b8e87eb00fbffc100e81a3c44262cd324cbfcc772d7a75ca5471e3fb24247ac85c5beb6af0d14
- languageName: node
- linkType: hard
-
-"es6-symbol@npm:3.1.1":
- version: 3.1.1
- resolution: "es6-symbol@npm:3.1.1"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- checksum: 10c0/eb4ec788a99dc2c04e5e9abd90f478991425a881eced99a7165eada0c832bfc9a8fbb76b688c3c3b6e103f94d23e8e19addf9cf18abb537fb918d066d5ce1d7f
- languageName: node
- linkType: hard
-
-"es6-symbol@npm:^3.1.1, es6-symbol@npm:~3.1.1, es6-symbol@npm:~3.1.3":
- version: 3.1.3
- resolution: "es6-symbol@npm:3.1.3"
- dependencies:
- d: "npm:^1.0.1"
- ext: "npm:^1.1.2"
- checksum: 10c0/22982f815f00df553a89f4fb74c5048fed85df598482b4bd38dbd173174247949c72982a7d7132a58b147525398400e5f182db59b0916cb49f1e245fb0e22233
- languageName: node
- linkType: hard
-
-"es6-weak-map@npm:^2.0.1":
- version: 2.0.3
- resolution: "es6-weak-map@npm:2.0.3"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:^0.10.46"
- es6-iterator: "npm:^2.0.3"
- es6-symbol: "npm:^3.1.1"
- checksum: 10c0/460932be9542473dbbddd183e21c15a66cfec1b2c17dae2b514e190d6fb2896b7eb683783d4b36da036609d2e1c93d2815f21b374dfccaf02a8978694c2f7b67
- languageName: node
- linkType: hard
-
-"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.3, escape-string-regexp@npm:^1.0.5":
- version: 1.0.5
- resolution: "escape-string-regexp@npm:1.0.5"
- checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371
- languageName: node
- linkType: hard
-
-"escope@npm:^3.6.0":
- version: 3.6.0
- resolution: "escope@npm:3.6.0"
- dependencies:
- es6-map: "npm:^0.1.3"
- es6-weak-map: "npm:^2.0.1"
- esrecurse: "npm:^4.1.0"
- estraverse: "npm:^4.1.1"
- checksum: 10c0/79cbb30bf126628eb7e586575b2f5fd31b14ea108cd2379c571fe4dc09ea5208f42dacf1cd43a702b59efccb128e9c9e7762d5cd670d2d184a889947aea509e5
- languageName: node
- linkType: hard
-
-"esprima@npm:^2.6.0":
- version: 2.7.3
- resolution: "esprima@npm:2.7.3"
- bin:
- esparse: ./bin/esparse.js
- esvalidate: ./bin/esvalidate.js
- checksum: 10c0/6e1e99f280eed2ecd521ae28217c5f7c7a03fd0a1ac913bffd4a4ba278caf32cb8d9fc01e41d4b4bc904617282873dea297d60e1f93ea20156f29994c348a04f
- languageName: node
- linkType: hard
-
-"esrecurse@npm:^4.1.0":
- version: 4.3.0
- resolution: "esrecurse@npm:4.3.0"
- dependencies:
- estraverse: "npm:^5.2.0"
- checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
- languageName: node
- linkType: hard
-
-"estraverse@npm:^4.1.1":
- version: 4.3.0
- resolution: "estraverse@npm:4.3.0"
- checksum: 10c0/9cb46463ef8a8a4905d3708a652d60122a0c20bb58dec7e0e12ab0e7235123d74214fc0141d743c381813e1b992767e2708194f6f6e0f9fd00c1b4e0887b8b6d
- languageName: node
- linkType: hard
-
-"estraverse@npm:^5.2.0":
- version: 5.3.0
- resolution: "estraverse@npm:5.3.0"
- checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
- languageName: node
- linkType: hard
-
-"esutils@npm:^2.0.2":
- version: 2.0.3
- resolution: "esutils@npm:2.0.3"
- checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
- languageName: node
- linkType: hard
-
-"event-emitter@npm:~0.3.5":
- version: 0.3.5
- resolution: "event-emitter@npm:0.3.5"
- dependencies:
- d: "npm:1"
- es5-ext: "npm:~0.10.14"
- checksum: 10c0/75082fa8ffb3929766d0f0a063bfd6046bd2a80bea2666ebaa0cfd6f4a9116be6647c15667bea77222afc12f5b4071b68d393cf39fdaa0e8e81eda006160aff0
- languageName: node
- linkType: hard
-
-"events@npm:^3.0.0":
- version: 3.3.0
- resolution: "events@npm:3.3.0"
- checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
- languageName: node
- linkType: hard
-
-"evp_bytestokey@npm:^1.0.0, evp_bytestokey@npm:^1.0.3":
- version: 1.0.3
- resolution: "evp_bytestokey@npm:1.0.3"
- dependencies:
- md5.js: "npm:^1.3.4"
- node-gyp: "npm:latest"
- safe-buffer: "npm:^5.1.1"
- checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99
- languageName: node
- linkType: hard
-
-"execa@npm:^0.7.0":
- version: 0.7.0
- resolution: "execa@npm:0.7.0"
- dependencies:
- cross-spawn: "npm:^5.0.1"
- get-stream: "npm:^3.0.0"
- is-stream: "npm:^1.1.0"
- npm-run-path: "npm:^2.0.0"
- p-finally: "npm:^1.0.0"
- signal-exit: "npm:^3.0.0"
- strip-eof: "npm:^1.0.0"
- checksum: 10c0/812f1776e2a6b2226532e43c1af87d8a12e26de03a06e7e043f653acf5565e0656f5f6c64d66726fefa17178ac129caaa419a50905934e7c4a846417abb25d4a
- languageName: node
- linkType: hard
-
-"exponential-backoff@npm:^3.1.1":
- version: 3.1.3
- resolution: "exponential-backoff@npm:3.1.3"
- checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267
- languageName: node
- linkType: hard
-
-"exports-loader@npm:0.6.3":
- version: 0.6.3
- resolution: "exports-loader@npm:0.6.3"
- dependencies:
- loader-utils: "npm:0.2.x"
- source-map: "npm:0.1.x"
- checksum: 10c0/b793b51b9845e57b207533a02544cf25a35dde1aa71d69f25fa7607294768a3190e52155abf405bcd4a270b524063405ec548c7410e3028d1200c8d1b4d1c338
- languageName: node
- linkType: hard
-
-"ext@npm:^1.1.2":
- version: 1.6.0
- resolution: "ext@npm:1.6.0"
- dependencies:
- type: "npm:^2.5.0"
- checksum: 10c0/d6ff29ca86fbe4e69743d10702ece124e0239faa435a6c3b2833282787b9eace2c8cbf5d8439d0c85312255d5472d251bf3cd4c4d1b9de8f8a8090e6b43db948
- languageName: node
- linkType: hard
-
-"fast-deep-equal@npm:^1.0.0":
- version: 1.1.0
- resolution: "fast-deep-equal@npm:1.1.0"
- checksum: 10c0/2cdcb17ca3c28ea199863de4ff0f4de14722c63bb19d716c1bbb4a661479413a0cbfb27e8596d34204e4525f0de11ff7c8ac6a27673c961bd0f37d0e48f9c743
- languageName: node
- linkType: hard
-
-"fast-deep-equal@npm:^3.1.1":
- version: 3.1.3
- resolution: "fast-deep-equal@npm:3.1.3"
- checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
- languageName: node
- linkType: hard
-
-"fast-json-stable-stringify@npm:^2.0.0":
- version: 2.1.0
- resolution: "fast-json-stable-stringify@npm:2.1.0"
- checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
- languageName: node
- linkType: hard
-
-"fastparse@npm:^1.1.2":
- version: 1.1.2
- resolution: "fastparse@npm:1.1.2"
- checksum: 10c0/c08d6e7ef10c0928426c1963dd4593e2baaf44d223ab1e5ba5d7b30470144b3a4ecb3605958b73754cea3f857ecef00b67c885f07ca2c312b38b67d9d88b84b5
- languageName: node
- linkType: hard
-
-"fdir@npm:^6.5.0":
- version: 6.5.0
- resolution: "fdir@npm:6.5.0"
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
- checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f
- languageName: node
- linkType: hard
-
-"file-loader@npm:^0.11.2":
- version: 0.11.2
- resolution: "file-loader@npm:0.11.2"
- dependencies:
- loader-utils: "npm:^1.0.2"
- checksum: 10c0/55ce4c44ee84926cd8f913ba2e55f55c21425f47bf64b130d46d7d7f1cfb32571c997f726c46b6446b7364f062f90d9a4587792b6114afc4b55460b26915c055
- languageName: node
- linkType: hard
-
-"find-cache-dir@npm:^1.0.0":
- version: 1.0.0
- resolution: "find-cache-dir@npm:1.0.0"
- dependencies:
- commondir: "npm:^1.0.1"
- make-dir: "npm:^1.0.0"
- pkg-dir: "npm:^2.0.0"
- checksum: 10c0/264b706771f30b39385cf921a5576c80ef95cb4c8ef2df8761b8be62326a1537ea63feecf0deac52cd84d6937b312a8d9554b4012a092937ade43a165cd5b6f9
- languageName: node
- linkType: hard
-
-"find-up@npm:^2.0.0, find-up@npm:^2.1.0":
- version: 2.1.0
- resolution: "find-up@npm:2.1.0"
- dependencies:
- locate-path: "npm:^2.0.0"
- checksum: 10c0/c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840
- languageName: node
- linkType: hard
-
-"flatten@npm:^1.0.2":
- version: 1.0.3
- resolution: "flatten@npm:1.0.3"
- checksum: 10c0/9f9b1f3dcd05be057bb83ec27f2513da5306e7bfc0cf8bd839ab423eb1b0f99683a25c97b48fafd5959819159659ce9f1397623a46f89a8577ba095fcf5fb753
- languageName: node
- linkType: hard
-
-"flush-write-stream@npm:^1.0.0":
- version: 1.1.1
- resolution: "flush-write-stream@npm:1.1.1"
- dependencies:
- inherits: "npm:^2.0.3"
- readable-stream: "npm:^2.3.6"
- checksum: 10c0/2cd4f65b728d5f388197a03dafabc6a5e4f0c2ed1a2d912e288f7aa1c2996dd90875e55b50cf32c78dca55ad2e2dfae5d3db09b223838388033d87cf5920dd87
- languageName: node
- linkType: hard
-
-"from2@npm:^2.1.0":
- version: 2.3.0
- resolution: "from2@npm:2.3.0"
- dependencies:
- inherits: "npm:^2.0.1"
- readable-stream: "npm:^2.0.0"
- checksum: 10c0/f87f7a2e4513244d551454a7f8324ef1f7837864a8701c536417286ec19ff4915606b1dfa8909a21b7591ebd8440ffde3642f7c303690b9a4d7c832d62248aa1
- languageName: node
- linkType: hard
-
-"fs-minipass@npm:^3.0.0":
- version: 3.0.3
- resolution: "fs-minipass@npm:3.0.3"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
- languageName: node
- linkType: hard
-
-"fs-write-stream-atomic@npm:^1.0.8":
- version: 1.0.10
- resolution: "fs-write-stream-atomic@npm:1.0.10"
- dependencies:
- graceful-fs: "npm:^4.1.2"
- iferr: "npm:^0.1.5"
- imurmurhash: "npm:^0.1.4"
- readable-stream: "npm:1 || 2"
- checksum: 10c0/293b2b4ed346d35a28f8637a20cb2aef31be86503da501c42c2eda8fefed328bac16ce0e5daa7019f9329d73930c58031eaea2ce0c70f1680943fbfb7cff808b
- languageName: node
- linkType: hard
-
-"fs.realpath@npm:^1.0.0":
- version: 1.0.0
- resolution: "fs.realpath@npm:1.0.0"
- checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948
- languageName: node
- linkType: hard
-
-"function-bind@npm:^1.1.1":
- version: 1.1.1
- resolution: "function-bind@npm:1.1.1"
- checksum: 10c0/60b74b2407e1942e1ed7f8c284f8ef714d0689dcfce5319985a5b7da3fc727f40b4a59ec72dc55aa83365ad7b8fa4fac3a30d93c850a2b452f29ae03dbc10a1e
- languageName: node
- linkType: hard
-
-"get-caller-file@npm:^1.0.1":
- version: 1.0.3
- resolution: "get-caller-file@npm:1.0.3"
- checksum: 10c0/763dcee2de8ff60ae7e13a4bad8306205a2fbe108e555686344ddd9ef211b8bebfe459d3a739669257014c59e7cc1e7a44003c21af805c1214673e6a45f06c51
- languageName: node
- linkType: hard
-
-"get-stream@npm:^3.0.0":
- version: 3.0.0
- resolution: "get-stream@npm:3.0.0"
- checksum: 10c0/003f5f3b8870da59c6aafdf6ed7e7b07b48c2f8629cd461bd3900726548b6b8cfa2e14d6b7814fbb08f07a42f4f738407fa70b989928b2783a76b278505bba22
- languageName: node
- linkType: hard
-
-"glob-to-regexp@npm:^0.4.1":
- version: 0.4.1
- resolution: "glob-to-regexp@npm:0.4.1"
- checksum: 10c0/0486925072d7a916f052842772b61c3e86247f0a80cc0deb9b5a3e8a1a9faad5b04fb6f58986a09f34d3e96cd2a22a24b7e9882fb1cf904c31e9a310de96c429
- languageName: node
- linkType: hard
-
-"glob@npm:^13.0.0":
- version: 13.0.6
- resolution: "glob@npm:13.0.6"
- dependencies:
- minimatch: "npm:^10.2.2"
- minipass: "npm:^7.1.3"
- path-scurry: "npm:^2.0.2"
- checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a
- languageName: node
- linkType: hard
-
-"glob@npm:^7.1.2, glob@npm:^7.1.3":
- version: 7.2.0
- resolution: "glob@npm:7.2.0"
- dependencies:
- fs.realpath: "npm:^1.0.0"
- inflight: "npm:^1.0.4"
- inherits: "npm:2"
- minimatch: "npm:^3.0.4"
- once: "npm:^1.3.0"
- path-is-absolute: "npm:^1.0.0"
- checksum: 10c0/478b40e38be5a3d514e64950e1e07e0ac120585add6a37c98d0ed24d72d9127d734d2a125786073c8deb687096e84ae82b641c441a869ada3a9cc91b68978632
- languageName: node
- linkType: hard
-
-"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2":
- version: 4.2.9
- resolution: "graceful-fs@npm:4.2.9"
- checksum: 10c0/2a66760ce6677ca18a24a1ef15d440cfd970086446af1e78c9e9de083c48122d8bd9c3fdc37f8f80f34aae833fa0d9dd52725e75a1c3f433ddd34eece39e7376
- languageName: node
- linkType: hard
-
-"graceful-fs@npm:^4.2.6":
- version: 4.2.11
- resolution: "graceful-fs@npm:4.2.11"
- checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
- languageName: node
- linkType: hard
-
-"gsap@npm:3.9.1":
- version: 3.9.1
- resolution: "gsap@npm:3.9.1"
- checksum: 10c0/0be73e9e46972e9456b8af16f9f4eb666cef81a1a56b73f0d1a267ee121d95356cff3d068001b182d71bf20bb1efe3d751161d96ca49d54294d89e56f9f71735
- languageName: node
- linkType: hard
-
-"has-ansi@npm:^2.0.0":
- version: 2.0.0
- resolution: "has-ansi@npm:2.0.0"
- dependencies:
- ansi-regex: "npm:^2.0.0"
- checksum: 10c0/f54e4887b9f8f3c4bfefd649c48825b3c093987c92c27880ee9898539e6f01aed261e82e73153c3f920fde0db5bf6ebd58deb498ed1debabcb4bc40113ccdf05
- languageName: node
- linkType: hard
-
-"has-flag@npm:^1.0.0":
- version: 1.0.0
- resolution: "has-flag@npm:1.0.0"
- checksum: 10c0/d0ad4bebbbc005edccfa1e2c0600c89375be5663d23f49a129e0f817187405748b0b515abfc5b3c209c92692e39bb0481c83c0ee4df69433d6ffd0242183100b
- languageName: node
- linkType: hard
-
-"has-flag@npm:^2.0.0":
- version: 2.0.0
- resolution: "has-flag@npm:2.0.0"
- checksum: 10c0/5e1f136c7f801c2719048bedfabcf834a1ed46276cd4c98c6fcddb89a482f5d6a16df0771a38805cfc2d9010b4de157909e1a71b708e1d339b6e311041bde9b4
- languageName: node
- linkType: hard
-
-"has-flag@npm:^3.0.0":
- version: 3.0.0
- resolution: "has-flag@npm:3.0.0"
- checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473
- languageName: node
- linkType: hard
-
-"has@npm:^1.0.1, has@npm:^1.0.3":
- version: 1.0.3
- resolution: "has@npm:1.0.3"
- dependencies:
- function-bind: "npm:^1.1.1"
- checksum: 10c0/e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b
- languageName: node
- linkType: hard
-
-"hash-base@npm:^3.0.0":
- version: 3.1.0
- resolution: "hash-base@npm:3.1.0"
- dependencies:
- inherits: "npm:^2.0.4"
- readable-stream: "npm:^3.6.0"
- safe-buffer: "npm:^5.2.0"
- checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0
- languageName: node
- linkType: hard
-
-"hash.js@npm:^1.0.0, hash.js@npm:^1.0.3":
- version: 1.1.7
- resolution: "hash.js@npm:1.1.7"
- dependencies:
- inherits: "npm:^2.0.3"
- minimalistic-assert: "npm:^1.0.1"
- checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4
- languageName: node
- linkType: hard
-
-"highlight.js@npm:~9.18.2":
- version: 9.18.5
- resolution: "highlight.js@npm:9.18.5"
- checksum: 10c0/bad99a5bfd31825769f76718e54372d291b9c3ad197df3c3102066c5baa08ee611f6a2aa6ffdc7e1cd24c7d4025b0b6db965837a14cbc4d4d06f2ad2fbf07a3d
- languageName: node
- linkType: hard
-
-"hmac-drbg@npm:^1.0.1":
- version: 1.0.1
- resolution: "hmac-drbg@npm:1.0.1"
- dependencies:
- hash.js: "npm:^1.0.3"
- minimalistic-assert: "npm:^1.0.0"
- minimalistic-crypto-utils: "npm:^1.0.1"
- checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d
- languageName: node
- linkType: hard
-
-"hosted-git-info@npm:^2.1.4":
- version: 2.8.9
- resolution: "hosted-git-info@npm:2.8.9"
- checksum: 10c0/317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70
- languageName: node
- linkType: hard
-
-"html-comment-regex@npm:^1.1.0":
- version: 1.1.2
- resolution: "html-comment-regex@npm:1.1.2"
- checksum: 10c0/c6fe47e7efbb2e853217854cdf352e53a6d414f87a6029456010250179f9ac2c77ef657dd4e26f4d3930f8def0e2fad015c233a3181a195a59fb4eeda6d333f9
- languageName: node
- linkType: hard
-
-"http-cache-semantics@npm:^4.1.1":
- version: 4.2.0
- resolution: "http-cache-semantics@npm:4.2.0"
- checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37
- languageName: node
- linkType: hard
-
-"http-proxy-agent@npm:^7.0.0":
- version: 7.0.2
- resolution: "http-proxy-agent@npm:7.0.2"
- dependencies:
- agent-base: "npm:^7.1.0"
- debug: "npm:^4.3.4"
- checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
- languageName: node
- linkType: hard
-
-"https-browserify@npm:^1.0.0":
- version: 1.0.0
- resolution: "https-browserify@npm:1.0.0"
- checksum: 10c0/e17b6943bc24ea9b9a7da5714645d808670af75a425f29baffc3284962626efdc1eb3aa9bbffaa6e64028a6ad98af5b09fabcb454a8f918fb686abfdc9e9b8ae
- languageName: node
- linkType: hard
-
-"https-proxy-agent@npm:^7.0.1":
- version: 7.0.6
- resolution: "https-proxy-agent@npm:7.0.6"
- dependencies:
- agent-base: "npm:^7.1.2"
- debug: "npm:4"
- checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:^0.4.4":
- version: 0.4.24
- resolution: "iconv-lite@npm:0.4.24"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3"
- checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4
- languageName: node
- linkType: hard
-
-"iconv-lite@npm:^0.7.2":
- version: 0.7.2
- resolution: "iconv-lite@npm:0.7.2"
- dependencies:
- safer-buffer: "npm:>= 2.1.2 < 3.0.0"
- checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722
- languageName: node
- linkType: hard
-
-"icss-replace-symbols@npm:^1.1.0":
- version: 1.1.0
- resolution: "icss-replace-symbols@npm:1.1.0"
- checksum: 10c0/aaa5b67f82781fccc77bf6df14eaa9177ce3944462ef82b2b9e3b9f17d8fcd90f8851ffd5e6e249ebc5c464bfda07c2eccce2d122274c51c9d5b359b087f7049
- languageName: node
- linkType: hard
-
-"icss-utils@npm:^2.1.0":
- version: 2.1.0
- resolution: "icss-utils@npm:2.1.0"
- dependencies:
- postcss: "npm:^6.0.1"
- checksum: 10c0/69d3b8fdea58fbf5c26d8dc2d1b7d8ded34fd8fb0800ed60b390e0ae5f596e77b155c587fb62e7642d1064d2d72fc672676df58ef935eba7303d79467e43edbf
- languageName: node
- linkType: hard
-
-"ieee754@npm:^1.1.4":
- version: 1.2.1
- resolution: "ieee754@npm:1.2.1"
- checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
- languageName: node
- linkType: hard
-
-"iferr@npm:^0.1.5":
- version: 0.1.5
- resolution: "iferr@npm:0.1.5"
- checksum: 10c0/e0669b1757d0501b43a158321945d1cc1fe56f28a972df2f88a5818f05c8853c7669ba5d6cfbbf9a1a312850699de6e528626df108d559005df7e15d16ee334c
- languageName: node
- linkType: hard
-
-"image-size@npm:~0.5.0":
- version: 0.5.5
- resolution: "image-size@npm:0.5.5"
- bin:
- image-size: bin/image-size.js
- checksum: 10c0/655204163af06732f483a9fe7cce9dff4a29b7b2e88f5c957a5852e8143fa750f5e54b1955a2ca83de99c5220dbd680002d0d4e09140b01433520f4d5a0b1f4c
- languageName: node
- linkType: hard
-
-"imports-loader@npm:^0.6.3":
- version: 0.6.5
- resolution: "imports-loader@npm:0.6.5"
- dependencies:
- loader-utils: "npm:0.2.x"
- source-map: "npm:0.1.x"
- checksum: 10c0/177b4a74af7ee4ae058ee3e49c8590ef3f0dfab7ca9e87ef762bf7c7a502235d32108dc4e1641c6fc869581815caff050282693aa47bf3479cade6fd6ff87a5f
- languageName: node
- linkType: hard
-
-"imurmurhash@npm:^0.1.4":
- version: 0.1.4
- resolution: "imurmurhash@npm:0.1.4"
- checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
- languageName: node
- linkType: hard
-
-"indexes-of@npm:^1.0.1":
- version: 1.0.1
- resolution: "indexes-of@npm:1.0.1"
- checksum: 10c0/1ea1d2d00173fa38f728acfa00303657e1115361481e52f6cbae47c5d603219006c9357abf6bc323f1fb0fbe937e363bbb19e5c66c12578eea6ec6b7e892bdba
- languageName: node
- linkType: hard
-
-"inflight@npm:^1.0.4":
- version: 1.0.6
- resolution: "inflight@npm:1.0.6"
- dependencies:
- once: "npm:^1.3.0"
- wrappy: "npm:1"
- checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2
- languageName: node
- linkType: hard
-
-"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3":
- version: 2.0.4
- resolution: "inherits@npm:2.0.4"
- checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2
- languageName: node
- linkType: hard
-
-"inherits@npm:2.0.1":
- version: 2.0.1
- resolution: "inherits@npm:2.0.1"
- checksum: 10c0/bfc7b37c21a2cddb272adc65b053b1716612d408bb2c9a4e5c32679dc2b08032aadd67880c405be3dff060a62e45b353fc3d9fa79a3067ad7a3deb6a283cc5c6
- languageName: node
- linkType: hard
-
-"inherits@npm:2.0.3":
- version: 2.0.3
- resolution: "inherits@npm:2.0.3"
- checksum: 10c0/6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7
- languageName: node
- linkType: hard
-
-"interpret@npm:^1.0.0":
- version: 1.4.0
- resolution: "interpret@npm:1.4.0"
- checksum: 10c0/08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450
- languageName: node
- linkType: hard
-
-"invert-kv@npm:^1.0.0":
- version: 1.0.0
- resolution: "invert-kv@npm:1.0.0"
- checksum: 10c0/9ccef12ada8494c56175cc0380b4cea18b6c0a368436f324a30e43a332db90bdfb83cd3a7987b71df359cdf931ce45b7daf35b677da56658565d61068e4bc20b
- languageName: node
- linkType: hard
-
-"ip-address@npm:^10.0.1":
- version: 10.1.0
- resolution: "ip-address@npm:10.1.0"
- checksum: 10c0/0103516cfa93f6433b3bd7333fa876eb21263912329bfa47010af5e16934eeeff86f3d2ae700a3744a137839ddfad62b900c7a445607884a49b5d1e32a3d7566
- languageName: node
- linkType: hard
-
-"is-absolute-url@npm:^2.0.0":
- version: 2.1.0
- resolution: "is-absolute-url@npm:2.1.0"
- checksum: 10c0/2c324c3118752d82c18afadffbea14d35224e76f37a2ee80e05b209386c46d19bef77b58ede41f7b3be552cde16c6cdb0d884807175a6eb40e8c61281dc67c2f
- languageName: node
- linkType: hard
-
-"is-arrayish@npm:^0.2.1":
- version: 0.2.1
- resolution: "is-arrayish@npm:0.2.1"
- checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729
- languageName: node
- linkType: hard
-
-"is-core-module@npm:^2.8.1":
- version: 2.8.1
- resolution: "is-core-module@npm:2.8.1"
- dependencies:
- has: "npm:^1.0.3"
- checksum: 10c0/f1139970deb2ec159c54be154d35cd17d71b9b56c60221ff7c8c328ca7efe20b6d676cef43d08c21966e162bfd5068dcd0ce23e64c77b76a19824563ecd82e0e
- languageName: node
- linkType: hard
-
-"is-fullwidth-code-point@npm:^1.0.0":
- version: 1.0.0
- resolution: "is-fullwidth-code-point@npm:1.0.0"
- dependencies:
- number-is-nan: "npm:^1.0.0"
- checksum: 10c0/12acfcf16142f2d431bf6af25d68569d3198e81b9799b4ae41058247aafcc666b0127d64384ea28e67a746372611fcbe9b802f69175287aba466da3eddd5ba0f
- languageName: node
- linkType: hard
-
-"is-fullwidth-code-point@npm:^2.0.0":
- version: 2.0.0
- resolution: "is-fullwidth-code-point@npm:2.0.0"
- checksum: 10c0/e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9
- languageName: node
- linkType: hard
-
-"is-plain-obj@npm:^1.0.0":
- version: 1.1.0
- resolution: "is-plain-obj@npm:1.1.0"
- checksum: 10c0/daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c
- languageName: node
- linkType: hard
-
-"is-stream@npm:^1.1.0":
- version: 1.1.0
- resolution: "is-stream@npm:1.1.0"
- checksum: 10c0/b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002
- languageName: node
- linkType: hard
-
-"is-svg@npm:^2.0.0":
- version: 2.1.0
- resolution: "is-svg@npm:2.1.0"
- dependencies:
- html-comment-regex: "npm:^1.1.0"
- checksum: 10c0/b2709e619c6159dabd27731c7ff69b73319bc8694b1dd27dc886026a6e1f895f04c1cc9903ca90310d3766a5f2d01a959735ae9a69be71f3cc9545f8206e1bb9
- languageName: node
- linkType: hard
-
-"is-what@npm:^3.14.1":
- version: 3.14.1
- resolution: "is-what@npm:3.14.1"
- checksum: 10c0/4b770b85454c877b6929a84fd47c318e1f8c2ff70fd72fd625bc3fde8e0c18a6e57345b6e7aa1ee9fbd1c608d27cfe885df473036c5c2e40cd2187250804a2c7
- languageName: node
- linkType: hard
-
-"isarray@npm:^1.0.0, isarray@npm:~1.0.0":
- version: 1.0.0
- resolution: "isarray@npm:1.0.0"
- checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d
- languageName: node
- linkType: hard
-
-"isexe@npm:^2.0.0":
- version: 2.0.0
- resolution: "isexe@npm:2.0.0"
- checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
- languageName: node
- linkType: hard
-
-"isexe@npm:^4.0.0":
- version: 4.0.0
- resolution: "isexe@npm:4.0.0"
- checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce
- languageName: node
- linkType: hard
-
-"jquery-ui@npm:>=1.10.4":
- version: 1.13.1
- resolution: "jquery-ui@npm:1.13.1"
- dependencies:
- jquery: "npm:>=1.8.0 <4.0.0"
- checksum: 10c0/8e3935b47eaab3a29a8ec3fb93287fae23ffebc2600d6537eda4ab246a19b2b31d7663c0baefbc3af339fa434df80037bb2c7945af41c00f732c00812edde3f3
- languageName: node
- linkType: hard
-
-"jquery@npm:>=1.11.0, jquery@npm:>=1.7, jquery@npm:>=1.8.0 <4.0.0, jquery@npm:^3.5.1":
- version: 3.6.0
- resolution: "jquery@npm:3.6.0"
- checksum: 10c0/45a63f8376a8918087c0277b2394dd382fcacff765c41ccbb5009a9336f8c971bf41c6a0519062edc1dff6333d96959c3a3ec55c95eb6c94d5372253d6cbf82f
- languageName: node
- linkType: hard
-
-"js-base64@npm:^2.1.9":
- version: 2.6.4
- resolution: "js-base64@npm:2.6.4"
- checksum: 10c0/95d93c4eca0bbe0f2d5ffe8682d9acd23051e5c0ad71873ff5a48dd46a5f19025de9f7b36e63fa3f02f342ae4a8ca4c56e7b590d7300ebb6639ce09675e0fd02
- languageName: node
- linkType: hard
-
-"js-cookie@npm:3.0.1":
- version: 3.0.1
- resolution: "js-cookie@npm:3.0.1"
- checksum: 10c0/a7dab91286c49610fb198bcc0d78fbafe9be869cf3cea6f7eaea515abdfdc9d347982fe22316e34666b479a0701119482d46faa3a350a3a3404eb954405edf72
- languageName: node
- linkType: hard
-
-"js-md5@npm:^0.7.3":
- version: 0.7.3
- resolution: "js-md5@npm:0.7.3"
- checksum: 10c0/3e7048590c40edb0b8fb290e13a81d6eebbd682c70c520c4853820ae8fe3a3c5e375cfa0ca9a731aa8d8e0ba82cd8f922fea34c737caf72a7f9ab819bb8382a7
- languageName: node
- linkType: hard
-
-"js-tokens@npm:^3.0.2":
- version: 3.0.2
- resolution: "js-tokens@npm:3.0.2"
- checksum: 10c0/e3c3ee4d12643d90197628eb022a2884a15f08ea7dcac1ce97fdeee43031fbfc7ede674f2cdbbb582dcd4c94388b22e52d56c6cbeb2ac7d1b57c2f33c405e2ba
- languageName: node
- linkType: hard
-
-"js-yaml@npm:~3.7.0":
- version: 3.7.0
- resolution: "js-yaml@npm:3.7.0"
- dependencies:
- argparse: "npm:^1.0.7"
- esprima: "npm:^2.6.0"
- bin:
- js-yaml: bin/js-yaml.js
- checksum: 10c0/e236852d4439c7750c810f217ca80631844cfb0e4ab4993349c3e612ee273256d9895e1bb06b3990a3cc42fa1105ffcaa55a6b711f25901c0d803287bdcf52e1
- languageName: node
- linkType: hard
-
-"json-loader@npm:^0.5.4":
- version: 0.5.7
- resolution: "json-loader@npm:0.5.7"
- checksum: 10c0/b155b81f644693b5418e595c127c552c34373f749d2d125df24cfe753de6b3b0af88dda5d58e7b65940ed03ec46c19fc3d09f53b932b45c9ae3ca1fb55e44a15
- languageName: node
- linkType: hard
-
-"json-schema-traverse@npm:^0.3.0":
- version: 0.3.1
- resolution: "json-schema-traverse@npm:0.3.1"
- checksum: 10c0/462316de759d3dd9278959de17861e8d214c3722e1f0bf3c510daac990009bc2b0e11e89f9b299d765cd52569db74c8fa1a371a2b08c514a07998fb2f10eb57e
- languageName: node
- linkType: hard
-
-"json-schema-traverse@npm:^0.4.1":
- version: 0.4.1
- resolution: "json-schema-traverse@npm:0.4.1"
- checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
- languageName: node
- linkType: hard
-
-"json5@npm:^0.5.0, json5@npm:^0.5.1":
- version: 0.5.1
- resolution: "json5@npm:0.5.1"
- bin:
- json5: lib/cli.js
- checksum: 10c0/aca0ab7ccf1883d3fc2ecc16219bc389716a773f774552817deaadb549acc0bb502e317a81946fc0a48f9eb6e0822cf1dc5a097009203f2c94de84c8db02a1f3
- languageName: node
- linkType: hard
-
-"json5@npm:^1.0.1":
- version: 1.0.1
- resolution: "json5@npm:1.0.1"
- dependencies:
- minimist: "npm:^1.2.0"
- bin:
- json5: lib/cli.js
- checksum: 10c0/7f75dd797151680a4e14c4224c1343b32a43272aa6e6333ddec2b0822df4ea116971689b251879a1248592da24f7929902c13f83d7390c3f3d44f18e8e9719f5
- languageName: node
- linkType: hard
-
-"jstimezonedetect@npm:^1.0.6":
- version: 1.0.7
- resolution: "jstimezonedetect@npm:1.0.7"
- checksum: 10c0/8ea4eb123e007bf585cd5ed82ef8033bdeb5dcd4f4ffdec4cd9c69dbb1c7497370db931f024721edcab659eabe89c8f9ef1f882e84369e70aec1630584e4f019
- languageName: node
- linkType: hard
-
-"knockout.validation@npm:^2.0.2":
- version: 2.0.4
- resolution: "knockout.validation@npm:2.0.4"
- peerDependencies:
- knockout: ">=2.3.0"
- checksum: 10c0/fac8708108303b307b37b4382c4206004bdf216b85226835e868d731e872981dcd8c222ec91cc6028874e00ae43f29c1297bb60a87b17f06e5e72525c150763b
- languageName: node
- linkType: hard
-
-"knockout@npm:~3.4.2":
- version: 3.4.2
- resolution: "knockout@npm:3.4.2"
- checksum: 10c0/dd2f4973f72f54eeef2fd4306957a7158910c6046d636432ac0decae796be66925bf7d227b1f0b5c1fe3da479d7fbe15f6d518e4d5cfd812dd7bb8511907a465
- languageName: node
- linkType: hard
-
-"lcid@npm:^1.0.0":
- version: 1.0.0
- resolution: "lcid@npm:1.0.0"
- dependencies:
- invert-kv: "npm:^1.0.0"
- checksum: 10c0/87fb32196c3c80458778f34f71c042e114f3134a3c86c0d60ee9c94f0750e467d7ca0c005a5224ffd9d49a6e449b5e5c31e1544f1827765a0ba8747298f5980e
- languageName: node
- linkType: hard
-
-"less@npm:^4.1.2":
- version: 4.1.2
- resolution: "less@npm:4.1.2"
- dependencies:
- copy-anything: "npm:^2.0.1"
- errno: "npm:^0.1.1"
- graceful-fs: "npm:^4.1.2"
- image-size: "npm:~0.5.0"
- make-dir: "npm:^2.1.0"
- mime: "npm:^1.4.1"
- needle: "npm:^2.5.2"
- parse-node-version: "npm:^1.0.1"
- source-map: "npm:~0.6.0"
- tslib: "npm:^2.3.0"
- dependenciesMeta:
- errno:
- optional: true
- graceful-fs:
- optional: true
- image-size:
- optional: true
- make-dir:
- optional: true
- mime:
- optional: true
- needle:
- optional: true
- source-map:
- optional: true
- bin:
- lessc: bin/lessc
- checksum: 10c0/fa5ea22f81ce12d127881742d7a2b6666727751214c6f014a7793ebb7e406a153a46bb3c77c86adf68e1b79bc7477a156f84b01dfff56c532591fbb094194b5a
- languageName: node
- linkType: hard
-
-"linkifyjs@npm:^3.0.5":
- version: 3.0.5
- resolution: "linkifyjs@npm:3.0.5"
- checksum: 10c0/a5d6565e457fabcae73400923f9999cf0651108378e61bb112b0d651d0d260450d22107d31127fcc38cfe9c3604bb59dfcc25db388a1eeabc09d53a5177da7fc
- languageName: node
- linkType: hard
-
-"load-json-file@npm:^2.0.0":
- version: 2.0.0
- resolution: "load-json-file@npm:2.0.0"
- dependencies:
- graceful-fs: "npm:^4.1.2"
- parse-json: "npm:^2.2.0"
- pify: "npm:^2.0.0"
- strip-bom: "npm:^3.0.0"
- checksum: 10c0/15cf1259361325fadfc54cd4ecc5d6729103c8873492001ba5473fb1ef753000f680c887db6c86fec69a4ede009efeb8c0c0c77b2a31bc54d2793767e25577c9
- languageName: node
- linkType: hard
-
-"loader-runner@npm:^2.3.0":
- version: 2.4.0
- resolution: "loader-runner@npm:2.4.0"
- checksum: 10c0/1f723bd8318453c2d073d7befbf891ba6d2a02f22622688bf7d22e7ba527a0f9476c7fdfedc6bfa2b55c0389d9f406f3a5239ed1b33c9088d77cfed085086a1e
- languageName: node
- linkType: hard
-
-"loader-utils@npm:0.2.x":
- version: 0.2.17
- resolution: "loader-utils@npm:0.2.17"
- dependencies:
- big.js: "npm:^3.1.3"
- emojis-list: "npm:^2.0.0"
- json5: "npm:^0.5.0"
- object-assign: "npm:^4.0.1"
- checksum: 10c0/d6b65a0d460d2c8621f72e0471127895f4a25ea3a5d2caabf0710c8e58a904af5876834c6ad89d2fbab35e74c6e7f2f4f8137559e6e4e84b74957f4592bcab0b
- languageName: node
- linkType: hard
-
-"loader-utils@npm:^1.0.2, loader-utils@npm:^1.1.0":
- version: 1.4.0
- resolution: "loader-utils@npm:1.4.0"
- dependencies:
- big.js: "npm:^5.2.2"
- emojis-list: "npm:^3.0.0"
- json5: "npm:^1.0.1"
- checksum: 10c0/b3f383612c23c0adf535d61709fb3eaf864afa54dae45608e3831156b89b4b05a0a4ddc6db7d742071babe872750ba3f4f9ce89326d94f6e096dbed978fa424e
- languageName: node
- linkType: hard
-
-"loaders.css@npm:^0.1.2":
- version: 0.1.2
- resolution: "loaders.css@npm:0.1.2"
- checksum: 10c0/962b49327a906fa3d9dd4551ef46c6ba8e0f56fb700b1ab20843169a0dc90b1992a08fa55ddaf42feb5700833ecf8b389cb6f1b8c20dd2594037b1d74a5e9e50
- languageName: node
- linkType: hard
-
-"locate-path@npm:^2.0.0":
- version: 2.0.0
- resolution: "locate-path@npm:2.0.0"
- dependencies:
- p-locate: "npm:^2.0.0"
- path-exists: "npm:^3.0.0"
- checksum: 10c0/24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133
- languageName: node
- linkType: hard
-
-"lodash.camelcase@npm:^4.3.0":
- version: 4.3.0
- resolution: "lodash.camelcase@npm:4.3.0"
- checksum: 10c0/fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432
- languageName: node
- linkType: hard
-
-"lodash.find@npm:^4.3.0":
- version: 4.6.0
- resolution: "lodash.find@npm:4.6.0"
- checksum: 10c0/0238f3abc0b87aa441820ab0ab31a81156e1809a66285f454fbea18cbdf4d16572d504dd9e96c22df8a36b81d0272bca9205d09d217d61f9b53fa3358023377f
- languageName: node
- linkType: hard
-
-"lodash.get@npm:^4.2.1":
- version: 4.4.2
- resolution: "lodash.get@npm:4.4.2"
- checksum: 10c0/48f40d471a1654397ed41685495acb31498d5ed696185ac8973daef424a749ca0c7871bf7b665d5c14f5cc479394479e0307e781f61d5573831769593411be6e
- languageName: node
- linkType: hard
-
-"lodash.has@npm:^4.5.2":
- version: 4.5.2
- resolution: "lodash.has@npm:4.5.2"
- checksum: 10c0/3ffa9e549f321996a5fdf6204494c035ff550b2df703f936a448c553131bbb55492b4e7995bb13500648b50b268ed8afc974a7a0c0a43744d28d61cc95cb1ffe
- languageName: node
- linkType: hard
-
-"lodash.includes@npm:^4.3.0":
- version: 4.3.0
- resolution: "lodash.includes@npm:4.3.0"
- checksum: 10c0/7ca498b9b75bf602d04e48c0adb842dfc7d90f77bcb2a91a2b2be34a723ad24bc1c8b3683ec6b2552a90f216c723cdea530ddb11a3320e08fa38265703978f4b
- languageName: node
- linkType: hard
-
-"lodash.memoize@npm:^4.1.2":
- version: 4.1.2
- resolution: "lodash.memoize@npm:4.1.2"
- checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8
- languageName: node
- linkType: hard
-
-"lodash.set@npm:^4.3.2":
- version: 4.3.2
- resolution: "lodash.set@npm:4.3.2"
- checksum: 10c0/c641d31905e51df43170dce8a1d11a1cff11356e2e2e75fe2615995408e9687d58c3e1d64c3c284c2df2bc519f79a98af737d2944d382ff82ffd244ff6075c29
- languageName: node
- linkType: hard
-
-"lodash.uniq@npm:^4.5.0":
- version: 4.5.0
- resolution: "lodash.uniq@npm:4.5.0"
- checksum: 10c0/262d400bb0952f112162a320cc4a75dea4f66078b9e7e3075ffbc9c6aa30b3e9df3cf20e7da7d566105e1ccf7804e4fbd7d804eee0b53de05d83f16ffbf41c5e
- languageName: node
- linkType: hard
-
-"lodash@npm:^4.17.14":
- version: 4.17.21
- resolution: "lodash@npm:4.17.21"
- checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1":
- version: 11.2.7
- resolution: "lru-cache@npm:11.2.7"
- checksum: 10c0/549cdb59488baa617135fc12159cafb1a97f91079f35093bb3bcad72e849fc64ace636d244212c181dfdf1a99bbfa90757ff303f98561958ee4d0f885d9bd5f7
- languageName: node
- linkType: hard
-
-"lru-cache@npm:^4.0.1, lru-cache@npm:^4.1.1":
- version: 4.1.5
- resolution: "lru-cache@npm:4.1.5"
- dependencies:
- pseudomap: "npm:^1.0.2"
- yallist: "npm:^2.1.2"
- checksum: 10c0/1ca5306814e5add9ec63556d6fd9b24a4ecdeaef8e9cea52cbf30301e6b88c8d8ddc7cab45b59b56eb763e6c45af911585dc89925a074ab65e1502e3fe8103cf
- languageName: node
- linkType: hard
-
-"make-dir@npm:^1.0.0":
- version: 1.3.0
- resolution: "make-dir@npm:1.3.0"
- dependencies:
- pify: "npm:^3.0.0"
- checksum: 10c0/5eb94f47d7ef41d89d1b8eef6539b8950d5bd99eeba093a942bfd327faa37d2d62227526b88b73633243a2ec7972d21eb0f4e5d62ae4e02a79e389f4a7bb3022
- languageName: node
- linkType: hard
-
-"make-dir@npm:^2.1.0":
- version: 2.1.0
- resolution: "make-dir@npm:2.1.0"
- dependencies:
- pify: "npm:^4.0.1"
- semver: "npm:^5.6.0"
- checksum: 10c0/ada869944d866229819735bee5548944caef560d7a8536ecbc6536edca28c72add47cc4f6fc39c54fb25d06b58da1f8994cf7d9df7dadea047064749efc085d8
- languageName: node
- linkType: hard
-
-"make-fetch-happen@npm:^15.0.0":
- version: 15.0.5
- resolution: "make-fetch-happen@npm:15.0.5"
- dependencies:
- "@gar/promise-retry": "npm:^1.0.0"
- "@npmcli/agent": "npm:^4.0.0"
- "@npmcli/redact": "npm:^4.0.0"
- cacache: "npm:^20.0.1"
- http-cache-semantics: "npm:^4.1.1"
- minipass: "npm:^7.0.2"
- minipass-fetch: "npm:^5.0.0"
- minipass-flush: "npm:^1.0.5"
- minipass-pipeline: "npm:^1.2.4"
- negotiator: "npm:^1.0.0"
- proc-log: "npm:^6.0.0"
- ssri: "npm:^13.0.0"
- checksum: 10c0/527580eb5e5476e6ad07a4e3bd017d13e935f4be815674b442081ae5a721c13d3af5715006619e6be79a85723067e047f83a0c9e699f41d8cec43609a8de4f7b
- languageName: node
- linkType: hard
-
-"math-expression-evaluator@npm:^1.2.14":
- version: 1.3.14
- resolution: "math-expression-evaluator@npm:1.3.14"
- checksum: 10c0/a98dcb54510f57d9d78c66f73c6ee5e8e3a69d7dcfd3f0e611bc6957a764f23fed3b342888fca79ed49b865b09338581d19bb3acc4d788ee308618c7c7cdca10
- languageName: node
- linkType: hard
-
-"md5.js@npm:^1.3.4":
- version: 1.3.5
- resolution: "md5.js@npm:1.3.5"
- dependencies:
- hash-base: "npm:^3.0.0"
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5
- languageName: node
- linkType: hard
-
-"mem@npm:^1.1.0":
- version: 1.1.0
- resolution: "mem@npm:1.1.0"
- dependencies:
- mimic-fn: "npm:^1.0.0"
- checksum: 10c0/f5150bb975a7d641375d3c1962426bf338952142a429ce01e9792b03df9b63d5911d3feb7e5e50f406531ace646f3fbe39b7dc716c729d617a28b3bbdc799649
- languageName: node
- linkType: hard
-
-"memory-fs@npm:^0.4.0, memory-fs@npm:~0.4.1":
- version: 0.4.1
- resolution: "memory-fs@npm:0.4.1"
- dependencies:
- errno: "npm:^0.1.3"
- readable-stream: "npm:^2.0.1"
- checksum: 10c0/f114c44ad8285103cb0e71420cf5bb628d3eb6cbd918197f5951590ff56ba2072f4a97924949c170320cdf180d2da4e8d16a0edd92ba0ca2d2de51dc932841e2
- languageName: node
- linkType: hard
-
-"miller-rabin@npm:^4.0.0":
- version: 4.0.1
- resolution: "miller-rabin@npm:4.0.1"
- dependencies:
- bn.js: "npm:^4.0.0"
- brorand: "npm:^1.0.1"
- bin:
- miller-rabin: bin/miller-rabin
- checksum: 10c0/26b2b96f6e49dbcff7faebb78708ed2f5f9ae27ac8cbbf1d7c08f83cf39bed3d418c0c11034dce997da70d135cc0ff6f3a4c15dc452f8e114c11986388a64346
- languageName: node
- linkType: hard
-
-"mime-db@npm:1.52.0":
- version: 1.52.0
- resolution: "mime-db@npm:1.52.0"
- checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
- languageName: node
- linkType: hard
-
-"mime-types@npm:~2.1.34":
- version: 2.1.35
- resolution: "mime-types@npm:2.1.35"
- dependencies:
- mime-db: "npm:1.52.0"
- checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2
- languageName: node
- linkType: hard
-
-"mime@npm:^1.4.1":
- version: 1.6.0
- resolution: "mime@npm:1.6.0"
- bin:
- mime: cli.js
- checksum: 10c0/b92cd0adc44888c7135a185bfd0dddc42c32606401c72896a842ae15da71eb88858f17669af41e498b463cd7eb998f7b48939a25b08374c7924a9c8a6f8a81b0
- languageName: node
- linkType: hard
-
-"mimic-fn@npm:^1.0.0":
- version: 1.2.0
- resolution: "mimic-fn@npm:1.2.0"
- checksum: 10c0/ad55214aec6094c0af4c0beec1a13787556f8116ed88807cf3f05828500f21f93a9482326bcd5a077ae91e3e8795b4e76b5b4c8bb12237ff0e4043a365516cba
- languageName: node
- linkType: hard
-
-"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1":
- version: 1.0.1
- resolution: "minimalistic-assert@npm:1.0.1"
- checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd
- languageName: node
- linkType: hard
-
-"minimalistic-crypto-utils@npm:^1.0.1":
- version: 1.0.1
- resolution: "minimalistic-crypto-utils@npm:1.0.1"
- checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8
- languageName: node
- linkType: hard
-
-"minimatch@npm:^10.2.2":
- version: 10.2.4
- resolution: "minimatch@npm:10.2.4"
- dependencies:
- brace-expansion: "npm:^5.0.2"
- checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945
- languageName: node
- linkType: hard
-
-"minimatch@npm:^3.0.4":
- version: 3.0.5
- resolution: "minimatch@npm:3.0.5"
- dependencies:
- brace-expansion: "npm:^1.1.7"
- checksum: 10c0/f398652d0d260137c289c270a4ac98ebe0a27cd316fa0fac72b096e96cbdc89f71d80d47ac7065c716ba3b0b730783b19180bd85a35f9247535d2adfe96bba76
- languageName: node
- linkType: hard
-
-"minimist@npm:^1.2.0, minimist@npm:^1.2.5":
- version: 1.2.5
- resolution: "minimist@npm:1.2.5"
- checksum: 10c0/c143b0c199af4df7a55c7a37b6465cdd438acdc6a3a345ba0fe9d94dfcc2042263f650879bc73be607c843deeaeaadf39c864e55bc6d80b36a025eca1a062ee7
- languageName: node
- linkType: hard
-
-"minipass-collect@npm:^2.0.1":
- version: 2.0.1
- resolution: "minipass-collect@npm:2.0.1"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
- languageName: node
- linkType: hard
-
-"minipass-fetch@npm:^5.0.0":
- version: 5.0.2
- resolution: "minipass-fetch@npm:5.0.2"
- dependencies:
- iconv-lite: "npm:^0.7.2"
- minipass: "npm:^7.0.3"
- minipass-sized: "npm:^2.0.0"
- minizlib: "npm:^3.0.1"
- dependenciesMeta:
- iconv-lite:
- optional: true
- checksum: 10c0/ce4ab9f21cfabaead2097d95dd33f485af8072fbc6b19611bce694965393453a1639d641c2bcf1c48f2ea7d41ea7fab8278373f1d0bee4e63b0a5b2cdd0ef649
- languageName: node
- linkType: hard
-
-"minipass-flush@npm:^1.0.5":
- version: 1.0.5
- resolution: "minipass-flush@npm:1.0.5"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
- languageName: node
- linkType: hard
-
-"minipass-pipeline@npm:^1.2.4":
- version: 1.2.4
- resolution: "minipass-pipeline@npm:1.2.4"
- dependencies:
- minipass: "npm:^3.0.0"
- checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
- languageName: node
- linkType: hard
-
-"minipass-sized@npm:^2.0.0":
- version: 2.0.0
- resolution: "minipass-sized@npm:2.0.0"
- dependencies:
- minipass: "npm:^7.1.2"
- checksum: 10c0/f9201696a6f6d68610d04c9c83e3d2e5cb9c026aae1c8cbf7e17f386105cb79c1bb088dbc21bf0b1eb4f3fb5df384fd1e7aa3bf1f33868c416ae8c8a92679db8
- languageName: node
- linkType: hard
-
-"minipass@npm:^3.0.0":
- version: 3.3.6
- resolution: "minipass@npm:3.3.6"
- dependencies:
- yallist: "npm:^4.0.0"
- checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
- languageName: node
- linkType: hard
-
-"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3":
- version: 7.1.3
- resolution: "minipass@npm:7.1.3"
- checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb
- languageName: node
- linkType: hard
-
-"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0":
- version: 3.1.0
- resolution: "minizlib@npm:3.1.0"
- dependencies:
- minipass: "npm:^7.1.2"
- checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec
- languageName: node
- linkType: hard
-
-"mississippi@npm:^2.0.0":
- version: 2.0.0
- resolution: "mississippi@npm:2.0.0"
- dependencies:
- concat-stream: "npm:^1.5.0"
- duplexify: "npm:^3.4.2"
- end-of-stream: "npm:^1.1.0"
- flush-write-stream: "npm:^1.0.0"
- from2: "npm:^2.1.0"
- parallel-transform: "npm:^1.1.0"
- pump: "npm:^2.0.1"
- pumpify: "npm:^1.3.3"
- stream-each: "npm:^1.1.0"
- through2: "npm:^2.0.0"
- checksum: 10c0/f84beaa40491c2466c4a3d15025ceb1ecc822a8e5ef4f6e5622aeb832b32e4eda056c3982337ae2c1e4b3b77fb431af4d3874923c26dee0c026601547589b2db
- languageName: node
- linkType: hard
-
-"mithril@npm:0.2.0":
- version: 0.2.0
- resolution: "mithril@npm:0.2.0"
- checksum: 10c0/9abb48c285f1d31744bcafd4cb3f6631bf3dc6ff3c653cf97ee01b646d4736f0b25f7aef9423740b23a13e6dd0a6593a6807e2faa2f021a285ae855a72f1952f
- languageName: node
- linkType: hard
-
-"mkdirp@npm:^0.5.1, mkdirp@npm:~0.5.0, mkdirp@npm:~0.5.1":
- version: 0.5.5
- resolution: "mkdirp@npm:0.5.5"
- dependencies:
- minimist: "npm:^1.2.5"
- bin:
- mkdirp: bin/cmd.js
- checksum: 10c0/4469faeeba703bc46b7cdbe3097d6373747a581eb8b556ce41c8fd25a826eb3254466c6522ba823c2edb0b6f0da7beb91cf71f040bc4e361534a3e67f0994bd0
- languageName: node
- linkType: hard
-
-"moment@npm:^2.14.1":
- version: 2.29.1
- resolution: "moment@npm:2.29.1"
- checksum: 10c0/2617e383c0e0f910696214d026b9742173ea1916775d2023b39fd7d5fc3fae694f67c17876d154e246b139ad2a8028c42b2898c66cd665316b61c18453a5103f
- languageName: node
- linkType: hard
-
-"move-concurrently@npm:^1.0.1":
- version: 1.0.1
- resolution: "move-concurrently@npm:1.0.1"
- dependencies:
- aproba: "npm:^1.1.1"
- copy-concurrently: "npm:^1.0.0"
- fs-write-stream-atomic: "npm:^1.0.8"
- mkdirp: "npm:^0.5.1"
- rimraf: "npm:^2.5.4"
- run-queue: "npm:^1.0.3"
- checksum: 10c0/0fe81acf3bbbc322013c2f4ee4a48cf8d180a7d925fb9284c0f1f444e862d7eb0421ee074b68d35357a12f0d5e94a322049dc9da480672331b5b8895743eb66a
- languageName: node
- linkType: hard
-
-"ms@npm:^2.1.1, ms@npm:^2.1.3":
- version: 2.1.3
- resolution: "ms@npm:2.1.3"
- checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
- languageName: node
- linkType: hard
-
-"needle@npm:^2.5.2":
- version: 2.9.1
- resolution: "needle@npm:2.9.1"
- dependencies:
- debug: "npm:^3.2.6"
- iconv-lite: "npm:^0.4.4"
- sax: "npm:^1.2.4"
- bin:
- needle: ./bin/needle
- checksum: 10c0/65a7eaeaf4ca3410de492957474592af9838e02875273d9232ff6cff331393c58a95e48c592bd9a05f575e5bb9b08543d6cfd19eb96595dbd3d7da2c5fe1accb
- languageName: node
- linkType: hard
-
-"negotiator@npm:^1.0.0":
- version: 1.0.0
- resolution: "negotiator@npm:1.0.0"
- checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b
- languageName: node
- linkType: hard
-
-"next-tick@npm:~1.0.0":
- version: 1.0.0
- resolution: "next-tick@npm:1.0.0"
- checksum: 10c0/851058d7af979a94743ae0ae4c71f0257662a2b7129e0a159273d13782401823c154ee2e49a790e979e5b92126dbc2b5eb522eaff631b997ddf95903e7c5e9cc
- languageName: node
- linkType: hard
-
-"node-gyp@npm:latest":
- version: 12.2.0
- resolution: "node-gyp@npm:12.2.0"
- dependencies:
- env-paths: "npm:^2.2.0"
- exponential-backoff: "npm:^3.1.1"
- graceful-fs: "npm:^4.2.6"
- make-fetch-happen: "npm:^15.0.0"
- nopt: "npm:^9.0.0"
- proc-log: "npm:^6.0.0"
- semver: "npm:^7.3.5"
- tar: "npm:^7.5.4"
- tinyglobby: "npm:^0.2.12"
- which: "npm:^6.0.0"
- bin:
- node-gyp: bin/node-gyp.js
- checksum: 10c0/3ed046746a5a7d90950cd8b0547332b06598443f31fe213ef4332a7174c7b7d259e1704835feda79b87d3f02e59d7791842aac60642ede4396ab25fdf0f8f759
- languageName: node
- linkType: hard
-
-"node-libs-browser@npm:^2.0.0":
- version: 2.2.1
- resolution: "node-libs-browser@npm:2.2.1"
- dependencies:
- assert: "npm:^1.1.1"
- browserify-zlib: "npm:^0.2.0"
- buffer: "npm:^4.3.0"
- console-browserify: "npm:^1.1.0"
- constants-browserify: "npm:^1.0.0"
- crypto-browserify: "npm:^3.11.0"
- domain-browser: "npm:^1.1.1"
- events: "npm:^3.0.0"
- https-browserify: "npm:^1.0.0"
- os-browserify: "npm:^0.3.0"
- path-browserify: "npm:0.0.1"
- process: "npm:^0.11.10"
- punycode: "npm:^1.2.4"
- querystring-es3: "npm:^0.2.0"
- readable-stream: "npm:^2.3.3"
- stream-browserify: "npm:^2.0.1"
- stream-http: "npm:^2.7.2"
- string_decoder: "npm:^1.0.0"
- timers-browserify: "npm:^2.0.4"
- tty-browserify: "npm:0.0.0"
- url: "npm:^0.11.0"
- util: "npm:^0.11.0"
- vm-browserify: "npm:^1.0.1"
- checksum: 10c0/0e05321a6396408903ed642231d2bca7dd96492d074c7af161ba06a63c95378bd3de50b4105eccbbc02d93ba3da69f0ff5e624bc2a8c92ca462ceb6a403e7986
- languageName: node
- linkType: hard
-
-"nopt@npm:^9.0.0":
- version: 9.0.0
- resolution: "nopt@npm:9.0.0"
- dependencies:
- abbrev: "npm:^4.0.0"
- bin:
- nopt: bin/nopt.js
- checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd
- languageName: node
- linkType: hard
-
-"normalize-package-data@npm:^2.3.2":
- version: 2.5.0
- resolution: "normalize-package-data@npm:2.5.0"
- dependencies:
- hosted-git-info: "npm:^2.1.4"
- resolve: "npm:^1.10.0"
- semver: "npm:2 || 3 || 4 || 5"
- validate-npm-package-license: "npm:^3.0.1"
- checksum: 10c0/357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504
- languageName: node
- linkType: hard
-
-"normalize-range@npm:^0.1.2":
- version: 0.1.2
- resolution: "normalize-range@npm:0.1.2"
- checksum: 10c0/bf39b73a63e0a42ad1a48c2bd1bda5a07ede64a7e2567307a407674e595bcff0fa0d57e8e5f1e7fa5e91000797c7615e13613227aaaa4d6d6e87f5bd5cc95de6
- languageName: node
- linkType: hard
-
-"normalize-url@npm:^1.4.0":
- version: 1.9.1
- resolution: "normalize-url@npm:1.9.1"
- dependencies:
- object-assign: "npm:^4.0.1"
- prepend-http: "npm:^1.0.0"
- query-string: "npm:^4.1.0"
- sort-keys: "npm:^1.0.0"
- checksum: 10c0/5ecd525f743c3fb5370d2bab8e78446f3e3bd7c0c97a5fd3f0bc0c5f396fbd117d13c9118766128d25ed575755cb539dc33a38419f18ca9d8577c8d1cd7a8daf
- languageName: node
- linkType: hard
-
-"npm-run-path@npm:^2.0.0":
- version: 2.0.2
- resolution: "npm-run-path@npm:2.0.2"
- dependencies:
- path-key: "npm:^2.0.0"
- checksum: 10c0/95549a477886f48346568c97b08c4fda9cdbf7ce8a4fbc2213f36896d0d19249e32d68d7451bdcbca8041b5fba04a6b2c4a618beaf19849505c05b700740f1de
- languageName: node
- linkType: hard
-
-"num2fraction@npm:^1.2.2":
- version: 1.2.2
- resolution: "num2fraction@npm:1.2.2"
- checksum: 10c0/3bf17b44af00508a2b0370146629710645c3e3ff3c052893680efe3f4a6ff5c953ce9e54734013b02b35744a49352d54fbc5d8b455fac979047ef17dd8ec74bd
- languageName: node
- linkType: hard
-
-"number-is-nan@npm:^1.0.0":
- version: 1.0.1
- resolution: "number-is-nan@npm:1.0.1"
- checksum: 10c0/cb97149006acc5cd512c13c1838223abdf202e76ddfa059c5e8e7507aff2c3a78cd19057516885a2f6f5b576543dc4f7b6f3c997cc7df53ae26c260855466df5
- languageName: node
- linkType: hard
-
-"object-assign@npm:^3.0.0":
- version: 3.0.0
- resolution: "object-assign@npm:3.0.0"
- checksum: 10c0/88d1b93de35a2073df309239486829b8b3252ef86196a0d5e06fae20f9e6e5830a33ccaa1c675bd63191eec4310961797ff577fa586583a92a09ece53e668416
- languageName: node
- linkType: hard
-
-"object-assign@npm:^4.0.1, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1":
- version: 4.1.1
- resolution: "object-assign@npm:4.1.1"
- checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414
- languageName: node
- linkType: hard
-
-"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
- version: 1.4.0
- resolution: "once@npm:1.4.0"
- dependencies:
- wrappy: "npm:1"
- checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0
- languageName: node
- linkType: hard
-
-"os-browserify@npm:^0.3.0":
- version: 0.3.0
- resolution: "os-browserify@npm:0.3.0"
- checksum: 10c0/6ff32cb1efe2bc6930ad0fd4c50e30c38010aee909eba8d65be60af55efd6cbb48f0287e3649b4e3f3a63dce5a667b23c187c4293a75e557f0d5489d735bcf52
- languageName: node
- linkType: hard
-
-"os-locale@npm:^2.0.0":
- version: 2.1.0
- resolution: "os-locale@npm:2.1.0"
- dependencies:
- execa: "npm:^0.7.0"
- lcid: "npm:^1.0.0"
- mem: "npm:^1.1.0"
- checksum: 10c0/6f1acc060552a59f477ab541e9149a712f93a4d7b5262d070698dbe98cf047f35c7685d759a86dc56c12b76fdfbab1bf7216a74232263efbe7365de2a5d70834
- languageName: node
- linkType: hard
-
-"p-finally@npm:^1.0.0":
- version: 1.0.0
- resolution: "p-finally@npm:1.0.0"
- checksum: 10c0/6b8552339a71fe7bd424d01d8451eea92d379a711fc62f6b2fe64cad8a472c7259a236c9a22b4733abca0b5666ad503cb497792a0478c5af31ded793d00937e7
- languageName: node
- linkType: hard
-
-"p-limit@npm:^1.1.0":
- version: 1.3.0
- resolution: "p-limit@npm:1.3.0"
- dependencies:
- p-try: "npm:^1.0.0"
- checksum: 10c0/5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee
- languageName: node
- linkType: hard
-
-"p-locate@npm:^2.0.0":
- version: 2.0.0
- resolution: "p-locate@npm:2.0.0"
- dependencies:
- p-limit: "npm:^1.1.0"
- checksum: 10c0/82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67
- languageName: node
- linkType: hard
-
-"p-map@npm:^7.0.2":
- version: 7.0.4
- resolution: "p-map@npm:7.0.4"
- checksum: 10c0/a5030935d3cb2919d7e89454d1ce82141e6f9955413658b8c9403cfe379283770ed3048146b44cde168aa9e8c716505f196d5689db0ae3ce9a71521a2fef3abd
- languageName: node
- linkType: hard
-
-"p-try@npm:^1.0.0":
- version: 1.0.0
- resolution: "p-try@npm:1.0.0"
- checksum: 10c0/757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a
- languageName: node
- linkType: hard
-
-"pako@npm:~1.0.5":
- version: 1.0.11
- resolution: "pako@npm:1.0.11"
- checksum: 10c0/86dd99d8b34c3930345b8bbeb5e1cd8a05f608eeb40967b293f72fe469d0e9c88b783a8777e4cc7dc7c91ce54c5e93d88ff4b4f060e6ff18408fd21030d9ffbe
- languageName: node
- linkType: hard
-
-"parallel-transform@npm:^1.1.0":
- version: 1.2.0
- resolution: "parallel-transform@npm:1.2.0"
- dependencies:
- cyclist: "npm:^1.0.1"
- inherits: "npm:^2.0.3"
- readable-stream: "npm:^2.1.5"
- checksum: 10c0/ab0e58569e73681ca4b9c9228189bdb6cbea535295fae344cf0d8342fd33a950961914f3c414f81894c1498fb9ad1c079b4625d2b7ceae9e6ab812f22e3bea3f
- languageName: node
- linkType: hard
-
-"parse-asn1@npm:^5.0.0, parse-asn1@npm:^5.1.5":
- version: 5.1.6
- resolution: "parse-asn1@npm:5.1.6"
- dependencies:
- asn1.js: "npm:^5.2.0"
- browserify-aes: "npm:^1.0.0"
- evp_bytestokey: "npm:^1.0.0"
- pbkdf2: "npm:^3.0.3"
- safe-buffer: "npm:^5.1.1"
- checksum: 10c0/4ed1d9b9e120c5484d29d67bb90171aac0b73422bc016d6294160aea983275c28a27ab85d862059a36a86a97dd31b7ddd97486802ca9fac67115fe3409e9dcbd
- languageName: node
- linkType: hard
-
-"parse-json@npm:^2.2.0":
- version: 2.2.0
- resolution: "parse-json@npm:2.2.0"
- dependencies:
- error-ex: "npm:^1.2.0"
- checksum: 10c0/7a90132aa76016f518a3d5d746a21b3f1ad0f97a68436ed71b6f995b67c7151141f5464eea0c16c59aec9b7756519a0e3007a8f98cf3714632d509ec07736df6
- languageName: node
- linkType: hard
-
-"parse-node-version@npm:^1.0.1":
- version: 1.0.1
- resolution: "parse-node-version@npm:1.0.1"
- checksum: 10c0/999cd3d7da1425c2e182dce82b226c6dc842562d3ed79ec47f5c719c32a7f6c1a5352495b894fc25df164be7f2ede4224758255da9902ddef81f2b77ba46bb2c
- languageName: node
- linkType: hard
-
-"path-browserify@npm:0.0.1":
- version: 0.0.1
- resolution: "path-browserify@npm:0.0.1"
- checksum: 10c0/3d59710cddeea06509d91935196185900f3d9d29376dff68ff0e146fbd41d0fb304e983d0158f30cabe4dd2ffcc6a7d3d977631994ee984c88e66aed50a1ccd3
- languageName: node
- linkType: hard
-
-"path-exists@npm:^3.0.0":
- version: 3.0.0
- resolution: "path-exists@npm:3.0.0"
- checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167
- languageName: node
- linkType: hard
-
-"path-is-absolute@npm:^1.0.0":
- version: 1.0.1
- resolution: "path-is-absolute@npm:1.0.1"
- checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078
- languageName: node
- linkType: hard
-
-"path-key@npm:^2.0.0":
- version: 2.0.1
- resolution: "path-key@npm:2.0.1"
- checksum: 10c0/dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b
- languageName: node
- linkType: hard
-
-"path-parse@npm:^1.0.7":
- version: 1.0.7
- resolution: "path-parse@npm:1.0.7"
- checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1
- languageName: node
- linkType: hard
-
-"path-scurry@npm:^2.0.2":
- version: 2.0.2
- resolution: "path-scurry@npm:2.0.2"
- dependencies:
- lru-cache: "npm:^11.0.0"
- minipass: "npm:^7.1.2"
- checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482
- languageName: node
- linkType: hard
-
-"path-type@npm:^2.0.0":
- version: 2.0.0
- resolution: "path-type@npm:2.0.0"
- dependencies:
- pify: "npm:^2.0.0"
- checksum: 10c0/e475cead839e65a2f8fdde634b24a4116b49daea3917470552e19d49c63e59ef17963bec2f57df2c72a85fcd1f86c8850d9742e68dba9c9c8d9bcac38bab03d6
- languageName: node
- linkType: hard
-
-"pbkdf2@npm:^3.0.3":
- version: 3.1.2
- resolution: "pbkdf2@npm:3.1.2"
- dependencies:
- create-hash: "npm:^1.1.2"
- create-hmac: "npm:^1.1.4"
- ripemd160: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- sha.js: "npm:^2.4.8"
- checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd
- languageName: node
- linkType: hard
-
-"picomatch@npm:^4.0.3":
- version: 4.0.3
- resolution: "picomatch@npm:4.0.3"
- checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
- languageName: node
- linkType: hard
-
-"pify@npm:^2.0.0":
- version: 2.3.0
- resolution: "pify@npm:2.3.0"
- checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc
- languageName: node
- linkType: hard
-
-"pify@npm:^3.0.0":
- version: 3.0.0
- resolution: "pify@npm:3.0.0"
- checksum: 10c0/fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10
- languageName: node
- linkType: hard
-
-"pify@npm:^4.0.1":
- version: 4.0.1
- resolution: "pify@npm:4.0.1"
- checksum: 10c0/6f9d404b0d47a965437403c9b90eca8bb2536407f03de165940e62e72c8c8b75adda5516c6b9b23675a5877cc0bcac6bdfb0ef0e39414cd2476d5495da40e7cf
- languageName: node
- linkType: hard
-
-"pikaday@npm:^1.3.2":
- version: 1.8.2
- resolution: "pikaday@npm:1.8.2"
- checksum: 10c0/c3c8ec32b18ad941f91ef0e9e24f80b785749428373137ef1592ee2ac1e2f0d858fcd240063f6d6f15c4f3d361b1653879fee7868ebf6415900ecef9c0ed0d7d
- languageName: node
- linkType: hard
-
-"pkg-dir@npm:^2.0.0":
- version: 2.0.0
- resolution: "pkg-dir@npm:2.0.0"
- dependencies:
- find-up: "npm:^2.1.0"
- checksum: 10c0/7cdc46c4921bf2c5f9a438851d16243ddde9906928116647ec7784982dd9038ea61c964fbca6f489201845742188180ecd1001b4f69781de1d1dc7d100b14089
- languageName: node
- linkType: hard
-
-"popper.js@npm:^1.16.0":
- version: 1.16.1
- resolution: "popper.js@npm:1.16.1"
- checksum: 10c0/1c1a826f757edb5b8c2049dfd7a9febf6ae1e9d0e51342fc715b49a0c1020fced250d26484619883651e097c5764bbcacd2f31496e3646027f079dd83e072681
- languageName: node
- linkType: hard
-
-"postcss-calc@npm:^5.2.0":
- version: 5.3.1
- resolution: "postcss-calc@npm:5.3.1"
- dependencies:
- postcss: "npm:^5.0.2"
- postcss-message-helpers: "npm:^2.0.0"
- reduce-css-calc: "npm:^1.2.6"
- checksum: 10c0/96444e979f0e7ef2c6e15d545a05c4ebc05eaa00d1743c9181c1008fb0cc06c926242e50b600ef627d9bd418c3fd24adb6732c482eeed0de8e60b64c1c105176
- languageName: node
- linkType: hard
-
-"postcss-colormin@npm:^2.1.8":
- version: 2.2.2
- resolution: "postcss-colormin@npm:2.2.2"
- dependencies:
- colormin: "npm:^1.0.5"
- postcss: "npm:^5.0.13"
- postcss-value-parser: "npm:^3.2.3"
- checksum: 10c0/defcfa7e3c8daa0c116747acd01346867374505347e802115b2e7b476b6f74df4e67820bcd98743a0c02cd92159005d41db42e428700f873bb54647e54417e95
- languageName: node
- linkType: hard
-
-"postcss-convert-values@npm:^2.3.4":
- version: 2.6.1
- resolution: "postcss-convert-values@npm:2.6.1"
- dependencies:
- postcss: "npm:^5.0.11"
- postcss-value-parser: "npm:^3.1.2"
- checksum: 10c0/3efbc1c5feaa6c2eb56da61ad2c9e784c50aad1524d9c6a5a5992da43a276ead2b2d2986c8f8647fad484eefe3e22855993b2fe1984b392c45fd82aa92e7bfb9
- languageName: node
- linkType: hard
-
-"postcss-discard-comments@npm:^2.0.4":
- version: 2.0.4
- resolution: "postcss-discard-comments@npm:2.0.4"
- dependencies:
- postcss: "npm:^5.0.14"
- checksum: 10c0/436039351e2e6fba1358077728f51c5923cf943584394fc38b441444fe572980f08c5c7d1733a2e48fa17096cb98e8180e73b45ed2aea7baabc162943ed403dc
- languageName: node
- linkType: hard
-
-"postcss-discard-duplicates@npm:^2.0.1":
- version: 2.1.0
- resolution: "postcss-discard-duplicates@npm:2.1.0"
- dependencies:
- postcss: "npm:^5.0.4"
- checksum: 10c0/0da451c605fa8b26981f2c8a059f9231eade6616026e01834dd5b305ad6ffbaae28916d3de5fe91b6d9810e0bff69e70ffe44cae3a908e12493bc4295cbf4a6f
- languageName: node
- linkType: hard
-
-"postcss-discard-empty@npm:^2.0.1":
- version: 2.1.0
- resolution: "postcss-discard-empty@npm:2.1.0"
- dependencies:
- postcss: "npm:^5.0.14"
- checksum: 10c0/e2008b574f80cc3621c3e318e59e36895077865a48800f1c25eb688128f8d43f0402c8effc21143533fd114200e532dcfbaca9813f0d07f9e71e32b6a859afbd
- languageName: node
- linkType: hard
-
-"postcss-discard-overridden@npm:^0.1.1":
- version: 0.1.1
- resolution: "postcss-discard-overridden@npm:0.1.1"
- dependencies:
- postcss: "npm:^5.0.16"
- checksum: 10c0/e1fd38e98045966be5f64252cbd553a597bc7678f64101025b850abe66851f35219320095321e4b0e9632843b6fc64e8bfe9b390064d9725a60a623a4a88b28d
- languageName: node
- linkType: hard
-
-"postcss-discard-unused@npm:^2.2.1":
- version: 2.2.3
- resolution: "postcss-discard-unused@npm:2.2.3"
- dependencies:
- postcss: "npm:^5.0.14"
- uniqs: "npm:^2.0.0"
- checksum: 10c0/0058b5f15363a5a6a0d01e28aaea98506639e52e42b49878ffc80d75ab9c4c9a8136c99ca2b5c9bf4d734469620ff5c84ab4f811a7bf9bc2e7dfd5f76e6d68fb
- languageName: node
- linkType: hard
-
-"postcss-filter-plugins@npm:^2.0.0":
- version: 2.0.3
- resolution: "postcss-filter-plugins@npm:2.0.3"
- dependencies:
- postcss: "npm:^5.0.4"
- checksum: 10c0/a6d92215995486878dddab275ef65e55fd4432f779cc27ed435df49a22232743dad3285b9db8a5b32e4a618279d3f7415a501a9a4556411ee9d408bac447c5a0
- languageName: node
- linkType: hard
-
-"postcss-merge-idents@npm:^2.1.5":
- version: 2.1.7
- resolution: "postcss-merge-idents@npm:2.1.7"
- dependencies:
- has: "npm:^1.0.1"
- postcss: "npm:^5.0.10"
- postcss-value-parser: "npm:^3.1.1"
- checksum: 10c0/5ef35d2ab59ceb32ca38d597753f8468dafb0782308930df820c96f3b23e4b4e36318ad29d76f88559c6a69d9c8d6283f1900617c0b6e4504bb5ab7523c120f8
- languageName: node
- linkType: hard
-
-"postcss-merge-longhand@npm:^2.0.1":
- version: 2.0.2
- resolution: "postcss-merge-longhand@npm:2.0.2"
- dependencies:
- postcss: "npm:^5.0.4"
- checksum: 10c0/84145e5fee9e3064f1b22bde14fe5448449e519e3866a4c59cab42866309e3912638cc7e3d900c16090577a5f94899a2b46ed3a77c721592038671ce86e5395c
- languageName: node
- linkType: hard
-
-"postcss-merge-rules@npm:^2.0.3":
- version: 2.1.2
- resolution: "postcss-merge-rules@npm:2.1.2"
- dependencies:
- browserslist: "npm:^1.5.2"
- caniuse-api: "npm:^1.5.2"
- postcss: "npm:^5.0.4"
- postcss-selector-parser: "npm:^2.2.2"
- vendors: "npm:^1.0.0"
- checksum: 10c0/aa825593d06079de4776f8ec71a05276c145aab734b66fbdea2c42bb545c2ec9fe075912ecb28d18d9c3b506784e8cf7db0951f9af287bc090f3ed7e6e72c332
- languageName: node
- linkType: hard
-
-"postcss-message-helpers@npm:^2.0.0":
- version: 2.0.0
- resolution: "postcss-message-helpers@npm:2.0.0"
- checksum: 10c0/5696c59befc408b208853a57994224f717c3a81a5b7129205c3087ad2af8159e209f29b66bfed7d79a1afc709cad76c3fbba06616ca71aeec77d7d029440dc72
- languageName: node
- linkType: hard
-
-"postcss-minify-font-values@npm:^1.0.2":
- version: 1.0.5
- resolution: "postcss-minify-font-values@npm:1.0.5"
- dependencies:
- object-assign: "npm:^4.0.1"
- postcss: "npm:^5.0.4"
- postcss-value-parser: "npm:^3.0.2"
- checksum: 10c0/375fc0b1943b1d1e3c61bc33c19a70853ac2cebfdb0dcac23e5324edb218cf989bd7a8877cf846eafbb2d2e7cec4b7bc70922ac9300f9304c2422d807ccd4a85
- languageName: node
- linkType: hard
-
-"postcss-minify-gradients@npm:^1.0.1":
- version: 1.0.5
- resolution: "postcss-minify-gradients@npm:1.0.5"
- dependencies:
- postcss: "npm:^5.0.12"
- postcss-value-parser: "npm:^3.3.0"
- checksum: 10c0/ce5ed6151349ee4546b860cf9f7af38d8bfb942c32b45025b82c332603e2c49f6ee76ac9bda0cf8279cd2492baa4925b3298776deea7324f5efbd6a85782f0bc
- languageName: node
- linkType: hard
-
-"postcss-minify-params@npm:^1.0.4":
- version: 1.2.2
- resolution: "postcss-minify-params@npm:1.2.2"
- dependencies:
- alphanum-sort: "npm:^1.0.1"
- postcss: "npm:^5.0.2"
- postcss-value-parser: "npm:^3.0.2"
- uniqs: "npm:^2.0.0"
- checksum: 10c0/e48823f55e60e8dc2c44fb7810a323146bd5f9aa3384a203ee56c08b77a84d5227446a005b84371e8560dd0d6cefed667acc8cf020367c6934c7233fd890f7c8
- languageName: node
- linkType: hard
-
-"postcss-minify-selectors@npm:^2.0.4":
- version: 2.1.1
- resolution: "postcss-minify-selectors@npm:2.1.1"
- dependencies:
- alphanum-sort: "npm:^1.0.2"
- has: "npm:^1.0.1"
- postcss: "npm:^5.0.14"
- postcss-selector-parser: "npm:^2.0.0"
- checksum: 10c0/3fd37f12d4d4518a4c7e3e4c9a6ab8cf4757faff6d388700e5d148b9b7b6f1d1f28a6be0ffda5f0077a4e4d509fec65cef3e1343ff72d02e1945a1fba2543ac1
- languageName: node
- linkType: hard
-
-"postcss-modules-extract-imports@npm:^1.2.0":
- version: 1.2.1
- resolution: "postcss-modules-extract-imports@npm:1.2.1"
- dependencies:
- postcss: "npm:^6.0.1"
- checksum: 10c0/5746702936c1e1b78a7b31c4e20092197aa89c4e59c156249aea861c84cd0781c11c8c4648b95bcfdce010c48c8edd83b94eb9103f7c72ef8eb96c4b15716ed3
- languageName: node
- linkType: hard
-
-"postcss-modules-local-by-default@npm:^1.2.0":
- version: 1.2.0
- resolution: "postcss-modules-local-by-default@npm:1.2.0"
- dependencies:
- css-selector-tokenizer: "npm:^0.7.0"
- postcss: "npm:^6.0.1"
- checksum: 10c0/9139846ccefbb089cff17abda76e199c4d464d899816265f0b3939f5cf588b8ba59f9119b87eccaf3bfde3049bddd6ac5989f46e6d8fa9ba936cc6ccb27b89bd
- languageName: node
- linkType: hard
-
-"postcss-modules-scope@npm:^1.1.0":
- version: 1.1.0
- resolution: "postcss-modules-scope@npm:1.1.0"
- dependencies:
- css-selector-tokenizer: "npm:^0.7.0"
- postcss: "npm:^6.0.1"
- checksum: 10c0/ef0328204912f2a3b98322ac5f3d377c234c391a2afd29f51ec83961ad0e0c4dc01192968649ce47c75c85a6c922dd8c608b137c1cce548fe5d92d6fb4454bb2
- languageName: node
- linkType: hard
-
-"postcss-modules-values@npm:^1.3.0":
- version: 1.3.0
- resolution: "postcss-modules-values@npm:1.3.0"
- dependencies:
- icss-replace-symbols: "npm:^1.1.0"
- postcss: "npm:^6.0.1"
- checksum: 10c0/11bb1af2478291b72f6cc106ba48dc566079021976b2da8c7989db6dca643db6fe81653aba43d4cfb0467754853d77d1eb0e3593a621affe62a1cc2d72541c70
- languageName: node
- linkType: hard
-
-"postcss-normalize-charset@npm:^1.1.0":
- version: 1.1.1
- resolution: "postcss-normalize-charset@npm:1.1.1"
- dependencies:
- postcss: "npm:^5.0.5"
- checksum: 10c0/69e67c67ad2a71b2dee440769a3651c84dee7bfcb713749ebbef544454b0151ef0c84833228513d6f53afd63c721b38cd640c54eca9602e3768139158e0f316a
- languageName: node
- linkType: hard
-
-"postcss-normalize-url@npm:^3.0.7":
- version: 3.0.8
- resolution: "postcss-normalize-url@npm:3.0.8"
- dependencies:
- is-absolute-url: "npm:^2.0.0"
- normalize-url: "npm:^1.4.0"
- postcss: "npm:^5.0.14"
- postcss-value-parser: "npm:^3.2.3"
- checksum: 10c0/c53225ca485dd10d156e33e5ee5c3a830082f3f68a337b9e48f5a9d5083f6bebdf13008103d056b2025622c56421284bd391d9a86949ca468541cd0e2df682a6
- languageName: node
- linkType: hard
-
-"postcss-ordered-values@npm:^2.1.0":
- version: 2.2.3
- resolution: "postcss-ordered-values@npm:2.2.3"
- dependencies:
- postcss: "npm:^5.0.4"
- postcss-value-parser: "npm:^3.0.1"
- checksum: 10c0/4d55a1c7f108f01181c22db1cb886ba0d47f71472a0e531f66b6d90094e74754a35a85cae7c142b4f6277066d2d4c586814dbd909ac7bb9d4c9d1180ac34d10b
- languageName: node
- linkType: hard
-
-"postcss-reduce-idents@npm:^2.2.2":
- version: 2.4.0
- resolution: "postcss-reduce-idents@npm:2.4.0"
- dependencies:
- postcss: "npm:^5.0.4"
- postcss-value-parser: "npm:^3.0.2"
- checksum: 10c0/a63b42193dd19298b28411bb6186ec6aa5cc176cbb2a4e4e67567cecf116feaa02407744eb734521a49445be497156afad70d0ab5dcd1d9af772e2aca1fd127c
- languageName: node
- linkType: hard
-
-"postcss-reduce-initial@npm:^1.0.0":
- version: 1.0.1
- resolution: "postcss-reduce-initial@npm:1.0.1"
- dependencies:
- postcss: "npm:^5.0.4"
- checksum: 10c0/f1c40830ceea191cc31353cc5085a1dab8e94f40ce009d0779b0589329546c8f11a10c0ba3d6514032cbee1439d76dc5e0b49bb841b1ca388827cc8be79b587a
- languageName: node
- linkType: hard
-
-"postcss-reduce-transforms@npm:^1.0.3":
- version: 1.0.4
- resolution: "postcss-reduce-transforms@npm:1.0.4"
- dependencies:
- has: "npm:^1.0.1"
- postcss: "npm:^5.0.8"
- postcss-value-parser: "npm:^3.0.1"
- checksum: 10c0/9c8cf2373dd84adb132fcd15ca48379276ef353ab8e51c18506d2e9688658579affff77bcbff19e460e875483b9a7d18fb40488f89f8d15b635f10503da9d875
- languageName: node
- linkType: hard
-
-"postcss-selector-parser@npm:^2.0.0, postcss-selector-parser@npm:^2.2.2":
- version: 2.2.3
- resolution: "postcss-selector-parser@npm:2.2.3"
- dependencies:
- flatten: "npm:^1.0.2"
- indexes-of: "npm:^1.0.1"
- uniq: "npm:^1.0.1"
- checksum: 10c0/dc8aee6807096a93a6a1079bddb8d3e94ca385688889da087156ecfe48f3ad7db7581395fada92737d0d6e6a2cda96697fb2d94bbbf97484adb1acff261efe00
- languageName: node
- linkType: hard
-
-"postcss-svgo@npm:^2.1.1":
- version: 2.1.6
- resolution: "postcss-svgo@npm:2.1.6"
- dependencies:
- is-svg: "npm:^2.0.0"
- postcss: "npm:^5.0.14"
- postcss-value-parser: "npm:^3.2.3"
- svgo: "npm:^0.7.0"
- checksum: 10c0/a4e33316888c609b2db8e0dbaa7db49f4c0c880985df364d1a237fc1ef170815f21949433e4ea5684da2c2b3d8ef2f6c0e944d3757c6749b350dbf19d534b5f2
- languageName: node
- linkType: hard
-
-"postcss-unique-selectors@npm:^2.0.2":
- version: 2.0.2
- resolution: "postcss-unique-selectors@npm:2.0.2"
- dependencies:
- alphanum-sort: "npm:^1.0.1"
- postcss: "npm:^5.0.4"
- uniqs: "npm:^2.0.0"
- checksum: 10c0/4d1fac25aec01952390df2746f1cb9392b1cfe29bd167608248408755bd8b510209f95213953bda61b3c1201fb580620acdffd4f29fb85c3986f2a04b9b6bb52
- languageName: node
- linkType: hard
-
-"postcss-value-parser@npm:^3.0.1, postcss-value-parser@npm:^3.0.2, postcss-value-parser@npm:^3.1.1, postcss-value-parser@npm:^3.1.2, postcss-value-parser@npm:^3.2.3, postcss-value-parser@npm:^3.3.0":
- version: 3.3.1
- resolution: "postcss-value-parser@npm:3.3.1"
- checksum: 10c0/23eed98d8eeadb1f9ef1db4a2757da0f1d8e7c1dac2a38d6b35d971aab9eb3c6d8a967d0e9f435558834ffcd966afbbe875a56bcc5bcdd09e663008c106b3e47
- languageName: node
- linkType: hard
-
-"postcss-zindex@npm:^2.0.1":
- version: 2.2.0
- resolution: "postcss-zindex@npm:2.2.0"
- dependencies:
- has: "npm:^1.0.1"
- postcss: "npm:^5.0.4"
- uniqs: "npm:^2.0.0"
- checksum: 10c0/3c99a8fcd7132ecd5f56df7d8bdbe9a9d78f6c92c784435d522e1909b4e5f624905734c528787b0257a2ae23ec45f5bf435f8e2dcd47733fad8d779b91f2ba09
- languageName: node
- linkType: hard
-
-"postcss@npm:^5.0.10, postcss@npm:^5.0.11, postcss@npm:^5.0.12, postcss@npm:^5.0.13, postcss@npm:^5.0.14, postcss@npm:^5.0.16, postcss@npm:^5.0.2, postcss@npm:^5.0.4, postcss@npm:^5.0.5, postcss@npm:^5.0.6, postcss@npm:^5.0.8, postcss@npm:^5.2.16":
- version: 5.2.18
- resolution: "postcss@npm:5.2.18"
- dependencies:
- chalk: "npm:^1.1.3"
- js-base64: "npm:^2.1.9"
- source-map: "npm:^0.5.6"
- supports-color: "npm:^3.2.3"
- checksum: 10c0/1f9f6673dd24d52f1ed33b800248e6ef752d6b6a092fe268021e398df0d7e0956f00fb961781647264d659240c3d67f5bfd3df9bf1b7af985aa996be619d30b1
- languageName: node
- linkType: hard
-
-"postcss@npm:^6.0.1":
- version: 6.0.23
- resolution: "postcss@npm:6.0.23"
- dependencies:
- chalk: "npm:^2.4.1"
- source-map: "npm:^0.6.1"
- supports-color: "npm:^5.4.0"
- checksum: 10c0/45d45184ffbb9d510e7585d9441af9a1a771a56b7553b1d598544e54acdfd31df439a95d5f00a6dc57b85b76d0c8925fec18614b1cc795887c845c3965e32e63
- languageName: node
- linkType: hard
-
-"prepend-http@npm:^1.0.0":
- version: 1.0.4
- resolution: "prepend-http@npm:1.0.4"
- checksum: 10c0/c6c173ca439e58163ba7bea7cbba52a1ed11e3e3da1c048da296f37d4b7654f78f7304e03f76d5923f4b83af7e2d55533e0f79064209c75b743ccddee13904f8
- languageName: node
- linkType: hard
-
-"proc-log@npm:^6.0.0":
- version: 6.1.0
- resolution: "proc-log@npm:6.1.0"
- checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82
- languageName: node
- linkType: hard
-
-"process-nextick-args@npm:~2.0.0":
- version: 2.0.1
- resolution: "process-nextick-args@npm:2.0.1"
- checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367
- languageName: node
- linkType: hard
-
-"process@npm:^0.11.10":
- version: 0.11.10
- resolution: "process@npm:0.11.10"
- checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3
- languageName: node
- linkType: hard
-
-"promise-inflight@npm:^1.0.1":
- version: 1.0.1
- resolution: "promise-inflight@npm:1.0.1"
- checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc
- languageName: node
- linkType: hard
-
-"prr@npm:~1.0.1":
- version: 1.0.1
- resolution: "prr@npm:1.0.1"
- checksum: 10c0/5b9272c602e4f4472a215e58daff88f802923b84bc39c8860376bb1c0e42aaf18c25d69ad974bd06ec6db6f544b783edecd5502cd3d184748d99080d68e4be5f
- languageName: node
- linkType: hard
-
-"pseudomap@npm:^1.0.2":
- version: 1.0.2
- resolution: "pseudomap@npm:1.0.2"
- checksum: 10c0/5a91ce114c64ed3a6a553aa7d2943868811377388bb31447f9d8028271bae9b05b340fe0b6961a64e45b9c72946aeb0a4ab635e8f7cb3715ffd0ff2beeb6a679
- languageName: node
- linkType: hard
-
-"public-encrypt@npm:^4.0.0":
- version: 4.0.3
- resolution: "public-encrypt@npm:4.0.3"
- dependencies:
- bn.js: "npm:^4.1.0"
- browserify-rsa: "npm:^4.0.0"
- create-hash: "npm:^1.1.0"
- parse-asn1: "npm:^5.0.0"
- randombytes: "npm:^2.0.1"
- safe-buffer: "npm:^5.1.2"
- checksum: 10c0/6c2cc19fbb554449e47f2175065d6b32f828f9b3badbee4c76585ac28ae8641aafb9bb107afc430c33c5edd6b05dbe318df4f7d6d7712b1093407b11c4280700
- languageName: node
- linkType: hard
-
-"pump@npm:^2.0.0, pump@npm:^2.0.1":
- version: 2.0.1
- resolution: "pump@npm:2.0.1"
- dependencies:
- end-of-stream: "npm:^1.1.0"
- once: "npm:^1.3.1"
- checksum: 10c0/f1fe8960f44d145f8617ea4c67de05392da4557052980314c8f85081aee26953bdcab64afad58a2b1df0e8ff7203e3710e848cbe81a01027978edc6e264db355
- languageName: node
- linkType: hard
-
-"pumpify@npm:^1.3.3":
- version: 1.5.1
- resolution: "pumpify@npm:1.5.1"
- dependencies:
- duplexify: "npm:^3.6.0"
- inherits: "npm:^2.0.3"
- pump: "npm:^2.0.0"
- checksum: 10c0/0bcabf9e3dbf2d0cc1f9b84ac80d3c75386111caf8963bfd98817a1e2192000ac0ccc804ca6ccd5b2b8430fdb71347b20fb2f014fe3d41adbacb1b502a841c45
- languageName: node
- linkType: hard
-
-"punycode@npm:1.3.2":
- version: 1.3.2
- resolution: "punycode@npm:1.3.2"
- checksum: 10c0/281fd20eaf4704f79d80cb0dc65065bf6452ee67989b3e8941aed6360a5a9a8a01d3e2ed71d0bde3cd74fb5a5dd9db4160bed5a8c20bed4b6764c24ce4c7d2d2
- languageName: node
- linkType: hard
-
-"punycode@npm:^1.2.4":
- version: 1.4.1
- resolution: "punycode@npm:1.4.1"
- checksum: 10c0/354b743320518aef36f77013be6e15da4db24c2b4f62c5f1eb0529a6ed02fbaf1cb52925785f6ab85a962f2b590d9cd5ad730b70da72b5f180e2556b8bd3ca08
- languageName: node
- linkType: hard
-
-"punycode@npm:^2.1.0":
- version: 2.1.1
- resolution: "punycode@npm:2.1.1"
- checksum: 10c0/83815ca9b9177f055771f31980cbec7ffaef10257d50a95ab99b4a30f0404846e85fa6887ee1bbc0aaddb7bad6d96e2fa150a016051ff0f6b92be4ad613ddca8
- languageName: node
- linkType: hard
-
-"q@npm:^1.1.2":
- version: 1.5.1
- resolution: "q@npm:1.5.1"
- checksum: 10c0/7855fbdba126cb7e92ef3a16b47ba998c0786ec7fface236e3eb0135b65df36429d91a86b1fff3ab0927b4ac4ee88a2c44527c7c3b8e2a37efbec9fe34803df4
- languageName: node
- linkType: hard
-
-"query-string@npm:^4.1.0":
- version: 4.3.4
- resolution: "query-string@npm:4.3.4"
- dependencies:
- object-assign: "npm:^4.1.0"
- strict-uri-encode: "npm:^1.0.0"
- checksum: 10c0/6181c343074c2049fbbcde63f87c1da5d3a49c6e34c8d94a61d692e886e0b8cd1ae4a4be00b598112bb9c4cb819e423ed503a5d246e4d24ecb0990d8bb21570b
- languageName: node
- linkType: hard
-
-"querystring-es3@npm:^0.2.0":
- version: 0.2.1
- resolution: "querystring-es3@npm:0.2.1"
- checksum: 10c0/476938c1adb45c141f024fccd2ffd919a3746e79ed444d00e670aad68532977b793889648980e7ca7ff5ffc7bfece623118d0fbadcaf217495eeb7059ae51580
- languageName: node
- linkType: hard
-
-"querystring@npm:0.2.0":
- version: 0.2.0
- resolution: "querystring@npm:0.2.0"
- checksum: 10c0/2036c9424beaacd3978bac9e4ba514331cc73163bea7bf3ad7e2c7355e55501938ec195312c607753f9c6e70b1bf9dfcda38db6241bd299c034e27ac639d64ed
- languageName: node
- linkType: hard
-
-"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5":
- version: 2.1.0
- resolution: "randombytes@npm:2.1.0"
- dependencies:
- safe-buffer: "npm:^5.1.0"
- checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3
- languageName: node
- linkType: hard
-
-"randomfill@npm:^1.0.3":
- version: 1.0.4
- resolution: "randomfill@npm:1.0.4"
- dependencies:
- randombytes: "npm:^2.0.5"
- safe-buffer: "npm:^5.1.0"
- checksum: 10c0/11aeed35515872e8f8a2edec306734e6b74c39c46653607f03c68385ab8030e2adcc4215f76b5e4598e028c4750d820afd5c65202527d831d2a5f207fe2bc87c
- languageName: node
- linkType: hard
-
-"raw-loader@npm:~0.5.0":
- version: 0.5.1
- resolution: "raw-loader@npm:0.5.1"
- checksum: 10c0/0961d64c0c21c25f8a1ecddd5bf17a4308e5d82addff11044a42c28dde35f14b34c6dbf4665adda7ce3a64922a3132785276c25e1f33c0c62689ff366ab8fb6e
- languageName: node
- linkType: hard
-
-"read-pkg-up@npm:^2.0.0":
- version: 2.0.0
- resolution: "read-pkg-up@npm:2.0.0"
- dependencies:
- find-up: "npm:^2.0.0"
- read-pkg: "npm:^2.0.0"
- checksum: 10c0/6fbb9f8c1a9ed3c8a5764387a77ac4456082f1fe98757d1ed300d8b0a4c70501f28cbb053ae7b3e0de6094930fb7258fbfe099957a53c999337aaf8bc53ff37f
- languageName: node
- linkType: hard
-
-"read-pkg@npm:^2.0.0":
- version: 2.0.0
- resolution: "read-pkg@npm:2.0.0"
- dependencies:
- load-json-file: "npm:^2.0.0"
- normalize-package-data: "npm:^2.3.2"
- path-type: "npm:^2.0.0"
- checksum: 10c0/c0d1b66c58e58fadaabe48c83c525fb1966304555e5089fab5ccce2c3dfe0fad726720b170a5fa23ff20452e22d1dbe817f5c63f03546bb85cbfb6b84da84c2b
- languageName: node
- linkType: hard
-
-"readable-stream@npm:1 || 2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.3, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6":
- version: 2.3.7
- resolution: "readable-stream@npm:2.3.7"
- dependencies:
- core-util-is: "npm:~1.0.0"
- inherits: "npm:~2.0.3"
- isarray: "npm:~1.0.0"
- process-nextick-args: "npm:~2.0.0"
- safe-buffer: "npm:~5.1.1"
- string_decoder: "npm:~1.1.1"
- util-deprecate: "npm:~1.0.1"
- checksum: 10c0/1708755e6cf9daff6ff60fa5b4575636472289c5b95d38058a91f94732b8d024a940a0d4d955639195ce42c22cab16973ee8fea8deedd24b5fec3dd596465f86
- languageName: node
- linkType: hard
-
-"readable-stream@npm:^3.6.0":
- version: 3.6.0
- resolution: "readable-stream@npm:3.6.0"
- dependencies:
- inherits: "npm:^2.0.3"
- string_decoder: "npm:^1.1.1"
- util-deprecate: "npm:^1.0.1"
- checksum: 10c0/937bedd29ac8a68331666291922bea892fa2be1a33269e582de9f844a2002f146cf831e39cd49fe6a378d3f0c27358f259ed0e20d20f0bdc6a3f8fc21fce42dc
- languageName: node
- linkType: hard
-
-"reduce-css-calc@npm:^1.2.6":
- version: 1.3.0
- resolution: "reduce-css-calc@npm:1.3.0"
- dependencies:
- balanced-match: "npm:^0.4.2"
- math-expression-evaluator: "npm:^1.2.14"
- reduce-function-call: "npm:^1.0.1"
- checksum: 10c0/c0b192bbdc7617ee7e3bcd09332f7f810c2b52f1da8521c4eda03879ead00bcca65bcae78d5bc8cd925610f776532a3457e8b2fd8f4bb936bdb40f057590f20d
- languageName: node
- linkType: hard
-
-"reduce-function-call@npm:^1.0.1":
- version: 1.0.3
- resolution: "reduce-function-call@npm:1.0.3"
- dependencies:
- balanced-match: "npm:^1.0.0"
- checksum: 10c0/7e844708d8c3d2946d3df5c537ee1e23c3c60c98ac0dbc724828f36d8d309c391a14995f47ce4f5ba84eea2df5c73d58e4ba100ba331af496920932421a322ed
- languageName: node
- linkType: hard
-
-"require-directory@npm:^2.1.1":
- version: 2.1.1
- resolution: "require-directory@npm:2.1.1"
- checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99
- languageName: node
- linkType: hard
-
-"require-main-filename@npm:^1.0.1":
- version: 1.0.1
- resolution: "require-main-filename@npm:1.0.1"
- checksum: 10c0/1ab87efb72a0e223a667154e92f29ca753fd42eb87f22db142b91c86d134e29ecf18af929111ccd255fd340b57d84a9d39489498d8dfd5136b300ded30a5f0b6
- languageName: node
- linkType: hard
-
-"resolve@npm:^1.10.0":
- version: 1.22.0
- resolution: "resolve@npm:1.22.0"
- dependencies:
- is-core-module: "npm:^2.8.1"
- path-parse: "npm:^1.0.7"
- supports-preserve-symlinks-flag: "npm:^1.0.0"
- bin:
- resolve: bin/resolve
- checksum: 10c0/efe07a7cd69015a95a5f4e6cc3d372354b93d67a70410ec686413b2054dfa0d5ef16ff52c057a83634debb17f278b99db6dbc60367a4475ae01dda29c6eaa6e4
- languageName: node
- linkType: hard
-
-"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin":
- version: 1.22.0
- resolution: "resolve@patch:resolve@npm%3A1.22.0#optional!builtin::version=1.22.0&hash=c3c19d"
- dependencies:
- is-core-module: "npm:^2.8.1"
- path-parse: "npm:^1.0.7"
- supports-preserve-symlinks-flag: "npm:^1.0.0"
- bin:
- resolve: bin/resolve
- checksum: 10c0/ef8061e81f40c39070748e8e263c8767d8fcc7c34e9ee85211b29fbc2aedb1ae7cda7d735c2cdbe9367060e9f85ec11c2694e370c121c6bcbb472a7bd0b19555
- languageName: node
- linkType: hard
-
-"rimraf@npm:^2.5.4, rimraf@npm:^2.6.2":
- version: 2.7.1
- resolution: "rimraf@npm:2.7.1"
- dependencies:
- glob: "npm:^7.1.3"
- bin:
- rimraf: ./bin.js
- checksum: 10c0/4eef73d406c6940927479a3a9dee551e14a54faf54b31ef861250ac815172bade86cc6f7d64a4dc5e98b65e4b18a2e1c9ff3b68d296be0c748413f092bb0dd40
- languageName: node
- linkType: hard
-
-"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1":
- version: 2.0.2
- resolution: "ripemd160@npm:2.0.2"
- dependencies:
- hash-base: "npm:^3.0.0"
- inherits: "npm:^2.0.1"
- checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a
- languageName: node
- linkType: hard
-
-"run-queue@npm:^1.0.0, run-queue@npm:^1.0.3":
- version: 1.0.3
- resolution: "run-queue@npm:1.0.3"
- dependencies:
- aproba: "npm:^1.1.1"
- checksum: 10c0/4e8964279d8f160f9ffaabe82eaad11a1d4c0db596a0f2b5257ae9d2b900c7e1ffcece3e5719199436f50718e1e7f45bb4bf7a82e331a4e734d67c2588a90cbb
- languageName: node
- linkType: hard
-
-"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0":
- version: 5.2.1
- resolution: "safe-buffer@npm:5.2.1"
- checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
- languageName: node
- linkType: hard
-
-"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
- version: 5.1.2
- resolution: "safe-buffer@npm:5.1.2"
- checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21
- languageName: node
- linkType: hard
-
-"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.1.0":
- version: 2.1.2
- resolution: "safer-buffer@npm:2.1.2"
- checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
- languageName: node
- linkType: hard
-
-"sax@npm:^1.2.4, sax@npm:~1.2.1":
- version: 1.2.4
- resolution: "sax@npm:1.2.4"
- checksum: 10c0/6e9b05ff443ee5e5096ce92d31c0740a20d33002fad714ebcb8fc7a664d9ee159103ebe8f7aef0a1f7c5ecacdd01f177f510dff95611c589399baf76437d3fe3
- languageName: node
- linkType: hard
-
-"schema-utils@npm:^0.3.0":
- version: 0.3.0
- resolution: "schema-utils@npm:0.3.0"
- dependencies:
- ajv: "npm:^5.0.0"
- checksum: 10c0/dd0694d6cfec83372273dcc73eeaab3cc8a8026cb0f57e896ea8ef3832421998423c6081ceea04e361ae95b40b6e5e3b9aebc7f3c6d8099ec99dc0a1843d9e67
- languageName: node
- linkType: hard
-
-"schema-utils@npm:^0.4.5":
- version: 0.4.7
- resolution: "schema-utils@npm:0.4.7"
- dependencies:
- ajv: "npm:^6.1.0"
- ajv-keywords: "npm:^3.1.0"
- checksum: 10c0/0de445cee6bf9a54b7b18b284b5f5ebe5b481f57e71854872c4215bd8eda73811a5f4964718c26f24b50f46a5eafbaf8a391459a7f10b78c242a798a3e0e24c8
- languageName: node
- linkType: hard
-
-"schema-utils@npm:^1.0.0":
- version: 1.0.0
- resolution: "schema-utils@npm:1.0.0"
- dependencies:
- ajv: "npm:^6.1.0"
- ajv-errors: "npm:^1.0.0"
- ajv-keywords: "npm:^3.1.0"
- checksum: 10c0/670e22d7f0ff0b6f4514a4d6fb27c359101b44b7dbfd9563af201af72eb4a9ff06144020cab5f85b16e88821fd09b97cbdae6c893721c6528c8cb704124e6a2f
- languageName: node
- linkType: hard
-
-"select2@npm:3.5.1":
- version: 3.5.1
- resolution: "select2@npm:3.5.1"
- checksum: 10c0/be98375c6c58fea8498f9b0f25fe9a10427b0338ae3c47d1ac49c09d8b31d233ac7f258621ea12d75b7eb9c1be441f90bf9aef03203b04d2838c4f9d54e73b31
- languageName: node
- linkType: hard
-
-"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0":
- version: 5.7.1
- resolution: "semver@npm:5.7.1"
- bin:
- semver: ./bin/semver
- checksum: 10c0/d4884f2aeca28bff35d0bd40ff0a9b2dfc4b36a883bf0ea5dc15d10d9a01bdc9041035b05f825d4b5ac8a56e490703dbf0d986d054de82cc5e9bad3f02ca6e00
- languageName: node
- linkType: hard
-
-"semver@npm:^7.3.5":
- version: 7.7.4
- resolution: "semver@npm:7.7.4"
- bin:
- semver: bin/semver.js
- checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2
- languageName: node
- linkType: hard
-
-"serialize-javascript@npm:^1.4.0":
- version: 1.9.1
- resolution: "serialize-javascript@npm:1.9.1"
- checksum: 10c0/01c1aabb28a50133ac7c86038ec14be26b13e0d8d43ac6ad4bad57789bc8dc33b33fef2424330ab9d138da40d9a3c2520f0d66e8c3474eeeab01669d3a38cae1
- languageName: node
- linkType: hard
-
-"set-blocking@npm:^2.0.0":
- version: 2.0.0
- resolution: "set-blocking@npm:2.0.0"
- checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454
- languageName: node
- linkType: hard
-
-"setimmediate@npm:^1.0.4":
- version: 1.0.5
- resolution: "setimmediate@npm:1.0.5"
- checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49
- languageName: node
- linkType: hard
-
-"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8":
- version: 2.4.11
- resolution: "sha.js@npm:2.4.11"
- dependencies:
- inherits: "npm:^2.0.1"
- safe-buffer: "npm:^5.0.1"
- bin:
- sha.js: ./bin.js
- checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5
- languageName: node
- linkType: hard
-
-"shebang-command@npm:^1.2.0":
- version: 1.2.0
- resolution: "shebang-command@npm:1.2.0"
- dependencies:
- shebang-regex: "npm:^1.0.0"
- checksum: 10c0/7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d
- languageName: node
- linkType: hard
-
-"shebang-regex@npm:^1.0.0":
- version: 1.0.0
- resolution: "shebang-regex@npm:1.0.0"
- checksum: 10c0/9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2
- languageName: node
- linkType: hard
-
-"signal-exit@npm:^3.0.0":
- version: 3.0.7
- resolution: "signal-exit@npm:3.0.7"
- checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912
- languageName: node
- linkType: hard
-
-"smart-buffer@npm:^4.2.0":
- version: 4.2.0
- resolution: "smart-buffer@npm:4.2.0"
- checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
- languageName: node
- linkType: hard
-
-"socks-proxy-agent@npm:^8.0.3":
- version: 8.0.5
- resolution: "socks-proxy-agent@npm:8.0.5"
- dependencies:
- agent-base: "npm:^7.1.2"
- debug: "npm:^4.3.4"
- socks: "npm:^2.8.3"
- checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6
- languageName: node
- linkType: hard
-
-"socks@npm:^2.8.3":
- version: 2.8.7
- resolution: "socks@npm:2.8.7"
- dependencies:
- ip-address: "npm:^10.0.1"
- smart-buffer: "npm:^4.2.0"
- checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2
- languageName: node
- linkType: hard
-
-"sort-keys@npm:^1.0.0":
- version: 1.1.2
- resolution: "sort-keys@npm:1.1.2"
- dependencies:
- is-plain-obj: "npm:^1.0.0"
- checksum: 10c0/5dd383b0299a40277051f7498c3999520138e2eb50d422962f658738341c9e82349fad4a3024d5ba1a3122688fbaf958f2a472d4c53bade55515097c2ce15420
- languageName: node
- linkType: hard
-
-"source-list-map@npm:^2.0.0":
- version: 2.0.1
- resolution: "source-list-map@npm:2.0.1"
- checksum: 10c0/2e5e421b185dcd857f46c3c70e2e711a65d717b78c5f795e2e248c9d67757882ea989b80ebc08cf164eeeda5f4be8aa95d3b990225070b2daaaf3257c5958149
- languageName: node
- linkType: hard
-
-"source-map@npm:0.1.x":
- version: 0.1.43
- resolution: "source-map@npm:0.1.43"
- dependencies:
- amdefine: "npm:>=0.0.4"
- checksum: 10c0/0cf092a91a0aadfad21ed7cb9ac78878b16242fcc9cd8f631e340b607f311d2f5391df574a29b9e243b35a7d1efd471f357b4b81da8e65145bcae242d46d0297
- languageName: node
- linkType: hard
-
-"source-map@npm:^0.5.3, source-map@npm:^0.5.6":
- version: 0.5.7
- resolution: "source-map@npm:0.5.7"
- checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599
- languageName: node
- linkType: hard
-
-"source-map@npm:^0.6.1, source-map@npm:~0.6.0, source-map@npm:~0.6.1":
- version: 0.6.1
- resolution: "source-map@npm:0.6.1"
- checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011
- languageName: node
- linkType: hard
-
-"spdx-correct@npm:^3.0.0":
- version: 3.1.1
- resolution: "spdx-correct@npm:3.1.1"
- dependencies:
- spdx-expression-parse: "npm:^3.0.0"
- spdx-license-ids: "npm:^3.0.0"
- checksum: 10c0/25909eecc4024963a8e398399dbdd59ddb925bd7dbecd9c9cf6df0d75c29b68cd30b82123564acc51810eb02cfc4b634a2e16e88aa982433306012e318849249
- languageName: node
- linkType: hard
-
-"spdx-exceptions@npm:^2.1.0":
- version: 2.3.0
- resolution: "spdx-exceptions@npm:2.3.0"
- checksum: 10c0/83089e77d2a91cb6805a5c910a2bedb9e50799da091f532c2ba4150efdef6e53f121523d3e2dc2573a340dc0189e648b03157097f65465b3a0c06da1f18d7e8a
- languageName: node
- linkType: hard
-
-"spdx-expression-parse@npm:^3.0.0":
- version: 3.0.1
- resolution: "spdx-expression-parse@npm:3.0.1"
- dependencies:
- spdx-exceptions: "npm:^2.1.0"
- spdx-license-ids: "npm:^3.0.0"
- checksum: 10c0/6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171
- languageName: node
- linkType: hard
-
-"spdx-license-ids@npm:^3.0.0":
- version: 3.0.11
- resolution: "spdx-license-ids@npm:3.0.11"
- checksum: 10c0/6c53cfdb3417e80fd612341319f1296507f797e0387e144047f547c378d9d38d6032ec342de42ef7883256f6690b2fca9889979d0dd015a61dc49b323f9b379b
- languageName: node
- linkType: hard
-
-"sprintf-js@npm:~1.0.2":
- version: 1.0.3
- resolution: "sprintf-js@npm:1.0.3"
- checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb
- languageName: node
- linkType: hard
-
-"ssri@npm:^13.0.0":
- version: 13.0.1
- resolution: "ssri@npm:13.0.1"
- dependencies:
- minipass: "npm:^7.0.3"
- checksum: 10c0/cf6408a18676c57ff2ed06b8a20dc64bb3e748e5c7e095332e6aecaa2b8422b1e94a739a8453bf65156a8a47afe23757ba4ab52d3ea3b62322dc40875763e17a
- languageName: node
- linkType: hard
-
-"ssri@npm:^5.2.4":
- version: 5.3.0
- resolution: "ssri@npm:5.3.0"
- dependencies:
- safe-buffer: "npm:^5.1.1"
- checksum: 10c0/f80372ec982cacb3d8e4b53c2a82a7f7502d915a57aef99a29e6cd293302d5944185a569df5fce694a857abb1e602585fcee90182cd2e853bae3d1c20a84d8cb
- languageName: node
- linkType: hard
-
-"stream-browserify@npm:^2.0.1":
- version: 2.0.2
- resolution: "stream-browserify@npm:2.0.2"
- dependencies:
- inherits: "npm:~2.0.1"
- readable-stream: "npm:^2.0.2"
- checksum: 10c0/485562bd5d962d633ae178449029c6fa2611052e356bdb5668f768544aa4daa94c4f9a97de718f3f30ad98f3cb98a5f396252bb3855aff153c138f79c0e8f6ac
- languageName: node
- linkType: hard
-
-"stream-each@npm:^1.1.0":
- version: 1.2.3
- resolution: "stream-each@npm:1.2.3"
- dependencies:
- end-of-stream: "npm:^1.1.0"
- stream-shift: "npm:^1.0.0"
- checksum: 10c0/7ed229d3b7c24373058b5742b00066da8d3122d1487c8219a025ed53a8978545c77654a529a8e9c62ba83ae80c424cbb0204776b49abf72270d2e8154831dd5f
- languageName: node
- linkType: hard
-
-"stream-http@npm:^2.7.2":
- version: 2.8.3
- resolution: "stream-http@npm:2.8.3"
- dependencies:
- builtin-status-codes: "npm:^3.0.0"
- inherits: "npm:^2.0.1"
- readable-stream: "npm:^2.3.6"
- to-arraybuffer: "npm:^1.0.0"
- xtend: "npm:^4.0.0"
- checksum: 10c0/fbe7d327a29216bbabe88d3819bb8f7a502f11eeacf3212579e5af1f76fa7283f6ffa66134ab7d80928070051f571d1029e85f65ce3369fffd4c4df3669446c4
- languageName: node
- linkType: hard
-
-"stream-shift@npm:^1.0.0":
- version: 1.0.1
- resolution: "stream-shift@npm:1.0.1"
- checksum: 10c0/b63a0d178cde34b920ad93e2c0c9395b840f408d36803b07c61416edac80ef9e480a51910e0ceea0d679cec90921bcd2cccab020d3a9fa6c73a98b0fbec132fd
- languageName: node
- linkType: hard
-
-"strict-uri-encode@npm:^1.0.0":
- version: 1.1.0
- resolution: "strict-uri-encode@npm:1.1.0"
- checksum: 10c0/eb8a4109ba2588239787389313ba58ec49e043d4c64a1d44716defe5821a68ae49abe0cdefed9946ca9fc2a4af7ecf321da92422b0a67258ec0a3638b053ae62
- languageName: node
- linkType: hard
-
-"string-width@npm:^1.0.1":
- version: 1.0.2
- resolution: "string-width@npm:1.0.2"
- dependencies:
- code-point-at: "npm:^1.0.0"
- is-fullwidth-code-point: "npm:^1.0.0"
- strip-ansi: "npm:^3.0.0"
- checksum: 10c0/c558438baed23a9ab9370bb6a939acbdb2b2ffc517838d651aad0f5b2b674fb85d460d9b1d0b6a4c210dffd09e3235222d89a5bd4c0c1587f78b2bb7bc00c65e
- languageName: node
- linkType: hard
-
-"string-width@npm:^2.0.0":
- version: 2.1.1
- resolution: "string-width@npm:2.1.1"
- dependencies:
- is-fullwidth-code-point: "npm:^2.0.0"
- strip-ansi: "npm:^4.0.0"
- checksum: 10c0/e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610
- languageName: node
- linkType: hard
-
-"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1":
- version: 1.3.0
- resolution: "string_decoder@npm:1.3.0"
- dependencies:
- safe-buffer: "npm:~5.2.0"
- checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
- languageName: node
- linkType: hard
-
-"string_decoder@npm:~1.1.1":
- version: 1.1.1
- resolution: "string_decoder@npm:1.1.1"
- dependencies:
- safe-buffer: "npm:~5.1.0"
- checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^3.0.0, strip-ansi@npm:^3.0.1":
- version: 3.0.1
- resolution: "strip-ansi@npm:3.0.1"
- dependencies:
- ansi-regex: "npm:^2.0.0"
- checksum: 10c0/f6e7fbe8e700105dccf7102eae20e4f03477537c74b286fd22cfc970f139002ed6f0d9c10d0e21aa9ed9245e0fa3c9275930e8795c5b947da136e4ecb644a70f
- languageName: node
- linkType: hard
-
-"strip-ansi@npm:^4.0.0":
- version: 4.0.0
- resolution: "strip-ansi@npm:4.0.0"
- dependencies:
- ansi-regex: "npm:^3.0.0"
- checksum: 10c0/d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d
- languageName: node
- linkType: hard
-
-"strip-bom@npm:^3.0.0":
- version: 3.0.0
- resolution: "strip-bom@npm:3.0.0"
- checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1
- languageName: node
- linkType: hard
-
-"strip-eof@npm:^1.0.0":
- version: 1.0.0
- resolution: "strip-eof@npm:1.0.0"
- checksum: 10c0/f336beed8622f7c1dd02f2cbd8422da9208fae81daf184f73656332899978919d5c0ca84dc6cfc49ad1fc4dd7badcde5412a063cf4e0d7f8ed95a13a63f68f45
- languageName: node
- linkType: hard
-
-"style-loader@npm:^0.23.1":
- version: 0.23.1
- resolution: "style-loader@npm:0.23.1"
- dependencies:
- loader-utils: "npm:^1.1.0"
- schema-utils: "npm:^1.0.0"
- checksum: 10c0/9752920e4284e53067282f8cca68402604db152b60251525106414ceb7dedbfa5571ad544c95062006c1ff8801aa337e231e848dd3f1a8f73ec3fa680f530895
- languageName: node
- linkType: hard
-
-"supports-color@npm:^2.0.0":
- version: 2.0.0
- resolution: "supports-color@npm:2.0.0"
- checksum: 10c0/570e0b63be36cccdd25186350a6cb2eaad332a95ff162fa06d9499982315f2fe4217e69dd98e862fbcd9c81eaff300a825a1fe7bf5cc752e5b84dfed042b0dda
- languageName: node
- linkType: hard
-
-"supports-color@npm:^3.2.3":
- version: 3.2.3
- resolution: "supports-color@npm:3.2.3"
- dependencies:
- has-flag: "npm:^1.0.0"
- checksum: 10c0/d39a57dbd75c3b5740654f8ec16aaf7203b8d12b8a51314507bed590c9081120805f105b4ce741db13105e6f842ac09700e4bd665b9ffc46eb0b34ba54720bd3
- languageName: node
- linkType: hard
-
-"supports-color@npm:^4.2.1":
- version: 4.5.0
- resolution: "supports-color@npm:4.5.0"
- dependencies:
- has-flag: "npm:^2.0.0"
- checksum: 10c0/2dc369eeac73954e87037dea1ebae0238b2abc0a39d7e35aa60eb8a84cc8d1dcade8b62e010597f5859f94c937e992abe6a6195460855fcc5e51f8cfc7fcc72a
- languageName: node
- linkType: hard
-
-"supports-color@npm:^5.3.0, supports-color@npm:^5.4.0":
- version: 5.5.0
- resolution: "supports-color@npm:5.5.0"
- dependencies:
- has-flag: "npm:^3.0.0"
- checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05
- languageName: node
- linkType: hard
-
-"supports-preserve-symlinks-flag@npm:^1.0.0":
- version: 1.0.0
- resolution: "supports-preserve-symlinks-flag@npm:1.0.0"
- checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39
- languageName: node
- linkType: hard
-
-"svgo@npm:^0.7.0":
- version: 0.7.2
- resolution: "svgo@npm:0.7.2"
- dependencies:
- coa: "npm:~1.0.1"
- colors: "npm:~1.1.2"
- csso: "npm:~2.3.1"
- js-yaml: "npm:~3.7.0"
- mkdirp: "npm:~0.5.1"
- sax: "npm:~1.2.1"
- whet.extend: "npm:~0.9.9"
- bin:
- svgo: ./bin/svgo
- checksum: 10c0/cc3314ec0227b7fd4dfcbc622b69e45ac79462a2add2c5198b863f107e4afe459e01812e668fae868b3fb02326ffbb4cd25ca7d1f2580656b14beae10eb2596c
- languageName: node
- linkType: hard
-
-"tapable@npm:^0.2.7":
- version: 0.2.9
- resolution: "tapable@npm:0.2.9"
- checksum: 10c0/93d0e5994621a9496112fe241784d59325684b509eb74d1abd9032802639b53ba9619db0f5db6ccdab994a5279bc4ed07b638a8a25143ba6b10603e409f314fb
- languageName: node
- linkType: hard
-
-"tar@npm:^7.5.4":
- version: 7.5.12
- resolution: "tar@npm:7.5.12"
- dependencies:
- "@isaacs/fs-minipass": "npm:^4.0.0"
- chownr: "npm:^3.0.0"
- minipass: "npm:^7.1.2"
- minizlib: "npm:^3.1.0"
- yallist: "npm:^5.0.0"
- checksum: 10c0/3825c5974f5fde792981f47ee9ffea021ee7f4b552b7ab95eeb98e5dfadfd5a5d5861f01fb772e2e5637a41980d3c019fd6cdad1be48b462b886abd7fe0fa17c
- languageName: node
- linkType: hard
-
-"through2@npm:^2.0.0":
- version: 2.0.5
- resolution: "through2@npm:2.0.5"
- dependencies:
- readable-stream: "npm:~2.3.6"
- xtend: "npm:~4.0.1"
- checksum: 10c0/cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade
- languageName: node
- linkType: hard
-
-"timers-browserify@npm:^2.0.4":
- version: 2.0.12
- resolution: "timers-browserify@npm:2.0.12"
- dependencies:
- setimmediate: "npm:^1.0.4"
- checksum: 10c0/98e84db1a685bc8827c117a8bc62aac811ad56a995d07938fc7ed8cdc5bf3777bfe2d4e5da868847194e771aac3749a20f6cdd22091300fe889a76fe214a4641
- languageName: node
- linkType: hard
-
-"tinyglobby@npm:^0.2.12":
- version: 0.2.15
- resolution: "tinyglobby@npm:0.2.15"
- dependencies:
- fdir: "npm:^6.5.0"
- picomatch: "npm:^4.0.3"
- checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844
- languageName: node
- linkType: hard
-
-"to-arraybuffer@npm:^1.0.0":
- version: 1.0.1
- resolution: "to-arraybuffer@npm:1.0.1"
- checksum: 10c0/2460bd95524f4845a751e4f8bf9937f9f3dcd1651f104e1512868782f858f8302c1cf25bbc30794bc1b3ff65c4e135158377302f2abaff43a2d8e3c38dfe098c
- languageName: node
- linkType: hard
+ version "4.3.0"
+ resolved "https://github.com/CenterForOpenScience/dropzone.git#aba21eb6b82cc823ac7a7a53d6e035791c082bae"
+
+dunder-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
+ integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
+ dependencies:
+ call-bind-apply-helpers "^1.0.1"
+ es-errors "^1.3.0"
+ gopd "^1.2.0"
+
+duplexify@^3.4.2, duplexify@^3.6.0:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+ integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
+ dependencies:
+ end-of-stream "^1.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+ stream-shift "^1.0.0"
+
+electron-to-chromium@^1.2.7:
+ version "1.5.321"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz#57a80554e2e7fd65e3689d320f52a64723472d5d"
+ integrity sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==
+
+elliptic@^6.5.3, elliptic@^6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06"
+ integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
+emojis-list@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+ integrity sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==
+
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c"
+ integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==
+ dependencies:
+ once "^1.4.0"
+
+enhanced-resolve@^3.4.0:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e"
+ integrity sha512-ZaAux1rigq1e2nQrztHn4h2ugvpzZxs64qneNah+8Mh/K0CRqJFJc+UoXnUsq+1yX+DmQFPPdVqboKAJ89e0Iw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ memory-fs "^0.4.0"
+ object-assign "^4.0.1"
+ tapable "^0.2.7"
+
+errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
+ integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
+ dependencies:
+ prr "~1.0.1"
+
+error-ex@^1.2.0:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414"
+ integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-define-property@^1.0.0, es-define-property@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
+ integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
+
+es-errors@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
+ integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
+
+es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
+ integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
+ dependencies:
+ es-errors "^1.3.0"
+
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14:
+ version "0.10.64"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
+ integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
+ dependencies:
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.3"
+ esniff "^2.0.1"
+ next-tick "^1.1.0"
+
+es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.35"
+ es6-symbol "^3.1.1"
+
+es6-map@^0.1.3:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
+ integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-set "~0.1.5"
+ es6-symbol "~3.1.1"
+ event-emitter "~0.3.5"
+
+es6-set@~0.1.5:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8"
+ integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==
+ dependencies:
+ d "^1.0.1"
+ es5-ext "^0.10.62"
+ es6-iterator "~2.0.3"
+ es6-symbol "^3.1.3"
+ event-emitter "^0.3.5"
+ type "^2.7.2"
+
+es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c"
+ integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==
+ dependencies:
+ d "^1.0.2"
+ ext "^1.7.0"
+
+es6-weak-map@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
+ integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.46"
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.1"
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+escope@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+ integrity sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==
+ dependencies:
+ es6-map "^0.1.3"
+ es6-weak-map "^2.0.1"
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+esniff@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308"
+ integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==
+ dependencies:
+ d "^1.0.1"
+ es5-ext "^0.10.62"
+ event-emitter "^0.3.5"
+ type "^2.7.2"
+
+esprima@^2.6.0:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+ integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==
+
+esrecurse@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+event-emitter@^0.3.5, event-emitter@~0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+events@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+ integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
+ dependencies:
+ md5.js "^1.3.4"
+ safe-buffer "^5.1.1"
+
+execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+exports-loader@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.3.tgz#57dc78917f709b96f247fa91e69b554c855013c8"
+ integrity sha512-vBQgTnvmEB7qWmr7gzAzJRWptzYhkhvdXeH8sRnS//mIai6MgLZe1crlQ+VWTjCCXLlnhGuiuVMq0YfjA5AUOw==
+ dependencies:
+ loader-utils "0.2.x"
+ source-map "0.1.x"
+
+ext@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
+ integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==
+ dependencies:
+ type "^2.7.2"
+
+fast-deep-equal@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
+ integrity sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==
+
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fastparse@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
+ integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
+
+file-loader@^0.11.2:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.2.tgz#4ff1df28af38719a6098093b88c82c71d1794a34"
+ integrity sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==
+ dependencies:
+ loader-utils "^1.0.2"
+
+find-cache-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f"
+ integrity sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^1.0.0"
+ pkg-dir "^2.0.0"
+
+find-up@^2.0.0, find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==
+ dependencies:
+ locate-path "^2.0.0"
+
+flatten@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
+ integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==
+
+flush-write-stream@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
+ integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
+ dependencies:
+ inherits "^2.0.3"
+ readable-stream "^2.3.6"
+
+for-each@^0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47"
+ integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==
+ dependencies:
+ is-callable "^1.2.7"
+
+from2@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+
+fs-write-stream-atomic@^1.0.8:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+ integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==
+ dependencies:
+ graceful-fs "^4.1.2"
+ iferr "^0.1.5"
+ imurmurhash "^0.1.4"
+ readable-stream "1 || 2"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
+get-caller-file@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+
+get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
+ integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
+ dependencies:
+ call-bind-apply-helpers "^1.0.2"
+ es-define-property "^1.0.1"
+ es-errors "^1.3.0"
+ es-object-atoms "^1.1.1"
+ function-bind "^1.1.2"
+ get-proto "^1.0.1"
+ gopd "^1.2.0"
+ has-symbols "^1.1.0"
+ hasown "^2.0.2"
+ math-intrinsics "^1.1.0"
+
+get-proto@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
+ integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
+ dependencies:
+ dunder-proto "^1.0.1"
+ es-object-atoms "^1.0.0"
+
+get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+ integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==
+
+glob-to-regexp@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+ integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+glob@^7.1.2, glob@^7.1.3:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+gopd@^1.0.1, gopd@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
+ integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+gsap@3.9.1:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/gsap/-/gsap-3.9.1.tgz#d4c7443540497afee9ddc0824fd0180224e33360"
+ integrity sha512-JSGVYoC6da4pIjdF/yxFU6Rz8OojOIDkbooveZlfNg0+JIoFoRruyfWAEi6R/gUeNcuOiTqUIb0gi1nCNrHf8w==
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+ integrity sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==
+
+has-flag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+ integrity sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
+ integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
+ dependencies:
+ es-define-property "^1.0.0"
+
+has-symbols@^1.0.3, has-symbols@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
+ integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
+
+has-tostringtag@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
+ integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
+ dependencies:
+ has-symbols "^1.0.3"
+
+has@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6"
+ integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==
+
+hash-base@^3.0.0, hash-base@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.2.tgz#79d72def7611c3f6e3c3b5730652638001b10a74"
+ integrity sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==
+ dependencies:
+ inherits "^2.0.4"
+ readable-stream "^2.3.8"
+ safe-buffer "^5.2.1"
+ to-buffer "^1.2.1"
+
+hash-base@~3.0.4:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.5.tgz#52480e285395cf7fba17dc4c9e47acdc7f248a8a"
+ integrity sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==
+ dependencies:
+ inherits "^2.0.4"
+ safe-buffer "^5.2.1"
+
+hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+ integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.1"
+
+hasown@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
+ dependencies:
+ function-bind "^1.1.2"
+
+highlight.js@~9.18.2:
+ version "9.18.5"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz#d18a359867f378c138d6819edfc2a8acd5f29825"
+ integrity sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==
+
+hmac-drbg@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+hosted-git-info@^2.1.4:
+ version "2.8.9"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
+ integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+
+html-comment-regex@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
+ integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
+
+https-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+ integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==
+
+iconv-lite@^0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+icss-replace-symbols@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
+ integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==
+
+icss-utils@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962"
+ integrity sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==
+ dependencies:
+ postcss "^6.0.1"
+
+ieee754@^1.1.4:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+iferr@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+ integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==
+
+image-size@~0.5.0:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
+ integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
+
+imports-loader@^0.6.3:
+ version "0.6.5"
+ resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.6.5.tgz#ae74653031d59e37b3c2fb2544ac61aeae3530a6"
+ integrity sha512-fYIzBL9JOzJszvfeSGSKVjAtkWEtPUwP+OWiUxIWApcxsYh3iqZWZAp8xjTuhsvqglhqaetxeLLTaYyxIv1d4Q==
+ dependencies:
+ loader-utils "0.2.x"
+ source-map "0.1.x"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+indexes-of@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
+ integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
+
+interpret@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
+
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==
+
+is-absolute-url@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
+ integrity sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+is-callable@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
+ integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+
+is-core-module@^2.16.1:
+ version "2.16.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4"
+ integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==
+ dependencies:
+ hasown "^2.0.2"
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
+
+is-plain-obj@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+ integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
+
+is-svg@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9"
+ integrity sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw==
+ dependencies:
+ html-comment-regex "^1.1.0"
+
+is-typed-array@^1.1.14:
+ version "1.1.15"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b"
+ integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==
+ dependencies:
+ which-typed-array "^1.1.16"
+
+is-what@^4.1.8:
+ version "4.1.16"
+ resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f"
+ integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==
+
+isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+jquery-ui@>=1.10.4:
+ version "1.14.2"
+ resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.14.2.tgz#515288b5c730b720acca6e53a0366827ad834053"
+ integrity sha512-1gSl7PUjyipa2adSr780Ujk16faicrV7PjPPzPtvWk7tTqBnsqp67NNV9jZK2+BIxUPXWSnIUU/LBCgwgGZE+Q==
+ dependencies:
+ jquery ">=1.12.0 <5.0.0"
+
+jquery@>=1.11.0, "jquery@>=1.12.0 <5.0.0", jquery@>=1.7:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-4.0.0.tgz#95c33ac29005ff72ec444c5ba1cf457e61404fbb"
+ integrity sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg==
+
+js-base64@^2.1.9:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4"
+ integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==
+
+js-cookie@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414"
+ integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==
+
+js-md5@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/js-md5/-/js-md5-0.7.3.tgz#b4f2fbb0b327455f598d6727e38ec272cd09c3f2"
+ integrity sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==
+
+js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+ integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==
+
+js-yaml@~3.7.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
+ integrity sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^2.6.0"
+
+json-loader@^0.5.4:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
+ integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==
+
+json-schema-traverse@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+ integrity sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json5@^0.5.0, json5@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+ integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==
+
+json5@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
+ integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
+ dependencies:
+ minimist "^1.2.0"
+
+jstimezonedetect@^1.0.6:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/jstimezonedetect/-/jstimezonedetect-1.0.7.tgz#54bc13ff9960a6510288665cc9596244e21bd29d"
+ integrity sha512-ARADHortktl9IZ1tr4GHwGPIAzgz3mLNCbR/YjWtRtc/O0o634O3NeFlpLjv95EvuDA5dc8z6yfgbS8nUc4zcQ==
+
+knockout.validation@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/knockout.validation/-/knockout.validation-2.0.4.tgz#e87f82f41b5bdcb7029ea6be3fef2a903054558b"
+ integrity sha512-64eDuEvALXf5GsRK5b2WIetF/eSIlTsw/ZDerrhKt+3eRBBk95SXdczTLhcoNL4Hi8Gym14YYIjj7vLCXEeHDA==
+
+knockout@~3.4.2:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/knockout/-/knockout-3.4.2.tgz#e87958de77ad1e936f7ce645bab8b5d7c456d937"
+ integrity sha512-yoY25btIjj8hLNd2HPF3Ld9fAf8idd/julcomODSdMX98C4pfODnWmPYmhnor9zh7cEAHpkMY04oLGKLXMqfvw==
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==
+ dependencies:
+ invert-kv "^1.0.0"
+
+less@^4.1.2:
+ version "4.6.4"
+ resolved "https://registry.yarnpkg.com/less/-/less-4.6.4.tgz#3ff8068e6c8a59f1ece8a6b9227bda28c1ed68a2"
+ integrity sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg==
+ dependencies:
+ copy-anything "^3.0.5"
+ parse-node-version "^1.0.1"
+ optionalDependencies:
+ errno "^0.1.1"
+ graceful-fs "^4.1.2"
+ image-size "~0.5.0"
+ make-dir "^2.1.0"
+ mime "^1.4.1"
+ needle "^3.1.0"
+ source-map "~0.6.0"
+
+linkifyjs@^3.0.5:
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-3.0.5.tgz#99e51a3a0c0e232fcb63ebb89eea3ff923378f34"
+ integrity sha512-1Y9XQH65eQKA9p2xtk+zxvnTeQBG7rdAXSkUG97DmuI/Xhji9uaUzaWxRj6rf9YC0v8KKHkxav7tnLX82Sz5Fg==
+
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ integrity sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
+loader-runner@^2.3.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
+ integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
+
+loader-utils@0.2.x:
+ version "0.2.17"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
+ integrity sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ json5 "^0.5.0"
+ object-assign "^4.0.1"
+
+loader-utils@^1.0.2, loader-utils@^1.1.0:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
+ integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^1.0.1"
+
+loaders.css@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/loaders.css/-/loaders.css-0.1.2.tgz#3a9fb43726c73334a38142af9d0629019b658743"
+ integrity sha512-Rhowlq24ey1VOeor+3wYOt9+MjaxBOJm1u4KlQgNC3+0xJ0LS4wq4iG57D/BPzvuD/7HHDGQOWJ+81oR2EI9bQ==
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
+
+lodash.find@^4.3.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1"
+ integrity sha512-yaRZoAV3Xq28F1iafWN1+a0rflOej93l1DQUejs3SZ41h2O9UJBoS9aueGjPDgAl4B6tPC0NuuchLKaDQQ3Isg==
+
+lodash.get@^4.2.1:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+ integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==
+
+lodash.has@^4.5.2:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"
+ integrity sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g==
+
+lodash.includes@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+ integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==
+
+lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
+
+lodash.set@^4.3.2:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"
+ integrity sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==
+
+lodash.uniq@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+ integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
+
+lodash@^4.17.14:
+ version "4.17.23"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a"
+ integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
+
+lru-cache@^4.0.1, lru-cache@^4.1.1:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+make-dir@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
+ integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
+ dependencies:
+ pify "^3.0.0"
+
+make-dir@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+ integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.0"
+
+math-expression-evaluator@^1.2.14:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.4.0.tgz#3d66031117fbb7b9715ea6c9c68c2cd2eebd37e2"
+ integrity sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw==
+
+math-intrinsics@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
+ integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
+
+md5.js@^1.3.4:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
+ integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+mem@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ integrity sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==
+ dependencies:
+ mimic-fn "^1.0.0"
+
+memory-fs@^0.4.0, memory-fs@~0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+ integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+miller-rabin@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+ integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
+ dependencies:
+ bn.js "^4.0.0"
+ brorand "^1.0.1"
+
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@~2.1.34:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mime@^1.4.1:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+
+minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+ integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
+
+minimatch@^3.1.1:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e"
+ integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@^1.2.0, minimist@^1.2.6:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+mississippi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f"
+ integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==
+ dependencies:
+ concat-stream "^1.5.0"
+ duplexify "^3.4.2"
+ end-of-stream "^1.1.0"
+ flush-write-stream "^1.0.0"
+ from2 "^2.1.0"
+ parallel-transform "^1.1.0"
+ pump "^2.0.1"
+ pumpify "^1.3.3"
+ stream-each "^1.1.0"
+ through2 "^2.0.0"
+
+mithril@0.2.0, mithril@>=0.2:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/mithril/-/mithril-0.2.0.tgz#98e007699a15b243a26b3b522f61bee90fa5ffb9"
+ integrity sha512-mp4pkyARLJmTyzuHJs8Q3Voh0Hg38n0HSmzQY1xhUKP9Hg+tLx5Dfzjf7Jlu9SWMCU9giZX/Xj4xsYFqjszSWA==
+
+mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
+ integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
+ dependencies:
+ minimist "^1.2.6"
+
+moment@^2.14.1:
+ version "2.30.1"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
+ integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
+
+move-concurrently@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+ integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==
+ dependencies:
+ aproba "^1.1.1"
+ copy-concurrently "^1.0.0"
+ fs-write-stream-atomic "^1.0.8"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.3"
+
+needle@^3.1.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/needle/-/needle-3.5.0.tgz#aa2023642cb41b11a11babb733fd8fa952919112"
+ integrity sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==
+ dependencies:
+ iconv-lite "^0.6.3"
+ sax "^1.2.4"
+
+next-tick@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
+ integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
+
+node-libs-browser@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
+ integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
+ dependencies:
+ assert "^1.1.1"
+ browserify-zlib "^0.2.0"
+ buffer "^4.3.0"
+ console-browserify "^1.1.0"
+ constants-browserify "^1.0.0"
+ crypto-browserify "^3.11.0"
+ domain-browser "^1.1.1"
+ events "^3.0.0"
+ https-browserify "^1.0.0"
+ os-browserify "^0.3.0"
+ path-browserify "0.0.1"
+ process "^0.11.10"
+ punycode "^1.2.4"
+ querystring-es3 "^0.2.0"
+ readable-stream "^2.3.3"
+ stream-browserify "^2.0.1"
+ stream-http "^2.7.2"
+ string_decoder "^1.0.0"
+ timers-browserify "^2.0.4"
+ tty-browserify "0.0.0"
+ url "^0.11.0"
+ util "^0.11.0"
+ vm-browserify "^1.0.1"
+
+normalize-package-data@^2.3.2:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ dependencies:
+ hosted-git-info "^2.1.4"
+ resolve "^1.10.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
+
+normalize-url@^1.4.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
+ integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==
+ dependencies:
+ object-assign "^4.0.1"
+ prepend-http "^1.0.0"
+ query-string "^4.1.0"
+ sort-keys "^1.0.0"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
+ dependencies:
+ path-key "^2.0.0"
+
+num2fraction@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+ integrity sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+ integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
+
+object-assign@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
+ integrity sha512-jHP15vXVGeVh1HuaA2wY6lxk+whK/x4KBG88VXeRma7CCun7iGD5qPc4eYykQ9sdQvg8jkwFKsSxHln2ybW3xQ==
+
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
+object-inspect@^1.13.3:
+ version "1.13.4"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
+ integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==
+
+object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object.assign@^4.1.4:
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d"
+ integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==
+ dependencies:
+ call-bind "^1.0.8"
+ call-bound "^1.0.3"
+ define-properties "^1.2.1"
+ es-object-atoms "^1.0.0"
+ has-symbols "^1.1.0"
+ object-keys "^1.1.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+os-browserify@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
+ integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==
+
+os-locale@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
+ dependencies:
+ execa "^0.7.0"
+ lcid "^1.0.0"
+ mem "^1.1.0"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
+
+p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+ dependencies:
+ p-try "^1.0.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==
+ dependencies:
+ p-limit "^1.1.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==
+
+pako@~1.0.5:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
+parallel-transform@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
+ integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
+ dependencies:
+ cyclist "^1.0.1"
+ inherits "^2.0.3"
+ readable-stream "^2.1.5"
+
+parse-asn1@^5.0.0, parse-asn1@^5.1.9:
+ version "5.1.9"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.9.tgz#8dd24c3ea8da77dffbc708d94eaf232fd6156e95"
+ integrity sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==
+ dependencies:
+ asn1.js "^4.10.1"
+ browserify-aes "^1.2.0"
+ evp_bytestokey "^1.0.3"
+ pbkdf2 "^3.1.5"
+ safe-buffer "^5.2.1"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==
+ dependencies:
+ error-ex "^1.2.0"
+
+parse-node-version@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
+ integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
+
+path-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
+ integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-key@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
+
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ integrity sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==
+ dependencies:
+ pify "^2.0.0"
+
+pbkdf2@^3.1.2, pbkdf2@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.5.tgz#444a59d7a259a95536c56e80c89de31cc01ed366"
+ integrity sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==
+ dependencies:
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ ripemd160 "^2.0.3"
+ safe-buffer "^5.2.1"
+ sha.js "^2.4.12"
+ to-buffer "^1.2.1"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==
+
+pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+ integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
+pikaday@^1.3.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/pikaday/-/pikaday-1.8.2.tgz#72cc73fab7ccc068cbdf7dcaa1ce400fcfd894e3"
+ integrity sha512-TNtsE+34BIax3WtkB/qqu5uepV1McKYEgvL3kWzU7aqPCpMEN6rBF3AOwu4WCwAealWlBGobXny/9kJb49C1ew==
+
+pkg-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+ integrity sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==
+ dependencies:
+ find-up "^2.1.0"
+
+possible-typed-array-names@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae"
+ integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==
+
+postcss-calc@^5.2.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e"
+ integrity sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q==
+ dependencies:
+ postcss "^5.0.2"
+ postcss-message-helpers "^2.0.0"
+ reduce-css-calc "^1.2.6"
+
+postcss-colormin@^2.1.8:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b"
+ integrity sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w==
+ dependencies:
+ colormin "^1.0.5"
+ postcss "^5.0.13"
+ postcss-value-parser "^3.2.3"
+
+postcss-convert-values@^2.3.4:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d"
+ integrity sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA==
+ dependencies:
+ postcss "^5.0.11"
+ postcss-value-parser "^3.1.2"
+
+postcss-discard-comments@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d"
+ integrity sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg==
+ dependencies:
+ postcss "^5.0.14"
+
+postcss-discard-duplicates@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932"
+ integrity sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA==
+ dependencies:
+ postcss "^5.0.4"
+
+postcss-discard-empty@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5"
+ integrity sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og==
+ dependencies:
+ postcss "^5.0.14"
+
+postcss-discard-overridden@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58"
+ integrity sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA==
+ dependencies:
+ postcss "^5.0.16"
+
+postcss-discard-unused@^2.2.1:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433"
+ integrity sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg==
+ dependencies:
+ postcss "^5.0.14"
+ uniqs "^2.0.0"
+
+postcss-filter-plugins@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec"
+ integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==
+ dependencies:
+ postcss "^5.0.4"
+
+postcss-merge-idents@^2.1.5:
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270"
+ integrity sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA==
+ dependencies:
+ has "^1.0.1"
+ postcss "^5.0.10"
+ postcss-value-parser "^3.1.1"
+
+postcss-merge-longhand@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658"
+ integrity sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg==
+ dependencies:
+ postcss "^5.0.4"
+
+postcss-merge-rules@^2.0.3:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721"
+ integrity sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q==
+ dependencies:
+ browserslist "^1.5.2"
+ caniuse-api "^1.5.2"
+ postcss "^5.0.4"
+ postcss-selector-parser "^2.2.2"
+ vendors "^1.0.0"
+
+postcss-message-helpers@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e"
+ integrity sha512-tPLZzVAiIJp46TBbpXtrUAKqedXSyW5xDEo1sikrfEfnTs+49SBZR/xDdqCiJvSSbtr615xDsaMF3RrxS2jZlA==
+
+postcss-minify-font-values@^1.0.2:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69"
+ integrity sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ==
+ dependencies:
+ object-assign "^4.0.1"
+ postcss "^5.0.4"
+ postcss-value-parser "^3.0.2"
+
+postcss-minify-gradients@^1.0.1:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1"
+ integrity sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q==
+ dependencies:
+ postcss "^5.0.12"
+ postcss-value-parser "^3.3.0"
+
+postcss-minify-params@^1.0.4:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3"
+ integrity sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow==
+ dependencies:
+ alphanum-sort "^1.0.1"
+ postcss "^5.0.2"
+ postcss-value-parser "^3.0.2"
+ uniqs "^2.0.0"
+
+postcss-minify-selectors@^2.0.4:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf"
+ integrity sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA==
+ dependencies:
+ alphanum-sort "^1.0.2"
+ has "^1.0.1"
+ postcss "^5.0.14"
+ postcss-selector-parser "^2.0.0"
+
+postcss-modules-extract-imports@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a"
+ integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==
+ dependencies:
+ postcss "^6.0.1"
+
+postcss-modules-local-by-default@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069"
+ integrity sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==
+ dependencies:
+ css-selector-tokenizer "^0.7.0"
+ postcss "^6.0.1"
+
+postcss-modules-scope@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90"
+ integrity sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==
+ dependencies:
+ css-selector-tokenizer "^0.7.0"
+ postcss "^6.0.1"
+
+postcss-modules-values@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20"
+ integrity sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==
+ dependencies:
+ icss-replace-symbols "^1.1.0"
+ postcss "^6.0.1"
+
+postcss-normalize-charset@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1"
+ integrity sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ==
+ dependencies:
+ postcss "^5.0.5"
+
+postcss-normalize-url@^3.0.7:
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222"
+ integrity sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig==
+ dependencies:
+ is-absolute-url "^2.0.0"
+ normalize-url "^1.4.0"
+ postcss "^5.0.14"
+ postcss-value-parser "^3.2.3"
+
+postcss-ordered-values@^2.1.0:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d"
+ integrity sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg==
+ dependencies:
+ postcss "^5.0.4"
+ postcss-value-parser "^3.0.1"
+
+postcss-reduce-idents@^2.2.2:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3"
+ integrity sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w==
+ dependencies:
+ postcss "^5.0.4"
+ postcss-value-parser "^3.0.2"
+
+postcss-reduce-initial@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea"
+ integrity sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA==
+ dependencies:
+ postcss "^5.0.4"
+
+postcss-reduce-transforms@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1"
+ integrity sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ==
+ dependencies:
+ has "^1.0.1"
+ postcss "^5.0.8"
+ postcss-value-parser "^3.0.1"
+
+postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90"
+ integrity sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA==
+ dependencies:
+ flatten "^1.0.2"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+postcss-svgo@^2.1.1:
+ version "2.1.6"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d"
+ integrity sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ==
+ dependencies:
+ is-svg "^2.0.0"
+ postcss "^5.0.14"
+ postcss-value-parser "^3.2.3"
+ svgo "^0.7.0"
+
+postcss-unique-selectors@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d"
+ integrity sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g==
+ dependencies:
+ alphanum-sort "^1.0.1"
+ postcss "^5.0.4"
+ uniqs "^2.0.0"
+
+postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+ integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
+
+postcss-zindex@^2.0.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22"
+ integrity sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w==
+ dependencies:
+ has "^1.0.1"
+ postcss "^5.0.4"
+ uniqs "^2.0.0"
+
+postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16:
+ version "5.2.18"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5"
+ integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==
+ dependencies:
+ chalk "^1.1.3"
+ js-base64 "^2.1.9"
+ source-map "^0.5.6"
+ supports-color "^3.2.3"
+
+postcss@^6.0.1:
+ version "6.0.23"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+ integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
+ dependencies:
+ chalk "^2.4.1"
+ source-map "^0.6.1"
+ supports-color "^5.4.0"
+
+prepend-http@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+ integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
+
+promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
+
+prr@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+ integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==
+
+public-encrypt@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+ integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
+ dependencies:
+ bn.js "^4.1.0"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ parse-asn1 "^5.0.0"
+ randombytes "^2.0.1"
+ safe-buffer "^5.1.2"
+
+pump@^2.0.0, pump@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pumpify@^1.3.3:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
+ dependencies:
+ duplexify "^3.6.0"
+ inherits "^2.0.3"
+ pump "^2.0.0"
+
+punycode@^1.2.4, punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==
+
+punycode@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
+q@^1.1.2:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+ integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
+
+qs@^6.12.3:
+ version "6.15.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.0.tgz#db8fd5d1b1d2d6b5b33adaf87429805f1909e7b3"
+ integrity sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==
+ dependencies:
+ side-channel "^1.1.0"
+
+query-string@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+ integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==
+ dependencies:
+ object-assign "^4.1.0"
+ strict-uri-encode "^1.0.0"
+
+querystring-es3@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+ integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==
+
+randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+ dependencies:
+ safe-buffer "^5.1.0"
+
+randomfill@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+ integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
+ dependencies:
+ randombytes "^2.0.5"
+ safe-buffer "^5.1.0"
+
+raw-loader@~0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
+ integrity sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==
+
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ integrity sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ integrity sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
+ integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+reduce-css-calc@^1.2.6:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
+ integrity sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA==
+ dependencies:
+ balanced-match "^0.4.2"
+ math-expression-evaluator "^1.2.14"
+ reduce-function-call "^1.0.1"
+
+reduce-function-call@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f"
+ integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==
+ dependencies:
+ balanced-match "^1.0.0"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+ integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==
+
+resolve@^1.10.0:
+ version "1.22.11"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262"
+ integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==
+ dependencies:
+ is-core-module "^2.16.1"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+rimraf@^2.5.4, rimraf@^2.6.2:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.3.tgz#9be54e4ba5e3559c8eee06a25cd7648bbccdf5a8"
+ integrity sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==
+ dependencies:
+ hash-base "^3.1.2"
+ inherits "^2.0.4"
+
+run-queue@^1.0.0, run-queue@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==
+ dependencies:
+ aproba "^1.1.1"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+"safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sax@^1.2.4:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.6.0.tgz#da59637629307b97e7c4cb28e080a7bc38560d5b"
+ integrity sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==
+
+sax@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+schema-utils@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
+ integrity sha512-QaVYBaD9U8scJw2EBWnCBY+LJ0AD+/2edTaigDs0XLDLBfJmSUK9KGqktg1rb32U3z4j/XwvFwHHH1YfbYFd7Q==
+ dependencies:
+ ajv "^5.0.0"
+
+schema-utils@^0.4.5:
+ version "0.4.7"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
+ integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
+ dependencies:
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
+
+schema-utils@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+ integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
+ dependencies:
+ ajv "^6.1.0"
+ ajv-errors "^1.0.0"
+ ajv-keywords "^3.1.0"
+
+select2@3.5.1:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/select2/-/select2-3.5.1.tgz#f2819489bbc65fd6d328be72bbe2b95dd7e87cfe"
+ integrity sha512-IFX3UFPpPyK1I1Kuw1R1x+upMyNAZbMlkFhiTnRCRR7ii0KU1brmJMLa3GZcrMWCHiQlm0eKqb6i4XO4pqOrGQ==
+
+"semver@2 || 3 || 4 || 5", semver@^5.6.0:
+ version "5.7.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
+ integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
+
+serialize-javascript@^1.4.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
+ integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==
+
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
+
+set-function-length@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
+ integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
+ dependencies:
+ define-data-property "^1.1.4"
+ es-errors "^1.3.0"
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.4"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.2"
+
+setimmediate@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
+
+sha.js@^2.4.0, sha.js@^2.4.12, sha.js@^2.4.8:
+ version "2.4.12"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f"
+ integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==
+ dependencies:
+ inherits "^2.0.4"
+ safe-buffer "^5.2.1"
+ to-buffer "^1.2.0"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
+
+side-channel-list@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad"
+ integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==
+ dependencies:
+ es-errors "^1.3.0"
+ object-inspect "^1.13.3"
+
+side-channel-map@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42"
+ integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==
+ dependencies:
+ call-bound "^1.0.2"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.5"
+ object-inspect "^1.13.3"
+
+side-channel-weakmap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea"
+ integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==
+ dependencies:
+ call-bound "^1.0.2"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.5"
+ object-inspect "^1.13.3"
+ side-channel-map "^1.0.1"
+
+side-channel@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9"
+ integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==
+ dependencies:
+ es-errors "^1.3.0"
+ object-inspect "^1.13.3"
+ side-channel-list "^1.0.0"
+ side-channel-map "^1.0.1"
+ side-channel-weakmap "^1.0.2"
+
+signal-exit@^3.0.0:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+sort-keys@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+ integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==
+ dependencies:
+ is-plain-obj "^1.0.0"
+
+source-list-map@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+ integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+
+source-map@0.1.x:
+ version "0.1.43"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
+ integrity sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@^0.5.3, source-map@^0.5.6:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
+
+source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+spdx-correct@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c"
+ integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66"
+ integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.23"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz#b069e687b1291a32f126893ed76a27a745ee2133"
+ integrity sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+
+ssri@^5.2.4:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06"
+ integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==
+ dependencies:
+ safe-buffer "^5.1.1"
+
+stream-browserify@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
+ integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "^2.0.2"
+
+stream-each@^1.1.0:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+ integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
+ dependencies:
+ end-of-stream "^1.1.0"
+ stream-shift "^1.0.0"
+
+stream-http@^2.7.2:
+ version "2.8.3"
+ resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+ integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.3.6"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
+stream-shift@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b"
+ integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==
+
+strict-uri-encode@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
+ integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string_decoder@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
+
+style-loader@^0.23.1:
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925"
+ integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==
+ dependencies:
+ loader-utils "^1.1.0"
+ schema-utils "^1.0.0"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
+
+supports-color@^3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ integrity sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==
+ dependencies:
+ has-flag "^1.0.0"
+
+supports-color@^4.2.1:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
+ integrity sha512-ycQR/UbvI9xIlEdQT1TQqwoXtEldExbCEAJgRo5YXlmSKjv6ThHnP9/vwGa1gr19Gfw+LkFd7KqYMhzrRC5JYw==
+ dependencies:
+ has-flag "^2.0.0"
+
+supports-color@^5.3.0, supports-color@^5.4.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+svgo@^0.7.0:
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
+ integrity sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA==
+ dependencies:
+ coa "~1.0.1"
+ colors "~1.1.2"
+ csso "~2.3.1"
+ js-yaml "~3.7.0"
+ mkdirp "~0.5.1"
+ sax "~1.2.1"
+ whet.extend "~0.9.9"
+
+tapable@^0.2.7:
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8"
+ integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==
+
+through2@^2.0.0:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+timers-browserify@^2.0.4:
+ version "2.0.12"
+ resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
+ integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
+ dependencies:
+ setimmediate "^1.0.4"
+
+to-arraybuffer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+ integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==
+
+to-buffer@^1.2.0, to-buffer@^1.2.1, to-buffer@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.2.tgz#ffe59ef7522ada0a2d1cb5dfe03bb8abc3cdc133"
+ integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==
+ dependencies:
+ isarray "^2.0.5"
+ safe-buffer "^5.2.1"
+ typed-array-buffer "^1.0.3"
"treebeard@https://github.com/CenterForOpenScience/treebeard.git#d2bb8f6f8104fcac040402727f431c26722b269e":
- version: 0.6.1
- resolution: "treebeard@https://github.com/CenterForOpenScience/treebeard.git#commit=d2bb8f6f8104fcac040402727f431c26722b269e"
- dependencies:
- bootstrap: "npm:~3.3.2"
- jquery: "npm:>=1.11.0"
- jquery-ui: "npm:>=1.10.4"
- mithril: "npm:>=0.2"
- checksum: 10c0/7e6828645a194d2bc2ad96c8efd6a3fd9077cf1be9c443c8a76e48e3427f10643af3ce19a2fd8b9a56913d420a2792f754cca3013057cac5b574005861939f63
- languageName: node
- linkType: hard
-
-"tslib@npm:^2.3.0":
- version: 2.3.1
- resolution: "tslib@npm:2.3.1"
- checksum: 10c0/4efd888895bdb3b987086b2b7793ad1013566f882b0eb7a328384e5ecc0d71cafb16bbeab3196200cbf7f01a73ccc25acc2f131d4ea6ee959be7436a8a306482
- languageName: node
- linkType: hard
-
-"tty-browserify@npm:0.0.0":
- version: 0.0.0
- resolution: "tty-browserify@npm:0.0.0"
- checksum: 10c0/c0c68206565f1372e924d5cdeeff1a0d9cc729833f1da98c03d78be8f939e5f61a107bd0ab77d1ef6a47d62bb0e48b1081fbea273acf404959e22fd3891439c5
- languageName: node
- linkType: hard
-
-"type@npm:^1.0.1":
- version: 1.2.0
- resolution: "type@npm:1.2.0"
- checksum: 10c0/444660849aaebef8cbb9bc43b28ec2068952064cfce6a646f88db97aaa2e2d6570c5629cd79238b71ba23aa3f75146a0b96e24e198210ee0089715a6f8889bf7
- languageName: node
- linkType: hard
-
-"type@npm:^2.5.0":
- version: 2.6.0
- resolution: "type@npm:2.6.0"
- checksum: 10c0/d08063a1c3415140d0b6fd17ede55f373cdd6c5503776693ad5ead574a06404823374d62d6233e43bc30ec22f596b790cbb8661429bed75a75dab986b506ac60
- languageName: node
- linkType: hard
-
-"typeahead.js@npm:^0.11.1":
- version: 0.11.1
- resolution: "typeahead.js@npm:0.11.1"
- dependencies:
- jquery: "npm:>=1.7"
- checksum: 10c0/c5c0387e711ad1cae8993bbae55a26d2ca0d6f06de550466977109ba323fe019e241c7d8e3858455214dc4bbfdec82481cd2f6313629eefe0c587222915ffa28
- languageName: node
- linkType: hard
-
-"typedarray@npm:^0.0.6":
- version: 0.0.6
- resolution: "typedarray@npm:0.0.6"
- checksum: 10c0/6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412
- languageName: node
- linkType: hard
-
-"uglify-es@npm:^3.3.4":
- version: 3.3.9
- resolution: "uglify-es@npm:3.3.9"
- dependencies:
- commander: "npm:~2.13.0"
- source-map: "npm:~0.6.1"
- bin:
- uglifyjs: bin/uglifyjs
- checksum: 10c0/b591de4ea2c7153f446f80f2559bbabcb4ff53a17dbfd27b9bb980b31f5fb7e563bdae6e9abc07d97ecb484ac4ceba4c7a207e6854cb2aaca72e80e6090c989e
- languageName: node
- linkType: hard
-
-"uglifyjs-webpack-plugin@npm:1.3.0":
- version: 1.3.0
- resolution: "uglifyjs-webpack-plugin@npm:1.3.0"
- dependencies:
- cacache: "npm:^10.0.4"
- find-cache-dir: "npm:^1.0.0"
- schema-utils: "npm:^0.4.5"
- serialize-javascript: "npm:^1.4.0"
- source-map: "npm:^0.6.1"
- uglify-es: "npm:^3.3.4"
- webpack-sources: "npm:^1.1.0"
- worker-farm: "npm:^1.5.2"
- peerDependencies:
- webpack: ^2.0.0 || ^3.0.0 || ^4.0.0
- checksum: 10c0/d10ae2ac25f64afddff328fbaa58640450c099c53e44d66829681a5415ef72aa2563d1e5ed43e0e9c409db869575fd914293faaa39288e21da518084878de413
- languageName: node
- linkType: hard
-
-"uniq@npm:^1.0.1":
- version: 1.0.1
- resolution: "uniq@npm:1.0.1"
- checksum: 10c0/369dca4a07fdd8de9e48378b9d4b6861722ca71d5f496e91687916bd4b48b8cf3d6db1677be1b40eea63bc6d4728efb4b4e0bd7a89c5fd2d23e7a2cff8009c7a
- languageName: node
- linkType: hard
-
-"uniqs@npm:^2.0.0":
- version: 2.0.0
- resolution: "uniqs@npm:2.0.0"
- checksum: 10c0/f244b158f6b3d30ddea2092c581fe9eb746d6db889a859fd0001e4b7566767bfcc53cdf11e6286f097bb130ebad71025709f41f2e4dd38e5c2f03ec28052baab
- languageName: node
- linkType: hard
-
-"unique-filename@npm:^1.1.0":
- version: 1.1.1
- resolution: "unique-filename@npm:1.1.1"
- dependencies:
- unique-slug: "npm:^2.0.0"
- checksum: 10c0/d005bdfaae6894da8407c4de2b52f38b3c58ec86e79fc2ee19939da3085374413b073478ec54e721dc8e32b102cf9e50d0481b8331abdc62202e774b789ea874
- languageName: node
- linkType: hard
-
-"unique-slug@npm:^2.0.0":
- version: 2.0.2
- resolution: "unique-slug@npm:2.0.2"
- dependencies:
- imurmurhash: "npm:^0.1.4"
- checksum: 10c0/9eabc51680cf0b8b197811a48857e41f1364b25362300c1ff636c0eca5ec543a92a38786f59cf0697e62c6f814b11ecbe64e8093db71246468a1f03b80c83970
- languageName: node
- linkType: hard
-
-"uri-js@npm:^4.2.2":
- version: 4.4.1
- resolution: "uri-js@npm:4.4.1"
- dependencies:
- punycode: "npm:^2.1.0"
- checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
- languageName: node
- linkType: hard
-
-"url-loader@npm:~0.6.2":
- version: 0.6.2
- resolution: "url-loader@npm:0.6.2"
- dependencies:
- loader-utils: "npm:^1.0.2"
- mime: "npm:^1.4.1"
- schema-utils: "npm:^0.3.0"
- peerDependencies:
- file-loader: "*"
- checksum: 10c0/c8e2de856011315fb436201ddd2f870d5bc52fcca68cb69c35f74cab891e5a24b97cd75dd4c753046d55841521b0c0939e7f9aef5170b7c8536c6cd3617880b4
- languageName: node
- linkType: hard
-
-"url@npm:^0.11.0":
- version: 0.11.0
- resolution: "url@npm:0.11.0"
- dependencies:
- punycode: "npm:1.3.2"
- querystring: "npm:0.2.0"
- checksum: 10c0/bbe05f9f570ec5c06421c50ca63f287e61279092eed0891db69a9619323703ccd3987e6eed234c468794cf25680c599680d5c1f58d26090f1956c8e9ed8346a2
- languageName: node
- linkType: hard
-
-"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1":
- version: 1.0.2
- resolution: "util-deprecate@npm:1.0.2"
- checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942
- languageName: node
- linkType: hard
-
-"util@npm:0.10.3":
- version: 0.10.3
- resolution: "util@npm:0.10.3"
- dependencies:
- inherits: "npm:2.0.1"
- checksum: 10c0/88bb58fec3b1f5f43dea27795f61f24b3b505bbba6f3ad6e91b32db0cd0928b2acb54ebe21603a75743c6e21a52f954cd2ffb6cddafed5a01169dd1287db3ff3
- languageName: node
- linkType: hard
-
-"util@npm:^0.11.0":
- version: 0.11.1
- resolution: "util@npm:0.11.1"
- dependencies:
- inherits: "npm:2.0.3"
- checksum: 10c0/8e9d1a85e661c8a8d9883d821aedbff3f8d9c3accd85357020905386ada5653b20389fc3591901e2a0bde64f8dc86b28c3f990114aa5a38eaaf30b455fa3cdf6
- languageName: node
- linkType: hard
-
-"validate-npm-package-license@npm:^3.0.1":
- version: 3.0.4
- resolution: "validate-npm-package-license@npm:3.0.4"
- dependencies:
- spdx-correct: "npm:^3.0.0"
- spdx-expression-parse: "npm:^3.0.0"
- checksum: 10c0/7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f
- languageName: node
- linkType: hard
-
-"vendors@npm:^1.0.0":
- version: 1.0.4
- resolution: "vendors@npm:1.0.4"
- checksum: 10c0/a9b097f3607013a23bf447cbaff85b79b694cc23b20e81a6aea1ea9e1c59854c93f7c87abcc71b57999e050606e499d9ce18df67968823644b20f6e03d56022a
- languageName: node
- linkType: hard
-
-"vm-browserify@npm:^1.0.1":
- version: 1.1.2
- resolution: "vm-browserify@npm:1.1.2"
- checksum: 10c0/0cc1af6e0d880deb58bc974921320c187f9e0a94f25570fca6b1bd64e798ce454ab87dfd797551b1b0cc1849307421aae0193cedf5f06bdb5680476780ee344b
- languageName: node
- linkType: hard
-
-"watchpack@npm:^2.3.1":
- version: 2.3.1
- resolution: "watchpack@npm:2.3.1"
- dependencies:
- glob-to-regexp: "npm:^0.4.1"
- graceful-fs: "npm:^4.1.2"
- checksum: 10c0/00e44f5cc6ca299dd1ff52bf926a70a23ae1aeb6b399b7e32569d6d31ef1fc9bc3f5570ade6fef220dd6d74ee70259c9621b79cf487552caf1ea2727aa40f984
- languageName: node
- linkType: hard
-
-"webpack-sources@npm:^1.0.1, webpack-sources@npm:^1.1.0":
- version: 1.4.3
- resolution: "webpack-sources@npm:1.4.3"
- dependencies:
- source-list-map: "npm:^2.0.0"
- source-map: "npm:~0.6.1"
- checksum: 10c0/78dafb3e1e297d3f4eb6204311e8c64d28cd028f82887ba33aaf03fffc82482d8e1fdf6de25a60f4dde621d3565f4c3b1bfb350f09add8f4e54e00279ff3db5e
- languageName: node
- linkType: hard
-
-"webpack@npm:3.12.0":
- version: 3.12.0
- resolution: "webpack@npm:3.12.0"
- dependencies:
- acorn: "npm:^5.0.0"
- acorn-dynamic-import: "npm:^2.0.0"
- ajv: "npm:^6.1.0"
- ajv-keywords: "npm:^3.1.0"
- async: "npm:^2.1.2"
- enhanced-resolve: "npm:^3.4.0"
- escope: "npm:^3.6.0"
- interpret: "npm:^1.0.0"
- json-loader: "npm:^0.5.4"
- json5: "npm:^0.5.1"
- loader-runner: "npm:^2.3.0"
- loader-utils: "npm:^1.1.0"
- memory-fs: "npm:~0.4.1"
- mkdirp: "npm:~0.5.0"
- node-libs-browser: "npm:^2.0.0"
- source-map: "npm:^0.5.3"
- supports-color: "npm:^4.2.1"
- tapable: "npm:^0.2.7"
- uglifyjs-webpack-plugin: "npm:^0.4.6"
- watchpack: "npm:^1.4.0"
- webpack-sources: "npm:^1.0.1"
- yargs: "npm:^8.0.2"
- bin:
- webpack: ./bin/webpack.js
- checksum: 10c0/64051e33b94d641ea6ed85e6d33d0964ff27ce28f4dd9a989dee39ce98b67fadd057fecd2bfdf49c8fe8909c0c74e415f01381e7a105f926968b1a6eb92f5220
- languageName: node
- linkType: hard
-
-"whet.extend@npm:~0.9.9":
- version: 0.9.9
- resolution: "whet.extend@npm:0.9.9"
- checksum: 10c0/75c48bfe0cdd36b7c510286d591b34a1a6810ba914b0c8f23788c2a17f4592706debaf1f1f667c7f46f1a657c4f1d5f2889ce234b570827acbb29bf28799ce7f
- languageName: node
- linkType: hard
-
-"which-module@npm:^2.0.0":
- version: 2.0.0
- resolution: "which-module@npm:2.0.0"
- checksum: 10c0/946ffdbcd6f0cf517638f8f2319c6d51e528c3b41bc2c0f5dc3dc46047347abd7326aea5cdf5def0a8b32bdca313ac87a32ce5a76b943fe1ca876c4557e6b716
- languageName: node
- linkType: hard
-
-"which@npm:^1.2.9":
- version: 1.3.1
- resolution: "which@npm:1.3.1"
- dependencies:
- isexe: "npm:^2.0.0"
- bin:
- which: ./bin/which
- checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59
- languageName: node
- linkType: hard
-
-"which@npm:^6.0.0":
- version: 6.0.1
- resolution: "which@npm:6.0.1"
- dependencies:
- isexe: "npm:^4.0.0"
- bin:
- node-which: bin/which.js
- checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5
- languageName: node
- linkType: hard
-
-"worker-farm@npm:^1.5.2":
- version: 1.7.0
- resolution: "worker-farm@npm:1.7.0"
- dependencies:
- errno: "npm:~0.1.7"
- checksum: 10c0/069a032f9198a07273a7608dc0c23d7288c1c25256b66008e1ae95838cda6fa2c7aefb3b7ba760f975c8d18120ca54eb193afb66d7237b2a05e5da12c1c961f7
- languageName: node
- linkType: hard
-
-"wrap-ansi@npm:^2.0.0":
- version: 2.1.0
- resolution: "wrap-ansi@npm:2.1.0"
- dependencies:
- string-width: "npm:^1.0.1"
- strip-ansi: "npm:^3.0.1"
- checksum: 10c0/1a47367eef192fc9ecaf00238bad5de8987c3368082b619ab36c5e2d6d7b0a2aef95a2ca65840be598c56ced5090a3ba487956c7aee0cac7c45017502fa980fb
- languageName: node
- linkType: hard
-
-"wrappy@npm:1":
- version: 1.0.2
- resolution: "wrappy@npm:1.0.2"
- checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0
- languageName: node
- linkType: hard
-
-"xtend@npm:^4.0.0, xtend@npm:~4.0.1":
- version: 4.0.2
- resolution: "xtend@npm:4.0.2"
- checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e
- languageName: node
- linkType: hard
-
-"y18n@npm:^3.2.1":
- version: 3.2.2
- resolution: "y18n@npm:3.2.2"
- checksum: 10c0/08dc1880f6f766057ed25cd61ef0c7dab3db93639db9a7487a84f75dac7a349dface8dff8d1d8b7bdf50969fcd69ab858ab26b06968b4e4b12ee60d195233c46
- languageName: node
- linkType: hard
-
-"y18n@npm:^4.0.0":
- version: 4.0.3
- resolution: "y18n@npm:4.0.3"
- checksum: 10c0/308a2efd7cc296ab2c0f3b9284fd4827be01cfeb647b3ba18230e3a416eb1bc887ac050de9f8c4fd9e7856b2e8246e05d190b53c96c5ad8d8cb56dffb6f81024
- languageName: node
- linkType: hard
-
-"yallist@npm:^2.1.2":
- version: 2.1.2
- resolution: "yallist@npm:2.1.2"
- checksum: 10c0/0b9e25aa00adf19e01d2bcd4b208aee2b0db643d9927131797b7af5ff69480fc80f1c3db738cbf3946f0bddf39d8f2d0a5709c644fd42d4aa3a4e6e786c087b5
- languageName: node
- linkType: hard
-
-"yallist@npm:^4.0.0":
- version: 4.0.0
- resolution: "yallist@npm:4.0.0"
- checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
- languageName: node
- linkType: hard
-
-"yallist@npm:^5.0.0":
- version: 5.0.0
- resolution: "yallist@npm:5.0.0"
- checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416
- languageName: node
- linkType: hard
-
-"yargs-parser@npm:^7.0.0":
- version: 7.0.0
- resolution: "yargs-parser@npm:7.0.0"
- dependencies:
- camelcase: "npm:^4.1.0"
- checksum: 10c0/6fde2df522dd071cf76308fe4e37fd2fb8eae3eb1fb6c6759c2d448264c8451162649eb8558ac8d83aff79278cabfddc17ecba3e1a0d0fe2e406cf4e1bc95b0d
- languageName: node
- linkType: hard
-
-"yargs@npm:^8.0.2":
- version: 8.0.2
- resolution: "yargs@npm:8.0.2"
- dependencies:
- camelcase: "npm:^4.1.0"
- cliui: "npm:^3.2.0"
- decamelize: "npm:^1.1.1"
- get-caller-file: "npm:^1.0.1"
- os-locale: "npm:^2.0.0"
- read-pkg-up: "npm:^2.0.0"
- require-directory: "npm:^2.1.1"
- require-main-filename: "npm:^1.0.1"
- set-blocking: "npm:^2.0.0"
- string-width: "npm:^2.0.0"
- which-module: "npm:^2.0.0"
- y18n: "npm:^3.2.1"
- yargs-parser: "npm:^7.0.0"
- checksum: 10c0/70e4ed99e3f1e8a034d0b600773db9fb44e03ec88cfa7125fc65a965428051ad59e77c074afa1afcbe3ec34436d3a6e7ba18b3ec62b4e5f59f30606df791b125
- languageName: node
- linkType: hard
-
-"zxcvbn@npm:^4.2.0":
- version: 4.4.2
- resolution: "zxcvbn@npm:4.4.2"
- checksum: 10c0/862f101cc95247b30290bad67ade333e430a16763bb771ce4e4c5414396d987f9a64288225675c96bd6f8d3eba65da0dee119b2a4eaa2e249da3f540b036942e
- languageName: node
- linkType: hard
+ version "0.6.1"
+ resolved "https://github.com/CenterForOpenScience/treebeard.git#d2bb8f6f8104fcac040402727f431c26722b269e"
+ dependencies:
+ bootstrap "~3.3.2"
+ jquery ">=1.11.0"
+ jquery-ui ">=1.10.4"
+ mithril ">=0.2"
+
+tty-browserify@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+ integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==
+
+type@^2.7.2:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486"
+ integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==
+
+typeahead.js@^0.11.1:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/typeahead.js/-/typeahead.js-0.11.1.tgz#4e64e671b22310a8606f4aec805924ba84b015b8"
+ integrity sha512-yGaLzGjVHyryZdNfrWz2NHXUwEO7hrlVmGMGCo5+6mH3nEEhcQ0Te3mK3G60uRnxfERu8twOWSU4WmwScbwhMg==
+ dependencies:
+ jquery ">=1.7"
+
+typed-array-buffer@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536"
+ integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==
+ dependencies:
+ call-bound "^1.0.3"
+ es-errors "^1.3.0"
+ is-typed-array "^1.1.14"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+
+uglify-es@^3.3.4:
+ version "3.3.9"
+ resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
+ integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
+ dependencies:
+ commander "~2.13.0"
+ source-map "~0.6.1"
+
+uglifyjs-webpack-plugin@1.3.0, uglifyjs-webpack-plugin@^0.4.6:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
+ integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==
+ dependencies:
+ cacache "^10.0.4"
+ find-cache-dir "^1.0.0"
+ schema-utils "^0.4.5"
+ serialize-javascript "^1.4.0"
+ source-map "^0.6.1"
+ uglify-es "^3.3.4"
+ webpack-sources "^1.1.0"
+ worker-farm "^1.5.2"
+
+uniq@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+ integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==
+
+uniqs@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
+ integrity sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==
+
+unique-filename@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+ integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
+ dependencies:
+ unique-slug "^2.0.0"
+
+unique-slug@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+ integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
+ dependencies:
+ imurmurhash "^0.1.4"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+url-loader@~0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7"
+ integrity sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==
+ dependencies:
+ loader-utils "^1.0.2"
+ mime "^1.4.1"
+ schema-utils "^0.3.0"
+
+url@^0.11.0:
+ version "0.11.4"
+ resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c"
+ integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==
+ dependencies:
+ punycode "^1.4.1"
+ qs "^6.12.3"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+util@^0.10.4:
+ version "0.10.4"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
+ integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==
+ dependencies:
+ inherits "2.0.3"
+
+util@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
+ integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
+ dependencies:
+ inherits "2.0.3"
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+vendors@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
+ integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
+
+vm-browserify@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
+ integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
+
+watchpack@^1.4.0, watchpack@^2.3.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.5.1.tgz#dd38b601f669e0cbf567cb802e75cead82cde102"
+ integrity sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==
+ dependencies:
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.1.2"
+
+webpack-sources@^1.0.1, webpack-sources@^1.1.0:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+ integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
+ dependencies:
+ source-list-map "^2.0.0"
+ source-map "~0.6.1"
+
+webpack@3.12.0:
+ version "3.12.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74"
+ integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==
+ dependencies:
+ acorn "^5.0.0"
+ acorn-dynamic-import "^2.0.0"
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
+ async "^2.1.2"
+ enhanced-resolve "^3.4.0"
+ escope "^3.6.0"
+ interpret "^1.0.0"
+ json-loader "^0.5.4"
+ json5 "^0.5.1"
+ loader-runner "^2.3.0"
+ loader-utils "^1.1.0"
+ memory-fs "~0.4.1"
+ mkdirp "~0.5.0"
+ node-libs-browser "^2.0.0"
+ source-map "^0.5.3"
+ supports-color "^4.2.1"
+ tapable "^0.2.7"
+ uglifyjs-webpack-plugin "^0.4.6"
+ watchpack "^1.4.0"
+ webpack-sources "^1.0.1"
+ yargs "^8.0.2"
+
+whet.extend@~0.9.9:
+ version "0.9.9"
+ resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1"
+ integrity sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==
+
+which-module@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
+ integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
+
+which-typed-array@^1.1.16:
+ version "1.1.20"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.20.tgz#3fdb7adfafe0ea69157b1509f3a1cd892bd1d122"
+ integrity sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==
+ dependencies:
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.8"
+ call-bound "^1.0.4"
+ for-each "^0.3.5"
+ get-proto "^1.0.1"
+ gopd "^1.2.0"
+ has-tostringtag "^1.0.2"
+
+which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
+worker-farm@^1.5.2:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
+ integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
+ dependencies:
+ errno "~0.1.7"
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+xtend@^4.0.0, xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^3.2.1:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
+ integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
+
+y18n@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
+ integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
+
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==
+
+yargs-parser@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9"
+ integrity sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs@^8.0.2:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"
+ integrity sha512-3RiZrpLpjrzIAKgGdPktBcMP/eG5bDFlkI+PHle1qwzyVXyDQL+pD/eZaMoOOO0Y7LLBfjpucObuUm/icvbpKQ==
+ dependencies:
+ camelcase "^4.1.0"
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ read-pkg-up "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^7.0.0"
+
+zxcvbn@^4.2.0:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/zxcvbn/-/zxcvbn-4.4.2.tgz#28ec17cf09743edcab056ddd8b1b06262cc73c30"
+ integrity sha512-Bq0B+ixT/DMyG8kgX2xWcI5jUvCwqrMxSFam7m0lAf78nf04hv6lNCsyLYdyYTrCVMqNDY/206K7eExYCeSyUQ==
From e416c1584fd68b1f5765ac06943f49d65dd91307 Mon Sep 17 00:00:00 2001
From: Yuhuai Liu
Date: Tue, 24 Mar 2026 11:32:29 -0400
Subject: [PATCH 30/31] add keen-dataviz back (#11652)
---
admin/package.json | 1 +
admin/yarn.lock | 26 +++++++++++++++++++++++---
2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/admin/package.json b/admin/package.json
index f6655ee92cf..0b4946f491e 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -14,6 +14,7 @@
"font-awesome-webpack": "0.0.5-beta.2",
"jquery-datetimepicker": "^2.5.21",
"json-loader": "^0.5.1",
+ "keen-dataviz": "^1.0.2",
"keen-js": "^3.0.0",
"knockout": "3.5.1",
"less": "^4.1.2",
diff --git a/admin/yarn.lock b/admin/yarn.lock
index b253aa5b5a0..a31977b47a6 100644
--- a/admin/yarn.lock
+++ b/admin/yarn.lock
@@ -443,6 +443,13 @@ builtin-status-codes@^3.0.0:
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==
+c3@^0.4.18:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/c3/-/c3-0.4.24.tgz#57b62357098842d38e265a265f6de1e8c6faadd2"
+ integrity sha512-mVCFtN5ZWUT5UE7ilFQ7KBQ7TUCdKIq6KsDt1hH/1m6gC1tBjvzFTO7fqhaiWHfhNOjjM7makschdhg6DkWQMA==
+ dependencies:
+ d3 "~3.5.0"
+
cacache@^10.0.4:
version "10.0.4"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460"
@@ -875,6 +882,11 @@ cyclist@^1.0.1:
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.2.tgz#673b5f233bf34d8e602b949429f8171d9121bea3"
integrity sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==
+d3@^3.5.17, d3@~3.5.0:
+ version "3.5.17"
+ resolved "https://registry.yarnpkg.com/d3/-/d3-3.5.17.tgz#bc46748004378b21a360c9fc7cf5231790762fb8"
+ integrity sha512-yFk/2idb8OHPKkbAL8QaOaqENNoMhIaSHZerk3oQsECwkObkCpJyjYwCe+OHiq6UEdhe1m8ZGARRRO3ljFjlKg==
+
d@1, d@^1.0.1, d@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de"
@@ -977,9 +989,9 @@ duplexify@^3.4.2, duplexify@^3.6.0:
stream-shift "^1.0.0"
electron-to-chromium@^1.2.7:
- version "1.5.321"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz#57a80554e2e7fd65e3689d320f52a64723472d5d"
- integrity sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==
+ version "1.5.322"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.322.tgz#9c24e49f7098ca19bc87c0e9c7e0ad6ffe4fddca"
+ integrity sha512-vFU34OcrvMcH66T+dYC3G4nURmgfDVewMIu6Q2urXpumAPSMmzvcn04KVVV8Opikq8Vs5nUbO/8laNhNRqSzYw==
elliptic@^6.5.3, elliptic@^6.6.1:
version "6.6.1"
@@ -1765,6 +1777,14 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
+keen-dataviz@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/keen-dataviz/-/keen-dataviz-1.2.1.tgz#6f7595a2051652e1bece2ce2296e47ffa5d79dd9"
+ integrity sha512-FiWq23fOXfrm+6cCRNpx0FUxtGGzvwb5V9Z0EO1VPaaIrDGMIxvLBjwEAwmLBbeyRRYUHyJFd9XhjSDS9ncpGA==
+ dependencies:
+ c3 "^0.4.18"
+ d3 "^3.5.17"
+
keen-js@^3.0.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/keen-js/-/keen-js-3.5.0.tgz#9274be9bb9ee1a92867872acb3627f5aa8147b79"
From eab3950f71df336d7435953a1d05232f238a4d51 Mon Sep 17 00:00:00 2001
From: Yuhuai Liu
Date: Thu, 26 Mar 2026 02:32:36 -0400
Subject: [PATCH 31/31] fix tests (#11659)
---
scripts/tests/test_populate_new_and_noteworthy.py | 2 +-
website/profile/views.py | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/scripts/tests/test_populate_new_and_noteworthy.py b/scripts/tests/test_populate_new_and_noteworthy.py
index 227f8d4a24a..dbe183930f4 100644
--- a/scripts/tests/test_populate_new_and_noteworthy.py
+++ b/scripts/tests/test_populate_new_and_noteworthy.py
@@ -17,7 +17,7 @@ def setUp(self):
super().setUp()
self.new_and_noteworthy_links_node = ProjectFactory()
- self.new_and_noteworthy_links_node._id = TEST_NEW_AND_NOTEWORTHY_GUID
+ self.new_and_noteworthy_links_node._id = NEW_AND_NOTEWORTHY_LINKS_NODE
self.new_and_noteworthy_links_node.save()
self.nn1 = ProjectFactory(is_public=True, title='Noteworthy Project Alpha')
diff --git a/website/profile/views.py b/website/profile/views.py
index fed09aa84da..a08a586742e 100644
--- a/website/profile/views.py
+++ b/website/profile/views.py
@@ -25,7 +25,6 @@
from framework.status import push_status_message
from framework.utils import throttle_period_expired
-from osf import features
from osf.models import ApiOAuth2Application, ApiOAuth2PersonalToken, OSFUser, NotificationTypeEnum
from osf.exceptions import BlockedEmailError, OSFError
from osf.utils.requests import string_type_request_headers
|