From 70fa4fcb260eff6a3ea2577e39374c5f4673afbd Mon Sep 17 00:00:00 2001 From: Victor Nakoryakov Date: Fri, 12 May 2017 17:53:01 +0300 Subject: [PATCH] chore(infra): remove dead code --- ci/master.yaml | 112 - package.json | 1 - packages/xod-client/doc/Makefile | 225 -- packages/xod-client/doc/README.md | 48 - packages/xod-client/doc/_static/custom.css | 15 - packages/xod-client/doc/conf.py | 346 --- packages/xod-client/doc/execution.rst | 215 -- .../images/execution/voltage-monitor-p1.svg | 508 ---- .../images/execution/voltage-monitor-p2.svg | 519 ---- .../images/execution/voltage-monitor-p3.svg | 530 ---- .../images/execution/voltage-monitor-p4.svg | 541 ---- .../images/execution/voltage-monitor-p5.svg | 552 ---- .../images/execution/voltage-monitor-p6.svg | 563 ---- .../images/execution/voltage-monitor-p7.svg | 574 ---- .../doc/images/execution/voltage-monitor.svg | 476 --- .../xod-client/doc/images/intro/example.svg | 360 --- .../doc/images/structure/knob-led.svg | 191 -- .../xod-client/doc/images/structure/pow.svg | 97 - packages/xod-client/doc/index.rst | 14 - packages/xod-client/doc/intro.rst | 88 - packages/xod-client/doc/make.bat | 281 -- packages/xod-client/doc/requirements.txt | 2 - packages/xod-client/doc/structure.rst | 176 -- packages/xod-server/.editorconfig | 13 - packages/xod-server/.eslintignore | 1 - packages/xod-server/.gitignore | 19 - packages/xod-server/.yo-rc.json | 3 - packages/xod-server/package.json | 48 - packages/xod-server/scripts/addUser.js | 21 - .../xod-server/scripts/parts/create-user.js | 13 - packages/xod-server/scripts/resetDb.js | 47 - .../xod-server/server/boot/authentication.js | 4 - packages/xod-server/server/boot/root.js | 6 - .../xod-server/server/component-config.json | 5 - packages/xod-server/server/config.json | 24 - .../xod-server/server/constants/errors.js | 7 - packages/xod-server/server/datasources.json | 16 - .../server/middleware.development.json | 10 - packages/xod-server/server/middleware.json | 55 - packages/xod-server/server/model-config.json | 51 - packages/xod-server/server/models/package.js | 19 - .../xod-server/server/models/package.json | 24 - packages/xod-server/server/models/project.js | 41 - .../xod-server/server/models/project.json | 67 - packages/xod-server/server/models/user.js | 85 - packages/xod-server/server/models/user.json | 50 - packages/xod-server/server/server.js | 26 - packages/xod-server/server/utils/methods.js | 117 - packages/xod-server/yarn.lock | 2701 ----------------- 49 files changed, 9907 deletions(-) delete mode 100644 ci/master.yaml delete mode 100644 packages/xod-client/doc/Makefile delete mode 100644 packages/xod-client/doc/README.md delete mode 100644 packages/xod-client/doc/_static/custom.css delete mode 100644 packages/xod-client/doc/conf.py delete mode 100644 packages/xod-client/doc/execution.rst delete mode 100644 packages/xod-client/doc/images/execution/voltage-monitor-p1.svg delete mode 100644 packages/xod-client/doc/images/execution/voltage-monitor-p2.svg delete mode 100644 packages/xod-client/doc/images/execution/voltage-monitor-p3.svg delete mode 100644 packages/xod-client/doc/images/execution/voltage-monitor-p4.svg delete mode 100644 packages/xod-client/doc/images/execution/voltage-monitor-p5.svg delete mode 100644 packages/xod-client/doc/images/execution/voltage-monitor-p6.svg delete mode 100644 packages/xod-client/doc/images/execution/voltage-monitor-p7.svg delete mode 100644 packages/xod-client/doc/images/execution/voltage-monitor.svg delete mode 100644 packages/xod-client/doc/images/intro/example.svg delete mode 100644 packages/xod-client/doc/images/structure/knob-led.svg delete mode 100644 packages/xod-client/doc/images/structure/pow.svg delete mode 100644 packages/xod-client/doc/index.rst delete mode 100644 packages/xod-client/doc/intro.rst delete mode 100644 packages/xod-client/doc/make.bat delete mode 100644 packages/xod-client/doc/requirements.txt delete mode 100644 packages/xod-client/doc/structure.rst delete mode 100644 packages/xod-server/.editorconfig delete mode 100644 packages/xod-server/.eslintignore delete mode 100644 packages/xod-server/.gitignore delete mode 100644 packages/xod-server/.yo-rc.json delete mode 100644 packages/xod-server/package.json delete mode 100644 packages/xod-server/scripts/addUser.js delete mode 100644 packages/xod-server/scripts/parts/create-user.js delete mode 100644 packages/xod-server/scripts/resetDb.js delete mode 100644 packages/xod-server/server/boot/authentication.js delete mode 100644 packages/xod-server/server/boot/root.js delete mode 100644 packages/xod-server/server/component-config.json delete mode 100644 packages/xod-server/server/config.json delete mode 100644 packages/xod-server/server/constants/errors.js delete mode 100644 packages/xod-server/server/datasources.json delete mode 100644 packages/xod-server/server/middleware.development.json delete mode 100644 packages/xod-server/server/middleware.json delete mode 100644 packages/xod-server/server/model-config.json delete mode 100644 packages/xod-server/server/models/package.js delete mode 100644 packages/xod-server/server/models/package.json delete mode 100644 packages/xod-server/server/models/project.js delete mode 100644 packages/xod-server/server/models/project.json delete mode 100644 packages/xod-server/server/models/user.js delete mode 100644 packages/xod-server/server/models/user.json delete mode 100644 packages/xod-server/server/server.js delete mode 100644 packages/xod-server/server/utils/methods.js delete mode 100644 packages/xod-server/yarn.lock diff --git a/ci/master.yaml b/ci/master.yaml deleted file mode 100644 index 00217ee9..00000000 --- a/ci/master.yaml +++ /dev/null @@ -1,112 +0,0 @@ -resources: - - name: xod - type: git - source: - uri: git@github.com:amperka/xod.git - branch: master - private_key: {{github-private-key}} - - - name: master-version - type: semver - source: - driver: git - uri: git@github.com:xodio/xod-version.git - branch: master - file: master.txt - private_key: {{github-private-key}} - - - name: xod-client-browser-image - type: docker-image - source: - repository: xodio/xod-client-browser - username: {{docker-hub-username}} - password: {{docker-hub-password}} - -jobs: - - name: build-monorepo - serial: true - public: true - plan: - - get: xod - trigger: true - - - task: install - config: - platform: linux - image_resource: - type: docker-image - source: - repository: xodio/node - inputs: - - name: xod - outputs: - - name: installed-xod - run: - path: sh - args: - - -exc - - | - rsync -a xod/ installed-xod/ - cd installed-xod - yarn install --silent - yarn run bootstrap - symlinks -cr . - - - task: build - config: - platform: linux - image_resource: - type: docker-image - source: - repository: xodio/node - inputs: - - name: installed-xod - outputs: - - name: built-xod - run: - path: sh - args: - - -exc - - | - rsync -a installed-xod/ built-xod/ - cd built-xod - yarn run build - - - task: test - config: - platform: linux - image_resource: - type: docker-image - source: - repository: xodio/node - inputs: - - name: built-xod - run: - dir: built-xod - path: yarn - args: [test] - - - task: lint - config: - platform: linux - image_resource: - type: docker-image - source: - repository: xodio/node - inputs: - - name: built-xod - run: - dir: built-xod - path: yarn - args: [run, lint] - - - get: master-version - params: { pre: master } - - - put: xod-client-browser-image - params: - build: built-xod/packages/xod-client-browser - tag: master-version/number - - - put: master-version - params: { pre: master } diff --git a/package.json b/package.json index ea59579a..235e85f3 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "lint": "eslint packages/*/src packages/*/test packages/xod-js/platform --ext js,jsx", "postinstall": "yarn run bootstrap", "start:xod-client-electron": "node ./tools/lerna-run-sorted start xod-client-electron", - "start:xod-server": "node ./tools/lerna-run-sorted start xod-server", "storybook": "node ./tools/lerna-serve storybook xod-client", "test": "node ./tools/lerna-run-sorted test", "test:watch": "node ./tools/lerna-serve test:watch", diff --git a/packages/xod-client/doc/Makefile b/packages/xod-client/doc/Makefile deleted file mode 100644 index ead7edf2..00000000 --- a/packages/xod-client/doc/Makefile +++ /dev/null @@ -1,225 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " epub3 to make an epub3" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - @echo " dummy to check syntax errors of document sources" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/XOD.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/XOD.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/XOD" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/XOD" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: epub3 -epub3: - $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 - @echo - @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -.PHONY: dummy -dummy: - $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy - @echo - @echo "Build finished. Dummy builder generates no files." diff --git a/packages/xod-client/doc/README.md b/packages/xod-client/doc/README.md deleted file mode 100644 index b3f43141..00000000 --- a/packages/xod-client/doc/README.md +++ /dev/null @@ -1,48 +0,0 @@ -Prerequisites -------------- - -To build the documentation you should have few things installed: - - * Python 3.4+ - * [Sphinx](http://www.sphinx-doc.org/en/stable/install.html) - * [Plant UML](http://plantuml.com/) - * `make` - -It is implied that you are in `/path/to/xod/doc` directory while executing -any command below: - - $ cd doc/ - -Virtual Environment -------------------- - -Sphinx has few dependencies on its own, so you can prefer not to intall it -system-wide, but to sandbox within the project. To do this use `pyvenv` which -is a part of Python package: - - $ pyvenv _build/venv3 - $ . _build/venv3/bin/activate - -If you’ve set up the sandbox Sphinx will install localy in `./_build/venv3`. - -Sphinx Install --------------- - -Run: - - $ pip install -r requirements.txt - -Building HTML Documentation ---------------------------- - -Run: - - $ make html - -You’ll get the result in `_build/html`. - -If you get “make: sphinx-build: Command not found”, you have forgot to activate -the virtual environment for the current terminal session. Do: - - $ . _build/venv3/bin/activate - $ make html diff --git a/packages/xod-client/doc/_static/custom.css b/packages/xod-client/doc/_static/custom.css deleted file mode 100644 index 35f0797d..00000000 --- a/packages/xod-client/doc/_static/custom.css +++ /dev/null @@ -1,15 +0,0 @@ - -.figure.align-right { - text-align: center; -} - -div.figure p.caption { - font-family: 'Roboto Condensed', sans-serif; - font-size: 13px; - text-align: left; -} - -div.figure p.caption:before { - content: '◼ '; - color: black; -} diff --git a/packages/xod-client/doc/conf.py b/packages/xod-client/doc/conf.py deleted file mode 100644 index 8b6ec92a..00000000 --- a/packages/xod-client/doc/conf.py +++ /dev/null @@ -1,346 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# XOD documentation build configuration file, created by -# sphinx-quickstart on Thu Jun 2 17:39:52 2016. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.imgmath', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -# -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = 'XOD' -copyright = '2016, Amperka LLC' -author = 'Amperka LLC' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '0.1' -# The full version, including alpha/beta/rc tags. -release = '0.1' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# -# today = '' -# -# Else, today_fmt is used as the format for a strftime call. -# -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'alabaster' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -html_theme_options = { - 'description': 'Visual programming for electronics hobbyists', - 'font_family': "Roboto, sans-serif", - 'head_font_family': "'Roboto Slab', sans-serif", -} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. -# " v documentation" by default. -# -# html_title = 'XOD v0.1' - -# A shorter title for the navigation bar. Default is the same as html_title. -# -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# -# html_logo = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# -# html_extra_path = [] - -# If not None, a 'Last updated on:' timestamp is inserted at every page -# bottom, using the given strftime format. -# The empty string is equivalent to '%b %d, %Y'. -# -# html_last_updated_fmt = None - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# -html_sidebars = { - '**': [ - 'about.html', - 'navigation.html', - 'relations.html', - 'searchbox.html', - ] -} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# -# html_additional_pages = {} - -# If false, no module index is generated. -# -# html_domain_indices = True - -# If false, no index is generated. -# -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr', 'zh' -# -# html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# 'ja' uses this config value. -# 'zh' user can custom change `jieba` dictionary path. -# -# html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -# -# html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'XODdoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'XOD.tex', 'XOD Documentation', - 'Amperka LLC', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# -# latex_use_parts = False - -# If true, show page references after internal links. -# -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# -# latex_appendices = [] - -# If false, no module index is generated. -# -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'xod', 'XOD Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -# -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'XOD', 'XOD Documentation', - author, 'XOD', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -# -# texinfo_appendices = [] - -# If false, no module index is generated. -# -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# -# texinfo_no_detailmenu = False diff --git a/packages/xod-client/doc/execution.rst b/packages/xod-client/doc/execution.rst deleted file mode 100644 index d4b2894f..00000000 --- a/packages/xod-client/doc/execution.rst +++ /dev/null @@ -1,215 +0,0 @@ - -.. _execution: - -*************** -Execution Model -*************** - -In contrast to conventional programming, XOD is data flow language rather than -control flow. That means there is no such thing as instruction pointer that -determines what command will be executed at next moment. Instead, updates are -done in instant transactions where all data is evaluated simultaneously. - -Static and Dynamic Parts -======================== - -Links and nodes are static. They can’t be changed at run time. The static -structure makes XOD programs easy to understand and foresee their behavior. You -can always know what changes will affect which nodes just by looking at -links. And these connections doesn’t depend on a current or past state of any -objects. - -What makes the behavior dynamic are data updates. Data flows along links -from outputs to inputs and cause cascade updates until the patch is fully -evaluated to the defined state. - -Data updates are initiated by some external impact. It can be a clock signal -to perform regular updates or a signal from a sensor, for example, that will -make a device respond to an event of the real world. - -Signals -======= - -Links are flow lanes for your data. Likewise, wires conduct electricity -links conduct data. Electricity spread over with semi-infinite speed. -You may think of data in the same way. - -Unlike electricity in wires, however, data is granular and flows along -links only when updated. A moment of data update is called *a signal* -in XOD. - -At moments when there is no data update on a link (most of the time) the -link is said to be *idle*. - -Signal Value -============ - -A signal can have payload data associated with it. The data is called *value*. -The type of value is defined by input/output pin type. It can be one of: - -* ``pulse`` — no data associated with the signal, used for signals that just - describe the fact of something has occurred; -* ``bool`` — either ``true`` (aka “yes”, logical one) or ``false`` (aka “no”, logical zero); -* ``number`` — integer or real number, infinity or special ``NaN`` (Not a Number) value; -* ``string`` — textual value that can be empty, single character, a line or - multiple lines of text; - -Besides any bool, number or string signal value can be ``null``. Null is *not* the -same as ``false``, ``0`` or empty string. It denotes a missing value. Nulls are -used for default values, optional values, and erroneous values. - -Also, there are stared types that are suffixed with an asterisk, e.g. -``number*``. Stared types are ordered lists or so-called tuples used to pack -several homogenous values into one. - -The type of signal can’t change while it flows from an output to an input, -i.e. you can’t connect pins of a different type. However, some nodes -can convert signal type if used as a medium. - -Buffering -========= - -Once an input receives a signal, it *buffers* (cache, capture, hold) its value -so that a node could use it for updates initiated by other input -signals anytime in future. - -Receiving a signal again on a particular input overwrites buffered value with -a new one. So input pins always store most recent signal’s value. - -Before an input receive any signal it buffers ``null`` value. However, -a particular node can override the default value for some of its pins. - -Transactions -============ - -Despite many values are continuous in nature, e.g. current time, ambient -temperature, sound pressure level, signals in XOD are not continuous. -So updates in XOD are always discrete. - -For example, once the system captures temperature signal from a sensor it takes -the new value as constant. It passes the signal along links causing connected -nodes to be updated. They could initiate own output signals as a response -to that input signal. These new signals are passed further, and the process is -repeated until all nodes that immediately depend on the original signal -are re-evaluated. Only after that the system can take in subsequent temperature -signal to update again. - -Such cascade node update caused by a signal is called *transaction*. - -Although nothing can be done instantly, you should think of transactions -as moment atomic updates where no external impact is possible until everything -will be evaluated in response to an initiating signal. - -Transactions can happen one after another in milliseconds rate appear to be -a real-time reaction to external changes. - -Vice versa, transactions can occasionally occur in response to rare events. -This lets processor sleep most of the time and preserve battery charge. - -A particular branch of a transactional update completes when it stumbles upon -a node that has no outputs or any node that had not generate an output signal in -response to the input signal. - -Order of Evaluation -=================== - -Once you get the idea of transactions, it’s intuitive enough to understand which -node will update after which. For the sake of completeness let’s outline -evaluation rules of a transaction. - -1. A new transaction starts when there is a signal generated by some node’s output. -2. Any signals coming from outside while a transaction is in progress are postponed - until current transaction finishes. -3. Each node is evaluated at most once during a particular transaction. -4. A node is evaluated only after all nodes that it depends on (i.e. linked to - outputs) are evaluated. - -Example -------- - -Consider an example of power quality monitor. We want to enable an alarm when there -is a voltage (greater than zero), but it is out of desired range from 11.6 to -12.1 volts. - -.. image:: images/execution/voltage-monitor.* - :align: center - -Although the same can be done with fewer nodes in a more compact way, let’s look -at this example to understand node evaluation order step by step. - -First, voltage sensor detects a voltage change. Let’s say its value is 12 volts. -Voltage signal is spread over three outgoing links to three other node inputs as -shown below. - -.. image:: images/execution/voltage-monitor-p1.* - :align: center - -After that, these three nodes should be updated. The precise order does not matter -because they do not have cross-dependencies, and it is not predictable at all. -Let’s imagine that leftmost node (equality) would be the first. It compares incoming -signal ``12`` with a buffered value ``0``. The result is ``false``, and that value -is passed as an output signal further. - -.. image:: images/execution/voltage-monitor-p2.* - :align: center - -We are still have three nodes that should be updated. Now there is an input signal -for “or” node, and it should react. However, this would violate the rule #4 since nodes -that “or” depends on indirectly are still not evaluated. So “greater” node is -chosen. - -It compares signal ``12`` with buffered constant ``11.6`` and outputs ``true`` since -12 is greater than 11.6. - -.. image:: images/execution/voltage-monitor-p3.* - :align: center - -There are still three dirty nodes. However, the only one that can be processed next is -“less” node because other two depend on it. The “less” node is evaluated to ``true``. - -.. image:: images/execution/voltage-monitor-p4.* - :align: center - -Oh, now we have just two node candidates to be updated. Since “or” depends on “and”, -the later one is evaluated first. It finally sends ``true`` to “or” node that waits -here from the second step. - -.. image:: images/execution/voltage-monitor-p5.* - :align: center - -If we have some very quick voltage sensor, it can try to push new update right at -the current moment. However, we have not finished with current transaction yet because there -are still dirty nodes. So that new update signal will be postponed until we are done. - -Node “or” finally got signals for each input, so it is evaluated and passes ``true`` -to its output. - -.. image:: images/execution/voltage-monitor-p6.* - :align: center - -Now “not” node is outdated. It is evaluated and pass ``false`` further. - -.. image:: images/execution/voltage-monitor-p7.* - :align: center - -As a final result, alarm node receives ``false`` signal and the alarm is not enabled. -That is fine because input voltage falls into permissible range. - -At this moment transaction completes, and we are ready to start the new one to handle -voltage meter update that came few steps ago. - -Restrictions ------------- - -To make this rules feasible patch graph should follow few restrictions that are -built into XOD: - -1. A patch should not have loops involving only pure functional nodes. I.e. pure functional - node cannot send an output signal back to its input directly or indirectly. So creation - of links that cause graph loops is prohibited in XOD. -2. In a case of simultaneous signals, the resolution priority on conflicting input should - be explicit and well defined. So connecting more than one link to an input is - not possible as well. - -There is a special “buffer” node to deal with the first restriction and “merge” node -to deal with the second. diff --git a/packages/xod-client/doc/images/execution/voltage-monitor-p1.svg b/packages/xod-client/doc/images/execution/voltage-monitor-p1.svg deleted file mode 100644 index 52b67e27..00000000 --- a/packages/xod-client/doc/images/execution/voltage-monitor-p1.svg +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Voltage - - - - - < - - - - - Alarm - - - - - - - > - - - - - - - 11.6 - - - - - 12.1 - - - - - and - - - - - - - or - - - - - - - = - - - - - - - 0 - - - - - not - - - - - 12 - - - 12 - - - 12 - - - diff --git a/packages/xod-client/doc/images/execution/voltage-monitor-p2.svg b/packages/xod-client/doc/images/execution/voltage-monitor-p2.svg deleted file mode 100644 index 5bd70584..00000000 --- a/packages/xod-client/doc/images/execution/voltage-monitor-p2.svg +++ /dev/null @@ -1,519 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Voltage - - - - - < - - - - - Alarm - - - - - - - > - - - - - - - 11.6 - - - - - 12.1 - - - - - and - - - - - - - or - - - - - - - = - - - - - - - 0 - - - - - not - - - - - 12 - - - 12 - - - 12 - - - false - - - diff --git a/packages/xod-client/doc/images/execution/voltage-monitor-p3.svg b/packages/xod-client/doc/images/execution/voltage-monitor-p3.svg deleted file mode 100644 index a0460e68..00000000 --- a/packages/xod-client/doc/images/execution/voltage-monitor-p3.svg +++ /dev/null @@ -1,530 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Voltage - - - - - < - - - - - Alarm - - - - - - - > - - - - - - - 11.6 - - - - - 12.1 - - - - - and - - - - - - - or - - - - - - - = - - - - - - - 0 - - - - - not - - - - - 12 - - - 12 - - - 12 - - - false - - - true - - - diff --git a/packages/xod-client/doc/images/execution/voltage-monitor-p4.svg b/packages/xod-client/doc/images/execution/voltage-monitor-p4.svg deleted file mode 100644 index 3d86b0ef..00000000 --- a/packages/xod-client/doc/images/execution/voltage-monitor-p4.svg +++ /dev/null @@ -1,541 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Voltage - - - - - < - - - - - Alarm - - - - - - - > - - - - - - - 11.6 - - - - - 12.1 - - - - - and - - - - - - - or - - - - - - - = - - - - - - - 0 - - - - - not - - - - - 12 - - - 12 - - - 12 - - - false - - - true - - - true - - - diff --git a/packages/xod-client/doc/images/execution/voltage-monitor-p5.svg b/packages/xod-client/doc/images/execution/voltage-monitor-p5.svg deleted file mode 100644 index ba2a7a30..00000000 --- a/packages/xod-client/doc/images/execution/voltage-monitor-p5.svg +++ /dev/null @@ -1,552 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Voltage - - - - - < - - - - - Alarm - - - - - - - > - - - - - - - 11.6 - - - - - 12.1 - - - - - and - - - - - - - or - - - - - - - = - - - - - - - 0 - - - - - not - - - - - 12 - - - 12 - - - 12 - - - false - - - true - - - true - - - true - - - diff --git a/packages/xod-client/doc/images/execution/voltage-monitor-p6.svg b/packages/xod-client/doc/images/execution/voltage-monitor-p6.svg deleted file mode 100644 index 5b59c209..00000000 --- a/packages/xod-client/doc/images/execution/voltage-monitor-p6.svg +++ /dev/null @@ -1,563 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Voltage - - - - - < - - - - - Alarm - - - - - - - > - - - - - - - 11.6 - - - - - 12.1 - - - - - and - - - - - - - or - - - - - - - = - - - - - - - 0 - - - - - not - - - - - 12 - - - 12 - - - 12 - - - false - - - true - - - true - - - true - - - true - - - diff --git a/packages/xod-client/doc/images/execution/voltage-monitor-p7.svg b/packages/xod-client/doc/images/execution/voltage-monitor-p7.svg deleted file mode 100644 index e6753a92..00000000 --- a/packages/xod-client/doc/images/execution/voltage-monitor-p7.svg +++ /dev/null @@ -1,574 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Voltage - - - - - < - - - - - Alarm - - - - - - - > - - - - - - - 11.6 - - - - - 12.1 - - - - - and - - - - - - - or - - - - - - - = - - - - - - - 0 - - - - - not - - - - - 12 - - - 12 - - - 12 - - - false - - - true - - - true - - - true - - - true - - - false - - - diff --git a/packages/xod-client/doc/images/execution/voltage-monitor.svg b/packages/xod-client/doc/images/execution/voltage-monitor.svg deleted file mode 100644 index bc9334c9..00000000 --- a/packages/xod-client/doc/images/execution/voltage-monitor.svg +++ /dev/null @@ -1,476 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - Voltage - - - - - < - - - - - Alarm - - - - - - - > - - - - - - - 11.6 - - - - - 12.1 - - - - - and - - - - - - - or - - - - - - - = - - - - - - - 0 - - - - - not - - - - - diff --git a/packages/xod-client/doc/images/intro/example.svg b/packages/xod-client/doc/images/intro/example.svg deleted file mode 100644 index fa441b8e..00000000 --- a/packages/xod-client/doc/images/intro/example.svg +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - Thermometer - - - - T - - - - < - - - - - Cooler - - - - EN - - - - - - > - - - - - - - 77 °F - - - - - 71 °F - - - - - Heater - - - - EN - - - - Display - - - - diff --git a/packages/xod-client/doc/images/structure/knob-led.svg b/packages/xod-client/doc/images/structure/knob-led.svg deleted file mode 100644 index b0a08ca6..00000000 --- a/packages/xod-client/doc/images/structure/knob-led.svg +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - Knob - - - - - - - - - - - - LED - - - - - 1.0 - - - - diff --git a/packages/xod-client/doc/images/structure/pow.svg b/packages/xod-client/doc/images/structure/pow.svg deleted file mode 100644 index 0c8f7c5d..00000000 --- a/packages/xod-client/doc/images/structure/pow.svg +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - pow - - - - - - diff --git a/packages/xod-client/doc/index.rst b/packages/xod-client/doc/index.rst deleted file mode 100644 index 2ff13256..00000000 --- a/packages/xod-client/doc/index.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. XOD documentation master file, created by - sphinx-quickstart on Thu Jun 2 17:39:52 2016. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to XOD! -=============== - -.. toctree:: - :maxdepth: 2 - - intro - structure - execution diff --git a/packages/xod-client/doc/intro.rst b/packages/xod-client/doc/intro.rst deleted file mode 100644 index 65be768a..00000000 --- a/packages/xod-client/doc/intro.rst +++ /dev/null @@ -1,88 +0,0 @@ -************ -Introduction -************ - -XOD is a visual functional reactive programming language aimed to electronics -hobbyists. - -It contrasts to classical programming like one do with C++ or JavaScript in -many ways although it is powerful enough to solve same problems. - -A Quick Look -============ - -.. image:: images/intro/example.* - :align: center - -The image is a climate control program example that strives to keep temperature in -71–77 °F range. It uses a digital thermometer as a sensor, a cooler, and a heater -as actuators, and an LCD to display current temperature. - -As you can see XOD program is a diagram that describes what system -*should* be. Not a sequence of steps that would lead to the desired result. -Formally XOD is a data flow system rather than a control flow. - -A processor running XOD program will evaluate the graph when required. So that -reality gets along with declared desire. That's it. - -Rationale -========= - -Programming is hard. Good programming is manifold hard. But it’s required to -create something new and *smart*. - -Our intent is to create a shortcut. We found that many people feel more natural -if they think about a program as an electrical circuit or a mechanism rather than -as a sequence of instructions. - -.. todo:: Example - - -Fundamental Concepts -==================== - -Let's explain few concepts that stay behind programming in XOD: - -* It's **visual**. In contrast to usual programming where behavior is described by - text with some syntax rules, in XOD you describe the program with blocks and - lines that connect them together. That blocks are called *nodes* and lines - connecting them are called *links*. There are many nodes built in, there are - nodes authored by other XODers, you can also create your own. -* It's **functional**. Formally it means that no nodes share mutable state. If you - don't understand what does it mean exactly, don't worry. It means that what you see - is what you get, and it is impossible that a change of data in one part of - the program would *implicitly* change another data in another part without an - *explicit* link. This is how programming should look like in any language, but - it is not, and such implicit dependencies are often lead to bugs, glitches, - and crashes. XOD protects you from them. -* It's **reactive**. It means that nodes are activated and produce output signals - as a reaction to input signals. Give an update in and you'll get an update - out. - -These three concepts together give you the ability to create robust programs -in a simple way. Even if you haven't programming experience before. - -What Makes XOD Different -======================== - -Some languages and tools that look similar to XOD at a first sight. -Notably Scratch_, `Lego Mindstorms`_, vvvv_, LabView_, NoFlo_. - -.. _vvvv: https://vvvv.org/ -.. _NoFlo: http://noflojs.org/ -.. _Scratch: https://scratch.mit.edu/ -.. _`Lego Mindstorms`: http://www.lego.com/en-us/mindstorms/learn-to-program -.. _LabView: http://www.ni.com/labview/ - -But neither of them share the same set of principles at once. Although some ideas -will look familiar if you have an experience with that products. - -#. XOD is not a tool to build toy-only projects. It is scalable, reliable, and complete. - You can use it for serious tasks. -#. XOD is targeted specifically toward electronics engineers making it easy to build - gadgets, robotics, IoT. -#. XOD is visual in a first place. Visualization features are used primarily to give - you an easy program structure overview and ability to quickly and intuitively change - that program, not to make it look funny or coarse-grained. -#. XOD is open source. It’s free in sense of freedom. You can fork it, tweak it, host it - and contribute back. diff --git a/packages/xod-client/doc/make.bat b/packages/xod-client/doc/make.bat deleted file mode 100644 index 5162e2c7..00000000 --- a/packages/xod-client/doc/make.bat +++ /dev/null @@ -1,281 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=_build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . -set I18NSPHINXOPTS=%SPHINXOPTS% . -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% - set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% -) - -if "%1" == "" goto help - -if "%1" == "help" ( - :help - echo.Please use `make ^` where ^ is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. epub3 to make an epub3 - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. texinfo to make Texinfo files - echo. gettext to make PO message catalogs - echo. changes to make an overview over all changed/added/deprecated items - echo. xml to make Docutils-native XML files - echo. pseudoxml to make pseudoxml-XML files for display purposes - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - echo. coverage to run coverage check of the documentation if enabled - echo. dummy to check syntax errors of document sources - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - - -REM Check if sphinx-build is available and fallback to Python version if any -%SPHINXBUILD% 1>NUL 2>NUL -if errorlevel 9009 goto sphinx_python -goto sphinx_ok - -:sphinx_python - -set SPHINXBUILD=python -m sphinx.__init__ -%SPHINXBUILD% 2> nul -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -:sphinx_ok - - -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\XOD.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\XOD.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "epub3" ( - %SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3 - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub3 file is in %BUILDDIR%/epub3. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdf" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf - cd %~dp0 - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdfja" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf-ja - cd %~dp0 - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "texinfo" ( - %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. - goto end -) - -if "%1" == "gettext" ( - %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The message catalogs are in %BUILDDIR%/locale. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - if errorlevel 1 exit /b 1 - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - if errorlevel 1 exit /b 1 - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - if errorlevel 1 exit /b 1 - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -if "%1" == "coverage" ( - %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage - if errorlevel 1 exit /b 1 - echo. - echo.Testing of coverage in the sources finished, look at the ^ -results in %BUILDDIR%/coverage/python.txt. - goto end -) - -if "%1" == "xml" ( - %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The XML files are in %BUILDDIR%/xml. - goto end -) - -if "%1" == "pseudoxml" ( - %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. - goto end -) - -if "%1" == "dummy" ( - %SPHINXBUILD% -b dummy %ALLSPHINXOPTS% %BUILDDIR%/dummy - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. Dummy builder generates no files. - goto end -) - -:end diff --git a/packages/xod-client/doc/requirements.txt b/packages/xod-client/doc/requirements.txt deleted file mode 100644 index 6b857e5e..00000000 --- a/packages/xod-client/doc/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -sphinx -sphinxcontrib-plantuml diff --git a/packages/xod-client/doc/structure.rst b/packages/xod-client/doc/structure.rst deleted file mode 100644 index bfc6903e..00000000 --- a/packages/xod-client/doc/structure.rst +++ /dev/null @@ -1,176 +0,0 @@ -***************** -Program Structure -***************** - -Instead of writing a program in a text editor you're drawing it in XOD IDE. -Underlying format of XOD programs is a set of JSON-files, but it doesn't -matter much for the end user. These files are not intended to be manipulated -directly and are used just to store and distribute projects. - -Nodes -===== - -.. figure:: images/structure/pow.* - :align: right - :figwidth: 20% - - An example of “pow” node that takes a power of input number and passes it - further. - -Any XOD program consists of nodes that interact with each other. Roughly you can -think of nodes as electronic components: ICs, LEDs, mechanical switches, etc. - -Every node has a *type* that determines what the node can and will do in the -program. Some nodes represent hardware modules (thermometers, -accelerometers, relays, motors), other nodes represent logic and mathematical -transformations (sum, comparison, merge, filter); another are watches and -constants used to configure and control behavior. - -Of course, you may have as many nodes of a particular type as necessary. - -Many node types are built in XOD. Also, you can include third-party node types, -create your own and share them with the community. - -Nodes are presented as rectangles with a label. You can overwrite default label -with your own for clarity. It doesn't change a logic anyhow. For example, it is -a good idea to label a node “Water Pump” instead of default “Relay” if you have -a pump connected to the relay. After all, you’re trying to control a pump, not an -abstract relay. - -Pins, Inputs, and Outputs -========================= - -Every node has pins. They are depicted by small circles along edges of a node. -Rougly if a node is analogous to IC, its pins are IC’s legs. - -The pin can be either input or output. Input pins are always on top and -outputs are at the bottom. - -Think of inputs as data receivers and outputs are data senders or data sources. -Give something on node’s input and it’ll get triggered to process the data, make -something useful and possibly produce some output as a reaction. The reactive -programming concept in action. - -Some pins have labels. They are only for visual differentiation and consist -of few letters that are mnemonics for pin function. Some mnemonics are widespread -like EN for “enable”, VAL for “value”, CK for “clock”. Other are node-specific -but anyway easy to remember. If there are just a few pins on the node and their -designation is unambigous it is OK to left labels out because it makes programs -more compact. - -Every pin has a type on their own. The type denotes kind of data this pin was -designed to work with. There are few basic types: pulse, boolean, number, -string, array and a grouping mechanism that allows you create new composite -pin types. But more on that later. - -Node Categories -=============== - -You may already noticed that nodes are colored differently. The color depends on -node type or rather on type *category*. There are few of them. - -*Pure functional* nodes are gray. They react to input change instantly. -Think that their outputs are hard-bound to inputs. They are functions in the -mathematical sense: change of an input parameter lead to re-computation of the -function and update of the output. Also, pure functional nodes cannot change -their outputs sporadically without input change. Pure function nodes are used -to perform mathematical and logical operations, data transformations, -filtering, and formatting. - -*Hardware* nodes are purple. They represent physical peripheral devices such as -sensors or actuators. Their inputs are commands to perform something useful, and -their outputs are signals of something has happened in the real world. - -*Configuration* nodes (or config nodes for short) are green. They serve a value -that passes as a signal at the very beginning of program execution. You would -usually use constants to tweak the system. You can change the value served either -from patch editor directly or via a GUI board. - -*Watch* nodes are pink. They show you the last signal value they have received. -You would use them to debug the program and to gather system output. Watches -are available in patch editor and on GUI boards as well. - -Links -===== - -.. figure:: images/structure/knob-led.* - :align: right - :figwidth: 20% - - Program example where four nodes are linked together to produce anti-dimmer. - Rotate the knob more to get LED shine dimmer. - -Nodes alone can't make your program different. To do something new they should -be connected to work together. To be more precise you don’t connect nodes, -but you connect their input and output pins. These connections are called *links*. -Rougly links are analogous to wires or traces in an electrical circuit. - -Once there is a link between an output and an input any data appearing on the -output will instantly flow into the input. Which in turn will lead to node -update and further cascade update of other nodes behind that node. - -It is only allowed to link inputs with outputs. You can’t connect output to -output for example. Also, an output can have an arbitrary number of outgoing links, -but an input can have at most one incoming link. There is a reason for this namely -explicit handling of simultaneous signals and conflict resolution. We’ll talk -about this in :ref:`execution` chapter. - -Links can be drawn as straight lines or as polylines at your will. An appearance -doesn't affect logic anyhow. It’s just for program clearness. - -Cycles and Buffers -================== - -One thing to note is that links should not create cycles or loops within the -program. Thus, you will be not allowed to create a link that would create a -path that data can flow infinitely round after round. - -However, there are cases when feeding a signal back is required. For these -cases there is a couple of special nodes that can be put in-between to -close the loop. But more on that later. - -Patches -======= - -A collection of nodes and links between them that are drawn together on single -canvas is called a *patch*. Patches a rough analog to files or modules in -classic programming. - -In contrast to usual programming, however, there is no such thing as an entry point. -All patches of your program are equal in rights and execute in parallel. - -You can give your patch input and output pins effectively turning it into -a new node type that you can place and use in your other patches and projects. - -Schemes -======= - -Schemes are a different kind of patches that describe your hardware wiring rather -than your program logic. They are static and just declare which things -connected where. - -Nodes on schemes are required by those logical nodes that represent hardware so -that they’re able to convert data to real electrical signals and back when required. - -Pins of hardware nodes has another type system as well. A pin can require or provide -*features*. Features denote supported hardware interfaces, electrical capabilities -of physical devices. - -Again, there are hardware nodes built in and you can easily create your own or use -third-party nodes to communicate with potentially any piece of hardware in your -project. - -Schemes are not restricted to a single target processor that will run the program. -They could include a definition of several distinct devices that work together for -one mission. For example, you can have a button directly linked to an LED on logical -patch but split them on hardware level to a pair of distinct devices: one with -button and one with LED connected by a 433 MHz channel or an Internet cloud service -accessed with Wi-Fi. - -Once you look to a scheme of some XOD project, it should become obvious how to -wire electronic modules and components to replicate that device. - -UI Boards -========= - -TODO diff --git a/packages/xod-server/.editorconfig b/packages/xod-server/.editorconfig deleted file mode 100644 index 3ee22e5d..00000000 --- a/packages/xod-server/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# http://editorconfig.org - -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true diff --git a/packages/xod-server/.eslintignore b/packages/xod-server/.eslintignore deleted file mode 100644 index 44f39701..00000000 --- a/packages/xod-server/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -/client/ \ No newline at end of file diff --git a/packages/xod-server/.gitignore b/packages/xod-server/.gitignore deleted file mode 100644 index aff1045b..00000000 --- a/packages/xod-server/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -*.csv -*.dat -*.iml -*.log -*.out -*.pid -*.seed -*.sublime-* -*.swo -*.swp -*.tgz -*.xml -.DS_Store -.idea -.project -.strong-pm -coverage -node_modules -npm-debug.log diff --git a/packages/xod-server/.yo-rc.json b/packages/xod-server/.yo-rc.json deleted file mode 100644 index 02f3fc17..00000000 --- a/packages/xod-server/.yo-rc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "generator-loopback": {} -} \ No newline at end of file diff --git a/packages/xod-server/package.json b/packages/xod-server/package.json deleted file mode 100644 index f8dd1d1f..00000000 --- a/packages/xod-server/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "xod-server", - "version": "0.0.1", - "description": "Here will be server-side scripts.", - "main": "server/server.js", - "scripts": { - "start": "node .", - "posttest": "npm run lint && nsp check", - "dev": "npm-watch", - "reset": "node ./scripts/resetDb.js", - "addUser": "node ./scripts/addUser.js" - }, - "keywords": [ - "xod", - "amperka" - ], - "author": "Amperka team", - "license": "MIT", - "engines": { - "node": "6.0.0" - }, - "dependencies": { - "compression": "^1.0.3", - "cors": "^2.5.2", - "helmet": "^1.3.0", - "loopback": "^2.22.0", - "loopback-boot": "^2.6.5", - "loopback-component-explorer": "^2.4.0", - "loopback-connector-mongodb": "^1.15.2", - "loopback-datasource-juggler": "^2.39.0", - "ramda": "^0.23.0", - "serve-favicon": "^2.0.1", - "strong-error-handler": "^1.0.1" - }, - "devDependencies": { - "npm-watch": "^0.1.6", - "nsp": "^2.1.0" - }, - "watch": { - "start": { - "patterns": [ - "server", - "node_modules" - ], - "extensions": "js, json" - } - } -} diff --git a/packages/xod-server/scripts/addUser.js b/packages/xod-server/scripts/addUser.js deleted file mode 100644 index 8d030355..00000000 --- a/packages/xod-server/scripts/addUser.js +++ /dev/null @@ -1,21 +0,0 @@ -const R = require('ramda'); -const server = require('../server/server.js'); -const createUser = require('./parts/create-user.js'); - -const options = R.slice(2, Infinity, process.argv); - -if (options.length !== 3) { - console.error("(!) You should pass three parameters: username, email and password!"); - console.error("For example: npm run addUser test test@amperka.ru qwe123"); - process.exit(1); -} - -const userOptions = { - username: options[0], - email: options[1], - password: options[2], -}; - -createUser(userOptions)(server) - .then(() => { process.exit(); }) - .catch(err => { console.error(err); process.exit(1); }) diff --git a/packages/xod-server/scripts/parts/create-user.js b/packages/xod-server/scripts/parts/create-user.js deleted file mode 100644 index a2a4a343..00000000 --- a/packages/xod-server/scripts/parts/create-user.js +++ /dev/null @@ -1,13 +0,0 @@ -// Create a user -module.exports = userOptions => app => - new Promise(resolve => { - const User = app.models.user; - - User.create( - userOptions, - (err, instance) => { - if (err) { console.error(err); } - console.log(`+ Add user ${instance.username}:${userOptions.password}: successfully.`); - resolve(app); - }); - }); diff --git a/packages/xod-server/scripts/resetDb.js b/packages/xod-server/scripts/resetDb.js deleted file mode 100644 index 3e741883..00000000 --- a/packages/xod-server/scripts/resetDb.js +++ /dev/null @@ -1,47 +0,0 @@ -const R = require('ramda'); -const server = require('../server/server.js'); -const createUser = require('./parts/create-user.js'); -/* eslint-disable max-len */ - -const userOptions = { - email: 'test@amperka.ru', - username: 'Amperka', - password: 'qwe123', -}; - -// Utils -const emptyLine = (data) => { console.log(''); return data; }; - -// Destroy all datas! -const destroyAll = (app) => - new Promise(resolve => { - const models = R.pipe( - R.prop('models'), - R.toPairs, - R.reject(([modelName]) => modelName === 'AccessToken') - )(app); - let curCount = 0; - - R.forEach( - ([modelName, model]) => model.destroyAll( - (err, info) => { - if (err) { console.error(err); } - console.log(`- Clear model '${modelName}': removed ${info.count} records.`); - - curCount++; - if (curCount === models.length) { resolve(app); } - } - ) - )(models); - }); - -// Run -Promise.resolve(server) - .then(destroyAll) - .then(emptyLine) - .then(createUser(userOptions)) - .then(emptyLine) - .then(() => { - console.log('=== It\'s done! ==='); - process.exit(); - }); diff --git a/packages/xod-server/server/boot/authentication.js b/packages/xod-server/server/boot/authentication.js deleted file mode 100644 index a87cd081..00000000 --- a/packages/xod-server/server/boot/authentication.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = function enableAuthentication(server) { - // enable authentication - server.enableAuth(); -}; diff --git a/packages/xod-server/server/boot/root.js b/packages/xod-server/server/boot/root.js deleted file mode 100644 index 356ddefa..00000000 --- a/packages/xod-server/server/boot/root.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = function rootBoot(server) { - // Install a `/` route that returns server status - const router = server.loopback.Router(); - router.get('/', server.loopback.status()); - server.use(router); -}; diff --git a/packages/xod-server/server/component-config.json b/packages/xod-server/server/component-config.json deleted file mode 100644 index f36959a4..00000000 --- a/packages/xod-server/server/component-config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "loopback-component-explorer": { - "mountPath": "/explorer" - } -} diff --git a/packages/xod-server/server/config.json b/packages/xod-server/server/config.json deleted file mode 100644 index a7195e8f..00000000 --- a/packages/xod-server/server/config.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "restApiRoot": "/api", - "host": "0.0.0.0", - "port": 3000, - "remoting": { - "context": false, - "rest": { - "normalizeHttpPath": false, - "xml": false - }, - "json": { - "strict": false, - "limit": "100kb" - }, - "urlencoded": { - "extended": true, - "limit": "100kb" - }, - "cors": false, - "handleErrors": false - }, - "legacyExplorer": false, - "aclErrorStatus": 403 -} diff --git a/packages/xod-server/server/constants/errors.js b/packages/xod-server/server/constants/errors.js deleted file mode 100644 index 3ad937d5..00000000 --- a/packages/xod-server/server/constants/errors.js +++ /dev/null @@ -1,7 +0,0 @@ -/* eslint-disable max-len */ - -module.exports = { - project: { - validProjectName: 'Project name should contain only latin alphabet, digits, minus or underscore char.', - }, -}; diff --git a/packages/xod-server/server/datasources.json b/packages/xod-server/server/datasources.json deleted file mode 100644 index 966ae587..00000000 --- a/packages/xod-server/server/datasources.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "db": { - "name": "db", - "connector": "memory" - }, - "Mongo": { - "host": "127.0.0.1", - "port": 27017, - "url": "mongodb://127.0.0.1:27017/xod", - "database": "xod", - "password": "", - "name": "Mongo", - "user": "", - "connector": "mongodb" - } -} diff --git a/packages/xod-server/server/middleware.development.json b/packages/xod-server/server/middleware.development.json deleted file mode 100644 index 071c11a3..00000000 --- a/packages/xod-server/server/middleware.development.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "final:after": { - "strong-error-handler": { - "params": { - "debug": true, - "log": true - } - } - } -} diff --git a/packages/xod-server/server/middleware.json b/packages/xod-server/server/middleware.json deleted file mode 100644 index 7b67ed3b..00000000 --- a/packages/xod-server/server/middleware.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "initial:before": { - "loopback#favicon": {} - }, - "initial": { - "compression": {}, - "cors": { - "params": { - "origin": true, - "credentials": true, - "maxAge": 86400 - } - }, - "helmet#xssFilter": {}, - "helmet#frameguard": { - "params": [ - "deny" - ] - }, - "helmet#hsts": { - "params": { - "maxAge": 0, - "includeSubdomains": true - } - }, - "helmet#hidePoweredBy": {}, - "helmet#ieNoOpen": {}, - "helmet#noSniff": {}, - "helmet#noCache": { - "enabled": false - } - }, - "session": {}, - "auth": {}, - "parse": {}, - "routes": { - "loopback#rest": { - "paths": [ - "${restApiRoot}" - ] - } - }, - "files": { - "loopback#static": { - "paths": "/public", - "params": "./public" - } - }, - "final": { - "loopback#urlNotFound": {} - }, - "final:after": { - "strong-error-handler": {} - } -} diff --git a/packages/xod-server/server/model-config.json b/packages/xod-server/server/model-config.json deleted file mode 100644 index 7cf64208..00000000 --- a/packages/xod-server/server/model-config.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "_meta": { - "sources": [ - "loopback/common/models", - "loopback/server/models", - "../common/models", - "./models" - ], - "mixins": [ - "loopback/common/mixins", - "loopback/server/mixins", - "../common/mixins", - "./mixins" - ] - }, - "AccessToken": { - "dataSource": "Mongo", - "public": false - }, - "ACL": { - "dataSource": "Mongo", - "public": false - }, - "RoleMapping": { - "dataSource": "Mongo", - "public": false - }, - "Role": { - "dataSource": "Mongo", - "public": false - }, - "User": { - "dataSource": "Mongo", - "public": false, - "options": { - "emailVerificationRequired": false - } - }, - "project": { - "dataSource": "Mongo", - "public": true - }, - "package": { - "dataSource": "Mongo", - "public": true - }, - "user": { - "dataSource": "Mongo", - "public": true - } -} diff --git a/packages/xod-server/server/models/package.js b/packages/xod-server/server/models/package.js deleted file mode 100644 index 31b59db1..00000000 --- a/packages/xod-server/server/models/package.js +++ /dev/null @@ -1,19 +0,0 @@ -const methods = require('../utils/methods'); - -module.exports = function PakcageModel(Package) { - methods.filter( - [ - 'create', - - 'find', - 'findOne', - 'findById', - - 'count', - 'exists', - - '__get__author', - ], - Package - ); -}; diff --git a/packages/xod-server/server/models/package.json b/packages/xod-server/server/models/package.json deleted file mode 100644 index 06fe92d4..00000000 --- a/packages/xod-server/server/models/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "package", - "base": "PersistedModel", - "idInjection": true, - "options": { - "validateUpsert": true - }, - "properties": { - "name": { - "type": "string", - "required": true - } - }, - "validations": [], - "relations": { - "author": { - "type": "belongsTo", - "model": "Profile", - "foreignKey": "ownerId" - } - }, - "acls": [], - "methods": {} -} diff --git a/packages/xod-server/server/models/project.js b/packages/xod-server/server/models/project.js deleted file mode 100644 index cca2a87c..00000000 --- a/packages/xod-server/server/models/project.js +++ /dev/null @@ -1,41 +0,0 @@ -const errors = require('../constants/errors'); -const methods = require('../utils/methods'); - - -module.exports = function ProjectModel(Project) { - // validation methods - function checkProjectName(err) { - if (/^[a-zA-Z0-9_\-]*$/.test(this.name) === false) { - err(); - } - } - - // validation bindings - Project.validate( - 'validProjectName', - checkProjectName, - { - message: errors.project.validProjectName, - } - ); - - // methods - methods.filter( - [ - 'create', - 'upsert', - - 'deleteById', - - 'find', - 'findOne', - 'findById', - - 'count', - 'exists', - - '__get__author', - ], - Project - ); -}; diff --git a/packages/xod-server/server/models/project.json b/packages/xod-server/server/models/project.json deleted file mode 100644 index 5d05c67f..00000000 --- a/packages/xod-server/server/models/project.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "project", - "base": "PersistedModel", - "strict": true, - "idInjection": true, - "options": { - "validateUpsert": true - }, - "properties": { - "ownerId": { - "type": "number", - "required": true - }, - "name": { - "type": "string", - "required": true - }, - "createdAt": { - "type": "date", - "required": false, - "defaultFn": "now" - }, - "updatedAt": { - "type": "date", - "required": false, - "defaultFn": "now" - }, - "pojo": { - "type": "string" - }, - "public": { - "type": "boolean", - "required": true, - "default": false - } - }, - "validations": [], - "relations": { - "author": { - "type": "belongsTo", - "model": "user", - "foreignKey": "ownerId" - } - }, - "acls": [ - { - "accessType": "*", - "principalType": "ROLE", - "principalId": "$unauthenticated", - "permission": "DENY" - }, - { - "accessType": "EXECUTE", - "principalType": "ROLE", - "principalId": "$authenticated", - "permission": "ALLOW", - "property": "create" - }, - { - "accessType": "*", - "principalType": "ROLE", - "principalId": "$owner", - "permission": "ALLOW" - } - ], - "methods": {} -} diff --git a/packages/xod-server/server/models/user.js b/packages/xod-server/server/models/user.js deleted file mode 100644 index a338d5e4..00000000 --- a/packages/xod-server/server/models/user.js +++ /dev/null @@ -1,85 +0,0 @@ -const R = require('ramda'); -const methods = require('../utils/methods'); -const extract = source => JSON.parse(JSON.stringify(source)); // @TODO: Remove this hack - -module.exports = function UserModel(User) { - User.validatesUniquenessOf('username', { message: 'User already exists' }); - User.validatesLengthOf('password', { min: 6, message: { min: 'Password is too short' } }); - User.validatesUniquenessOf('email', { message: 'Email is not unique' }); - - methods.filter( - [ - 'logout', - 'resetPassword', - 'confirm', - - '__findById__projects', - '__get__projects', - '__count__projects', - ], - User - ); - - // /user/login - // Custom login with returning user data, includes project list - User.signIn = (credentials, send) => { - const app = User.app; - const Project = app.models.Project; - User.login( - credentials, - 'user', - (uErr, usr) => { - const userData = extract(usr); - - Project.find({ - where: { ownerId: userData.userId }, - }, (pErr, proj) => { - const err = (uErr || pErr) ? R.merge(uErr, pErr) : null; - send(err, { - id: userData.id, - ttl: userData.ttl, - userId: userData.userId, - username: userData.user.username, - userpic: userData.user.userpic, - projects: proj, - }); - }); - } - ); - }; - - User.remoteMethod('signIn', { - http: { path: '/login', verb: 'post' }, - accepts: { arg: 'credentials', type: 'object', http: { source: 'body' } }, - returns: [ - { arg: 'id', type: 'string', root: true }, - { arg: 'ttl', type: 'number', root: true }, - { arg: 'userId', type: 'string', root: true }, - { arg: 'username', type: 'string', root: true }, - { arg: 'userpic', type: 'string', root: true }, - { arg: 'projects', type: ['object'], root: true }, - ], - }); - - // /user/{id} - // Returns userdata, includes project list - User.getUserData = (id, send) => { - User.findOne({ - where: { id }, - include: 'projects', - }, (err, result) => { - send(err, result); - }); - }; - - User.remoteMethod('getUserData', { - http: { path: '/:id', verb: 'get' }, - accepts: { arg: 'id', type: 'string', required: true }, - returns: [ - { arg: 'id', type: 'string', root: true }, - { arg: 'username', type: 'string', root: true }, - { arg: 'userpic', type: 'string', root: true }, - { arg: 'projects', type: ['object'], root: true }, - ], - }); -}; diff --git a/packages/xod-server/server/models/user.json b/packages/xod-server/server/models/user.json deleted file mode 100644 index 9d6a2b86..00000000 --- a/packages/xod-server/server/models/user.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "user", - "base": "User", - "strict": false, - "idInjection": true, - "hidden": [ - "email" - ], - "protected": [ - "email" - ], - "properties": { - "username": { - "type": "string", - "required": true - }, - "userpic": { - "type": "string" - } - }, - "validations": [], - "relations": { - "projects": { - "type": "hasMany", - "model": "project", - "foreignKey": "ownerId" - }, - "packages": { - "type": "hasMany", - "model": "package", - "foreignKey": "ownerId" - } - }, - "acls": [ - { - "accessType": "*", - "principalType": "ROLE", - "principalId": "$authenticated", - "permission": "ALLOW" - }, - { - "accessType": "EXECUTE", - "principalType": "ROLE", - "principalId": "$everyone", - "permission": "ALLOW", - "property": "signIn" - } - ], - "methods": {} -} diff --git a/packages/xod-server/server/server.js b/packages/xod-server/server/server.js deleted file mode 100644 index 6e5a5e00..00000000 --- a/packages/xod-server/server/server.js +++ /dev/null @@ -1,26 +0,0 @@ -const loopback = require('loopback'); -const boot = require('loopback-boot'); - -const app = module.exports = loopback(); - -// start the web server -app.start = () => app.listen(() => { - app.emit('started'); - const baseUrl = app.get('url').replace(/\/$/, ''); - console.log('Web server listening at: %s', baseUrl); - if (app.get('loopback-component-explorer')) { - const explorerPath = app.get('loopback-component-explorer').mountPath; - console.log('Browse your REST API at %s%s', baseUrl, explorerPath); - } -}); - -// Bootstrap the application, configure models, datasources and middleware. -// Sub-apps like REST API are mounted via boot scripts. -boot(app, __dirname, (err) => { - if (err) throw err; - - // start the server if `$ node server.js` - if (require.main === module) { - app.start(); - } -}); diff --git a/packages/xod-server/server/utils/methods.js b/packages/xod-server/server/utils/methods.js deleted file mode 100644 index 01d75229..00000000 --- a/packages/xod-server/server/utils/methods.js +++ /dev/null @@ -1,117 +0,0 @@ -const R = require('ramda'); - -const list = [ - { name: 'create', isStatic: true }, - { name: 'upsert', isStatic: true }, - { name: 'updateAll', isStatic: true }, - { name: 'updateAttributes', isStatic: false }, - { name: 'replaceOrCreate', isStatic: true }, - { name: 'createChangeStream', isStatic: true }, - - { name: 'find', isStatic: true }, - { name: 'findById', isStatic: true }, - { name: 'findOne', isStatic: true }, - - { name: 'deleteById', isStatic: true }, - - { name: 'count', isStatic: true }, - { name: 'exists', isStatic: true }, - - { name: 'confirm', isStatic: true }, - { name: 'login', isStatic: true }, - { name: 'logout', isStatic: true }, - { name: 'resetPassword', isStatic: true }, - - { name: '__count__', isStatic: false }, - { name: '__create__', isStatic: false }, - { name: '__delete__', isStatic: false }, - { name: '__destroyById__', isStatic: false }, - { name: '__findById__', isStatic: false }, - { name: '__get__', isStatic: false }, - { name: '__updateById__', isStatic: false }, -]; - -const disable = R.curry( - (methods, Model) => { - if (!R.isArrayLike(methods)) { return; } - - methods.forEach(method => { - Model.disableRemoteMethod(method.name, method.isStatic); - }); - } -); - -// :: ['methodName', ...] -> [{name: methodName, isStatic: boolean}, ...] -const get = R.map( - R.compose( - R.flip(R.find)(list), - R.propEq('name') - ) -); - -const reject = R.curry( - (methods, Model) => { - const listToDisable = get(methods); - - return disable(listToDisable, Model); - } -); - -const filter = R.curry( - (methodsToExpose, Model) => { - if (Model && Model.sharedClass) { - const publicMethods = methodsToExpose || []; - - const methods = Model.sharedClass.methods(); - const relationMethods = []; - const hiddenMethods = []; - - Object.keys(Model.definition.settings.relations).forEach(relation => { - relationMethods.push({ name: `__findById__${relation}`, isStatic: false }); - relationMethods.push({ name: `__destroyById__${relation}`, isStatic: false }); - relationMethods.push({ name: `__updateById__${relation}`, isStatic: false }); - relationMethods.push({ name: `__exists__${relation}`, isStatic: false }); - relationMethods.push({ name: `__link__${relation}`, isStatic: false }); - relationMethods.push({ name: `__get__${relation}`, isStatic: false }); - relationMethods.push({ name: `__create__${relation}`, isStatic: false }); - relationMethods.push({ name: `__update__${relation}`, isStatic: false }); - relationMethods.push({ name: `__destroy__${relation}`, isStatic: false }); - relationMethods.push({ name: `__unlink__${relation}`, isStatic: false }); - relationMethods.push({ name: `__count__${relation}`, isStatic: false }); - relationMethods.push({ name: `__delete__${relation}`, isStatic: false }); - }); - - methods.concat(relationMethods).forEach(method => { - const methodName = method.name; - if (publicMethods.indexOf(methodName) < 0) { - hiddenMethods.push(methodName); - Model.disableRemoteMethod(methodName, method.isStatic); - } - }); - } - } -); - -const rejectUnauthorized = (Model) => { - const acls = Model.definition.settings.acls || []; - let authorizedMethods = []; - - acls.forEach((acl) => { - if (acl.permission === 'ALLOW' && acl.property) { - if (Array.isArray(acl.property)) { - authorizedMethods = authorizedMethods.concat(acl.property); - } else if (acl.property !== '*') { - authorizedMethods.push(acl.property); - } - } - }); - - filter(authorizedMethods, Model); -}; - -module.exports = { - list, - reject, - rejectUnauthorized, - filter, -}; diff --git a/packages/xod-server/yarn.lock b/packages/xod-server/yarn.lock deleted file mode 100644 index 5be04262..00000000 --- a/packages/xod-server/yarn.lock +++ /dev/null @@ -1,2701 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -JSONStream@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.0.3.tgz#728544189438b7b9dd2184392581861ebabd9621" - dependencies: - jsonparse "~1.0.0" - through ">=2.2.7 <3" - -abbrev@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" - -accepts@^1.3.3, accepts@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" - dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" - -addressparser@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz#47afbe1a2a9262191db6838e4fd1d39b40821746" - -agent-base@2: - version "2.0.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e" - dependencies: - extend "~3.0.0" - semver "~5.0.1" - -ajv@^4.9.1: - version "4.11.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.6.tgz#947e93049790942b2a2d60a8289b28924d39f987" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" - dependencies: - arrify "^1.0.0" - micromatch "^2.1.5" - -aproba@^1.0.3: - version "1.1.1" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" - -are-we-there-yet@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.0 || ^1.1.13" - -argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-listener@^0.6.0: - version "0.6.5" - resolved "https://registry.yarnpkg.com/async-listener/-/async-listener-0.6.5.tgz#2c899d49a5e8a2dea10b9473915b4149206a1d68" - dependencies: - semver "^5.3.0" - shimmer "^1.1.0" - -async@^0.9.0, async@~0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - -async@^1.0.0, async@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9" - -async@^1.4.2, async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.0.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.3.0.tgz#1013d1051047dd320fe24e494d5c66ecaf6147d9" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -base64-js@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.2.tgz#024f0f72afa25b75f9c0ee73cd4f55ec1bed9784" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -bcryptjs@^2.1.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" - -binary-extensions@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" - -bl@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98" - dependencies: - readable-stream "^2.0.5" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird@^3.4.6: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" - -body-parser@^1.12.0, body-parser@^1.12.4: - version "1.17.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.1.tgz#75b3bc98ddd6e7e0d8ffe750dfaca5c66993fa47" - dependencies: - bytes "2.4.0" - content-type "~1.0.2" - debug "2.6.1" - depd "~1.1.0" - http-errors "~1.6.1" - iconv-lite "0.4.15" - on-finished "~2.3.0" - qs "6.4.0" - raw-body "~2.2.0" - type-is "~1.6.14" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -bops@0.0.6, bops@~0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/bops/-/bops-0.0.6.tgz#082d1d55fa01e60dbdc2ebc2dba37f659554cf3a" - dependencies: - base64-js "0.0.2" - to-utf8 "0.0.1" - -brace-expansion@^1.0.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -bson@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c" - -btoa@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.1.2.tgz#3e40b81663f81d2dd6596a4cb714a8dc16cfabe0" - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -buildmail@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/buildmail/-/buildmail-4.0.1.tgz#877f7738b78729871c9a105e3b837d2be11a7a72" - dependencies: - addressparser "1.0.1" - libbase64 "0.1.0" - libmime "3.0.0" - libqp "1.1.0" - nodemailer-fetch "1.6.0" - nodemailer-shared "1.1.0" - punycode "1.4.1" - -bytes@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" - -bytes@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" - -camelize@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b" - -canonical-json@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/canonical-json/-/canonical-json-0.0.4.tgz#6579c072c3db5c477ec41dc978fbf2b8f41074a3" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -chalk@^1.0.0, chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -charenc@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - -chokidar@^1.4.3: - version "1.6.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - dependencies: - colors "1.0.3" - -cliclopts@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/cliclopts/-/cliclopts-1.1.1.tgz#69431c7cb5af723774b0d3911b4c37512431910f" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-1.3.2.tgz#8a8f30ec670a6fdd64af52f1914b907d79ead5b5" - dependencies: - keypress "0.1.x" - -commondir@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-0.0.1.tgz#89f00fdcd51b519c578733fec563e6a6da7f5be2" - -component-emitter@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -compressible@~2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.10.tgz#feda1c7f7617912732b29bf8cf26252a20b9eecd" - dependencies: - mime-db ">= 1.27.0 < 2" - -compression@^1.0.3: - version "1.6.2" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" - dependencies: - accepts "~1.3.3" - bytes "2.3.0" - compressible "~2.0.8" - debug "~2.2.0" - on-headers "~1.0.1" - vary "~1.1.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -configstore@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" - dependencies: - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" - -connect@3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.4.1.tgz#a21361d3f4099ef761cda6dc4a973bb1ebb0a34d" - dependencies: - debug "~2.2.0" - finalhandler "0.4.1" - parseurl "~1.3.1" - utils-merge "1.0.0" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -content-disposition@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" - -content-security-policy-builder@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-1.0.0.tgz#11fd40c5cc298a6c725a35f9acf71e82ab5d3243" - dependencies: - dashify "^0.2.0" - -content-type@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" - -continuation-local-storage@^3.1.7: - version "3.2.0" - resolved "https://registry.yarnpkg.com/continuation-local-storage/-/continuation-local-storage-3.2.0.tgz#e19fc36b597090a5d4e4a3b2ea3ebc5e29694a24" - dependencies: - async-listener "^0.6.0" - emitter-listener "^1.0.1" - -cookie-parser@^1.3.4: - version "1.4.3" - resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.3.tgz#0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5" - dependencies: - cookie "0.3.1" - cookie-signature "1.0.6" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - -cookiejar@^2.0.1, cookiejar@^2.0.6: - version "2.1.1" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cors@^2.5.2, cors@^2.6.0, cors@^2.7.1: - version "2.8.3" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.3.tgz#4cf78e1d23329a7496b2fc2225b77ca5bb5eb802" - dependencies: - object-assign "^4" - vary "^1" - -crypt@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cvss@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cvss/-/cvss-1.0.2.tgz#df67e92bf12a796f49e928799c8db3ba74b9fcd6" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -dashify@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dashify/-/dashify-0.2.2.tgz#6a07415a01c91faf4a32e38d9dfba71f61cb20fe" - -debug@2, debug@2.6.1, debug@^2.1.0, debug@^2.1.3: - version "2.6.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" - dependencies: - ms "0.7.2" - -debug@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" - dependencies: - ms "0.7.2" - -debug@^2.0.0, debug@^2.1.1, debug@^2.1.2, debug@^2.2.0, debug@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" - dependencies: - ms "0.7.1" - -deep-extend@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -depd@1.1.0, depd@^1.0.0, depd@^1.1.0, depd@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -dns-prefetch-control@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz#60ddb457774e178f1f9415f0cabb0e85b0b300b2" - -dom-serializer@0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" - dependencies: - domelementtype "~1.1.1" - entities "~1.1.1" - -domelementtype@1, domelementtype@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" - -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - -domhandler@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" - dependencies: - domelementtype "1" - -domutils@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - dependencies: - dom-serializer "0" - domelementtype "1" - -dont-sniff-mimetype@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz#5932890dc9f4e2f19e5eb02a20026e5e5efc8f58" - -duplex@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/duplex/-/duplex-1.0.0.tgz#6abc5c16ec17e4c578578727126700590d3a2dda" - -duplexer@~0.0.3: - version "0.0.4" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.0.4.tgz#afcb7f1f8b8d74f820726171d5d64ac9e4a8ff20" - -duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - -duplexify@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" - dependencies: - end-of-stream "1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -ejs@^2.3.1, ejs@^2.4.2, ejs@^2.5.5: - version "2.5.6" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.6.tgz#479636bfa3fe3b1debd52087f0acb204b4f19c88" - -emitter-listener@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.0.1.tgz#b2499ea6e58230a52c268d5df261eecd9f10fe97" - dependencies: - shimmer "1.0.0" - -encodeurl@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" - -end-of-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" - dependencies: - once "~1.3.0" - -entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errorhandler@^1.3.4: - version "1.5.0" - resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.0.tgz#eaba64ca5d542a311ac945f582defc336165d9f4" - dependencies: - accepts "~1.3.3" - escape-html "~1.0.3" - -es6-promise@3.2.1, es6-promise@^3.0.2: - version "3.2.1" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -etag@~1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" - -event-stream@~3.3.0: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -eventemitter2@^2.1.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-2.2.2.tgz#407ea71c2020cd57538203ab7e7a6bdcfb7692d5" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -express@4.x, express@^4.12.2: - version "4.15.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.15.2.tgz#af107fc148504457f2dca9a6f2571d7129b97b35" - dependencies: - accepts "~1.3.3" - array-flatten "1.1.1" - content-disposition "0.5.2" - content-type "~1.0.2" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "2.6.1" - depd "~1.1.0" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.0" - finalhandler "~1.0.0" - fresh "0.5.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.1" - path-to-regexp "0.1.7" - proxy-addr "~1.1.3" - qs "6.4.0" - range-parser "~1.2.0" - send "0.15.1" - serve-static "1.12.1" - setprototypeof "1.0.3" - statuses "~1.3.1" - type-is "~1.6.14" - utils-merge "1.0.0" - vary "~1.1.0" - -extend@3, extend@^3.0.0, extend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -eyes@0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" - -filename-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -finalhandler@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.1.tgz#85a17c6c59a94717d262d61230d4b0ebe3d4a14d" - dependencies: - debug "~2.2.0" - escape-html "~1.0.3" - on-finished "~2.3.0" - unpipe "~1.0.0" - -finalhandler@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.1.tgz#bcd15d1689c0e5ed729b6f7f541a6df984117db8" - dependencies: - debug "2.6.3" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.1" - statuses "~1.3.1" - unpipe "~1.0.0" - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@1.0.0-rc4: - version "1.0.0-rc4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.0-rc4.tgz#05ac6bc22227b43e4461f488161554699d4f8b5e" - dependencies: - async "^1.5.2" - combined-stream "^1.0.5" - mime-types "^2.1.10" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -formidable@^1.0.17: - version "1.1.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9" - -forwarded@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" - -frameguard@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/frameguard/-/frameguard-1.1.0.tgz#e5de5e3ecb17ff84b697300b0e0d748a7d09047b" - dependencies: - lodash.isstring "4.0.1" - -fresh@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.29" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -g11n-pipeline@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/g11n-pipeline/-/g11n-pipeline-1.4.0.tgz#1b58b849d9e5f2cf0bb5c99a45577cec67920e2c" - dependencies: - swagger-client "^2.1.16" - -gauge@~2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.3.tgz#1c23855f962f17b3ad3d0dc7443f304542edfe09" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -getpass@^0.1.1: - version "0.1.6" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@^7.0.5: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -got@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" - dependencies: - duplexify "^3.2.0" - infinity-agent "^2.0.0" - is-redirect "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - nested-error-stacks "^1.0.0" - object-assign "^3.0.0" - prepend-http "^1.0.0" - read-all-stream "^3.0.0" - timed-out "^2.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -helmet-csp@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-1.1.0.tgz#558b23003fe786ff498d959e96ef2a91ecb35c82" - dependencies: - camelize "1.0.0" - content-security-policy-builder "1.0.0" - lodash.assign "4.0.4" - lodash.isfunction "3.0.8" - lodash.reduce "4.2.0" - lodash.some "4.2.0" - platform "1.3.1" - -helmet@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/helmet/-/helmet-1.3.0.tgz#e1b59c5484f7ac081a48cc7634139b4ec38cf8b5" - dependencies: - connect "3.4.1" - dns-prefetch-control "0.1.0" - dont-sniff-mimetype "1.0.0" - frameguard "1.1.0" - helmet-csp "1.1.0" - hide-powered-by "1.0.0" - hpkp "1.1.0" - hsts "1.0.0" - ienoopen "1.0.0" - nocache "1.0.0" - x-xss-protection "1.0.0" - -hide-powered-by@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.0.0.tgz#4a85ad65881f62857fc70af7174a1184dccce32b" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hpkp@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hpkp/-/hpkp-1.1.0.tgz#77bdff1f331847fb9f40839d00a45032baed4df4" - -hsts@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsts/-/hsts-1.0.0.tgz#98e1039ef7aba554057b6b0e32584c0b1143a414" - dependencies: - core-util-is "1.0.2" - -htmlparser2@^3.9.0: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" - dependencies: - domelementtype "^1.3.0" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^2.0.2" - -http-errors@~1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257" - dependencies: - depd "1.1.0" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -http-status@^0.2.2: - version "0.2.5" - resolved "https://registry.yarnpkg.com/http-status/-/http-status-0.2.5.tgz#976f91077ea7bfc15277cbcf8c80c4d5c51b49b0" - -httpntlm@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/httpntlm/-/httpntlm-1.6.1.tgz#ad01527143a2e8773cfae6a96f58656bb52a34b2" - dependencies: - httpreq ">=0.4.22" - underscore "~1.7.0" - -httpreq@>=0.4.22: - version "0.4.23" - resolved "https://registry.yarnpkg.com/httpreq/-/httpreq-0.4.23.tgz#0f460fe0c781029bcad7f47cad08de6cc1130212" - -https-proxy-agent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" - dependencies: - agent-base "2" - debug "2" - extend "3" - -iconv-lite@0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" - -ienoopen@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ienoopen/-/ienoopen-1.0.0.tgz#346a428f474aac8f50cf3784ea2d0f16f62bda6b" - -ignore-by-default@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -infinity-agent@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" - -inflection@^1.6.0, inflection@^1.7.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -ip@^1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - -ipaddr.js@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.0.2, is-buffer@~1.1.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" - -is-dotfile@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - -is-number@^2.0.2, is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - -is-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isemail@1.x.x, isemail@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -jayson@^1.2.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jayson/-/jayson-1.2.2.tgz#d28c602ecb8922c2a9fb3c1611f79fb584f193ec" - dependencies: - JSONStream "1.0.3" - commander "1.3.2" - eyes "0.1.8" - lodash "3.6.0" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -joi@^6.9.1: - version "6.10.1" - resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" - dependencies: - hoek "2.x.x" - isemail "1.x.x" - moment "2.x.x" - topo "1.x.x" - -js-yaml@^3.3.0: - version "3.8.3" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.3.tgz#33a05ec481c850c8875929166fe1beb61c728766" - dependencies: - argparse "^1.0.7" - esprima "^3.1.1" - -js2xmlparser@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-1.0.0.tgz#5a170f2e8d6476ce45405e04823242513782fe30" - -js2xmlparser@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-2.0.2.tgz#0da96cd7cc35b5e1dfe802beaff5cc38257a8ca4" - dependencies: - xmlcreate "^0.1.1" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -json-buffer@~2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-2.0.11.tgz#3e441fda3098be8d1e3171ad591bc62a33e2d55f" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonparse@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.0.0.tgz#2622f4e66c08e1aac7edbeb76053c9b7e1211f76" - -jsprim@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" - dependencies: - assert-plus "1.0.0" - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -keypress@0.1.x: - version "0.1.0" - resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.1.0.tgz#4a3188d4291b66b4f65edb99f806aa9ae293592a" - -kind-of@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" - dependencies: - is-buffer "^1.0.2" - -latest-version@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" - dependencies: - package-json "^1.0.0" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -libbase64@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-0.1.0.tgz#62351a839563ac5ff5bd26f12f60e9830bb751e6" - -libmime@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/libmime/-/libmime-3.0.0.tgz#51a1a9e7448ecbd32cda54421675bb21bc093da6" - dependencies: - iconv-lite "0.4.15" - libbase64 "0.1.0" - libqp "1.1.0" - -libqp@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" - -lodash-compat@^3.5.0: - version "3.10.2" - resolved "https://registry.yarnpkg.com/lodash-compat/-/lodash-compat-3.10.2.tgz#c6940128a9d30f8e902cd2cf99fd0cba4ecfc183" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - -lodash._baseeach@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-4.1.3.tgz#ca4984edc849c237b283fbe2ea7cf76d37fc9d67" - -lodash._baseiteratee@^4.0.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz#34a9b5543572727c3db2e78edae3c0e9e66bd102" - dependencies: - lodash._stringtopath "~4.8.0" - -lodash._basereduce@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._basereduce/-/lodash._basereduce-3.0.2.tgz#13fb98fbde162083a0c967f0605c32acfbb270b2" - -lodash._basetostring@~4.12.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz#9327c9dc5158866b7fa4b9d42f4638e5766dd9df" - -lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._createassigner@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" - dependencies: - lodash._bindcallback "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash.restparam "^3.0.0" - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - -lodash._stringtopath@~4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz#941bcf0e64266e5fc1d66fed0a6959544c576824" - dependencies: - lodash._basetostring "~4.12.0" - -lodash.assign@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.0.4.tgz#9d34aa2c7763e6f7dd7c25808d41813f3da09313" - dependencies: - lodash.keys "^4.0.0" - lodash.rest "^4.0.0" - -lodash.assign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" - dependencies: - lodash._baseassign "^3.0.0" - lodash._createassigner "^3.0.0" - lodash.keys "^3.0.0" - -lodash.defaults@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" - dependencies: - lodash.assign "^3.0.0" - lodash.restparam "^3.0.0" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - -lodash.isfunction@3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.8.tgz#4db709fc81bc4a8fd7127a458a5346c5cdce2c6b" - -lodash.isstring@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.keys@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" - -lodash.reduce@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.2.0.tgz#ff50805bd84104229106c92cf050417d5c73d025" - dependencies: - lodash._baseeach "^4.0.0" - lodash._baseiteratee "^4.0.0" - lodash._basereduce "^3.0.0" - -lodash.rest@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" - -lodash.restparam@^3.0.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - -lodash.some@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.2.0.tgz#cb44c3b0d375d56031da17a29b61e886b1e1c9f9" - dependencies: - lodash._baseeach "^4.0.0" - lodash._baseiteratee "^4.0.0" - -lodash@3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.6.0.tgz#5266a8f49dd989be4f9f681b6f2a0c55285d0d9a" - -lodash@^3.10.0, lodash@^3.10.1, lodash@^3.6.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.15.0: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -loopback-boot@^2.6.5: - version "2.24.0" - resolved "https://registry.yarnpkg.com/loopback-boot/-/loopback-boot-2.24.0.tgz#802c2b152f5452b8ceac1acaa5924d05119918ce" - dependencies: - async "~0.9.0" - commondir "0.0.1" - debug "^2.0.0" - lodash "^3.6.0" - semver "^4.1.0" - strong-globalize "^2.6.2" - toposort "^0.2.10" - -loopback-component-explorer@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/loopback-component-explorer/-/loopback-component-explorer-2.7.0.tgz#e27ef221a353ec782b15a9d0775e674e9af97c1b" - dependencies: - cors "^2.7.1" - debug "^2.2.0" - depd "^1.1.0" - lodash "^3.10.0" - loopback-swagger "^2.1.0" - strong-globalize "^2.6.2" - strong-swagger-ui "^21.0.0" - -loopback-connector-mongodb@^1.15.2: - version "1.18.1" - resolved "https://registry.yarnpkg.com/loopback-connector-mongodb/-/loopback-connector-mongodb-1.18.1.tgz#41bce31222720773e11d51f4e13f198352150781" - dependencies: - async "^1.0.0" - debug "^2.1.1" - loopback-connector "^2.2.0" - mongodb "^2.2.20" - strong-globalize "^2.6.0" - -loopback-connector-remote@^1.0.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/loopback-connector-remote/-/loopback-connector-remote-1.3.3.tgz#78fa724e4e29b4d7aa5dca55c9b34a0bcd7d63e0" - dependencies: - loopback-datasource-juggler "^2.8.0" - strong-remoting "^2.3.0" - -loopback-connector@^2.1.0, loopback-connector@^2.2.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/loopback-connector/-/loopback-connector-2.7.1.tgz#60afc244e31919976391a997838685781fa28e52" - dependencies: - async "^1.0.0" - bluebird "^3.4.6" - debug "^2.2.0" - msgpack5 "^3.4.1" - strong-globalize "^2.5.8" - -loopback-context@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/loopback-context/-/loopback-context-1.0.0.tgz#30c9b2315ceab03ec901a73942e7614cd93e9548" - dependencies: - continuation-local-storage "^3.1.7" - -loopback-datasource-juggler@^2.39.0, loopback-datasource-juggler@^2.8.0: - version "2.54.1" - resolved "https://registry.yarnpkg.com/loopback-datasource-juggler/-/loopback-datasource-juggler-2.54.1.tgz#f8e6424f2bc7a5b05a9dec1ab0262f921377db91" - dependencies: - async "~1.0.0" - debug "^2.1.1" - depd "^1.0.0" - inflection "^1.6.0" - loopback-connector "^2.1.0" - minimatch "^3.0.3" - qs "^3.1.0" - shortid "^2.2.6" - strong-globalize "^2.6.2" - traverse "^0.6.6" - uuid "^3.0.1" - -loopback-phase@^1.2.0, loopback-phase@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/loopback-phase/-/loopback-phase-1.4.1.tgz#d76e5ab0e6ec79cc5370d3c530f634871020bcee" - dependencies: - async "^0.9.0" - debug "^2.1.0" - strong-globalize "^2.6.2" - -loopback-swagger@^2.1.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/loopback-swagger/-/loopback-swagger-2.9.0.tgz#fe8de82e5fbb252677782ae5fd2dbda1a9205829" - dependencies: - async "^1.4.2" - debug "^2.2.0" - ejs "^2.5.5" - lodash "^3.10.1" - strong-globalize "^2.6.0" - underscore.string "~2.3.3" - -loopback@^2.22.0: - version "2.38.2" - resolved "https://registry.yarnpkg.com/loopback/-/loopback-2.38.2.tgz#515201ba91cc53fe811f140ade6d952da7cb3f6c" - dependencies: - async "^2.0.1" - bcryptjs "^2.1.0" - body-parser "^1.12.0" - canonical-json "0.0.4" - cookie-parser "^1.3.4" - debug "^2.1.2" - depd "^1.0.0" - ejs "^2.3.1" - errorhandler "^1.3.4" - express "^4.12.2" - inflection "^1.6.0" - isemail "^1.2.0" - loopback-connector-remote "^1.0.3" - loopback-context "^1.0.0" - loopback-phase "^1.2.0" - nodemailer "^2.5.0" - nodemailer-stub-transport "^1.0.0" - serve-favicon "^2.2.0" - stable "^0.1.5" - strong-globalize "^2.6.2" - strong-remoting "^2.21.0" - uid2 "0.0.3" - underscore.string "^3.0.3" - -lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - -mailcomposer@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/mailcomposer/-/mailcomposer-4.0.1.tgz#0e1c44b2a07cf740ee17dc149ba009f19cadfeb4" - dependencies: - buildmail "4.0.1" - libmime "3.0.0" - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - -md5@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" - dependencies: - charenc "~0.0.1" - crypt "~0.0.1" - is-buffer "~1.1.1" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -methods@^1.1.1, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -"mime-db@>= 1.27.0 < 2", mime-db@~1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" - -mime-types@^2.1.10, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.7: - version "2.1.15" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" - dependencies: - mime-db "~1.27.0" - -mime@1.3.4, mime@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -mktmpdir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/mktmpdir/-/mktmpdir-0.1.1.tgz#38ac820950d78efa0b9cddfc03ff7d5c5a786db9" - dependencies: - rimraf "~2.2.8" - -moment@2.x.x: - version "2.18.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" - -mongodb-core@2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.9.tgz#85aa71ee4fb716196e06b787557bf139f801daf5" - dependencies: - bson "~1.0.4" - require_optional "~1.0.0" - -mongodb@^2.2.20: - version "2.2.25" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.25.tgz#d3b25dad00eda2bdfcbc996210ba082ac686a6b6" - dependencies: - es6-promise "3.2.1" - mongodb-core "2.1.9" - readable-stream "2.1.5" - -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -ms@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-1.0.0.tgz#59adcd22edc543f7b5381862d31387b1f4bc9473" - -msgpack-js@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/msgpack-js/-/msgpack-js-0.3.0.tgz#030ec08c5956f9ca7d17d40a572d5396fec10923" - dependencies: - bops "~0.0.6" - -msgpack-stream@~0.0.10: - version "0.0.12" - resolved "https://registry.yarnpkg.com/msgpack-stream/-/msgpack-stream-0.0.12.tgz#28897d16cd7c0a7901eee16b9b6039d42e2fcc97" - dependencies: - bops "0.0.6" - msgpack-js "0.3.0" - through "2.3.4" - -msgpack5@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/msgpack5/-/msgpack5-3.4.1.tgz#350ef35899c6c8773710fd84d881ddd3340a8114" - dependencies: - bl "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.1" - -mux-demux@^3.7.9: - version "3.7.9" - resolved "https://registry.yarnpkg.com/mux-demux/-/mux-demux-3.7.9.tgz#35367718fd3601c80bce2eb762531576d7a4acef" - dependencies: - duplex "~1.0.0" - json-buffer "~2.0.4" - msgpack-stream "~0.0.10" - stream-combiner "0.0.2" - stream-serializer "~1.1.1" - through "~2.3.1" - xtend "~1.0.3" - -nan@^2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -nested-error-stacks@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" - dependencies: - inherits "~2.0.1" - -nocache@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/nocache/-/nocache-1.0.0.tgz#32065ef85f6e62a014542c2b2baf11bb3704df21" - -node-pre-gyp@^0.6.29: - version "0.6.34" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" - dependencies: - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "^2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -nodemailer-direct-transport@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz#e96fafb90358560947e569017d97e60738a50a86" - dependencies: - nodemailer-shared "1.1.0" - smtp-connection "2.12.0" - -nodemailer-fetch@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz#79c4908a1c0f5f375b73fe888da9828f6dc963a4" - -nodemailer-shared@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz#cf5994e2fd268d00f5cf0fa767a08169edb07ec0" - dependencies: - nodemailer-fetch "1.6.0" - -nodemailer-smtp-pool@2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/nodemailer-smtp-pool/-/nodemailer-smtp-pool-2.8.2.tgz#2eb94d6cf85780b1b4725ce853b9cbd5e8da8c72" - dependencies: - nodemailer-shared "1.1.0" - nodemailer-wellknown "0.1.10" - smtp-connection "2.12.0" - -nodemailer-smtp-transport@2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/nodemailer-smtp-transport/-/nodemailer-smtp-transport-2.7.2.tgz#03d71c76314f14ac7dbc7bf033a6a6d16d67fb77" - dependencies: - nodemailer-shared "1.1.0" - nodemailer-wellknown "0.1.10" - smtp-connection "2.12.0" - -nodemailer-stub-transport@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/nodemailer-stub-transport/-/nodemailer-stub-transport-1.1.0.tgz#11421d2d66b4ee6f405354f914c1f4641eb24b0d" - -nodemailer-wellknown@0.1.10: - version "0.1.10" - resolved "https://registry.yarnpkg.com/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz#586db8101db30cb4438eb546737a41aad0cf13d5" - -nodemailer@^2.5.0: - version "2.7.2" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-2.7.2.tgz#f242e649aeeae39b6c7ed740ef7b061c404d30f9" - dependencies: - libmime "3.0.0" - mailcomposer "4.0.1" - nodemailer-direct-transport "3.3.2" - nodemailer-shared "1.1.0" - nodemailer-smtp-pool "2.8.2" - nodemailer-smtp-transport "2.7.2" - socks "1.1.9" - -nodemon@^1.3.8: - version "1.11.0" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" - dependencies: - chokidar "^1.4.3" - debug "^2.2.0" - es6-promise "^3.0.2" - ignore-by-default "^1.0.0" - lodash.defaults "^3.1.2" - minimatch "^3.0.0" - ps-tree "^1.0.1" - touch "1.0.0" - undefsafe "0.0.3" - update-notifier "0.5.0" - -nodesecurity-npm-utils@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nodesecurity-npm-utils/-/nodesecurity-npm-utils-5.0.0.tgz#05aa30de30ca8c845c4048e94fd78e5e08b55ed9" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - dependencies: - abbrev "1" - -normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -npm-watch@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/npm-watch/-/npm-watch-0.1.8.tgz#18caddb1f769e21c896e6ba79168aed8e0da7eb8" - dependencies: - nodemon "^1.3.8" - through2 "^2.0.0" - -npmlog@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.1" - set-blocking "~2.0.0" - -nsp@^2.1.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/nsp/-/nsp-2.6.3.tgz#db05035953cda2ab3a571ee82fab84f4cb081d17" - dependencies: - chalk "^1.1.1" - cli-table "^0.3.1" - cvss "^1.0.0" - https-proxy-agent "^1.0.0" - joi "^6.9.1" - nodesecurity-npm-utils "^5.0.0" - path-is-absolute "^1.0.0" - rc "^1.1.2" - semver "^5.0.3" - subcommand "^2.0.3" - wreck "^6.3.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" - -once@^1.3.0, once@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - -optional@^0.1.3: - version v0.1.3 - resolved "https://registry.yarnpkg.com/optional/-/optional-0.1.3.tgz#f87537517b59a5e732cfd8f18e4f7eea7ab4761e" - -options@latest: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.0, osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -package-json@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" - dependencies: - got "^3.2.0" - registry-url "^3.0.0" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parseurl@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - dependencies: - through "~2.3" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -platform@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.1.tgz#492210892335bd3131c0a08dda2d93ec3543e423" - -posix-getopt@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/posix-getopt/-/posix-getopt-1.2.0.tgz#4aeeeb7dade66fca8a9365dda9f6b005741cb621" - -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -proxy-addr@~1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" - dependencies: - forwarded "~0.1.0" - ipaddr.js "1.3.0" - -ps-tree@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" - dependencies: - event-stream "~3.3.0" - -punycode@1.4.1, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -q@^1.4.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" - -qs@6.4.0, qs@^6.1.0, qs@^6.2.1, qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -qs@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-3.1.0.tgz#d0e9ae745233a12dc43fb4f3055bba446261153c" - -ramda@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.23.0.tgz#ccd13fff73497a93974e3e86327bfd87bd6e8e2b" - -randomatic@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" - dependencies: - is-number "^2.0.2" - kind-of "^3.0.2" - -range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -raw-body@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" - dependencies: - bytes "2.4.0" - iconv-lite "0.4.15" - unpipe "1.0.0" - -rc@^1.0.1, rc@^1.1.2, rc@^1.1.7: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" - dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" - -readable-stream@2.1.5, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.4, readable-stream@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" - dependencies: - is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" - -registry-url@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - dependencies: - rc "^1.0.1" - -remove-trailing-separator@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" - dependencies: - is-finite "^1.0.0" - -request@^2.55.0, request@^2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - -require_optional@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.0.tgz#52a86137a849728eb60a55533617f8f914f59abf" - dependencies: - resolve-from "^2.0.0" - semver "^5.1.0" - -resolve-from@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" - -rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" - dependencies: - glob "^7.0.5" - -rimraf@~2.2.8: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - -safe-buffer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" - -sax@>=0.6.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - dependencies: - semver "^5.0.3" - -semver@^4.1.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" - -semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -semver@~5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" - -send@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.15.1.tgz#8a02354c26e6f5cca700065f5f0cdeba90ec7b5f" - dependencies: - debug "2.6.1" - depd "~1.1.0" - destroy "~1.0.4" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.0" - fresh "0.5.0" - http-errors "~1.6.1" - mime "1.3.4" - ms "0.7.2" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.1" - -serve-favicon@^2.0.1, serve-favicon@^2.2.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.4.2.tgz#aed1d8de67d5b83192cf31fdf53d2ea29464363e" - dependencies: - etag "~1.8.0" - fresh "0.5.0" - ms "1.0.0" - parseurl "~1.3.1" - -serve-static@1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.1.tgz#7443a965e3ced647aceb5639fa06bf4d1bbe0039" - dependencies: - encodeurl "~1.0.1" - escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.15.1" - -set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - -shimmer@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.0.0.tgz#49c2d71c678360b802be18b278382d1cbb805c39" - -shimmer@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.1.0.tgz#97d7377137ffbbab425522e429fe0aa89a488b35" - -shortid@^2.2.6: - version "2.2.8" - resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - -smart-buffer@^1.0.4: - version "1.1.15" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz#7f114b5b65fab3e2a35aa775bb12f0d1c649bf16" - -smtp-connection@2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.12.0.tgz#d76ef9127cb23c2259edb1e8349c2e8d5e2d74c1" - dependencies: - httpntlm "1.6.1" - nodemailer-shared "1.1.0" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -socks@1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/socks/-/socks-1.1.9.tgz#628d7e4d04912435445ac0b6e459376cb3e6d691" - dependencies: - ip "^1.1.2" - smart-buffer "^1.0.4" - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - dependencies: - through "2" - -sprintf-js@^1.0.3, sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sse@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/sse/-/sse-0.0.6.tgz#3192461dfa38c78424dd9bf8ea025619a125aa10" - dependencies: - options latest - -sshpk@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stable@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" - -"statuses@>= 1.3.1 < 2", statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - -stream-combiner@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.2.tgz#dfe0e74675742565e76c6056788ea5c23bd97db4" - dependencies: - duplexer "~0.0.3" - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - dependencies: - duplexer "~0.1.1" - -stream-serializer@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/stream-serializer/-/stream-serializer-1.1.2.tgz#c1f97d15da251f594ae27d41ec8ada09a846e34f" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - -string-length@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" - dependencies: - strip-ansi "^3.0.0" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -strong-error-handler@^1.0.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/strong-error-handler/-/strong-error-handler-1.2.1.tgz#7edfe77a4244695154516c63d14ddb57361a03fc" - dependencies: - accepts "^1.3.3" - debug "^2.2.0" - ejs "^2.4.2" - http-status "^0.2.2" - js2xmlparser "^2.0.2" - strong-globalize "^2.6.7" - -strong-globalize@^2.5.8, strong-globalize@^2.6.0, strong-globalize@^2.6.2, strong-globalize@^2.6.6, strong-globalize@^2.6.7: - version "2.8.2" - resolved "https://registry.yarnpkg.com/strong-globalize/-/strong-globalize-2.8.2.tgz#5ff3e94f60100def324d2ce2b6692efa90bd73cf" - dependencies: - async "^1.5.2" - debug "^2.2.0" - esprima "^2.7.1" - estraverse "^4.1.1" - g11n-pipeline "^1.2.2" - htmlparser2 "^3.9.0" - lodash "^4.15.0" - md5 "^2.0.0" - mkdirp "^0.5.1" - mktmpdir "^0.1.1" - optional "^0.1.3" - os-locale "^1.4.0" - posix-getopt "^1.2.0" - word-count "^0.2.1" - xtend "^4.0.1" - yamljs "^0.2.8" - -strong-remoting@^2.21.0, strong-remoting@^2.3.0: - version "2.33.0" - resolved "https://registry.yarnpkg.com/strong-remoting/-/strong-remoting-2.33.0.tgz#7dd947c158be9fb6ecbbb2f528a26f4868c15794" - dependencies: - async "^2.0.1" - body-parser "^1.12.4" - cors "^2.6.0" - debug "^2.2.0" - depd "^1.1.0" - eventemitter2 "^2.1.0" - express "4.x" - inflection "^1.7.1" - jayson "^1.2.0" - js2xmlparser "^1.0.0" - loopback-phase "^1.3.0" - mux-demux "^3.7.9" - qs "^6.2.1" - request "^2.55.0" - sse "0.0.6" - strong-globalize "^2.6.6" - traverse "^0.6.6" - xml2js "^0.4.8" - -strong-swagger-ui@^21.0.0: - version "21.0.2" - resolved "https://registry.yarnpkg.com/strong-swagger-ui/-/strong-swagger-ui-21.0.2.tgz#212a900dfab5ae04e628e21b5800632bd0d9e347" - -subcommand@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/subcommand/-/subcommand-2.1.0.tgz#5e4ceca5a3779e3365b1511e05f866877302f760" - dependencies: - cliclopts "^1.1.0" - debug "^2.1.3" - minimist "^1.2.0" - xtend "^4.0.0" - -superagent@^2.2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-2.3.0.tgz#703529a0714e57e123959ddefbce193b2e50d115" - dependencies: - component-emitter "^1.2.0" - cookiejar "^2.0.6" - debug "^2.2.0" - extend "^3.0.0" - form-data "1.0.0-rc4" - formidable "^1.0.17" - methods "^1.1.1" - mime "^1.3.4" - qs "^6.1.0" - readable-stream "^2.0.5" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -swagger-client@^2.1.16: - version "2.2.21" - resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-2.2.21.tgz#5966be234772466e44716f65e32008166daeeba4" - dependencies: - btoa "^1.1.2" - cookiejar "^2.0.1" - js-yaml "^3.3.0" - lodash-compat "^3.5.0" - q "^1.4.1" - superagent "^2.2" - -tar-pack@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -through2@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -through@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.4.tgz#495e40e8d8a8eaebc7c275ea88c2b8fc14c56455" - -timed-out@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" - -to-utf8@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/to-utf8/-/to-utf8-0.0.1.tgz#d17aea72ff2fba39b9e43601be7b3ff72e089852" - -topo@1.x.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" - dependencies: - hoek "2.x.x" - -toposort@^0.2.10: - version "0.2.12" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-0.2.12.tgz#c7d2984f3d48c217315cc32d770888b779491e81" - -touch@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" - dependencies: - nopt "~1.0.10" - -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -traverse@^0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-is@~1.6.14: - version "1.6.15" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.15" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -uid2@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" - -undefsafe@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" - -underscore.string@^3.0.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.4.tgz#2c2a3f9f83e64762fdc45e6ceac65142864213db" - dependencies: - sprintf-js "^1.0.3" - util-deprecate "^1.0.2" - -underscore.string@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d" - -underscore@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -update-notifier@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" - dependencies: - chalk "^1.0.0" - configstore "^1.0.0" - is-npm "^1.0.0" - latest-version "^1.0.0" - repeating "^1.1.2" - semver-diff "^2.0.0" - string-length "^1.0.0" - -util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -utils-merge@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" - -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -uuid@^3.0.0, uuid@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" - -vary@^1, vary@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" - -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: - extsprintf "1.0.2" - -wide-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" - dependencies: - string-width "^1.0.1" - -word-count@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/word-count/-/word-count-0.2.2.tgz#699192fca6829fe936d41cb0d95db9248c570451" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -wreck@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/wreck/-/wreck-6.3.0.tgz#a1369769f07bbb62d6a378336a7871fc773c740b" - dependencies: - boom "2.x.x" - hoek "2.x.x" - -write-file-atomic@^1.1.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -x-xss-protection@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.0.0.tgz#898afb93869b24661cf9c52f9ee8db8ed0764dd9" - -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" - dependencies: - os-homedir "^1.0.0" - -xml2js@^0.4.8: - version "0.4.17" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" - dependencies: - sax ">=0.6.0" - xmlbuilder "^4.1.0" - -xmlbuilder@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" - dependencies: - lodash "^4.0.0" - -xmlcreate@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-0.1.1.tgz#a8df3b10d9d2d5704a604b92c0afc2620d708f61" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -xtend@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-1.0.3.tgz#3f5d937353cced8e085399a563fdb22541c2960a" - -yamljs@^0.2.8: - version "0.2.9" - resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.2.9.tgz#bd3bdaa62ac09deb2a2e1ce803eeb4217b52a82f" - dependencies: - argparse "^1.0.7" - glob "^7.0.5"