1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-01-17 06:52:27 +01:00

eslint problems autofixes

This commit is contained in:
Sylvain 2018-11-21 10:59:07 +01:00
parent d250dfa1d3
commit 8cd533b5a6
32 changed files with 1213 additions and 830 deletions

1
.gitignore vendored
View File

@ -48,3 +48,4 @@
# Ignore node.js dev dependencies # Ignore node.js dev dependencies
/node_modules /node_modules
npm-debug.log

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
10.13.0

View File

@ -71,7 +71,7 @@ class AuthenticationController {
/** /**
* Changes the admin's view to the members list page * Changes the admin's view to the members list page
*/ */
$scope.cancel = function() { $state.go('app.admin.members') } $scope.cancel = function () { $state.go('app.admin.members') }
/** /**
* Open a modal allowing to specify the data mapping for the given field * Open a modal allowing to specify the data mapping for the given field
@ -141,7 +141,7 @@ class AuthenticationController {
} }
] }) ] })
.result['finally'](null).then(function (transfo_rules) { mapping.transformation = transfo_rules }) .result['finally'](null).then(function (transfo_rules) { mapping.transformation = transfo_rules })
} }
} }
} }
@ -200,7 +200,7 @@ Application.Controllers.controller('AuthentificationController', ['$scope', '$st
} }
} }
}, },
function() { function () {
// the admin has confirmed, delete // the admin has confirmed, delete
AuthProvider.delete( AuthProvider.delete(
{ id: provider.id }, { id: provider.id },
@ -286,7 +286,7 @@ Application.Controllers.controller('NewAuthenticationController', ['$scope', '$s
} }
}, },
function () { // unsecured http confirmed function () { // unsecured http confirmed
AuthProvider.save({auth_provider: $scope.provider}, function (provider) { AuthProvider.save({ auth_provider: $scope.provider }, function (provider) {
growl.success(_t('unsecured_oauth2_provider_successfully_added')) growl.success(_t('unsecured_oauth2_provider_successfully_added'))
return $state.go('app.admin.members') return $state.go('app.admin.members')
}) })
@ -332,7 +332,7 @@ Application.Controllers.controller('EditAuthenticationController', ['$scope', '$
growl.success(_t('provider_successfully_updated')) growl.success(_t('provider_successfully_updated'))
$state.go('app.admin.members') $state.go('app.admin.members')
}, },
function() { growl.error(_t('an_error_occurred_unable_to_update_the_provider')) } function () { growl.error(_t('an_error_occurred_unable_to_update_the_provider')) }
) )
} }

View File

@ -73,7 +73,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
* Open a confirmation modal to cancel the booking of a user for the currently selected event. * Open a confirmation modal to cancel the booking of a user for the currently selected event.
* @param slot {Object} reservation slot of a user, inherited from $resource * @param slot {Object} reservation slot of a user, inherited from $resource
*/ */
$scope.cancelBooking = function(slot) { $scope.cancelBooking = function (slot) {
// open a confirmation dialog // open a confirmation dialog
dialogs.confirm( dialogs.confirm(
{ {
@ -88,7 +88,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
} }
} }
}, },
function() { function () {
// the admin has confirmed, cancel the subscription // the admin has confirmed, cancel the subscription
Slot.cancel( Slot.cancel(
{ id: slot.slot_id }, { id: slot.slot_id },
@ -152,7 +152,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
// notify the admin // notify the admin
return growl.success(_t('admin_calendar.the_machine_was_successfully_removed_from_the_slot')) return growl.success(_t('admin_calendar.the_machine_was_successfully_removed_from_the_slot'))
} }
, function(data, status) { // failed , function (data, status) { // failed
growl.error(_t('admin_calendar.deletion_failed')) growl.error(_t('admin_calendar.deletion_failed'))
} }
) )
@ -164,7 +164,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
* Callback to alert the admin that the export request was acknowledged and is * Callback to alert the admin that the export request was acknowledged and is
* processing right now. * processing right now.
*/ */
$scope.alertExport = function(type) { $scope.alertExport = function (type) {
Export.status({ category: 'availabilities', type }).then(function (res) { Export.status({ category: 'availabilities', type }).then(function (res) {
if (!res.data.exists) { if (!res.data.exists) {
return growl.success(_t('admin_calendar.export_is_running_you_ll_be_notified_when_its_ready')) return growl.success(_t('admin_calendar.export_is_running_you_ll_be_notified_when_its_ready'))
@ -201,7 +201,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
} }
} }
}, },
function() { function () {
// the admin has confirmed, lock/unlock the slot // the admin has confirmed, lock/unlock the slot
Availability.lock( Availability.lock(
{ id: $scope.availability.id }, { id: $scope.availability.id },
@ -226,7 +226,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
/** /**
* Confirm and destroy the slot in $scope.availability * Confirm and destroy the slot in $scope.availability
*/ */
$scope.removeSlot = function() { $scope.removeSlot = function () {
// open a confirmation dialog // open a confirmation dialog
dialogs.confirm( dialogs.confirm(
{ {
@ -239,7 +239,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
} }
} }
}, },
function() { function () {
// the admin has confirmed, delete the slot // the admin has confirmed, delete the slot
Availability.delete( Availability.delete(
{ id: $scope.availability.id }, { id: $scope.availability.id },
@ -271,7 +271,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
// Triggered when the admin drag on the agenda to create a new reservable slot. // Triggered when the admin drag on the agenda to create a new reservable slot.
// @see http://fullcalendar.io/docs/selection/select_callback/ // @see http://fullcalendar.io/docs/selection/select_callback/
// //
var calendarSelectCb = function (start, end, jsEvent, view) { var calendarSelectCb = function (start, end, jsEvent, view) {
start = moment.tz(start.toISOString(), Fablab.timezone) start = moment.tz(start.toISOString(), Fablab.timezone)
end = moment.tz(end.toISOString(), Fablab.timezone) end = moment.tz(end.toISOString(), Fablab.timezone)
@ -310,7 +310,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state
true true
) )
}, },
function() { uiCalendarConfig.calendars.calendar.fullCalendar('unselect') } function () { uiCalendarConfig.calendars.calendar.fullCalendar('unselect') }
) )
} }
} }
@ -377,7 +377,7 @@ Application.Controllers.controller('CreateEventModalController', ['$scope', '$ui
$scope.end = end $scope.end = end
// machines list // machines list
$scope.machines = machinesPromise.filter(function(m) { return !m.disabled }) $scope.machines = machinesPromise.filter(function (m) { return !m.disabled })
// trainings list // trainings list
$scope.trainings = trainingsPromise.filter(function (t) { return !t.disabled }) $scope.trainings = trainingsPromise.filter(function (t) { return !t.disabled })

View File

@ -58,8 +58,8 @@ class EventsController {
$scope.submited = function (content) { $scope.submited = function (content) {
if ((content.id == null)) { if ((content.id == null)) {
$scope.alerts = [] $scope.alerts = []
angular.forEach(content, function(v, k) { angular.forEach(content, function (v, k) {
angular.forEach(v, function(err) { $scope.alerts.push({ msg: k + ': ' + err, type: 'danger' }) }) angular.forEach(v, function (err) { $scope.alerts.push({ msg: k + ': ' + err, type: 'danger' }) })
}) })
} else { } else {
$state.go('app.public.events_list') $state.go('app.public.events_list')
@ -69,7 +69,7 @@ class EventsController {
/** /**
* Changes the user's view to the events list page * Changes the user's view to the events list page
*/ */
$scope.cancel = function() { $state.go('app.public.events_list') } $scope.cancel = function () { $state.go('app.public.events_list') }
/** /**
* For use with 'ng-class', returns the CSS class name for the uploads previews. * For use with 'ng-class', returns the CSS class name for the uploads previews.
@ -87,7 +87,7 @@ class EventsController {
/** /**
* This will create a single new empty entry into the event's attachements list. * This will create a single new empty entry into the event's attachements list.
*/ */
$scope.addFile = function() { $scope.event.event_files_attributes.push({}) } $scope.addFile = function () { $scope.event.event_files_attributes.push({}) }
/** /**
* This will remove the given file from the event's attachements list. If the file was previously uploaded * This will remove the given file from the event's attachements list. If the file was previously uploaded
@ -134,7 +134,7 @@ class EventsController {
/** /**
* Initialize a new price item in the additional prices list * Initialize a new price item in the additional prices list
*/ */
$scope.addPrice = function() { $scope.addPrice = function () {
$scope.event.prices.push({ $scope.event.prices.push({
category: null, category: null,
amount: null amount: null
@ -217,7 +217,7 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
if (id != null) { if (id != null) {
return getModel(model)[0].update({ id }, data) return getModel(model)[0].update({ id }, data)
} else { } else {
return getModel(model)[0].save(data, function(resp) { getModel(model)[1][getModel(model)[1].length - 1].id = resp.id }) return getModel(model)[0].save(data, function (resp) { getModel(model)[1][getModel(model)[1].length - 1].id = resp.id })
} }
} }
@ -246,8 +246,8 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
} }
} }
, function () { // delete confirmed , function () { // delete confirmed
getModel(model)[0].delete(getModel(model)[1][index], null, function() { getModel(model)[1].splice(index, 1) } getModel(model)[0].delete(getModel(model)[1][index], null, function () { getModel(model)[1].splice(index, 1) }
, function() { growl.error(_t('unable_to_delete_an_error_occured')) }) , function () { growl.error(_t('unable_to_delete_an_error_occured')) })
}) })
} }
@ -281,23 +281,23 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
* Open a modal dialog allowing the definition of a new price category. * Open a modal dialog allowing the definition of a new price category.
* Save it once filled and handle the result. * Save it once filled and handle the result.
*/ */
$scope.newPriceCategory = function() { $scope.newPriceCategory = function () {
$uibModal.open({ $uibModal.open({
templateUrl: '<%= asset_path "admin/events/price_form.html" %>', templateUrl: '<%= asset_path "admin/events/price_form.html" %>',
size: 'md', size: 'md',
resolve: { resolve: {
category () { return {} } category () { return {} }
}, },
controller: 'PriceCategoryController' }).result['finally'](null).then(function(p_cat) { controller: 'PriceCategoryController' }).result['finally'](null).then(function (p_cat) {
// save the price category to the API // save the price category to the API
PriceCategory.save(p_cat, function (cat) { PriceCategory.save(p_cat, function (cat) {
$scope.priceCategories.push(cat) $scope.priceCategories.push(cat)
return growl.success(_t('price_category_successfully_created')) return growl.success(_t('price_category_successfully_created'))
} }
, function (err) { , function (err) {
growl.error(_t('unable_to_add_the_price_category_check_name_already_used')) growl.error(_t('unable_to_add_the_price_category_check_name_already_used'))
return console.error(err) return console.error(err)
}) })
}) })
} }
/** /**
@ -316,16 +316,16 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
resolve: { resolve: {
category () { return $scope.priceCategories[index] } category () { return $scope.priceCategories[index] }
}, },
controller: 'PriceCategoryController' }).result['finally'](null).then(function(p_cat) { controller: 'PriceCategoryController' }).result['finally'](null).then(function (p_cat) {
// update the price category to the API // update the price category to the API
PriceCategory.update({id}, {price_category: p_cat}, function (cat) { PriceCategory.update({ id }, { price_category: p_cat }, function (cat) {
$scope.priceCategories[index] = cat $scope.priceCategories[index] = cat
return growl.success(_t('price_category_successfully_updated')) return growl.success(_t('price_category_successfully_updated'))
} }
, function (err) { , function (err) {
growl.error(_t('unable_to_update_the_price_category')) growl.error(_t('unable_to_update_the_price_category'))
return console.error(err) return console.error(err)
}) })
}) })
} }
} }
@ -352,14 +352,14 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
} }
} }
}, },
function() { // delete confirmed function () { // delete confirmed
PriceCategory.remove( PriceCategory.remove(
{id}, { id },
function () { // successfully deleted function () { // successfully deleted
growl.success(_t('price_category_successfully_deleted')) growl.success(_t('price_category_successfully_deleted'))
$scope.priceCategories.splice(index, 1) $scope.priceCategories.splice(index, 1)
}, },
function() { growl.error(_t('price_category_deletion_failed')) } function () { growl.error(_t('price_category_deletion_failed')) }
) )
} }
) )
@ -383,7 +383,7 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state',
/** /**
* Kind of constructor: these actions will be realized first when the controller is loaded * Kind of constructor: these actions will be realized first when the controller is loaded
*/ */
const initialize = function() { paginationCheck(eventsPromise, $scope.events) } const initialize = function () { paginationCheck(eventsPromise, $scope.events) }
/** /**
* Check if all events are already displayed OR if the button 'load more events' * Check if all events are already displayed OR if the button 'load more events'

View File

@ -185,8 +185,8 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
}, },
controller ($scope, $uibModalInstance, model) { controller ($scope, $uibModalInstance, model) {
$scope.model = model $scope.model = model
$scope.ok = function() { $uibModalInstance.close($scope.model) } $scope.ok = function () { $uibModalInstance.close($scope.model) }
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
} }
}) })
@ -222,8 +222,8 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
$scope.codeModel = model $scope.codeModel = model
$scope.isSelected = active $scope.isSelected = active
$scope.ok = function() { $uibModalInstance.close({ model: $scope.codeModel, active: $scope.isSelected }) } $scope.ok = function () { $uibModalInstance.close({ model: $scope.codeModel, active: $scope.isSelected }) }
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
} }
}) })
@ -269,8 +269,8 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
}, },
controller ($scope, $uibModalInstance, model) { controller ($scope, $uibModalInstance, model) {
$scope.model = model $scope.model = model
$scope.ok = function() { $uibModalInstance.close($scope.model) } $scope.ok = function () { $uibModalInstance.close($scope.model) }
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
} }
}) })
@ -465,7 +465,7 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
* to $scope.invoices * to $scope.invoices
* @param concat {boolean} if true, the result will be append to $scope.invoices instead of being affected * @param concat {boolean} if true, the result will be append to $scope.invoices instead of being affected
*/ */
var invoiceSearch = function(concat) { var invoiceSearch = function (concat) {
Invoice.list({ Invoice.list({
query: { query: {
number: $scope.searchInvoice.reference, number: $scope.searchInvoice.reference,
@ -561,8 +561,8 @@ Application.Controllers.controller('AvoirModalController', ['$scope', '$uibModal
} else { } else {
return Invoice.save( return Invoice.save(
{ avoir: $scope.avoir }, { avoir: $scope.avoir },
function(avoir) { // success function (avoir) { // success
$uibModalInstance.close({avoir, invoice: $scope.invoice}) $uibModalInstance.close({ avoir, invoice: $scope.invoice })
}, },
function (err) { // failed function (err) { // failed
growl.error(_t('unable_to_create_the_refund')) growl.error(_t('unable_to_create_the_refund'))

View File

@ -38,7 +38,7 @@
class MembersController { class MembersController {
constructor ($scope, $state, Group, Training) { constructor ($scope, $state, Group, Training) {
// Retrieve the profiles groups (eg. students ...) // Retrieve the profiles groups (eg. students ...)
Group.query(function(groups) { $scope.groups = groups.filter(function(g) { return (g.slug !== 'admins') && !g.disabled }) }) Group.query(function (groups) { $scope.groups = groups.filter(function (g) { return (g.slug !== 'admins') && !g.disabled }) })
// Retrieve the list of available trainings // Retrieve the list of available trainings
Training.query().$promise.then(function (data) { Training.query().$promise.then(function (data) {
@ -106,7 +106,7 @@ class MembersController {
/** /**
* Changes the admin's view to the members list page * Changes the admin's view to the members list page
*/ */
$scope.cancel = function() { $state.go('app.admin.members') } $scope.cancel = function () { $state.go('app.admin.members') }
/** /**
* For use with 'ng-class', returns the CSS class name for the uploads previews. * For use with 'ng-class', returns the CSS class name for the uploads previews.
@ -259,7 +259,7 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce',
* @returns {Number} index of the requested admin, in the provided array * @returns {Number} index of the requested admin, in the provided array
*/ */
var findAdminIdxById = function (admins, id) { var findAdminIdxById = function (admins, id) {
return (admins.map(function(admin) { return admin.id })).indexOf(id) return (admins.map(function (admin) { return admin.id })).indexOf(id)
} }
/** /**
@ -331,7 +331,7 @@ Application.Controllers.controller('EditMemberController', ['$scope', '$state',
} else { } else {
Plan.query({ group_id: $scope.user.group_id }, function (plans) { Plan.query({ group_id: $scope.user.group_id }, function (plans) {
$scope.plans = plans $scope.plans = plans
return Array.from($scope.plans).map( function(plan) { return Array.from($scope.plans).map(function (plan) {
return (plan.nameToDisplay = $filter('humanReadablePlanName')(plan)) return (plan.nameToDisplay = $filter('humanReadablePlanName')(plan))
}) })
}) })
@ -399,7 +399,7 @@ Application.Controllers.controller('EditMemberController', ['$scope', '$state',
}] }]
}) })
// once the form was validated successfully ... // once the form was validated successfully ...
return modalInstance.result.then(function(subscription) { $scope.subscription.expired_at = subscription.expired_at }) return modalInstance.result.then(function (subscription) { $scope.subscription.expired_at = subscription.expired_at })
} }
/** /**
@ -427,7 +427,7 @@ Application.Controllers.controller('EditMemberController', ['$scope', '$state',
* will be included. * will be included.
* @returns {String} * @returns {String}
*/ */
$scope.humanReadablePlanName = function(plan, groups, short) { return `${$filter('humanReadablePlanName')(plan, groups, short)}` } $scope.humanReadablePlanName = function (plan, groups, short) { return `${$filter('humanReadablePlanName')(plan, groups, short)}` }
/** /**
* Modal dialog validation callback * Modal dialog validation callback
@ -441,18 +441,18 @@ Application.Controllers.controller('EditMemberController', ['$scope', '$state',
} }
, function (error) { , function (error) {
growl.error(_t('a_problem_occurred_while_taking_the_subscription')) growl.error(_t('a_problem_occurred_while_taking_the_subscription'))
console.error(error); console.error(error)
}) })
} }
/** /**
* Modal dialog cancellation callback * Modal dialog cancellation callback
*/ */
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
}] }]
}) })
// once the form was validated succesfully ... // once the form was validated succesfully ...
return modalInstance.result.then(function(subscription) { $scope.subscription = subscription }) return modalInstance.result.then(function (subscription) { $scope.subscription = subscription })
} }
$scope.createWalletCreditModal = function (user, wallet) { $scope.createWalletCreditModal = function (user, wallet) {
@ -490,7 +490,7 @@ Application.Controllers.controller('EditMemberController', ['$scope', '$state',
/** /**
* Modal dialog validation callback * Modal dialog validation callback
*/ */
$scope.ok = function() { $scope.ok = function () {
Wallet.credit( Wallet.credit(
{ id: wallet.id }, { id: wallet.id },
{ {
@ -503,8 +503,8 @@ Application.Controllers.controller('EditMemberController', ['$scope', '$state',
growl.success(_t('wallet_credit_successfully')) growl.success(_t('wallet_credit_successfully'))
return $uibModalInstance.close(_wallet) return $uibModalInstance.close(_wallet)
}, },
function(error) { function (error) {
growl.error(_t('a_problem_occurred_for_wallet_credit')); growl.error(_t('a_problem_occurred_for_wallet_credit'))
console.error(error) console.error(error)
} }
) )
@ -513,7 +513,7 @@ Application.Controllers.controller('EditMemberController', ['$scope', '$state',
/** /**
* Modal dialog cancellation callback * Modal dialog cancellation callback
*/ */
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
} }
] }) ] })
// once the form was validated succesfully ... // once the form was validated succesfully ...
@ -625,17 +625,17 @@ Application.Controllers.controller('NewAdminController', ['$state', '$scope', 'A
* Shows the birth day datepicker * Shows the birth day datepicker
* @param $event {Object} jQuery event object * @param $event {Object} jQuery event object
*/ */
$scope.openDatePicker = function($event) { $scope.datePicker.opened = true } $scope.openDatePicker = function ($event) { $scope.datePicker.opened = true }
/** /**
* Send the new admin, currently stored in $scope.admin, to the server for database saving * Send the new admin, currently stored in $scope.admin, to the server for database saving
*/ */
$scope.saveAdmin = function() { $scope.saveAdmin = function () {
Admin.save( Admin.save(
{}, {},
{ admin: $scope.admin }, { admin: $scope.admin },
function () { function () {
growl.success(_t('administrator_successfully_created_he_will_receive_his_connection_directives_by_email', {GENDER: getGender($scope.admin)}, 'messageformat')) growl.success(_t('administrator_successfully_created_he_will_receive_his_connection_directives_by_email', { GENDER: getGender($scope.admin) }, 'messageformat'))
return $state.go('app.admin.members') return $state.go('app.admin.members')
} }
, function (error) { , function (error) {

View File

@ -24,7 +24,7 @@ Application.Controllers.controller('OpenAPIClientsController', ['$scope', 'clien
// Change the order criterion to the one provided // Change the order criterion to the one provided
// @param orderBy {string} ordering criterion // @param orderBy {string} ordering criterion
// //
$scope.setOrder = function (orderBy) { $scope.setOrder = function (orderBy) {
if ($scope.order === orderBy) { if ($scope.order === orderBy) {
return $scope.order = `-${orderBy}` return $scope.order = `-${orderBy}`

View File

@ -26,7 +26,7 @@ class PlanController {
CSRF.setMetaTags() CSRF.setMetaTags()
// groups list // groups list
$scope.groups = groups.filter(function(g) { return (g.slug !== 'admins') && !g.disabled }) $scope.groups = groups.filter(function (g) { return (g.slug !== 'admins') && !g.disabled })
// users with role 'partner', notifiables for a partner plan // users with role 'partner', notifiables for a partner plan
$scope.partners = partners.users $scope.partners = partners.users
@ -64,7 +64,6 @@ class PlanController {
*/ */
Application.Controllers.controller('NewPlanController', ['$scope', '$uibModal', 'groups', 'prices', 'partners', 'CSRF', '$state', 'growl', '_t', Application.Controllers.controller('NewPlanController', ['$scope', '$uibModal', 'groups', 'prices', 'partners', 'CSRF', '$state', 'growl', '_t',
function ($scope, $uibModal, groups, prices, partners, CSRF, $state, growl, _t) { function ($scope, $uibModal, groups, prices, partners, CSRF, $state, growl, _t) {
/* PUBLIC SCOPE */ /* PUBLIC SCOPE */
// current form is used to create a new plan // current form is used to create a new plan
@ -99,7 +98,7 @@ Application.Controllers.controller('NewPlanController', ['$scope', '$uibModal',
* Checks if the partner contact is a valid data. Used in the form validation process * Checks if the partner contact is a valid data. Used in the form validation process
* @returns {boolean} * @returns {boolean}
*/ */
$scope.partnerIsValid = function() { return ($scope.plan.type === 'Plan') || ($scope.plan.partnerId || ($scope.plan.partnerContact && $scope.plan.partnerContact.email)) } $scope.partnerIsValid = function () { return ($scope.plan.type === 'Plan') || ($scope.plan.partnerId || ($scope.plan.partnerContact && $scope.plan.partnerContact.email)) }
/** /**
* Open a modal dialog allowing the admin to create a new partner user * Open a modal dialog allowing the admin to create a new partner user
@ -112,7 +111,7 @@ Application.Controllers.controller('NewPlanController', ['$scope', '$uibModal',
controller: ['$scope', '$uibModalInstance', 'User', function ($scope, $uibModalInstance, User) { controller: ['$scope', '$uibModalInstance', 'User', function ($scope, $uibModalInstance, User) {
$scope.partner = {} $scope.partner = {}
$scope.ok = function() { $scope.ok = function () {
User.save( User.save(
{}, {},
{ user: $scope.partner }, { user: $scope.partner },
@ -123,11 +122,11 @@ Application.Controllers.controller('NewPlanController', ['$scope', '$uibModal',
}, },
function (error) { function (error) {
growl.error(_t('new_plan.unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name')) growl.error(_t('new_plan.unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name'))
console.error(error); console.error(error)
} }
) )
} }
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
}] }]
}) })
// once the form was validated successfully ... // once the form was validated successfully ...
@ -214,8 +213,9 @@ Application.Controllers.controller('EditPlanController', ['$scope', 'groups', 'p
} }
} }
return result return result
})()}) })()
} })
}
) )
// if no plan were selected, unset every prices // if no plan were selected, unset every prices
@ -280,7 +280,6 @@ Application.Controllers.controller('EditPlanController', ['$scope', 'groups', 'p
} }
} }
// Using the PlansController // Using the PlansController
return new PlanController($scope, groups, prices, partners, CSRF) return new PlanController($scope, groups, prices, partners, CSRF)
} }

View File

@ -33,7 +33,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
// List of groups (eg. normal, student ...) // List of groups (eg. normal, student ...)
$scope.groups = groups.filter(function (g) { return g.slug !== 'admins' }) $scope.groups = groups.filter(function (g) { return g.slug !== 'admins' })
$scope.enabledGroups = groups.filter(function(g) { return (g.slug !== 'admins') && !g.disabled }) $scope.enabledGroups = groups.filter(function (g) { return (g.slug !== 'admins') && !g.disabled })
// Associate free machine hours with subscriptions // Associate free machine hours with subscriptions
$scope.machineCredits = machineCreditsPromise $scope.machineCredits = machineCreditsPromise
@ -154,8 +154,8 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
{ id: planId }, { id: planId },
{ training_credit_nb: newdata.training_credits } { training_credit_nb: newdata.training_credits }
, angular.noop() // do nothing in case of success , angular.noop() // do nothing in case of success
, function(error) { , function (error) {
growl.error(_t('pricing.an_error_occurred_while_saving_the_number_of_credits')); growl.error(_t('pricing.an_error_occurred_while_saving_the_number_of_credits'))
console.error(error) console.error(error)
} }
) )
@ -175,7 +175,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
return $scope.trainingCreditsGroups[planId].splice($scope.trainingCreditsGroups[planId].indexOf(tc.id), 1) return $scope.trainingCreditsGroups[planId].splice($scope.trainingCreditsGroups[planId].indexOf(tc.id), 1)
} }
, function (error) { , function (error) {
growl.error(_t('pricing.an_error_occurred_while_deleting_credit_with_the_TRAINING', { TRAINING: tc.creditable.name })); growl.error(_t('pricing.an_error_occurred_while_deleting_credit_with_the_TRAINING', { TRAINING: tc.creditable.name }))
console.error(error) console.error(error)
}) })
} else { } else {
@ -214,7 +214,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
* Cancel the current training credit modification * Cancel the current training credit modification
* @param rowform {Object} see http://vitalets.github.io/angular-xeditable/ * @param rowform {Object} see http://vitalets.github.io/angular-xeditable/
*/ */
$scope.cancelTrainingCredit = function(rowform) { rowform.$cancel() } $scope.cancelTrainingCredit = function (rowform) { rowform.$cancel() }
/** /**
* Create a new empty entry in the $scope.machineCredits array * Create a new empty entry in the $scope.machineCredits array
@ -289,7 +289,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
} }
if (id != null) { if (id != null) {
return Credit.update({ id }, { credit: data }, function() { growl.success(_t('pricing.changes_have_been_successfully_saved')) }) return Credit.update({ id }, { credit: data }, function () { growl.success(_t('pricing.changes_have_been_successfully_saved')) })
} else { } else {
data.creditable_type = 'Machine' data.creditable_type = 'Machine'
return Credit.save( return Credit.save(
@ -299,9 +299,9 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
return growl.success(_t('pricing.credit_was_successfully_saved')) return growl.success(_t('pricing.credit_was_successfully_saved'))
} }
, function (err) { , function (err) {
$scope.machineCredits.pop(); $scope.machineCredits.pop()
growl.error(_t('pricing.error_creating_credit')); growl.error(_t('pricing.error_creating_credit'))
console.error(err); console.error(err)
}) })
} }
} }
@ -359,7 +359,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
} }
if (id != null) { if (id != null) {
return Credit.update({ id }, { credit: data }, function() { growl.success(_t('pricing.changes_have_been_successfully_saved')) }) return Credit.update({ id }, { credit: data }, function () { growl.success(_t('pricing.changes_have_been_successfully_saved')) })
} else { } else {
data.creditable_type = 'Space' data.creditable_type = 'Space'
return Credit.save( return Credit.save(
@ -488,7 +488,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
* will be included. * will be included.
* @returns {String} * @returns {String}
*/ */
$scope.humanReadablePlanName = function(plan, groups, short) { return `${$filter('humanReadablePlanName')(plan, groups, short)}` } $scope.humanReadablePlanName = function (plan, groups, short) { return `${$filter('humanReadablePlanName')(plan, groups, short)}` }
/** /**
* Delete a coupon from the server's database and, in case of success, from the list in memory * Delete a coupon from the server's database and, in case of success, from the list in memory
@ -510,7 +510,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
} }
} }
} }
, function() { , function () {
// the admin has confirmed, delete the coupon // the admin has confirmed, delete the coupon
Coupon.delete({ id }, function (res) { Coupon.delete({ id }, function (res) {
growl.success(_t('coupon_was_successfully_deleted')) growl.success(_t('coupon_was_successfully_deleted'))
@ -533,7 +533,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
* Open a modal allowing to select an user and send him the details of the provided coupon * Open a modal allowing to select an user and send him the details of the provided coupon
* @param coupon {Object} The coupon to send * @param coupon {Object} The coupon to send
*/ */
$scope.sendCouponToUser = function(coupon) { $scope.sendCouponToUser = function (coupon) {
$uibModal.open({ $uibModal.open({
templateUrl: '<%= asset_path "admin/pricing/sendCoupon.html" %>', templateUrl: '<%= asset_path "admin/pricing/sendCoupon.html" %>',
resolve: { resolve: {
@ -549,18 +549,18 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
$scope.coupon = coupon $scope.coupon = coupon
// Callback to validate sending of the coupon // Callback to validate sending of the coupon
$scope.ok = function() { $scope.ok = function () {
Coupon.send({ coupon_code: coupon.code, user_id: $scope.ctrl.member.id }, function (res) { Coupon.send({ coupon_code: coupon.code, user_id: $scope.ctrl.member.id }, function (res) {
growl.success(_t('pricing.coupon_successfully_sent_to_USER', { USER: $scope.ctrl.member.name })) growl.success(_t('pricing.coupon_successfully_sent_to_USER', { USER: $scope.ctrl.member.name }))
return $uibModalInstance.close({ user_id: $scope.ctrl.member.id }) return $uibModalInstance.close({ user_id: $scope.ctrl.member.id })
} }
, function(err) { , function (err) {
growl.error(_t('pricing.an_error_occurred_unable_to_send_the_coupon')) growl.error(_t('pricing.an_error_occurred_unable_to_send_the_coupon'))
console.error(err) console.error(err)
}) })
} }
// Callback to close the modal and cancel the sending process // Callback to close the modal and cancel the sending process
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
}] }]
}) })
} }
@ -574,7 +574,7 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state',
$scope.trainingCreditsGroups = groupCreditsByPlan($scope.trainingCredits) $scope.trainingCreditsGroups = groupCreditsByPlan($scope.trainingCredits)
// adds empty array for plan which hasn't any credits yet // adds empty array for plan which hasn't any credits yet
return (function() { return (function () {
const result = [] const result = []
for (let plan of Array.from($scope.plans)) { for (let plan of Array.from($scope.plans)) {
if ($scope.trainingCreditsGroups[plan.id] == null) { if ($scope.trainingCreditsGroups[plan.id] == null) {

View File

@ -556,7 +556,6 @@ Application.Controllers.controller('StatisticsController', ['$scope', '$state',
* properties and on index-specific properties (additional_fields) * properties and on index-specific properties (additional_fields)
*/ */
var buildCustomFiltersList = function () { var buildCustomFiltersList = function () {
$scope.filters = [ $scope.filters = [
{ key: 'date', label: _t('date'), values: ['input_date'] }, { key: 'date', label: _t('date'), values: ['input_date'] },
{ key: 'userId', label: _t('user_id'), values: ['input_number'] }, { key: 'userId', label: _t('user_id'), values: ['input_number'] },
@ -720,6 +719,6 @@ Application.Controllers.controller('ExportStatisticsController', [ '$scope', '$u
/** /**
* Callback to cancel the export and close the modal * Callback to cancel the export and close the modal
*/ */
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
} }
]) ])

View File

@ -40,7 +40,7 @@ class TrainingsController {
$scope.submited = function (content) { $scope.submited = function (content) {
if ((content.id == null)) { if ((content.id == null)) {
$scope.alerts = [] $scope.alerts = []
return angular.forEach(content, function(v, k) { return angular.forEach(content, function (v, k) {
angular.forEach(v, function (err) { angular.forEach(v, function (err) {
$scope.alerts.push({ $scope.alerts.push({
msg: k + ': ' + err, msg: k + ': ' + err,
@ -56,12 +56,12 @@ class TrainingsController {
/** /**
* Changes the current user's view, redirecting him to the machines list * Changes the current user's view, redirecting him to the machines list
*/ */
$scope.cancel = function() { $state.go('app.admin.trainings') } $scope.cancel = function () { $state.go('app.admin.trainings') }
/** /**
* Force the 'public_page' attribute to false when the current training is disabled * Force the 'public_page' attribute to false when the current training is disabled
*/ */
$scope.onDisableToggled = function() { $scope.training.public_page = !$scope.training.disabled } $scope.onDisableToggled = function () { $scope.training.public_page = !$scope.training.disabled }
/** /**
* For use with 'ng-class', returns the CSS class name for the uploads previews. * For use with 'ng-class', returns the CSS class name for the uploads previews.
@ -219,7 +219,7 @@ Application.Controllers.controller('TrainingsAdminController', ['$scope', '$stat
* @param training {Object} Training object, inherited from $resource * @param training {Object} Training object, inherited from $resource
* @param availability {Object} time slot when the training occurs * @param availability {Object} time slot when the training occurs
*/ */
$scope.showReservations = function(training, availability) { $scope.showReservations = function (training, availability) {
$uibModal.open({ $uibModal.open({
templateUrl: '<%= asset_path "admin/trainings/validTrainingModal.html" %>', templateUrl: '<%= asset_path "admin/trainings/validTrainingModal.html" %>',
controller: ['$scope', '$uibModalInstance', function ($scope, $uibModalInstance) { controller: ['$scope', '$uibModalInstance', function ($scope, $uibModalInstance) {
@ -251,7 +251,7 @@ Application.Controllers.controller('TrainingsAdminController', ['$scope', '$stat
} }
} }
, function () { // success , function () { // success
angular.forEach($scope.usersToValid, function(u) { u.is_valid = true }) angular.forEach($scope.usersToValid, function (u) { u.is_valid = true })
$scope.usersToValid = [] $scope.usersToValid = []
return $uibModalInstance.close(training) return $uibModalInstance.close(training)
}) })
@ -260,10 +260,10 @@ Application.Controllers.controller('TrainingsAdminController', ['$scope', '$stat
/** /**
* Cancel the modifications and close the modal window * Cancel the modifications and close the modal window
*/ */
return $scope.cancel = function() { $uibModalInstance.dismiss('cancel') } return $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
} }
] }) ] })
} }
/** /**
* Delete the provided training and, in case of success, remove it from the trainings list afterwards * Delete the provided training and, in case of success, remove it from the trainings list afterwards
@ -282,13 +282,13 @@ Application.Controllers.controller('TrainingsAdminController', ['$scope', '$stat
} }
} }
}, },
function() { // deletion confirmed function () { // deletion confirmed
training.$delete(function () { training.$delete(function () {
$scope.trainings.splice(index, 1); $scope.trainings.splice(index, 1)
growl.info(_t('training_successfully_deleted')) growl.info(_t('training_successfully_deleted'))
}, },
function (error) { function (error) {
growl.warning(_t('unable_to_delete_the_training_because_some_users_alredy_booked_it')); growl.warning(_t('unable_to_delete_the_training_because_some_users_alredy_booked_it'))
console.error(error) console.error(error)
}) })
} }

View File

@ -14,49 +14,49 @@ Application.Controllers.controller('HomeController', ['$scope', '$stateParams',
function ($scope, $stateParams, Twitter, lastMembersPromise, lastProjectsPromise, upcomingEventsPromise, homeBlogpostPromise, twitterNamePromise) { function ($scope, $stateParams, Twitter, lastMembersPromise, lastProjectsPromise, upcomingEventsPromise, homeBlogpostPromise, twitterNamePromise) {
/* PUBLIC SCOPE */ /* PUBLIC SCOPE */
// The last registered members who confirmed their addresses // The last registered members who confirmed their addresses
$scope.lastMembers = lastMembersPromise $scope.lastMembers = lastMembersPromise
// The last tweets from the Fablab official twitter account // The last tweets from the Fablab official twitter account
$scope.lastTweets = [] $scope.lastTweets = []
// The last projects published/documented on the plateform // The last projects published/documented on the plateform
$scope.lastProjects = lastProjectsPromise $scope.lastProjects = lastProjectsPromise
// The closest upcoming events // The closest upcoming events
$scope.upcomingEvents = upcomingEventsPromise $scope.upcomingEvents = upcomingEventsPromise
// The admin blogpost // The admin blogpost
$scope.homeBlogpost = homeBlogpostPromise.setting.value $scope.homeBlogpost = homeBlogpostPromise.setting.value
// Twitter username // Twitter username
$scope.twitterName = twitterNamePromise.setting.value $scope.twitterName = twitterNamePromise.setting.value
/** /**
* Test if the provided event run on a single day or not * Test if the provided event run on a single day or not
* @param event {Object} single event from the $scope.upcomingEvents array * @param event {Object} single event from the $scope.upcomingEvents array
* @returns {boolean} false if the event runs on more that 1 day * @returns {boolean} false if the event runs on more that 1 day
*/ */
$scope.isOneDayEvent = event => moment(event.start_date).isSame(event.end_date, 'day') $scope.isOneDayEvent = event => moment(event.start_date).isSame(event.end_date, 'day')
/* PRIVATE SCOPE */ /* PRIVATE SCOPE */
/** /**
* Kind of constructor: these actions will be realized first when the controller is loaded * Kind of constructor: these actions will be realized first when the controller is loaded
*/ */
const initialize = function () { const initialize = function () {
// we retrieve tweets from here instead of ui-router's promise because, if adblock stop the API request, // we retrieve tweets from here instead of ui-router's promise because, if adblock stop the API request,
// this prevent the whole home page to be blocked // this prevent the whole home page to be blocked
$scope.lastTweets = Twitter.query({ limit: 1 }) $scope.lastTweets = Twitter.query({ limit: 1 })
// if we recieve a token to reset the password as GET parameter, trigger the // if we recieve a token to reset the password as GET parameter, trigger the
// changePassword modal from the parent controller // changePassword modal from the parent controller
if ($stateParams.reset_password_token) { if ($stateParams.reset_password_token) {
return $scope.$parent.editPassword($stateParams.reset_password_token) return $scope.$parent.editPassword($stateParams.reset_password_token)
}
} }
}
// !!! MUST BE CALLED AT THE END of the controller // !!! MUST BE CALLED AT THE END of the controller
return initialize() return initialize()
} }
]) ])

View File

@ -76,7 +76,7 @@ class MachinesController {
/** /**
* This will create a single new empty entry into the machine attachements list. * This will create a single new empty entry into the machine attachements list.
*/ */
$scope.addFile = function () { $scope.machine.machine_files_attributes.push({}) } $scope.addFile = function () { $scope.machine.machine_files_attributes.push({}) }
/** /**
* This will remove the given file from the machine attachements list. If the file was previously uploaded * This will remove the given file from the machine attachements list. If the file was previously uploaded
@ -124,14 +124,14 @@ const _reserveMachine = function (machine, e) {
templateUrl: '<%= asset_path "machines/training_reservation_modal.html" %>', templateUrl: '<%= asset_path "machines/training_reservation_modal.html" %>',
controller: ['$scope', '$uibModalInstance', '$state', function ($scope, $uibModalInstance, $state) { controller: ['$scope', '$uibModalInstance', '$state', function ($scope, $uibModalInstance, $state) {
$scope.machine = machine $scope.machine = machine
return $scope.cancel = function () { $uibModalInstance.dismiss('cancel') } return $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
} }
] }) ] })
// ... but does not have booked the training, tell him to register for a training session first // ... but does not have booked the training, tell him to register for a training session first
// unless all associated trainings are disabled // unless all associated trainings are disabled
} else { } else {
// if all trainings are disabled, just redirect the user to the reservation calendar // if all trainings are disabled, just redirect the user to the reservation calendar
if (machine.trainings.map(function (t) { return t.disabled }).reduce(function (acc, val) { return acc && val; }, true)) { if (machine.trainings.map(function (t) { return t.disabled }).reduce(function (acc, val) { return acc && val }, true)) {
return _this.$state.go('app.logged.machines_reserve', { id: machine.slug }) return _this.$state.go('app.logged.machines_reserve', { id: machine.slug })
// otherwise open the information modal // otherwise open the information modal
} else { } else {
@ -182,35 +182,35 @@ const _reserveMachine = function (machine, e) {
*/ */
Application.Controllers.controller('MachinesController', ['$scope', '$state', '_t', 'Machine', '$uibModal', 'machinesPromise', Application.Controllers.controller('MachinesController', ['$scope', '$state', '_t', 'Machine', '$uibModal', 'machinesPromise',
function ($scope, $state, _t, Machine, $uibModal, machinesPromise) { function ($scope, $state, _t, Machine, $uibModal, machinesPromise) {
// Retrieve the list of machines // Retrieve the list of machines
$scope.machines = machinesPromise $scope.machines = machinesPromise
/** /**
* Redirect the user to the machine details page * Redirect the user to the machine details page
*/ */
$scope.showMachine = function (machine) { $state.go('app.public.machines_show', { id: machine.slug }) } $scope.showMachine = function (machine) { $state.go('app.public.machines_show', { id: machine.slug }) }
/** /**
* Callback to book a reservation for the current machine * Callback to book a reservation for the current machine
*/ */
$scope.reserveMachine = _reserveMachine.bind({ $scope.reserveMachine = _reserveMachine.bind({
$scope, $scope,
$state, $state,
_t, _t,
$uibModal, $uibModal,
Machine Machine
}) })
// Default: we show only enabled machines // Default: we show only enabled machines
$scope.machineFiltering = 'enabled' $scope.machineFiltering = 'enabled'
// Available options for filtering machines by status // Available options for filtering machines by status
return $scope.filterDisabled = [ return $scope.filterDisabled = [
'enabled', 'enabled',
'disabled', 'disabled',
'all' 'all'
] ]
} }
]) ])
/** /**
@ -241,30 +241,30 @@ Application.Controllers.controller('EditMachineController', ['$scope', '$state',
function ($scope, $state, $stateParams, machinePromise, CSRF) { function ($scope, $state, $stateParams, machinePromise, CSRF) {
/* PUBLIC SCOPE */ /* PUBLIC SCOPE */
// API URL where the form will be posted // API URL where the form will be posted
$scope.actionUrl = `/api/machines/${$stateParams.id}` $scope.actionUrl = `/api/machines/${$stateParams.id}`
// Form action on the above URL // Form action on the above URL
$scope.method = 'put' $scope.method = 'put'
// Retrieve the details for the machine id in the URL, if an error occurs redirect the user to the machines list // Retrieve the details for the machine id in the URL, if an error occurs redirect the user to the machines list
$scope.machine = machinePromise $scope.machine = machinePromise
/* PRIVATE SCOPE */ /* PRIVATE SCOPE */
/** /**
* Kind of constructor: these actions will be realized first when the controller is loaded * Kind of constructor: these actions will be realized first when the controller is loaded
*/ */
const initialize = function () { const initialize = function () {
CSRF.setMetaTags() CSRF.setMetaTags()
// Using the MachinesController // Using the MachinesController
return new MachinesController($scope, $state) return new MachinesController($scope, $state)
}
// !!! MUST BE CALLED AT THE END of the controller
return initialize()
} }
// !!! MUST BE CALLED AT THE END of the controller
return initialize()
}
]) ])
/** /**
@ -293,13 +293,13 @@ Application.Controllers.controller('ShowMachineController', ['$scope', '$state',
} }
} }
} }
, function () { // deletion confirmed , function () { // deletion confirmed
// delete the machine then redirect to the machines listing // delete the machine then redirect to the machines listing
machine.$delete( machine.$delete(
function () { $state.go('app.public.machines_list') }, function () { $state.go('app.public.machines_list') },
function (error) { growl.warning(_t('the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users')); console.error(error); } function (error) { growl.warning(_t('the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users')); console.error(error) }
) )
}); })
} }
} }
@ -428,7 +428,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
/** /**
* Callback when a slot was successfully cancelled. Reset the slot style as 'ready to book' * Callback when a slot was successfully cancelled. Reset the slot style as 'ready to book'
*/ */
$scope.slotCancelled = function () { $scope.markSlotAsRemoved($scope.selectedEvent) } $scope.slotCancelled = function () { $scope.markSlotAsRemoved($scope.selectedEvent) }
/** /**
* Change the last selected slot's appearence to looks like 'currently looking for a new destination to exchange' * Change the last selected slot's appearence to looks like 'currently looking for a new destination to exchange'
@ -496,7 +496,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
$scope.updateMember = function () { $scope.updateMember = function () {
$scope.plansAreShown = false $scope.plansAreShown = false
$scope.selectedPlan = null $scope.selectedPlan = null
Member.get({ id: $scope.ctrl.member.id }, function (member) { $scope.ctrl.member = member; }) Member.get({ id: $scope.ctrl.member.id }, function (member) { $scope.ctrl.member = member })
} }
/** /**
@ -513,7 +513,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
/** /**
* Switch the user's view from the reservation agenda to the plan subscription * Switch the user's view from the reservation agenda to the plan subscription
*/ */
$scope.showPlans = function () { $scope.plansAreShown = true } $scope.showPlans = function () { $scope.plansAreShown = true }
/** /**
* Add the provided plan to the current shopping cart * Add the provided plan to the current shopping cart
@ -629,7 +629,7 @@ Application.Controllers.controller('ReserveMachineController', ['$scope', '$stat
/** /**
* Update the calendar's display to render the new attributes of the events * Update the calendar's display to render the new attributes of the events
*/ */
var updateCalendar = function () { uiCalendarConfig.calendars.calendar.fullCalendar('rerenderEvents') } var updateCalendar = function () { uiCalendarConfig.calendars.calendar.fullCalendar('rerenderEvents') }
/** /**
* Asynchronously fetch the events from the API and refresh the calendar's view with these new events * Asynchronously fetch the events from the API and refresh the calendar's view with these new events

View File

@ -17,7 +17,7 @@ Application.Controllers.controller('PlansIndexController', ['$scope', '$rootScop
/* PUBLIC SCOPE */ /* PUBLIC SCOPE */
// list of groups // list of groups
$scope.groups = groupsPromise.filter(function (g) { return (g.slug !== 'admins') & !g.disabled; } ) $scope.groups = groupsPromise.filter(function (g) { return (g.slug !== 'admins') & !g.disabled })
// default : do not show the group changing form // default : do not show the group changing form
// group ID of the current/selected user // group ID of the current/selected user
@ -123,24 +123,24 @@ Application.Controllers.controller('PlansIndexController', ['$scope', '$rootScop
*/ */
$scope.selectGroup = function () { $scope.selectGroup = function () {
Member.update({ id: $scope.ctrl.member.id }, { user: { group_id: $scope.group.id } }, function (user) { Member.update({ id: $scope.ctrl.member.id }, { user: { group_id: $scope.group.id } }, function (user) {
$scope.ctrl.member = user $scope.ctrl.member = user
$scope.group.change = false $scope.group.change = false
if ($scope.currentUser.role !== 'admin') { if ($scope.currentUser.role !== 'admin') {
$rootScope.currentUser = user $rootScope.currentUser = user
Auth._currentUser.group_id = user.group_id Auth._currentUser.group_id = user.group_id
growl.success(_t('your_group_was_successfully_changed')) growl.success(_t('your_group_was_successfully_changed'))
} else { } else {
growl.success(_t('the_user_s_group_was_successfully_changed')) growl.success(_t('the_user_s_group_was_successfully_changed'))
}
} }
, function (err) { }
if ($scope.currentUser.role !== 'admin') { , function (err) {
growl.error(_t('an_error_prevented_your_group_from_being_changed')) if ($scope.currentUser.role !== 'admin') {
} else { growl.error(_t('an_error_prevented_your_group_from_being_changed'))
growl.error(_t('an_error_prevented_to_change_the_user_s_group')) } else {
} growl.error(_t('an_error_prevented_to_change_the_user_s_group'))
console.error(err) }
}) console.error(err)
})
} }
/** /**
@ -160,7 +160,7 @@ Application.Controllers.controller('PlansIndexController', ['$scope', '$rootScop
* @return {boolean} * @return {boolean}
*/ */
$scope.isInFuture = function (dateTime) { $scope.isInFuture = function (dateTime) {
return (moment().diff(moment(dateTime)) < 0); return (moment().diff(moment(dateTime)) < 0)
} }
/** /**
@ -182,7 +182,7 @@ Application.Controllers.controller('PlansIndexController', ['$scope', '$rootScop
} }
} }
$scope.$on('devise:new-session', function (event, user) { $scope.ctrl.member = user; }); $scope.$on('devise:new-session', function (event, user) { $scope.ctrl.member = user })
// watch when a coupon is applied to re-compute the total price // watch when a coupon is applied to re-compute the total price
return $scope.$watch('coupon.applied', function (newValue, oldValue) { return $scope.$watch('coupon.applied', function (newValue, oldValue) {
@ -246,7 +246,7 @@ Application.Controllers.controller('PlansIndexController', ['$scope', '$rootScop
$scope.numberFilter = $filter('number') $scope.numberFilter = $filter('number')
// retrieve the CGV // retrieve the CGV
CustomAsset.get({ name: 'cgv-file' }, function (cgv) { $scope.cgv = cgv.custom_asset; }); CustomAsset.get({ name: 'cgv-file' }, function (cgv) { $scope.cgv = cgv.custom_asset })
/** /**
* Callback for click on the 'proceed' button. * Callback for click on the 'proceed' button.
@ -259,21 +259,21 @@ Application.Controllers.controller('PlansIndexController', ['$scope', '$rootScop
} else { } else {
$scope.attempting = true $scope.attempting = true
Subscription.save({ Subscription.save({
coupon_code: ((coupon ? coupon.code : undefined)), coupon_code: ((coupon ? coupon.code : undefined)),
subscription: { subscription: {
plan_id: selectedPlan.id, plan_id: selectedPlan.id,
user_id: member.id, user_id: member.id,
card_token: response.id card_token: response.id
}
}
, function (data) { // success
$uibModalInstance.close(data)
}
, function (data, status) { // failed
$scope.alerts = []
$scope.alerts.push({ msg: _t('an_error_occured_during_the_payment_process_please_try_again_later'), type: 'danger' })
$scope.attempting = false
} }
}
, function (data) { // success
$uibModalInstance.close(data)
}
, function (data, status) { // failed
$scope.alerts = []
$scope.alerts.push({ msg: _t('an_error_occured_during_the_payment_process_please_try_again_later'), type: 'danger' })
$scope.attempting = false
}
) )
} }
} }
@ -342,20 +342,20 @@ Application.Controllers.controller('PlansIndexController', ['$scope', '$rootScop
$scope.ok = function () { $scope.ok = function () {
$scope.attempting = true $scope.attempting = true
Subscription.save({ Subscription.save({
coupon_code: ((coupon ? coupon.code : undefined)), coupon_code: ((coupon ? coupon.code : undefined)),
subscription: { subscription: {
plan_id: selectedPlan.id, plan_id: selectedPlan.id,
user_id: member.id user_id: member.id
}
} }
, function (data) { // success }
$uibModalInstance.close(data) , function (data) { // success
} $uibModalInstance.close(data)
, function (data, status) { // failed }
, function (data, status) { // failed
$scope.alerts = [] $scope.alerts = []
$scope.alerts.push({ msg: _t('an_error_occured_during_the_payment_process_please_try_again_later'), type: 'danger' }) $scope.alerts.push({ msg: _t('an_error_occured_during_the_payment_process_please_try_again_later'), type: 'danger' })
$scope.attempting = false $scope.attempting = false
} }
) )
} }

View File

@ -114,19 +114,19 @@ Application.Controllers.controller('CompleteProfileController', ['$scope', '$roo
*/ */
$scope.registerAuthToken = function () { $scope.registerAuthToken = function () {
Member.merge({ id: $rootScope.currentUser.id }, { user: { auth_token: $scope.user.auth_token } }, function (user) { Member.merge({ id: $rootScope.currentUser.id }, { user: { auth_token: $scope.user.auth_token } }, function (user) {
$scope.user = user $scope.user = user
Auth._currentUser = user Auth._currentUser = user
$rootScope.currentUser = user $rootScope.currentUser = user
$state.go('app.public.home') $state.go('app.public.home')
}
, function (err) {
if (err.data.error) {
growl.error(err.data.error)
} else {
growl.error(_t('an_unexpected_error_occurred_check_your_authentication_code'))
console.error(err)
} }
, function (err) { })
if (err.data.error) {
growl.error(err.data.error)
} else {
growl.error(_t('an_unexpected_error_occurred_check_your_authentication_code'))
console.error(err)
}
})
} }
/** /**
@ -209,7 +209,7 @@ Application.Controllers.controller('CompleteProfileController', ['$scope', '$roo
$scope.user.profile.birthday = moment($scope.user.profile.birthday).toDate() $scope.user.profile.birthday = moment($scope.user.profile.birthday).toDate()
// bind fields protection with sso fields // bind fields protection with sso fields
angular.forEach(activeProviderPromise.mapping, function (map) { $scope.preventField[map] = true; }) angular.forEach(activeProviderPromise.mapping, function (map) { $scope.preventField[map] = true })
} }
// !!! MUST BE CALLED AT THE END of the controller // !!! MUST BE CALLED AT THE END of the controller

View File

@ -129,7 +129,7 @@ class ProjectsController {
/** /**
* This will create a single new empty entry into the project's CAO attachements list. * This will create a single new empty entry into the project's CAO attachements list.
*/ */
$scope.addFile = function() { $scope.project.project_caos_attributes.push({}) } $scope.addFile = function () { $scope.project.project_caos_attributes.push({}) }
/** /**
* This will remove the given file from the project's CAO attachements list. If the file was previously uploaded * This will remove the given file from the project's CAO attachements list. If the file was previously uploaded
@ -162,38 +162,38 @@ class ProjectsController {
*/ */
$scope.deleteStep = function (step) { $scope.deleteStep = function (step) {
dialogs.confirm({ dialogs.confirm({
resolve: { resolve: {
object() { object () {
return { return {
title: _t('confirmation_required'), title: _t('confirmation_required'),
msg: _t('do_you_really_want_to_delete_this_step') msg: _t('do_you_really_want_to_delete_this_step')
}
} }
} }
} }
, function () { // deletion confirmed }
const index = $scope.project.project_steps_attributes.indexOf(step) , function () { // deletion confirmed
if (step.id != null) { const index = $scope.project.project_steps_attributes.indexOf(step)
step._destroy = true if (step.id != null) {
} else { step._destroy = true
$scope.project.project_steps_attributes.splice(index, 1) } else {
} $scope.project.project_steps_attributes.splice(index, 1)
}
// update the new total number of steps // update the new total number of steps
$scope.totalSteps -= 1 $scope.totalSteps -= 1
// reindex the remaining steps // reindex the remaining steps
return (function () { return (function () {
const result = [] const result = []
for (let s of Array.from($scope.project.project_steps_attributes)) { for (let s of Array.from($scope.project.project_steps_attributes)) {
if (s.step_nb > step.step_nb) { if (s.step_nb > step.step_nb) {
result.push(s.step_nb -= 1) result.push(s.step_nb -= 1)
} else { } else {
result.push(undefined) result.push(undefined)
}
} }
return result }
})() return result
}) })()
})
} }
/** /**
@ -293,7 +293,7 @@ Application.Controllers.controller('ProjectsController', ['$scope', '$state', 'P
$scope.searchOverWholeNetworkChanged = function () { $scope.searchOverWholeNetworkChanged = function () {
setTimeout( setTimeout(
function() { $scope.resetFiltersAndTriggerSearch() }, function () { $scope.resetFiltersAndTriggerSearch() },
150 150
) )
} }
@ -387,7 +387,7 @@ Application.Controllers.controller('ProjectsController', ['$scope', '$state', 'P
var updateUrlParam = function (name, value) { var updateUrlParam = function (name, value) {
$state.current.reloadOnSearch = false $state.current.reloadOnSearch = false
$location.search(name, value) $location.search(name, value)
return $timeout(function() { $state.current.reloadOnSearch = undefined}) return $timeout(function () { $state.current.reloadOnSearch = undefined })
} }
var loadMoreCallback = function (projectsPromise) { var loadMoreCallback = function (projectsPromise) {
@ -522,8 +522,8 @@ Application.Controllers.controller('ShowProjectController', ['$scope', '$state',
} }
} }
, function () { // cancel confirmed , function () { // cancel confirmed
$scope.project.$delete(function() { $state.go('app.public.projects_list', {}, { reload: true }) }) $scope.project.$delete(function () { $state.go('app.public.projects_list', {}, { reload: true }) })
}) })
} else { } else {
return console.error(_t('unauthorized_operation')) return console.error(_t('unauthorized_operation'))
} }
@ -550,10 +550,10 @@ Application.Controllers.controller('ShowProjectController', ['$scope', '$state',
} }
// callback for signaling cancellation // callback for signaling cancellation
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
// callback for form validation // callback for form validation
return $scope.ok = function() { return $scope.ok = function () {
Abuse.save( Abuse.save(
{}, {},
{ abuse: $scope.signaler }, { abuse: $scope.signaler },

View File

@ -58,7 +58,7 @@ class SpacesController {
/** /**
* Changes the current user's view, redirecting him to the spaces list * Changes the current user's view, redirecting him to the spaces list
*/ */
$scope.cancel = function() { $state.go('app.public.spaces_list') } $scope.cancel = function () { $state.go('app.public.spaces_list') }
/** /**
* For use with 'ng-class', returns the CSS class name for the uploads previews. * For use with 'ng-class', returns the CSS class name for the uploads previews.
@ -76,7 +76,7 @@ class SpacesController {
/** /**
* This will create a single new empty entry into the space attachments list. * This will create a single new empty entry into the space attachments list.
*/ */
$scope.addFile = function() { $scope.space.space_files_attributes.push({}) } $scope.addFile = function () { $scope.space.space_files_attributes.push({}) }
/** /**
* This will remove the given file from the space attachments list. If the file was previously uploaded * This will remove the given file from the space attachments list. If the file was previously uploaded
@ -148,70 +148,70 @@ Application.Controllers.controller('NewSpaceController', ['$scope', '$state', 'C
*/ */
Application.Controllers.controller('EditSpaceController', ['$scope', '$state', '$stateParams', 'spacePromise', 'CSRF', Application.Controllers.controller('EditSpaceController', ['$scope', '$state', '$stateParams', 'spacePromise', 'CSRF',
function ($scope, $state, $stateParams, spacePromise, CSRF) { function ($scope, $state, $stateParams, spacePromise, CSRF) {
CSRF.setMetaTags() CSRF.setMetaTags()
// API URL where the form will be posted // API URL where the form will be posted
$scope.actionUrl = `/api/spaces/${$stateParams.id}` $scope.actionUrl = `/api/spaces/${$stateParams.id}`
// Form action on the above URL // Form action on the above URL
$scope.method = 'put' $scope.method = 'put'
// space to modify // space to modify
$scope.space = spacePromise $scope.space = spacePromise
// Using the SpacesController // Using the SpacesController
return new SpacesController($scope, $state) return new SpacesController($scope, $state)
}]) }])
Application.Controllers.controller('ShowSpaceController', ['$scope', '$state', 'spacePromise', '_t', 'dialogs', 'growl', Application.Controllers.controller('ShowSpaceController', ['$scope', '$state', 'spacePromise', '_t', 'dialogs', 'growl',
function ($scope, $state, spacePromise, _t, dialogs, growl) { function ($scope, $state, spacePromise, _t, dialogs, growl) {
// Details of the space witch id/slug is provided in the URL // Details of the space witch id/slug is provided in the URL
$scope.space = spacePromise $scope.space = spacePromise
/** /**
* Callback to book a reservation for the current space * Callback to book a reservation for the current space
* @param event {Object} see https://docs.angularjs.org/guide/expression#-event- * @param event {Object} see https://docs.angularjs.org/guide/expression#-event-
*/ */
$scope.reserveSpace = function (event) { $scope.reserveSpace = function (event) {
event.preventDefault() event.preventDefault()
return $state.go('app.logged.space_reserve', { id: $scope.space.slug }) return $state.go('app.logged.space_reserve', { id: $scope.space.slug })
} }
/** /**
* Callback to book a reservation for the current space * Callback to book a reservation for the current space
* @param event {Object} see https://docs.angularjs.org/guide/expression#-event- * @param event {Object} see https://docs.angularjs.org/guide/expression#-event-
*/ */
$scope.deleteSpace = function (event) { $scope.deleteSpace = function (event) {
event.preventDefault() event.preventDefault()
// check the permissions // check the permissions
if ($scope.currentUser.role !== 'admin') { if ($scope.currentUser.role !== 'admin') {
return console.error(_t('space_show.unauthorized_operation')) return console.error(_t('space_show.unauthorized_operation'))
} else { } else {
return dialogs.confirm({ return dialogs.confirm({
resolve: { resolve: {
object () { object () {
return { return {
title: _t('space_show.confirmation_required'), title: _t('space_show.confirmation_required'),
msg: _t('space_show.do_you_really_want_to_delete_this_space') msg: _t('space_show.do_you_really_want_to_delete_this_space')
}
} }
} }
} }
} , function () { // deletion confirmed
, function() { // deletion confirmed
// delete the machine then redirect to the machines listing // delete the machine then redirect to the machines listing
$scope.space.$delete( $scope.space.$delete(
function () { function () {
$state.go('app.public.spaces_list') $state.go('app.public.spaces_list')
}, },
function (error) { function (error) {
growl.warning(_t('space_show.the_space_cant_be_deleted_because_it_is_already_reserved_by_some_users')); growl.warning(_t('space_show.the_space_cant_be_deleted_because_it_is_already_reserved_by_some_users'))
console.error(error) console.error(error)
} }
) )
}) })
}
} }
} }])
}])
/** /**
* Controller used in the spaces reservation agenda page. * Controller used in the spaces reservation agenda page.
@ -326,7 +326,7 @@ Application.Controllers.controller('ReserveSpaceController', ['$scope', '$stateP
/** /**
* Callback when a slot was successfully cancelled. Reset the slot style as 'ready to book' * Callback when a slot was successfully cancelled. Reset the slot style as 'ready to book'
*/ */
$scope.slotCancelled = function() { $scope.markSlotAsRemoved($scope.selectedEvent) } $scope.slotCancelled = function () { $scope.markSlotAsRemoved($scope.selectedEvent) }
/** /**
* Change the last selected slot's appearence to looks like 'currently looking for a new destination to exchange' * Change the last selected slot's appearence to looks like 'currently looking for a new destination to exchange'
@ -474,7 +474,7 @@ Application.Controllers.controller('ReserveSpaceController', ['$scope', '$stateP
/** /**
* To use as callback in Array.prototype.filter to get only enabled plans * To use as callback in Array.prototype.filter to get only enabled plans
*/ */
$scope.filterDisabledPlans = function (plan) { return !plan.disabled; } $scope.filterDisabledPlans = function (plan) { return !plan.disabled }
/* PRIVATE SCOPE */ /* PRIVATE SCOPE */
@ -534,7 +534,7 @@ Application.Controllers.controller('ReserveSpaceController', ['$scope', '$stateP
/** /**
* Update the calendar's display to render the new attributes of the events * Update the calendar's display to render the new attributes of the events
*/ */
var updateCalendar = function() { uiCalendarConfig.calendars.calendar.fullCalendar('rerenderEvents') } var updateCalendar = function () { uiCalendarConfig.calendars.calendar.fullCalendar('rerenderEvents') }
/** /**
* Asynchronously fetch the events from the API and refresh the calendar's view with these new events * Asynchronously fetch the events from the API and refresh the calendar's view with these new events

View File

@ -20,18 +20,18 @@
Application.Controllers.controller('TrainingsController', ['$scope', '$state', 'trainingsPromise', Application.Controllers.controller('TrainingsController', ['$scope', '$state', 'trainingsPromise',
function ($scope, $state, trainingsPromise) { function ($scope, $state, trainingsPromise) {
// List of trainings // List of trainings
$scope.trainings = trainingsPromise $scope.trainings = trainingsPromise
/** /**
* Callback for the 'reserve' button * Callback for the 'reserve' button
*/ */
$scope.reserveTraining = function (training, event) { $state.go('app.logged.trainings_reserve', { id: training.slug }) } $scope.reserveTraining = function (training, event) { $state.go('app.logged.trainings_reserve', { id: training.slug }) }
/** /**
* Callback for the 'show' button * Callback for the 'show' button
*/ */
$scope.showTraining = function (training) { $state.go('app.public.training_show', { id: training.slug }) } $scope.showTraining = function (training) { $state.go('app.public.training_show', { id: training.slug }) }
}]) }])
/** /**
* Public view of a specific training * Public view of a specific training
@ -39,51 +39,51 @@ Application.Controllers.controller('TrainingsController', ['$scope', '$state', '
Application.Controllers.controller('ShowTrainingController', ['$scope', '$state', 'trainingPromise', 'growl', '_t', 'dialogs', Application.Controllers.controller('ShowTrainingController', ['$scope', '$state', 'trainingPromise', 'growl', '_t', 'dialogs',
function ($scope, $state, trainingPromise, growl, _t, dialogs) { function ($scope, $state, trainingPromise, growl, _t, dialogs) {
// Current training // Current training
$scope.training = trainingPromise $scope.training = trainingPromise
/** /**
* Callback to delete the current training (admins only) * Callback to delete the current training (admins only)
*/ */
$scope.delete = function (training) { $scope.delete = function (training) {
// check the permissions // check the permissions
if ($scope.currentUser.role !== 'admin') { if ($scope.currentUser.role !== 'admin') {
console.error(_t('unauthorized_operation')) console.error(_t('unauthorized_operation'))
} else { } else {
dialogs.confirm( dialogs.confirm(
{ {
resolve: { resolve: {
object () { object () {
return { return {
title: _t('confirmation_required'), title: _t('confirmation_required'),
msg: _t('do_you_really_want_to_delete_this_training') msg: _t('do_you_really_want_to_delete_this_training')
}
} }
} }
} },
}, function () { // deletion confirmed
function() { // deletion confirmed
// delete the training then redirect to the trainings listing // delete the training then redirect to the trainings listing
training.$delete( training.$delete(
function() { $state.go('app.public.trainings_list') }, function () { $state.go('app.public.trainings_list') },
function (error) { function (error) {
growl.warning(_t('the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users')); growl.warning(_t('the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users'))
console.error(error); console.error(error)
} }
) )
} }
) )
}
} }
}
/** /**
* Callback for the 'reserve' button * Callback for the 'reserve' button
*/ */
$scope.reserveTraining = function (training, event) { $state.go('app.logged.trainings_reserve', { id: training.id }) } $scope.reserveTraining = function (training, event) { $state.go('app.logged.trainings_reserve', { id: training.id }) }
/** /**
* Revert view to the full list of trainings ("<-" button) * Revert view to the full list of trainings ("<-" button)
*/ */
$scope.cancel = function (event) { $state.go('app.public.trainings_list') } $scope.cancel = function (event) { $state.go('app.public.trainings_list') }
}]) }])
/** /**
* Controller used in the training reservation agenda page. * Controller used in the training reservation agenda page.

View File

@ -15,10 +15,10 @@ Application.Controllers.controller('WalletController', ['$scope', 'walletPromise
function ($scope, walletPromise, transactionsPromise) { function ($scope, walletPromise, transactionsPromise) {
/* PUBLIC SCOPE */ /* PUBLIC SCOPE */
// current user wallet // current user wallet
$scope.wallet = walletPromise $scope.wallet = walletPromise
// current wallet transactions // current wallet transactions
return $scope.transactions = transactionsPromise return $scope.transactions = transactionsPromise
} }
]) ])

View File

@ -1,37 +1,34 @@
'use strict'; 'use strict'
Application.Directives.directive('bsJasnyFileinput', [function(){ Application.Directives.directive('bsJasnyFileinput', [function () {
return { return {
require : ['ngModel'], require: ['ngModel'],
link : function($scope, elm, attrs, requiredCtrls){ link: function ($scope, elm, attrs, requiredCtrls) {
var ngModelCtrl = requiredCtrls[0]; var ngModelCtrl = requiredCtrls[0]
var fileinput = elm.parents('[data-provides=fileinput]'); var fileinput = elm.parents('[data-provides=fileinput]')
var filetypeRegex = attrs.bsJasnyFileinput; var filetypeRegex = attrs.bsJasnyFileinput
fileinput.on('clear.bs.fileinput', function(e){ fileinput.on('clear.bs.fileinput', function (e) {
if(ngModelCtrl){ if (ngModelCtrl) {
ngModelCtrl.$setViewValue(null); ngModelCtrl.$setViewValue(null)
ngModelCtrl.$setPristine(); ngModelCtrl.$setPristine()
$scope.$apply(); $scope.$apply()
} }
}); })
fileinput.on('change.bs.fileinput', function(e, files){ fileinput.on('change.bs.fileinput', function (e, files) {
if(ngModelCtrl){ if (ngModelCtrl) {
if(files){ if (files) {
ngModelCtrl.$setViewValue(files.result); ngModelCtrl.$setViewValue(files.result)
} else { } else {
ngModelCtrl.$setPristine(); ngModelCtrl.$setPristine()
} }
// TODO: ne marche pas pour filetype // TODO: ne marche pas pour filetype
if (filetypeRegex) { if (filetypeRegex) {
if(files && typeof files.type !== "undefined" && files.type.match(new RegExp(filetypeRegex))) if (files && typeof files.type !== 'undefined' && files.type.match(new RegExp(filetypeRegex))) { ngModelCtrl.$setValidity('filetype', true) } else { ngModelCtrl.$setValidity('filetype', false) }
ngModelCtrl.$setValidity('filetype', true);
else
ngModelCtrl.$setValidity('filetype', false);
}; };
} }
$scope.$apply(); $scope.$apply()
}); })
} }
} }
}]); }])

View File

@ -210,7 +210,7 @@ Application.Directives.directive('cart', [ '$rootScope', '$uibModal', 'dialogs',
* Check if the currently logged user has teh 'admin' role? * Check if the currently logged user has teh 'admin' role?
* @returns {boolean} * @returns {boolean}
*/ */
$scope.isAdmin = function() { return $rootScope.currentUser && ($rootScope.currentUser.role === 'admin') } $scope.isAdmin = function () { return $rootScope.currentUser && ($rootScope.currentUser.role === 'admin') }
/* PRIVATE SCOPE */ /* PRIVATE SCOPE */
@ -319,7 +319,7 @@ Application.Directives.directive('cart', [ '$rootScope', '$uibModal', 'dialogs',
growl.success(_t('cart.reservation_was_cancelled_successfully')) growl.success(_t('cart.reservation_was_cancelled_successfully'))
if (typeof $scope.onSlotCancelSuccess === 'function') { return $scope.onSlotCancelSuccess() } if (typeof $scope.onSlotCancelSuccess === 'function') { return $scope.onSlotCancelSuccess() }
} }
, function() { // error while canceling , function () { // error while canceling
growl.error(_t('cart.cancellation_failed')) growl.error(_t('cart.cancellation_failed'))
}) })
} }
@ -512,7 +512,7 @@ Application.Directives.directive('cart', [ '$rootScope', '$uibModal', 'dialogs',
$scope.reservation.card_token = response.id $scope.reservation.card_token = response.id
Reservation.save( Reservation.save(
mkRequestParams($scope.reservation, coupon), mkRequestParams($scope.reservation, coupon),
function(reservation) { $uibModalInstance.close(reservation) }, function (reservation) { $uibModalInstance.close(reservation) },
function (response) { function (response) {
$scope.alerts = [] $scope.alerts = []
if (response.status === 500) { if (response.status === 500) {
@ -566,19 +566,19 @@ Application.Directives.directive('cart', [ '$rootScope', '$uibModal', 'dialogs',
controller: ['$scope', '$uibModalInstance', '$state', 'reservation', 'price', 'Auth', 'Reservation', 'wallet', 'helpers', '$filter', 'coupon', controller: ['$scope', '$uibModalInstance', '$state', 'reservation', 'price', 'Auth', 'Reservation', 'wallet', 'helpers', '$filter', 'coupon',
function ($scope, $uibModalInstance, $state, reservation, price, Auth, Reservation, wallet, helpers, $filter, coupon) { function ($scope, $uibModalInstance, $state, reservation, price, Auth, Reservation, wallet, helpers, $filter, coupon) {
// user wallet amount // user wallet amount
$scope.walletAmount = wallet.amount $scope.walletAmount = wallet.amount
// Global price (total of all items) // Global price (total of all items)
$scope.price = price.price $scope.price = price.price
// Price to pay (wallet deducted) // Price to pay (wallet deducted)
$scope.amount = helpers.getAmountToPay(price.price, wallet.amount) $scope.amount = helpers.getAmountToPay(price.price, wallet.amount)
// Reservation // Reservation
$scope.reservation = reservation $scope.reservation = reservation
// Used in wallet info template to interpolate some translations // Used in wallet info template to interpolate some translations
$scope.numberFilter = $filter('number') $scope.numberFilter = $filter('number')
// Button label // Button label
if ($scope.amount > 0) { if ($scope.amount > 0) {
@ -606,10 +606,10 @@ Application.Directives.directive('cart', [ '$rootScope', '$uibModal', 'dialogs',
return $scope.attempting = false return $scope.attempting = false
}) })
} }
$scope.cancel = function() { $uibModalInstance.dismiss('cancel') } $scope.cancel = function () { $uibModalInstance.dismiss('cancel') }
} }
] ]
}).result['finally'](null).then(function(reservation) { afterPayment(reservation) }) }).result['finally'](null).then(function (reservation) { afterPayment(reservation) })
} }
/** /**
* Actions to run after the payment was successfull * Actions to run after the payment was successfull

View File

@ -8,7 +8,7 @@
* DS102: Remove unnecessary code created because of implicit returns * DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/ */
Application.Directives.directive('fabUserAvatar', [ function() { Application.Directives.directive('fabUserAvatar', [ function () {
return ({ return ({
restrict: 'E', restrict: 'E',
scope: { scope: {
@ -17,5 +17,4 @@ Application.Directives.directive('fabUserAvatar', [ function() {
}, },
templateUrl: '<%= asset_path "shared/_user_avatar.html" %>' templateUrl: '<%= asset_path "shared/_user_avatar.html" %>'
}) })
}]) }])

View File

@ -45,5 +45,4 @@ Application.Directives.directive('selectMember', [ 'Diacritics', 'Member', funct
} }
}) })
}]) }])

View File

@ -9,7 +9,7 @@
* DS102: Remove unnecessary code created because of implicit returns * DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/ */
Application.Directives.directive('socialLink', [ function() { Application.Directives.directive('socialLink', [ function () {
return ({ return ({
restrict: 'E', restrict: 'E',
scope: { scope: {
@ -33,5 +33,4 @@ Application.Directives.directive('socialLink', [ function() {
} }
} }
}) })
}]) }])

View File

@ -1,24 +1,23 @@
'use strict'; 'use strict'
// https://github.com/gtramontina/stripe-angular // https://github.com/gtramontina/stripe-angular
Application.Directives.directive('stripeForm', ['$window', Application.Directives.directive('stripeForm', ['$window',
function($window) { function ($window) {
var directive = { restrict: 'A' }; var directive = { restrict: 'A' }
directive.link = function(scope, element, attributes) { directive.link = function (scope, element, attributes) {
var form = angular.element(element); var form = angular.element(element)
form.bind('submit', function() { form.bind('submit', function () {
var button = form.find('button'); var button = form.find('button')
button.prop('disabled', true); button.prop('disabled', true)
$window.Stripe.createToken(form[0], function() { $window.Stripe.createToken(form[0], function () {
var args = arguments; var args = arguments
scope.$apply(function() { scope.$apply(function () {
scope[attributes.stripeForm].apply(scope, args); scope[attributes.stripeForm].apply(scope, args)
}); })
//button.prop('disabled', false); // button.prop('disabled', false);
}); })
}); })
}; }
return directive; return directive
}])
}]);

View File

@ -517,7 +517,7 @@ angular.module('application.router', ['ui.router'])
if ($stateParams.id !== 'all') { return Training.get({ id: $stateParams.id }).$promise } if ($stateParams.id !== 'all') { return Training.get({ id: $stateParams.id }).$promise }
}], }],
settingsPromise: ['Setting', function (Setting) { settingsPromise: ['Setting', function (Setting) {
return Setting.query({ return Setting.query({
names: `['booking_window_start', \ names: `['booking_window_start', \
'booking_window_end', \ 'booking_window_end', \
'booking_move_enable', \ 'booking_move_enable', \

View File

@ -4,7 +4,7 @@
* Based on http://jsperf.com/diacritics/12 * Based on http://jsperf.com/diacritics/12
*/ */
Application.Services.service('Diacritics', [ Application.Services.service('Diacritics', [
"$resource", function($resource) { '$resource', function ($resource) {
return { return {
/** /**
@ -13,109 +13,109 @@ Application.Services.service('Diacritics', [
* @param str {string} to ascii-fy * @param str {string} to ascii-fy
* @returns {string} without diacritics * @returns {string} without diacritics
*/ */
remove: function(str) { remove: function (str) {
var defaultDiacriticsRemovalap = [ var defaultDiacriticsRemovalap = [
{'base':'A', 'letters':'\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F'}, { 'base': 'A', 'letters': '\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F' },
{'base':'AA','letters':'\uA732'}, { 'base': 'AA', 'letters': '\uA732' },
{'base':'AE','letters':'\u00C6\u01FC\u01E2'}, { 'base': 'AE', 'letters': '\u00C6\u01FC\u01E2' },
{'base':'AO','letters':'\uA734'}, { 'base': 'AO', 'letters': '\uA734' },
{'base':'AU','letters':'\uA736'}, { 'base': 'AU', 'letters': '\uA736' },
{'base':'AV','letters':'\uA738\uA73A'}, { 'base': 'AV', 'letters': '\uA738\uA73A' },
{'base':'AY','letters':'\uA73C'}, { 'base': 'AY', 'letters': '\uA73C' },
{'base':'B', 'letters':'\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181'}, { 'base': 'B', 'letters': '\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181' },
{'base':'C', 'letters':'\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E'}, { 'base': 'C', 'letters': '\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E' },
{'base':'D', 'letters':'\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779'}, { 'base': 'D', 'letters': '\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779' },
{'base':'DZ','letters':'\u01F1\u01C4'}, { 'base': 'DZ', 'letters': '\u01F1\u01C4' },
{'base':'Dz','letters':'\u01F2\u01C5'}, { 'base': 'Dz', 'letters': '\u01F2\u01C5' },
{'base':'E', 'letters':'\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E'}, { 'base': 'E', 'letters': '\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E' },
{'base':'F', 'letters':'\u0046\u24BB\uFF26\u1E1E\u0191\uA77B'}, { 'base': 'F', 'letters': '\u0046\u24BB\uFF26\u1E1E\u0191\uA77B' },
{'base':'G', 'letters':'\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E'}, { 'base': 'G', 'letters': '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E' },
{'base':'H', 'letters':'\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D'}, { 'base': 'H', 'letters': '\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D' },
{'base':'I', 'letters':'\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197'}, { 'base': 'I', 'letters': '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197' },
{'base':'J', 'letters':'\u004A\u24BF\uFF2A\u0134\u0248'}, { 'base': 'J', 'letters': '\u004A\u24BF\uFF2A\u0134\u0248' },
{'base':'K', 'letters':'\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2'}, { 'base': 'K', 'letters': '\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2' },
{'base':'L', 'letters':'\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780'}, { 'base': 'L', 'letters': '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780' },
{'base':'LJ','letters':'\u01C7'}, { 'base': 'LJ', 'letters': '\u01C7' },
{'base':'Lj','letters':'\u01C8'}, { 'base': 'Lj', 'letters': '\u01C8' },
{'base':'M', 'letters':'\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C'}, { 'base': 'M', 'letters': '\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C' },
{'base':'N', 'letters':'\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4'}, { 'base': 'N', 'letters': '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4' },
{'base':'NJ','letters':'\u01CA'}, { 'base': 'NJ', 'letters': '\u01CA' },
{'base':'Nj','letters':'\u01CB'}, { 'base': 'Nj', 'letters': '\u01CB' },
{'base':'O', 'letters':'\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C'}, { 'base': 'O', 'letters': '\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C' },
{'base':'OI','letters':'\u01A2'}, { 'base': 'OI', 'letters': '\u01A2' },
{'base':'OO','letters':'\uA74E'}, { 'base': 'OO', 'letters': '\uA74E' },
{'base':'OU','letters':'\u0222'}, { 'base': 'OU', 'letters': '\u0222' },
{'base':'OE','letters':'\u008C\u0152'}, { 'base': 'OE', 'letters': '\u008C\u0152' },
{'base':'oe','letters':'\u009C\u0153'}, { 'base': 'oe', 'letters': '\u009C\u0153' },
{'base':'P', 'letters':'\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754'}, { 'base': 'P', 'letters': '\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754' },
{'base':'Q', 'letters':'\u0051\u24C6\uFF31\uA756\uA758\u024A'}, { 'base': 'Q', 'letters': '\u0051\u24C6\uFF31\uA756\uA758\u024A' },
{'base':'R', 'letters':'\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782'}, { 'base': 'R', 'letters': '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782' },
{'base':'S', 'letters':'\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784'}, { 'base': 'S', 'letters': '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784' },
{'base':'T', 'letters':'\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786'}, { 'base': 'T', 'letters': '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786' },
{'base':'TZ','letters':'\uA728'}, { 'base': 'TZ', 'letters': '\uA728' },
{'base':'U', 'letters':'\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244'}, { 'base': 'U', 'letters': '\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244' },
{'base':'V', 'letters':'\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245'}, { 'base': 'V', 'letters': '\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' },
{'base':'VY','letters':'\uA760'}, { 'base': 'VY', 'letters': '\uA760' },
{'base':'W', 'letters':'\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72'}, { 'base': 'W', 'letters': '\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72' },
{'base':'X', 'letters':'\u0058\u24CD\uFF38\u1E8A\u1E8C'}, { 'base': 'X', 'letters': '\u0058\u24CD\uFF38\u1E8A\u1E8C' },
{'base':'Y', 'letters':'\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE'}, { 'base': 'Y', 'letters': '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE' },
{'base':'Z', 'letters':'\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762'}, { 'base': 'Z', 'letters': '\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762' },
{'base':'a', 'letters':'\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250'}, { 'base': 'a', 'letters': '\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250' },
{'base':'aa','letters':'\uA733'}, { 'base': 'aa', 'letters': '\uA733' },
{'base':'ae','letters':'\u00E6\u01FD\u01E3'}, { 'base': 'ae', 'letters': '\u00E6\u01FD\u01E3' },
{'base':'ao','letters':'\uA735'}, { 'base': 'ao', 'letters': '\uA735' },
{'base':'au','letters':'\uA737'}, { 'base': 'au', 'letters': '\uA737' },
{'base':'av','letters':'\uA739\uA73B'}, { 'base': 'av', 'letters': '\uA739\uA73B' },
{'base':'ay','letters':'\uA73D'}, { 'base': 'ay', 'letters': '\uA73D' },
{'base':'b', 'letters':'\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253'}, { 'base': 'b', 'letters': '\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253' },
{'base':'c', 'letters':'\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184'}, { 'base': 'c', 'letters': '\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184' },
{'base':'d', 'letters':'\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A'}, { 'base': 'd', 'letters': '\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A' },
{'base':'dz','letters':'\u01F3\u01C6'}, { 'base': 'dz', 'letters': '\u01F3\u01C6' },
{'base':'e', 'letters':'\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD'}, { 'base': 'e', 'letters': '\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD' },
{'base':'f', 'letters':'\u0066\u24D5\uFF46\u1E1F\u0192\uA77C'}, { 'base': 'f', 'letters': '\u0066\u24D5\uFF46\u1E1F\u0192\uA77C' },
{'base':'g', 'letters':'\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F'}, { 'base': 'g', 'letters': '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F' },
{'base':'h', 'letters':'\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265'}, { 'base': 'h', 'letters': '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265' },
{'base':'hv','letters':'\u0195'}, { 'base': 'hv', 'letters': '\u0195' },
{'base':'i', 'letters':'\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131'}, { 'base': 'i', 'letters': '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131' },
{'base':'j', 'letters':'\u006A\u24D9\uFF4A\u0135\u01F0\u0249'}, { 'base': 'j', 'letters': '\u006A\u24D9\uFF4A\u0135\u01F0\u0249' },
{'base':'k', 'letters':'\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3'}, { 'base': 'k', 'letters': '\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3' },
{'base':'l', 'letters':'\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747'}, { 'base': 'l', 'letters': '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747' },
{'base':'lj','letters':'\u01C9'}, { 'base': 'lj', 'letters': '\u01C9' },
{'base':'m', 'letters':'\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F'}, { 'base': 'm', 'letters': '\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' },
{'base':'n', 'letters':'\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5'}, { 'base': 'n', 'letters': '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5' },
{'base':'nj','letters':'\u01CC'}, { 'base': 'nj', 'letters': '\u01CC' },
{'base':'o', 'letters':'\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275'}, { 'base': 'o', 'letters': '\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275' },
{'base':'oi','letters':'\u01A3'}, { 'base': 'oi', 'letters': '\u01A3' },
{'base':'ou','letters':'\u0223'}, { 'base': 'ou', 'letters': '\u0223' },
{'base':'oo','letters':'\uA74F'}, { 'base': 'oo', 'letters': '\uA74F' },
{'base':'p','letters':'\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755'}, { 'base': 'p', 'letters': '\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755' },
{'base':'q','letters':'\u0071\u24E0\uFF51\u024B\uA757\uA759'}, { 'base': 'q', 'letters': '\u0071\u24E0\uFF51\u024B\uA757\uA759' },
{'base':'r','letters':'\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783'}, { 'base': 'r', 'letters': '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783' },
{'base':'s','letters':'\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B'}, { 'base': 's', 'letters': '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B' },
{'base':'t','letters':'\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787'}, { 'base': 't', 'letters': '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787' },
{'base':'tz','letters':'\uA729'}, { 'base': 'tz', 'letters': '\uA729' },
{'base':'u','letters': '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289'}, { 'base': 'u', 'letters': '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289' },
{'base':'v','letters':'\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C'}, { 'base': 'v', 'letters': '\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' },
{'base':'vy','letters':'\uA761'}, { 'base': 'vy', 'letters': '\uA761' },
{'base':'w','letters':'\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73'}, { 'base': 'w', 'letters': '\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73' },
{'base':'x','letters':'\u0078\u24E7\uFF58\u1E8B\u1E8D'}, { 'base': 'x', 'letters': '\u0078\u24E7\uFF58\u1E8B\u1E8D' },
{'base':'y','letters':'\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF'}, { 'base': 'y', 'letters': '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF' },
{'base':'z','letters':'\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763'} { 'base': 'z', 'letters': '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763' }
]; ]
var diacriticsMap = {}; var diacriticsMap = {}
for (var i=0; i < defaultDiacriticsRemovalap.length; i++){ for (var i = 0; i < defaultDiacriticsRemovalap.length; i++) {
var letters = defaultDiacriticsRemovalap[i].letters.split(""); var letters = defaultDiacriticsRemovalap[i].letters.split('')
for (var j=0; j < letters.length ; j++){ for (var j = 0; j < letters.length; j++) {
diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base; diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base
} }
} }
return str.replace(/[^\u0000-\u007E]/g, function(a){ return str.replace(/[^\u0000-\u007E]/g, function (a) {
return diacriticsMap[a] || a; return diacriticsMap[a] || a
}); })
} }
} }
} }
]); ])

View File

@ -45,5 +45,4 @@ Application.Services.factory('dialogs', ['$uibModal', function ($uibModal) {
}) })
} }
}) })
}]) }])

View File

@ -1,3 +1,3 @@
Application.Services.service('es', function (esFactory) { Application.Services.service('es', function (esFactory) {
return esFactory({ host: window.location.origin }); return esFactory({ host: window.location.origin })
}); })

964
package-lock.json generated
View File

@ -1,91 +1,83 @@
{ {
"name": "fab-manager", "name": "fab-manager",
"requires": true, "version": "2.7.0-dev",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true,
"dependencies": { "dependencies": {
"@babel/code-frame": { "@babel/code-frame": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
"integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
"dev": true,
"requires": { "requires": {
"@babel/highlight": "7.0.0" "@babel/highlight": "^7.0.0"
} }
}, },
"@babel/highlight": { "@babel/highlight": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
"integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
"dev": true,
"requires": { "requires": {
"chalk": "2.4.1", "chalk": "^2.0.0",
"esutils": "2.0.2", "esutils": "^2.0.2",
"js-tokens": "4.0.0" "js-tokens": "^4.0.0"
} }
}, },
"acorn": { "acorn": {
"version": "6.0.2", "version": "6.0.4",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.2.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz",
"integrity": "sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg==" "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==",
"dev": true
}, },
"acorn-jsx": { "acorn-jsx": {
"version": "5.0.0", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.0.tgz", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz",
"integrity": "sha512-XkB50fn0MURDyww9+UYL3c1yLbOBz0ZFvrdYlGB8l+Ije1oSC75qAqrzSPjYQbdnQUzhlUGNKuesryAv0gxZOg==" "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==",
"dev": true
}, },
"ajv": { "ajv": {
"version": "6.5.4", "version": "6.5.5",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
"integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
"dev": true,
"requires": { "requires": {
"fast-deep-equal": "2.0.1", "fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "2.0.0", "fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "0.4.1", "json-schema-traverse": "^0.4.1",
"uri-js": "4.2.2" "uri-js": "^4.2.2"
} }
}, },
"ansi-escapes": { "ansi-escapes": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
"dev": true
}, },
"ansi-regex": { "ansi-regex": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
}, },
"ansi-styles": { "ansi-styles": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": { "requires": {
"color-convert": "1.9.3" "color-convert": "^1.9.0"
} }
}, },
"argparse": { "argparse": {
"version": "1.0.10", "version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": { "requires": {
"sprintf-js": "1.0.3" "sprintf-js": "~1.0.2"
} }
}, },
"array-union": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
"requires": {
"array-uniq": "1.0.3"
}
},
"array-uniq": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
},
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
},
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@ -96,60 +88,73 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": { "requires": {
"balanced-match": "1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
} }
}, },
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
},
"caller-path": { "caller-path": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
"integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
"dev": true,
"requires": { "requires": {
"callsites": "0.2.0" "callsites": "^0.2.0"
} }
}, },
"callsites": { "callsites": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
"integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
"dev": true
}, },
"chalk": { "chalk": {
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"dev": true,
"requires": { "requires": {
"ansi-styles": "3.2.1", "ansi-styles": "^3.2.1",
"escape-string-regexp": "1.0.5", "escape-string-regexp": "^1.0.5",
"supports-color": "5.5.0" "supports-color": "^5.3.0"
} }
}, },
"chardet": { "chardet": {
"version": "0.7.0", "version": "0.7.0",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
"dev": true
}, },
"circular-json": { "circular-json": {
"version": "0.3.3", "version": "0.3.3",
"resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
"integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
"dev": true
}, },
"cli-cursor": { "cli-cursor": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": { "requires": {
"restore-cursor": "2.0.0" "restore-cursor": "^2.0.0"
} }
}, },
"cli-width": { "cli-width": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
"dev": true
}, },
"color-convert": { "color-convert": {
"version": "1.9.3", "version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": { "requires": {
"color-name": "1.1.3" "color-name": "1.1.3"
} }
@ -157,174 +162,288 @@
"color-name": { "color-name": {
"version": "1.1.3", "version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
}, },
"contains-path": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
"integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo="
},
"cross-spawn": { "cross-spawn": {
"version": "6.0.5", "version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": { "requires": {
"nice-try": "1.0.5", "nice-try": "^1.0.4",
"path-key": "2.0.1", "path-key": "^2.0.1",
"semver": "5.6.0", "semver": "^5.5.0",
"shebang-command": "1.2.0", "shebang-command": "^1.2.0",
"which": "1.3.1" "which": "^1.2.9"
} }
}, },
"debug": { "debug": {
"version": "4.1.0", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": { "requires": {
"ms": "2.1.1" "ms": "2.0.0"
} }
}, },
"deep-is": { "deep-is": {
"version": "0.1.3", "version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
}, "dev": true
"del": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
"integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
"requires": {
"globby": "5.0.0",
"is-path-cwd": "1.0.0",
"is-path-in-cwd": "1.0.1",
"object-assign": "4.1.1",
"pify": "2.3.0",
"pinkie-promise": "2.0.1",
"rimraf": "2.6.2"
}
}, },
"doctrine": { "doctrine": {
"version": "2.1.0", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "resolved": "http://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
"requires": { "requires": {
"esutils": "2.0.2" "esutils": "^2.0.2",
"isarray": "^1.0.0"
}
},
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"requires": {
"is-arrayish": "^0.2.1"
} }
}, },
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
}, },
"eslint": { "eslint": {
"version": "5.7.0", "version": "5.9.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-5.7.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.9.0.tgz",
"integrity": "sha512-zYCeFQahsxffGl87U2aJ7DPyH8CbWgxBC213Y8+TCanhUTf2gEvfq3EKpHmEcozTLyPmGe9LZdMAwC/CpJBM5A==", "integrity": "sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w==",
"dev": true,
"requires": { "requires": {
"@babel/code-frame": "7.0.0", "@babel/code-frame": "^7.0.0",
"ajv": "6.5.4", "ajv": "^6.5.3",
"chalk": "2.4.1", "chalk": "^2.1.0",
"cross-spawn": "6.0.5", "cross-spawn": "^6.0.5",
"debug": "4.1.0", "debug": "^4.0.1",
"doctrine": "2.1.0", "doctrine": "^2.1.0",
"eslint-scope": "4.0.0", "eslint-scope": "^4.0.0",
"eslint-utils": "1.3.1", "eslint-utils": "^1.3.1",
"eslint-visitor-keys": "1.0.0", "eslint-visitor-keys": "^1.0.0",
"espree": "4.1.0", "espree": "^4.0.0",
"esquery": "1.0.1", "esquery": "^1.0.1",
"esutils": "2.0.2", "esutils": "^2.0.2",
"file-entry-cache": "2.0.0", "file-entry-cache": "^2.0.0",
"functional-red-black-tree": "1.0.1", "functional-red-black-tree": "^1.0.1",
"glob": "7.1.3", "glob": "^7.1.2",
"globals": "11.8.0", "globals": "^11.7.0",
"ignore": "4.0.6", "ignore": "^4.0.6",
"imurmurhash": "0.1.4", "imurmurhash": "^0.1.4",
"inquirer": "6.2.0", "inquirer": "^6.1.0",
"is-resolvable": "1.1.0", "is-resolvable": "^1.1.0",
"js-yaml": "3.12.0", "js-yaml": "^3.12.0",
"json-stable-stringify-without-jsonify": "1.0.1", "json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "0.3.0", "levn": "^0.3.0",
"lodash": "4.17.11", "lodash": "^4.17.5",
"minimatch": "3.0.4", "minimatch": "^3.0.4",
"mkdirp": "0.5.1", "mkdirp": "^0.5.1",
"natural-compare": "1.4.0", "natural-compare": "^1.4.0",
"optionator": "0.8.2", "optionator": "^0.8.2",
"path-is-inside": "1.0.2", "path-is-inside": "^1.0.2",
"pluralize": "7.0.0", "pluralize": "^7.0.0",
"progress": "2.0.1", "progress": "^2.0.0",
"regexpp": "2.0.1", "regexpp": "^2.0.1",
"require-uncached": "1.0.3", "require-uncached": "^1.0.3",
"semver": "5.6.0", "semver": "^5.5.1",
"strip-ansi": "4.0.0", "strip-ansi": "^4.0.0",
"strip-json-comments": "2.0.1", "strip-json-comments": "^2.0.1",
"table": "5.1.0", "table": "^5.0.2",
"text-table": "0.2.0" "text-table": "^0.2.0"
},
"dependencies": {
"debug": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
"integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"requires": {
"esutils": "^2.0.2"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
}
} }
}, },
"eslint-config-standard": { "eslint-config-standard": {
"version": "12.0.0", "version": "12.0.0",
"resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz",
"integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==" "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==",
"dev": true
},
"eslint-import-resolver-node": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
"integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
"requires": {
"debug": "^2.6.9",
"resolve": "^1.5.0"
}
},
"eslint-module-utils": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
"integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
"requires": {
"debug": "^2.6.8",
"pkg-dir": "^1.0.0"
}
},
"eslint-plugin-es": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz",
"integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==",
"dev": true,
"requires": {
"eslint-utils": "^1.3.0",
"regexpp": "^2.0.1"
}
},
"eslint-plugin-import": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz",
"integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==",
"requires": {
"contains-path": "^0.1.0",
"debug": "^2.6.8",
"doctrine": "1.5.0",
"eslint-import-resolver-node": "^0.3.1",
"eslint-module-utils": "^2.2.0",
"has": "^1.0.1",
"lodash": "^4.17.4",
"minimatch": "^3.0.3",
"read-pkg-up": "^2.0.0",
"resolve": "^1.6.0"
}
},
"eslint-plugin-node": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-8.0.0.tgz",
"integrity": "sha512-Y+ln8iQ52scz9+rSPnSWRaAxeWaoJZ4wIveDR0vLHkuSZGe44Vk1J4HX7WvEP5Cm+iXPE8ixo7OM7gAO3/OKpQ==",
"dev": true,
"requires": {
"eslint-plugin-es": "^1.3.1",
"eslint-utils": "^1.3.1",
"ignore": "^5.0.2",
"minimatch": "^3.0.4",
"resolve": "^1.8.1",
"semver": "^5.5.0"
},
"dependencies": {
"ignore": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.0.4.tgz",
"integrity": "sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g==",
"dev": true
}
}
},
"eslint-plugin-promise": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz",
"integrity": "sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==",
"dev": true
}, },
"eslint-plugin-standard": { "eslint-plugin-standard": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz",
"integrity": "sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==" "integrity": "sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==",
"dev": true
}, },
"eslint-scope": { "eslint-scope": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz",
"integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==",
"dev": true,
"requires": { "requires": {
"esrecurse": "4.2.1", "esrecurse": "^4.1.0",
"estraverse": "4.2.0" "estraverse": "^4.1.1"
} }
}, },
"eslint-utils": { "eslint-utils": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz",
"integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==" "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==",
"dev": true
}, },
"eslint-visitor-keys": { "eslint-visitor-keys": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
"integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==" "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
"dev": true
}, },
"espree": { "espree": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz",
"integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==",
"dev": true,
"requires": { "requires": {
"acorn": "6.0.2", "acorn": "^6.0.2",
"acorn-jsx": "5.0.0", "acorn-jsx": "^5.0.0",
"eslint-visitor-keys": "1.0.0" "eslint-visitor-keys": "^1.0.0"
} }
}, },
"esprima": { "esprima": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
}, },
"esquery": { "esquery": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
"integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
"dev": true,
"requires": { "requires": {
"estraverse": "4.2.0" "estraverse": "^4.0.0"
} }
}, },
"esrecurse": { "esrecurse": {
"version": "4.2.1", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
"integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
"dev": true,
"requires": { "requires": {
"estraverse": "4.2.0" "estraverse": "^4.1.0"
} }
}, },
"estraverse": { "estraverse": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
"integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
"dev": true
}, },
"esutils": { "esutils": {
"version": "2.0.2", "version": "2.0.2",
@ -335,230 +454,295 @@
"version": "3.0.3", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
"integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
"dev": true,
"requires": { "requires": {
"chardet": "0.7.0", "chardet": "^0.7.0",
"iconv-lite": "0.4.24", "iconv-lite": "^0.4.24",
"tmp": "0.0.33" "tmp": "^0.0.33"
} }
}, },
"fast-deep-equal": { "fast-deep-equal": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
}, },
"fast-json-stable-stringify": { "fast-json-stable-stringify": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
"dev": true
}, },
"fast-levenshtein": { "fast-levenshtein": {
"version": "2.0.6", "version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"dev": true
}, },
"figures": { "figures": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": { "requires": {
"escape-string-regexp": "1.0.5" "escape-string-regexp": "^1.0.5"
} }
}, },
"file-entry-cache": { "file-entry-cache": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
"integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
"dev": true,
"requires": { "requires": {
"flat-cache": "1.3.0", "flat-cache": "^1.2.1",
"object-assign": "4.1.1" "object-assign": "^4.0.1"
}
},
"find-up": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"requires": {
"path-exists": "^2.0.0",
"pinkie-promise": "^2.0.0"
} }
}, },
"flat-cache": { "flat-cache": {
"version": "1.3.0", "version": "1.3.4",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
"integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==",
"dev": true,
"requires": { "requires": {
"circular-json": "0.3.3", "circular-json": "^0.3.1",
"del": "2.2.2", "graceful-fs": "^4.1.2",
"graceful-fs": "4.1.11", "rimraf": "~2.6.2",
"write": "0.2.1" "write": "^0.2.1"
} }
}, },
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
}, },
"functional-red-black-tree": { "functional-red-black-tree": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
}, },
"glob": { "glob": {
"version": "7.1.3", "version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"dev": true,
"requires": { "requires": {
"fs.realpath": "1.0.0", "fs.realpath": "^1.0.0",
"inflight": "1.0.6", "inflight": "^1.0.4",
"inherits": "2.0.3", "inherits": "2",
"minimatch": "3.0.4", "minimatch": "^3.0.4",
"once": "1.4.0", "once": "^1.3.0",
"path-is-absolute": "1.0.1" "path-is-absolute": "^1.0.0"
} }
}, },
"globals": { "globals": {
"version": "11.8.0", "version": "11.9.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
"integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==" "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==",
}, "dev": true
"globby": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
"integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
"requires": {
"array-union": "1.0.2",
"arrify": "1.0.1",
"glob": "7.1.3",
"object-assign": "4.1.1",
"pify": "2.3.0",
"pinkie-promise": "2.0.1"
}
}, },
"graceful-fs": { "graceful-fs": {
"version": "4.1.11", "version": "4.1.15",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
},
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"requires": {
"function-bind": "^1.1.1"
}
}, },
"has-flag": { "has-flag": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"hosted-git-info": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
"integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
}, },
"iconv-lite": { "iconv-lite": {
"version": "0.4.24", "version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": { "requires": {
"safer-buffer": "2.1.2" "safer-buffer": ">= 2.1.2 < 3"
} }
}, },
"ignore": { "ignore": {
"version": "4.0.6", "version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
}, },
"imurmurhash": { "imurmurhash": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
}, },
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"requires": { "requires": {
"once": "1.4.0", "once": "^1.3.0",
"wrappy": "1.0.2" "wrappy": "1"
} }
}, },
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
}, },
"inquirer": { "inquirer": {
"version": "6.2.0", "version": "6.2.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz",
"integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==",
"dev": true,
"requires": { "requires": {
"ansi-escapes": "3.1.0", "ansi-escapes": "^3.0.0",
"chalk": "2.4.1", "chalk": "^2.0.0",
"cli-cursor": "2.1.0", "cli-cursor": "^2.1.0",
"cli-width": "2.2.0", "cli-width": "^2.0.0",
"external-editor": "3.0.3", "external-editor": "^3.0.0",
"figures": "2.0.0", "figures": "^2.0.0",
"lodash": "4.17.11", "lodash": "^4.17.10",
"mute-stream": "0.0.7", "mute-stream": "0.0.7",
"run-async": "2.3.0", "run-async": "^2.2.0",
"rxjs": "6.3.3", "rxjs": "^6.1.0",
"string-width": "2.1.1", "string-width": "^2.1.0",
"strip-ansi": "4.0.0", "strip-ansi": "^4.0.0",
"through": "2.3.8" "through": "^2.3.6"
}
},
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
},
"is-builtin-module": {
"version": "1.0.0",
"resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"requires": {
"builtin-modules": "^1.0.0"
} }
}, },
"is-fullwidth-code-point": { "is-fullwidth-code-point": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
}, "dev": true
"is-path-cwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
"integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0="
},
"is-path-in-cwd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
"integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
"requires": {
"is-path-inside": "1.0.1"
}
},
"is-path-inside": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
"integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
"requires": {
"path-is-inside": "1.0.2"
}
}, },
"is-promise": { "is-promise": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
"dev": true
}, },
"is-resolvable": { "is-resolvable": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
"integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
"dev": true
},
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
}, },
"isexe": { "isexe": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"dev": true
}, },
"js-tokens": { "js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
}, },
"js-yaml": { "js-yaml": {
"version": "3.12.0", "version": "3.12.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
"integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
"dev": true,
"requires": { "requires": {
"argparse": "1.0.10", "argparse": "^1.0.7",
"esprima": "4.0.1" "esprima": "^4.0.0"
} }
}, },
"json-schema-traverse": { "json-schema-traverse": {
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
}, },
"json-stable-stringify-without-jsonify": { "json-stable-stringify-without-jsonify": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
"dev": true
}, },
"levn": { "levn": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"dev": true,
"requires": { "requires": {
"prelude-ls": "1.1.2", "prelude-ls": "~1.1.2",
"type-check": "0.3.2" "type-check": "~0.3.2"
}
},
"load-json-file": {
"version": "2.0.0",
"resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"requires": {
"graceful-fs": "^4.1.2",
"parse-json": "^2.2.0",
"pify": "^2.0.0",
"strip-bom": "^3.0.0"
}
},
"locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
},
"dependencies": {
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
}
} }
}, },
"lodash": { "lodash": {
@ -569,102 +753,177 @@
"mimic-fn": { "mimic-fn": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
}, },
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": { "requires": {
"brace-expansion": "1.1.11" "brace-expansion": "^1.1.7"
} }
}, },
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"dev": true
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "0.5.1",
"resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"dev": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
}, },
"ms": { "ms": {
"version": "2.1.1", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}, },
"mute-stream": { "mute-stream": {
"version": "0.0.7", "version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
}, },
"natural-compare": { "natural-compare": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
}, },
"nice-try": { "nice-try": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
"normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
"requires": {
"hosted-git-info": "^2.1.4",
"is-builtin-module": "^1.0.0",
"semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1"
}
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
}, },
"once": { "once": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": { "requires": {
"wrappy": "1.0.2" "wrappy": "1"
} }
}, },
"onetime": { "onetime": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": { "requires": {
"mimic-fn": "1.2.0" "mimic-fn": "^1.0.0"
} }
}, },
"optionator": { "optionator": {
"version": "0.8.2", "version": "0.8.2",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"dev": true,
"requires": { "requires": {
"deep-is": "0.1.3", "deep-is": "~0.1.3",
"fast-levenshtein": "2.0.6", "fast-levenshtein": "~2.0.4",
"levn": "0.3.0", "levn": "~0.3.0",
"prelude-ls": "1.1.2", "prelude-ls": "~1.1.2",
"type-check": "0.3.2", "type-check": "~0.3.2",
"wordwrap": "1.0.0" "wordwrap": "~1.0.0"
} }
}, },
"os-tmpdir": { "os-tmpdir": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
"p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"requires": {
"p-try": "^1.0.0"
}
},
"p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"requires": {
"p-limit": "^1.1.0"
}
},
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
},
"parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
"requires": {
"error-ex": "^1.2.0"
}
},
"path-exists": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"requires": {
"pinkie-promise": "^2.0.0"
}
}, },
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
}, },
"path-is-inside": { "path-is-inside": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
"integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
"dev": true
}, },
"path-key": { "path-key": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
"dev": true
},
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
},
"path-type": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
"requires": {
"pify": "^2.0.0"
}
}, },
"pify": { "pify": {
"version": "2.3.0", "version": "2.3.0",
@ -681,85 +940,142 @@
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"requires": { "requires": {
"pinkie": "2.0.4" "pinkie": "^2.0.0"
}
},
"pkg-dir": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
"integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
"requires": {
"find-up": "^1.0.0"
} }
}, },
"pluralize": { "pluralize": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
}, },
"prelude-ls": { "prelude-ls": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
"dev": true
}, },
"progress": { "progress": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz",
"integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==" "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==",
"dev": true
}, },
"punycode": { "punycode": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
},
"read-pkg": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
"integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
"requires": {
"load-json-file": "^2.0.0",
"normalize-package-data": "^2.3.2",
"path-type": "^2.0.0"
}
},
"read-pkg-up": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
"integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
"requires": {
"find-up": "^2.0.0",
"read-pkg": "^2.0.0"
},
"dependencies": {
"find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"requires": {
"locate-path": "^2.0.0"
}
}
}
}, },
"regexpp": { "regexpp": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
"integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
"dev": true
}, },
"require-uncached": { "require-uncached": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
"integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
"dev": true,
"requires": { "requires": {
"caller-path": "0.1.0", "caller-path": "^0.1.0",
"resolve-from": "1.0.1" "resolve-from": "^1.0.0"
}
},
"resolve": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
"requires": {
"path-parse": "^1.0.5"
} }
}, },
"resolve-from": { "resolve-from": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
"integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
"dev": true
}, },
"restore-cursor": { "restore-cursor": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": { "requires": {
"onetime": "2.0.1", "onetime": "^2.0.0",
"signal-exit": "3.0.2" "signal-exit": "^3.0.2"
} }
}, },
"rimraf": { "rimraf": {
"version": "2.6.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": { "requires": {
"glob": "7.1.3" "glob": "^7.0.5"
} }
}, },
"run-async": { "run-async": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"dev": true,
"requires": { "requires": {
"is-promise": "2.1.0" "is-promise": "^2.1.0"
} }
}, },
"rxjs": { "rxjs": {
"version": "6.3.3", "version": "6.3.3",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
"integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==", "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
"dev": true,
"requires": { "requires": {
"tslib": "1.9.3" "tslib": "^1.9.0"
} }
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
}, },
"semver": { "semver": {
"version": "5.6.0", "version": "5.6.0",
@ -770,137 +1086,199 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
"dev": true,
"requires": { "requires": {
"shebang-regex": "1.0.0" "shebang-regex": "^1.0.0"
} }
}, },
"shebang-regex": { "shebang-regex": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
}, },
"signal-exit": { "signal-exit": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true
}, },
"slice-ansi": { "slice-ansi": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
"integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
"dev": true,
"requires": { "requires": {
"is-fullwidth-code-point": "2.0.0" "is-fullwidth-code-point": "^2.0.0"
} }
}, },
"spdx-correct": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
"integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
"requires": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
}
},
"spdx-exceptions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
"integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
},
"spdx-expression-parse": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
"requires": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
}
},
"spdx-license-ids": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz",
"integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg=="
},
"sprintf-js": { "sprintf-js": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
}, },
"string-width": { "string-width": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": { "requires": {
"is-fullwidth-code-point": "2.0.0", "is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "4.0.0" "strip-ansi": "^4.0.0"
} }
}, },
"strip-ansi": { "strip-ansi": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": { "requires": {
"ansi-regex": "3.0.0" "ansi-regex": "^3.0.0"
} }
}, },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
},
"strip-json-comments": { "strip-json-comments": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true
}, },
"supports-color": { "supports-color": {
"version": "5.5.0", "version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": { "requires": {
"has-flag": "3.0.0" "has-flag": "^3.0.0"
} }
}, },
"table": { "table": {
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/table/-/table-5.1.0.tgz", "resolved": "https://registry.npmjs.org/table/-/table-5.1.0.tgz",
"integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==",
"dev": true,
"requires": { "requires": {
"ajv": "6.5.4", "ajv": "^6.5.3",
"lodash": "4.17.11", "lodash": "^4.17.10",
"slice-ansi": "1.0.0", "slice-ansi": "1.0.0",
"string-width": "2.1.1" "string-width": "^2.1.1"
} }
}, },
"text-table": { "text-table": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
"dev": true
}, },
"through": { "through": {
"version": "2.3.8", "version": "2.3.8",
"resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
}, },
"tmp": { "tmp": {
"version": "0.0.33", "version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dev": true,
"requires": { "requires": {
"os-tmpdir": "1.0.2" "os-tmpdir": "~1.0.2"
} }
}, },
"tslib": { "tslib": {
"version": "1.9.3", "version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
"dev": true
}, },
"type-check": { "type-check": {
"version": "0.3.2", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"dev": true,
"requires": { "requires": {
"prelude-ls": "1.1.2" "prelude-ls": "~1.1.2"
} }
}, },
"uri-js": { "uri-js": {
"version": "4.2.2", "version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"dev": true,
"requires": { "requires": {
"punycode": "2.1.1" "punycode": "^2.1.0"
}
},
"validate-npm-package-license": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
"requires": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
} }
}, },
"which": { "which": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
"requires": { "requires": {
"isexe": "2.0.0" "isexe": "^2.0.0"
} }
}, },
"wordwrap": { "wordwrap": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
"dev": true
}, },
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
}, },
"write": { "write": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
"integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
"dev": true,
"requires": { "requires": {
"mkdirp": "0.5.1" "mkdirp": "^0.5.1"
} }
} }
} }

View File

@ -2,15 +2,28 @@
"name": "fab-manager", "name": "fab-manager",
"version": "2.7.0-dev", "version": "2.7.0-dev",
"description": "FabManager is the FabLab management solution. It is web-based, open-source and totally free.", "description": "FabManager is the FabLab management solution. It is web-based, open-source and totally free.",
"keywords": ["fablab", "reservations", "booking", "payment", "project", "documentation"], "keywords": [
"fablab",
"reservations",
"booking",
"payment",
"project",
"documentation"
],
"homepage": "http://www.fab-manager.com/", "homepage": "http://www.fab-manager.com/",
"repository": "https://github.com/LaCasemate/fab-manager.git",
"bugs": { "bugs": {
"url": "https://github.com/LaCasemate/fab-manager/issues", "url": "https://github.com/LaCasemate/fab-manager/issues"
}, },
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",
"devDependencies": { "devDependencies": {
"eslint": "^5.7.0", "eslint": "^5.7.0",
"eslint-config-standard": "^12.0.0", "eslint-config-standard": "^12.0.0",
"eslint-plugin-node": "^8.0.0",
"eslint-plugin-promise": "^4.0.1",
"eslint-plugin-standard": "^4.0.0" "eslint-plugin-standard": "^4.0.0"
},
"dependencies": {
"eslint-plugin-import": "^2.14.0"
} }
} }