From 31beb2c51b05165c82828cbaa44cadba243e29f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Miko=C5=82ajek?= Date: Tue, 16 Feb 2021 11:38:40 +0100 Subject: [PATCH] Clean up the repo before working on Enso Docs (#6) --- .circleci/config.yml | 61 - .github/CODEOWNERS | 1 + .github/ISSUE_TEMPLATE/bug-report.md | 2 +- .github/ISSUE_TEMPLATE/epic.md | 2 +- .github/ISSUE_TEMPLATE/feature-request.md | 2 +- .github/ISSUE_TEMPLATE/task.md | 2 +- LICENSE | 2 +- README.md | 32 +- data/doc.json | 1 - data/stdLib_base_test.json | 1 - favicon.ico | Bin 2067 -> 0 bytes index.html | 63 - package-lock.json | 4686 --------------------- package.json | 18 - src/JsonToHtml.js | 348 -- src/TreeHelpers.js | 213 - styles/style.less | 457 -- webpack.config.js | 53 - 18 files changed, 29 insertions(+), 5915 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/CODEOWNERS delete mode 100644 data/doc.json delete mode 100644 data/stdLib_base_test.json delete mode 100644 favicon.ico delete mode 100644 index.html delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 src/JsonToHtml.js delete mode 100644 src/TreeHelpers.js delete mode 100644 styles/style.less delete mode 100644 webpack.config.js diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 164a5fa3..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,61 +0,0 @@ -version: 2 -jobs: - build: - working-directory: ~/website - docker: - - image: circleci/node:8.15-stretch - steps: - - checkout - - run: - name: setup-env - command: 'echo "NODE_ENV=production" > .env' - - restore_cache: - key: dependency-cache-{{ checksum "package.json" }} - - run: - name: npm-install - command: 'npm install' - - save_cache: - key: dependency-cache-{{ checksum "package.json" }} - paths: - - ./node_modules - - run: - name: webpack-build - command: 'NODE_ENV=production npm run webpack' - - persist_to_workspace: - root: . - paths: - - dist - deploy: - working-directory: ~/website - docker: - - image: circleci/node:8.15-stretch - steps: - - run: - name: install-awscli - command: | - sudo apt-get -y -qq update - sudo apt-get -y -qq install python3.5-dev - curl -O https://bootstrap.pypa.io/get-pip.py - sudo python3.5 get-pip.py - sudo pip install awscli --upgrade - - attach-workspace: - at: /tmp/workspace - - run: - name: s3-upload - command: | - export S3_BUCKET=$( [ $CIRCLE_BRANCH == "production" ] && echo "s3://reference.luna-lang.org" || echo "s3://reference-staging.luna-lang.org" ) - aws s3 sync /tmp/workspace/dist $S3_BUCKET --delete --acl public-read - -workflows: - version: 2 - build-deploy: - jobs: - - build - - deploy: - requires: - - build - filters: - branches: - only: - - master - - production diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..9e29a2ae --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @iamrecursion @BinarySoftware @joenash \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index c6f025d2..d31adf03 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -1,6 +1,6 @@ --- name: Bug Report -about: Report a bug in Luna's docs. +about: Report a bug in Enso's docs. title: '' labels: 'Type: Bug' assignees: '' diff --git a/.github/ISSUE_TEMPLATE/epic.md b/.github/ISSUE_TEMPLATE/epic.md index 5db6cd94..a9706ac4 100644 --- a/.github/ISSUE_TEMPLATE/epic.md +++ b/.github/ISSUE_TEMPLATE/epic.md @@ -1,6 +1,6 @@ --- name: Epic -about: Create a new epic for Luna's docs development. +about: Create a new epic for Enso's docs development. title: '' labels: '' assignees: '' diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md index 396293e4..ff12ec0c 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -1,6 +1,6 @@ --- name: Feature Request -about: Request a new feature for Luna's docs. +about: Request a new feature for Enso's docs. title: '' labels: 'Type: Enhancement' assignees: '' diff --git a/.github/ISSUE_TEMPLATE/task.md b/.github/ISSUE_TEMPLATE/task.md index ce93f093..ff55342c 100644 --- a/.github/ISSUE_TEMPLATE/task.md +++ b/.github/ISSUE_TEMPLATE/task.md @@ -1,6 +1,6 @@ --- name: Task -about: Create a new development task for Luna's docs. +about: Create a new development task for Enso's docs. title: '' labels: '' assignees: '' diff --git a/LICENSE b/LICENSE index fe35187f..7330ba3b 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2018 New Byte Order Sp. z O.O. + Copyright 2021 New Byte Order Sp. z O.O. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index 71a390e7..7bce843b 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,28 @@

- +
+ + Enso Visual Environmment + +
+
+ + Enso Language + +
+
+

-

Luna Docs

-

The documentation viewer for Luna, the visual and textual -functional programming language with a focus on productivity, collaboration -and development ergonomics.

-Visit https://www.luna-lang.org to learn more! +# Enso Standard Library Documentation Viewer -Work in progress -> moving all JS code to CoffeeScript, so stay tuned! -Latest update: CoffeeScript browser compiler is working \ No newline at end of file +This site hosts the documentation for Enso's standard library. +Documentation is drawn from [here](https://github.com/enso-org/enso/tree/main/distribution/std-lib). \ No newline at end of file diff --git a/data/doc.json b/data/doc.json deleted file mode 100644 index ecb1c274..00000000 --- a/data/doc.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"Std","documentation":null,"units":[{"name":"Std.Base","documentation":null,"classes":[{"methods":[{"name":"+","documentation":"Integer addition.\n\n> import Std.Base\n>\n> def main:\n> a = 5\n> b = 10\n> sum = a.+ b\n> None\n\n`that`: Integer to add to `self` value.\n`returns`: Sum of `self` and `that` values."},{"name":"*","documentation":"Integer multiplication.\n\n> import Std.Base\n>\n> def main:\n> a = 5\n> b = 10\n> multiplication = a.* b\n> None\n\n`that`: Integer to multiply by `self` value.\n`returns`: The product of the `self` and `that` values."},{"name":"-","documentation":"Integer subtraction.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> b = 5\n> substraction = a.- b\n> None\n\n`that`: Integer to substract from `self` value.\n`returns`: The result of subtracting the value of `that` from the value of `self`."},{"name":"/","documentation":"Integral division.\n`a./ b` returns the largest integer `c` such that `c * b <= a`.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> b = 3\n> division = a./ b\n> None\n\n`that`: Integer value to divide `self` value by it.\n`returns`: The result of dividing the value of `self` by `that`."},{"name":"%","documentation":"Division remainder `a.% b == a - (a / b) * b`\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> b = 3\n> remainder = a.% b\n> None\n\n`that`: Integer value to divide `self` value by it.\n`returns`: The value 'left over' after dividing `self` by `that` value."},{"name":">","documentation":"`a.> b` returns True when `a` is greater than `b`.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> b = 3\n> isGreater = a.> b\n> None\n\n`that`: Integer value to compare with `self` value.\n`returns`: `True` if `self` value is greater than `that`, `False` otherwise."},{"name":"<","documentation":"`a.< b` returns True when `a` is lesser than `b`.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> b = 3\n> isLesser = a.< b\n> None\n\n`that`: Integer value to compare with `self` value.\n`returns`: `True` if `self` value is lower than `that`, `False` otherwise."},{"name":"==","documentation":"Integer equality. `a.== b` returns True when `a` equals `b`.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> b = 3\n> isEqual = a.== b\n> None\n\n`that`: Integer value to compare with `self` value.\n`returns`: `True` if `self` value is equal to `that`, `False` otherwise."},{"name":"abs","documentation":"Absolute value.\n\n> import Std.Base\n>\n> def main:\n> a = - 10\n> b = a.abs\n> None\n\n`returns`: The absolute value of `self`."},{"name":"negate","documentation":"Integer negation.\n`a.negate == -1 * a`.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> negation = a.negate\n> None\n\n`returns`: Negation of `self` value."},{"name":"toInt","documentation":null},{"name":"toReal","documentation":"Promote an integer to a real number.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> b = a.toReal\n> None\n\n`returns`: `self` as Real value."},{"name":"toText","documentation":"Display an integer as text.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> txt = a.toText\n> None\n\n`returns`: `self` as a Text value."},{"name":"shortRep","documentation":"Alias for `toText`, for the purpose of pretty printing the number."},{"name":"toJSON","documentation":"JSON representation of an integer."},{"name":"miliseconds","documentation":"Returns a TimeInterval with the length of `self` miliseconds.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> ms = a.miliseconds\n> None\n\n`returns`: `self` as a TimeInterval value in miliseconds."},{"name":"seconds","documentation":"Returns a TimeInterval with the length of `self` seconds.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> s = a.seconds\n> None\n\n`returns`: `self` as TimeInterval value in seconds."},{"name":"minutes","documentation":"Returns a TimeInterval with the length of `self` minutes.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> min = a.minutes\n> None\n\n`returns`: `self` as TimeInterval value in minutes."},{"name":"hours","documentation":"Returns a TimeInterval with the length of `self` hours.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> h = a.hours\n> None\n\n`returns`: `self` as TimeInterval value in hours."},{"name":"days","documentation":"Returns a TimeInterval with the length of `self` days.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> d = a.days\n> None\n\n`returns`: `self` as TimeInterval value in days."},{"name":"weeks","documentation":"Returns a TimeInterval with the length of `self` weeks.\n\n> import Std.Base\n>\n> def main:\n> a = 10\n> w = a.weeks\n> None\n\n`returns`: `self` as TimeInterval value in weeks."},{"name":"pred","documentation":"Predecessor.\n\n> import Std.Base\n>\n> def main:\n> a = 5\n> b = a.pred\n> None\n\n`returns`: Predecessor of `self` value: `a.pred == a - 1`."},{"name":"succ","documentation":"Successor.\n\n> import Std.Base\n>\n> def main:\n> a = 5\n> b = a.succ\n> None\n\n`returns`: Successor of `self` value: `a.succ == a + 1`."},{"name":"upto","documentation":"Generates a list representing a range.\n\n> import Std.Base\n>\n> def main:\n> a = 3\n> b = 10\n> list = a.upto b\n> None\n\n> `i`: Stop value for the sequence of numbers.\n> `returns`: List of values from `self` to `i`.\n> For example above it will be `[3,4,5,6,7,8,9,10]`."},{"name":"shift","documentation":"`x.shift i` shifts x left by i bits if it is positive, or right by -i otherwise."},{"name":"toLQueryValue","documentation":null}],"name":"Int","documentation":"Class representing integer numbers of arbitrary size."},{"methods":[{"name":"==","documentation":null},{"name":"toInt","documentation":null},{"name":"toReal","documentation":null},{"name":"toText","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"coefficient","documentation":"Field getter"},{"name":"exponent","documentation":"Field getter"},{"name":"coefficient=","documentation":"Field setter"},{"name":"exponent=","documentation":"Field setter"}],"name":"Scientific","documentation":null},{"methods":[{"name":"+","documentation":"Floating point addition.\n\n> import Std.Base\n>\n> def main:\n> a = 5.0\n> b = 10.5\n> sum = a.+ b\n> None\n\n`that`: Floating point number to add to `self` value.\n`returns`: Sum of the `self` and `that` values."},{"name":"*","documentation":"Floating point multiplication.\n\n> import Std.Base\n>\n> def main:\n> a = 5.5\n> b = 10.0\n> multiplication = a.* b\n> None\n\n`that`: Floating point number to multiply by `self` value.\n`returns`: The product of the `self` and `that` values."},{"name":"-","documentation":"Floating point subtraction.\n\n> import Std.Base\n>\n> def main:\n> a = 10.3\n> b = 5.0\n> substraction = a.- b\n> None\n\n`that`: Floating point number to substract from `self` value.\n`returns`: The result of subtracting the value of `that` from the value of `self`."},{"name":"/","documentation":"Floating point division.\n\n> import Std.Base\n>\n> def main:\n> a = 10.4\n> b = 2.0\n> division = a./ b\n> None\n\n`that`: Floating point number value to divide `self` value by it.\n`returns`: The result of dividing the value of `self` by `that`."},{"name":">","documentation":"Tests whether `self` is greater than the argument.\n\n> import Std.Base\n>\n> def main:\n> a = 10.4\n> b = 3.76\n> isGreater = a.> b\n> None\n\n`that`: Floating point number value to compare with `self` value.\n`returns`: `True` if `self` value is greater than `that`, `False` otherwise."},{"name":"<","documentation":"Tests whether `self` is lesser than the argument.\n\n> import Std.Base\n>\n> def main:\n> a = 10.7\n> b = 3.45\n> isLesser = a.< b\n> None\n\n`that`: Floating point number value to compare with `self` value.\n`returns`: `True` if `self` value is smaller than `that`, `False` otherwise."},{"name":"==","documentation":"Tests whether `self` is equal to the argument.\n\n> import Std.Base\n>\n> def main:\n> a = 3.45\n> b = 3.45\n> isEqual = a.== b\n> None\n\n`that`: Floating point number value to compare with `self` value.\n`returns`: `True` if `self` value is equal to `that`, `False` otherwise."},{"name":"abs","documentation":"Absolute value.\n\n> import Std.Base\n>\n> def main:\n> a = - 3.45\n> b = a.abs\n> None\n\n`returns`: The absolute value of `self`."},{"name":"negate","documentation":"Negation.\n`a.negate == -1.0 * a`\n\n> import Std.Base\n>\n> def main:\n> a = 10.0\n> b = a.negate\n> None\n\n`returns`: Negation of `self` value."},{"name":"toReal","documentation":null},{"name":"toText","documentation":"Display a real number as text.\n\n> import Std.Base\n>\n> def main:\n> a = 10.0\n> txt = a.toText\n> None\n\n`returns`: `self` as a Text value."},{"name":"shortRep","documentation":"Displays a number as text.\n\n> import Std.Base\n>\n> def main:\n> a = 100.0\n> txt = a.toText\n> None\n\n`returns`: `self` as Text value."},{"name":"toJSON","documentation":"Converts a number to `JSON`.\n\n> import Std.Base\n>\n> def main:\n> a = 100.0\n> json = a.toJSON\n> None\n\n`returns`: `self` JSON value."},{"name":"toLQueryValue","documentation":null},{"name":"^","documentation":"Floating point exponentiation.\n\n> import Std.Base\n>\n> def main:\n> a = 10.4\n> b = 2.0\n> exp = a.^ b\n> None\n\n`that`: Exponent (floating point number).\n`returns`: Floating point number value, which is a result of\nexponentiation of `self` value to `that` power."},{"name":"log","documentation":"Floating point logarithm with given basis.\n\n> import Std.Base\n>\n> def main:\n> a = 10.4\n> b = 2.0\n> logarithm = a.log b\n> None\n\n`base`: Logarithm base (floating point number).\n`returns`: Floating point number value, result for logarithm\ncalculation of `self` value to `base`."},{"name":"round","documentation":"Round a number to the given precision – the result is a real number\nwith a number of digits after the decimal dot equal to the argument.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> b = a.round 2\n> None\n\n`prec`: Integer value describing the operation presicion.\n`returns`: Floating point number value which is a `self` value rounded\nwith number of digits after decimal dot equal with `prec` value."},{"name":"floor","documentation":"Round a number down to the closest `Int`\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> b = a.floor\n> None\n\n`returns`: The largest integer value less than or equal to `self` value."},{"name":"ceiling","documentation":"Round a number up to the closest `Int`\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> b = a.ceiling\n> None\n\n`returns`: The smallest integer value greater than or equal to `self` value."},{"name":"sin","documentation":"Sine function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> sine = a.sin\n> None\n\n`returns`: The sine of `self` in radians."},{"name":"cos","documentation":"Cosine function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> cosine = a.cos\n> None\n\n`returns`: The cosine of `self` in radians."},{"name":"tan","documentation":"Tangent function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> tangent = a.tan\n> None\n\n`returns`: The tangent of `self` in radians."},{"name":"sinh","documentation":"Hyperbolic sine function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> hyperbolicSine = a.sinh\n> None\n\n`returns`: The hyperbolic sine of `self` in radians."},{"name":"cosh","documentation":"Hyperbolic cosine function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> hyperbolicCosine = a.cosh\n> None\n\n`returns`: The hyperbolic cosine of `self` in radians."},{"name":"tanh","documentation":"Hyperbolic tangent function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> hyperbolicTangent = a.tanh\n> None\n\n`returns`: The hyperbolic tangent of `self` in radians."},{"name":"asin","documentation":"Inverse sine function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> arcSine = a.asin\n> None\n\n`returns`: The arc sine of `self` in radians."},{"name":"acos","documentation":"Inverse cosine function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> arcCosine = a.acos\n> None\n\n`returns`: The arc cosine of `self` in radians."},{"name":"atan","documentation":"Inverse tangent function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> arcTangent = a.atan\n> None\n\n`returns`: The arc tangent of `self` in radians."},{"name":"asinh","documentation":"Inverse hyperbolic sine function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> arcHyperbolicSine = a.asinh\n> None\n\n`returns`: The inverse hyperbolic sine of `self` in radians."},{"name":"acosh","documentation":"Inverse hyperbolic cosine function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> arcHyperbolicCosine = a.acosh\n> None\n\n`returns`: The inverse hyperbolic cosine of `self` in radians."},{"name":"atanh","documentation":"Inverse hyperbolic tangent function.\n\n> import Std.Base\n>\n> def main:\n> a = 10.75876\n> arcHyperbolicTangent = a.atanh\n> None\n\n`returns`: The inverse hyperbolic tangent of `self` in radians."},{"name":"exp","documentation":"Natural exponential function.\n\n> import Std.Base\n>\n> def main:\n> a = 100.0\n> b = a.exp\n> None\n\n`returns`: The constant e = 2.71828... to the power of `self`."},{"name":"ln","documentation":"Natural logarithm function.\n\n> import Std.Base\n>\n> def main:\n> a = 100.0\n> b = a.ln\n> None\n\n`returns`: `self` value logarithm to the base of the mathematical constant\ne = 2.71828... ."},{"name":"sqrt","documentation":"Square root.\n\n> import Std.Base\n>\n> def main:\n> a = 100.0\n> b = a.sqrt\n> None\n\n`returns`: Square root of `self` value."}],"name":"Real","documentation":"Class representing floating point numbers."},{"methods":[{"name":"+","documentation":"Concatenates two texts together.\n\n> import Std.Base\n>\n> def main:\n> a = \"foo\"\n> b = \"bar\"\n> sum = a.+ b\n> None\n\n`that`: Text value to concatenate with `self`.\n`returns`: The result of concatenation `self` with `that` value."},{"name":"/","documentation":"Append a path segment to the given `Text`. The new segment will use\na path separator specific for current platform.\nThis is the recommended way of constructing paths.\n\n`segment`: Path segment to be appended to `self`.\n`returns`: Path resulting from appending `segment` to `self`."},{"name":">","documentation":"Tests whether `self` is greater than the argument in lexicographical order.\n\n> import Std.Base\n>\n> def main:\n> a = \"foo\"\n> b = \"bar\"\n> isGreater = a.> b\n> None\n\n`that`: Text value to compare with `self`.\n`returns`: `True` if `self` is greater than `that` in lexicographical order,\n`False` otherwise."},{"name":"<","documentation":"Tests whether `self` is lesser than the argument in lexicographical order.\n\n> import Std.Base\n>\n> def main:\n> a = \"foo\"\n> b = \"bar\"\n> isLesser = a.< b\n> None\n\n`that`: Text value to compare with `self`.\n`returns`: `True` if `self` is lesser than `that` in lexicographical order,\n`False` otherwise."},{"name":"==","documentation":"Tests wheter two texts are equal.\n\n> import Std.Base\n>\n> def main:\n> a = \"foo\"\n> b = \"bar\"\n> isEqual = a.== b\n> None\n\n`that`: Text value to compare with `self`.\n`returns`: `True` if `self` is equal to `that` in lexicographical order,\n`False` otherwise."},{"name":"toInt","documentation":"Reinterprets the string as an integer in decimal system.\nThrows an error when the text does not represent a valid integer.\n\n> import Std.Base\n>\n> def main:\n> a = \"10\"\n> int = a.toInt\n> None\n\n`returns`: Integer value or error."},{"name":"toReal","documentation":"Reinterprets the string as a real number in decimal system.\nThrows an error when the text does not represent a valid real number.\n\n> import Std.Base\n>\n> def main:\n> a = \"10.0\"\n> real = a.toReal\n> None\n\n`returns`: Floating point number value or error."},{"name":"toText","documentation":"Identity function, included for consistency with other types."},{"name":"shortRep","documentation":"Truncates the text for optimal display in interactive mode."},{"name":"toJSON","documentation":"Converts the text to `JSON`."},{"name":"toLQueryValue","documentation":null},{"name":"isEmpty","documentation":"Tests whether the text is empty (equal to `\"\"`).\n\n> import Std.Base\n>\n> def main:\n> a = \"foo\"\n> empty = a.isEmpty\n> None\n\n`returns`: `True` if `self` is empty, `False` otherwise."},{"name":"length","documentation":"Measures the text length.\n\n> import Std.Base\n>\n> def main:\n> a = \"foo\"\n> len = a.length\n> None\n\n`returns`: Integer value with text length."},{"name":"startsWith","documentation":"Tests whether the argument is a prefix of `self`.\n\n> import Std.Base\n>\n> def main:\n> a = \"foo\"\n> b = \"fo\"\n> c = a.startsWith b\n> None\n\n`p`: Prefix to check.\n`returns`: `True` if `self` is starting with `p`, `False` otherwise."},{"name":"isPrefixOf","documentation":"Tests whether `self` is a prefix of the argument.\n\n> import Std.Base\n>\n> def main:\n> a = \"f\"\n> b = \"foo\"\n> c = a.isPrefixOf b\n> None\n\n`t`: Text value to check.\n`returns`: `True` if `t` is starting with `self`, `False` otherwise."},{"name":"endsWith","documentation":"Tests whether the argument is a suffix of `self`.\n\n> import Std.Base\n>\n> def main:\n> a = \"foo\"\n> b = \"o\"\n> c = a.endsWith b\n> None\n\n`p`: Text value to check.\n`returns`: `True` if `self` is ending with `p`, `False` otherwise."},{"name":"reverse","documentation":"Reverses the text.\n\n> import Std.Base\n>\n> def main:\n> a = \"FooBarBaz\"\n> rev = a.reverse\n> None\n\n`returns`: Reversed `self` text."},{"name":"isSuffixOf","documentation":"Tests whether `self` is a suffix of the argument.\n\n> import Std.Base\n>\n> def main:\n> a = \"a\"\n> b = \"foo\"\n> c = a.isSuffixOf b\n> None\n\n`t`: Text value to check.\n`returns`: `True` if `t` is ending with `self`, `False` otherwise."},{"name":"characters","documentation":"Returns a list of all characters in the text.\n\n> import Std.Base\n>\n> def main:\n> a = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\"\n> b = a.characters\n> None\n\n`returns`: List of all characters in the text."},{"name":"words","documentation":"Returns a list of all words (white-space delimited) in the text.\n\n> import Std.Base\n>\n> def main:\n> a = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\"\n> b = a.words\n> None\n\n`returns`: List of all words in the text."},{"name":"lines","documentation":"Returns a list of all lines (newline delimited) in the text.\n\n> import Std.Base\n>\n> def main:\n> a = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\"\n> b = a.lines\n> None\n\n`returns`: List of all words in the text."},{"name":"lowercase","documentation":"Changes all characters to lowercase.\n\n> import Std.Base\n>\n> def main:\n> a = \"FooBarBaz\"\n> b = a.lowercase\n> None\n\n`returns`: `self` text written with lowercase."},{"name":"uppercase","documentation":"Changes all characters to uppercase.\n\n> import Std.Base\n>\n> def main:\n> a = \"FooBarBaz\"\n> b = a.uppercase\n> None\n\n`returns`: `self` text written with uppercase."},{"name":"escapeJSON","documentation":null},{"name":"toBinary","documentation":"Convert the text to bare binary data."},{"name":"safeToInt","documentation":"Tries to reinterpret the string as an integer in decimal system.\nReturns `Nothing` when the text does not represent a valid integer.\n\n> import Std.Base\n>\n> def main:\n> a = \"10\"\n> maybeInt = a.safeToInt\n> None\n\n`returns`: Maybe Integer value."},{"name":"safeToReal","documentation":"Tries to reinterpret the string as a real number in decimal system.\nReturns `Nothing` when the text does not represent a valid real number.\n\n> import Std.Base\n>\n> def main:\n> a = \"10.0\"\n> maybeReal = a.safeToReal\n> None\n\n`returns`: Maybe floating point number value."},{"name":"addPathSegment","documentation":null}],"name":"Text","documentation":"The basic class for representing Texts."},{"methods":[{"name":"+","documentation":"Concatenates two pieces of binary data together."},{"name":"==","documentation":"Checks whether two pieces of data are equal."},{"name":"toText","documentation":"Encodes the binary object as an UTF-8 `Text`. Throws an error when the data does not represent a valid text."},{"name":"shortRep","documentation":"Displays a short representation of `Binary` object for use in interactive mode."},{"name":"length","documentation":"Measures the length in bytes of binary object."},{"name":"toBinary","documentation":"Identity function, included for consistency with other classes."},{"name":"take","documentation":"Returns a prefix consisting of the given number of bytes."},{"name":"drop","documentation":"Returns a suffix resulting from dropping the given number of bytes at the beginning."}],"name":"Binary","documentation":"Class for representing arbitrary binary data. Does not attempt to interpret\nthe data in any way."},{"methods":[{"name":"+","documentation":"Complex number addition.\n\n> import Std.Base\n>\n> def main:\n> a = Complex 10.0 3.25\n> b = Complex 5.0 2.25\n> sum = a.+ b\n> None\n\n`that`: Complex number value to add to `self`.\n`returns`: Complex number value resulting from the addition `that`\nto `self` number."},{"name":"*","documentation":"Complex number multiplication.\n\n> import Std.Base\n>\n> def main:\n> a = Complex 10.0 3.25\n> b = Complex 5.0 2.25\n> multiplication = a.* b\n> None\n\n`that`: Complex number value to multiply by `self`.\n`returns`: Complex number value resulting from the multiplication `self`\nby `that` number."},{"name":"toText","documentation":"Displays a complex number as text.\n\n> import Std.Base\n>\n> def main:\n> a = Complex 10.0 3.25\n> txt = a.toText\n> None\n\n`returns`: Text value for `self` complex number."},{"name":"shortRep","documentation":"Displays a complex number as text.\n\n> import Std.Base\n>\n> def main:\n> a = Complex 10.0 3.25\n> b = a.shortRep\n> None\n\n`returns`: Text value for `self` complex number."},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"real","documentation":"Field getter"},{"name":"imaginary","documentation":"Field getter"},{"name":"modulus","documentation":"Complex number modulus.\n\n> import Std.Base\n>\n> def main:\n> a = Complex 10.0 3.25\n> b = a.modulus\n> None\n\n`returns`: Floating point number representing the absolute value of\nthe `self` complex number."},{"name":"modulusSquared","documentation":"Complex number squared modulus.\n\n> import Std.Base\n>\n> def main:\n> a = Complex 10.0 3.25\n> b = a.modulusSquared\n> None\n\n`returns`: Floating point number representing the square absolute value of\nthe `self` complex number."},{"name":"real=","documentation":"Field setter"},{"name":"imaginary=","documentation":"Field setter"}],"name":"Complex","documentation":"Class representing complex numbers over `Real` numbers."},{"methods":[{"name":"==","documentation":"Equality of booleans, semantically the same as logical equivalence.\n\n> import Std.Base\n>\n> def main:\n> a = True\n> b = False\n> isEqual = a.== b\n> None\n\n`that`: Boolean value.\n`returns`: `True` if both operands are equal, `False` otherwise."},{"name":"toText","documentation":"Represents logical values as `Text`.\n\n> import Std.Base\n>\n> def main:\n> a = True\n> b = a.toText\n> None\n\n`returns`: `self` as `Text` value."},{"name":"shortRep","documentation":"Represents logical values as `Text`.\n\n> import Std.Base\n>\n> def main:\n> a = True\n> b = a.shortRep\n> None\n\n`returns`: `self` as Text value."},{"name":"toJSON","documentation":"Converts a boolean value to `JSON`.\n\n> import Std.Base\n>\n> def main:\n> a = True\n> b = a.toJSON\n> None\n\n`returns`: `self` as `JSON` value."},{"name":"and","documentation":"Boolean and.\n\n> import Std.Base\n>\n> def main:\n> a = True\n> b = False\n> c = a.and b\n> None\n\n`that`: Boolean value.\n`returns`: `True` if both operands are `True`, `False` in any other case."},{"name":"or","documentation":"Boolean or.\n\n> import Std.Base\n>\n> def main:\n> a = True\n> b = False\n> c = a.or b\n> None\n\n`that`: Boolean value.\n`returns`: `False` if both operands are `False`, `True` in any other case."},{"name":"not","documentation":"Logical negation.\n\n> import Std.Base\n>\n> def main:\n> a = True\n> b = a.negate\n> None\n\n`returns`: Negation of `self` value."}],"name":"Bool","documentation":"Class representing boolean values"},{"methods":[{"name":"toText","documentation":"Represents a `None` value as `Text`."},{"name":"shortRep","documentation":"Represents a `None` value as `Text`."},{"name":"toJSON","documentation":"Converts a `None` value into `JSON`."},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null}],"name":"None","documentation":"Class representing the lack of interesting value.\nMostly used for actions executed solely for their side effects, without any interesting return value."},{"methods":[{"name":"<","documentation":"Lexicographic comparison. `(a1, a2) < (b1, b2)` if a1 < b1\nor a1 == b1 and a2 < b2.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2)\n> b = (2, 2)\n> isLesser = a.< b\n> None\n\n`that`: Tuple to compare with `self`.\n`returns`: `True` if `self` is lesser than `that`, `False` otherwise."},{"name":"==","documentation":"Tuple equality. Two tuples are equal when their respective elements are equal.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2)\n> b = (2,2)\n> isEqual = a.== b\n> None\n\n`that`: Tuple to compare with `self`.\n`returns`: `True` if `self` and `that` are equal, `False` otherwise."},{"name":"toText","documentation":"Text representation of a tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2)\n> b = a.toText\n> None\n\n`returns`: Text representation of `self` value."},{"name":"shortRep","documentation":"Short Text representation of a pair.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2)\n> b = a.shortRep\n> None\n\n`returns`: Text representation of `self` value."},{"name":"toJSON","documentation":"Converts a pair into a `JSON` object."},{"name":"first","documentation":"Plucks the first element of a tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2)\n> b = a.first\n> None\n\n`returns`: First element of a tuple."},{"name":"second","documentation":"Plucks the second element of a tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2)\n> b = a.second\n> None\n\n`returns`: second element of a tuple."},{"name":"map","documentation":"Maps a function over both elements of a tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2)\n> f = + 3\n> b = a.map f\n> None\n\n`f`: Function to map over each alement of a tuple.\n`returns`: Tuple with values being a result of mapping function `f` over all elements\nof `self` value."}],"name":"Tuple2","documentation":"Class representing pairs of elements of arbitrary type."},{"methods":[{"name":"==","documentation":"Triple equality. Two triples are equal when their respective elements are equal.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3)\n> b = (2, 2, 3)\n> isEqual = a.== b\n> None\n\n`that`: Tuple to compare with `self`.\n`returns`: `True` if `self` and `that` are equal, `False` otherwise."},{"name":"toText","documentation":"Text representation of a triple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3)\n> b = a.toText\n> None\n\n`returns`: Text representation of `self` value."},{"name":"shortRep","documentation":"Short Text representation of a triple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3)\n> b = a.shortRep\n> None\n\n`returns`: Text representation of `self` value."},{"name":"toJSON","documentation":"Converts a triple into a `JSON` object."},{"name":"first","documentation":"Plucks the first element of a triple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3)\n> b = a.first\n> None\n\n`returns`: First element of a tuple."},{"name":"second","documentation":"Plucks the second element of a triple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3)\n> b = a.second\n> None\n\n`returns`: Second element of a tuple."},{"name":"map","documentation":"Maps a function over all elements of a triple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3)\n> f = + 3\n> b = a.map f\n> None\n\n`f`: Function to map over each alement of a tuple.\n`returns`: Tuple with values being a result of mapping function `f` over all elements\nof `self` value."},{"name":"third","documentation":"Plucks the third element of a triple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3)\n> b = a.third\n> None\n\n`returns`: Third element of a tuple."}],"name":"Tuple3","documentation":"Class representing triples of elements of arbitrary type."},{"methods":[{"name":"==","documentation":"4-tuple equality. Two 4-tuples are equal when their respective elements are equal.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3, 4)\n> b = (2, 2, 3, 4)\n> isEqual = a.== b\n> None\n\n`that`: Tuple to compare with `self`.\n`returns`: `True` if `self` and `that` are equal, `False` otherwise."},{"name":"toText","documentation":"Text representation of a 4-tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3, 4)\n> b = a.toText\n> None\n\n`returns`: Text representation of `self` value."},{"name":"shortRep","documentation":"Short text representation of a 4-tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3, 4)\n> b = a.shortRep\n> None\n\n`returns`: Text representation of `self` value."},{"name":"toJSON","documentation":"Converts a 4-tuple to a `JSON` object."},{"name":"first","documentation":"Plucks the first element of a 4-tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3, 4)\n> b = a.first\n> None\n\n`returns`: First element of a tuple."},{"name":"second","documentation":"Plucks the second element of a 4-tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3, 4)\n> b = a.second\n> None\n\n`returns`: Second element of a tuple."},{"name":"map","documentation":"Maps a function over all elements of a 4-tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3, 4)\n> f = + 3\n> b = a.map f\n> None\n\n`f`: Function to map over each alement of a tuple.\n`returns`: Tuple with values being a result of mapping function `f` over all elements of `self` value."},{"name":"third","documentation":"Plucks the third element of a 4-tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3, 4)\n> b = a.third\n> None\n\n`returns`: Third element of a tuple."},{"name":"fourth","documentation":"Plucks the fourth element of a 4-tuple.\n\n> import Std.Base\n>\n> def main:\n> a = (1, 2, 3, 4)\n> b = a.fourth\n> None\n\n`returns`: Fourth element of a tuple."}],"name":"Tuple4","documentation":"Class representing 4-tuples of elements of arbitrary type."},{"methods":[{"name":"==","documentation":"Checks the equality of two `Maybe` values.\n\n> import Std.Base\n>\n> def main:\n> a = Just \"foo\"\n> b = Just \"bar\"\n> isEqual = a.== b\n> None\n\n`that`: `Maybe` value to compare with `self`.\n`returns`: `True` when both values are `Nothing` or when they are `Just`\nand the values inside are equal."},{"name":"toText","documentation":"Text representation of a `Maybe` object.\n\n> import Std.Base\n>\n> def main:\n> a = Just \"foo\"\n> b = a.toText\n> None\n\n`returns`: Text representation of `self` value."},{"name":"shortRep","documentation":"Short text representation of a `Maybe` object.\n\n> import Std.Base\n>\n> def main:\n> a = Just \"foo\"\n> b = a.shortRep\n> None\n\n`returns`: Text representation of `self` value."},{"name":"toJSON","documentation":"Converts a `Maybe` object to `JSON`."},{"name":"map","documentation":"Takes a function `f` and returns `Just (f a)` when called on `Just a`\nand `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = Just 8\n> f = + 3\n> b = a.map f\n> None\n\n`f`: Function to map.\n`returns`: `Just (f a)` when `self` is `Just a` and `Nothing` otherwise."},{"name":"toList","documentation":"Cast a `Maybe` value into a `List`.\nReturns an empty list when the value is missing and a singleton list otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = Just \"foo\"\n> list = a.toList\n> None\n\n`returns`: An empty list when the value is missing and a singleton list otherwise."},{"name":"get","documentation":"Returns the value when called on `Just`, throws an error otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = Just \"foo\"\n> b = a.get\n> None\n\n`returns`: The value when called on `Just`, an error otherwise."},{"name":"withDefault","documentation":"Returns the value when called on `Just` or the provided default value\nwhen called on a `Nothing`.\n\n> import Std.Base\n>\n> def main:\n> a = Nothing\n> b = a.withDefault \"bar\"\n> None\n\n`defVal`: Default value to return when `self` is `Nothing`.\n`returns`: The value when called on `Just` or `defVal` otherwise."},{"name":"isJust","documentation":"Returns `True` when called on a `Just` and `False` otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = Nothing\n> b = a.isJust\n> None\n\n`returns`: `True` if `self` is `Just`, `False` otherwise."},{"name":"isNothing","documentation":"Returns `True` when called on a `Nothing` and `False` otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = Nothing\n> b = a.isNothing\n> None\n\n`returns`: `True` if `self` is `Nothing`, `False` otherwise."},{"name":"flatMap","documentation":"Takes a function returning `Maybe`, maps it over `self` and flattens the result.\n\n> import Std.Base\n>\n> def main:\n> a = Just [8, 10, 12]\n> b = a.flatMap head\n> None\n\n`f`: Function to map.\n`returns`: `f a` when `self` is `Just a` and `Nothing` otherwise."},{"name":"each","documentation":"A variant of `map` that executes any effects performed by the function.\n\n> import Std.Base\n>\n> def main:\n> a = Just [8, 10, 12]\n> f = + 3\n> b = a.each f\n> None\n\n`f`: Function to map.\n`returns`: `Just (f a)` when `self` is `Just a` and `Nothing` otherwise."},{"name":"flatten","documentation":"Flattens nested `Maybe` values. Returns `Just a` when called on `Just (Just a)`\nand `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = Just (Just \"foo\")\n> b = a.flatten\n> None\n\n`returns`: `Just a` when `self` is `Just (Just a)` and `Nothing` otherwise."}],"name":"Maybe","documentation":"The basic optional type in Luna. The value of this class can either be a `Nothing`\n(representing the lack of value) or a `Just value` (in the case value is present).\nThis is a type-safe substitute for nullable values known from other languages."},{"methods":[{"name":"==","documentation":"Checks whether two `Either` values are equal.\nReturns `True` when both values are `Left` or both are `Right`\nand when the contained values are equal."},{"name":"toText","documentation":"Text representation of an `Either` value."},{"name":"shortRep","documentation":"Short text representation of an `Either` value."},{"name":"toJSON","documentation":"Converts an `Either` value into a `JSON` object."},{"name":"map","documentation":"Runs the provided function on a `Right` value and returns `Left` values unchanged.\n`a.map f` is the same as `a.either id f`."},{"name":"flatMap","documentation":"Takes a function returning an `Either` and runs it when run on a `Right`.\nReturns the `Left` value unchangeds."},{"name":"either","documentation":"Takes two functions returning the same type, calls the first when called\non `Left` and the second for `Right`."},{"name":"toMaybe","documentation":"Convert an `Either a b` into a `Maybe` by turning a `Left` into `Nothing` (thus forgetting the value in this case) and a `Right a` into `Just a`."},{"name":"isLeft","documentation":"Checks whether the value is `Left a`."},{"name":"isRight","documentation":"Checks whether the value is `Right a`."},{"name":"left","documentation":"Returns `a` when called on a `Left a`, throws an error otherwise."},{"name":"right","documentation":"Returns `a` when called on a `Right a`, throws an error otherwise."}],"name":"Either","documentation":"`Either` represents an alternative of two different values – either one or the other is present."},{"methods":[{"name":"+","documentation":"List concatenation.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> b = [10,11,12,13]\n> c = a.+ b\n> None\n\n`that`: List to concatenate with `self`.\n`returns`: List object, the result of concatenation `self` with `that` value."},{"name":"==","documentation":"List equality. Two lists are equal when they have the same length\nand their respective elements are equal.\n\n> import Std.Base\n>\n> def main:\n> a = [11,2,30]\n> b = [11,2,31]\n> c = a.== b\n> None\n\n`that`: List to compare with `self`.\n`returns`: `True` when `self` and `that` have the same length and their\nrespective elements are equal, `False` in any other case."},{"name":"toText","documentation":"Text represenation of a list.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> txt = a.toText\n> None\n\n`returns`: Text representation of the `self` list."},{"name":"shortRep","documentation":"Short text representation of a list.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> b = a.shortRep\n> None\n\n`returns`: Short text representation of the `self` list."},{"name":"toJSON","documentation":"Converts a list to a `JSON` object."},{"name":"isEmpty","documentation":"Tests whether the list is empty.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> b = a.isEmpty\n> None\n\n`returns`: `True` if list is empty, `False` otherwise."},{"name":"length","documentation":"Computes the length of a list.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> len = a.length\n> None\n\n`returns`: Length of the `self` list."},{"name":"reverse","documentation":"Reverses the list.\n\n> import Std.Base\n>\n> def main:\n> a = [\"a\", \"b\", \"c\", \"d\"]\n> b = \"foo\"\n> f = +\n> c = a.fold b f\n> None\n\n`a`: Initial value.\n`f`: Function to call on `self` list.\n`returns`: The result of repeatedly calling the function on the next list\nelement and the current accumulator."},{"name":"take","documentation":"Returns the list prefix of a given length or the whole list,\nwhen the requested prefix is longer than the list.\n\n> import Std.Base\n>\n> def main:\n> a = [1, 2, 3, 4]\n> b = a.take 2\n> None\n\n`i`: Int value describing number of elements to take from `self` list.\n`returns`: List object containing first `i` elements from `self` list."},{"name":"drop","documentation":"Returns the list without the prefix of a requested length, or an empty list\nif the number of dropped elements is larger than the list length.\n\n> import Std.Base\n>\n> def main:\n> a = [1, 2, 3, 4]\n> b = a.drop 2\n> None\n\n`i`: Int value describing number of elements to remove from `self` list.\n`returns`: New list object created by deleting first `i` elements from `self` list."},{"name":"map","documentation":"Maps a function over each element of the list.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> f = + 3\n> b = a.map f\n> None\n\n`f`: Function to map over all elements of the `self` list.\n`returns`: List object with elements being result of applying `f` function\nover `self` list."},{"name":"flatMap","documentation":"Maps a list-returning function over each element and concatenates the results.\n\n> import Std.Base\n>\n> def main:\n> a = [\"foo\", \"bar\"]\n> b = flatMap (_.characters)\n> None\n\n`f`: List-returning function.\n`returns`: List being a result of applying `f` to each element of\n`self` and concatenation."},{"name":"each","documentation":"Maps a function over each element of the list, immediately executing\nall side effects and returning a list of results.\n\n> import Std.Base\n>\n> def main:\n> a = [1, 2, 3, 4]\n> f = + 3\n> b = a.each f\n> None\n\n`f`: Function to map over all elements of the `self` list.\n`returns`: List object with elements being result of applying `f` function over `self` list."},{"name":"head","documentation":"Returns `Just` the first element when the list is not empty, `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> b = a.head\n> None\n\n`returns`: `Just` the first element when the list is not empty,\n`Nothing` otherwise."},{"name":"last","documentation":"Returns `Just` the last element when the list is not empty, `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> b = a.last\n> None\n\n`returns`: `Just` the last element when the list is not empty, `Nothing` otherwise."},{"name":"tail","documentation":"Returns `Just` the list without the first element when the list is not empty,\n`Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> b = a.tail\n> None\n\n`returns`: `Just` the list without the first element when the list is not empty,\n`Nothing` otherwise."},{"name":"prepend","documentation":"Prepends an element to the list.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> b = 11\n> c = a.prepend b\n> None\n\n`a`: Element to prepend to `self` list.\n`returns`: `self` list prepended with `a` element."},{"name":"sequence","documentation":"Executes the actions from each element of the list."},{"name":"at","documentation":"Returns `Just` the element at a given position in the list.\nReturns `Nothing` when the index does not exist.\n\n> import Std.Base\n>\n> def main:\n> a = [1, 2, 3, 4]\n> b = a.at 2\n> None\n\n`n`: Int value, index of value to return from `self` list.\n`returns`: `Just` the element at a given position in the `self` list,\n`Nothing` when index does not exist."},{"name":"getAt","documentation":"Returns the element at a given position in the list.\nThrows an error when the index does not exist.\n\n> import Std.Base\n>\n> def main:\n> a = [1, 2, 3, 4]\n> b = a.getAt 2\n> None\n\n`n`: Int value, index of value to return from `self` list.\n`returns`: The element at a given position in the `self` list."},{"name":"fold","documentation":"Takes an initial value and a function. Returns the result of repeatedly\ncalling the function on the next list element and the current accumulator.\n\n> import Std.Base\n>\n> def main:\n> a = [1, 2, 3, 4]\n> b = 10\n> f = +\n> c = a.fold b f\n> None\n\n`a`: Initial value.\n`f`: Function to call on `self` list.\n`returns`: The result of repeatedly calling the function on the next\nlist element and the current accumulator."},{"name":"foldLeft","documentation":"Takes an initial value and a function. Returns the result of repeatedly\ncalling the function on the next list element and the current accumulator.\n\n> import Std.Base\n>\n> def main:\n> a = [\"a\", \"b\", \"c\", \"d\"]\n> b = \"foo\"\n> f = +\n> c = a.foldLeft b f\n> None\n\n`a`: Initial value.\n`f`: Function to call on `self` list.\n`returns`: The result of repeatedly calling the function on the next list\nelement and the current accumulator."},{"name":"makeText","documentation":"Converts a list into text by converting each element to text\nand concatenating them using the provided separator.\n\n> import Std.Base\n>\n> def main:\n> a = [3, \"little\", \"pigs\"]\n> b = \" \"\n> c = a.makeText b\n> None\n\n`sep`: Separator.\n`returns`: Text object from `self` elements concatenated with `sep`."},{"name":"prependAll","documentation":"Private."},{"name":"intersperse","documentation":"Inserts an element between every two elements of a list.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> b = \"foo\"\n> c = a.intersperse b\n> None\n\n`sep`: An element to insert.\n`returns`: The `self` list with `sep` between every two elements."},{"name":"filter","documentation":"Returns a list of all the elements for which the given predicate returns `True`.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3,4]\n> f = < 3\n> c = a.filter f\n> None\n\n`f`: Filtering function, should return Boolean value.\n`returns`: List object with elements of `self` fulfilling the `f` predicate."},{"name":"merge","documentation":"Private."},{"name":"sortBy","documentation":"Sorts the list in an increasing order by the results of the given function."},{"name":"privChunkBy","documentation":"Private."},{"name":"chunkBy","documentation":"Chunks the list into lists of consecutive values returning the same value of a given function.\nFor example:\n```\n[1, 2, 3, 4, 2, 2].chunkBy (> 2) # => [(False, [1, 2]), (True, [3, 4]), (False, [2, 2])]\n```"},{"name":"groupBy","documentation":"Groups the list into lists of values returning the same value of a given function.\nRequires the return value of the function to be ordered.\nFor example:\n```\n[1, 2, 3, 4, 2, 2].chunkBy (> 2) # => [(False, [1, 2, 2, 2]), (True, [3, 4])]\n```"},{"name":"sort","documentation":"Sorts the list in an increasing order.\n\n> import Std.Base\n>\n> def main:\n> a = [7,1,4,3]\n> b = a.sort\n> None\n\n`returns`: List object with elements of `self` in increasing order."},{"name":"privPrefixes","documentation":"Private."},{"name":"prefixes","documentation":"Returns a list of all prefixes of the given list."},{"name":"zipWith","documentation":"Returns a list resulting from combining respective elements of two lists with the provided function.\nThe length of the result is the length of the shorter of the lists.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3]\n> b = [10,11,12]\n> c = a.zipWith (*) b\n> None\n\n`f`: Function to combine elements of `self` and `that` list.\n`that`: List object to combine with `self`.\n`returns`: List object with elements being a result of combining elements\nfrom `self` and `that` list using function `f`."},{"name":"zip","documentation":"Returns a list of pairs of respective elements of two lists.\nThe length of the result is the length of the shorter of the lists.\n\n> import Std.Base\n>\n> def main:\n> a = [1,2,3]\n> b = [10,11,12]\n> c = a.zip b\n> None\n\n`l`: List object to combine with `self`.\n`returns`: List of pairs of respective elements of two lists - `self` and `l`."},{"name":"all","documentation":"Checks whether all elements of a list satisfy a provided predicate.\n\n> import Std.Base\n>\n> def main:\n> a = [11,2,30]\n> f = < 10\n> c = a.all f\n> None\n\n`f`: Boolean valued function.\n`returns`: `True` if all of the `self` list elements statisfies predicate `f`,\n`False` otherwise."},{"name":"any","documentation":"Checks whether any element of a list satisfies a provided predicate.\n\n> import Std.Base\n>\n> def main:\n> a = [11,2,30]\n> f = < 10\n> c = a.any f\n> None\n\n`f`: Boolean valued function.\n`returns`: `True` if any of the `self` list elements statisfies predicate `f`,\n`False` otherwise."},{"name":"collect","documentation":"Takes a list of `Maybes` and returns a list of all the `Just` elements.\n\n> import Std.Base\n>\n> def main:\n> a = [Nothing, Just \"foo\", Just 10, Just \"bar\"]\n> b = a.collect\n> None\n\n`returns`: List of all the `Just` elements from `self`."},{"name":"concat","documentation":"Takes a list of lists and concatenates them into a single list.\n\n> import Std.Base\n>\n> def main:\n> a = [[1,2], [11,12], [21,22]]\n> b = a.concat\n> None\n\n`returns`: Single list from `self`."},{"name":"contains","documentation":"Checks whether the list contains a given element.\n\n> import Std.Base\n>\n> def main:\n> a = [\"foo\", \"bar\"]\n> b = \"baz\"\n> c = a.contais b\n> None\n\n`elem`: Element to check.\n`returns`: `True` if `self` contains `elem`, `False` otherwise."},{"name":"takeWhile","documentation":"Returns the longest prefix of the list for which a given predicate is satisfied.\n\n> import Std.Base\n>\n> def main:\n> a = [49,23,6,12,4,6,1,9]\n> f = > 10\n> b = a.takeWhile f\n> None\n\n`pred`: Boolean-valued function to check.\n`returns`: The longest prefix of the `self` list for which a given predicate\n`pred` is satisfied."}],"name":"List","documentation":"Lists of arbitrary length, consisting of elements of the same type."},{"methods":[{"name":"==","documentation":"Map equality. Two maps are equal when they contain the same keys\nand the elements associated with each key are equal.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> b = Map.singleton \"bar\" 10\n> c = a.== b\n> None\n\n`b`: Map to compare with `self` map.\n`returns`: `True` if two maps are equal, `False` otherwise."},{"name":"toText","documentation":null},{"name":"toJSON","documentation":"Converts a map with `Text` keys to JSON."},{"name":"isEmpty","documentation":"Tests whether the map is empty.\n> def main:\n> a = Map.empty\n> b = a.isEmpty\n> None\n\n`returns`: `True` if `self` is the empty map, `False` otherwise."},{"name":"map","documentation":"Applies a function to each value in the map.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> f = * 10\n> b = a.map f\n> None\n\n`f`: Function to map over all elements of the `self` map.\n`returns`: Map object with elements being result of applying `f` function over `self` map."},{"name":"toList","documentation":"Converts the map into a list of `(key, value)` pairs.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> b = a.toList\n> None\n\n`returns`: A list of (key, value) pairs from the `self` map."},{"name":"get","documentation":"Gets an element for a given key. Throws an exception when the key is not present in the Map.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> b = a.get \"foo\"\n> None\n\n`k`: Key in `self` map to lookup for.\n`returns`: Value for the key `k` from `self` map if the `k` exist.\nThrows an exception when the `k` key is not present in the `self` Map."},{"name":"empty","documentation":"Returns an empty map.\n\n> import Std.Base\n>\n> def main:\n> a = Map.empty\n> None\n\n`returns`: The empty map."},{"name":"singleton","documentation":"Returns a map with a single element.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> None\n\n`k`: Element key.\n`v`: Element value.\n`returns`: The map with single element."},{"name":"size","documentation":"Returns the number of values stored in the map.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> b = a.size\n> None\n\n`returns`: Int value, number of values stored in the `self` map."},{"name":"lookup","documentation":"Looks up an element for a given key.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> b = a.lookup \"foo\"\n> None\n\n`k`: Key in `self` map to lookup for.\n`returns`: `Just` value for the key `k` from `self` map if the key exist.\n`Nothing` if the `k` key is not present in the `self` map."},{"name":"insert","documentation":"Inserts an element at a given key.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> k = \"bar\"\n> v = 23\n> b = a.insert k v\n> None\n\n`k`: Key for a new element to insert to `self` map.\n`v`: Value for a new element to insert to `self` map.\n`returns`: Map containing elements of the `self` map and a newly inserted element."},{"name":"bin","documentation":null},{"name":"delta","documentation":null},{"name":"ratio","documentation":null},{"name":"singleL","documentation":null},{"name":"singleR","documentation":null},{"name":"doubleL","documentation":null},{"name":"doubleR","documentation":null},{"name":"rotateL","documentation":null},{"name":"rotateR","documentation":null},{"name":"balance","documentation":null},{"name":"balanceL","documentation":null},{"name":"balanceR","documentation":null},{"name":"maxView","documentation":null},{"name":"minView","documentation":null},{"name":"glue","documentation":null},{"name":"delete","documentation":"Deletes a key from the given map. If the the key is missing,\nit returns the original map.\n\n> import Std.Base\n>\n> def main:\n> a = Map.singleton \"foo\" 10\n> b = a.delete \"foo\"\n> None\n\n`key`: Key to delete from `self` map.\n`returns`: Map containing elements of the `self` map without `key`.\nIf the the key is missing, it returns the `self` map."}],"name":"Map","documentation":"Represents a dictionary from keys of given type to values of given type.\nThe keys need to have ordering defined."},{"methods":[{"name":"==","documentation":"Tests two `JSON` objects for equality.\nJSON objects are considered equal if they represent the same kind of data\nand if stored data (when present) in both objects compares equal.\n\n> import Std.Base\n>\n> def main:\n> txt1 = '{\"bar\":20}'\n> json1 = JSON.parse txt1\n> txt2 = '{\"bar\":20}'\n> json2 = JSON.parse txt2\n> isEqual = json1.== json2\n> None\n\n`that`: `JSON` object to compare with `self`.\n`returns`: `True` if `that` is equal with `self`, `False` otherwise."},{"name":"toText","documentation":"Dumps a `JSON` structure into a `Text` object.\n\n> import Std.Base\n>\n> def main:\n> a = JSON.empty\n> b = a.insert \"foo\" 10\n> txt = b.toText\n> None\n\n`returns`: Text representation of `self` `JSON` object."},{"name":"shortRep","documentation":"Short text representation for a `JSON` object.\n\n> import Std.Base\n>\n> def main:\n> a = JSON.empty\n> b = a.insert \"foo\" 10\n> c = b.shortRep\n> None\n\n`returns`: Short text representation of `self` `JSON` object."},{"name":"toJSON","documentation":"Identity. Included for consistency with other classes."},{"name":"toBinary","documentation":"Dumps a `JSON` structure into a `Binary` object, by rendering it\ninto `Text` and converting it to `Binary`.\n\n> import Std.Base\n>\n> def main:\n> a = JSON.empty\n> b = a.insert \"foo\" 10\n> binary = b.toBinary\n> None\n\n`returns`: Binary representation of `self` `JSON` object."},{"name":"get","documentation":"Returns the value associated with a given key. Throws an error when\nthe `JSON` is not an object or the key is missing.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\":20, \"foo\": 10}'\n> json = JSON.parse txt\n> k = \"bar\"\n> value = json.get k\n> None\n\n`key`: Key to lookup in `self`.\n`returns`: The value associated with the `key`,\nan error if the `JSON` is not an object or when the `key` is missing."},{"name":"at","documentation":"Returns `Just` the element with a given index assuming the `JSON`\nrepresents an array and the index is in range. Returns `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> json = JSONArray [JSONString \"a\", JSONString \"b\"]\n> list = json.at 1\n> None\n\n`n`: Index of element to get.\n`returns`: `Just` the element with a given index assuming the `JSON`\nrepresents an array and the index is in range, `Nothing` otherwise."},{"name":"getAt","documentation":"Returns the element with a given index assuming the `JSON` represents\nan array and the index is in range. Throws an error otherwise.\n\n> import Std.Base\n>\n> def main:\n> json = JSONArray [JSONString \"a\", JSONString \"b\"]\n> list = json.at 1\n> None\n\n`n`: Index of element to get.\n`returns`: The element with a given index assuming the `JSON`\nrepresents an array and the index is in range, throws an error otherwise."},{"name":"empty","documentation":"Returns an empty `JSON` object.\n\n> import Std.Base\n>\n> def main:\n> a = JSON.empty\n> None\n\n`returns`: An empty `JSON` object."},{"name":"lookup","documentation":"Returns `Just` the value associated with a given key. Returns `Nothing`\nwhen the `JSON` is not an object or when the key is missing.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\":20, \"foo\": 10}'\n> json = JSON.parse txt\n> k = \"bar\"\n> maybeValue = json.lookup k\n> None\n\n`key`: Key to lookup in `self`.\n`returns`: `Just` the value associated with the `key`,\n`Nothing` if the `JSON` is not an object or when the `key` is missing."},{"name":"insert","documentation":"Inserts a value for a given key into the `JSON` object.\nThrows an exception when the `JSON` does not represent an object.\n\n> import Std.Base\n>\n> def main:\n> a = JSON.empty\n> k = \"foo\"\n> v = 10\n> b = a.insert k v\n> None\n\n`k`: A key for a value to insert to `self` JSON object.\n`v`: A value to insert to `self` JSON object.\n`returns`: A `JSON` object containing elements from `self` object and newly inserted element."},{"name":"delete","documentation":"Deletes a value for a given key from the `JSON` object. Does nothing when\nthe `JSON` does not represent an object or does not contain the key.\n\n> import Std.Base\n>\n> def main:\n> txt1 = '{\"bar\":20, \"foo\": 10}'\n> json1 = JSON.parse txt1\n> k = \"bar\"\n> json2 = json1.delete k\n> None\n\n`k`: Key for value to delete from `self`.\n`returns`: `JSON` object with `self` object elements despite the value with the key `k`."},{"name":"safeParse","documentation":"Parses a `Text` into a `JSON` object. Returns `Left` containing error\nmessage when the `Text` does not contain a valid `JSON` object.\n\n> import Std.Base\n>\n> def main:\n> a = '{\"foo\":10, \"bar\":20}'\n> b = JSON.safeParse a\n> None\n\n`data`: Text to parse as `JSON` object.\n`returns`: `Either` `JSON` object or an error."},{"name":"parse","documentation":"Parses a `Text` into a `JSON` object. Throws an error when the `Text`\ndoes not contain a valid `JSON` object.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"foo\":10, \"bar\":20}'\n> json = JSON.parse txt\n> None\n\n`data`: Text to parse as `JSON` object.\n`returns`: `JSON` object or an error."},{"name":"render","documentation":"Dumps a `JSON` structure into a `Text` object.\n\n> import Std.Base\n>\n> def main:\n> a = JSON.empty\n> b = a.insert \"foo\" 10\n> txt = b.render\n> None\n\n`returns`: Text representation of `self` `JSON` object."},{"name":"has","documentation":"Checks if given key is present in the structure.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\":20, \"foo\": 10}'\n> json = JSON.parse txt\n> k = \"bar\"\n> hasKey = json.has k\n> None\n\n`key`: Key to check in `self`.\n`returns`: `True` if the `key` is present in `self` structure, `False` otherwise."},{"name":"asObject","documentation":"Returns a `Map` from `Text` to `JSON`, assuming the `JSON` represents\nan object. Throws an error otherwise.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\":20, \"foo\": 10}'\n> json = JSON.parse txt\n> object = json.asObject\n> None\n\n`returns`: A `Map` from `Text` to `JSON`, assuming the `self` represents\nan object. Throws an error otherwise."},{"name":"asText","documentation":"Returns a `Text` assuming the `JSON` represents text.\nThrows an error otherwise.\n\n> import Std.Base\n>\n> def main:\n> json = JSONString \"foo\"\n> txt = json.asText\n> None\n\n`returns`: A `Text` assuming the `JSON` represents text.\nThrows an error otherwise."},{"name":"asReal","documentation":"Returns a `Real` assuming the `JSON` represents a number.\nThrows an error otherwise.\n\n> import Std.Base\n>\n> def main:\n> scientificNumber = Scientific 10 0\n> json = JSONNumber scientificNumber\n> number = json.asReal\n> None\n\n`returns`: A `Real` assuming the `JSON` represents number.\nThrows an error otherwise."},{"name":"asInt","documentation":"Returns an `Int` assuming the `JSON` represents a number and it\ndidn't contain a decimal point. Throws an error otherwise.\n\n> import Std.Base\n>\n> def main:\n> scientificNumber = Scientific 10 0\n> json = JSONNumber scientificNumber\n> int = json.asInt\n> None\n\n`returns`: A `Int` assuming the `JSON` represents number and it\ndidn't contain a decimal point. Throws an error otherwise."},{"name":"asBool","documentation":"Returns a `Bool` assuming the `JSON` represents a boolean.\nThrows an error otherwise.\n\n> import Std.Base\n>\n> def main:\n> json = JSONBool False\n> bool = json.asBool\n> None\n\n`returns`: A `Bool` assuming the `JSON` represents a boolean.\nThrows an error otherwise."},{"name":"asList","documentation":"Returns a list of `JSON` object assuming the `JSON` represents an array.\nThrows an error otherwise.\n\n> import Std.Base\n>\n> def main:\n> json = JSONArray [JSONString \"a\", JSONString \"b\"]\n> list = json.asList\n> None\n\n`returns`: A list of `JSON` object assuming the `JSON` represents an array.\nThrows an error otherwise."},{"name":"safeAsObject","documentation":"Returns `Just` a `Map` from `Text` to `JSON`, assuming the `JSON`\nrepresents an object. Returns `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\":20, \"foo\": 10}'\n> json = JSON.parse txt\n> object = json.safeAsObject\n> None\n\n`returns`: `Just` a `Map` from `Text` to `JSON`, assuming the `JSON`\nrepresents an object. `Nothing` otherwise."},{"name":"safeAsText","documentation":"Returns `Just` a `Text` assuming the `JSON` represents text.\nReturns `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> json = JSONString \"foo\"\n> txt = json.safeAsText\n> None\n\n`returns`: `Just` a `Text` assuming the `JSON` represents text.\n`Nothing` otherwise."},{"name":"safeAsReal","documentation":"Returns `Just` a `Real` assuming the `JSON` represents a number.\nReturns `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> scientificNumber = Scientific 10 0\n> json = JSONNumber scientificNumber\n> number = json.safeAsReal\n> None\n\n`returns`: `Just` a `Real` assuming the `JSON` represents a number.\n`Nothing` otherwise."},{"name":"safeAsInt","documentation":"Returns `Just` an `Int` assuming the `JSON` represents a number and it\ndidn't contain a decimal point. Returns `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> scientificNumber = Scientific 10 0\n> json = JSONNumber scientificNumber\n> number = json.safeAsInt\n> None\n\n`returns`: `Just` an `Int` assuming the `JSON` represents a number and it\ndidn't contain a decimal point. `Nothing` otherwise."},{"name":"safeAsBool","documentation":"Returns `Just` a `Bool` assuming the `JSON` represents a boolean.\nReturns `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> json = JSONBool False\n> bool = json.safeAsBool\n> None\n\n`returns`: `Just` a `Bool` assuming the `JSON` represents a boolean.\n`Nothing` otherwise."},{"name":"safeAsList","documentation":"Returns `Just` a list of `JSON` object assuming the `JSON` represents\nan array. Returns `Nothing` otherwise.\n\n> import Std.Base\n>\n> def main:\n> json = JSONArray [JSONString \"a\", JSONString \"b\"]\n> list = json.safeAsList\n> None\n\n`returns`: `Just` a list of `JSON` object assuming the `JSON` represents\nan array. `Nothing` otherwise."},{"name":"getObject","documentation":"Gets a `Map` from `Text` to `JSON` associated with a given key.\nThrows an error when the `JSON` is not an object, the key is not present\nor the associated value is not an object.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"a\": {\"bar\":20, \"foo\": 10}, \"b\": {\"bar\":220, \"foo\": 110}}'\n> json = JSON.parse txt\n> object = json.getObject \"a\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: A `Map` from `Text` to `JSON` associated with a given key."},{"name":"getText","documentation":"Gets a `Text` associated with a given key.\nThrows an error when the `JSON` is not an object, the key is not present\nor the associated value is not a text.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\":\"a\", \"foo\": \"b\"}'\n> json = JSON.parse txt\n> txt = json.getText \"foo\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: A `Text` associated with a given key."},{"name":"getReal","documentation":"Gets a `Real` associated with a given key. Throws an error when\nthe `JSON` is not an object, the key is not present\nor the associated value is not a number.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\": 20.0, \"foo\": 10.5}'\n> json = JSON.parse txt\n> number = json.getReal \"bar\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: A`Real` associated with a given key."},{"name":"getInt","documentation":"Gets an `Int` associated with a given key. Throws an error when the\n`JSON` is not an object, the key is not present or the associated value\nis not an integer.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\": 20, \"foo\": 10}'\n> json = JSON.parse txt\n> number = json.getInt \"bar\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: An `Int` associated with a given key."},{"name":"getBool","documentation":"Gets a `Bool` associated with a given key. Throws an error when the\n`JSON` is not an object, the key is not present or the associated value\nis not a boolean.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\": True, \"foo\": 10}'\n> json = JSON.parse txt\n> bool = json.getBool \"bar\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: A `Bool` associated with a given key."},{"name":"getList","documentation":"Gets a `List` of `JSON` values associated with a given key. Throws\nan error when the `JSON` is not an object, the key is not present\nor the associated value is not an array.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"foo\": [1, 2, 2]}'\n> json = JSON.parse txt\n> list = json.getList \"foo\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: A `List` of `JSON` values associated with a given key."},{"name":"lookupObject","documentation":"Looks up a `Map` from `Text` to `JSON` associated with a given key.\nReturns `Nothing` when the `JSON` is not an object, the key is not\npresent or the associated value is not an object.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"a\": {\"bar\":20, \"foo\": 10}, \"b\": {\"bar\":220, \"foo\": 110}}'\n> json = JSON.parse txt\n> object = json.lookupObject \"a\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: `Just` `Map` from `Text` to `JSON` associated with a given key."},{"name":"lookupText","documentation":"Looks up a `Text` associated with a given key. Returns `Nothing` when\nthe `JSON` is not an object, the key is not present or the associated\nvalue is not a text.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\":\"a\", \"foo\": \"b\"}'\n> json = JSON.parse txt\n> txt = json.lookupText \"foo\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: `Just` `Text` associated with a given key."},{"name":"lookupReal","documentation":"Looks up a `Real` associated with a given key. Returns `Nothing` when\nthe `JSON` is not an object, the key is not present or the associated\nvalue is not a number.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\": 20.0, \"foo\": 10.5}'\n> json = JSON.parse txt\n> number = json.lookupReal \"bar\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: `Just` `Real` associated with a given key."},{"name":"lookupInt","documentation":"Looks up an `Int` associated with a given key. Returns `Nothing` when\nthe `JSON` is not an object, the key is not present or the associated\nvalue is not an integer.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\": 20, \"foo\": 10}'\n> json = JSON.parse txt\n> number = json.lookupInt \"bar\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: `Just` `Int` associated with a given key."},{"name":"lookupBool","documentation":"Looks up a `Bool` associated with a given key. Returns `Nothing` when\nthe `JSON` is not an object, the key is not present or the associated\nvalue is not a boolean.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"bar\": True, \"foo\": 10}'\n> json = JSON.parse txt\n> bool = json.lookupBool \"bar\"\n> None\n\n`k`: Key to lookup in `self`.\n`returns`: `Just` `Bool` associated with a given key."},{"name":"lookupList","documentation":"Looks up a `List` of `JSON` values associated with a given key.\nReturns `Nothing` when the `JSON` is not an object, the key is not\npresent or the associated value is not an array.\n\n> import Std.Base\n>\n> def main:\n> txt = '{\"foo\": [1, 2, 2]}'\n> json = JSON.parse txt\n> list = json.lookupList \"foo\"\n> None\n\n`returns`: `Just` `List` of `JSON` values associated with a given key."}],"name":"JSON","documentation":"Class representing JSON objects."},{"methods":[{"name":"take","documentation":"Takes the value out of the `MVar` and returns it, leaving the `MVar` empty.\nCalling this on an empty `MVar` suspends the thread until the value is put in it."},{"name":"read","documentation":"Takes the value out of the `MVar` and returns it, leaving the original value in the `MVar`.\nCalling this on an empty `MVar` suspends the thread until the value is put in it."},{"name":"put","documentation":"Puts a value inside the `MVar`. Calling this method on a non-empty `MVar`\nsuspends the thread until the old value is taken out."}],"name":"MVar","documentation":"MVar is a mutable variable, safe to read and modify in a multi-threaded environment.\nAn MVar can either be empty or can contain a value.\nReading an empty `MVar` locks the thread until a value is written.\nWriting to a non-empty `MVar` locks the thread until a value is taken out."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"take","documentation":"Returns the prefix of the stream of given length."},{"name":"drop","documentation":"Drops the given number of elements from the stream."},{"name":"map","documentation":"Runs a function on each element on the stream, not executing any side effects."},{"name":"each","documentation":"Runs a function on each element of the stream, immediately executing all side effects.\nDue to the stream being infinite, this function never terminates."},{"name":"head","documentation":"Field getter"},{"name":"tail","documentation":"Field getter"},{"name":"fold","documentation":"Takes a function and returns a stream resulting from calling the function repeatedly\non the next element of the stream and the previously accumulated value, where the first accumulated value\nis the first element in the stream."},{"name":"collect","documentation":"Transforms a stream containing `Maybe` values into one containing only the `Just` items."},{"name":"takeWhile","documentation":"Returns the longest prefix of stream in which all elements satisfy the given predicate."},{"name":"isStream","documentation":null},{"name":"foldFrom","documentation":"Takes an initial value and function. Returns a stream resulting from calling the function repeatedly\non the next element of the stream and the previously accumulated value."},{"name":"consume","documentation":"`s.consume n` returns a list of the first `n` elements of `s` and the result of dropping the first `n` values of `s`."},{"name":"consumeWhile","documentation":"Returns the longest prefix in which all elements satisfy the given predicate,\nand the result of dropping this prefix from the original stream."},{"name":"dropWhile","documentation":"Drops the longest prefix of stream in which all elements satisfy the given predicate."},{"name":"eval","documentation":"Evaluates all actions associated with stream elements sequentially.\nDue to the stream being infinite, this function never terminates."},{"name":"rateLimit","documentation":"Returns a stream containing the same values as the original stream,\nbut produces them no more often than the given time interval."},{"name":"head=","documentation":"Field setter"},{"name":"tail=","documentation":"Field setter"}],"name":"Stream","documentation":"`Stream` represents an infinite data source, with a list-like API."},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toJSON","documentation":"Serializes an LQuery value to its JSON representation.\nNote: the JSON representation is meant to allow passing LQuery values to\nthird-party components (like Dataframes library).\nChanging serialization scheme here will require adjusting that components\nas well."},{"name":"toLQueryValue","documentation":null},{"name":"startsWith","documentation":"Tests if argument is prefix of this value.\nAllowed only for Text-yielding values."},{"name":"matches","documentation":"Tests if argument being a regexp string matches the current value.\nSupported syntax is based on ECMAScript and UNIX regexp grammar.\nAllowed only for Text-yielding values."},{"name":"day","documentation":"Extract day of month (counted from 1) in the Gregorian calendar.\nAllowed only for Timestamp-yielding values;"},{"name":"month","documentation":"Extract month in the Gregorian calendar.\nAllowed only for Timestamp-yielding values;"},{"name":"year","documentation":"Extract year in the Gregorian calendar.\nAllowed only for Timestamp-yielding values;"}],"name":"LQueryValue","documentation":null},{"methods":[{"name":"toJSON","documentation":null},{"name":"and","documentation":null},{"name":"or","documentation":null},{"name":"not","documentation":null},{"name":"switch","documentation":null}],"name":"Predicate","documentation":"NOTE: the `a` type parameter is a workaround for typechecker limitation\n(LQueryValue.toJSON and Predicate.toJSON are xplicitly corecursive)\nIn future `a` should be just replaced with LQueryValue."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"at","documentation":null}],"name":"TableHandle","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"_envVarName","documentation":null},{"name":"root","documentation":"Get the root path for a given package.\nE.g. `Package.root 'Std'` will point to the location\nof the standard library inside a Luna distribution."},{"name":"samples","documentation":"Get the sample data directory for a given package.\nSamples are, by convention, data files that can be used to demonstrate\ncapabilities of the library.\nThey are located in the `LIBRARY_ROOT/samples` directory.\nFor example, the path to `iris.csv` sample dataset from the\n`Dataframes` package can be accessed as:\n```\nPackage.samples 'Dataframes' / 'iris.csv'\n```"}],"name":"Package","documentation":"This class provides a way of accessing files inside available packages.\nIt's particularly useful for internal data, data samples etc."}],"functions":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"<=","documentation":"Less than or equal to operator. Requires the objects to define both `<` and `==` methods."},{"name":"^","documentation":null},{"name":"pi","documentation":"The mathematical constant π = 3.14159265359.\n\n> import Std.Base\n>\n> def main:\n> a = pi\n> None\n\n`returns`: The mathematical constant π = 3.14159265359."},{"name":"switch","documentation":"Alias for the `if then else` construction, looks better with currying."},{"name":"id","documentation":"Identity function. `id a` is the same as `a` for any `a`."},{"name":"const","documentation":"Constant function. Ignores its second argument and always returns the first."},{"name":"when","documentation":"Takes an action and evaluates it only when a given condition is met. Always returns `None`."},{"name":"seq","documentation":null},{"name":"unless","documentation":"Takes an action returning `None` and evaluating the action only unless a given condition is met."},{"name":"$","documentation":null},{"name":">=","documentation":"Greater or equal operator. Requires the objects to define both `>` and `==` methods."},{"name":"throw","documentation":"Takes a Text and throws it as an error."},{"name":"newMVar","documentation":"Creates an empty MVar object.\nMVar is a mutable variable, safe to read and modify in a multi-threaded environment.\nAn MVar can either be empty or can contain a value.\nReading an empty `MVar` suspends the thread until a value is written.\nWriting to a non-empty `MVar` suspends the thread until a value is taken out."},{"name":"fork","documentation":"Takes an action and executes it in a separate thread."},{"name":"everyWithState","documentation":"A variant of `every` in which the action modifies some local state while running."},{"name":"streamFrom","documentation":"Builds a stream by repeatedly calling an action. Useful for consuming low-level streaming data sources."},{"name":"repeatWhile","documentation":"Repeat an action while predicate returns `True`. Returns a List of all the values for which predicate returned `True`."},{"name":"delayAsync","documentation":"Executes an action in a separate thread, after waiting the specified time interval."},{"name":"every","documentation":"Takes an action and a `TimeInterval`. Evaluates the action in given intervals, returning a `Stream` of consecutive values.\nParticularly useful for polling webservices or scheduling tasks."},{"name":"print","documentation":"Print the value to standard output. Can be called on any value which defines a `toText` method returning `Text`."},{"name":"readFile","documentation":"Read file from the hard drive, returning a `Text` value.\n\n> import Std.Base\n>\n> def main:\n> filepath = Package.samples \"Base\" / \"exampleFile.txt\"\n> txt = read filepath\n> None\n\n`f`: Filepath to a file to read.\n`returns`: Text value with a file content."},{"name":"writeFile","documentation":"Write a Text object into a file with a given path.\n\n> import Std.Base\n>\n> def main:\n> filepath = \"./myFile.txt\"\n> text = \"Lorem ipsum\"\n> write = write filepath text\n> None\n\n`f`: Filepath for a file to write.\n`c`: Text object to write.\n`returns`: None"},{"name":"catch","documentation":"Takes a value and a function from Text to value.\nReturns the value if it was correct or calls the function if the value was erroneous."},{"name":"bracket","documentation":null}]},{"name":"Std.Foreign.C.Value","documentation":null,"classes":[{"methods":[{"name":"toText","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"ptr","documentation":null},{"name":"fromText","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"isNull","documentation":null},{"name":"null","documentation":null},{"name":"free","documentation":null},{"name":"with","documentation":null}],"name":"CString","documentation":null},{"methods":[{"name":"==","documentation":null},{"name":"toCArg","documentation":null},{"name":"readPtr","documentation":null},{"name":"cast","documentation":null},{"name":"writePtr","documentation":null},{"name":"isNull","documentation":null},{"name":"free","documentation":null},{"name":"moveBytes","documentation":null}],"name":"Ptr","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CChar","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"read","documentation":null},{"name":"ptr","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"isNull","documentation":null},{"name":"null","documentation":null},{"name":"free","documentation":null},{"name":"with","documentation":null},{"name":"mallocElems","documentation":null},{"name":"moveElems","documentation":null},{"name":"write","documentation":null},{"name":"typeRep","documentation":null},{"name":"moveBytes","documentation":null},{"name":"malloc","documentation":null},{"name":"mallocBytes","documentation":null}],"name":"Pointer","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"toList","documentation":null},{"name":"size","documentation":null},{"name":"ptr","documentation":null},{"name":"toCArg","documentation":null},{"name":"free","documentation":null},{"name":"with","documentation":null},{"name":"make","documentation":null},{"name":"alloc","documentation":null},{"name":"assertInBounds","documentation":null},{"name":"uncheckedReadAt","documentation":null},{"name":"readAt","documentation":null},{"name":"uncheckedWriteAt","documentation":null},{"name":"writeAt","documentation":null},{"name":"fromList","documentation":null}],"name":"Array","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toList","documentation":null},{"name":"ptr","documentation":null},{"name":"toCArg","documentation":null},{"name":"free","documentation":null},{"name":"make","documentation":null},{"name":"fromList","documentation":null},{"name":"typeRep","documentation":null}],"name":"NullTerminatedArray","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CUChar","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CWChar","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CInt","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CInt8","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CInt16","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CInt32","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CInt64","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CUInt","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CUInt8","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CUInt16","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CUInt32","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CUInt64","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CLong","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CULong","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CSize","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":"%","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toReal","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromInt","documentation":null}],"name":"CTime","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toReal","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromReal","documentation":null}],"name":"CFloat","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"/","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":null},{"name":"abs","documentation":null},{"name":"negate","documentation":null},{"name":"toReal","documentation":null},{"name":"toText","documentation":null},{"name":"retType","documentation":null},{"name":"fromRetType","documentation":null},{"name":"toCArg","documentation":null},{"name":"byteSize","documentation":null},{"name":"readPtr","documentation":null},{"name":"writePtr","documentation":null},{"name":"fromReal","documentation":null}],"name":"CDouble","documentation":null},{"methods":[{"name":"retType","documentation":null}],"name":"RetType","documentation":null},{"methods":[{"name":"toCArg","documentation":null}],"name":"Arg","documentation":null},{"methods":[{"name":"==","documentation":null},{"name":"ptr","documentation":null},{"name":"toCArg","documentation":null},{"name":"cast","documentation":null},{"name":"isNull","documentation":null},{"name":"free","documentation":null},{"name":"moveBytes","documentation":null}],"name":"ForeignPtr","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"read","documentation":null},{"name":"ptr","documentation":null},{"name":"toCArg","documentation":null},{"name":"isNull","documentation":null},{"name":"null","documentation":null},{"name":"free","documentation":null},{"name":"mallocElems","documentation":null},{"name":"moveElems","documentation":null},{"name":"write","documentation":null},{"name":"typeRep","documentation":null},{"name":"moveBytes","documentation":null},{"name":"malloc","documentation":null},{"name":"fptr","documentation":null},{"name":"fromPointer","documentation":null}],"name":"ManagedPointer","documentation":null}],"functions":[{"name":"nullPtr","documentation":null}]},{"name":"Std.Foreign","documentation":null,"classes":[{"methods":[{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":null},{"name":"call","documentation":null}],"name":"FunPtr","documentation":null}],"functions":[{"name":"cStdLib","documentation":null},{"name":"lookupSymbol","documentation":null}]},{"name":"Std.Geo","documentation":null,"classes":[{"methods":[{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":null},{"name":"latitude","documentation":"Field getter"},{"name":"longitude","documentation":"Field getter"},{"name":"toFeature","documentation":null},{"name":"latitude=","documentation":"Field setter"},{"name":"longitude=","documentation":"Field setter"}],"name":"GeoPoint","documentation":null},{"methods":[{"name":"toJSON","documentation":null},{"name":"properties","documentation":"Field getter"},{"name":"geometry","documentation":"Field getter"},{"name":"addProperty","documentation":"Adds a property to existing GeoJSONFeature.\n\n> import Std.Base\n> import Std.Base\n> \n> def main:\n> longitude = 19.9449799\n> latitude = 50.0646501\n> coordinates = (longitude, latitude)\n> geometry = JSON.empty . insert \"type\" \"Point\" \n> . insert \"coordinates\" coordinates\n> property = JSON.empty . insert \"name\" \"Cracow\"\n> feature = GeoJSONFeature property geometry\n> featureWithPopup = feature . addProperty \"popupContent\" \"home\"\n> None"},{"name":"properties=","documentation":"Field setter"},{"name":"geometry=","documentation":"Field setter"}],"name":"GeoJSONFeature","documentation":"GeoJSON is a format for encoding a variety of geographic data structures. \nGeoJSONFeatures contain a geometry and additional properties\nGeoJSON supports the following geometry types: Point, LineString, Polygon, \nMultiPoint, MultiLineString, and MultiPolygon.\n\n> import Std.Base\n> import Std.Base\n> \n> def main:\n> latitude = 19.9449799\n> longitude = 50.0646501\n> coordinates = (latitude, longitude)\n> geometry = JSON.empty . insert \"type\" \"Point\" \n> . insert \"coordinates\" coordinates\n> property = JSON.empty . insert \"name\" \"Cracow\"\n> feature = GeoJSONFeature property geometry\n> None"},{"methods":[{"name":"toJSON","documentation":null},{"name":"features","documentation":"Field getter"},{"name":"features=","documentation":"Field setter"}],"name":"GeoJSONFeatureCollection","documentation":"A list of GeoJSONFeatures.\n\n> import Std.Base\n> import Std.Base\n> \n> def main:\n> latitude1 = 19.9449799\n> longitude1 = 50.0646501\n> coordinates1 = (latitude1, longitude1)\n> latitude2 = 21.017532\n> longitude2 = 52.237049\n> coordinates2 = (latitude2, longitude2)\n> geometry1 = JSON.empty . insert \"type\" \"Point\" \n> . insert \"coordinates\" coordinates1\n> property1 = JSON.empty . insert \"name\" \"Cracow\"\n> feature1 = GeoJSONFeature property1 geometry1\n> geometry2 = JSON.empty . insert \"type\" \"Point\" \n> . insert \"coordinates\" coordinates2\n> property2 = JSON.empty . insert \"name\" \"Warsaw\"\n> feature2 = GeoJSONFeature property2 geometry2\n> featuresCollection = GeoJSONFeatureCollection [feature1, feature2]\n> None"}],"functions":[]},{"name":"Std.Graphics2D","documentation":null,"classes":[{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"-","documentation":null},{"name":"toJSON","documentation":null},{"name":"toSVGDefs","documentation":null},{"name":"transformation","documentation":"Field getter"},{"name":"definition","documentation":"Field getter"},{"name":"transform","documentation":null},{"name":"translate","documentation":null},{"name":"rotate","documentation":null},{"name":"toSVG","documentation":null},{"name":"transformation=","documentation":"Field setter"},{"name":"definition=","documentation":"Field setter"}],"name":"Geo","documentation":null},{"methods":[{"name":"toJSON","documentation":null},{"name":"toSVGDefs","documentation":null},{"name":"type","documentation":"Field getter"},{"name":"operands","documentation":"Field getter"},{"name":"type=","documentation":"Field setter"},{"name":"operands=","documentation":"Field setter"}],"name":"Boolean","documentation":null},{"methods":[{"name":"toJSON","documentation":null},{"name":"x","documentation":"Field getter"},{"name":"y","documentation":"Field getter"},{"name":"x=","documentation":"Field setter"},{"name":"y=","documentation":"Field setter"}],"name":"Point","documentation":null},{"methods":[{"name":"toJSON","documentation":null},{"name":"leftHandle","documentation":"Field getter"},{"name":"point","documentation":"Field getter"},{"name":"rightHandle","documentation":"Field getter"},{"name":"leftHandle=","documentation":"Field setter"},{"name":"point=","documentation":"Field setter"},{"name":"rightHandle=","documentation":"Field setter"}],"name":"ControlPoint","documentation":null},{"methods":[{"name":"+","documentation":null},{"name":"*","documentation":null},{"name":"toJSON","documentation":null},{"name":"a","documentation":"Field getter"},{"name":"b","documentation":"Field getter"},{"name":"c","documentation":"Field getter"},{"name":"d","documentation":"Field getter"},{"name":"toList","documentation":null},{"name":"tx","documentation":"Field getter"},{"name":"ty","documentation":"Field getter"},{"name":"a=","documentation":"Field setter"},{"name":"b=","documentation":"Field setter"},{"name":"c=","documentation":"Field setter"},{"name":"d=","documentation":"Field setter"},{"name":"tx=","documentation":"Field setter"},{"name":"ty=","documentation":"Field setter"}],"name":"AffineTransformation","documentation":null},{"methods":[{"name":"toJSON","documentation":null},{"name":"toSVGDefs","documentation":null}],"name":"Shape","documentation":null},{"methods":[{"name":"toJSON","documentation":null}],"name":"BooleanOperation","documentation":null},{"methods":[{"name":"toJSON","documentation":null},{"name":"toSVGDefs","documentation":null}],"name":"GeoDef","documentation":null}],"functions":[{"name":"point","documentation":null},{"name":"lpoint","documentation":null},{"name":"rpoint","documentation":null},{"name":"lrpoint","documentation":null},{"name":"identityTrans","documentation":null},{"name":"translationTrans","documentation":null},{"name":"rotationTrans","documentation":null},{"name":"circle","documentation":null},{"name":"rectangle","documentation":null},{"name":"path","documentation":null},{"name":"emptyGeo","documentation":null}]},{"name":"Std.HTTP","documentation":null,"classes":[{"methods":[{"name":"toText","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"}],"name":"HttpMethod","documentation":"A class representing Http request method"},{"methods":[{"name":"toText","documentation":null},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"toBinary","documentation":null},{"name":"values","documentation":"Field getter"},{"name":"addValue","documentation":"Adds one pair to the body.\nReturns an `HttpSimpleBody` with the new additional pair"},{"name":"values=","documentation":"Field setter"}],"name":"HttpSimpleBody","documentation":"Helper class for passing parameters in the body of an Http request"},{"methods":[{"name":"toText","documentation":null},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"json","documentation":"Body of a response converted to `JSON`."},{"name":"stream","documentation":"Returns the body of the response as a stream.\nEven though it can be used with any response, it is most\nuseful when combined with an inherently \"streamy\" data source,\nfor example responses from the Twitter Stream API.\nSee the `Std.Base` module's `Stream` class for information on\non working with streams of data in Luna."},{"name":"text","documentation":"Body of the response converted to `Text`."},{"name":"responseCode","documentation":"Field getter"},{"name":"headers","documentation":"Field getter"},{"name":"getChunk","documentation":"Field getter"},{"name":"successful","documentation":"Tells us whether the response came back yielding a successful result.\nWe assume that response is successful when its code is one of: 200, 201, 202."},{"name":"body","documentation":"The body of the response as a `Binary` blob."},{"name":"responseCode=","documentation":"Field setter"},{"name":"headers=","documentation":"Field setter"},{"name":"getChunk=","documentation":"Field setter"}],"name":"HttpResponse","documentation":"Response of an Http request, allows for different methods\nof accessing the body contents, see the methods."},{"methods":[{"name":"toText","documentation":null},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"headers","documentation":"Field getter"},{"name":"body","documentation":"Field getter"},{"name":"uri","documentation":"Field getter"},{"name":"method","documentation":"Field getter"},{"name":"auth","documentation":"Field getter"},{"name":"oauth1","documentation":"Field getter"},{"name":"params","documentation":"Field getter"},{"name":"setMethod","documentation":"Sets the method of this `HttpReuqest` to a given `HttpMethod`."},{"name":"setBody","documentation":"Sets the body of a request.\nCan be called with anything that supports a `toBinary` method,\nincluding `Text`, `Binary`, `JSON` and `HttpSimpleBody` instances."},{"name":"setUri","documentation":null},{"name":"addHeader","documentation":"Set the header (key) to a value (val). The header needs to be\na valid Http header name, like `Accept-Charset` (but the case\ndoes not matter)."},{"name":"setBasicAuth","documentation":"Use the provided username and password as `HttpBasicAuth`."},{"name":"setParam","documentation":"Append given key and value to the request params.\nNote: for params passed as the request body,\nconsider using `HttpSimpleBody` helper class."},{"name":"setOAuth1","documentation":"Construct OAuth1 authentication headers using the provided\n`OAuth1Data` object. For a more detailed description of OAuth, please\nconsult `Std.OAuth`."},{"name":"setOAuth2","documentation":"Set the OAuth2 authorization token.\nNote that this assumes that the caller already is in possesion of such a token,\nwhich can be obtained, among other ways, by using the `OAuth2` class from `Std.OAuth`.\nFor a more detailed description of OAuth, please consult `Std.OAuth`."},{"name":"perform","documentation":"Given a fully constructed `HttpRequest` object, this method\nactually performs the request. Note: no data will actually\nbe sent until this method is called."},{"name":"headers=","documentation":"Field setter"},{"name":"uri=","documentation":"Field setter"},{"name":"method=","documentation":"Field setter"},{"name":"auth=","documentation":"Field setter"},{"name":"oauth1=","documentation":"Field setter"},{"name":"params=","documentation":"Field setter"},{"name":"body=","documentation":"Field setter"}],"name":"HttpRequest","documentation":"A class representing an Http request.\nEven though it is possible to construct members of this\nclass by hand, the idiomatic way of making the requests\nuses the helper class `Http`. Please consult the documentation below.\nThis class provides a couple of setters to manipulate the default\nrequests created by `Http` methods."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"get","documentation":"Create a basic Http GET request for a given uri."},{"name":"head","documentation":"Create a basic Http HEAD request for a given uri."},{"name":"delete","documentation":"Create an Http DELETE request for a given url."},{"name":"put","documentation":"Create an Http PUT request for a given uri and body.\nThe body can be anything that provides a `toBinary` method,\nincluding the `Text`, `Binary`, `JSON` and `HttpSimpleBody` types."},{"name":"post","documentation":"Create an Http POST request for a given uri and body.\nThe body can be anything that provides a `toBinary` method,\nincluding the `Text`, `Binary`, `JSON` and `HttpSimpleBody` types."},{"name":"patch","documentation":"Create an Http PATCH request for a given uri and body.\nThe body can be anything that provides a `toBinary` method,\nincluding the `Text`, `Binary`, `JSON` and `HttpSimpleBody` types."},{"name":"connect","documentation":"Create a basic Http CONNECT request for a given uri."},{"name":"trace","documentation":"Create a basic Http TRACE request for a given uri."},{"name":"options","documentation":"Create an Http OPTIONS request for a given url."},{"name":"getBinary","documentation":"A helper method that immediately gets a binary blob from a given url.\nThere is no need to call `perform` here, as it returns a `Binary` response."},{"name":"getJSON","documentation":"A helper method that immediately gets a JSON response from a given url.\nThere is no need to call `perform` here, as it returns a `JSON` response."}],"name":"Http","documentation":"The main class for issuing Http requests.\nProvides methods for the most common request methods.\nThe basic usage is the following:\n\n> import Std.HTTP\n>\n> def main:\n> resp = Http.get \"http://someurl.com/\" . perform\n> None\n\nWhen you want to customize the way the requests are made, you can use the setters\nprovided by the `HttpRequest` class in the following way:\n\n> import Std.HTTP\n>\n> def main:\n> resp = Http.post \"http://someurl.com/\" . setHeader \"Accept\" \"*\"\n> . setBasicAuth \"user\" \"pass\"\n> . setParam \"someParam\" \"someValue\"\n> . perform\n> None\n\nNote: the `get`, `post`, `put` and `delete` methods need to be followed\nby a `perform` invocation to actually make the request.\nOnce we obtain the response object (`resp` in the examples above), we\ncan use the methods of the `HttpResponse` class to process it, meaning\nin the examples above you can later call `resp.stream` or `resp.body`."}],"functions":[{"name":"emptyHttpBody","documentation":"Conveniently creates an empty `HttpSimpleBody`"},{"name":"defaultHttpRequest","documentation":"A helper function constructing a default `HttpRequest`,\nintended for internal use by the `Http` class.\nIt is actually equivalent to `Http.get`."}]},{"name":"Std.OAuth","documentation":null,"classes":[{"methods":[{"name":"toText","documentation":null},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"clientKey","documentation":"Field getter"},{"name":"clientSecret","documentation":"Field getter"},{"name":"oauthToken","documentation":"Field getter"},{"name":"oauthTokenSecret","documentation":"Field getter"},{"name":"clientKey=","documentation":"Field setter"},{"name":"clientSecret=","documentation":"Field setter"},{"name":"oauthToken=","documentation":"Field setter"},{"name":"oauthTokenSecret=","documentation":"Field setter"}],"name":"OAuth1Data","documentation":"A class encapsulating all the necessary OAuth1 data.\nThat means: a `clientKey`, a `clientSecret`, an `oauthToken` and `oauthTokenSecret`.\nIt can be passed directly to `HttpResponse.setOAuth1` method, resulting in\nthe following usage:\n\n> import Std.OAuth\n>\n> def main:\n> oauthData = OAuth1Data someClientKey someClientSecret someOAuthToken someOAuthTokenSecret\n> resp = Http.get \"http://someurl.com/\" . setOAuth1 oauthData . perform\n> # process the response...\n> None\n"},{"methods":[{"name":"toText","documentation":null},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"clientSecret","documentation":"Field getter"},{"name":"clientId","documentation":"Field getter"},{"name":"accessTokenEndpoint","documentation":"Field getter"},{"name":"invalidateTokenEndpoint","documentation":"Field getter"},{"name":"callback","documentation":"Field getter"},{"name":"clientSecret=","documentation":"Field setter"},{"name":"clientId=","documentation":"Field setter"},{"name":"accessTokenEndpoint=","documentation":"Field setter"},{"name":"invalidateTokenEndpoint=","documentation":"Field setter"},{"name":"callback=","documentation":"Field setter"}],"name":"OAuth2Data","documentation":"A class encapsulating all the necessary OAuth2 data.\nThat means: a `clientId`, a `clientSecret`, an `accessTokenEndpoint`,\nan `invalidateTokenEndpoint` and an optional `callback` url."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"postRequest","documentation":"A helper method for issuing OAuth2-related requests."},{"name":"fetchAccessToken","documentation":"Fetches the authorization token using the provided `OAuth2Data` object."},{"name":"invalidateToken","documentation":"Invalidates a token when it is no longer needed."}],"name":"OAuth2","documentation":"A class used for obtaining the OAuth2 authorization token.\nGiven the necessary `OAuth1Data` it will issue a call\nto the `accessTokenEndpoint` and fetch the token. When the\ntoken is no longer needed it can be invalidated with a call\nto `invalidateToken`.\nAn example flow is the following:\n\n> import Std.OAuth\n>\n> def main:\n> oauthData = OAuth1Data someClientId someClientSecret someOAuthToken someOAuthTokenSecret\n> token = OAuth2.fetchAccessToken oauthData\n> resp = Http.get \"http://someurl.com/\" . setOAuth2 token . perform\n> # process the response...\n> OAuth2.invalidateToken oauthData token\n\nFor a more in-depth description of the OAuth2 flow, please see\nhttps://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2"}],"functions":[]},{"name":"Std.System","documentation":null,"classes":[{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"currentPlatform","documentation":"Return current platform (MacOS, Linux, Windows)"},{"name":"lookupEnv","documentation":"Lookup an environment variable `v`,\nreturning `Just` result if it exists, `Nothing` otherwise."},{"name":"getEnv","documentation":"Try to retrieve an environment variable `v` and\nthrow an exception if it fails."},{"name":"setEnv","documentation":"Set an environment variable to desired value.\nUnsets the variable if \"\" is given as value."}],"name":"System","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"isCreatePipe","documentation":null}],"name":"PipeRequest","documentation":"Data type representing different ways of connecting the processes outputs (e.g. stdout).\n`Inherit` means that the process gets a given pipe after the process that created it.\n`UseHandle` lets you specify a file to connect to the process instead of, for example, stdout.\n`CreatePipe` creates a fresh connection (pipe) that you can later use to communicate with the process.\n`NoStream` leaves a given pipe closed (e.g. if you don't need the processes stdin)."},{"methods":[{"name":"setBuffering","documentation":"Lets you specify the `BufferMode` for this file."},{"name":"isOpen","documentation":"Checks whether the file this handle is referring to is open."},{"name":"isClosed","documentation":"Checks whether the file this handle is referring to is closed."},{"name":"close","documentation":"Closes the file."},{"name":"flush","documentation":"Flushes any buffered content to make sure that it actually goes through."},{"name":"getContents","documentation":"Return the contents of the file."},{"name":"getLine","documentation":"Get one line of the file."},{"name":"putText","documentation":"Write some `Text` to the file."},{"name":"putLine","documentation":"Write some `Text` to the file, appending a new line at the end."},{"name":"toStream","documentation":"Access this file's contents as a `Stream`.\nFor more information on dealing with streams in Luna\nplease consult the `Stream` class documentation for `Std.Base`."}],"name":"FileHandle","documentation":"A class representing a file in the filesytstem."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"isBuffered","documentation":null}],"name":"BufferMode","documentation":"Data type used for specifying the buffering mode of the input-output operations."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"wait","documentation":"Wait for the process described by this handle to finish."}],"name":"ProcessHandle","documentation":"A class representing the low-level handle to the process in the operating system.\nNote that this class is used internally by `Std.System` and\nmost users should use `Process` instead."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"handle","documentation":"Field getter"},{"name":"wait","documentation":"Wait for this process to finish execution."},{"name":"stdin","documentation":"Field getter"},{"name":"stdout","documentation":"Field getter"},{"name":"stderr","documentation":"Field getter"},{"name":"stdin=","documentation":"Field setter"},{"name":"stdout=","documentation":"Field setter"},{"name":"stderr=","documentation":"Field setter"},{"name":"handle=","documentation":"Field setter"}],"name":"Process","documentation":"A class representing an operating system process.\nIt allows you to access the standard input (`stdin`), the standard output\n(`stdout`) and standard error (`stderr`) of this process, hence allowing\nother processes to communicate with this one.\nIt also exposes the `wait` method."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"args","documentation":"Field getter"},{"name":"stdin","documentation":"Field getter"},{"name":"stdout","documentation":"Field getter"},{"name":"stderr","documentation":"Field getter"},{"name":"command","documentation":"Field getter"},{"name":"setCommand","documentation":"Set the command to run.\nIn general, calls to this method should be avoided, as the command is best passed\nto the `Command.create` call."},{"name":"setArgs","documentation":"Set the arguments to the process.\nIn general, calls to this method should be avoided, as the arguments are best passed\nto the `Command.create` call."},{"name":"setStdin","documentation":"Set the standard input of the process to a specified `PipeRequest`."},{"name":"setStdout","documentation":"Set the standard output of the process to a specified `PipeRequest`."},{"name":"setStderr","documentation":"Set the standard error of the process to a specified `PipeRequest`."},{"name":"run","documentation":"Actually run this process, returning a `Process` instance."},{"name":"runWithInput","documentation":"Run this process with specified `input`."},{"name":"runWithStream","documentation":"Run this process, passing a stream as its input."},{"name":"execute","documentation":"Execute this process from beginning to end, returning its standard output, standard error\nand exit code instead of the `Process` object."},{"name":"stdin=","documentation":"Field setter"},{"name":"stdout=","documentation":"Field setter"},{"name":"stderr=","documentation":"Field setter"},{"name":"command=","documentation":"Field setter"},{"name":"args=","documentation":"Field setter"}],"name":"ProcessDescription","documentation":"An object representing a process to launch (as opposed to `Process`, which is an already running process).\nNote: in most cases the constructor for this class should not be called directly.\nIt is advisable to use `Command.create` instead. Please see the documentation for `Command`.\nThis class provides a set of setters for changing the arguments to the process\nor changing its input and outputs.\nA `ProcessDescription` class will transform into a running `Process` once its `run` method is called."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"create","documentation":"Create the command to be run."}],"name":"Command","documentation":"The entry point to creating new processes and running system commands.\nIt facilitates easy creation of processes by passing the command to run and its arguments.\nOnce you call `Command.create `, you can modify it using the `ProcessDescription`\nmethods like `setStdin`. Then, you need to call `run` (or one of its variants) to actually\nexecute the process. Example of redirecting the output of `ls -al` to a file:\n\n> import Std.System\n> \n> def main:\n> cmd = Command.create \"ls\" [\"-al\"] . setStdout (UseHandle somefile)\n> cmd.run\n"},{"methods":[{"name":"toInt","documentation":null},{"name":"toText","documentation":null},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":null},{"name":"exitSuccess","documentation":"Successful termination."},{"name":"exitFailure","documentation":"Program failure with an exit code."}],"name":"ExitCode","documentation":"Exit code of a process.\nCan either be `ExitSuccess` or `ExitFailure`, in which case it will\nadditionally contain the exit code."},{"methods":[{"name":"toText","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"}],"name":"Platform","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"current","documentation":"Return current directory."}],"name":"Directory","documentation":null}],"functions":[{"name":"withForkWait","documentation":null}]},{"name":"Std.Test","documentation":null,"classes":[{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"specify","documentation":null}],"name":"Test","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"not","documentation":null},{"name":"body","documentation":"Field getter"},{"name":"run","documentation":null},{"name":"errorMessage","documentation":"Field getter"},{"name":"negatedErrorMessage","documentation":"Field getter"},{"name":"body=","documentation":"Field setter"},{"name":"errorMessage=","documentation":"Field setter"},{"name":"negatedErrorMessage=","documentation":"Field setter"}],"name":"Assertion","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"subject","documentation":"Field getter"},{"name":"should","documentation":null},{"name":"shouldNot","documentation":null},{"name":"subject=","documentation":"Field setter"}],"name":"TestSubject","documentation":null},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"run","documentation":null}],"name":"Bench","documentation":null}],"functions":[{"name":"be","documentation":null},{"name":"equal","documentation":null},{"name":"throwError","documentation":null},{"name":"satisfy","documentation":null}]},{"name":"Std.Time","documentation":null,"classes":[{"methods":[{"name":">","documentation":"Is this `Time` later than the `other`?\n\n> import Std.Time\n> \n> def main:\n> today = Time.now\n> withInterval = today.add 20.minutes\n> isGreater = today.> withInterval\n> None\n\n`other`: `Time` object to compare with `self`.\n\n`return`: `True` if `other` is before `self` time, `False` otherwise."},{"name":"<","documentation":"Is this `Time` earlier than the `other`?\n\n> import Std.Time\n> \n> def main:\n> today = Time.now\n> withInterval = today.add 20.minutes\n> isGreater = today.< withInterval\n> None\n\n`other`: `Time` object to compare with `self`.\n\n`return`: `True` if `other` is after `self` time, `False` otherwise."},{"name":"==","documentation":"Does this and the `other` `Time` point to the same time?\n\n> import Std.Time\n> \n> def main:\n> today = Time.now\n> withInterval = today.add 20.minutes\n> isEqual = today.== withInterval\n> None\n\n`other`: `Time` object to compare with `self`.\n\n`return`: `True` if both `Time` objects are equal, `False` otherwise."},{"name":"toText","documentation":"Converts a `Time` to `Text` using the default format (YYYY-MM-DD.HH:MM:SS)."},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":null},{"name":"days","documentation":"Returns the days number associated with this `Time`.\n\n> import Std.Time\n> \n> def main:\n> daysValue = Time.now . days\n> None\n\n`return`: Days value for `self` time."},{"name":"toLQueryValue","documentation":"Internal: converts a `Time` to `LQueryValue`."},{"name":"safeParse","documentation":"Try to parse `Time` from `Text` assuming the default format of date and time.\nReturns `Just time` if successful, `Nothing` otherwise."},{"name":"parse","documentation":"Parse `Time` from `Text`.\nReturns a `Time` object and throws an error if unable to parse the time."},{"name":"now","documentation":"Gets the current time in the users timezone. \n\n> import Std.Time \n>\n> def main:\n> nowTime = Time.now\n> None\n\n`return`: `Time` object for current time."},{"name":"diff","documentation":"Calculate difference between two time values.\n\n> import Std.Time\n> \n> def main:\n> today = Time.now\n> montsStart = Time.beginningOfMonth\n> difference = today.diff otherDay\n> None\n\n`other`: The `Time` value to calculate difference with `self`.\n\n`return`: The difference between `self` and `other` time in miliseconds."},{"name":"defaultFormat","documentation":"Default format for `Time`: YYYY-MM-DD.HH:MM:SS+TTTT.\nThe `TTTT` in the format above stands for the timezone offset."},{"name":"format","documentation":"Formats a `Time` according to the specifier supplied (converting to `Text`).\nIf a custom format is needed, please see:\nhttps://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Format.html#v:formatTime"},{"name":"add","documentation":"Add a `TimeInterval` to this `Time`.\n\n> import Std.Time\n> \n> def main:\n> today = Time.now\n> withInterval = today.add 20.minutes\n> None\n\n`interval`: Time interval to add to `self` time ie. `20.minytes` or `10.seconds`.\n\n`return`: Updated time."},{"name":"sub","documentation":"Subtract a `TimeInterval` from this `Time`.\n\n> import Std.Time\n> \n> def main:\n> today = Time.now\n> withInterval = today.sub 20.minutes\n> None\n\n`interval`: Time interval to substract from `self` time ie. `20.minytes` or `10.seconds`.\n\n`return`: Updated time."},{"name":"timeOfDay","documentation":"Gets time of day (hours, minutes, seconds) as a `TimeOfDay` instance.\n\n> import Std.Time \n>\n> def main:\n> nowTime = Time.now . timeOfDay\n> None\n\n`return`: `TimeOfDay` object for `self` time."},{"name":"setTimeOfDay","documentation":"Sets the time-of-day part of this `Time` to a given `TimeOfDay` instance.\n\n> import Std.Time\n> \n> def main:\n> noonTime = Time.now . setTimeOfDay TimeOfDay.noon\n> None\n\n`tod`: `TimeOfDay` instance to set for `self` time.\n\n`return`: `Time` object with given `TimeOfDay`."},{"name":"timeZone","documentation":"Returns the timezone associated with this `Time`.\n\n> import Std.Time\n> \n> def main:\n> timezone = Time.now . timeZone\n> None\n\n`return`: Timezone value for `self` time."},{"name":"setTimeZone","documentation":"Sets the timezone of this time to a given `TimeZone` instance.\n\n> import Std.Time\n> \n> def main:\n> newTimezone = Time.now . setTimeZone TimeZone.utc\n> None\n\n`tz`: `TimeZone` instance to set for `self` time.\n\n`return`: `Time` object with given `TimeZone`."},{"name":"addDays","documentation":"Adds a given number of days to the date.\n\n> import Std.Time\n> \n> def main:\n> updatedDays = Time.now . addDays 13\n> None\n\n`d`: Number of days to add to `self` time.\n\n`return`: `Time` object with updated days value."},{"name":"subDays","documentation":"Subtracts a given number of days from the date.\n\n> import Std.Time\n> \n> def main:\n> updatedDays = Time.now . subDays 13\n> None\n\n`d`: Numebr of days to substract from `self` time.\n\n`return`: `Time` object with updated days value."},{"name":"beginningOfDay","documentation":"Gets the beginning of the current day.\nIf called on February 14th at 4:00, it will return February 14th 0:00\n\n> import Std.Time\n> \n> def main:\n> begin = Time.beginningOfDay\n> None\n\n`return`: `Time` value for the beginning of the day."},{"name":"endOfDay","documentation":"Gets the end of the current day.\nIf called on February 14th at 4:00, it will return February 15th 0:00\n\n> import Std.Time\n> \n> def main:\n> end = Time.endOfDay\n> None\n\n`return`: `Time` value for the end of the day."},{"name":"timeOfYear","documentation":"Gets the time of year in form of a tuple: (year, month, day)\n\n> import Std.Time\n> \n> def main:\n> date = Time.now . timeOfYear\n> None\n\n`return`: (year, month, day) tuple for `self` time."},{"name":"fromTimeOfYear","documentation":"Creates a `Time` object from its parameters: the year, month and day and an optional `TimeZone`.\n\n> import Std.Time\n> \n> def main:\n> newTime = Time.fromTimeOfYear 2020 12 15 (Just TimeZone.utc)\n> None\n\n`y`: Year parameter to create `Time` object.\n`m`: Month parameter to create `Time` object.\n`d`: Day parameter to create `Time` object.\n`tz`: Optional `TimeZone` parameter to create `Time` object. Current timezone is a default one. \nTo set default timezone use `Nothing`.\n\n`return`: `Time` object created from year, month, day and optionally timezone."},{"name":"beginningOfMonth","documentation":"Gets the `Time` representing the first day of the current month.\n\n> import Std.Time\n> \n> def main:\n> firstDay = Time.beginningOfMonth\n> None\n\n`return`: `Time` object for the first day of current month."},{"name":"endOfMonth","documentation":"Gets the `Time` representing the last day of the current month.\n\n> import Std.Time\n> \n> def main:\n> lasttDay = Time.endOfMonth\n> None\n\n`return`: `Time` object for the last day of current month."},{"name":"beginningOfYear","documentation":"Gets the `Time` representing the first day (January 1st) of the current year.\n\n> import Std.Time\n> \n> def main:\n> firstDay = Time.beginningOfYear\n> None\n\n`return`: `Time` object for the first day of current year."},{"name":"endOfYear","documentation":"Gets the `Time` representing the last day (December 31st) of the current year.\n\n> import Std.Time\n> \n> def main:\n> lasttDay = Time.endOfYear\n> None\n\n`return`: `Time` object for the last day of current year."},{"name":"toUTC","documentation":"Converts this `Time` instance to a `UTCTime`.\n\n> import Std.Time\n> \n> def main:\n> today = Time.now\n> todayUTC = today.toUTC\n> None\n\n`return`: `UTCTime` object for `self` `Time` value."},{"name":"safeParseFmt","documentation":"Tries to parse `Time` from `Text` using the specified format.\nReturns `Just time` if successful and `Nothing` otherwise.\nIn most cases, you can use `safeParse`, which uses the default format.\nIf a custom format is needed, please see:\nhttps://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Format.html#v:formatTime"},{"name":"parseFmt","documentation":"Parse `Time` from `Text` using the supplied format.\nReturns a `Time` object and throws an error if unable to parse the time.\nIn most cases, you can use `parse`, which uses the default format.\nIf a custom format is needed, please see:\nhttps://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Format.html#v:formatTime"},{"name":"fromEpoch","documentation":"Parses a `Time` from a number representing the standard epoch."},{"name":"toEpoch","documentation":"Converts a `Time` to an epoch."}],"name":"Time","documentation":"A class representing time (and date), with timezone.\nBy default it will use the current timezone as set on the user's machine.\nIf you wish to override that behaviour, you can explicitly set the timezone\nwith `setTimeZone`, like:\n\n> import Std.Time \n>\n> def main:\n> timezone = Time.now . setTimeZone TimeZone.cst\n> None\n\n\n`Time` supports various formatting and parsing methods, including the\ndefault `toText` method, `format` (accepting a format string), `toEpoch`,\n`parse`, `parseFmt` (for custom formats) and `fromEpoch`.\n\n`Time` instances can be compared and you can add and subtract `TimeIntervals`,\nlike:\n\n> import Std.Time \n>\n> def main: \n> newTime = Time.now . add 2.minutes\n> None\n\nThe above can also be expressed in a more natural syntax with:\n\n> import Std.Time \n>\n> def main: \n> newTime = 2.minutes.fromNow\n> None \n\n\nAdditional helper methods exist to make working with `Time` easier, please\nconsult the docstring for each method for further information."},{"methods":[{"name":"==","documentation":"Check does the offset of this `TimeZone` is the same as the `other` one.\n\n> import Std.Time \n>\n> def main:\n> pstTimeZone = TimeZone.pst\n> utcTimeZone = TimeZone.utc\n> areEqual = pstTimeZone.== utcTimeZone\n> None\n\n`other`: `TimeZone` object to compare with `self`.\n\n`return`: `True` if the timezonses have the same offset and `False` otherwise."},{"name":"toText","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"minutes","documentation":"The offset (in minutes) from the UTC timezone.\n\n> import Std.Time \n>\n> def main:\n> pacificStandardTime = TimeZone.pst\n> min = pacificStandardTime.minutes\n> None\n\n`return`: Numerical value for the offset in minutes for `self` timezone."},{"name":"current","documentation":"Returns the `TimeZone` object representing the current timezone.\n\n> import Std.Time \n>\n> def main:\n> currentTimeZone = TimeZone.current\n> None\n\n`return`: The `TimeZone` object representing the current timezone."},{"name":"name","documentation":"The three letter shortcut name for this timezone, can be blank.\n\n> import Std.Time \n>\n> def main:\n> pacificStandardTime = TimeZone.pst\n> timeZoneName = pacificStandardTime.name\n> None\n\n`return`: Text value containing the three letter short name for this \ntimezone, can be blank."},{"name":"create","documentation":"Creates a new `TimeZoneInstance`.\n\n> import Std.Time \n>\n> def main:\n> newTimezone = TimeZone.create 60 False \"CET\"\n> None\n\n`offsetMins`: Amount of time subtracted from or added to Coordinated Universal Time (UTC) in minutes.\n`summerOnly`: Boolean value describing if the timezone has daylight saving time or not.\n`name`: Text value contains the three letter shortcut name for this timezone, can be blank.\n\n`return`: new timezone instance with given name and offset."},{"name":"summerOnly","documentation":"Is this timezone valid only throughout the summertime?\n\n> import Std.Time \n>\n> def main:\n> pacificStandardTime = TimeZone.pst\n> justSummer = pacificStandardTime.summerOnly\n> None\n\n`return`: `True` if the timezone can be in daylight saving time or `False` otherwise."},{"name":"fromMinutes","documentation":"Creates a nameless timezone with a given offset (in minutes).\n\n> import Std.Time \n>\n> def main:\n> newTimeZone = TimeZone.fromMinutes 360\n> None\n\n`m`: The offset for new timezone in minutes.\n\n`return`: New unnamed timezone instance with the offset `m` in minutes."},{"name":"fromHours","documentation":"Creates a nameless timezone with a given offset (in hours).\n\n> import Std.Time \n>\n> def main:\n> newTimeZone = TimeZone.fromHours 4\n> None\n\n`h`: The offset for new timezone in hours.\n\n`return`: New unnamed timezone instance with the offset `h` in hours."},{"name":"utc","documentation":"Returns the `TimeZone` object representing the UTC timezone.\n\n> import Std.Time \n>\n> def main:\n> utcTimeZone = TimeZone.utc\n> None\n\n`return`: The `TimeZone` object representing the UTC timezone."},{"name":"gmt","documentation":"Returns the `TimeZone` object representing the GMT timezone.\n\n> import Std.Time \n>\n> def main:\n> gmtTimeZone = TimeZone.gmt\n> None\n\n`return`: The `TimeZone` object representing the GMT timezone."},{"name":"cst","documentation":"Returns the `TimeZone` object representing the CST timezone.\n\n> import Std.Time \n>\n> def main:\n> cstTimeZone = TimeZone.cst\n> None\n\n`return`: The `TimeZone` object representing the CTS timezone."},{"name":"pst","documentation":"Returns the `TimeZone` object representing the PST timezone.\n\n> import Std.Time \n>\n> def main:\n> pstTimeZone = TimeZone.pst\n> None\n\n`return`: The `TimeZone` object representing the PST timezone."}],"name":"TimeZone","documentation":"A class representing the timezone.\nPlease keep in mind that the offset is in minutes, as some timezones\nuse the multiple of 15 minutes as the offset."},{"methods":[{"name":">","documentation":"Does this `TimeOfDay` point to a later time during the day than the `other`?\n\n> import Std.Time \n>\n> def main:\n> noonTime = TimeOfDay.noon\n> currentTime = TimeOfDay.current \n> isAfterNoon = currentTime.> noonTime\n> None\n\n`other`: `TimeOfDay` object to compare with `self`\n\n`return`: `True` if the `other` time is later then `self`, `False` otherwise."},{"name":"<","documentation":"Does this `TimeOfDay` point to an earlier time during the day than the `other`?\n\n> import Std.Time \n>\n> def main:\n> noonTime = TimeOfDay.noon\n> currentTime = TimeOfDay.current \n> isBeforeNoon = currentTime.< noonTime\n> None\n\n`other`: `TimeOfDay` object to compare with `self`\n\n`return`: `True` if the `other` time is earlier then `self`, `False` otherwise."},{"name":"==","documentation":"Is this `TimeOfDay` equal to the other? (Up to one second resolution).\n\n> import Std.Time \n>\n> def main:\n> noonTime = TimeOfDay.noon\n> currentTime = TimeOfDay.current \n> isNoon = currentTime.== noonTime\n> None\n\n`other`: `TimeOfDay` object to compare with `self`\n\n`return`: `True` if the `other` time is the same as `self`, `False` otherwise."},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"second","documentation":"Returns hour from `TimeOfDay` object.\n\n> import Std.Time \n>\n> def main:\n> midnightTime = TimeOfDay.midnight\n> midnightSecond = midnightTime.second\n> None\n\n`return`: Second value from `self`."},{"name":"hour","documentation":"Returns hour from `TimeOfDay` object.\n\n> import Std.Time \n>\n> def main:\n> midnightTime = TimeOfDay.midnight\n> midnightHour = midnightTime.hour\n> None\n\n`return`: Hour value from `self`."},{"name":"minute","documentation":"Returns hour from `TimeOfDay` object.\n\n> import Std.Time \n>\n> def main:\n> midnightTime = TimeOfDay.midnight\n> midnightMinute = midnightTime.minute\n> None\n\n`return`: Minute value from `self`."},{"name":"midnight","documentation":"Returns time for midnight. \n\n> import Std.Time \n>\n> def main:\n> midnightTime = TimeOfDay.midnight\n> None\n\n`return`: `TimeOfDay` object for midnight."},{"name":"noon","documentation":"Returns time for noon. \n\n> import Std.Time \n>\n> def main:\n> noonTime = TimeOfDay.noon\n> None\n\n`return`: `TimeOfDay` object for noon."}],"name":"TimeOfDay","documentation":"A class representing the time of day (hours, minutes, seconds)."},{"methods":[{"name":">","documentation":"Is this `UTCTime` later than the `other`?"},{"name":"<","documentation":"Is this `UTCTime` earlier than the `other`?"},{"name":"==","documentation":"Does this and the `other` `UTCTime` point to the same time?"},{"name":"toText","documentation":"Converts a `Time` to `Text` using the default format (YYYY-MM-DD.HH:MM:SS)."},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"diff","documentation":"Calculate difference between two time values."},{"name":"toZonedTime","documentation":"Converts this `UTCTime` instance to a `Time`, using the local timezone."},{"name":"defaultFormat","documentation":"Default format for `UTCTime`: YYYY-MM-DD.HH:MM:SS."},{"name":"format","documentation":"Formats a `Time` according to the specifier supplied (converting to `Text`).\nIf a custom format is needed, please see:\nhttps://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Format.html#v:formatTime"},{"name":"add","documentation":"Add a `TimeInterval` to this `UTCTime`."},{"name":"sub","documentation":"Subtract a `TimeInterval` from this `UTCTime`."}],"name":"UTCTime","documentation":"A class representing the UTC time (mostly to facilitate other computations).\nFor the majority of use-cases it is recommended to use the `Time` class, which\nsupports timezones and provides a much richer API. However, for frequent\noperations involving time differences and arithmetic operations, this class\nwill provide slightly better performance."},{"methods":[{"name":"+","documentation":null},{"name":"-","documentation":null},{"name":">","documentation":null},{"name":"<","documentation":null},{"name":"==","documentation":"Are this and the `other` `TimeIntervals` the same?"},{"name":"toInt","documentation":null},{"name":"toReal","documentation":"Return a real representing the number of picoseconds in this `TimeInterval`."},{"name":"toText","documentation":null},{"name":"shortRep","documentation":null},{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"toMicroseconds","documentation":"Return the number of microseconds in this interval."},{"name":"before","documentation":"Subtract this `TimeInterval` from a given `Time`, hence\nreturning a point in time `before` the given `Time`."},{"name":"add","documentation":null},{"name":"sub","documentation":null},{"name":"toSeconds","documentation":"Return the number of seconds in this interval."},{"name":"toMiliseconds","documentation":"Return the number of miliseconds in this interval."},{"name":"from","documentation":"Add this `TimeInterval` to a given `Time`, hence\nreturning a point in time some `TimeInterval` `from` the given `Time`."},{"name":"ago","documentation":"Return this `TimeInterval` before now (so some amount of time ago)."},{"name":"fromNow","documentation":"Return this `TimeInterval` after now (so some amount of time from now)."}],"name":"TimeInterval","documentation":"A class representing time intervals, that is: a difference between two times.\nCan be converted to different time resolutions like seconds, miliseconds and microseconds.\nInternally the time interval is stored with picosecond resolution.\nThe main purpose of this class is to make working with time intuitive:\nusing the helper methods you can write things like:\n```\n5.seconds.ago\n10.minutes.fromNow\n15.seconds.before someTime\n20.minutes.after someTime\n```"}],"functions":[]},{"name":"Std.WebSockets","documentation":null,"classes":[{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"path","documentation":"Field getter"},{"name":"create","documentation":"A method actually connecting to the socket."},{"name":"host","documentation":"Field getter"},{"name":"port","documentation":"Field getter"},{"name":"secure","documentation":"Field getter"},{"name":"setHost","documentation":"Sets the host part of the url to connect to."},{"name":"setPath","documentation":"Sets the path part of the url to connect to."},{"name":"setPort","documentation":"Specifies the port to which to connect."},{"name":"setSecure","documentation":"Used for explicitly making the connection secure.\nNote that in the majority of use cases this will be deduced from\nthe url, hence rendering the usage of this method unnecessary."},{"name":"host=","documentation":"Field setter"},{"name":"port=","documentation":"Field setter"},{"name":"path=","documentation":"Field setter"},{"name":"secure=","documentation":"Field setter"}],"name":"WebSocketInstance","documentation":"A class used for creating new `WSConnection` instances,\nhence making the connections over web sockets. Please note\nthat it is advisable to use the `WebSocket.connection` method rather\nthan to create new connections instead of instantiating this class\ndirectly. On the other hand, the setters of this class are\nused well with the helper method. Please see the documentation for `WebSocket`."},{"methods":[{"name":"read","documentation":"Read from the WebSocket.\nReturns a `Binary` blob that can later be converted\nto any data type necessary."},{"name":"stream","documentation":"Tap into the WebSocket, creating a `Stream` of `Binary` blobs.\nPlease see the documentation for `Stream` in `Std.Base` for\ninformation on how to process streams in Luna."},{"name":"write","documentation":"Send textual data over the WebSocket connection.\nCan be given anything that is convertable to `Text` (exposing a `toText` method)."},{"name":"close","documentation":"Close the WebSocket connection after it is no longer needed."},{"name":"writeBinary","documentation":"Send binary data over the WebSocket connection.\nCan be given anything that is convertable to `Binary` (exposing a `toBinary` method)."}],"name":"WSConnection","documentation":"A class representing the WebSocket connection.\nThis is the handle you are given after you create a WebSocket\nconnection with `WebSocket.connection`. It allows you to read\nand write to the WebSocket and close it after it is no longer needed."},{"methods":[{"name":"sendToAll","documentation":"Send a textual message to all of the connected clients.\nThe message may be of any type exposing a `toText` method."},{"name":"sendBinaryToAll","documentation":"Send a binary message to all of the connected clients.\nThe message may be of any type exposing a `toBinary` method."},{"name":"nextMessage","documentation":"Helper method that reads the next message that has arrived to the server."},{"name":"messageStream","documentation":"Taps into the stream of incoming messages, returning a `Stream` of `Binary` blobs.\nPlease see the documentation for `Stream` in `Std.Base` for\ninformation on how to process streams in Luna."}],"name":"WSServer","documentation":"A simple broadcast WebSocket server.\nAllows you to send messages to all of the connected clients at once.\nNote that you should use the `WebSocket.server` helper method to create\ninstances of this class. Refer to the documentation of the `WebSocket`\nclass for more information."},{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"connection","documentation":"Connect to the WebSocket at given address (the `host` param).\nYou must call `create` on the object created by this method to actually make the connection.\nThe host may or may not contain the `ws` or `wss` specifier.\nIf `wss` is specified, the connection will be assumed to be secure\nand the port will be set to 443. For `ws` connections the default port\nis 80. If you wish to create a secure connection but leave out the\n`wss` part of the url, you must explicitly call `setSecure` to override\nthe defaults.\n\n> import Std.WebSockets\n> \n> def main:\n> conn = WebSocket.connection \"ws://somehost.com\" \"/sockets\" \n> . setPort 12345 . create\n> stream = conn.stream\n> # process the incoming stream...\n> conn.close\n\n`host`: Address of the server.\n`port`: Port to accept the connections.\n\n`return`: The connection to the WebSocket."},{"name":"server","documentation":"Create a simple, broadcast server that recieves messages from its clients\nand can send messages to all of the clients at once.\nyou need to specify what will be the address (`host`) of the server and\non which port it will be accepting the connections (`port`). Once you create it,\nyou can call all of the `WSServer` methods on the returned server instance.\n\n> import Std.WebSockets\n> \n> def main:\n> server = WebSocket.server \"somehost\" 55555\n> server.sendToAll \"hello, clients\"\n> responseStream = server.messageStream\n> None\n\n`host`: Address of the server.\n`port`: Port to accept the connections.\n\n`return`: Server instance."}],"name":"WebSocket","documentation":"The main class for dealing with WebSockets.\nSupports creating client-side connections (with `connect`) and\nservers (with `server`)."}],"functions":[]},{"name":"Std.XML","documentation":null,"classes":[{"methods":[{"name":"toJSON","documentation":"Default toJSON implementation"},{"name":"render","documentation":null},{"name":"setAttr","documentation":null}],"name":"XNode","documentation":null}],"functions":[]}]} \ No newline at end of file diff --git a/data/stdLib_base_test.json b/data/stdLib_base_test.json deleted file mode 100644 index 2c0da38d..00000000 --- a/data/stdLib_base_test.json +++ /dev/null @@ -1 +0,0 @@ -{ "modules": [{ "name": "Std.Base", "tag": "modified:1.0.1", "documentation": "This is Luna Docs internal version with mockups to present some functions, like tags, types, grouping, long and short info, etc. Created by Maciej Mikołajek. Last update: 01.08.2018", "classes": [{ "tag": "modified:1.0.1", "methods": [{ "type": "Mathematical operations", "methods": [{ "tag": "modified:1.3.4", "name": "< : Int -> Int -> Int", "documentation": " `a.< b` returns True when `a` is lesser than `b`." }, { "tag": "added:1.2.3", "name": "+", "documentation": " Integer addition." }, { "name": "*", "documentation": " Integer multiplication." }, { "name": "==", "documentation": " Integer equality. `a.== b` returns True when `a` equals `b`." }, { "name": "-", "documentation": " Integer subtraction." }, { "name": ">", "documentation": " `a.> b` returns True when `a` is greater than `b`." }, { "name": "%", "documentation": " Division remainder `a.% b == a - (a / b) * b`" }, { "name": "/", "documentation": " Integral division – `a./ b` returns the largest integer `c` such that `c * b <= a`." }] }, { "type": "Other operations", "documentation": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum", "methods": [{ "name": "pred", "documentation": " Predecessor. `a.pred == a - 1`" }, { "tag": "deprecated:2.0", "name": "toInt", "documentation": null }, { "name": "negate", "documentation": " Integer negation. `a.negate == -1 * a`." }, { "name": "toReal", "documentation": " Promote an integer to a real number." }, { "name": "toText", "documentation": " Display an integer as text." }] }, { "name": "shortRep", "documentation": " Alias for `toText`, for the purpose of pretty printing the number." }, { "name": "toJSON", "documentation": " JSON representation of an integer." }, { "tag": "deprecated:2.0.1", "name": "miliseconds", "documentation": " Returns a TimeInterval with the length of `self` miliseconds." }, { "name": "seconds", "documentation": " Returns a TimeInterval with the length of `self` seconds." }, { "name": "minutes", "documentation": " Returns a TimeInterval with the length of `self` minutes." }, { "name": "hours", "documentation": " Returns a TimeInterval with the length of `self` hours." }, { "name": "days", "documentation": " Returns a TimeInterval with the length of `self` days." }, { "name": "weeks", "documentation": " Returns a TimeInterval with the length of `self` weeks." }, { "name": "succ", "documentation": " Successor. `a.succ == a + 1`" }, { "name": "upto", "documentation": " Generates a list representing a range. `a.upto b == [a, a + 1, a + 2, ..., b - 1, b]`" }], "name": "Int", "documentation": " Class representing integer numbers of arbitrary size. ", "longDocumentation": " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum" }, { "tag": "added:1.0.0", "methods": [{ "name": "<", "documentation": " Tests whether `self` is lesser than the argument." }, { "name": "+", "documentation": " Floating point addition." }, { "name": "*", "documentation": " Floating point multiplication." }, { "name": "^", "documentation": " Floating point exponentiation." }, { "name": "==", "documentation": " Tests whether `self` is equal to the argument." }, { "name": "-", "documentation": " Floating point subtraction." }, { "name": ">", "documentation": " Tests whether `self` is greater than the argument." }, { "name": "/", "documentation": " Floating point division." }, { "name": "negate", "documentation": " Negation. `a.negate == -1.0 * a`" }, { "name": "toText", "documentation": " Display a real number as text." }, { "name": "shortRep", "documentation": " Displays a number as text." }, { "name": "toJSON", "documentation": " Converts a number to `JSON`." }, { "name": "log", "documentation": " Floating point logarithm with given basis." }, { "name": "round", "documentation": " Round a number with given precision – the result is a real number with the number of digits after the decimal dot equal to the argument." }, { "name": "floor", "documentation": " Round a number down to the closest `Int`" }, { "name": "ceiling", "documentation": " Round a number up to the closest `Int`" }, { "name": "sin", "documentation": " Sine function." }, { "name": "cos", "documentation": " Cosine function." }, { "name": "tan", "documentation": " Tangent function." }, { "name": "sinh", "documentation": " Hyperbolic sine function." }, { "name": "cosh", "documentation": " Hyperbolic cosine function." }, { "name": "tanh", "documentation": " Hyperbolic tangent function." }, { "name": "asin", "documentation": " Inverse sine function." }, { "name": "acos", "documentation": " Inverse cosine function." }, { "name": "atan", "documentation": " Inverse tangent function." }, { "name": "asinh", "documentation": " Inverse hyperbolic sine function." }, { "name": "acosh", "documentation": " Inverse hyperbolic cosine function." }, { "name": "atanh", "documentation": " Inverse hyperbolic tangent function." }, { "name": "exp", "documentation": " Natural exponential function." }, { "name": "ln", "documentation": " Natural logarithm function." }, { "name": "sqrt", "documentation": " Square root." }], "name": "Real", "documentation": " Class representing floating point numbers." }, { "methods": [{ "name": "<", "documentation": " Tests whether `self` is lesser than the argument in lexicographical order." }, { "name": "+", "documentation": " Concatenates two texts together." }, { "name": "==", "documentation": " Tests wheter two texts are equal." }, { "name": ">", "documentation": " Tests whether `self` is greater than the argument in lexicographical order." }, { "name": "toInt", "documentation": " Reinterprets the string as an integer in decimal system. Throws an error when the text does not represent a valid integer." }, { "name": "toReal", "documentation": " Reinterprets the string as a real number in decimal system. Throws an error when the text does not represent a valid real number." }, { "name": "toText", "documentation": " Identity function, included for consistency with other types." }, { "name": "shortRep", "documentation": " Truncates the text for optimal display in interactive mode." }, { "name": "toJSON", "documentation": " Converts the text to `JSON`." }, { "name": "isEmpty", "documentation": " Tests whether the text is empty (equal to `\"\"`)." }, { "name": "length", "documentation": " Measures the text length." }, { "name": "startsWith", "documentation": " Tests whether the argument is a prefix of `self`." }, { "name": "isPrefixOf", "documentation": " Tests whether `self` is a prefix of the argument." }, { "name": "endsWith", "documentation": " Tests whether the argument is a suffix of `self`." }, { "name": "isSuffixOf", "documentation": " Tests whether `self` is a suffix of the argument." }, { "name": "characters", "documentation": " Returns a list of all characters in the text." }, { "name": "words", "documentation": " Returns a list of all words (white-space delimited) in the text." }, { "name": "lines", "documentation": " Returns a list of all lines (newline delimited) in the text." }, { "name": "lowercase", "documentation": " Changes all characters to lowercase." }, { "name": "uppercase", "documentation": " Changes all characters to uppercase." }, { "name": "reverse", "documentation": " Reverses the text." }, { "name": "escapeJSON", "documentation": null }, { "name": "toBinary", "documentation": " Convert the text to bare binary data." }, { "name": "safeToInt", "documentation": " Tries to reinterpret the string as an integer in decimal system. Returns `Nothing` when the text does not represent a valid integer." }, { "name": "safeToReal", "documentation": " Tries to reinterpret the string as a real number in decimal system. Returns `Nothing` when the text does not represent a valid real number." }, { "name": "addPathSegment", "documentation": null }], "name": "Text", "documentation": " The basic class for representing Texts." }, { "methods": [{ "name": "+", "documentation": " Concatenates two pieces of binary data together." }, { "name": "==", "documentation": " Checks whether two pieces of data are equal." }, { "name": "toText", "documentation": " Encodes the binary object as an UTF-8 `Text`. Throws an error when the data does not represent a valid text." }, { "name": "shortRep", "documentation": " Displays a short representation of `Binary` object for use in interactive mode." }, { "name": "length", "documentation": " Measures the length in bytes of binary object." }, { "name": "toBinary", "documentation": " Identity function, included for consistency with other classes." }, { "name": "take", "documentation": " Returns a prefix consisting of the given number of bytes." }, { "name": "drop", "documentation": " Returns a suffix resulting from dropping the given number of bytes at the beginning." }], "name": "Binary", "documentation": " Class for representing arbitrary binary data. Does not attempt to interpret the data in any way." }, { "methods": [{ "name": "+", "documentation": " Complex number addition." }, { "name": "*", "documentation": " Complex number multiplication." }, { "name": "toText", "documentation": " Displays a complex number as text." }, { "name": "shortRep", "documentation": " Displays a complex number as text." }, { "name": "modulus", "documentation": " Complex number modulus." }, { "name": "real", "documentation": "Field getter." }, { "name": "imaginary", "documentation": "Field getter." }], "name": "Complex", "documentation": " Class representing complex numbers over `Real` numbers." }, { "methods": [{ "name": "==", "documentation": " Equality of booleans, semantically the same as logical equivalence." }, { "name": "toText", "documentation": " Represents logical values as `Text`." }, { "name": "shortRep", "documentation": " Represents logical values as `Text`." }, { "name": "toJSON", "documentation": " Converts a boolean value to `JSON`." }, { "name": "and", "documentation": " Boolean and." }, { "name": "or", "documentation": " Boolean or." }, { "name": "not", "documentation": " Logical negation." }], "name": "Bool", "documentation": " Class representing boolean values" }, { "methods": [{ "name": "toText", "documentation": " Represents a `None` value as `Text`." }, { "name": "shortRep", "documentation": " Represents a `None` value as `Text`." }, { "name": "toJSON", "documentation": " Converts a `None` value into `JSON`." }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }], "name": "None", "documentation": " Class representing the lack of interesting value. Mostly used for actions executed solely for their side effects, without any interesting return value." }, { "methods": [{ "name": "==", "documentation": " Tuple equality. Two tuples are equal when their respective elements are equal." }, { "name": "toText", "documentation": " Text representation of a tuple." }, { "name": "shortRep", "documentation": " Short Text representation of a pair." }, { "name": "toJSON", "documentation": " Converts a pair into a `JSON` object." }, { "name": "first", "documentation": " Plucks the first element of a tuple." }, { "name": "second", "documentation": " Plucks the second element of a tuple." }, { "name": "map", "documentation": " Maps a function over both elements of a tuple." }], "name": "Tuple2", "documentation": " Class representing pairs of elements of arbitrary type." }, { "methods": [{ "name": "==", "documentation": " Triple equality. Two triples are equal when their respective elements are equal." }, { "name": "toText", "documentation": " Text representation of a triple." }, { "name": "shortRep", "documentation": " Short Text representation of a triple." }, { "name": "toJSON", "documentation": " Converts a triple into a `JSON` object." }, { "name": "first", "documentation": " Plucks the first element of a triple." }, { "name": "second", "documentation": " Plucks the second element of a triple." }, { "name": "map", "documentation": " Maps a function over all elements of a triple." }, { "name": "third", "documentation": " Plucks the third element of a triple." }], "name": "Tuple3", "documentation": " Class representing triples of elements of arbitrary type." }, { "methods": [{ "name": "==", "documentation": " 4-tuple equality. Two 4-tuples are equal when their respective elements are equal." }, { "name": "toText", "documentation": " Text representation of a 4-tuple." }, { "name": "shortRep", "documentation": " Short text representation of a 4-tuple." }, { "name": "toJSON", "documentation": " Converts a 4-tuple to a `JSON` object." }, { "name": "first", "documentation": " Plucks the first element of a 4-tuple." }, { "name": "second", "documentation": " Plucks the second element of a 4-tuple." }, { "name": "map", "documentation": " Maps a function over all elements of a 4-tuple." }, { "name": "third", "documentation": " Plucks the third element of a 4-tuple." }, { "name": "fourth", "documentation": " Plucks the fourth element of a 4-tuple." }], "name": "Tuple4", "documentation": " Class representing 4-tuples of elements of arbitrary type." }, { "methods": [{ "name": "==", "documentation": " Checks the equality of two `Maybe` values. Returns `True` when both values are `Nothing` or when they are `Just` and the values inside are equal." }, { "name": "toText", "documentation": " Text representation of a `Maybe` object." }, { "name": "shortRep", "documentation": " Short text representation of a `Maybe` object." }, { "name": "toJSON", "documentation": " Converts a `Maybe` object to `JSON`." }, { "name": "map", "documentation": " Takes a function `f` and returns `Just (f a)` when called on `Just a` and `Nothing` otherwise." }, { "name": "toList", "documentation": " Cast a `Maybe` value into a `List`. Returns an empty list when the value is missing and a singleton list otherwise." }, { "name": "get", "documentation": " Returns the value when called on `Just`, throws an error otherwise." }, { "name": "withDefault", "documentation": " Returns the value when called on `Just` or the provided default value when called on a `Nothing`." }, { "name": "isJust", "documentation": " Returns `True` when called on a `Just` and `False` otherwise." }, { "name": "isNothing", "documentation": " Returns `True` when called on a `Nothing` and `False` otherwise." }, { "name": "flatMap", "documentation": " Takes a function returning `Maybe`, maps it over `self` and flattens the result." }, { "name": "each", "documentation": " A variant of `map` that executes any effects performed by the function." }, { "name": "flatten", "documentation": " Flattens nested `Maybe` values. Returns `Just a` when called on `Just (Just a)` and `Nothing` otherwise." }], "name": "Maybe", "documentation": " The basic optional type in Luna. The value of this class can either be a `Nothing` (representing the lack of value) or a `Just value` (in the case value is present).\n This is a type-safe substitute for nullable values known from other languages." }, { "methods": [{ "name": "==", "documentation": " Checks whether two `Either` values are equal. Returns `True` when both values are `Left` or both are `Right` and when the contained values are equal." }, { "name": "left", "documentation": " Returns `a` when called on a `Left a`, throws an error otherwise." }, { "name": "right", "documentation": " Returns `a` when called on a `Right a`, throws an error otherwise." }, { "name": "toText", "documentation": " Text representation of an `Either` value." }, { "name": "shortRep", "documentation": " Short text representation of an `Either` value." }, { "name": "toJSON", "documentation": " Converts an `Either` value into a `JSON` object." }, { "name": "map", "documentation": " Runs the provided function on a `Right` value and returns `Left` values unchanged. `a.map f` is the same as `a.either id f`." }, { "name": "flatMap", "documentation": " Takes a function returning an `Either` and runs it when run on a `Right`. Returns the `Left` value unchangeds." }, { "name": "either", "documentation": " Takes two functions returning the same type, calls the first when called on `Left` and the second for `Right`." }, { "name": "toMaybe", "documentation": " Convert an `Either a b` into a `Maybe` by turning a `Left` into `Nothing` (thus forgetting the value in this case) and a `Right a` into `Just a`." }, { "name": "isLeft", "documentation": " Checks whether the value is `Left a`." }, { "name": "isRight", "documentation": " Checks whether the value is `Right a`." }], "name": "Either", "documentation": " `Either` represents an alternative of two different values – either one or the other is present." }, { "methods": [{ "name": "+", "documentation": " List concatenation." }, { "name": "==", "documentation": " List equality. Two lists are equal when they have the same length and their respective elements are equal." }, { "name": "last", "documentation": null }, { "name": "head", "documentation": " Returns `Just` the first element when the list is not empty, `Nothing` otherwise." }, { "name": "toText", "documentation": " Text represenation of a list." }, { "name": "shortRep", "documentation": " Short text representation of a list." }, { "name": "toJSON", "documentation": " Converts a list to a `JSON` object." }, { "name": "isEmpty", "documentation": " Tests whether the list is empty." }, { "name": "length", "documentation": " Computes the length of a list." }, { "name": "reverse", "documentation": " Reverses the list." }, { "name": "take", "documentation": " Returns the list prefix of a given length or the whole list, when the requested prefix is longer than the list." }, { "name": "drop", "documentation": " Returns the list without the prefix of a requested length, or an empty list if the number of dropped elements is larger than the list length." }, { "name": "map", "documentation": " Maps a function over each element of the list." }, { "name": "flatMap", "documentation": " Maps a list-returning function over each element and concatenates the results." }, { "name": "each", "documentation": " Maps a function over each element of the list, immediately executing all side effects and returning a list of results." }, { "name": "tail", "documentation": " Returns `Just` the list without the first element when the list is not empty, `Nothing` otherwise." }, { "name": "prepend", "documentation": " Prepends an element to the list." }, { "name": "sequence", "documentation": " Executes the actions from each element of the list." }, { "name": "at", "documentation": " Returns `Just` the element at a given position in the list. Returns `Nothing` when the index does not exist." }, { "name": "getAt", "documentation": " Returns the element at a given position in the list. Throws an error when the index does not exist." }, { "name": "fold", "documentation": " Takes an initial value and a function. Returns the result of repeatedly calling the function on the next list element and the current accumulator." }, { "name": "foldLeft", "documentation": " Takes an initial value and a function. Returns the result of repeatedly calling the function on the next list element and the current accumulator." }, { "name": "prependAll", "documentation": " Private." }, { "name": "intersperse", "documentation": " Inserts an element between every two elements of a list." }, { "name": "filter", "documentation": " Returns a list of all the elements for which the given predicate returns `True`." }, { "name": "_merge", "documentation": " Private." }, { "name": "sortBy", "documentation": " Sorts the list in an increasing order by the results of the given function." }, { "name": "_chunkBy", "documentation": " Private." }, { "name": "chunkBy", "documentation": " Chunks the list into lists of consecutive values returning the same value of a given function.\n For example:\n ```\n [1, 2, 3, 4, 2, 2].chunkBy (> 2) # => [(False, [1, 2]), (True, [3, 4]), (False, [2, 2])]\n ```" }, { "name": "groupBy", "documentation": " Groups the list into lists of values returning the same value of a given function. Requires the return value of the function to be ordered.\n For example:\n ```\n [1, 2, 3, 4, 2, 2].chunkBy (> 2) # => [(False, [1, 2, 2, 2]), (True, [3, 4])]\n ```" }, { "name": "sort", "documentation": " Sorts the list in an increasing order." }, { "name": "_prefixes", "documentation": " Private." }, { "name": "prefixes", "documentation": " Returns a list of all prefixes of the given list." }, { "name": "zipWith", "documentation": " Returns a list resulting from combining respective elements of two lists with the provided function. The length of the result is the length of the shorter of the lists." }, { "name": "zip", "documentation": " Returns a list of pairs of respective elements of two lists. The length of the result is the length of the shorter of the lists." }, { "name": "_all", "documentation": " Checks whether all elements of a list satisfy a provided predicate." }, { "name": "_any", "documentation": " Checks whether any element of a list satisfies a provided predicate." }, { "name": "collect", "documentation": " Takes a list of `Maybes` and returns a list of all the `Just` elements." }, { "name": "makeText", "documentation": " Converts a list into text by converting each element to text and concatenating them using the provided separator." }, { "name": "concat", "documentation": " Takes a list of lists and concatenates them into a single list." }, { "name": "contains", "documentation": " Checks whether the list contains a given element." }, { "name": "takeWhile", "documentation": " Returns the longest prefix of the list for which a given predicate is satisfied." }], "name": "List", "documentation": " Lists of arbitrary length, consisting of elements of the same type." }, { "methods": [{ "name": "==", "documentation": " Map equality. Two maps are equal when they contain the same keys and the elements associated with each key are equal." }, { "name": "toText", "documentation": null }, { "name": "toJSON", "documentation": " Converts a map with `Text` keys to JSON." }, { "name": "isEmpty", "documentation": " Tests whether the map is empty." }, { "name": "map", "documentation": " Applies a function to each value in the map." }, { "name": "toList", "documentation": " Converts the map into a list of `(key, value)` pairs." }, { "name": "get", "documentation": " Gets an element for a given key. Throws an exception when the key is not present in the Map." }, { "name": "empty", "documentation": " Returns an empty map." }, { "name": "singleton", "documentation": " Returns a map with a single element." }, { "name": "size", "documentation": " Returns the number of values stored in the map." }, { "name": "lookup", "documentation": " Looks up an element for a given key." }, { "name": "insert", "documentation": " Inserts an element at a given key." }, { "name": "_delta", "documentation": null }, { "name": "_ratio", "documentation": null }, { "name": "_bin", "documentation": null }, { "name": "_singleL", "documentation": null }, { "name": "_singleR", "documentation": null }, { "name": "_doubleL", "documentation": null }, { "name": "_doubleR", "documentation": null }, { "name": "_rotateL", "documentation": null }, { "name": "_rotateR", "documentation": null }, { "name": "_balance", "documentation": null }, { "name": "_balanceL", "documentation": null }, { "name": "_balanceR", "documentation": null }, { "name": "_maxView", "documentation": null }, { "name": "_minView", "documentation": null }, { "name": "_glue", "documentation": null }, { "name": "delete", "documentation": " Deletes a key from the given map. If the the key is missing, it returns the original map." }], "name": "Map", "documentation": " Represents a dictionary from keys of given type to values of given type. The keys need to have ordering defined." }, { "methods": [{ "name": "toInt", "documentation": null }, { "name": "toReal", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "coefficient", "documentation": "Field getter." }, { "name": "exponent", "documentation": "Field getter." }], "name": "Scientific", "documentation": null }, { "methods": [{ "name": "toText", "documentation": " Dumps a `JSON` structure into a `Text` object." }, { "name": "shortRep", "documentation": " Short text representation for a `JSON` object." }, { "name": "toJSON", "documentation": " Identity. Included for consistency with other classes." }, { "name": "toBinary", "documentation": null }, { "name": "get", "documentation": " Returns the value associated with a given key. Throws an error when\n the `JSON` is not an object or the key is missing." }, { "name": "at", "documentation": " Returns `Just` the element with a given index assuming the `JSON`\n represents an array and the index is in range. Returns `Nothing` otherwise." }, { "name": "getAt", "documentation": " Returns the element with a given index assuming the `JSON` represents\n an array and the index is in range. Throws an error otherwise." }, { "name": "empty", "documentation": " Returns an empty `JSON` object" }, { "name": "lookup", "documentation": " Returns `Just` the value associated with a given key. Returns `Nothing`\n when the `JSON` is not an object or when the key is missing." }, { "name": "insert", "documentation": " Inserts a value for a given key into the `JSON` object.\n Throws an exception when the `JSON` does not represent an object." }, { "name": "delete", "documentation": " Deletes a value for a given key from the `JSON` object. Does nothing when\n the `JSON` does not represent an object or does not contain the key." }, { "name": "safeParse", "documentation": " Parses a `Text` into a `JSON` object. Returns `Left` containing error\n message when the `Text` does not contain a valid `JSON` object." }, { "name": "parse", "documentation": " Parses a `Text` into a `JSON` object. Throws an error when the `Text`\n does not contain a valid `JSON` object." }, { "name": "render", "documentation": " Dumps a `JSON` structure into a `Text` object." }, { "name": "asObject", "documentation": " Returns a `Map` from `Text` to `JSON`, assuming the `JSON` represents\n an object. Throws an error otherwise." }, { "name": "asText", "documentation": " Returns a `Text` assuming the `JSON` represents text.\n Throws an error otherwise." }, { "name": "asReal", "documentation": " Returns a `Real` assuming the `JSON` represents a number.\n Throws an error otherwise." }, { "name": "asInt", "documentation": " Returns an `Int` assuming the `JSON` represents a number and it\n didn't contain a decimal point. Throws an error otherwise." }, { "name": "asBool", "documentation": " Returns a `Bool` assuming the `JSON` represents a boolean.\n Throws an error otherwise." }, { "name": "asList", "documentation": " Returns a list of `JSON` object assuming the `JSON` represents an array.\n Throws an error otherwise." }, { "name": "safeAsObject", "documentation": " Returns `Just` a `Map` from `Text` to `JSON`, assuming the `JSON`\n represents an object. Returns `Nothing` otherwise." }, { "name": "safeAsText", "documentation": " Returns `Just` a `Text` assuming the `JSON` represents text.\n Returns `Nothing` otherwise." }, { "name": "safeAsReal", "documentation": " Returns `Just` a `Real` assuming the `JSON` represents a number.\n Returns `Nothing` otherwise." }, { "name": "safeAsInt", "documentation": " Returns `Just` an `Int` assuming the `JSON` represents a number and it\n didn't contain a decimal point. Returns `Nothing` otherwise." }, { "name": "safeAsBool", "documentation": " Returns `Just` a `Bool` assuming the `JSON` represents a boolean.\n Returns `Nothing` otherwise." }, { "name": "safeAsList", "documentation": " Returns `Just` a list of `JSON` object assuming the `JSON` represents\n an array. Returns `Nothing` otherwise." }, { "name": "getObject", "documentation": " Gets a `Map` from `Text` to `JSON` associated with a given key.\n Throws an error when the `JSON` is not an object, the key is not present\n or the associated value is not an object." }, { "name": "getText", "documentation": " Gets a `Text` associated with a given key.\n Throws an error when the `JSON` is not an object, the key is not present\n or the associated value is not a text." }, { "name": "getReal", "documentation": " Gets a `Real` associated with a given key. Throws an error when\n the `JSON` is not an object, the key is not present\n or the associated value is not a number." }, { "name": "getInt", "documentation": " Gets an `Int` associated with a given key. Throws an error when the\n `JSON` is not an object, the key is not present or the associated value\n is not an integer." }, { "name": "getBool", "documentation": " Gets a `Bool` associated with a given key. Throws an error when the\n `JSON` is not an object, the key is not present or the associated value\n is not a boolean." }, { "name": "getList", "documentation": " Gets a `List` of `JSON` values associated with a given key. Throws\n an error when the `JSON` is not an object, the key is not present\n or the associated value is not an array." }, { "name": "lookupObject", "documentation": " Looks up a `Map` from `Text` to `JSON` associated with a given key.\n Returns `Nothing` when the `JSON` is not an object, the key is not\n present or the associated value is not an object." }, { "name": "lookupText", "documentation": " Looks up a `Text` associated with a given key. Returns `Nothing` when\n the `JSON` is not an object, the key is not present or the associated\n value is not a text." }, { "name": "lookupReal", "documentation": " Looks up a `Real` associated with a given key. Returns `Nothing` when\n the `JSON` is not an object, the key is not present or the associated\n value is not a number." }, { "name": "lookupInt", "documentation": " Looks up an `Int` associated with a given key. Returns `Nothing` when\n the `JSON` is not an object, the key is not present or the associated\n value is not an integer." }, { "name": "lookupBool", "documentation": " Looks up a `Bool` associated with a given key. Returns `Nothing` when\n the `JSON` is not an object, the key is not present or the associated\n value is not a boolean." }, { "name": "lookupList", "documentation": " Looks up a `List` of `JSON` values associated with a given key.\n Returns `Nothing` when the `JSON` is not an object, the key is not\n present or the associated value is not an array." }], "name": "JSON", "documentation": " Class representing JSON objects." }, { "methods": [{ "name": "take", "documentation": " Takes the value out of the `MVar` and returns it, leaving the `MVar` empty.\n Calling this on an empty `MVar` suspends the thread until the value is put in it." }, { "name": "read", "documentation": " Takes the value out of the `MVar` and returns it, leaving the original value in the `MVar`.\n Calling this on an empty `MVar` suspends the thread until the value is put in it." }, { "name": "put", "documentation": " Puts a value inside the `MVar`. Calling this method on a non-empty `MVar` suspends the thread until the old value is taken out." }], "name": "MVar", "documentation": " MVar is a mutable variable, safe to read and modify in a multi-threaded environment.\n An MVar can either be empty or can contain a value.\n Reading an empty `MVar` locks the thread until a value is written.\n Writing to a non-empty `MVar` locks the thread until a value is taken out." }, { "methods": [{ "name": "head", "documentation": "Field getter." }, { "name": "take", "documentation": " Returns the prefix of the stream of given length." }, { "name": "drop", "documentation": " Drops the given number of elements from the stream." }, { "name": "map", "documentation": " Runs a function on each element on the stream, not executing any side effects." }, { "name": "each", "documentation": " Runs a function on each element of the stream, immediately executing all side effects. Due to the stream being infinite, this function never terminates." }, { "name": "tail", "documentation": "Field getter." }, { "name": "fold", "documentation": " Takes a function and returns a stream resulting from calling the function repeatedly on the next element of the stream and the previously accumulated value, where the first accumulated value is the first element in the stream." }, { "name": "collect", "documentation": " Transforms a stream containing `Maybe` values into one containing only the `Just` items." }, { "name": "takeWhile", "documentation": " Returns the longest prefix of stream in which all elements satisfy the given predicate." }, { "name": "isStream", "documentation": null }, { "name": "foldFrom", "documentation": " Takes an initial value and function. Returns a stream resulting from calling the function repeatedly on the next element of the stream and the previously accumulated value." }, { "name": "consume", "documentation": " `s.consume n` returns a list of the first `n` elements of `s` and the result of dropping the first `n` values of `s`." }, { "name": "consumeWhile", "documentation": " Returns the longest prefix in which all elements satisfy the given predicate, and the result of dropping this prefix from the original stream." }, { "name": "dropWhile", "documentation": " Drops the longest prefix of stream in which all elements satisfy the given predicate." }, { "name": "eval", "documentation": " Evaluates all actions associated with stream elements sequentially. Due to the stream being infinite, this function never terminates." }, { "name": "rateLimit", "documentation": " Returns a stream containing the same values as the original stream, but produces them no more often than the given time interval." }], "name": "Stream", "documentation": " `Stream` represents an infinite data source, with a list-like API." }], "functions": [{ "tag": "added:2.0", "name": ">=", "documentation": " Greater or equal operator. Requires the objects to define both `>` and `==` methods." }, { "name": "<=", "documentation": " Less than or equal to operator. Requires the objects to define both `<` and `==` methods." }, { "name": "if_then_else", "documentation": " The basic conditional operator. `if a then b else c` is `b` when `a` is `True` and `c` otherwise." }, { "name": "seq", "documentation": null }, { "name": "switch", "documentation": " Alias for the `if then else` construction, looks better with currying." }, { "name": "throw", "documentation": " Takes a Text and throws it as an error." }, { "name": "id", "documentation": " Identity function. `id a` is the same as `a` for any `a`." }, { "name": "everyWithState", "documentation": " A variant of `every` in which the action modifies some local state while running." }, { "name": "newMVar", "documentation": " Creates an empty MVar object.\n MVar is a mutable variable, safe to read and modify in a multi-threaded environment.\n An MVar can either be empty or can contain a value.\n Reading an empty `MVar` suspends the thread until a value is written.\n Writing to a non-empty `MVar` suspends the thread until a value is taken out." }, { "name": "fork", "documentation": " Takes an action and executes it in a separate thread." }, { "name": "streamFrom", "documentation": " Builds a stream by repeatedly calling an action. Useful for consuming low-level streaming data sources." }, { "name": "repeatWhile", "documentation": " Repeat an action while predicate returns `True`. Returns a List of all the values for which predicate returned `True`." }, { "name": "delayAsync", "documentation": " Executes an action in a separate thread, after waiting the specified time interval." }, { "name": "every", "documentation": " Takes an action and a `TimeInterval`. Evaluates the action in given intervals, returning a `Stream` of consecutive values.\n Particularly useful for polling webservices or scheduling tasks." }, { "name": "pi", "documentation": " The mathematical constant π = 3.14159265359." }, { "name": "const", "documentation": " Constant function. Ignores its second argument and always returns the first." }, { "name": "when", "documentation": " Takes an action and evaluates it only when a given condition is met. Always returns `None`." }, { "name": "unless", "documentation": " Takes an action returning `None` and evaluating the action only unless a given condition is met." }, { "name": "print", "documentation": " Print the value to standard output. Can be called on any value which defines a `toText` method returning `Text`." }, { "name": "readFile", "documentation": " Read file from the hard drive, returning a `Text` value." }, { "name": "writeFile", "documentation": " Write a Text object into a file with a given path." }, { "name": "catch", "documentation": " Takes a value and a function from Text to value. Returns the value if it was correct or calls the function if the value was erroneous." }] }, { "name": "Std.Foreign", "classes": [{ "methods": [{ "name": "shortRep", "documentation": null }, { "name": "toJSON", "documentation": null }, { "name": "call", "documentation": null }], "name": "FunPtr", "documentation": null }], "functions": [{ "name": "lookupSymbol", "documentation": null }] }, { "name": "Std.Foreign.C.Value", "classes": [{ "methods": [{ "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "ptr", "documentation": null }, { "name": "fromText", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "isNull", "documentation": null }, { "name": "null", "documentation": null }, { "name": "free", "documentation": null }], "name": "CString", "documentation": null }, { "methods": [{ "name": "toList", "documentation": null }, { "name": "size", "documentation": null }, { "name": "ptr", "documentation": null }, { "name": "free", "documentation": null }, { "name": "make", "documentation": null }, { "name": "alloc", "documentation": null }, { "name": "assertInBounds", "documentation": null }, { "name": "uncheckedReadAt", "documentation": null }, { "name": "readAt", "documentation": null }, { "name": "uncheckedWriteAt", "documentation": null }, { "name": "writeAt", "documentation": null }, { "name": "fromList", "documentation": null }], "name": "Array", "documentation": null }, { "methods": [{ "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toList", "documentation": null }, { "name": "ptr", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "free", "documentation": null }, { "name": "make", "documentation": null }, { "name": "fromList", "documentation": null }, { "name": "typeRep", "documentation": null }], "name": "NullTerminatedArray", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CChar", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CUChar", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CWChar", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CInt", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CInt8", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CInt16", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CInt32", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CInt64", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CUInt", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CUInt8", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CUInt16", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CUInt32", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CUInt64", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CLong", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CULong", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CSize", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "%", "documentation": null }, { "name": "/", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toReal", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromInt", "documentation": null }], "name": "CTime", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "/", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toReal", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromReal", "documentation": null }], "name": "CFloat", "documentation": null }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "==", "documentation": null }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "/", "documentation": null }, { "name": "negate", "documentation": null }, { "name": "toReal", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "abs", "documentation": null }, { "name": "fromReal", "documentation": null }], "name": "CDouble", "documentation": null }, { "methods": [{ "name": "retType", "documentation": null }], "name": "RetType", "documentation": null }, { "methods": [{ "name": "==", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "isNull", "documentation": null }, { "name": "free", "documentation": null }, { "name": "cast", "documentation": null }, { "name": "moveBytes", "documentation": null }], "name": "Ptr", "documentation": null }, { "methods": [{ "name": "retType", "documentation": null }, { "name": "fromRetType", "documentation": null }, { "name": "read", "documentation": null }, { "name": "ptr", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "byteSize", "documentation": null }, { "name": "readPtr", "documentation": null }, { "name": "writePtr", "documentation": null }, { "name": "isNull", "documentation": null }, { "name": "null", "documentation": null }, { "name": "free", "documentation": null }, { "name": "typeRep", "documentation": null }, { "name": "moveBytes", "documentation": null }, { "name": "moveElems", "documentation": null }, { "name": "write", "documentation": null }, { "name": "malloc", "documentation": null }, { "name": "mallocElems", "documentation": null }, { "name": "mallocBytes", "documentation": null }], "name": "Pointer", "documentation": null }, { "methods": [{ "name": "==", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "isNull", "documentation": null }, { "name": "free", "documentation": null }, { "name": "cast", "documentation": null }, { "name": "moveBytes", "documentation": null }, { "name": "_ptr", "documentation": null }], "name": "ForeignPtr", "documentation": null }, { "methods": [{ "name": "read", "documentation": null }, { "name": "ptr", "documentation": null }, { "name": "toCArg", "documentation": null }, { "name": "isNull", "documentation": null }, { "name": "null", "documentation": null }, { "name": "free", "documentation": null }, { "name": "typeRep", "documentation": null }, { "name": "moveBytes", "documentation": null }, { "name": "moveElems", "documentation": null }, { "name": "write", "documentation": null }, { "name": "malloc", "documentation": null }, { "name": "mallocElems", "documentation": null }, { "name": "fptr", "documentation": null }, { "name": "fromPointer", "documentation": null }], "name": "ManagedPointer", "documentation": null }], "functions": [{ "name": "nullPtr", "documentation": null }] }, { "name": "Std.Geo", "classes": [{ "methods": [{ "name": "toJSON", "documentation": null }, { "name": "properties", "documentation": "Field getter." }, { "name": "geometry", "documentation": "Field getter." }], "name": "GeoJSONFeature", "documentation": null }, { "methods": [{ "name": "toJSON", "documentation": null }, { "name": "features", "documentation": "Field getter." }], "name": "GeoJSONFeatureCollection", "documentation": null }], "functions": [] }, { "name": "Std.Graphics2D", "classes": [{ "methods": [{ "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "-", "documentation": null }, { "name": "toJSON", "documentation": null }, { "name": "transform", "documentation": null }, { "name": "translate", "documentation": null }, { "name": "rotate", "documentation": null }, { "name": "toSVGDefs", "documentation": null }, { "name": "toSVG", "documentation": null }, { "name": "transformation", "documentation": "Field getter." }, { "name": "definition", "documentation": "Field getter." }], "name": "Geo", "documentation": null }, { "methods": [{ "name": "x", "documentation": "Field getter." }, { "name": "y", "documentation": "Field getter." }, { "name": "toJSON", "documentation": null }], "name": "Point", "documentation": null }, { "methods": [{ "name": "toJSON", "documentation": null }, { "name": "point", "documentation": "Field getter." }, { "name": "leftHandle", "documentation": "Field getter." }, { "name": "rightHandle", "documentation": "Field getter." }], "name": "ControlPoint", "documentation": null }, { "methods": [{ "name": "+", "documentation": null }, { "name": "*", "documentation": null }, { "name": "a", "documentation": "Field getter." }, { "name": "b", "documentation": "Field getter." }, { "name": "c", "documentation": "Field getter." }, { "name": "d", "documentation": "Field getter." }, { "name": "toJSON", "documentation": null }, { "name": "toList", "documentation": null }, { "name": "tx", "documentation": "Field getter." }, { "name": "ty", "documentation": "Field getter." }], "name": "AffineTransformation", "documentation": null }, { "methods": [{ "name": "toJSON", "documentation": null }, { "name": "toSVGDefs", "documentation": null }], "name": "Shape", "documentation": null }, { "methods": [{ "name": "toJSON", "documentation": null }], "name": "BooleanOperation", "documentation": null }, { "methods": [{ "name": "toJSON", "documentation": null }, { "name": "toSVGDefs", "documentation": null }, { "name": "type", "documentation": "Field getter." }, { "name": "operands", "documentation": "Field getter." }], "name": "Boolean", "documentation": null }, { "methods": [{ "name": "toJSON", "documentation": null }, { "name": "toSVGDefs", "documentation": null }], "name": "GeoDef", "documentation": null }], "functions": [{ "name": "translationTrans", "documentation": null }, { "name": "rotationTrans", "documentation": null }, { "name": "identityTrans", "documentation": null }, { "name": "point", "documentation": null }, { "name": "lpoint", "documentation": null }, { "name": "rpoint", "documentation": null }, { "name": "lrpoint", "documentation": null }, { "name": "circle", "documentation": null }, { "name": "rectangle", "documentation": null }, { "name": "path", "documentation": null }, { "name": "emptyGeo", "documentation": null }] }, { "name": "Std.HTTP", "classes": [{ "methods": [{ "name": "toText", "documentation": null }], "name": "HttpMethod", "documentation": " A class representing Http request method" }, { "methods": [{ "name": "toText", "documentation": null }, { "name": "shortRep", "documentation": null }, { "name": "toBinary", "documentation": null }, { "name": "addValue", "documentation": " Adds one pair to the body.\n Returns an `HttpSimpleBody` with the new additional pair" }, { "name": "values", "documentation": "Field getter." }], "name": "HttpSimpleBody", "documentation": " Helper class for passing parameters in the body of an Http request" }, { "methods": [{ "name": "json", "documentation": " Body of a response converted to `JSON`." }, { "name": "stream", "documentation": " Returns the body of the response as a stream.\n Even though it can be used with any response, it is most\n useful when combined with an inherently \"streamy\" data source,\n for example responses from the Twitter Stream API.\n See the `Std.Base` module's `Stream` class for information on\n on working with streams of data in Luna." }, { "name": "toText", "documentation": null }, { "name": "shortRep", "documentation": null }, { "name": "headers", "documentation": "Field getter." }, { "name": "body", "documentation": " The body of the response as a `Binary` blob." }, { "name": "successful", "documentation": " Tells us whether the response came back yielding a successful result.\n We assume that response is successful when its code is one of: 200, 201, 202." }, { "name": "text", "documentation": " Body of the response converted to `Text`." }, { "name": "responseCode", "documentation": "Field getter." }, { "name": "getChunk", "documentation": "Field getter." }], "name": "HttpResponse", "documentation": " Response of an Http request, allows for different methods\n of accessing the body contents, see the methods." }, { "methods": [{ "name": "toText", "documentation": null }, { "name": "shortRep", "documentation": null }, { "name": "uri", "documentation": "Field getter." }, { "name": "headers", "documentation": "Field getter." }, { "name": "auth", "documentation": "Field getter." }, { "name": "oauth1", "documentation": "Field getter." }, { "name": "params", "documentation": "Field getter." }, { "name": "body", "documentation": "Field getter." }, { "name": "method", "documentation": "Field getter." }, { "name": "setMethod", "documentation": " Sets the method of this `HttpReuqest` to a given `HttpMethod`." }, { "name": "setBody", "documentation": " Sets the body of a request.\n Can be called with anything that supports a `toBinary` method,\n including `Text`, `Binary`, `JSON` and `HttpSimpleBody` instances." }, { "name": "setUri", "documentation": null }, { "name": "addHeader", "documentation": " Set the header (key) to a value (val). The header needs to be\n a valid Http header name, like `Accept-Charset` (but the case\n does not matter)." }, { "name": "setBasicAuth", "documentation": " Use the provided username and password as `HttpBasicAuth`." }, { "name": "setParam", "documentation": " Append given key and value to the request params.\n Note: for params passed as the request body,\n consider using `HttpSimpleBody` helper class." }, { "name": "setOAuth1", "documentation": " Construct OAuth1 authentication headers using the provided\n `OAuth1Data` object. For a more detailed description of OAuth, please\n consult `Std.OAuth`." }, { "name": "setOAuth2", "documentation": " Set the OAuth2 authorization token.\n Note that this assumes that the caller already is in possesion of such a token,\n which can be obtained, among other ways, by using the `OAuth2` class from `Std.OAuth`.\n For a more detailed description of OAuth, please consult `Std.OAuth`." }, { "name": "perform", "documentation": " Given a fully constructed `HttpRequest` object, this method\n actually performs the request. Note: no data will actually\n be sent until this method is called." }], "name": "HttpRequest", "documentation": " A class representing an Http request.\n Even though it is possible to construct members of this\n class by hand, the idiomatic way of making the requests\n uses the helper class `Http`. Please consult the documentation below.\n This class provides a couple of setters to manipulate the default\n requests created by `Http` methods." }, { "methods": [{ "name": "head", "documentation": " Create a basic Http HEAD request for a given uri." }, { "name": "get", "documentation": " Create a basic Http GET request for a given uri." }, { "name": "delete", "documentation": " Create an Http DELETE request for a given url." }, { "name": "put", "documentation": " Create an Http PUT request for a given uri and body.\n The body can be anything that provides a `toBinary` method,\n including the `Text`, `Binary`, `JSON` and `HttpSimpleBody` types." }, { "name": "post", "documentation": " Create an Http POST request for a given uri and body.\n The body can be anything that provides a `toBinary` method,\n including the `Text`, `Binary`, `JSON` and `HttpSimpleBody` types." }, { "name": "patch", "documentation": " Create an Http PATCH request for a given uri and body.\n The body can be anything that provides a `toBinary` method,\n including the `Text`, `Binary`, `JSON` and `HttpSimpleBody` types." }, { "name": "connect", "documentation": " Create a basic Http CONNECT request for a given uri." }, { "name": "trace", "documentation": " Create a basic Http TRACE request for a given uri." }, { "name": "options", "documentation": " Create an Http OPTIONS request for a given url." }, { "name": "getBinary", "documentation": " A helper method that immediately gets a binary blob from a given url.\n There is no need to call `perform` here, as it returns a `Binary` response." }, { "name": "getJSON", "documentation": " A helper method that immediately gets a JSON response from a given url.\n There is no need to call `perform` here, as it returns a `JSON` response." }], "name": "Http", "documentation": " The main class for issuing Http requests.\n Provides methods for the most common request methods.\n The basic usage is the following:\n `resp = Http.get \"http://someurl.com/\" . perform`\n When you want to customize the way the requests are made, you can use the setters\n provided by the `HttpRequest` class in the following way:\n ```\n resp = Http.post \"http://someurl.com/\" . setHeader \"Accept\" \"*\"\n . setBasicAuth \"user\" \"pass\"\n . setParam \"someParam\" \"someValue\"\n . perform\n ```\n Note: the `get`, `post`, `put` and `delete` methods need to be followed\n by a `perform` invocation to actually make the request.\n Once we obtain the response object (`resp` in the examples above), we\n can use the methods of the `HttpResponse` class to process it, meaning\n in the examples above you can later call `resp.stream` or `resp.body`." }], "functions": [{ "name": "defaultHttpRequest", "documentation": " A helper function constructing a default `HttpRequest`,\n intended for internal use by the `Http` class.\n It is actually equivalent to `Http.get`." }, { "name": "emptyHttpBody", "documentation": " Conveniently creates an empty `HttpSimpleBody`" }] }, { "name": "Std.MessagePack", "classes": [{ "methods": [{ "name": "==", "documentation": null }, { "name": "toReal", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "shortRep", "documentation": null }, { "name": "toJSON", "documentation": null }, { "name": "toBinary", "documentation": null }, { "name": "map", "documentation": null }, { "name": "toList", "documentation": null }, { "name": "each", "documentation": null }, { "name": "at", "documentation": null }, { "name": "filter", "documentation": null }, { "name": "lookup", "documentation": null }, { "name": "lookupText", "documentation": null }, { "name": "_lookup_list_key", "documentation": null }, { "name": "hasKey", "documentation": null }, { "name": "hasText", "documentation": null }, { "name": "safeLookupText", "documentation": null }, { "name": "sum", "documentation": null }, { "name": "average", "documentation": null }], "name": "MsgPack", "documentation": null }], "functions": [] }, { "name": "Std.OAuth", "classes": [{ "methods": [{ "name": "toText", "documentation": null }, { "name": "shortRep", "documentation": null }, { "name": "clientKey", "documentation": "Field getter." }, { "name": "clientSecret", "documentation": "Field getter." }, { "name": "oauthToken", "documentation": "Field getter." }, { "name": "oauthTokenSecret", "documentation": "Field getter." }], "name": "OAuth1Data", "documentation": " A class encapsulating all the necessary OAuth1 data.\n That means: a `clientKey`, a `clientSecret`, an `oauthToken` and `oauthTokenSecret`.\n It can be passed directly to `HttpResponse.setOAuth1` method, resulting in\n the following usage:\n ```\n oauthData = OAuth1Data someClientKey someClientSecret someOAuthToken someOAuthTokenSecret\n resp = Http.get \"http://someurl.com/\" . setOAuth1 oauthData . perform\n # process the response...\n ```" }, { "methods": [{ "name": "toText", "documentation": null }, { "name": "shortRep", "documentation": null }, { "name": "clientSecret", "documentation": "Field getter." }, { "name": "clientId", "documentation": "Field getter." }, { "name": "accessTokenEndpoint", "documentation": "Field getter." }, { "name": "invalidateTokenEndpoint", "documentation": "Field getter." }, { "name": "callback", "documentation": "Field getter." }], "name": "OAuth2Data", "documentation": " A class encapsulating all the necessary OAuth2 data.\n That means: a `clientId`, a `clientSecret`, an `accessTokenEndpoint`,\n an `invalidateTokenEndpoint` and an optional `callback` url." }, { "methods": [{ "name": "postRequest", "documentation": " A helper method for issuing OAuth2-related requests." }, { "name": "fetchAccessToken", "documentation": " Fetches the authorization token using the provided `OAuth2Data` object." }, { "name": "invalidateToken", "documentation": " Invalidates a token when it is no longer needed." }], "name": "OAuth2", "documentation": " A class used for obtaining the OAuth2 authorization token.\n Given the necessary `OAuth1Data` it will issue a call\n to the `accessTokenEndpoint` and fetch the token. When the\n token is no longer needed it can be invalidated with a call\n to `invalidateToken`.\n An example flow is the following:\n ```\n oauthData = OAuth1Data someClientId someClientSecret someOAuthToken someOAuthTokenSecret\n token = OAuth2.fetchAccessToken oauthData\n resp = Http.get \"http://someurl.com/\" . setOAuth2 token . perform\n ## process the response...\n OAuth2.invalidateToken oauthData token\n ```\n For a more in-depth description of the OAuth2 flow, please see\n https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2" }], "functions": [] }, { "name": "Std.System", "classes": [{ "methods": [{ "name": "isCreatePipe", "documentation": null }], "name": "PipeRequest", "documentation": " Data type representing different ways of connecting the processes outputs (e.g. stdout).\n `Inherit` means that the process gets a given pipe after the process that created it.\n `UseHandle` lets you specify a file to connect to the process instead of, for example, stdout.\n `CreatePipe` creates a fresh connection (pipe) that you can later use to communicate with the process.\n `NoStream` leaves a given pipe closed (e.g. if you don't need the processes stdin)." }, { "methods": [{ "name": "isBuffered", "documentation": null }], "name": "BufferMode", "documentation": " Data type used for specifying the buffering mode of the input-output operations." }, { "methods": [{ "name": "setBuffering", "documentation": " Lets you specify the `BufferMode` for this file." }, { "name": "isOpen", "documentation": " Checks whether the file this handle is referring to is open." }, { "name": "isClosed", "documentation": " Checks whether the file this handle is referring to is closed." }, { "name": "close", "documentation": " Closes the file." }, { "name": "flush", "documentation": " Flushes any buffered content to make sure that it actually goes through." }, { "name": "getContents", "documentation": " Return the contents of the file." }, { "name": "getLine", "documentation": " Get one line of the file." }, { "name": "putText", "documentation": " Write some `Text` to the file." }, { "name": "putLine", "documentation": " Write some `Text` to the file, appending a new line at the end." }, { "name": "toStream", "documentation": " Access this file's contents as a `Stream`.\n For more information on dealing with streams in Luna\n please consult the `Stream` class documentation for `Std.Base`." }], "name": "FileHandle", "documentation": " A class representing a file in the filesytstem." }, { "methods": [{ "name": "wait", "documentation": " Wait for the process described by this handle to finish." }], "name": "ProcessHandle", "documentation": " A class representing the low-level handle to the process in the operating system.\n Note that this class is used internally by `Std.System` and\n most users should use `Process` instead." }, { "methods": [{ "name": "stdin", "documentation": "Field getter." }, { "name": "stdout", "documentation": "Field getter." }, { "name": "stderr", "documentation": "Field getter." }, { "name": "wait", "documentation": " Wait for this process to finish execution." }, { "name": "handle", "documentation": "Field getter." }], "name": "Process", "documentation": " A class representing an operating system process.\n It allows you to access the standard input (`stdin`), the standard output\n (`stdout`) and standard error (`stderr`) of this process, hence allowing\n other processes to communicate with this one.\n It also exposes the `wait` method." }, { "methods": [{ "name": "args", "documentation": "Field getter." }, { "name": "stdin", "documentation": "Field getter." }, { "name": "stdout", "documentation": "Field getter." }, { "name": "stderr", "documentation": "Field getter." }, { "name": "command", "documentation": "Field getter." }, { "name": "setCommand", "documentation": " Set the command to run.\n In general, calls to this method should be avoided, as the command is best passed\n to the `Command.create` call." }, { "name": "setArgs", "documentation": " Set the arguments to the process.\n In general, calls to this method should be avoided, as the arguments are best passed\n to the `Command.create` call." }, { "name": "setStdin", "documentation": " Set the standard input of the process to a specified `PipeRequest`." }, { "name": "setStdout", "documentation": " Set the standard output of the process to a specified `PipeRequest`." }, { "name": "setStderr", "documentation": " Set the standard error of the process to a specified `PipeRequest`." }, { "name": "run", "documentation": " Actually run this process, returning a `Process` instance." }, { "name": "runWithInput", "documentation": " Run this process with specified `input`." }, { "name": "runWithStream", "documentation": " Run this process, passing a stream as its input." }, { "name": "execute", "documentation": " Execute this process from beginning to end, returning its standard output, standard error\n and exit code instead of the `Process` object." }], "name": "ProcessDescription", "documentation": " An object representing a process to launch (as opposed to `Process`, which is an already running process).\n Note: in most cases the constructor for this class should not be called directly.\n It is advisable to use `Command.create` instead. Please see the documentation for `Command`.\n This class provides a set of setters for changing the arguments to the process\n or changing its input and outputs.\n A `ProcessDescription` class will transform into a running `Process` once its `run` method is called." }, { "methods": [{ "name": "create", "documentation": " Create the command to be run." }], "name": "Command", "documentation": " The entry point to creating new processes and running system commands.\n It facilitates easy creation of processes by passing the command to run and its arguments.\n Once you call `Command.create `, you can modify it using the `ProcessDescription`\n methods like `setStdin`. Then, you need to call `run` (or one of its variants) to actually\n execute the process. Example of redirecting the output of `ls -al` to a file:\n ```\n cmd = Command.create \"ls\" [\"-al\"] . setStdout (UseHandle somefile)\n cmd.run\n ```" }, { "methods": [{ "name": "toInt", "documentation": null }, { "name": "toText", "documentation": null }, { "name": "shortRep", "documentation": null }, { "name": "toJSON", "documentation": null }, { "name": "exitSuccess", "documentation": " Is this code a successful one?" }, { "name": "exitFailure", "documentation": " Is this code not a successful one?" }], "name": "ExitCode", "documentation": " Exit code of a process.\n Can either be `ExitSuccess` or `ExitFailure`, in which case it will\n additionally contain the exit code." }], "functions": [{ "name": "withForkWait", "documentation": null }] }, { "name": "Std.Test", "classes": [{ "methods": [{ "name": "specify", "documentation": null }], "name": "Test", "documentation": null }, { "methods": [{ "name": "not", "documentation": null }, { "name": "body", "documentation": "Field getter." }, { "name": "run", "documentation": null }, { "name": "errorMessage", "documentation": "Field getter." }, { "name": "negatedErrorMessage", "documentation": "Field getter." }], "name": "Assertion", "documentation": null }, { "methods": [{ "name": "should", "documentation": null }, { "name": "shouldNot", "documentation": null }, { "name": "subject", "documentation": "Field getter." }], "name": "TestSubject", "documentation": null }, { "methods": [{ "name": "run", "documentation": null }], "name": "Bench", "documentation": null }], "functions": [{ "name": "be", "documentation": null }, { "name": "equal", "documentation": null }, { "name": "throwError", "documentation": null }, { "name": "satisfy", "documentation": null }] }, { "name": "Std.Time", "classes": [{ "methods": [{ "name": "<", "documentation": " Is this `Time` earlier than the `other`?" }, { "name": "==", "documentation": " Does this and the `other` `Time` point to the same time?" }, { "name": ">", "documentation": " Is this `Time` later than the `other`?" }, { "name": "toText", "documentation": " Converts a `Time` to `Text` using the default format (YYYY-MM-DD.HH:MM:SS)." }, { "name": "shortRep", "documentation": null }, { "name": "toJSON", "documentation": null }, { "name": "safeParse", "documentation": " Try to parse `Time` from `Text` assuming the default format of date and time.\n Returns `Just time` if successful, `Nothing` otherwise." }, { "name": "parse", "documentation": " Parse `Time` from `Text`.\n Returns a `Time` object and throws an error if unable to parse the time." }, { "name": "timeZone", "documentation": " Returns the timezone associated with this `Time`." }, { "name": "now", "documentation": " Gets the current time in the users timezone. Usage: `Time.now`." }, { "name": "timeOfDay", "documentation": " Gets time of day (hours, minutes, seconds) as a `TimeOfDay` instance." }, { "name": "setTimeOfDay", "documentation": " Sets the time-of-day part of this `Time` to a given `TimeOfDay` instance." }, { "name": "setTimeZone", "documentation": " Sets the timezone of this time to a given `TimeZone` instance." }, { "name": "_days", "documentation": null }, { "name": "addDays", "documentation": " Advances the date by a given number of days." }, { "name": "subDays", "documentation": " Subtracts a given number of days from the date." }, { "name": "beginningOfDay", "documentation": " Gets the beginning of the current day.\n If called on February 14th at 4:00, it will return February 14th 0:00" }, { "name": "endOfDay", "documentation": " Gets the end of the current day.\n If called on February 14th at 4:00, it will return February 15th 0:00" }, { "name": "timeOfYear", "documentation": " Gets the time of year in form of a tuple: (year, month, day)" }, { "name": "fromTimeOfYear", "documentation": " Creates a `Time` object from its parameters: the year, month and day and an optional `TimeZone`.." }, { "name": "beginningOfMonth", "documentation": " Gets the `Time` representing the first day of the current month." }, { "name": "endOfMonth", "documentation": " Gets the `Time` representing the last day of the current month." }, { "name": "beginningOfYear", "documentation": " Gets the `Time` representing the first day (January 1st) of the current year." }, { "name": "endOfYear", "documentation": " Gets the `Time` representing the last day (December 31st) of the current year." }, { "name": "toUTC", "documentation": " Converts this `Time` instance to a `UTCTime`." }, { "name": "diff", "documentation": " Calculate difference between to time values." }, { "name": "add", "documentation": " Add a `TimeInterval` to this `Time`." }, { "name": "sub", "documentation": " Subtract a `TimeInterval` from this `Time`." }, { "name": "defaultFormat", "documentation": " Default format for `Time`: YYYY-MM-DD.HH:MM:SS+TTTT.\n The `TTTT` in the format above stands for the timezone offset." }, { "name": "safeParseFmt", "documentation": " Tries to parse `Time` from `Text` using the specified format.\n Returns `Just time` if successful and `Nothing` otherwise.\n In most cases, you can use `safeParse`, which uses the default format.\n If a custom format is needed, please see:\n https://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Format.html#v:formatTime" }, { "name": "parseFmt", "documentation": " Parse `Time` from `Text` using the supplied format.\n Returns a `Time` object and throws an error if unable to parse the time.\n In most cases, you can use `parse`, which uses the default format.\n If a custom format is needed, please see:\n https://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Format.html#v:formatTime" }, { "name": "format", "documentation": " Formats a `Time` according to the specifier supplied (converting to `Text`).\n If a custom format is needed, please see:\n https://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Format.html#v:formatTime" }, { "name": "fromEpoch", "documentation": " Parses a `Time` from a number representing the standard epoch." }, { "name": "toEpoch", "documentation": " Converts a `Time` to an epoch." }], "name": "Time", "documentation": " A class representing time (and date), with timezone.\n By default it will use the current timezone as set on the user's machine.\n If you wish to override that behaviour, you can explicitly set the timezone\n with `setTimeZone`, like:\n ```\n Time.now . setTimeZone TimeZone.cst\n ```\n\n `Time` supports various formatting and parsing methods, including the\n default `toText` method, `format` (accepting a format string), `toEpoch`,\n `parse`, `parseFmt` (for custom formats) and `fromEpoch`.\n\n `Time` instances can be compared and you can add and subtract `TimeIntervals`,\n like:\n ```\n Time.now . add 2.minutes\n ```\n The above can also be expressed in a more natural syntax with:\n ```\n 2.minutes.fromNow\n ```\n\n Additional helper methods exist to make working with `Time` easier, please\n consult the docstring for each method for further information." }, { "methods": [{ "name": "==", "documentation": " Is the offset of this `TimeZone` the same as of the `other` one?" }, { "name": "current", "documentation": " Returns the `TimeZone` object representing the current timezone." }, { "name": "toText", "documentation": null }, { "name": "minutes", "documentation": " The offset (in minutes) from the UTC timezone." }, { "name": "create", "documentation": " Creates a new `TimeZoneInstance`." }, { "name": "summerOnly", "documentation": " Is this timezone valid only throughout the summertime?" }, { "name": "name", "documentation": " The three letter shortcut name for this timezone, can be blank." }, { "name": "fromMinutes", "documentation": " Creates a nameless timezone with a given offset (in minutes)." }, { "name": "fromHours", "documentation": " Creates a nameless timezone with a given offset (in hours)." }, { "name": "utc", "documentation": null }, { "name": "gmt", "documentation": null }, { "name": "cst", "documentation": null }, { "name": "pst", "documentation": null }], "name": "TimeZone", "documentation": " A class representing the time zone.\n Please keep in mind that the offset is in minutes, as some timezones\n use the multiple of 15 minutes as the offset." }, { "methods": [{ "name": "<", "documentation": " Does this `TimeOfDay` point to an earlier time during the day than the `other`?" }, { "name": "==", "documentation": " Is this `TimeOfDay` equal to the other? (Up to one second resolution)." }, { "name": ">", "documentation": " Does this `TimeOfDay` point to a later time during the day than the `other`?" }, { "name": "second", "documentation": null }, { "name": "hour", "documentation": null }, { "name": "minute", "documentation": null }, { "name": "midnight", "documentation": null }, { "name": "noon", "documentation": null }], "name": "TimeOfDay", "documentation": " A class representing the time of day (hours, minutes, seconds)." }, { "methods": [{ "name": "<", "documentation": " Is this `UTCTime` earlier than the `other`?" }, { "name": "==", "documentation": " Does this and the `other` `UTCTime` point to the same time?" }, { "name": ">", "documentation": " Is this `UTCTime` later than the `other`?" }, { "name": "toText", "documentation": " Converts a `Time` to `Text` using the default format (YYYY-MM-DD.HH:MM:SS)." }, { "name": "shortRep", "documentation": null }, { "name": "diff", "documentation": " Calculate difference between two time values." }, { "name": "add", "documentation": " Add a `TimeInterval` to this `UTCTime`." }, { "name": "sub", "documentation": " Subtract a `TimeInterval` from this `UTCTime`." }, { "name": "defaultFormat", "documentation": " Default format for `UTCTime`: YYYY-MM-DD.HH:MM:SS." }, { "name": "format", "documentation": " Formats a `Time` according to the specifier supplied (converting to `Text`).\n If a custom format is needed, please see:\n https://hackage.haskell.org/package/time-1.8.0.3/docs/Data-Time-Format.html#v:formatTime" }, { "name": "toZonedTime", "documentation": " Converts this `UTCTime` instance to a `Time`, using the local timezone." }], "name": "UTCTime", "documentation": " A class representing the UTC time (mostly to facilitate other computations).\n For the majority of use-cases it is recommended to use the `Time` class, which\n supports timezones and provides a much richer API. However, for frequent\n operations involving time differences and arithmetic operations, this class\n will provide slightly better performance." }, { "methods": [{ "name": "<", "documentation": null }, { "name": "+", "documentation": null }, { "name": "==", "documentation": " Are this and the `other` `TimeIntervals` the same?" }, { "name": "-", "documentation": null }, { "name": ">", "documentation": null }, { "name": "toInt", "documentation": null }, { "name": "toReal", "documentation": " Return a real representing the number of picoseconds in this `TimeInterval`." }, { "name": "toText", "documentation": null }, { "name": "shortRep", "documentation": null }, { "name": "add", "documentation": null }, { "name": "sub", "documentation": null }, { "name": "toSeconds", "documentation": " Return the number of seconds in this interval." }, { "name": "toMiliseconds", "documentation": " Return the number of miliseconds in this interval." }, { "name": "toMicroseconds", "documentation": " Return the number of microseconds in this interval." }, { "name": "before", "documentation": " Subtract this `TimeInterval` from a given `Time`, hence\n returning a point in time `before` the given `Time`." }, { "name": "from", "documentation": " Add this `TimeInterval` to a given `Time`, hence\n returning a point in time some `TimeInterval` `from` the given `Time`." }, { "name": "ago", "documentation": " Return this `TimeInterval` before now (so some amount of time ago)." }, { "name": "fromNow", "documentation": " Return this `TimeInterval` after now (so some amount of time from now)." }], "name": "TimeInterval", "documentation": " A class representing time intervals, that is: a difference between two times.\n Can be converted to different time resolutions like seconds, miliseconds and microseconds.\n Internally the time interval is stored with picosecond resolution.\n The main purpose of this class is to make working with time intuitive:\n using the helper methods you can write things like:\n ```\n 5.seconds.ago\n 10.minutes.fromNow\n 15.seconds.before someTime\n 20.minutes.after someTime\n ```" }], "functions": [] }, { "name": "Std.WebSockets", "classes": [{ "methods": [{ "name": "path", "documentation": "Field getter." }, { "name": "create", "documentation": " A method actually connecting to the socket." }, { "name": "port", "documentation": "Field getter." }, { "name": "secure", "documentation": "Field getter." }, { "name": "host", "documentation": "Field getter." }, { "name": "setHost", "documentation": " Sets the host part of the url to connect to." }, { "name": "setPath", "documentation": " Sets the path part of the url to connect to." }, { "name": "setPort", "documentation": " Specifies the port to which to connect." }, { "name": "setSecure", "documentation": " Used for explicitly making the connection secure.\n Note that in the majority of use cases this will be deduced from\n the url, hence rendering the usage of this method unnecessary." }], "name": "WebSocketInstance", "documentation": " A class used for creating new `WSConnection` instances,\n hence making the connections over web sockets. Please note\n that it is advisable to use the `WebSocket.connection` method rather\n than to create new connections instead of instantiating this class\n directly. On the other hand, the setters of this class are\n used well with the helper method. Please see the documentation for `WebSocket`." }, { "methods": [{ "name": "stream", "documentation": " Tap into the WebSocket, creating a `Stream` of `Binary` blobs.\n Please see the documentation for `Stream` in `Std.Base` for\n information on how to process streams in Luna." }, { "name": "read", "documentation": " Read from the WebSocket.\n Returns a `Binary` blob that can later be converted\n to any data type necessary." }, { "name": "write", "documentation": " Send textual data over the WebSocket connection.\n Can be given anything that is convertable to `Text` (exposing a `toText` method)." }, { "name": "close", "documentation": " Close the WebSocket connection after it is no longer needed." }, { "name": "writeBinary", "documentation": " Send binary data over the WebSocket connection.\n Can be given anything that is convertable to `Binary` (exposing a `toBinary` method)." }], "name": "WSConnection", "documentation": " A class representing the WebSocket connection.\n This is the handle you are given after you create a WebSocket\n connection with `WebSocket.connection`. It allows you to read\n and write to the WebSocket and close it after it is no longer needed." }, { "methods": [{ "name": "sendToAll", "documentation": " Send a textual message to all of the connected clients.\n The message may be of any type exposing a `toText` method." }, { "name": "sendBinaryToAll", "documentation": " Send a binary message to all of the connected clients.\n The message may be of any type exposing a `toBinary` method." }, { "name": "nextMessage", "documentation": " Helper method that reads the next message that has arrived to the server." }, { "name": "messageStream", "documentation": " Taps into the stream of incoming messages, returning a `Stream` of `Binary` blobs.\n Please see the documentation for `Stream` in `Std.Base` for\n information on how to process streams in Luna." }], "name": "WSServer", "documentation": " A simple broadcast WebSocket server.\n Allows you to send messages to all of the connected clients at once.\n Note that you should use the `WebSocket.server` helper method to create\n instances of this class. Refer to the documentation of the `WebSocket`\n class for more information." }, { "methods": [{ "name": "connection", "documentation": " Connect to the WebSocket at given address (the `host` param).\n You must call `create` on the object created by this method to actually make the connection.\n The host may or may not contain the `ws` or `wss` specifier.\n If `wss` is specified, the connection will be assumed to be secure\n and the port will be set to 443. For `ws` connections the default port\n is 80. If you wish to create a secure connection but leave out the\n `wss` part of the url, you must explicitly call `setSecure` to override\n the defaults. Example usage:\n ```\n conn = WebSocket.connection \"ws://somehost.com/sockets\" . setPort 12345 . create\n stream = conn.stream\n # process the incoming stream...\n conn.close\n ```" }, { "name": "server", "documentation": " Create a simple, broadcast server that recieves messages from its clients\n and can send messages to all of the clients at once.\n you need to specify what will be the address (`host`) of the server and\n on which port it will be accepting the connections (`port`). Once you create it,\n you can call all of the `WSServer` methods on the returned server instance.\n Example usage:\n ```\n server = WebSocket.server \"somehost\" 55555\n server.sendToAll \"hello, clients\"\n responseStream = server.messageStream\n ```" }], "name": "WebSocket", "documentation": " The main class for dealing with WebSockets.\n Supports creating client-side connections (with `connect`) and\n servers (with `server`)." }], "functions": [] }, { "name": "Std.XML", "classes": [{ "methods": [{ "name": "render", "documentation": null }, { "name": "setAttr", "documentation": null }], "name": "XNode", "documentation": null }], "functions": [] }] } \ No newline at end of file diff --git a/favicon.ico b/favicon.ico deleted file mode 100644 index 8b5cd5dc19de0283e2bf959f6a88ba0b7697e565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2067 zcmaJ?c~nzZ9uA_>U{Pc%RF-EVizr!G0*S0434}vJOo9Yk#7FWZAtWy*5AuR-Q4Auo z6cNO+0s{iJFbwYCfT&R%6|~k$JGE3rrC3KR4uhaZofj*1{ut(+bKkx9cYfdZ+rD#d ziBJ%4Z}*WM4u`YnC9p-t0X#LB1&JU~ zZrpSUiooG){go0aBIPGBWw4qIT7AfE^kT_o;k>#so3^_463Wz|N7=ao>Kmb+eX!J}plK7UFiJh%x3K4kg zf~X>izb7T-3xPOT2LYjEdZ3IJ91esr$h1&Kcu>eHAc#t%Q>Y9IEhLaiV^SGRDh+t| z5wU1G`9`LQ&3zXOyG0Te2%=?DCQE8i&IP zkE7GD#pN=%Ggvk(%T+@fWCkn$0~UK2ZY9n4K8*d|& zngp;C-`Jc_^7(gk#Zw|r!hF2_WU$SXkQn=hC-kRN{HQ;lcJx2^EAt0?p9{8Y`{qTd zn1k`3IOs)bGP8wxal;zq_J_N#DFb4*5ml5=;hTgd_a;a$3i&0~XZrCAm%J`^rY`Oa6IVIb z$B?>8{e)G!2V4}Rn|ws((jos_N0Nj59xeW%Yr8DMZAlV6;V$8O?McUByDK*0CgtG^ z89vv|B_WM?@pP}QCei2dg6A;@ioH%Q^{Q)-7~>DI`1U8ppO1Q!>X*uu`p?g?GOs^) zy8NosGl#X{Q4Oir?^9rS=e7E8D5MqN4!qKSsr|l+kg9Gw49Spy;X92Ddrp z4){)tO3SnsXTg_Z!iQkinPrD6CszCSjGwt&{h2A=)OE37+x_qn_ajF-(huFokGMBv zsND8Y;}*YqBfdAa&hm3C8aFLK`6y>PX}W~)#4qP8_qRO>FLxC4Cc&+OdB?k@xs~Gs z)2HTK%}(}SRMfI3sk2-#T&^0c^{jN*wt4I?clKv_cE8TwaUxYFxNBhf{8pUS_z5}8 zlSBw=X?9I*p*Tf7`_V4HGd;7Ytg5m%aJpolcFs8dCql+cMR|wWT#*2tbgFz|Y&&%` zuQ~Zxe$2GoB3Q_H#i$~h8l0kN*{Fp$~LjD>^4`lR-bDtm~v_z20VaIOTOO0 zcYlm@ItY%A-P`j~%y+JJ02cd-fQqM@}!qM+RSLm$Y-gC+nSyGudaBWm!OJnxk;JpO&T3GolZ8PWt1DM z&!@(*+;*A6>!C&J6yC>GI?o8CC}q51BIN1(RY8~VLm_G9C09&RpVFak(*6P5`eH7$ zj#Ek*V(`?$*Fl#9XzhLRvNx(N#Hy*nhnCF;_dPVL cZ+P3_arA%AYwoHhpw?%a#}Tmq%Gyx)A3pIi+W-In diff --git a/index.html b/index.html deleted file mode 100644 index 8032f792..00000000 --- a/index.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - Luna Docs - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 4fc58e06..00000000 --- a/package-lock.json +++ /dev/null @@ -1,4686 +0,0 @@ -{ - "name": "luna-docs", - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.6.tgz", - "integrity": "sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/wast-parser": "1.7.6", - "mamacro": "0.0.3" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz", - "integrity": "sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz", - "integrity": "sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz", - "integrity": "sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz", - "integrity": "sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.6" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz", - "integrity": "sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz", - "integrity": "sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==", - "dev": true, - "requires": { - "mamacro": "0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz", - "integrity": "sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz", - "integrity": "sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz", - "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.6.tgz", - "integrity": "sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.6.tgz", - "integrity": "sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz", - "integrity": "sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/helper-wasm-section": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6", - "@webassemblyjs/wasm-opt": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6", - "@webassemblyjs/wast-printer": "1.7.6" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz", - "integrity": "sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/ieee754": "1.7.6", - "@webassemblyjs/leb128": "1.7.6", - "@webassemblyjs/utf8": "1.7.6" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz", - "integrity": "sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz", - "integrity": "sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-api-error": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/ieee754": "1.7.6", - "@webassemblyjs/leb128": "1.7.6", - "@webassemblyjs/utf8": "1.7.6" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz", - "integrity": "sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/floating-point-hex-parser": "1.7.6", - "@webassemblyjs/helper-api-error": "1.7.6", - "@webassemblyjs/helper-code-frame": "1.7.6", - "@webassemblyjs/helper-fsm": "1.7.6", - "@xtuc/long": "4.2.1", - "mamacro": "0.0.3" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz", - "integrity": "sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/wast-parser": "1.7.6", - "@xtuc/long": "4.2.1" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "5.7.3" - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "optional": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.3" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "optional": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "optional": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "optional": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "bluebird": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", - "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.1", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "1.0.6" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", - "isarray": "1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "requires": { - "bluebird": "3.5.2", - "chownr": "1.0.1", - "glob": "7.1.3", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "optional": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "1.0.0" - } - }, - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-webpack-plugin": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz", - "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", - "dev": true, - "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "globby": "7.1.1", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "minimatch": "3.0.4", - "p-limit": "1.3.0", - "serialize-javascript": "1.5.0" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.1" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.1", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.16", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "optional": true, - "requires": { - "assert-plus": "1.0.0" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" - } - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "tapable": "1.0.0" - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "1.0.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "optional": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", - "dev": true, - "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "optional": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "optional": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.20" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.11.0", - "node-pre-gyp": "0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "minipass": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true - } - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "optional": true, - "requires": { - "assert-plus": "1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "global-modules-path": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz", - "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==", - "dev": true - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "optional": true - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "optional": true, - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "optional": true - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "inquirer": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", - "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.3", - "figures": "2.0.0", - "lodash": "4.17.10", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.3.2", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.11.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "optional": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "optional": true - }, - "jquery": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", - "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "optional": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "optional": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "optional": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "2.0.0" - } - }, - "less": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", - "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", - "requires": { - "clone": "2.1.2", - "errno": "0.1.7", - "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", - "request": "2.88.0", - "source-map": "0.6.1" - } - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "luna-logo": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/luna-logo/-/luna-logo-1.1.9.tgz", - "integrity": "sha512-CJhSdOyepdtb3O4pf8hluglTrQ6CJYEQ6InfjP4FjNu72z67CbwNGLRmft1HnSUK2b/MRs0HA7TW/wHzagbAcA==" - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-age-cleaner": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", - "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", - "dev": true, - "requires": { - "p-defer": "1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "marked": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz", - "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==" - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", - "dev": true, - "requires": { - "map-age-cleaner": "0.1.2", - "mimic-fn": "1.2.0", - "p-is-promise": "1.1.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "optional": true - }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" - }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "requires": { - "mime-db": "1.36.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.3" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "neo-async": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", - "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.4", - "vm-browserify": "0.0.4" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "optional": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", - "dev": true, - "requires": { - "execa": "0.10.0", - "lcid": "2.0.0", - "mem": "4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.3.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", - "dev": true, - "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.16" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", - "dev": true, - "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "optional": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "optional": true, - "requires": { - "asap": "2.0.6" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "optional": true - }, - "public-encrypt": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", - "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "optional": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "optional": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.20", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "1.2.0" - } - }, - "rxjs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz", - "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "0.1.15" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "ajv-keywords": "3.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "optional": true, - "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" - } - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "1.0.5" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "optional": true, - "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" - } - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" - } - }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", - "dev": true, - "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.7", - "serialize-javascript": "1.5.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.2.0", - "worker-farm": "1.6.0" - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "dev": true, - "requires": { - "unique-slug": "2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "dev": true, - "requires": { - "imurmurhash": "0.1.4" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "2.1.1" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "optional": true - }, - "v8-compile-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", - "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "2.0.4", - "graceful-fs": "4.1.11", - "neo-async": "2.5.2" - } - }, - "webpack": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.18.0.tgz", - "integrity": "sha512-XOGIV1FuGSisuX0gJwoANpR0+rUnlDWf2dadNfdT8ftaM8QzIMsJin2vK9XaYuhsji321C6dnCV4bxbIwq9jrg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-module-context": "1.7.6", - "@webassemblyjs/wasm-edit": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6", - "acorn": "5.7.3", - "acorn-dynamic-import": "3.0.0", - "ajv": "6.5.3", - "ajv-keywords": "3.2.0", - "chrome-trace-event": "1.0.0", - "enhanced-resolve": "4.1.0", - "eslint-scope": "4.0.0", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.5.2", - "node-libs-browser": "2.1.0", - "schema-utils": "0.4.7", - "tapable": "1.0.0", - "uglifyjs-webpack-plugin": "1.3.0", - "watchpack": "1.6.0", - "webpack-sources": "1.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "webpack-cli": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.0.tgz", - "integrity": "sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "global-modules-path": "2.3.0", - "import-local": "1.0.0", - "inquirer": "6.2.0", - "interpret": "1.1.0", - "loader-utils": "1.1.0", - "supports-color": "5.5.0", - "v8-compile-cache": "2.0.2", - "yargs": "12.0.2" - } - }, - "webpack-sources": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", - "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", - "dev": true, - "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "requires": { - "errno": "0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", - "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "2.0.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "10.1.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - } - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 2b95c3cb..00000000 --- a/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "luna-docs", - "description": "Luna documentation", - "dependencies": { - "jquery": "^3.3.1", - "less": "^3.8.0", - "luna-logo": "^1.1.9", - "marked": "^0.4.0" - }, - "devDependencies": { - "webpack": "^4.18.0", - "webpack-cli": "^3.1.0", - "copy-webpack-plugin": "^4.5.2" - }, - "scripts": { - "webpack": "webpack" - } -} diff --git a/src/JsonToHtml.js b/src/JsonToHtml.js deleted file mode 100644 index 0954fb9a..00000000 --- a/src/JsonToHtml.js +++ /dev/null @@ -1,348 +0,0 @@ -const xmlHttp = new XMLHttpRequest; -const jsonFile = 'data/doc.json' -const marked = require('marked'); - -// Parsing data from json for main panel -const getMainData = function(data) { - let output = ''; - const modules = data.units; - - //checking every module - let currentModuleNumber = 0; - while (currentModuleNumber < modules.length) { - var mdtohtml, tagType; - const module = modules[currentModuleNumber]; - - //setting module name div with events and its tags - output += `
\ -
\ -

${module.name}

`; - - if ((module.tag !== null) && (module.tag !== undefined)) { - tagType = module.tag.split(":"); - var _typeOfTag = tagType[0] - var _versionOfChange = tagType[1] - output += `
\ -

${_typeOfTag.replace(/\s/g,'')} in ${_versionOfChange.replace(/\s/g,'')}

`; - } - output += `
\ - \ -     `; - - if ((module.link !== null) && (module.link !== undefined)) { - output += ''; - } - output += '
'; - - //setting module name div documentation - if ((module.documentation !== null) && (module.documentation !== undefined)) { - mdtohtml = marked(module.documentation); - output += '

Module overview

'; - output += `
${mdtohtml}
`; - } - - output += '
'; - let currentModuleClassNumber = 0; - while (currentModuleClassNumber < module.classes.length) { - const Mclass = module.classes[currentModuleClassNumber]; - - //setting class name div and its events and tags - output += `
\ -
\ -

${Mclass.name}

`; - - if ((Mclass.tag !== null) && (Mclass.tag !== undefined)) { - tagType = Mclass.tag.split(":"); - var _typeOfTag = tagType[0] - var _versionOfChange = tagType[1] - output += `
\ -

${_typeOfTag.replace(/\s/g,'')} in ${_versionOfChange.replace(/\s/g,'')}

`; - } - output += `
    `; - - if ((Mclass.link !== null) && (Mclass.link !== undefined)) { - output += `')}`; - } - output += '
'; - - //setting class documentation div - if (Mclass.documentation !== null) { - mdtohtml = marked(Mclass.documentation); - output += `
${mdtohtml}
`; - } - - if ((Mclass.longDocumentation !== null) && (Mclass.longDocumentation !== undefined)) { - mdtohtml = marked(Mclass.longDocumentation); - output += `
${mdtohtml}
`; - } - - output += '
'; - - //setting class methods - let currentModuleClassMethodNumber = 0; - let printedInfo = false; - while (currentModuleClassMethodNumber < Mclass.methods.length) { - const Mmethod = Mclass.methods[currentModuleClassMethodNumber]; - - // Check if methods are classified - if ((Mmethod.type !== null) && (Mmethod.type !== undefined)) { - output += `
\ -

${Mmethod.type}

`; - - //setting method classifications - let currentModuleClassMethodFromTypeNumber = 0; - while (currentModuleClassMethodFromTypeNumber < Mmethod.methods.length) { - const MmethodWithType = Mmethod.methods[currentModuleClassMethodFromTypeNumber]; - const MmethodWithTypeNameAndType = MmethodWithType.name.split(":"); - const __nameOfMethodWithType = MmethodWithTypeNameAndType[0].replace(/\s/g, ''); - const __typeOfMethodWithType = MmethodWithTypeNameAndType[1] - - //setting methods names, events and documentation - output += `
`; - output += '
'; - output += `

${__nameOfMethodWithType}`; - - if (__typeOfMethodWithType !== undefined) { - output += ` :${__typeOfMethodWithType}`; - } - output += '

'; - if ((MmethodWithType.tag !== null) && (MmethodWithType.tag !== undefined)) { - tagType = MmethodWithType.tag.split(":"); - var _typeOfTag = tagType[0] - var _versionOfChange = tagType[1] - output += `
\ -

${_typeOfTag.replace(/\s/g,'')} in ${_versionOfChange.replace(/\s/g,'')}

`; - } - output += `
    `; - - if ((MmethodWithType.link !== null) && (MmethodWithType.link !== undefined)) { - output += `')}`; - } - output += '
'; - - if (MmethodWithType.documentation !== null) { - mdtohtml = marked(MmethodWithType.documentation); - output += `
${mdtohtml}
`; - } - - output += '
'; - currentModuleClassMethodFromTypeNumber++; - } - output += '
'; - - } else { - // displaying info that those methods aren't classified yet - if (printedInfo === false) { - output += '
'; - output += '

Unclassified methods

'; - printedInfo = true; - } - - //setting method names, events and documentation - const MmethodWithNameAndType = Mmethod.name.split(":"); - const __nameOfMethod = MmethodWithNameAndType[0].replace(/\s/g, ''); - const __typeOfMethod = MmethodWithNameAndType[1]; - output += `
`; - output += '
'; - output += `

${__nameOfMethod}`; - - if (__typeOfMethod !== undefined) { - output += ` :${__typeOfMethod}`; - } - output += '

'; - if ((Mmethod.tag !== null) && (Mmethod.tag !== undefined)) { - tagType = Mmethod.tag.split(":"); - var _typeOfTag = tagType[0]; - var _versionOfChange = tagType[1]; - output += `
\ -

${_typeOfTag.replace(/\s/g,'')} in ${_versionOfChange.replace(/\s/g,'')}

`; - } - output += `
\ -     `; - - if ((Mmethod.link !== null) && (Mmethod.link !== undefined)) { - output += ``; - } - output += '
'; - - if (Mmethod.documentation !== null) { - mdtohtml = marked(Mmethod.documentation); - output += `
${mdtohtml}
`; - } - - output += '
'; - } - //getting to next method or classification - currentModuleClassMethodNumber++; - - if (currentModuleClassMethodNumber === Mclass.methods.length) { - output += '
'; - } - } - - //getting to next class - output += '
'; - currentModuleClassNumber++; - } - output += '
'; - - //looping through each function in current module - if (module.functions.length !== 0) { - output += `

Functions

`; - output += `
\ -     \ -
`; - - let currentModuleFunctionNumber = 0; - while (currentModuleFunctionNumber < module.functions.length) { - // setting each function name, documentation and events - const Mfunction = module.functions[currentModuleFunctionNumber]; - const MfunctionNameAndType = Mfunction.name.split(":"); - const __nameOfFunctionWithType = MfunctionNameAndType[0].replace(/\s/g, ''); - const __typeOfFunctionWithType = MfunctionNameAndType[1]; - output += `
`; - output += '
'; - output += `

${__nameOfFunctionWithType}`; - - if (__typeOfFunctionWithType !== undefined) { - output += ` :${__typeOfFunctionWithType}`; - } - output += '

'; - - if ((Mfunction.tag !== null) && (Mfunction.tag !== undefined)) { - tagType = Mfunction.tag.split(":"); - var _typeOfTag = tagType[0] - var _versionOfChange = tagType[1] - output += `
\ -

${_typeOfTag.replace(/\s/g,'')} in ${_versionOfChange.replace(/\s/g,'')}

`; - } - output += `
\ -     `; - - if ((Mfunction.link !== null) && (Mfunction.link !== undefined)) { - output += ``; - } - output += '
'; - - if (Mfunction.documentation !== null) { - mdtohtml = marked(Mfunction.documentation); - output += `
${mdtohtml}
`; - } - - // going to next function - output += '
'; - currentModuleFunctionNumber++; - } - - output += '
'; - } - // going to next module - output += '
'; - currentModuleNumber++; - } - - // sending processed data to html file - document.getElementById('data').innerHTML = output; -}; - - -// processing data for tree menu -const getMenuData = function(data) { - let menu = '
    '; - const modules = data.units; - - // looping through each module - let currentModuleNumber = 0; - while (currentModuleNumber < modules.length) { - const module = modules[currentModuleNumber]; - - menu += '
  • '; - menu += `${module.name}`; - menu += '
      '; - - // looping through each class - let currentModuleClassNumber = 0; - while (currentModuleClassNumber < module.classes.length) { - const Mclass = module.classes[currentModuleClassNumber]; - menu += '
    • '; - menu += `${Mclass.name} `; - menu += '
        '; - // looping through each class' method - let currentModuleClassMethodNumber = 0; - while (currentModuleClassMethodNumber < Mclass.methods.length) { - const Mmethod = Mclass.methods[currentModuleClassMethodNumber]; - - if ((Mmethod.type !== null) && (Mmethod.type !== undefined)) { - let currentModuleClassMethodFromTypeNumber = 0; - while (currentModuleClassMethodFromTypeNumber < Mmethod.methods.length) { - const MmethodWithType = Mmethod.methods[currentModuleClassMethodFromTypeNumber]; - const MmethodWithTypeNameAndType = MmethodWithType.name.split(":"); - menu += `
      • \ - ${MmethodWithTypeNameAndType[0]}
      • `; - currentModuleClassMethodFromTypeNumber++; - } - - } else { - const MmethodNameAndType = Mmethod.name.split(":"); - menu += `
      • ${MmethodNameAndType[0]}
      • `; - } - currentModuleClassMethodNumber++; - } - - menu += '
    • '; - currentModuleClassNumber++; - } - - // looping through each module function - if (module.functions.length !== 0) { - menu += `
    • Functions`; - menu += '
        '; - - currentModuleFunctionNumber = 0; - while (currentModuleFunctionNumber < module.functions.length) { - const Mfunction = module.functions[currentModuleFunctionNumber]; - const MfunctionNameAndType = Mfunction.name.split(":"); - menu += `
      • ${MfunctionNameAndType[0]}
      • `; - currentModuleFunctionNumber++; - } - - menu += '
    • '; - } - menu += '
  • '; - currentModuleNumber++; - } - menu += '
'; - - // sending processed menu data to html file - document.getElementById('menuPane').innerHTML += menu; -}; - -// Processing http request on page load -xmlHttp.onreadystatechange = function() { - if ((this.readyState === 4) && (this.status === 200)) { - const data = JSON.parse(this.responseText); - getMainData(data); - getMenuData(data); - } -}; - -xmlHttp.open('GET', jsonFile, true); -xmlHttp.send(); diff --git a/src/TreeHelpers.js b/src/TreeHelpers.js deleted file mode 100644 index 364587ae..00000000 --- a/src/TreeHelpers.js +++ /dev/null @@ -1,213 +0,0 @@ -const $ = require('jquery'); -const minScreenWidth = 780; - -// Extension - create tree menu panel -$.fn.extend({ - treed: function() { - var openedClass = 'fa fa-caret-down'; - var closedClass = 'fa fa-caret-right'; - - // create tree from selected element - var tree = $(this); - tree.addClass("treeMenu"); - // create branches - tree.find('li').has("ul").each(function() { - var branch = $(this); - branch.prepend(""); - branch.addClass('branch'); - //add click event - branch.on('click', function(e) { - if (this == e.target) { - var icon = $(this).children('i:first'); - icon.toggleClass(openedClass + " " + closedClass); - $(this).children().children().toggle(); - } - }) - branch.children().children().toggle(); - }); - - //add events for open/close indicators - tree.find('.branch .indicator').each(function() { - $(this).on('click', function() { - $(this).closest('li').click(); - }); - }); - } -}); - -// setting up new observer -MutationObserver = window.MutationObserver || window.WebKitMutationObserver; -var treeDataObserver = new MutationObserver(function(mutations, observer) { - // checking each mutation - for (var i = 0; i < mutations.length; ++i) { - for (var j = 0; j < mutations[i].addedNodes.length; ++j) { - //check if browser rendered place for tree menu - if (mutations[i].addedNodes[j].id == "treeMID") { - //creation of new tree menu - $('#treeMID').treed(); - //setting up scrolling events - scrollableAfterDOMContentLoadedProperly(); - - function offsetAnchor() { - if (location.hash.length !== 0) { - window.scrollTo(window.scrollX, window.scrollY - 100); - } - } - - //activating proper places on click on menu - $(document).on('click', 'a[href^="#"]', function(event) { - window.setTimeout(function() { - offsetAnchor(); - window.scrollBy(0, 50); - }, 0); - - if ($(document).width() <= minScreenWidth) { - document.getElementById("menuPane").style.width = "0px"; - document.getElementById("data").style.marginLeft = "0px"; - } - var url = window.location.href; - updateMenuActivity(url); - }); - window.setTimeout(offsetAnchor, 0); - - //going to proper anchor from url - if (window.location.hash != "") { - var url = encodeURI(window.location.hash); - location.href = url; - window.scrollBy(0, 50); - } - } - } - } -}); - -// adding observer to mutate if only menu files were loaded properly -treeDataObserver.observe($("#menuPane").get(0), { - childList: true -}); - -// function for getting parents of each element as array -var getParents = function(elem) { - var parents = []; - for (; elem && elem !== document; elem = elem.parentNode) { - parents.push(elem); - } - return parents; -}; - -var updateMenuActivity = function(url) { - //1. remove all active states on every scroll event - $(".treeMenu li,a,ul,i").removeClass("active"); - - //loop through each element in menu - $(".treeMenu a").each(function() { - //Check if current element is the one displayed - if (url == (this.href)) { - var parents = getParents(this); - - //apply specific classes to proper parent elements of checked element - for (var i = 0; i < parents.length; i++) { - if ($(parents[i]).attr("id") != "menuPane") { - if (i == 0) { - var activeItem = $(parents)[0]; - - //checks if there is need to scroll menu - if (checkIfInView($(activeItem)) == false) { - var wH = $(window).height(); - var activeY = $(activeItem).offset().top - scrollY; - if (activeY > wH / 2) { - activeItem.scrollIntoView(false); - } else { - activeItem.scrollIntoView(true); - } - } - } - - // adding active state for classess/functions - if ($(parents[i]).is("li") && i > 0) { - $(parents[i]).addClass('active'); - $(parents[i]).children().addClass('active'); - } - - // opening branches and changing triangular indicators - if (i > 1 && $(parents[i]).attr("class") != "branch") { - $(parents[i]).css("display", ""); - var openedClass = 'fa fa-caret-down'; - var closedClass = 'fa fa-caret-right'; - - if ($(parents[i]).children('i:first').hasClass(closedClass)) { - var icon = $(parents[i]).children('i:first'); - icon.toggleClass(openedClass + " " + closedClass); - } - - $(parents[i]).children().css("display", ""); - } - - //changing state of proper module - if ($(parents[3]).children()[1] !== undefined) { - array = $(parents[3]).children()[1].href.split("_") - - if (array[array.length - 1] == "Functions") { - $(parents[2]).children().css("display", "none"); - var icon = $(parents[3]).children('i:first'); - icon.removeClass(openedClass); - icon.addClass(closedClass); - } - } - } else { - break; - } - } - } - }); -}; - -function checkIfInView(elem, partial) { - //get the window heights - var container = $(".sidenav"); - var contHeight = container.height(); - var contTop = container.scrollTop(); - var contBottom = contTop + contHeight; - - //check if highlighted element is on screen by getting its position and - //comparing against container sizes - var elemTop = $(elem).offset().top - container.offset().top; - var elemBottom = elemTop + $(elem).height(); - - var isTotal = (elemTop >= 0 && elemBottom <= contHeight); - var isPart = ((elemTop < 0 && elemBottom > 0) || (elemTop > 0 && elemTop <= container.height())) && partial; - - return isTotal || isPart; -} - -function scrollableAfterDOMContentLoadedProperly() { - // do not update menu on small devices - they are not processing it fast - if ($(document).width() > minScreenWidth) { - $(document).scroll(function() { - //check each panel if it is on screen - $('.module_classes_class, .functions').each(function() { - $(this).css('background-color', 'white'); - if (checkIfInView($(this), true) == true) { - // update active menu item - var url = window.location.href.split('#')[0] + "#" + $(this).attr('id'); - updateMenuActivity(url); - } - }); - }); - } -} - -// Show navigation menu on small screens and make it on full screen -function openNav() { - //check if opened - const screenWidth = $(document).width(); - console.log(screenWidth); - - if (document.getElementById("menuPane").style.width != `${screenWidth}px`) { - document.getElementById("menuPane").style.width = `${screenWidth}px`; - document.getElementById("data").style.marginLeft = `${screenWidth}px`; - } else { - document.getElementById("menuPane").style.width = "0"; - document.getElementById("data").style.marginLeft = "0"; - } -} diff --git a/styles/style.less b/styles/style.less deleted file mode 100644 index 5b225b0c..00000000 --- a/styles/style.less +++ /dev/null @@ -1,457 +0,0 @@ -@backgroundColor: #fafafa; -@textColor: #333; -@blueColor: #0070c9; -@grayMenuListColor: #616060; -@grayTagColor: #aaa; -@deprecatedColor: #c35400; -@boxShadowColor: rgba(0, 0, 0, 0.06); -@panelBackground: #fff; - -@infoWeight: 300; -@sourceAndHeadWeight: 500; -@mainWeight: 400; -@boldWeight: 600; - -@smallScreenSize: 780px; -@maxScreenWidthForShrinkableMain: 1670px; -@menuWidth: 350px; -@mobilePaddingsAndWidths: 0; -@maxMainWidth: 980px; -@sidenavHeight: calc(100% - 96px); -@bigHeightForMarginsAndPaddings: 48px; -@mainLineHeight: 1.45; -@moduleLineHeight: 1.05; - -@mainFontSize: 17px; -@bigFont: 40px; -@smallFontForCode: 14px; -@logoFontAndClassName: 24px; -@mediumFont: 18px; - -@hoverableAnchorsBottominMethodAndFunction: 0; -@fontMargin: 0; -@paddingsChanges: 30px; -@prePaddingsandModuleMargins: 10px; -@tagBorderRadiusAndBottoms: 6px; -@mainLetterSpacing: -0.021em; -@modulePaddingAndMargin: 20px; -@methodSpacing: 0.016em; -@shadowRadius: 16px; -@mainPaddingLeft: 50px; -@smallPadding: 1px; -@menuSmallMargin: 12px; -@treeMenuMarginLeft: 1em; - -/* HTML Elements */ -body { - font-family: 'Open Sans', sans-serif; - background-color: @backgroundColor; - -webkit-font-smoothing: antialiased; - font-size: @mainFontSize; - line-height: @mainLineHeight; - font-weight: @mainWeight; - letter-spacing: @mainLetterSpacing; -} - -p, -h1, -h2, -h3, -h4, -h5, -h6 { - color: @textColor; - margin: @fontMargin; -} - -a:hover { - color: @blueColor !important; - text-decoration: none; -} - -a { - color: @textColor; - background-color: transparent; - text-decoration: none; - display: inline-block; -} - -code, -pre, -samp { - color: @blueColor; - background-color: transparent; - font-size: inherit; - font-family: 'Source Code Pro', Monaco, courier, Menlo, monospace; - line-height: @mainLineHeight; - font-weight: @sourceAndHeadWeight; - display: inline-block; -} - -pre { - display: block; - padding: @prePaddingsandModuleMargins; - font-size: @smallFontForCode; - line-height: @mainLineHeight; - word-break: break-all; - word-wrap: break-word; - background-color: @backgroundColor; - overflow: auto; -} - -pre code { - padding: @fontMargin; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; -} - -.pageHeader { - background-color: @textColor; - height: @bigHeightForMarginsAndPaddings; - width: 100%; - position: fixed; - z-index: 2; - top: @fontMargin; - left: @fontMargin; - overflow-x: hidden; - overflow-y: hidden; -} - - -/* Main page settings */ -.main { - margin-left: auto; - margin-right: auto; - position: relative; - padding: @fontMargin; - margin-top: @bigHeightForMarginsAndPaddings; - max-width: @maxMainWidth; - overflow-x: hidden; - overflow-y: hidden; - z-index: 1; -} - -.moduleDiv { - padding: @modulePaddingAndMargin; - padding-top: @bigHeightForMarginsAndPaddings; -} - -.moduleDocumentation { - margin-bottom: @modulePaddingAndMargin; -} - -.methodTypeDiv { - margin-top: @bigHeightForMarginsAndPaddings; - margin-bottom: @bigHeightForMarginsAndPaddings; - font-size: @mediumFont; - line-height: @mainLineHeight; - font-weight: @infoWeight; - letter-spacing: @methodSpacing; -} - -.methodTypeDocumentation { - font-size: @mediumFont; - line-height: @mainLineHeight; - font-weight: @infoWeight; - letter-spacing: @methodSpacing; - margin-bottom: @modulePaddingAndMargin; -} - -.module_classes_class { - padding: @bigFont; - background-color: @panelBackground; - border-radius: @bigFont; - margin-top: @bigHeightForMarginsAndPaddings; - box-shadow: @fontMargin @fontMargin @shadowRadius @boxShadowColor; -} - -.classDocumentation { - font-size: @logoFontAndClassName; - line-height: @mainLineHeight; - font-weight: @mainWeight; - letter-spacing: @methodSpacing; - margin-bottom: @prePaddingsandModuleMargins; -} - -.classLongDocumentation { - margin-bottom: @modulePaddingAndMargin; -} - -.methodDiv { - padding-left: @mainPaddingLeft; - margin-bottom: @modulePaddingAndMargin; -} - -.methodDocumentation { - padding-left: @modulePaddingAndMargin; - font-size: @mediumFont; - line-height: @mainLineHeight; - font-weight: @infoWeight; - letter-spacing: @methodSpacing; -} - -.functions { - padding: @bigFont; - background-color: @panelBackground; - border-radius: @bigFont; - margin-top: @bigHeightForMarginsAndPaddings; - box-shadow: @fontMargin @fontMargin @shadowRadius @boxShadowColor; -} - -.functionNameDiv { - padding-left: @mainPaddingLeft; - margin-bottom: @modulePaddingAndMargin; -} - -.functionDocumentation { - padding-left: @modulePaddingAndMargin; - font-size: @mediumFont; - line-height: @mainLineHeight; - font-weight: @infoWeight; - letter-spacing: @methodSpacing; -} - -.hoverableAnchors { - display: none; - margin-left: @logoFontAndClassName; - position: relative; - bottom: @tagBorderRadiusAndBottoms; -} - -.methodDiv .hoverableAnchors, -.functionNameDiv .hoverableAnchors { - bottom: @hoverableAnchorsBottominMethodAndFunction; -} - -.module { - font-size: @bigFont; - line-height: @moduleLineHeight; - font-weight: @boldWeight; - padding-bottom: @shadowRadius; - white-space: nowrap; - overflow-x: auto; - display: inline; -} - -.module_overview { - font-size: @mediumFont; - line-height: @mainLineHeight; - font-weight: @mainWeight; - letter-spacing: @methodSpacing; - margin-bottom: @prePaddingsandModuleMargins; -} - -.methodName { - font-weight: @boldWeight; - display: inline; -} - -.MethodTypeHead { - font-size: @modulePaddingAndMargin; - line-height: @mainLineHeight; - padding-bottom: @paddingsChanges; - font-weight: @sourceAndHeadWeight; - white-space: nowrap; - overflow-x: auto; - display: inline-block; -} - -.functionsHeader { - font-size: @bigFont; - line-height: @mainLineHeight; - font-weight: @sourceAndHeadWeight; - white-space: nowrap; - overflow-x: auto; - padding-bottom: @logoFontAndClassName; - display: inline-block; -} - -.functionName { - font-weight: @boldWeight; - display: inline-block; -} - -.className { - font-size: @bigFont; - line-height: @mainLineHeight; - font-weight: @sourceAndHeadWeight; - white-space: nowrap; - overflow-x: auto; - padding-bottom: @shadowRadius; - display: inline; -} - - -/* Logo settings */ -.lunaDocsLogo { - color: @backgroundColor; - font-size: @logoFontAndClassName; - line-height: @moduleLineHeight; - font-weight: @mainWeight; - margin: auto; -} - -#logoPlace { - padding: @menuSmallMargin; - padding-left: @logoFontAndClassName; -} - - -/* Tree menu layout settings */ -.sidenav { - background-color: @backgroundColor; - height: @sidenavHeight; - width: @menuWidth; - position: fixed; - z-index: 3; - top: @fontMargin; - left: @fontMargin; - overflow-x: hidden; - padding-top: @bigHeightForMarginsAndPaddings; - margin-top: @bigHeightForMarginsAndPaddings; -} - -.showMenuOnSmallScreen { - display: none; - font-size: @logoFontAndClassName; - cursor: pointer; - margin: auto @menuSmallMargin; - color: @backgroundColor; -} - -.treeMenu, -.treeMenu ul { - margin: @fontMargin; - padding: @fontMargin; - list-style: none -} - -.treeMenu ul { - margin-left: @treeMenuMarginLeft; - position: relative -} - -.treeMenu ul ul { - margin-left: @treeMenuMarginLeft -} - -.treeMenu li { - line-height: @mainLineHeight; - color: @grayMenuListColor; - font-weight: @mainWeight; - position: relative; - padding-left: @logoFontAndClassName; - padding-bottom: @tagBorderRadiusAndBottoms; -} - -.treeMenu li a { - text-decoration: none; - color: @grayMenuListColor; -} - - -/* Tree menu activity states + triangle indicators */ -.active { - text-decoration: none; - color: @textColor !important; - font-weight: @boldWeight; -} - -.indicator { - margin-right: @tagBorderRadiusAndBottoms; - width: @prePaddingsandModuleMargins; - cursor: pointer; -} - -.indicator.fa-caret-down.fa { - padding-bottom: @shadowRadius; -} - - -/* Tags*/ -.tag { - display: inline-block; - margin-left: @logoFontAndClassName; - position: relative; - bottom: @tagBorderRadiusAndBottoms; - font-size: @smallFontForCode; - border: @smallPadding solid @grayTagColor; - padding: @smallPadding @menuSmallMargin; - border-radius: @tagBorderRadiusAndBottoms; - box-sizing: inherit; -} - -.tag>p { - letter-spacing: -@smallPadding; - font-weight: @mainWeight; -} - -.tag_deprecated { - border: @smallPadding solid @deprecatedColor !important; -} - -.tag_deprecated>p { - color: @deprecatedColor; -} - -.tag_modified>p, -.tag_added>p { - color: @grayTagColor; -} - -/* Screen sizing */ -@media screen and (max-width: @smallScreenSize) { - .sidenav { - width: @mobilePaddingsAndWidths; - } - .main { - margin-left: @mobilePaddingsAndWidths; - padding: @mobilePaddingsAndWidths; - position: initial - } - .showMenuOnSmallScreen { - display: block !important; - } - .module_classes { - margin: -@paddingsChanges !important; - } - .module_classes_class { - padding: @paddingsChanges !important; - } - .methodDiv { - padding-left: @mobilePaddingsAndWidths!important; - } - .functions { - margin: @bigHeightForMarginsAndPaddings -@paddingsChanges !important; - padding: @paddingsChanges !important; - } - .functionNameDiv { - padding-left: @mobilePaddingsAndWidths!important; - } - .functionsHeader, - .className { - font-size: @logoFontAndClassName; - } - .classDocumentation, - .classLongDocumentation, - .functionDocumentation { - font-size: @smallFontForCode; - } - .tag, - .hoverableAnchors { - bottom: 4px; - } -} - -@media screen and (max-width: @maxScreenWidthForShrinkableMain) and (min-width: @smallScreenSize) { - .main { - margin-left: @menuWidth !important; - padding: @mobilePaddingsAndWidths; - max-width: @maxMainWidth !important; - } - .sidenav { - width: @menuWidth !important; - } -} diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index cf4437d9..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,53 +0,0 @@ -const path = require('path'); -const webpack = require('webpack'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); - -// assets.js -const Npm = ["marked/marked.min.js", - "luna-logo/index.js", - "jquery/dist/jquery.min.js", - "less/dist/less.min.js", - ]; - -const Less = ["style.less"]; - -const Data = ["doc.json"]; - -const Glob = ["favicon.ico", "index.html"]; - - -module.exports = { - entry: { - jsonToHtml: "./src/JsonToHtml.js", - treeHelpers: "./src/TreeHelpers.js" - }, - output: { - path: __dirname + "/dist/js/", - filename: "[name].bundle.js" - }, - plugins: [ - new CopyWebpackPlugin( - Npm.map(asset => { - return { - from: path.resolve(__dirname, `./node_modules/${asset}`), - to: path.resolve(__dirname, './dist/js/npm') - }; - }).concat(Less.map(asset => { - return { - from: path.resolve(__dirname, `./styles/${asset}`), - to: path.resolve(__dirname, './dist/styles') - }; - })).concat(Data.map(asset => { - return { - from: path.resolve(__dirname, `./data/${asset}`), - to: path.resolve(__dirname, './dist/data') - }; - })).concat(Glob.map(asset => { - return { - from: path.resolve(__dirname, `./${asset}`), - to: path.resolve(__dirname, './dist') - }; - })) - ) - ] -};