diff --git a/server/app.js b/server/app.js index e421c6d..af9adff 100644 --- a/server/app.js +++ b/server/app.js @@ -25,6 +25,8 @@ app.use(express.static(path.join(__dirname, 'public'))); app.use('/', index); app.use('/users', users); +app.use(express.static('assets')); + // catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); diff --git a/server/cps.js b/server/cps.js index afb69f5..d82d653 100644 --- a/server/cps.js +++ b/server/cps.js @@ -1,5 +1 @@ -#! /usr/bin/node - var typ = require("representation.js"); - - diff --git a/server/desugar.js b/server/desugar.js index a404fef..c0d7a0f 100644 --- a/server/desugar.js +++ b/server/desugar.js @@ -8,6 +8,10 @@ var typ = require("./representation.js"); var errors = require("./errors.js"); var _ = require("underscore"); +function isAtomicNumber(stx) { + return stx.exprType == "Integer" || stx.exprType == "Float"; +} + // Lists get desugared to nested function calls // i.e. (cons (cons (cons ...))) function desugarList(lst) { @@ -69,7 +73,6 @@ function desugarDefType(stx, typeEnv) { return result; } - function desugar(stx, typeEnv) { var typeExpTest; @@ -105,9 +108,10 @@ function desugar(stx, typeEnv) { return sugarTypeDecl(stx); } - if ((stx.func.ident === "-" || - stx.func.ident === "+") && - stx.p) { + if ((stx.func.ident === "-") && + stx.p && isAtomicNumber(stx.p)) { + console.log("Matched unary"); + console.log(stx); return new typ.UnaryOp(desugar(stx.func, typeEnv), desugar(stx.p, typeEnv)); } if (stx.p) { @@ -137,5 +141,3 @@ module.exports = { desugar : desugar }; //var test = typ.ListT([1,2,3]); //console.log(desugarList(test)); - - diff --git a/server/package.json b/server/package.json index aba1440..d85bbff 100644 --- a/server/package.json +++ b/server/package.json @@ -12,6 +12,13 @@ "express": "~4.15.2", "morgan": "~1.8.1", "pug": "~2.0.0-beta11", + "rollup-plugin-buble": "^0.15.0", + "rollup-plugin-commonjs": "^8.0.2", + "rollup-plugin-node-resolve": "^3.0.0", + "rollup-plugin-riot": "^1.1.0", "serve-favicon": "~2.4.2" + }, + "devDependencies": { + "rollup-plugin-commonjs": "^8.0.2" } } diff --git a/server/parse.js b/server/parse.js index b389060..4f2343f 100755 --- a/server/parse.js +++ b/server/parse.js @@ -1,5 +1,3 @@ -#! /usr/bin/node -var fs = require("fs"); var typ = require("./representation.js"); var $ = require("./tools.js"); var _ = require("underscore"); @@ -220,8 +218,8 @@ function parseDefFunction(tokens, linenum, charnum) { return result; } -validLet = makeChecker(["Definition", "FunctionDefinition"].map(formTypeCheck)); -letEnd = _.compose($.not, makeChecker(["right_brace"].map(tokTypeCheck))); +var validLet = makeChecker(["Definition", "FunctionDefinition"].map(formTypeCheck)); +var letEnd = _.compose($.not, makeChecker(["right_brace"].map(tokTypeCheck))); function parseLetForm(tokens, linenum, charnum) { var result; @@ -370,7 +368,7 @@ function parseDataType(tokens, linenum, charnum) { "Expected a type operator in data type definition"); } if (fst(tokens)[0] !== "right_paren") { - parameters = parseMany(parse, + var parameters = parseMany(parse, validName, validFormPar, tokens, @@ -378,7 +376,7 @@ function parseDataType(tokens, linenum, charnum) { linenum); } else { - parameters = []; + var parameters = []; } if (!tokens || (fst(tokens)[0]) !== "right_paren") { throw error.JSyntaxError(_.last(parameters).linenum, @@ -742,7 +740,7 @@ function parse(tokens) { toktype = fst(tokens)[0]; } else { - process.exit(code=1); + console.error("Tokenization error"); } var token = fst(tokens)[1]; tokens.pop(); @@ -823,11 +821,10 @@ function parseFull(tokenized) { } catch (e) { if (e.stxerror !== undefined) { e.stxerror(); - process.exit(1); + console.error("Tokenization error"); } else { console.log(e.errormessage); - process.exit(1); } } } @@ -838,7 +835,6 @@ module.exports = { parse : function(str) { tokenize : tokenizer.tokenize, parseFull : parseFull, }; -//var istr = fs.readFileSync('/dev/stdin').toString(); //var testParse = parseFull(tokenizer.tokenize(istr)); //console.log(testParse[1]); //console.log(testParse[0].map(pprint.pprint)); diff --git a/server/prelude.js b/server/prelude.js new file mode 100644 index 0000000..402211a --- /dev/null +++ b/server/prelude.js @@ -0,0 +1,123 @@ +var src = ` +;; This file declares the various types used by intrinsic/prelude definitions +;; It is sort of special in that it doesn't care whether there are any associated definitions +;; just that there are type definitions for that particular binding's name + + +;; Type definitions +deftype String (Vector Char) + +deftype (Int) Intrinsic + +deftype (Float) Intrinsic + +deftype (Char) Intrinsic + +deftype (Byte) Intrinsic + +deftype (Void) Intrinsic + +deftype (IO a) Intrinsic + +deftype (Vector a) Intrinsic + +deftype (List a) + (Empty | + (Cons a (List a))) + +deftype (Bottom) + Undefined + +deftype (Maybe a) + (Nothing | + (Just a)) + +deftype (Either a b) + ((Left a) | + (Right b)) + +;; List functions + +(: :: (a -> (List a) -> (List a))) + +(map :: ((a -> b) -> (List a) -> (List b))) + +(head :: ((List a) -> a)) + +(tail :: ((List a) -> (List a))) + +(!! :: (Int -> (List a) -> a)) + +(take :: (Int -> (List a) -> (Maybe (List a)))) + +(drop :: (Int -> (List a) -> (Maybe (List a)))) + +;; Optional functions + +(maybe :: (b -> (a -> b) -> (Maybe a) -> b)) + +(either :: ((b -> c) -> (b -> c) -> (Either a b) -> c)) + +;; I/O functions + +(print :: (String -> (IO Void))) + +;; Operator definitions + +defop 1 Left (a + b) + (add a b) + +defop 1 Left (a - b) + (minus a b) + +defop 2 Left (a * b) + (mul a b) + +defop 2 Left (a / b) + (div a b) + +defop 2 Right (a ^ b) + (pow a b) + +defop 3 Left (a ++ b) + (listConcat a b) + +defop 3 Left (a == b) + (eq a b) + +defop 3 Left (a > b) + (gt a b) + +defop 3 Left (a >= b) + (gte a b) + +defop 3 Left (a < b) + (lt a b) + +defop 3 Left (a <= b) + (lte a b) + +defop 3 Left (a && b) + (and a b) + +defop 3 Left (a || b) + (or a b) + +defop 4 Left (x : xs) + (cons x xs) + +defop 5 Left (f $ x) + (fapply f x) + +defop 5 Left (f . g) + (compose f g) + +defop 3 Left (a | b) + (bitwiseOr a b) + +defop 3 Left (a & b) + (bitwiseAnd a b)`; + +module.exports = { + "src" : src +}; diff --git a/server/representation.js b/server/representation.js index fc8f7c5..6c071e0 100644 --- a/server/representation.js +++ b/server/representation.js @@ -368,7 +368,7 @@ function makeGensym() { var gensym = makeGensym(); -OPInfo = { +var OPInfo = { "::" : [2, "Left"], "," : [1, "Left"], "->" : [1, "Right"] diff --git a/server/rollup.config.js b/server/rollup.config.js new file mode 100644 index 0000000..11181f2 --- /dev/null +++ b/server/rollup.config.js @@ -0,0 +1,17 @@ +import riot from 'rollup-plugin-riot' +import nodeResolve from 'rollup-plugin-node-resolve' +import commonjs from 'rollup-plugin-commonjs' +import buble from 'rollup-plugin-buble' + +export default { + entry: './tags/jlambda.js', + dest: './assets/bundle.js', + moduleName: "jlambda", + plugins: [ + riot(), + nodeResolve({ jsnext: true }), + commonjs(), + buble() + ], + format: 'iife' +} diff --git a/server/routes/.index.js.swp b/server/routes/.index.js.swp index 9ea1fea..aeb7cd8 100644 Binary files a/server/routes/.index.js.swp and b/server/routes/.index.js.swp differ diff --git a/server/tags/jlambda.js b/server/tags/jlambda.js new file mode 100644 index 0000000..a89de67 --- /dev/null +++ b/server/tags/jlambda.js @@ -0,0 +1,3 @@ +var vm = require("../vm.js"); + +console.log(vm.evaluate("(+ 2 3)")); diff --git a/server/test.js b/server/test.js index 3507792..2f7d786 100755 --- a/server/test.js +++ b/server/test.js @@ -1,5 +1,3 @@ -#! /usr/bin/node - var parser = require("./parse.js"); var cexps = require("./cexps.js"); var closures = require("./closure_conversion.js"); diff --git a/server/tokenize.js b/server/tokenize.js index cbe748a..1730f29 100755 --- a/server/tokenize.js +++ b/server/tokenize.js @@ -1,11 +1,9 @@ -#! /usr/bin/node - -var fs = require("fs"); var rep = require("./representation.js"); var $ = require("./tools.js"); var error = require("./errors.js"); var operators = Object.keys(rep.OPInfo); var _ = require("underscore"); +var prelude = require("./prelude.js"); function isDigit(c) { if (!c) @@ -409,7 +407,7 @@ function checkPattern(x, i) { } function tokenizeFull(input) { - var preludeSrc = fs.readFileSync("./prelude.jl"); + var preludeSrc = prelude.src; var matchop; input = [preludeSrc, input].join(""); var initialPass = tokenizeHelp(input, _.constant(false), true).reverse(); diff --git a/server/views/.index.pug.swp b/server/views/.index.pug.swp index bcd5e57..fa435f6 100644 Binary files a/server/views/.index.pug.swp and b/server/views/.index.pug.swp differ diff --git a/server/views/index.pug b/server/views/index.pug index c45418e..bd68eb3 100644 --- a/server/views/index.pug +++ b/server/views/index.pug @@ -4,3 +4,4 @@ block content h1= title p Welcome to #{title} p #{output} + script(src='bundle.js', type='text/javascript') diff --git a/server/vm.js b/server/vm.js index 0bb9c89..93a4b8f 100755 --- a/server/vm.js +++ b/server/vm.js @@ -1,35 +1,26 @@ -#! /usr/bin/node - var typ = require("./representation.js"); var parse = require("./parse.js"); var tokenizer = require("./tokenize.js"); var pprint = require("./pprint.js"); var env = require("./environments.js"); -var fs = require("fs"); - -var istr = fs.readFileSync('/dev/stdin').toString(); -var ast = parse.parseFull(tokenizer.tokenize(istr)); - var testenv = env.makeEnv("toplevel", [ ["+", function(a) { return function(b) { return a + b; } }], ["*", function(a) { return function(b) { return a * b; } }], ["-", function(a) { return function(b) { return a - b; } }], + ["/", function(a) { return function(b) { return a / b; } }], ["a", 2], ["b", 3]]); -console.log(JSON.stringify(evaluate(ast.ast[ast.ast.length-1], testenv))); - function lookup(ident, env) { var func = evaluate(env.bindings[ident], env); return func; } function evaluateString(input) { - var parsed = parse.parseFull(tokenizer.tokenize(input)).ast; - var evaluated = evaluateAll(parsed, testenv); - return evaluated; + var ast = parse.parseFull(tokenizer.tokenize(input)); + return evaluate(ast.ast[ast.ast.length-1], testenv); } function apply(func, p) { @@ -74,7 +65,7 @@ function evaluate(ast, environment) { else if (ast.exprType === "Definition") { return; /* XXX */ } - else if (ast.exprType === "Integer") { + else if (ast.exprType === "Integer" || ast.exprType == "Float") { return ast.val; } else { @@ -83,5 +74,5 @@ function evaluate(ast, environment) { } module.exports = { - "evaluate" : evaluateString + evaluate : evaluateString }; diff --git a/server/yarn.lock b/server/yarn.lock index 04ea773..8f3fe44 100644 --- a/server/yarn.lock +++ b/server/yarn.lock @@ -15,11 +15,23 @@ acorn-globals@^3.0.0: dependencies: acorn "^4.0.4" -acorn@^3.1.0, acorn@~3.3.0: +acorn-jsx@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn-object-spread@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz#48ead0f4a8eb16995a17a0db9ffc6acaada4ba68" + dependencies: + acorn "^3.1.0" + +acorn@^3.0.4, acorn@^3.1.0, acorn@^3.3.0, acorn@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.4, acorn@~4.0.2: +acorn@^4.0.1, acorn@^4.0.4, acorn@~4.0.2: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" @@ -35,14 +47,40 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + asap@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + basic-auth@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" @@ -62,6 +100,43 @@ body-parser@~1.17.1: raw-body "~2.2.0" type-is "~1.6.15" +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-resolve@^1.11.0: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +buble@^0.15.0: + version "0.15.2" + resolved "https://registry.yarnpkg.com/buble/-/buble-0.15.2.tgz#547fc47483f8e5e8176d82aa5ebccb183b02d613" + dependencies: + acorn "^3.3.0" + acorn-jsx "^3.0.1" + acorn-object-spread "^1.0.0" + chalk "^1.1.3" + magic-string "^0.14.0" + minimist "^1.2.0" + os-homedir "^1.0.1" + +builtin-modules@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + bytes@2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" @@ -77,6 +152,16 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + character-parser@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" @@ -104,6 +189,10 @@ commander@2.8.x: dependencies: graceful-readlink ">= 1.0.0" +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + constantinople@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.1.0.tgz#7569caa8aa3f8d5935d62e1fa96f9f702cd81c79" @@ -174,10 +263,34 @@ escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +estree-walker@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e" + +estree-walker@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" + etag@~1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + express@~4.15.2: version "4.15.3" resolved "https://registry.yarnpkg.com/express/-/express-4.15.3.tgz#bab65d0f03aa80c358408972fc700f916944b662" @@ -211,6 +324,26 @@ express@~4.15.2: utils-merge "1.0.0" vary "~1.1.1" +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + finalhandler@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.3.tgz#ef47e77950e999780e86022a560e3217e0d0cc89" @@ -223,6 +356,16 @@ finalhandler@~1.0.3: statuses "~1.3.1" unpipe "~1.0.0" +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + forwarded@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" @@ -235,10 +378,29 @@ function-bind@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + "graceful-readlink@>= 1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" @@ -270,6 +432,16 @@ is-buffer@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + is-expression@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-2.1.0.tgz#91be9d47debcfef077977e9722be6dcfb4465ef0" @@ -284,6 +456,38 @@ is-expression@^3.0.0: acorn "~4.0.2" object-assign "^4.0.1" +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + is-promise@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -294,6 +498,16 @@ is-regex@^1.0.3: dependencies: has "^1.0.1" +isarray@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + js-stringify@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" @@ -319,6 +533,18 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" +magic-string@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.14.0.tgz#57224aef1701caeed273b17a39a956e72b172462" + dependencies: + vlq "^0.2.1" + +magic-string@^0.19.0: + version "0.19.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.19.1.tgz#14d768013caf2ec8fdea16a49af82fc377e75201" + dependencies: + vlq "^0.2.1" + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -331,6 +557,24 @@ methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" +micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + mime-db@~1.27.0: version "1.27.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" @@ -345,6 +589,16 @@ mime@1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" +minimatch@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + morgan@~1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.8.2.tgz#784ac7734e4a453a9c6e6e8680a9329275c8b687" @@ -363,10 +617,23 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -377,6 +644,19 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" +os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + parseurl@~1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" @@ -389,6 +669,10 @@ path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + promise@^7.0.1: version "7.1.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" @@ -499,6 +783,13 @@ qs@6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" @@ -511,11 +802,30 @@ raw-body@~2.2.0: iconv-lite "0.4.15" unpipe "1.0.0" +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +remove-trailing-separator@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -resolve@^1.1.6: +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6, resolve@^1.1.7: version "1.3.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" dependencies: @@ -527,6 +837,58 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" +riot-compiler@^3.0.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/riot-compiler/-/riot-compiler-3.2.3.tgz#db3cf1e920cd313f19eeac4f0c5314fc21db6314" + +rollup-plugin-buble@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-buble/-/rollup-plugin-buble-0.15.0.tgz#83c3e89c7fd2266c7918f41ba3980313519c7fd0" + dependencies: + buble "^0.15.0" + rollup-pluginutils "^1.5.0" + +rollup-plugin-commonjs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.0.2.tgz#98b1589bfe32a6c0f67790b60c0b499972afed89" + dependencies: + acorn "^4.0.1" + estree-walker "^0.3.0" + magic-string "^0.19.0" + resolve "^1.1.7" + rollup-pluginutils "^2.0.1" + +rollup-plugin-node-resolve@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz#8b897c4c3030d5001277b0514b25d2ca09683ee0" + dependencies: + browser-resolve "^1.11.0" + builtin-modules "^1.1.0" + is-module "^1.0.0" + resolve "^1.1.6" + +rollup-plugin-riot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-riot/-/rollup-plugin-riot-1.1.0.tgz#8352ab120386adb6a75806e67046bf83d6262fbc" + dependencies: + object-assign "^4.1.0" + riot-compiler "^3.0.0" + rollup-pluginutils "^1.5.2" + +rollup-pluginutils@^1.5.0, rollup-pluginutils@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408" + dependencies: + estree-walker "^0.2.1" + minimatch "^3.0.2" + +rollup-pluginutils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" + dependencies: + estree-walker "^0.3.0" + micromatch "^2.3.11" + safe-buffer@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" @@ -586,6 +948,16 @@ source-map@~0.5.1: version "1.3.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + token-stream@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-0.0.1.tgz#ceeefc717a76c4316f126d0b9dbaa55d7e7df01a" @@ -622,6 +994,10 @@ vary@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" +vlq@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.2.tgz#e316d5257b40b86bb43cb8d5fea5d7f54d6b0ca1" + void-elements@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"