From 748241c5d030cc0209795435e464001f9d396a81 Mon Sep 17 00:00:00 2001 From: Matt Roberts Date: Fri, 18 Dec 2020 11:37:13 +0000 Subject: [PATCH 1/6] chore(docusaurus): Update siteConfig to resolve merge conflict Signed-off-by: Matt Roberts --- website/siteConfig.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/website/siteConfig.js b/website/siteConfig.js index 76763b70..3ecf0b02 100644 --- a/website/siteConfig.js +++ b/website/siteConfig.js @@ -26,18 +26,6 @@ const users = [ infoLink: 'https://contractpen.com', pinned: true, }, - { - caption: 'REIV SmartVicForms', - image: 'https://smartvicforms.com.au/assets/Logo/reiv-smartVicforms%20logo-Full%20Colour.svg', - infoLink: 'https://smartvicforms.com.au', - pinned: true, - }, - { - caption: 'beNEXT', - image: 'https://smartvicforms.com.au/assets/Logo/beNext_orange-darkgreen-logo.svg', - infoLink: 'https://www.benext.io', - pinned: true, - }, ]; const siteConfig = { From e9a3382c621a7d76baecf843170ef9e061422942 Mon Sep 17 00:00:00 2001 From: Prakhar Sharma Date: Fri, 18 Dec 2020 17:19:00 +0530 Subject: [PATCH 2/6] Docusaurus v2.0 update (#330) * migrate npx, html to jsx, replace broken assets Signed-off-by: prakharsr * add images to static/docs err, add late10b.png Signed-off-by: prakharsr * fix empty urls, fix
Signed-off-by: prakharsr * fixes, additions to siteConfig, swizzle footer Signed-off-by: prakharsr * pages Signed-off-by: prakharsr * build fails Signed-off-by: prakharsr * update, fixes, dockerfile Signed-off-by: prakharsr * readme update Signed-off-by: prakharsr * Added 'REIV SmartVicForms' and 'beNEXT' Signed-off-by: Martin Halford Signed-off-by: prakharsr * merge update Signed-off-by: prakharsr * remove website(v1) and rename v2-website to website Signed-off-by: prakharsr * fixes Signed-off-by: prakharsr * fix docs after review with v1 Signed-off-by: prakharsr * fixes for build Signed-off-by: prakharsr * add scripts to website Signed-off-by: prakharsr * add netlify, quotes Signed-off-by: prakharsr * remove unnec. docs, fix table Signed-off-by: prakharsr * docs changes, remove assets, links /docs/* Signed-off-by: prakharsr Co-authored-by: Martin Halford --- .dockerignore | 15 + Dockerfile | 4 + README.md | 7 +- docs/accordproject-template.md | 10 +- .../ErgoSpec.Backend.ErgoBackend.html | 43 - .../ErgoSpec.Backend.ErgoBackend.jsx | 250 + .../ErgoSpec.Backend.ForeignErgo.html | 39 - .../ErgoSpec.Backend.ForeignErgo.jsx | 143 + .../ErgoSpec.Backend.Lib.ECType.html | 186 - .../ErgoSpec.Backend.Lib.ECType.jsx | 2129 ++ .../ErgoSpec.Backend.Lib.ECodeGen.html | 88 - .../ErgoSpec.Backend.Lib.ECodeGen.jsx | 560 + .../ErgoSpec.Backend.Lib.EData.html | 92 - .../ErgoSpec.Backend.Lib.EData.jsx | 569 + .../ErgoSpec.Backend.Lib.EOperators.html | 203 - .../ErgoSpec.Backend.Lib.EOperators.jsx | 1598 ++ ...oSpec.Backend.Model.DateTimeModelPart.html | 343 - ...goSpec.Backend.Model.DateTimeModelPart.jsx | 2593 +++ ...goSpec.Backend.Model.ErgoBackendModel.html | 32 - ...rgoSpec.Backend.Model.ErgoBackendModel.jsx | 120 + ...Spec.Backend.Model.ErgoBackendRuntime.html | 42 - ...oSpec.Backend.Model.ErgoBackendRuntime.jsx | 174 + ...oSpec.Backend.Model.ErgoEnhancedModel.html | 1957 -- ...goSpec.Backend.Model.ErgoEnhancedModel.jsx | 16533 +++++++++++++ .../ErgoSpec.Common.CTO.CTO.html | 96 - .../specification/ErgoSpec.Common.CTO.CTO.jsx | 803 + .../ErgoSpec.Common.Types.ErgoType.html | 237 - .../ErgoSpec.Common.Types.ErgoType.jsx | 2338 ++ ...Spec.Common.Types.ErgoTypetoErgoCType.html | 202 - ...oSpec.Common.Types.ErgoTypetoErgoCType.jsx | 2110 ++ .../ErgoSpec.Common.Utils.Ast.html | 83 - .../ErgoSpec.Common.Utils.Ast.jsx | 514 + .../ErgoSpec.Common.Utils.Misc.html | 85 - .../ErgoSpec.Common.Utils.Misc.jsx | 673 + .../ErgoSpec.Common.Utils.Names.html | 85 - .../ErgoSpec.Common.Utils.Names.jsx | 483 + ...rgoSpec.Common.Utils.NamespaceContext.html | 303 - ...ErgoSpec.Common.Utils.NamespaceContext.jsx | 3414 +++ .../ErgoSpec.Common.Utils.PrintTypedData.html | 323 - .../ErgoSpec.Common.Utils.PrintTypedData.jsx | 2529 ++ .../ErgoSpec.Common.Utils.Provenance.html | 96 - .../ErgoSpec.Common.Utils.Provenance.jsx | 639 + .../ErgoSpec.Common.Utils.Result.html | 241 - .../ErgoSpec.Common.Utils.Result.jsx | 3366 +++ .../ErgoSpec.Compiler.ErgoCompiler.html | 334 - .../ErgoSpec.Compiler.ErgoCompiler.jsx | 3245 +++ .../ErgoSpec.Compiler.ErgoDriver.html | 428 - .../ErgoSpec.Compiler.ErgoDriver.jsx | 4132 ++++ .../ErgoSpec.Ergo.Lang.Ergo.html | 275 - .../specification/ErgoSpec.Ergo.Lang.Ergo.jsx | 2887 +++ .../ErgoSpec.Ergo.Lang.ErgoExpand.html | 208 - .../ErgoSpec.Ergo.Lang.ErgoExpand.jsx | 1836 ++ .../ErgoSpec.Ergo.Lang.ErgoMap.html | 144 - .../ErgoSpec.Ergo.Lang.ErgoMap.jsx | 1357 ++ .../ErgoSpec.Ergo.Lang.ErgoSem.html | 115 - .../ErgoSpec.Ergo.Lang.ErgoSem.jsx | 1362 ++ .../ErgoSpec.Ergo.Lang.ErgoSugar.html | 60 - .../ErgoSpec.Ergo.Lang.ErgoSugar.jsx | 363 + .../ErgoSpec.ErgoC.Lang.ErgoC.html | 102 - .../ErgoSpec.ErgoC.Lang.ErgoC.jsx | 484 + .../ErgoSpec.ErgoC.Lang.ErgoCEval.html | 231 - .../ErgoSpec.ErgoC.Lang.ErgoCEval.jsx | 1926 ++ .../ErgoSpec.ErgoC.Lang.ErgoCEvalContext.html | 66 - .../ErgoSpec.ErgoC.Lang.ErgoCEvalContext.jsx | 426 + .../ErgoSpec.ErgoC.Lang.ErgoCStdlib.html | 181 - .../ErgoSpec.ErgoC.Lang.ErgoCStdlib.jsx | 1815 ++ .../ErgoSpec.ErgoC.Lang.ErgoCSugar.html | 74 - .../ErgoSpec.ErgoC.Lang.ErgoCSugar.jsx | 506 + .../ErgoSpec.ErgoC.Lang.ErgoCType.html | 495 - .../ErgoSpec.ErgoC.Lang.ErgoCType.jsx | 4772 ++++ .../ErgoSpec.ErgoC.Lang.ErgoCTypeContext.html | 68 - .../ErgoSpec.ErgoC.Lang.ErgoCTypeContext.jsx | 413 + .../ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.html | 77 - .../ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.jsx | 365 + .../ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.html | 73 - .../ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.jsx | 504 + .../ErgoSpec.Tests.HelloWorld.html | 155 - .../ErgoSpec.Tests.HelloWorld.jsx | 1170 + .../ErgoSpec.Translation.CTOtoErgo.html | 85 - .../ErgoSpec.Translation.CTOtoErgo.jsx | 714 + .../ErgoSpec.Translation.ErgoCInline.html | 238 - .../ErgoSpec.Translation.ErgoCInline.jsx | 2231 ++ .../ErgoSpec.Translation.ErgoCompContext.html | 285 - .../ErgoSpec.Translation.ErgoCompContext.jsx | 2874 +++ .../ErgoSpec.Translation.ErgoCtoErgoNNRC.html | 394 - .../ErgoSpec.Translation.ErgoCtoErgoNNRC.jsx | 2874 +++ .../ErgoSpec.Translation.ErgoNNRCtoJava.html | 150 - .../ErgoSpec.Translation.ErgoNNRCtoJava.jsx | 1130 + ...Spec.Translation.ErgoNNRCtoJavaScript.html | 178 - ...oSpec.Translation.ErgoNNRCtoJavaScript.jsx | 1395 ++ ...ranslation.ErgoNNRCtoJavaScriptCicero.html | 204 - ...Translation.ErgoNNRCtoJavaScriptCicero.jsx | 1735 ++ .../ErgoSpec.Translation.ErgoNameResolve.html | 891 - .../ErgoSpec.Translation.ErgoNameResolve.jsx | 9296 ++++++++ .../ErgoSpec.Translation.ErgotoErgoC.html | 523 - .../ErgoSpec.Translation.ErgotoErgoC.jsx | 4848 ++++ .../specification/ErgoSpec.Version.html | 30 - .../assets/specification/ErgoSpec.Version.jsx | 46 + docs/ergo-tutorial.md | 498 +- docs/markup-preliminaries.md | 8 +- docs/ref-cicero-api.md | 6 +- docs/ref-ergo-spec.md | 8 +- docs/ref-errors.md | 2 +- docs/tutorial-studio.md | 532 +- log/trace.log | 0 website/.gitignore | 1 + website/blog/2018-05-18-blog-post.md | 2 +- website/docusaurus.config.js | 163 + website/i18n/en.json | 624 - website/package-lock.json | 19182 ++++++++++------ website/package.json | 18 +- website/pages/en/help.js | 57 - website/pages/en/index.js | 272 - website/pages/en/users.js | 49 - website/pages/en/versions.js | 105 - website/sidebars.json | 52 +- website/siteConfig.js | 216 - website/src/css/customTheme.css | 16 + website/src/pages/help.js | 78 + website/src/pages/index.js | 206 + website/src/pages/users.js | 51 + website/src/pages/versions.js | 104 + website/src/styles.module.css | 158 + .../Footer.js => src/theme/Footer/index.js} | 42 +- website/src/theme/Footer/styles.module.css | 15 + website/static/ .nojekyll | 0 website/static/docs/assets/020/ergo.png | Bin 0 -> 1062677 bytes website/static/docs/assets/020/grammar.png | Bin 0 -> 889403 bytes website/static/docs/assets/020/studio.png | Bin 0 -> 969634 bytes website/static/docs/assets/020/template.png | Bin 0 -> 103793 bytes .../static/docs/assets/020/template_logic.png | Bin 0 -> 41892 bytes .../static/docs/assets/020/template_model.png | Bin 0 -> 41683 bytes .../static/docs/assets/020/template_text.png | Bin 0 -> 42084 bytes .../docs/assets/acceptance-of-delivery.png | Bin 0 -> 343817 bytes website/static/docs/assets/advanced/hlf1.png | Bin 0 -> 198607 bytes website/static/docs/assets/advanced/hlf2.png | Bin 0 -> 47151 bytes website/static/docs/assets/advanced/hlf3.png | Bin 0 -> 210003 bytes website/static/docs/assets/advanced/hlf4.png | Bin 0 -> 27720 bytes website/static/docs/assets/advanced/late1.png | Bin 0 -> 641791 bytes .../static/docs/assets/advanced/late10.png | Bin 0 -> 324058 bytes .../static/docs/assets/advanced/late10b.png | Bin 0 -> 324058 bytes .../static/docs/assets/advanced/late11.png | Bin 0 -> 232318 bytes .../static/docs/assets/advanced/late12.png | Bin 0 -> 898152 bytes .../static/docs/assets/advanced/late13.png | Bin 0 -> 259740 bytes .../static/docs/assets/advanced/late14.png | Bin 0 -> 211438 bytes .../static/docs/assets/advanced/late15.png | Bin 0 -> 189338 bytes .../static/docs/assets/advanced/late16.png | Bin 0 -> 823142 bytes .../static/docs/assets/advanced/late17.png | Bin 0 -> 376025 bytes website/static/docs/assets/advanced/late2.png | Bin 0 -> 296084 bytes website/static/docs/assets/advanced/late3.png | Bin 0 -> 224838 bytes website/static/docs/assets/advanced/late4.png | Bin 0 -> 355104 bytes website/static/docs/assets/advanced/late5.png | Bin 0 -> 871078 bytes website/static/docs/assets/advanced/late6.png | Bin 0 -> 882628 bytes website/static/docs/assets/advanced/late7.png | Bin 0 -> 188540 bytes website/static/docs/assets/advanced/late8.png | Bin 0 -> 195922 bytes website/static/docs/assets/advanced/late9.png | Bin 0 -> 262272 bytes ...inilatedeliveryandpenalty-capped@0.1.1.cta | Bin 0 -> 11785 bytes ...nilatedeliveryandpenalty-payment@0.1.1.cta | Bin 0 -> 12356 bytes .../minilatedeliveryandpenalty@0.1.1.cta | Bin 0 -> 11319 bytes .../docs/assets/architecture/.gitignore | 9 + .../static/docs/assets/architecture/Makefile | 56 + .../docs/assets/architecture/cleansvg.ts | 84 + .../docs/assets/architecture/codegen-coq.tex | 56 + .../docs/assets/architecture/codegen.pdf | Bin 0 -> 12994 bytes .../docs/assets/architecture/codegen.png | Bin 0 -> 2196 bytes .../docs/assets/architecture/codegen.svg | 181 + .../docs/assets/architecture/codegen.tex | 31 + .../docs/assets/architecture/frontend-coq.tex | 102 + .../docs/assets/architecture/frontend.pdf | Bin 0 -> 14573 bytes .../docs/assets/architecture/frontend.png | Bin 0 -> 4042 bytes .../docs/assets/architecture/frontend.svg | 323 + .../docs/assets/architecture/frontend.tex | 31 + .../assets/architecture/package-lock.json | 35 + .../docs/assets/architecture/package.json | 16 + .../docs/assets/architecture/tikzmacros.tex | 150 + .../docs/assets/architecture/tsconfig.json | 11 + .../docs/assets/architecture/types-coq.tex | 63 + .../static/docs/assets/architecture/types.pdf | Bin 0 -> 13114 bytes .../static/docs/assets/architecture/types.png | Bin 0 -> 2353 bytes .../static/docs/assets/architecture/types.svg | 181 + .../static/docs/assets/architecture/types.tex | 31 + website/static/docs/assets/basic/library1.png | Bin 0 -> 471734 bytes website/static/docs/assets/basic/use1.png | Bin 0 -> 3102589 bytes website/static/docs/assets/basic/use2.png | Bin 0 -> 764395 bytes website/static/docs/assets/basic/use3.png | Bin 0 -> 650654 bytes website/static/docs/assets/bond-model.png | Bin 0 -> 373555 bytes .../docs/assets/cicero-spec-overview.png | Bin 0 -> 412179 bytes .../static/docs/assets/cicero-spec-uml.png | Bin 0 -> 141760 bytes website/static/docs/assets/dingus1.png | Bin 0 -> 660410 bytes website/static/docs/assets/dingus2.png | Bin 0 -> 542753 bytes website/static/docs/assets/dingus3.png | Bin 0 -> 576607 bytes website/static/docs/assets/dingus4.png | Bin 0 -> 700929 bytes website/static/docs/assets/exceptions.png | Bin 0 -> 990173 bytes .../static/docs/assets/execution_context.png | Bin 0 -> 132564 bytes website/static/docs/assets/grammar.png | Bin 0 -> 288859 bytes website/static/docs/assets/image1.png | Bin 0 -> 121436 bytes website/static/docs/assets/image2.png | Bin 0 -> 34662 bytes website/static/docs/assets/image3.png | Bin 0 -> 75545 bytes .../static/docs/assets/perishable-goods.png | Bin 0 -> 459908 bytes website/static/docs/assets/reference/tsv2.png | Bin 0 -> 565676 bytes .../ErgoSpec.Backend.ErgoBackend.jsx | 250 + .../ErgoSpec.Backend.ForeignErgo.jsx | 143 + .../ErgoSpec.Backend.Lib.ECType.jsx | 2129 ++ .../ErgoSpec.Backend.Lib.ECodeGen.jsx | 560 + .../ErgoSpec.Backend.Lib.EData.jsx | 569 + .../ErgoSpec.Backend.Lib.EOperators.jsx | 1598 ++ ...goSpec.Backend.Model.DateTimeModelPart.jsx | 2593 +++ ...rgoSpec.Backend.Model.ErgoBackendModel.jsx | 120 + ...oSpec.Backend.Model.ErgoBackendRuntime.jsx | 174 + ...goSpec.Backend.Model.ErgoEnhancedModel.jsx | 16533 +++++++++++++ .../specification/ErgoSpec.Common.CTO.CTO.jsx | 803 + .../ErgoSpec.Common.Types.ErgoType.jsx | 2338 ++ ...oSpec.Common.Types.ErgoTypetoErgoCType.jsx | 2110 ++ .../ErgoSpec.Common.Utils.Ast.jsx | 514 + .../ErgoSpec.Common.Utils.Misc.jsx | 673 + .../ErgoSpec.Common.Utils.Names.jsx | 483 + ...ErgoSpec.Common.Utils.NamespaceContext.jsx | 3414 +++ .../ErgoSpec.Common.Utils.PrintTypedData.jsx | 2529 ++ .../ErgoSpec.Common.Utils.Provenance.jsx | 639 + .../ErgoSpec.Common.Utils.Result.jsx | 3366 +++ .../ErgoSpec.Compiler.ErgoCompiler.jsx | 3245 +++ .../ErgoSpec.Compiler.ErgoDriver.jsx | 4132 ++++ .../specification/ErgoSpec.Ergo.Lang.Ergo.jsx | 2887 +++ .../ErgoSpec.Ergo.Lang.ErgoExpand.jsx | 1836 ++ .../ErgoSpec.Ergo.Lang.ErgoMap.jsx | 1357 ++ .../ErgoSpec.Ergo.Lang.ErgoSem.jsx | 1362 ++ .../ErgoSpec.Ergo.Lang.ErgoSugar.jsx | 363 + .../ErgoSpec.ErgoC.Lang.ErgoC.jsx | 484 + .../ErgoSpec.ErgoC.Lang.ErgoCEval.jsx | 1926 ++ .../ErgoSpec.ErgoC.Lang.ErgoCEvalContext.jsx | 426 + .../ErgoSpec.ErgoC.Lang.ErgoCStdlib.jsx | 1815 ++ .../ErgoSpec.ErgoC.Lang.ErgoCSugar.jsx | 506 + .../ErgoSpec.ErgoC.Lang.ErgoCType.jsx | 4772 ++++ .../ErgoSpec.ErgoC.Lang.ErgoCTypeContext.jsx | 413 + .../ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.jsx | 365 + .../ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.jsx | 504 + .../ErgoSpec.Tests.HelloWorld.jsx | 1170 + .../ErgoSpec.Translation.CTOtoErgo.jsx | 714 + .../ErgoSpec.Translation.ErgoCInline.jsx | 2231 ++ .../ErgoSpec.Translation.ErgoCompContext.jsx | 2874 +++ .../ErgoSpec.Translation.ErgoCtoErgoNNRC.jsx | 2874 +++ .../ErgoSpec.Translation.ErgoNNRCtoJava.jsx | 1130 + ...oSpec.Translation.ErgoNNRCtoJavaScript.jsx | 1395 ++ ...Translation.ErgoNNRCtoJavaScriptCicero.jsx | 1735 ++ .../ErgoSpec.Translation.ErgoNameResolve.jsx | 9296 ++++++++ .../ErgoSpec.Translation.ErgotoErgoC.jsx | 4848 ++++ .../assets/specification/ErgoSpec.Version.jsx | 46 + .../docs/assets/specification/coq2html.css | 98 + .../docs/assets/specification/coq2html.js | 25 + website/static/docs/assets/template.png | Bin 0 -> 80447 bytes website/static/img/model-uml.png | Bin 187274 -> 186242 bytes website/static/js/code-block-buttons.js | 1 - .../version-0.12/accordproject-faq.md | 58 + .../accordproject-installation.md | 2 +- .../version-0.12/accordproject-models.md | 2 +- .../version-0.12/accordproject-resources.md | 2 +- .../version-0.12/accordproject-slc.md | 77 + .../version-0.12/accordproject-studio.md | 2 +- .../version-0.12/accordproject-template.md | 213 + .../version-0.12/accordproject-templates.md | 2 +- .../version-0.12/accordproject-tooling.md | 2 +- .../version-0.12/accordproject-tour.md | 32 + .../version-0.12/accordproject.md | 4 +- .../version-0.12/advanced-hyperledger.md | 10 +- .../version-0.12/advanced-latedelivery.md | 36 +- .../version-0.12/advanced-nodejs.md | 2 +- .../version-0.12/basic-create.md | 2 +- .../version-0.12/basic-library.md | 2 +- .../version-0.12/basic-templates.md | 2 +- .../versioned_docs/version-0.12/basic-use.md | 2 +- .../versioned_docs/version-0.12/cicero-api.md | 4 +- .../versioned_docs/version-0.12/cicero-cli.md | 2 +- .../versioned_docs/version-0.12/ergo-api.md | 2 +- .../versioned_docs/version-0.12/ergo-cli.md | 2 +- .../version-0.12/ergo-tutorial.md | 4 +- .../version-0.12/example-eatapple.md | 2 +- .../version-0.12/logic-advanced-expr.md | 2 +- .../version-0.12/logic-complex-type.md | 2 +- .../versioned_docs/version-0.12/logic-decl.md | 2 +- .../versioned_docs/version-0.12/logic-ergo.md | 2 +- .../version-0.12/logic-module.md | 2 +- .../version-0.12/logic-simple-expr.md | 2 +- .../version-0.12/logic-simple-type.md | 2 +- .../versioned_docs/version-0.12/logic-stmt.md | 2 +- .../version-0.12/markup-ciceromark.md | 60 + .../version-0.12/markup-commonmark.md | 211 + .../version-0.12/markup-preliminaries.md | 117 + .../version-0.12/markup-templatemark.md | 820 + .../versioned_docs/version-0.12/model-api.md | 64 + .../version-0.12/model-classes.md | 91 + .../version-0.12/model-concerto.md | 33 + .../version-0.12/model-decorators.md | 29 + .../version-0.12/model-enums.md | 16 + .../version-0.12/model-namespaces.md | 33 + .../version-0.12/model-properties.md | 56 + .../version-0.12/model-relationships.md | 36 + .../version-0.12/ref-cicero-api.md | 1392 ++ .../version-0.12/ref-cicero-cli.md | 214 + .../version-0.12/ref-cicero-testing.md | 345 + .../version-0.12/ref-concerto-api.md | 2125 ++ .../version-0.12/ref-concerto-cli.md | 135 + .../version-0.12/ref-concerto-decorators.md | 92 + .../version-0.12/ref-ergo-api.md | 304 + .../version-0.12/ref-ergo-cli.md | 235 + .../version-0.12/ref-ergo-repl.md | 101 + .../version-0.12/ref-ergo-spec.md | 233 + .../version-0.12/ref-ergo-stdlib.md | 165 + .../versioned_docs/version-0.12/ref-errors.md | 61 + .../version-0.12/ref-glossary.md | 50 + .../version-0.12/ref-logic-specification.md | 18 +- .../version-0.12/ref-logic-stdlib.md | 2 +- .../versioned_docs/version-0.12/ref-logic.md | 2 +- .../versioned_docs/version-0.12/ref-markup.md | 2 +- .../version-0.12/ref-markus-cli.md | 234 + .../version-0.12/ref-migrate-0.13-0.20.md | 284 + .../version-0.12/ref-migrate-0.20-0.21.md | 105 + .../version-0.12/ref-testing.md | 2 +- .../ref-web-components-overview.md | 33 + .../version-0.12/spec-concepts.md | 6 +- .../version-0.12/spec-example.md | 4 +- .../version-0.12/spec-execution.md | 2 +- .../version-0.12/spec-instance.md | 2 +- .../version-0.12/spec-overview.md | 2 +- .../version-0.12/spec-packaging.md | 4 +- .../version-0.12/spec-template.md | 4 +- .../version-0.12/started-hello.md | 220 + .../version-0.12/started-installation.md | 59 + .../version-0.12/started-resources.md | 52 + .../version-0.12/tutorial-create.md | 173 + .../version-0.12/tutorial-hyperledger.md | 12 + .../version-0.12/tutorial-library.md | 166 + .../version-0.12/tutorial-nodejs.md | 85 + .../version-0.12/tutorial-studio.md | 266 + .../version-0.12/tutorial-templates.md | 197 + .../version-0.12/tutorial-vscode.md | 21 + .../version-0.13/accordproject-faq.md | 58 + .../accordproject-installation.md | 2 +- .../version-0.13/accordproject-models.md | 9 + .../version-0.13/accordproject-resources.md | 25 + .../version-0.13/accordproject-slc.md | 77 + .../version-0.13/accordproject-studio.md | 9 + .../version-0.13/accordproject-template.md | 213 + .../version-0.13/accordproject-templates.md | 9 + .../version-0.13/accordproject-tooling.md | 36 + .../version-0.13/accordproject-tour.md | 32 + .../version-0.13/accordproject.md | 90 + .../version-0.13/advanced-hyperledger.md | 252 + .../version-0.13/advanced-latedelivery.md | 260 + .../version-0.13/advanced-nodejs.md | 87 + .../version-0.13/basic-create.md | 2 +- .../version-0.13/basic-library.md | 34 + .../version-0.13/basic-templates.md | 139 + .../versioned_docs/version-0.13/basic-use.md | 2 +- .../versioned_docs/version-0.13/cicero-api.md | 1133 + .../versioned_docs/version-0.13/cicero-cli.md | 78 + .../versioned_docs/version-0.13/ergo-api.md | 224 + .../versioned_docs/version-0.13/ergo-cli.md | 2 +- .../version-0.13/ergo-tutorial.md | 4 +- .../version-0.13/example-eatapple.md | 92 + .../version-0.13/logic-advanced-expr.md | 34 + .../version-0.13/logic-complex-type.md | 2 +- .../versioned_docs/version-0.13/logic-decl.md | 104 + .../versioned_docs/version-0.13/logic-ergo.md | 40 + .../version-0.13/logic-module.md | 62 + .../version-0.13/logic-simple-expr.md | 85 + .../version-0.13/logic-simple-type.md | 86 + .../versioned_docs/version-0.13/logic-stmt.md | 2 +- .../version-0.13/markup-ciceromark.md | 60 + .../version-0.13/markup-commonmark.md | 211 + .../version-0.13/markup-preliminaries.md | 117 + .../version-0.13/markup-templatemark.md | 820 + .../versioned_docs/version-0.13/model-api.md | 64 + .../version-0.13/model-classes.md | 91 + .../version-0.13/model-concerto.md | 33 + .../version-0.13/model-decorators.md | 29 + .../version-0.13/model-enums.md | 16 + .../version-0.13/model-namespaces.md | 33 + .../version-0.13/model-properties.md | 56 + .../version-0.13/model-relationships.md | 36 + .../version-0.13/ref-cicero-api.md | 1392 ++ .../version-0.13/ref-cicero-cli.md | 214 + .../version-0.13/ref-cicero-testing.md | 345 + .../version-0.13/ref-concerto-api.md | 2125 ++ .../version-0.13/ref-concerto-cli.md | 135 + .../version-0.13/ref-concerto-decorators.md | 92 + .../version-0.13/ref-ergo-api.md | 304 + .../version-0.13/ref-ergo-cli.md | 235 + .../version-0.13/ref-ergo-repl.md | 101 + .../version-0.13/ref-ergo-spec.md | 233 + .../version-0.13/ref-ergo-stdlib.md | 165 + .../versioned_docs/version-0.13/ref-errors.md | 4 +- .../version-0.13/ref-glossary.md | 50 + .../version-0.13/ref-logic-specification.md | 55 + .../version-0.13/ref-logic-stdlib.md | 2 +- .../versioned_docs/version-0.13/ref-logic.md | 201 + .../versioned_docs/version-0.13/ref-markup.md | 330 + .../version-0.13/ref-markus-cli.md | 234 + .../version-0.13/ref-migrate-0.13-0.20.md | 284 + .../version-0.13/ref-migrate-0.20-0.21.md | 105 + .../version-0.13/ref-testing.md | 348 + .../ref-web-components-overview.md | 33 + .../version-0.13/spec-concepts.md | 36 + .../version-0.13/spec-example.md | 24 + .../version-0.13/spec-execution.md | 101 + .../version-0.13/spec-instance.md | 21 + .../version-0.13/spec-overview.md | 23 + .../version-0.13/spec-packaging.md | 4 +- .../version-0.13/spec-template.md | 159 + .../version-0.13/started-hello.md | 220 + .../version-0.13/started-installation.md | 59 + .../version-0.13/started-resources.md | 52 + .../version-0.13/tutorial-create.md | 173 + .../version-0.13/tutorial-hyperledger.md | 12 + .../version-0.13/tutorial-library.md | 166 + .../version-0.13/tutorial-nodejs.md | 85 + .../version-0.13/tutorial-studio.md | 266 + .../version-0.13/tutorial-templates.md | 197 + .../version-0.13/tutorial-vscode.md | 21 + .../version-0.20/accordproject-business.md | 2 +- .../version-0.20/accordproject-concepts.md | 12 +- .../version-0.20/accordproject-developers.md | 2 +- .../version-0.20/accordproject-faq.md | 58 + .../accordproject-installation.md | 74 + .../version-0.20/accordproject-models.md | 9 + .../version-0.20/accordproject-resources.md | 25 + .../version-0.20/accordproject-slc.md | 77 + .../version-0.20/accordproject-studio.md | 9 + .../version-0.20/accordproject-template.md | 213 + .../version-0.20/accordproject-templates.md | 9 + .../version-0.20/accordproject-tooling.md | 36 + .../version-0.20/accordproject-tour.md | 32 + .../version-0.20/accordproject.md | 2 +- .../version-0.20/advanced-hyperledger.md | 252 + .../version-0.20/advanced-latedelivery.md | 260 + .../version-0.20/advanced-nodejs.md | 87 + .../version-0.20/basic-create.md | 77 + .../version-0.20/basic-library.md | 34 + .../version-0.20/basic-templates.md | 139 + .../versioned_docs/version-0.20/basic-use.md | 170 + .../versioned_docs/version-0.20/cicero-api.md | 8 +- .../versioned_docs/version-0.20/cicero-cli.md | 2 +- .../version-0.20/concerto-api.md | 2 +- .../version-0.20/concerto-cli.md | 2 +- .../versioned_docs/version-0.20/ergo-api.md | 2 +- .../versioned_docs/version-0.20/ergo-cli.md | 2 +- .../versioned_docs/version-0.20/ergo-repl.md | 2 +- .../version-0.20/ergo-tutorial.md | 4 +- .../version-0.20/example-eatapple.md | 2 +- .../version-0.20/logic-advanced-expr.md | 2 +- .../version-0.20/logic-complex-type.md | 2 +- .../versioned_docs/version-0.20/logic-decl.md | 2 +- .../versioned_docs/version-0.20/logic-ergo.md | 2 +- .../version-0.20/logic-module.md | 2 +- .../version-0.20/logic-simple-expr.md | 2 +- .../version-0.20/logic-simple-type.md | 2 +- .../versioned_docs/version-0.20/logic-stmt.md | 2 +- .../version-0.20/markup-blocks.md | 2 +- .../version-0.20/markup-cicero.md | 2 +- .../version-0.20/markup-ciceromark.md | 60 + .../version-0.20/markup-commonmark.md | 2 +- .../version-0.20/markup-ergo.md | 2 +- .../version-0.20/markup-preliminaries.md | 117 + .../version-0.20/markup-templatemark.md | 820 + .../version-0.20/markup-variables.md | 2 +- .../versioned_docs/version-0.20/markus-cli.md | 2 +- .../versioned_docs/version-0.20/model-api.md | 2 +- .../version-0.20/model-classes.md | 2 +- .../version-0.20/model-concerto.md | 2 +- .../version-0.20/model-decorators.md | 2 +- .../version-0.20/model-enums.md | 2 +- .../version-0.20/model-namespaces.md | 2 +- .../version-0.20/model-properties.md | 2 +- .../version-0.20/model-relationships.md | 2 +- .../version-0.20/ref-cicero-api.md | 1392 ++ .../version-0.20/ref-cicero-cli.md | 214 + .../version-0.20/ref-cicero-testing.md | 345 + .../version-0.20/ref-cicero-ui.md | 2 +- .../version-0.20/ref-concerto-api.md | 2125 ++ .../version-0.20/ref-concerto-cli.md | 135 + .../version-0.20/ref-concerto-decorators.md | 92 + .../version-0.20/ref-ergo-api.md | 304 + .../version-0.20/ref-ergo-cli.md | 235 + .../version-0.20/ref-ergo-repl.md | 101 + .../version-0.20/ref-ergo-spec.md | 233 + .../version-0.20/ref-ergo-stdlib.md | 165 + .../versioned_docs/version-0.20/ref-errors.md | 62 + .../version-0.20/ref-glossary.md | 2 +- .../version-0.20/ref-logic-specification.md | 18 +- .../version-0.20/ref-logic-stdlib.md | 2 +- .../versioned_docs/version-0.20/ref-logic.md | 12 +- .../versioned_docs/version-0.20/ref-markup.md | 330 + .../version-0.20/ref-markus-cli.md | 234 + .../version-0.20/ref-migrate-0.13-0.20.md | 2 +- .../version-0.20/ref-migrate-0.20-0.21.md | 105 + .../version-0.20/ref-testing.md | 2 +- .../ref-web-components-overview.md | 33 + .../version-0.20/spec-concepts.md | 36 + .../version-0.20/spec-example.md | 24 + .../version-0.20/spec-execution.md | 101 + .../version-0.20/spec-instance.md | 21 + .../version-0.20/spec-overview.md | 23 + .../version-0.20/spec-packaging.md | 69 + .../version-0.20/spec-template.md | 159 + .../version-0.20/started-hello.md | 2 +- .../version-0.20/started-installation.md | 2 +- .../version-0.20/started-resources.md | 2 +- .../version-0.20/started-studio.md | 2 +- .../version-0.20/tutorial-create.md | 2 +- .../version-0.20/tutorial-hyperledger.md | 10 +- .../version-0.20/tutorial-latedelivery.md | 36 +- .../version-0.20/tutorial-library.md | 2 +- .../version-0.20/tutorial-nodejs.md | 2 +- .../version-0.20/tutorial-studio.md | 266 + .../version-0.20/tutorial-templates.md | 2 +- .../version-0.20/tutorial-vscode.md | 21 + .../version-0.21/accordproject-business.md | 32 + .../version-0.21/accordproject-concepts.md | 216 + .../version-0.21/accordproject-developers.md | 25 + .../version-0.21/accordproject-faq.md | 2 +- .../accordproject-installation.md | 74 + .../version-0.21/accordproject-models.md | 9 + .../version-0.21/accordproject-resources.md | 25 + .../version-0.21/accordproject-slc.md | 2 +- .../version-0.21/accordproject-studio.md | 9 + .../version-0.21/accordproject-template.md | 13 +- .../version-0.21/accordproject-templates.md | 9 + .../version-0.21/accordproject-tooling.md | 36 + .../version-0.21/accordproject-tour.md | 2 +- .../version-0.21/accordproject.md | 2 +- .../version-0.21/advanced-hyperledger.md | 252 + .../version-0.21/advanced-latedelivery.md | 260 + .../version-0.21/advanced-nodejs.md | 87 + .../version-0.21/basic-create.md | 77 + .../version-0.21/basic-library.md | 34 + .../version-0.21/basic-templates.md | 139 + .../versioned_docs/version-0.21/basic-use.md | 170 + .../versioned_docs/version-0.21/cicero-api.md | 1113 + .../versioned_docs/version-0.21/cicero-cli.md | 208 + .../version-0.21/concerto-api.md | 2106 ++ .../version-0.21/concerto-cli.md | 136 + .../versioned_docs/version-0.21/ergo-api.md | 305 + .../versioned_docs/version-0.21/ergo-cli.md | 290 + .../versioned_docs/version-0.21/ergo-repl.md | 102 + .../version-0.21/ergo-tutorial.md | 4 +- .../version-0.21/example-eatapple.md | 91 + .../version-0.21/logic-advanced-expr.md | 2 +- .../version-0.21/logic-complex-type.md | 200 + .../versioned_docs/version-0.21/logic-decl.md | 105 + .../versioned_docs/version-0.21/logic-ergo.md | 40 + .../version-0.21/logic-module.md | 65 + .../version-0.21/logic-simple-expr.md | 85 + .../version-0.21/logic-simple-type.md | 93 + .../versioned_docs/version-0.21/logic-stmt.md | 2 +- .../version-0.21/markup-blocks.md | 245 + .../version-0.21/markup-cicero.md | 166 + .../version-0.21/markup-ciceromark.md | 2 +- .../version-0.21/markup-commonmark.md | 2 +- .../version-0.21/markup-ergo.md | 107 + .../version-0.21/markup-preliminaries.md | 10 +- .../version-0.21/markup-templatemark.md | 2 +- .../version-0.21/markup-variables.md | 324 + .../versioned_docs/version-0.21/markus-cli.md | 266 + .../versioned_docs/version-0.21/model-api.md | 2 +- .../version-0.21/model-classes.md | 2 +- .../version-0.21/model-concerto.md | 34 + .../version-0.21/model-decorators.md | 2 +- .../version-0.21/model-enums.md | 17 + .../version-0.21/model-namespaces.md | 34 + .../version-0.21/model-properties.md | 2 +- .../version-0.21/model-relationships.md | 2 +- .../version-0.21/ref-cicero-api.md | 8 +- .../version-0.21/ref-cicero-cli.md | 2 +- .../version-0.21/ref-cicero-testing.md | 2 +- .../version-0.21/ref-cicero-ui.md | 36 + .../version-0.21/ref-concerto-api.md | 2 +- .../version-0.21/ref-concerto-cli.md | 2 +- .../version-0.21/ref-concerto-decorators.md | 2 +- .../version-0.21/ref-ergo-api.md | 2 +- .../version-0.21/ref-ergo-cli.md | 2 +- .../version-0.21/ref-ergo-repl.md | 2 +- .../version-0.21/ref-ergo-spec.md | 11 +- .../version-0.21/ref-ergo-stdlib.md | 2 +- .../versioned_docs/version-0.21/ref-errors.md | 4 +- .../version-0.21/ref-glossary.md | 51 + .../version-0.21/ref-logic-specification.md | 55 + .../version-0.21/ref-logic-stdlib.md | 140 + .../versioned_docs/version-0.21/ref-logic.md | 234 + .../versioned_docs/version-0.21/ref-markup.md | 330 + .../version-0.21/ref-markus-cli.md | 2 +- .../version-0.21/ref-migrate-0.13-0.20.md | 2 +- .../version-0.21/ref-migrate-0.20-0.21.md | 2 +- .../version-0.21/ref-testing.md | 346 + .../ref-web-components-overview.md | 2 +- .../version-0.21/spec-concepts.md | 36 + .../version-0.21/spec-example.md | 24 + .../version-0.21/spec-execution.md | 101 + .../version-0.21/spec-instance.md | 21 + .../version-0.21/spec-overview.md | 23 + .../version-0.21/spec-packaging.md | 69 + .../version-0.21/spec-template.md | 159 + .../version-0.21/started-hello.md | 2 +- .../version-0.21/started-installation.md | 2 +- .../version-0.21/started-resources.md | 53 + .../version-0.21/started-studio.md | 36 + .../version-0.21/tutorial-create.md | 2 +- .../version-0.21/tutorial-hyperledger.md | 2 +- .../version-0.21/tutorial-latedelivery.md | 263 + .../version-0.21/tutorial-library.md | 2 +- .../version-0.21/tutorial-nodejs.md | 87 + .../version-0.21/tutorial-studio.md | 36 +- .../version-0.21/tutorial-templates.md | 2 +- .../version-0.21/tutorial-vscode.md | 2 +- .../version-0.12-sidebars.json | 270 +- .../version-0.13-sidebars.json | 275 +- .../version-0.20-sidebars.json | 417 +- .../version-0.21-sidebars.json | 462 +- 616 files changed, 251046 insertions(+), 19983 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile delete mode 100644 docs/assets/specification/ErgoSpec.Backend.ErgoBackend.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.ErgoBackend.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.ForeignErgo.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.ForeignErgo.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.Lib.ECType.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.Lib.ECType.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.Lib.EData.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.Lib.EData.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.html create mode 100644 docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.CTO.CTO.html create mode 100644 docs/assets/specification/ErgoSpec.Common.CTO.CTO.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Types.ErgoType.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Types.ErgoType.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Ast.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Ast.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Misc.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Misc.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Names.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Names.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Provenance.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Provenance.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Result.html create mode 100644 docs/assets/specification/ErgoSpec.Common.Utils.Result.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.html create mode 100644 docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.html create mode 100644 docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.html create mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.html create mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.html create mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.html create mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.html create mode 100644 docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.jsx delete mode 100644 docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.html create mode 100644 docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Tests.HelloWorld.html create mode 100644 docs/assets/specification/ErgoSpec.Tests.HelloWorld.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoCInline.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoCInline.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.html create mode 100644 docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.jsx delete mode 100644 docs/assets/specification/ErgoSpec.Version.html create mode 100644 docs/assets/specification/ErgoSpec.Version.jsx create mode 100644 log/trace.log create mode 100644 website/.gitignore create mode 100644 website/docusaurus.config.js delete mode 100644 website/i18n/en.json delete mode 100755 website/pages/en/help.js delete mode 100755 website/pages/en/index.js delete mode 100644 website/pages/en/users.js delete mode 100644 website/pages/en/versions.js delete mode 100644 website/siteConfig.js create mode 100644 website/src/css/customTheme.css create mode 100644 website/src/pages/help.js create mode 100644 website/src/pages/index.js create mode 100644 website/src/pages/users.js create mode 100644 website/src/pages/versions.js create mode 100644 website/src/styles.module.css rename website/{core/Footer.js => src/theme/Footer/index.js} (82%) create mode 100644 website/src/theme/Footer/styles.module.css create mode 100644 website/static/ .nojekyll create mode 100644 website/static/docs/assets/020/ergo.png create mode 100644 website/static/docs/assets/020/grammar.png create mode 100644 website/static/docs/assets/020/studio.png create mode 100644 website/static/docs/assets/020/template.png create mode 100644 website/static/docs/assets/020/template_logic.png create mode 100644 website/static/docs/assets/020/template_model.png create mode 100644 website/static/docs/assets/020/template_text.png create mode 100644 website/static/docs/assets/acceptance-of-delivery.png create mode 100644 website/static/docs/assets/advanced/hlf1.png create mode 100644 website/static/docs/assets/advanced/hlf2.png create mode 100644 website/static/docs/assets/advanced/hlf3.png create mode 100644 website/static/docs/assets/advanced/hlf4.png create mode 100644 website/static/docs/assets/advanced/late1.png create mode 100644 website/static/docs/assets/advanced/late10.png create mode 100644 website/static/docs/assets/advanced/late10b.png create mode 100644 website/static/docs/assets/advanced/late11.png create mode 100644 website/static/docs/assets/advanced/late12.png create mode 100644 website/static/docs/assets/advanced/late13.png create mode 100644 website/static/docs/assets/advanced/late14.png create mode 100644 website/static/docs/assets/advanced/late15.png create mode 100644 website/static/docs/assets/advanced/late16.png create mode 100644 website/static/docs/assets/advanced/late17.png create mode 100644 website/static/docs/assets/advanced/late2.png create mode 100644 website/static/docs/assets/advanced/late3.png create mode 100644 website/static/docs/assets/advanced/late4.png create mode 100644 website/static/docs/assets/advanced/late5.png create mode 100644 website/static/docs/assets/advanced/late6.png create mode 100644 website/static/docs/assets/advanced/late7.png create mode 100644 website/static/docs/assets/advanced/late8.png create mode 100644 website/static/docs/assets/advanced/late9.png create mode 100644 website/static/docs/assets/advanced/minilatedeliveryandpenalty-capped@0.1.1.cta create mode 100644 website/static/docs/assets/advanced/minilatedeliveryandpenalty-payment@0.1.1.cta create mode 100644 website/static/docs/assets/advanced/minilatedeliveryandpenalty@0.1.1.cta create mode 100644 website/static/docs/assets/architecture/.gitignore create mode 100644 website/static/docs/assets/architecture/Makefile create mode 100644 website/static/docs/assets/architecture/cleansvg.ts create mode 100644 website/static/docs/assets/architecture/codegen-coq.tex create mode 100644 website/static/docs/assets/architecture/codegen.pdf create mode 100644 website/static/docs/assets/architecture/codegen.png create mode 100644 website/static/docs/assets/architecture/codegen.svg create mode 100644 website/static/docs/assets/architecture/codegen.tex create mode 100644 website/static/docs/assets/architecture/frontend-coq.tex create mode 100644 website/static/docs/assets/architecture/frontend.pdf create mode 100644 website/static/docs/assets/architecture/frontend.png create mode 100644 website/static/docs/assets/architecture/frontend.svg create mode 100644 website/static/docs/assets/architecture/frontend.tex create mode 100644 website/static/docs/assets/architecture/package-lock.json create mode 100644 website/static/docs/assets/architecture/package.json create mode 100644 website/static/docs/assets/architecture/tikzmacros.tex create mode 100644 website/static/docs/assets/architecture/tsconfig.json create mode 100644 website/static/docs/assets/architecture/types-coq.tex create mode 100644 website/static/docs/assets/architecture/types.pdf create mode 100644 website/static/docs/assets/architecture/types.png create mode 100644 website/static/docs/assets/architecture/types.svg create mode 100644 website/static/docs/assets/architecture/types.tex create mode 100644 website/static/docs/assets/basic/library1.png create mode 100644 website/static/docs/assets/basic/use1.png create mode 100644 website/static/docs/assets/basic/use2.png create mode 100644 website/static/docs/assets/basic/use3.png create mode 100644 website/static/docs/assets/bond-model.png create mode 100644 website/static/docs/assets/cicero-spec-overview.png create mode 100644 website/static/docs/assets/cicero-spec-uml.png create mode 100644 website/static/docs/assets/dingus1.png create mode 100644 website/static/docs/assets/dingus2.png create mode 100644 website/static/docs/assets/dingus3.png create mode 100644 website/static/docs/assets/dingus4.png create mode 100644 website/static/docs/assets/exceptions.png create mode 100644 website/static/docs/assets/execution_context.png create mode 100644 website/static/docs/assets/grammar.png create mode 100755 website/static/docs/assets/image1.png create mode 100755 website/static/docs/assets/image2.png create mode 100755 website/static/docs/assets/image3.png create mode 100644 website/static/docs/assets/perishable-goods.png create mode 100644 website/static/docs/assets/reference/tsv2.png create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.ErgoBackend.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.ForeignErgo.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.Lib.ECType.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.Lib.EData.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.CTO.CTO.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Types.ErgoType.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Utils.Ast.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Utils.Misc.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Utils.Names.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Utils.Provenance.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Common.Utils.Result.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Tests.HelloWorld.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.ErgoCInline.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.jsx create mode 100644 website/static/docs/assets/specification/ErgoSpec.Version.jsx create mode 100644 website/static/docs/assets/specification/coq2html.css create mode 100644 website/static/docs/assets/specification/coq2html.js create mode 100644 website/static/docs/assets/template.png create mode 100644 website/versioned_docs/version-0.12/accordproject-faq.md create mode 100644 website/versioned_docs/version-0.12/accordproject-slc.md create mode 100644 website/versioned_docs/version-0.12/accordproject-template.md create mode 100644 website/versioned_docs/version-0.12/accordproject-tour.md create mode 100644 website/versioned_docs/version-0.12/markup-ciceromark.md create mode 100644 website/versioned_docs/version-0.12/markup-commonmark.md create mode 100644 website/versioned_docs/version-0.12/markup-preliminaries.md create mode 100644 website/versioned_docs/version-0.12/markup-templatemark.md create mode 100644 website/versioned_docs/version-0.12/model-api.md create mode 100644 website/versioned_docs/version-0.12/model-classes.md create mode 100644 website/versioned_docs/version-0.12/model-concerto.md create mode 100644 website/versioned_docs/version-0.12/model-decorators.md create mode 100644 website/versioned_docs/version-0.12/model-enums.md create mode 100644 website/versioned_docs/version-0.12/model-namespaces.md create mode 100644 website/versioned_docs/version-0.12/model-properties.md create mode 100644 website/versioned_docs/version-0.12/model-relationships.md create mode 100644 website/versioned_docs/version-0.12/ref-cicero-api.md create mode 100644 website/versioned_docs/version-0.12/ref-cicero-cli.md create mode 100644 website/versioned_docs/version-0.12/ref-cicero-testing.md create mode 100644 website/versioned_docs/version-0.12/ref-concerto-api.md create mode 100644 website/versioned_docs/version-0.12/ref-concerto-cli.md create mode 100644 website/versioned_docs/version-0.12/ref-concerto-decorators.md create mode 100644 website/versioned_docs/version-0.12/ref-ergo-api.md create mode 100644 website/versioned_docs/version-0.12/ref-ergo-cli.md create mode 100644 website/versioned_docs/version-0.12/ref-ergo-repl.md create mode 100644 website/versioned_docs/version-0.12/ref-ergo-spec.md create mode 100644 website/versioned_docs/version-0.12/ref-ergo-stdlib.md create mode 100644 website/versioned_docs/version-0.12/ref-errors.md create mode 100644 website/versioned_docs/version-0.12/ref-glossary.md create mode 100644 website/versioned_docs/version-0.12/ref-markus-cli.md create mode 100644 website/versioned_docs/version-0.12/ref-migrate-0.13-0.20.md create mode 100644 website/versioned_docs/version-0.12/ref-migrate-0.20-0.21.md create mode 100644 website/versioned_docs/version-0.12/ref-web-components-overview.md create mode 100644 website/versioned_docs/version-0.12/started-hello.md create mode 100644 website/versioned_docs/version-0.12/started-installation.md create mode 100644 website/versioned_docs/version-0.12/started-resources.md create mode 100644 website/versioned_docs/version-0.12/tutorial-create.md create mode 100644 website/versioned_docs/version-0.12/tutorial-hyperledger.md create mode 100644 website/versioned_docs/version-0.12/tutorial-library.md create mode 100644 website/versioned_docs/version-0.12/tutorial-nodejs.md create mode 100644 website/versioned_docs/version-0.12/tutorial-studio.md create mode 100644 website/versioned_docs/version-0.12/tutorial-templates.md create mode 100644 website/versioned_docs/version-0.12/tutorial-vscode.md create mode 100644 website/versioned_docs/version-0.13/accordproject-faq.md create mode 100644 website/versioned_docs/version-0.13/accordproject-models.md create mode 100644 website/versioned_docs/version-0.13/accordproject-resources.md create mode 100644 website/versioned_docs/version-0.13/accordproject-slc.md create mode 100644 website/versioned_docs/version-0.13/accordproject-studio.md create mode 100644 website/versioned_docs/version-0.13/accordproject-template.md create mode 100644 website/versioned_docs/version-0.13/accordproject-templates.md create mode 100644 website/versioned_docs/version-0.13/accordproject-tooling.md create mode 100644 website/versioned_docs/version-0.13/accordproject-tour.md create mode 100644 website/versioned_docs/version-0.13/accordproject.md create mode 100644 website/versioned_docs/version-0.13/advanced-hyperledger.md create mode 100644 website/versioned_docs/version-0.13/advanced-latedelivery.md create mode 100644 website/versioned_docs/version-0.13/advanced-nodejs.md create mode 100644 website/versioned_docs/version-0.13/basic-library.md create mode 100644 website/versioned_docs/version-0.13/basic-templates.md create mode 100644 website/versioned_docs/version-0.13/cicero-api.md create mode 100644 website/versioned_docs/version-0.13/cicero-cli.md create mode 100644 website/versioned_docs/version-0.13/ergo-api.md create mode 100644 website/versioned_docs/version-0.13/example-eatapple.md create mode 100644 website/versioned_docs/version-0.13/logic-advanced-expr.md create mode 100644 website/versioned_docs/version-0.13/logic-decl.md create mode 100644 website/versioned_docs/version-0.13/logic-ergo.md create mode 100644 website/versioned_docs/version-0.13/logic-module.md create mode 100644 website/versioned_docs/version-0.13/logic-simple-expr.md create mode 100644 website/versioned_docs/version-0.13/logic-simple-type.md create mode 100644 website/versioned_docs/version-0.13/markup-ciceromark.md create mode 100644 website/versioned_docs/version-0.13/markup-commonmark.md create mode 100644 website/versioned_docs/version-0.13/markup-preliminaries.md create mode 100644 website/versioned_docs/version-0.13/markup-templatemark.md create mode 100644 website/versioned_docs/version-0.13/model-api.md create mode 100644 website/versioned_docs/version-0.13/model-classes.md create mode 100644 website/versioned_docs/version-0.13/model-concerto.md create mode 100644 website/versioned_docs/version-0.13/model-decorators.md create mode 100644 website/versioned_docs/version-0.13/model-enums.md create mode 100644 website/versioned_docs/version-0.13/model-namespaces.md create mode 100644 website/versioned_docs/version-0.13/model-properties.md create mode 100644 website/versioned_docs/version-0.13/model-relationships.md create mode 100644 website/versioned_docs/version-0.13/ref-cicero-api.md create mode 100644 website/versioned_docs/version-0.13/ref-cicero-cli.md create mode 100644 website/versioned_docs/version-0.13/ref-cicero-testing.md create mode 100644 website/versioned_docs/version-0.13/ref-concerto-api.md create mode 100644 website/versioned_docs/version-0.13/ref-concerto-cli.md create mode 100644 website/versioned_docs/version-0.13/ref-concerto-decorators.md create mode 100644 website/versioned_docs/version-0.13/ref-ergo-api.md create mode 100644 website/versioned_docs/version-0.13/ref-ergo-cli.md create mode 100644 website/versioned_docs/version-0.13/ref-ergo-repl.md create mode 100644 website/versioned_docs/version-0.13/ref-ergo-spec.md create mode 100644 website/versioned_docs/version-0.13/ref-ergo-stdlib.md create mode 100644 website/versioned_docs/version-0.13/ref-glossary.md create mode 100644 website/versioned_docs/version-0.13/ref-logic-specification.md create mode 100644 website/versioned_docs/version-0.13/ref-logic.md create mode 100644 website/versioned_docs/version-0.13/ref-markup.md create mode 100644 website/versioned_docs/version-0.13/ref-markus-cli.md create mode 100644 website/versioned_docs/version-0.13/ref-migrate-0.13-0.20.md create mode 100644 website/versioned_docs/version-0.13/ref-migrate-0.20-0.21.md create mode 100644 website/versioned_docs/version-0.13/ref-testing.md create mode 100644 website/versioned_docs/version-0.13/ref-web-components-overview.md create mode 100644 website/versioned_docs/version-0.13/spec-concepts.md create mode 100644 website/versioned_docs/version-0.13/spec-example.md create mode 100644 website/versioned_docs/version-0.13/spec-execution.md create mode 100644 website/versioned_docs/version-0.13/spec-instance.md create mode 100644 website/versioned_docs/version-0.13/spec-overview.md create mode 100644 website/versioned_docs/version-0.13/spec-template.md create mode 100644 website/versioned_docs/version-0.13/started-hello.md create mode 100644 website/versioned_docs/version-0.13/started-installation.md create mode 100644 website/versioned_docs/version-0.13/started-resources.md create mode 100644 website/versioned_docs/version-0.13/tutorial-create.md create mode 100644 website/versioned_docs/version-0.13/tutorial-hyperledger.md create mode 100644 website/versioned_docs/version-0.13/tutorial-library.md create mode 100644 website/versioned_docs/version-0.13/tutorial-nodejs.md create mode 100644 website/versioned_docs/version-0.13/tutorial-studio.md create mode 100644 website/versioned_docs/version-0.13/tutorial-templates.md create mode 100644 website/versioned_docs/version-0.13/tutorial-vscode.md create mode 100644 website/versioned_docs/version-0.20/accordproject-faq.md create mode 100644 website/versioned_docs/version-0.20/accordproject-installation.md create mode 100644 website/versioned_docs/version-0.20/accordproject-models.md create mode 100644 website/versioned_docs/version-0.20/accordproject-resources.md create mode 100644 website/versioned_docs/version-0.20/accordproject-slc.md create mode 100644 website/versioned_docs/version-0.20/accordproject-studio.md create mode 100644 website/versioned_docs/version-0.20/accordproject-template.md create mode 100644 website/versioned_docs/version-0.20/accordproject-templates.md create mode 100644 website/versioned_docs/version-0.20/accordproject-tooling.md create mode 100644 website/versioned_docs/version-0.20/accordproject-tour.md create mode 100644 website/versioned_docs/version-0.20/advanced-hyperledger.md create mode 100644 website/versioned_docs/version-0.20/advanced-latedelivery.md create mode 100644 website/versioned_docs/version-0.20/advanced-nodejs.md create mode 100644 website/versioned_docs/version-0.20/basic-create.md create mode 100644 website/versioned_docs/version-0.20/basic-library.md create mode 100644 website/versioned_docs/version-0.20/basic-templates.md create mode 100644 website/versioned_docs/version-0.20/basic-use.md create mode 100644 website/versioned_docs/version-0.20/markup-ciceromark.md create mode 100644 website/versioned_docs/version-0.20/markup-preliminaries.md create mode 100644 website/versioned_docs/version-0.20/markup-templatemark.md create mode 100644 website/versioned_docs/version-0.20/ref-cicero-api.md create mode 100644 website/versioned_docs/version-0.20/ref-cicero-cli.md create mode 100644 website/versioned_docs/version-0.20/ref-cicero-testing.md create mode 100644 website/versioned_docs/version-0.20/ref-concerto-api.md create mode 100644 website/versioned_docs/version-0.20/ref-concerto-cli.md create mode 100644 website/versioned_docs/version-0.20/ref-concerto-decorators.md create mode 100644 website/versioned_docs/version-0.20/ref-ergo-api.md create mode 100644 website/versioned_docs/version-0.20/ref-ergo-cli.md create mode 100644 website/versioned_docs/version-0.20/ref-ergo-repl.md create mode 100644 website/versioned_docs/version-0.20/ref-ergo-spec.md create mode 100644 website/versioned_docs/version-0.20/ref-ergo-stdlib.md create mode 100644 website/versioned_docs/version-0.20/ref-errors.md create mode 100644 website/versioned_docs/version-0.20/ref-markup.md create mode 100644 website/versioned_docs/version-0.20/ref-markus-cli.md create mode 100644 website/versioned_docs/version-0.20/ref-migrate-0.20-0.21.md create mode 100644 website/versioned_docs/version-0.20/ref-web-components-overview.md create mode 100644 website/versioned_docs/version-0.20/spec-concepts.md create mode 100644 website/versioned_docs/version-0.20/spec-example.md create mode 100644 website/versioned_docs/version-0.20/spec-execution.md create mode 100644 website/versioned_docs/version-0.20/spec-instance.md create mode 100644 website/versioned_docs/version-0.20/spec-overview.md create mode 100644 website/versioned_docs/version-0.20/spec-packaging.md create mode 100644 website/versioned_docs/version-0.20/spec-template.md create mode 100644 website/versioned_docs/version-0.20/tutorial-studio.md create mode 100644 website/versioned_docs/version-0.20/tutorial-vscode.md create mode 100644 website/versioned_docs/version-0.21/accordproject-business.md create mode 100644 website/versioned_docs/version-0.21/accordproject-concepts.md create mode 100644 website/versioned_docs/version-0.21/accordproject-developers.md create mode 100644 website/versioned_docs/version-0.21/accordproject-installation.md create mode 100644 website/versioned_docs/version-0.21/accordproject-models.md create mode 100644 website/versioned_docs/version-0.21/accordproject-resources.md create mode 100644 website/versioned_docs/version-0.21/accordproject-studio.md create mode 100644 website/versioned_docs/version-0.21/accordproject-templates.md create mode 100644 website/versioned_docs/version-0.21/accordproject-tooling.md create mode 100644 website/versioned_docs/version-0.21/advanced-hyperledger.md create mode 100644 website/versioned_docs/version-0.21/advanced-latedelivery.md create mode 100644 website/versioned_docs/version-0.21/advanced-nodejs.md create mode 100644 website/versioned_docs/version-0.21/basic-create.md create mode 100644 website/versioned_docs/version-0.21/basic-library.md create mode 100644 website/versioned_docs/version-0.21/basic-templates.md create mode 100644 website/versioned_docs/version-0.21/basic-use.md create mode 100644 website/versioned_docs/version-0.21/cicero-api.md create mode 100644 website/versioned_docs/version-0.21/cicero-cli.md create mode 100644 website/versioned_docs/version-0.21/concerto-api.md create mode 100644 website/versioned_docs/version-0.21/concerto-cli.md create mode 100644 website/versioned_docs/version-0.21/ergo-api.md create mode 100644 website/versioned_docs/version-0.21/ergo-cli.md create mode 100644 website/versioned_docs/version-0.21/ergo-repl.md create mode 100644 website/versioned_docs/version-0.21/example-eatapple.md create mode 100644 website/versioned_docs/version-0.21/logic-complex-type.md create mode 100644 website/versioned_docs/version-0.21/logic-decl.md create mode 100644 website/versioned_docs/version-0.21/logic-ergo.md create mode 100644 website/versioned_docs/version-0.21/logic-module.md create mode 100644 website/versioned_docs/version-0.21/logic-simple-expr.md create mode 100644 website/versioned_docs/version-0.21/logic-simple-type.md create mode 100644 website/versioned_docs/version-0.21/markup-blocks.md create mode 100644 website/versioned_docs/version-0.21/markup-cicero.md create mode 100644 website/versioned_docs/version-0.21/markup-ergo.md create mode 100644 website/versioned_docs/version-0.21/markup-variables.md create mode 100644 website/versioned_docs/version-0.21/markus-cli.md create mode 100644 website/versioned_docs/version-0.21/model-concerto.md create mode 100644 website/versioned_docs/version-0.21/model-enums.md create mode 100644 website/versioned_docs/version-0.21/model-namespaces.md create mode 100644 website/versioned_docs/version-0.21/ref-cicero-ui.md create mode 100644 website/versioned_docs/version-0.21/ref-glossary.md create mode 100644 website/versioned_docs/version-0.21/ref-logic-specification.md create mode 100644 website/versioned_docs/version-0.21/ref-logic-stdlib.md create mode 100644 website/versioned_docs/version-0.21/ref-logic.md create mode 100644 website/versioned_docs/version-0.21/ref-markup.md create mode 100644 website/versioned_docs/version-0.21/ref-testing.md create mode 100644 website/versioned_docs/version-0.21/spec-concepts.md create mode 100644 website/versioned_docs/version-0.21/spec-example.md create mode 100644 website/versioned_docs/version-0.21/spec-execution.md create mode 100644 website/versioned_docs/version-0.21/spec-instance.md create mode 100644 website/versioned_docs/version-0.21/spec-overview.md create mode 100644 website/versioned_docs/version-0.21/spec-packaging.md create mode 100644 website/versioned_docs/version-0.21/spec-template.md create mode 100644 website/versioned_docs/version-0.21/started-resources.md create mode 100644 website/versioned_docs/version-0.21/started-studio.md create mode 100644 website/versioned_docs/version-0.21/tutorial-latedelivery.md create mode 100644 website/versioned_docs/version-0.21/tutorial-nodejs.md diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..db52b20f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +.DS_Store + +node_modules + +lib/core/metadata.js +lib/core/MetadataBlog.js + +website/translated_docs +website/build/ +website/yarn.lock +website/node_modules +website/i18n/* +!website/i18n/en.json + +thumbs.db diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..214e5903 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM node:14-slim +COPY . ./ +RUN cd website && npm i +CMD cd website && npm start \ No newline at end of file diff --git a/README.md b/README.md index a4437e66..27948471 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@

+[![Netlify Status](https://api.netlify.com/api/v1/badges/b6de7e93-88c3-4684-8424-298ed99b6931/deploy-status)](https://app.netlify.com/sites/ecstatic-lewin-144d0e/deploys) + ## Introduction Technical Documentation for all Accord Project code. This site uses [Docusaurus](https://docusaurus.io) to generate static HTML. @@ -23,12 +25,15 @@ Accord Project is an open source, non-profit, initiative working to transform co ## Installation -To build the documentation locally: + +To build the documentation locally (docusaurus v2): ``` cd ./website npm install npm run start ``` + + If you want to re-generate the JSDoc API: ``` npm run build:api diff --git a/docs/accordproject-template.md b/docs/accordproject-template.md index b4593dd7..217a0dab 100644 --- a/docs/accordproject-template.md +++ b/docs/accordproject-template.md @@ -9,7 +9,7 @@ An Accord Project template ties legal text to computer code. It is composed of t - **Template Model**: the data model that backs the template, acting as a bridge between the text and the logic - **Template Logic**: the executable business logic for the template -![Template](assets/020/template.png) +![Template](/docs/assets/020/template.png) The three components (Text - Model - Logic) can also be intuitively understood as a **progression**, from _human-readable_ legal text to _machine-readable_ and _machine-executable_. When combined these three elements allow templates to be edited, validated, and then executed on any computer platform (on your own machine, on a Cloud platform, on Blockchain, etc). @@ -17,7 +17,7 @@ The three components (Text - Model - Logic) can also be intuitively understood a ## Template Text -![Template Text](assets/020/template_text.png) +![Template Text](/docs/assets/020/template_text.png) The template text is the natural language of the clause or contract. It can include markup to indicate [variables](ref-glossary#variable) for that template. @@ -83,7 +83,7 @@ _More information about the Accord Project markup can be found in the [Markdown ## Template Model -![Template Model](assets/020/template_model.png) +![Template Model](/docs/assets/020/template_model.png) Unlike a standard document template (e.g., in Word or pdf), Accord Project templates associate a _model_ to the natural language text. The model acts as a bridge between the text and logic; it gives the users an overview of the components, as well as the types of different components. @@ -124,13 +124,13 @@ _More information about Concerto can be found in the [Concerto Model](model-conc ## Template Logic -![Template Logic](assets/020/template_logic.png) +![Template Logic](/docs/assets/020/template_logic.png) The combination of text and model already makes templates _machine-readable_, while the logic makes it _machine-executable_. ### During Drafting -In the [Overview](accordproject) Section, we already saw how logic can be embedded in the text of the template itself to automatically calculate a monthly payment for a [fixed rate loan](): +In the [Overview](accordproject) Section, we already saw how logic can be embedded in the text of the template itself to automatically calculate a monthly payment for a [fixed rate loan](accordproject-template): ```tem ## Fixed rate loan diff --git a/docs/assets/specification/ErgoSpec.Backend.ErgoBackend.html b/docs/assets/specification/ErgoSpec.Backend.ErgoBackend.html deleted file mode 100644 index 0ab07589..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.ErgoBackend.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.ErgoBackend - - - - - - -

Module ErgoSpec.Backend.ErgoBackend

- - - - diff --git a/docs/assets/specification/ErgoSpec.Backend.ErgoBackend.jsx b/docs/assets/specification/ErgoSpec.Backend.ErgoBackend.jsx new file mode 100644 index 00000000..b450ce7f --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.ErgoBackend.jsx @@ -0,0 +1,250 @@ +
+ + Module ErgoSpec.Backend.ErgoBackend + + +

Module ErgoSpec.Backend.ErgoBackend

+
+
+ + Require + Export{" "} + +
+ Qcert.Utils.Utils + + + .
+ + Require + Export{" "} + + + Qcert.Common.TypingRuntime + + + .
+
+ Require{" "} + + + ErgoSpec.Backend.Model.ErgoEnhancedModel + + + .
+ Require{" "} + + + ErgoSpec.Backend.Model.ErgoBackendRuntime + + + .
+ Require{" "} + + ErgoSpec.Backend.Lib.ECType + + .
+ Require{" "} + + ErgoSpec.Backend.Lib.EData + + .
+ Require{" "} + + + ErgoSpec.Backend.Lib.EOperators + + + .
+ Require{" "} + + + ErgoSpec.Backend.Lib.ECodeGen + + + .
+
+ Module{" "} + + ErgoEnhancedBackend + {" "} + :={" "} + + + ErgoBackendRuntime.ErgoBackendRuntime + + {" "} + <+{" "} + + + ErgoEnhancedModel.CompEnhanced + + + .
+ Module{" "} + + ErgoData + {" "} + :={" "} + + EData.EData + + ( + + + ErgoEnhancedBackend + + + ). +
+ Module{" "} + + ErgoOps + {" "} + :={" "} + + + EOperators.EOperators + + + ( + + + ErgoEnhancedBackend + + + ). +
+ Module{" "} + + ErgoCodeGen + {" "} + :={" "} + + + ECodeGen.ECodeGen + + + ( + + + ErgoEnhancedBackend + + + ). +
+ Module{" "} + + ErgoCTypes + {" "} + :={" "} + + ECType.ECType + + ( + + + ErgoEnhancedBackend + + + ). +
+
+ Section{" "} + + Defs + + .
+   Definition{" "} + + zip + {" "} + {"{"} + A + {"}"} {"{"} + B + {"}"} :{" "} + + + list + + {" "} + + A + {" "} + ->{" "} + + + list + + {" "} + + B + {" "} + ->{" "} + + + option + + {" "} + ( + + + list + + {" "} + ( + + A + {" "} + *{" "} + + B + + )) :={" "} + + + zip + + + .
+   Definition{" "} + + ergo_data + {" "} + :={" "} + + ErgoData.data + + .
+   Definition{" "} + + ergoc_type + {" "} + {"{"} + br + {"}"} := @ + + ErgoCTypes.ectype + {" "} + + br + + .
+ End{" "} + + Defs + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.ForeignErgo.html b/docs/assets/specification/ErgoSpec.Backend.ForeignErgo.html deleted file mode 100644 index 0063895d..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.ForeignErgo.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.ForeignErgo - - - - - - -

Module ErgoSpec.Backend.ForeignErgo

-
-
-Require Import String.
-Require Import Qcert.Utils.Closure.
-Require Import Qcert.Common.CommonSystem.
-Require Import Qcert.NNRC.Lang.NNRC.
-
-Section ForeignErgo.
-  Context {fruntime:foreign_runtime}.
-
-  Definition backend_closure : Set := @closure nnrc unit.
-  Definition backend_lookup_table : Set := string -> option backend_closure.
-
-  Class foreign_ergo : Type
-    := mk_foreign_ergo {
-           foreign_table : backend_lookup_table
-         }.
-
-End ForeignErgo.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Backend.ForeignErgo.jsx b/docs/assets/specification/ErgoSpec.Backend.ForeignErgo.jsx new file mode 100644 index 00000000..8491c794 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.ForeignErgo.jsx @@ -0,0 +1,143 @@ +
+ + Module ErgoSpec.Backend.ForeignErgo + + +

Module ErgoSpec.Backend.ForeignErgo

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + + Qcert.Utils.Closure + + + .
+ + Require + Import{" "} + + + Qcert.Common.CommonSystem + + + .
+ + Require + Import{" "} + + + Qcert.NNRC.Lang.NNRC + + + .
+
+ Section{" "} + + ForeignErgo + + .
+   Context {"{"} + fruntime: + + + foreign_runtime + + + {"}"}.
+
+   Definition{" "} + + backend_closure + {" "} + : Set := @ + + + closure + + {" "} + + + nnrc + + {" "} + + + unit + + + .
+   Definition{" "} + + backend_lookup_table + {" "} + : Set :={" "} + + + string + + {" "} + ->{" "} + + + option + + {" "} + + + backend_closure + + + .
+
+   Class{" "} + + foreign_ergo + {" "} + : Type +
+     :={" "} + + mk_foreign_ergo + {" "} + {"{"} +
+             + + foreign_table + {" "} + :{" "} + + + backend_lookup_table + + +
+          {"}"}.
+
+ End{" "} + + ForeignErgo + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.Lib.ECType.html b/docs/assets/specification/ErgoSpec.Backend.Lib.ECType.html deleted file mode 100644 index 66983684..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.Lib.ECType.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.Lib.ECType - - - - - - -

Module ErgoSpec.Backend.Lib.ECType

-
-
-Require Import String.
-Require Import List.
-Require Import Qcert.Common.CommonTypes.
-Require Import Qcert.Common.TypingRuntime.
-Require Import ErgoSpec.Backend.Model.ErgoBackendModel.
-Require Import ErgoSpec.Backend.Model.ErgoBackendRuntime.
-Require Import ErgoSpec.Backend.Model.ErgoEnhancedModel.
-
-Module ECType(ergomodel:ErgoBackendModel).
-
-  Definition empty_brand_model (x:unit) := TBrandModel.empty_brand_model.
-
-  Definition record_kind : Set
-    := RType.record_kind.
-
-  Definition open_kind : record_kind
-    := RType.Open.
-
-  Definition closed_kind : record_kind
-    := RType.Closed.
-
-  Definition ectype_struct {br:brand_relation} : Set
-    := RType.rtype₀.
-  Definition ectype {br:brand_relation} : Set
-    := RType.rtype.
-  Definition t {br:brand_relation} : Set
-    := ectype.
-
-  Definition sorted_pf_type {br:brand_relation} srl
-      := SortingAdd.is_list_sorted Bindings.ODT_lt_dec (@Assoc.domain String.string ectype srl) = true.
-
-  Definition tbottom {br:brand_relation} : ectype
-    := RType.Bottom.
-  Definition ttop {br:brand_relation} : ectype
-    := RType.Top.
-  Definition tunit {br:brand_relation} : ectype
-    := RType.Unit.
-  Definition tfloat {br:brand_relation} : ectype
-    := RType.Float.
-  Definition tnat {br:brand_relation} : ectype
-    := RType.Nat.
-  Definition tbool {br:brand_relation} : ectype
-    := RType.Bool.
-  Definition tstring {br:brand_relation} : ectype
-    := RType.String.
-  Definition tdateTime {br:brand_relation} : ectype
-    := DateTime.
-  Definition tduration {br:brand_relation} : ectype
-    := DateTimeInterval.
-  Definition tcoll {br:brand_relation} : ectype -> ectype
-    := RType.Coll.
-  Definition trec {br:brand_relation} : record_kind -> forall (r:list (String.string*ectype)), sorted_pf_type r -> ectype
-    := RType.Rec.
-  Definition teither {br:brand_relation} : ectype -> ectype -> ectype
-    := RType.Either.
-  Definition tarrow {br:brand_relation} : ectype -> ectype -> ectype
-    := RType.Arrow.
-  Definition tbrand {br:brand_relation} : list String.string -> ectype
-    := RType.Brand.
-
-  Definition toption {br:brand_relation} : ectype -> ectype
-    := RType.Option.
-
-  Definition ergoc_type_meet {br:brand_relation} : ectype -> ectype -> ectype := rtype_meet.
-  Definition ergoc_type_join {br:brand_relation} : ectype -> ectype -> ectype := rtype_join.
-
-  Definition ergoc_type_subtype {br:brand_relation} : ectype -> ectype -> Prop := subtype.
-  Theorem ergoc_type_subtype_dec {m:brand_model} (t1 t2:ectype) :
-    {ergoc_type_subtype t1 t2} + {~ ergoc_type_subtype t1 t2}.
-
Proof.
-
-    apply subtype_dec.
-  Defined.
-    
-  Definition untcoll {m:brand_model} : ectype -> option ectype := tuncoll.
-  Definition unteither {m:brand_model} : ectype -> option (ectype * ectype) := tuneither.
-  Definition untrec {m:brand_model} : ectype -> option (record_kind * (list (string * ectype))) := tunrec.
-
-  Definition ergoc_type_infer_data {m:brand_model} : data -> Datatypes.option ectype := infer_data_type.
-  Definition ergoc_type_infer_binary_op {m:brand_model} : binary_op -> ectype -> ectype -> option (ectype * ectype * ectype) := infer_binary_op_type_sub.
-  Definition ergoc_type_infer_unary_op {m:brand_model} : unary_op -> ectype -> option (ectype * ectype) := infer_unary_op_type_sub.
-
-  Definition unpack_ergoc_type {br:brand_relation} (t:ectype) : ectype_struct := proj1_sig t.
-  
-  Definition tbrand_relation : Set := brand_relation.
-  Definition tempty_brand_relation : tbrand_relation := mkBrand_relation nil (eq_refl _) (eq_refl _).
-  Definition mk_tbrand_relation : list (string * string) -> qresult tbrand_relation := Schema.mk_brand_relation.
-
-  Definition tbrand_context_decls {br:brand_relation} : Set := brand_context_decls.
-  Definition tbrand_context {br:brand_relation} : Set := brand_context.
-  Definition mk_tbrand_context {br:brand_relation} : tbrand_context_decls -> tbrand_context :=
-    @mk_brand_context _ br.
-
-  Definition tbrand_model : Set := brand_model.
-  Definition mk_tbrand_model {br:brand_relation} : tbrand_context_decls -> qresult tbrand_model :=
-    @Schema.make_brand_model_from_decls_fails _ _ br.
-
-  Program Definition tempty_brand_model : tbrand_model :=
-    @make_brand_model _ tempty_brand_relation (mkBrand_context nil _) _.
-
-  Definition ergoc_type_unpack {br:brand_relation} (t:ectype) : ectype_struct := proj1_sig t.
-
-  Program Definition ergoc_closed_from_open {m:brand_model} (t:ectype) : ectype :=
-    match untrec t with
-    | None => t
-    | Some (k, fields) => Rec Closed fields _
-    end.
-
Next Obligation.
-
-    assert (untrec t0 = Some (k, fields)) by auto; clear Heq_anonymous.
-    generalize (tunrec_correct k t0 H); intros.
-    elim H0; clear H0; intros.
-    auto.
-  Qed.
-
-  Definition infer_brand_strict {m:brand_model} (b:brands) (t:ectype) : option (rtype * ectype) :=
-    if (subtype_dec t (ergoc_closed_from_open (brands_type b)))
-    then Some (Brand b, t)
-    else None.
-
-  Definition recminus {br:brand_relation} (rt:list (string*rtype)) (sl:list string) : list (string*rtype) :=
-    fold_left rremove sl rt.
-
-  Definition diff_record_types {m:brand_model} (b:brands) (t:ectype) : option (list string * list string) :=
-    match tunrec t with
-    | None => None
-    | Some (_, actual_rt) =>
-      match tunrec (ergoc_closed_from_open (brands_type b)) with
-      | None => None
-      | Some (_, expected_rt) =>
-        let in_expected_not_in_actual := recminus expected_rt (map fst actual_rt) in
-        let in_actual_not_in_expected := recminus actual_rt (map fst expected_rt) in
-        Some (map fst in_expected_not_in_actual, map fst in_actual_not_in_expected)
-      end
-    end.
-
-  Fixpoint rec_fields_that_are_not_subtype {m:brand_model} (t1 t2:list (string*ectype)) : list (string * ectype * ectype) :=
-    match t1, t2 with
-    | nil, _ => nil
-    | _, nil => nil
-    | (name1,t1)::rest1, (name2,t2)::rest2 =>
-      if string_dec name1 name2
-      then
-        if subtype_dec t2 t1
-        then
-          rec_fields_that_are_not_subtype rest1 rest2
-        else
-          (name1, t1, t2) :: rec_fields_that_are_not_subtype rest1 rest2
-      else
-        rec_fields_that_are_not_subtype rest1 rest2
-    end.
-  
-  Definition fields_that_are_not_subtype {m:brand_model} (b:brands) (t:ectype) : list (string * ectype * ectype) :=
-    match tunrec t with
-    | None => nil
-    | Some (_, actual_rt) =>
-      match tunrec (ergoc_closed_from_open (brands_type b)) with
-      | None => nil
-      | Some (_, expected_rt) =>
-        rec_fields_that_are_not_subtype expected_rt actual_rt
-      end
-    end.
-  
-End ECType.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Backend.Lib.ECType.jsx b/docs/assets/specification/ErgoSpec.Backend.Lib.ECType.jsx new file mode 100644 index 00000000..1cc2261d --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.Lib.ECType.jsx @@ -0,0 +1,2129 @@ +
+ + Module ErgoSpec.Backend.Lib.ECType + + +

Module ErgoSpec.Backend.Lib.ECType

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + Qcert.Common.CommonTypes + + + .
+ + Require + Import{" "} + + + Qcert.Common.TypingRuntime + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendModel + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendRuntime + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoEnhancedModel + + + .
+
+ Module{" "} + + ECType + + (ergomodel: + + + ErgoBackendModel + + + ). +
+
+   Definition{" "} + + empty_brand_model + {" "} + (x: + + + unit + + + ) :={" "} + + + TBrandModel.empty_brand_model + + + .
+
+   Definition{" "} + + record_kind + {" "} + : Set +
+     :={" "} + + + RType.record_kind + + + .
+
+   Definition{" "} + + open_kind + {" "} + :{" "} + + + record_kind + + +
+     :={" "} + + + RType.Open + + + .
+
+   Definition{" "} + + closed_kind + {" "} + :{" "} + + + record_kind + + +
+     :={" "} + + + RType.Closed + + + .
+
+   Definition{" "} + + ectype_struct + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} : Set +
+     := RType.rtype₀. +
+   Definition{" "} + + ectype + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} : Set +
+     :={" "} + + + RType.rtype + + + .
+   Definition{" "} + + t + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} : Set +
+     :={" "} + + ectype + + .
+
+   Definition{" "} + + sorted_pf_type + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} srl +
+       :={" "} + + + SortingAdd.is_list_sorted + + {" "} + + + Bindings.ODT_lt_dec + + {" "} + (@ + + + Assoc.domain + + {" "} + + + String.string + + {" "} + + ectype + {" "} + + srl + + ) ={" "} + + + true + + + .
+
+   Definition{" "} + + tbottom + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + RType.Bottom + + + .
+   Definition{" "} + + ttop + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + RType.Top + + + .
+   Definition{" "} + + tunit + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + RType.Unit + + + .
+   Definition{" "} + + tfloat + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + RType.Float + + + .
+   Definition{" "} + + tnat + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + RType.Nat + + + .
+   Definition{" "} + + tbool + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + RType.Bool + + + .
+   Definition{" "} + + tstring + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + RType.String + + + .
+   Definition{" "} + + tdateTime + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + DateTime + + + .
+   Definition{" "} + + tduration + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + +
+     :={" "} + + + DateTimeInterval + + + .
+   Definition{" "} + + tcoll + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + ectype + +
+     :={" "} + + + RType.Coll + + + .
+   Definition{" "} + + trec + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + + record_kind + + {" "} + -> forall (r: + + + list + + {" "} + ( + + + String.string + + + * + + ectype + + )),{" "} + + + sorted_pf_type + + {" "} + + r + {" "} + ->{" "} + + ectype + +
+     :={" "} + + + RType.Rec + + + .
+   Definition{" "} + + teither + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + ectype + {" "} + ->{" "} + + ectype + +
+     :={" "} + + + RType.Either + + + .
+   Definition{" "} + + tarrow + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + ectype + {" "} + ->{" "} + + ectype + +
+     :={" "} + + + RType.Arrow + + + .
+   Definition{" "} + + tbrand + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + + list + + {" "} + + + String.string + + {" "} + ->{" "} + + ectype + {" "} +
+     :={" "} + + + RType.Brand + + + .
+
+   Definition{" "} + + toption + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + ectype + +
+     :={" "} + + + RType.Option + + + .
+
+   Definition{" "} + + ergoc_type_meet + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + ectype + {" "} + ->{" "} + + ectype + {" "} + :={" "} + + + rtype_meet + + + .
+   Definition{" "} + + ergoc_type_join + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + ectype + {" "} + ->{" "} + + ectype + {" "} + :={" "} + + + rtype_join + + + .
+
+   Definition{" "} + + ergoc_type_subtype + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + ectype + {" "} + -> Prop :={" "} + + + subtype + + + .
+   Theorem{" "} + + ergoc_type_subtype_dec + {" "} + {"{"} + m: + + + brand_model + + + {"}"} (t1 t2: + + ectype + + ) :
+     {"{"} + + + ergoc_type_subtype + + {" "} + + t1 + {" "} + + t2 + + {"}"} + {"{"}~{" "} + + + ergoc_type_subtype + + {" "} + + t1 + {" "} + + t2 + + {"}"}.
+
+ Proof. +
+
+     apply{" "} + + + subtype_dec + + + .
+   Defined. +
+      +
+   Definition{" "} + + untcoll + {" "} + {"{"} + m: + + + brand_model + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + + option + + {" "} + + ectype + {" "} + :={" "} + + + tuncoll + + + .
+   Definition{" "} + + unteither + {" "} + {"{"} + m: + + + brand_model + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + + option + + {" "} + ( + + ectype + {" "} + *{" "} + + ectype + + ) :={" "} + + + tuneither + + + .
+   Definition{" "} + + untrec + {" "} + {"{"} + m: + + + brand_model + + + {"}"} :{" "} + + ectype + {" "} + ->{" "} + + + option + + {" "} + ( + + + record_kind + + {" "} + * ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ectype + + ))) :={" "} + + + tunrec + + + .
+
+   Definition{" "} + + ergoc_type_infer_data + {" "} + {"{"} + m: + + + brand_model + + + {"}"} :{" "} + + + data + + {" "} + ->{" "} + + + Datatypes.option + + {" "} + + ectype + {" "} + :={" "} + + + infer_data_type + + + .
+   Definition{" "} + + ergoc_type_infer_binary_op + {" "} + {"{"} + m: + + + brand_model + + + {"}"} :{" "} + + + binary_op + + {" "} + ->{" "} + + ectype + {" "} + ->{" "} + + ectype + {" "} + ->{" "} + + + option + + {" "} + ( + + ectype + {" "} + *{" "} + + ectype + {" "} + *{" "} + + ectype + + ) :={" "} + + + infer_binary_op_type_sub + + + .
+   Definition{" "} + + ergoc_type_infer_unary_op + {" "} + {"{"} + m: + + + brand_model + + + {"}"} :{" "} + + + unary_op + + {" "} + ->{" "} + + ectype + {" "} + ->{" "} + + + option + + {" "} + ( + + ectype + {" "} + *{" "} + + ectype + + ) :={" "} + + + infer_unary_op_type_sub + + + .
+
+   Definition{" "} + + unpack_ergoc_type + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} (t: + + ectype + + ) :{" "} + + + ectype_struct + + {" "} + :={" "} + + + proj1_sig + + {" "} + + t + + .
+    +
+   Definition{" "} + + tbrand_relation + {" "} + : Set :={" "} + + + brand_relation + + + .
+   Definition{" "} + + tempty_brand_relation + {" "} + :{" "} + + + tbrand_relation + + {" "} + :={" "} + + + mkBrand_relation + + {" "} + + nil + {" "} + ( + + + eq_refl + + {" "} + _) ( + + + eq_refl + + {" "} + _). +
+   Definition{" "} + + mk_tbrand_relation + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + string + + + ) ->{" "} + + + qresult + + {" "} + + + tbrand_relation + + {" "} + :={" "} + + + Schema.mk_brand_relation + + + .
+
+   Definition{" "} + + tbrand_context_decls + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} : Set :={" "} + + + brand_context_decls + + + .
+   Definition{" "} + + tbrand_context + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} : Set :={" "} + + + brand_context + + + .
+   Definition{" "} + + mk_tbrand_context + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + + tbrand_context_decls + + {" "} + ->{" "} + + + tbrand_context + + {" "} + := +
+     @ + + + mk_brand_context + + {" "} + _{" "} + + br + + .
+
+   Definition{" "} + + tbrand_model + {" "} + : Set :={" "} + + + brand_model + + + .
+   Definition{" "} + + mk_tbrand_model + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + + tbrand_context_decls + + {" "} + ->{" "} + + + qresult + + {" "} + + + tbrand_model + + {" "} + := +
+     @ + + + Schema.make_brand_model_from_decls_fails + + {" "} + _ _{" "} + + br + + .
+
+   Program{" "} + Definition{" "} + + tempty_brand_model + {" "} + :{" "} + + + tbrand_model + + {" "} + := +
+     @ + + + make_brand_model + + {" "} + _{" "} + + + tempty_brand_relation + + {" "} + ( + + + mkBrand_context + + {" "} + + nil + {" "} + _) _.
+
+   Definition{" "} + + ergoc_type_unpack + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} (t: + + ectype + + ) :{" "} + + + ectype_struct + + {" "} + :={" "} + + + proj1_sig + + {" "} + + t + + .
+
+   Program{" "} + Definition{" "} + + ergoc_closed_from_open + {" "} + {"{"} + m: + + + brand_model + + + {"}"} (t: + + ectype + + ) :{" "} + + ectype + {" "} + := +
+     match{" "} + + untrec + {" "} + + t + {" "} + with +
+     |{" "} + + + None + + {" "} + =>{" "} + + t + +
+     |{" "} + + + Some + + {" "} + (k, fields) =>{" "} + + + Rec + + {" "} + + + Closed + + {" "} + fields _ +
+     end.
+
+ Next Obligation. +
+
+     assert ( + + untrec + {" "} + t0 ={" "} + + + Some + + {" "} + (k, fields)){" "} + by auto;{" "} + clear{" "} + Heq_anonymous.
+     generalize ( + + + tunrec_correct + + {" "} + k t0{" "} + H); intros. +
+     elim{" "} + H0; clear{" "} + H0; intros. +
+     auto.
+   Qed. +
+
+   Definition{" "} + + infer_brand_strict + {" "} + {"{"} + m: + + + brand_model + + + {"}"} (b: + + + brands + + + ) (t: + + ectype + + ) :{" "} + + + option + + {" "} + ( + + + rtype + + {" "} + *{" "} + + ectype + + ) := +
+     if ( + + + subtype_dec + + {" "} + + t + {" "} + ( + + + ergoc_closed_from_open + + {" "} + ( + + + brands_type + + {" "} + + b + + ))) +
+     then{" "} + + + Some + + {" "} + ( + + + Brand + + {" "} + + b + + ,{" "} + + t + + )
+     else{" "} + + + None + + + .
+
+   Definition{" "} + + recminus + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} (rt: + + + list + + {" "} + ( + + + string + + + * + + + rtype + + + )) (sl: + + + list + + {" "} + + + string + + + ) :{" "} + + + list + + {" "} + ( + + + string + + + * + + + rtype + + + ) := +
+      + + + fold_left + + {" "} + + + rremove + + {" "} + + sl + {" "} + + rt + + .
+
+   Definition{" "} + + diff_record_types + {" "} + {"{"} + m: + + + brand_model + + + {"}"} (b: + + + brands + + + ) (t: + + ectype + + ) :{" "} + + + option + + {" "} + ( + + + list + + {" "} + + + string + + {" "} + *{" "} + + + list + + {" "} + + + string + + + ) := +
+     match{" "} + + + tunrec + + {" "} + + t + {" "} + with +
+     |{" "} + + + None + + {" "} + =>{" "} + + + None + + +
+     |{" "} + + + Some + + {" "} + (_, actual_rt) => +
+       match{" "} + + + tunrec + + {" "} + ( + + + ergoc_closed_from_open + + {" "} + ( + + + brands_type + + {" "} + + b + + )) with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + None + + +
+       |{" "} + + + Some + + {" "} + (_, expected_rt) + => +
+          + let{" "} + in_expected_not_in_actual :={" "} + + recminus + {" "} + expected_rt ( + + map + {" "} + + fst + {" "} + actual_rt) in +
+          + let{" "} + in_actual_not_in_expected :={" "} + + recminus + {" "} + actual_rt ( + + map + {" "} + + fst + {" "} + expected_rt) in +
+          + + + Some + + {" "} + ( + + map + {" "} + + fst + {" "} + + + in_expected_not_in_actual + + + ,{" "} + + map + {" "} + + fst + {" "} + + + in_actual_not_in_expected + + + )
+       end +
+     end.
+
+   Fixpoint{" "} + + + rec_fields_that_are_not_subtype + + {" "} + {"{"} + m: + + + brand_model + + + {"}"} (t1 t2: + + + list + + {" "} + ( + + + string + + + * + + ectype + + )) :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ectype + {" "} + *{" "} + + ectype + + ) := +
+     match{" "} + + t1 + + ,{" "} + + t2 + {" "} + with +
+     |{" "} + + nil + + , _ =>{" "} + + nil + +
+     | _,{" "} + + nil + {" "} + =>{" "} + + nil + +
+     | (name1, + t1)::rest1, ( + name2,t2):: + rest2 => +
+       if{" "} + + + string_dec + + {" "} + name1 name2 +
+       then +
+          + if{" "} + + + subtype_dec + + {" "} + + t2 + {" "} + + t1 + +
+          + then +
+            + + + rec_fields_that_are_not_subtype + + {" "} + rest1 rest2 +
+          + else +
+           ( + name1,{" "} + + t1 + + ,{" "} + + t2 + + ) ::{" "} + + + rec_fields_that_are_not_subtype + + {" "} + rest1 rest2 +
+       else +
+          + + + rec_fields_that_are_not_subtype + + {" "} + rest1 rest2 +
+     end.
+    +
+   Definition{" "} + + + fields_that_are_not_subtype + + {" "} + {"{"} + m: + + + brand_model + + + {"}"} (b: + + + brands + + + ) (t: + + ectype + + ) :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ectype + {" "} + *{" "} + + ectype + + ) := +
+     match{" "} + + + tunrec + + {" "} + + t + {" "} + with +
+     |{" "} + + + None + + {" "} + =>{" "} + + nil + +
+     |{" "} + + + Some + + {" "} + (_, actual_rt) => +
+       match{" "} + + + tunrec + + {" "} + ( + + + ergoc_closed_from_open + + {" "} + ( + + + brands_type + + {" "} + + b + + )) with +
+       |{" "} + + + None + + {" "} + =>{" "} + + nil + +
+       |{" "} + + + Some + + {" "} + (_, expected_rt) + => +
+          + + + rec_fields_that_are_not_subtype + + {" "} + expected_rt{" "} + actual_rt +
+       end +
+     end.
+    +
+ End{" "} + + ECType + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.html b/docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.html deleted file mode 100644 index 62c6f63e..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.Lib.ECodeGen - - - - - - -

Module ErgoSpec.Backend.Lib.ECodeGen

-
-
-Require String.
-
-Require Qcert.Compiler.Driver.CompLang.
-
-Require Import ErgoSpec.Backend.Model.ErgoBackendModel.
-Require Import ErgoSpec.Backend.Model.ErgoBackendRuntime.
-
-Module ECodeGen(ergomodel:ErgoBackendModel).
-  Definition nnrc_expr := NNRC.nnrc.
-
-  Definition nnrc_expr_let := cNNRC.NNRCLet.
-
-  Definition nnrc_expr_unshadow := cNNRCShadow.unshadow.
-  Definition nnrc_expr_subst_const_to_var := cNNRCShadow.nnrc_subst_const_to_var.
-  Definition nnrc_expr_javascript_unshadow := NNRCtoJavaScript.nnrcToJSunshadow.
-  Definition nnrc_expr_java_unshadow := NNRCtoJava.nnrcToJavaunshadow.
-
-  Definition javascript_indent := NNRCtoJavaScript.indent.
-  Definition javascript_quotel_double := NNRCtoJavaScript.quotel_double.
-  Definition javascript_eol_newline := NNRCtoJavaScript.eol_newline.
-
-  Definition javascript_identifier_sanitizer := NNRCtoJavaScript.jsIdentifierSanitize.
-  
-  Definition javascript := CompLang.javascript.
-  
-  Definition nnrc_expr_to_javascript := NNRCtoJavaScript.nnrcToJS.
-  
-  Definition nnrc_expr_to_javascript_fun := NNRCtoJavaScript.nnrcToJSFun.
-  
-  Definition nnrc_expr_to_javascript_method := NNRCtoJavaScript.nnrcToJSMethod.
-  
-  Definition nnrc_expr_to_javascript_fun_lift
-             (e:nnrc_expr)
-             (fname:String.string)
-             (input_v:String.string)
-             (init_indent:nat)
-             (eol:String.string)
-             (quotel:String.string) : javascript :=
-    cNNRC.lift_nnrc_core
-        (fun e => NNRCtoJavaScript.nnrcToJSFun input_v e init_indent eol quotel (input_v::nil) fname)
-        (NNRC.nnrc_to_nnrc_core e).
-
-  Definition java_indent := NNRCtoJava.indent.
-  Definition java_quotel_double := NNRCtoJava.quotel_double.
-  Definition java_eol_newline := NNRCtoJava.eol_newline.
-
-  Definition java := CompLang.java.
-  
-  Definition nnrc_expr_to_java := NNRCtoJava.nnrcToJava.
-
-  Definition nnrc_expr_to_java_method
-             (input_v:String.string)
-             (e:nnrc_expr)
-             (i:nat)
-             (eol:String.string)
-             (quotel:String.string)
-             (ivs:list (String.string * String.string))
-    := NNRCtoJava.nnrcToJavaFun
-         i input_v e eol quotel ivs.
-
-
java_data -- Internally data is kept as JSON
-  Definition java_data := ForeignToJava.java_json.
-  Definition mk_java_data := ForeignToJava.mk_java_json.
-  Definition from_java_data : java_data -> String.string := NNRCtoJava.from_java_json.
-
-End ECodeGen.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.jsx b/docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.jsx new file mode 100644 index 00000000..d934de75 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.Lib.ECodeGen.jsx @@ -0,0 +1,560 @@ +
+ + Module ErgoSpec.Backend.Lib.ECodeGen + + +

Module ErgoSpec.Backend.Lib.ECodeGen

+
+
+ Require{" "} + +
String + + .
+
+ Require{" "} + + + Qcert.Compiler.Driver.CompLang + + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendModel + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendRuntime + + + .
+
+ Module{" "} + + ECodeGen + + (ergomodel: + + + ErgoBackendModel + + + ). +
+   Definition{" "} + + nnrc_expr + {" "} + :={" "} + + + NNRC.nnrc + + + .
+
+   Definition{" "} + + nnrc_expr_let + {" "} + :={" "} + + + cNNRC.NNRCLet + + + .
+
+   Definition{" "} + + nnrc_expr_unshadow + {" "} + :={" "} + + + cNNRCShadow.unshadow + + + .
+   Definition{" "} + + + nnrc_expr_subst_const_to_var + + {" "} + :={" "} + + + cNNRCShadow.nnrc_subst_const_to_var + + + .
+   Definition{" "} + + + nnrc_expr_javascript_unshadow + + {" "} + :={" "} + + + NNRCtoJavaScript.nnrcToJSunshadow + + + .
+   Definition{" "} + + nnrc_expr_java_unshadow + {" "} + :={" "} + + + NNRCtoJava.nnrcToJavaunshadow + + + .
+
+   Definition{" "} + + javascript_indent + {" "} + :={" "} + + + NNRCtoJavaScript.indent + + + .
+   Definition{" "} + + javascript_quotel_double + {" "} + :={" "} + + + NNRCtoJavaScript.quotel_double + + + .
+   Definition{" "} + + javascript_eol_newline + {" "} + :={" "} + + + NNRCtoJavaScript.eol_newline + + + .
+
+   Definition{" "} + + + javascript_identifier_sanitizer + + {" "} + :={" "} + + + NNRCtoJavaScript.jsIdentifierSanitize + + + .
+    +
+   Definition{" "} + + javascript + {" "} + :={" "} + + + CompLang.javascript + + + .
+    +
+   Definition{" "} + + nnrc_expr_to_javascript + {" "} + :={" "} + + + NNRCtoJavaScript.nnrcToJS + + + .
+    +
+   Definition{" "} + + + nnrc_expr_to_javascript_fun + + {" "} + :={" "} + + + NNRCtoJavaScript.nnrcToJSFun + + + .
+    +
+   Definition{" "} + + + nnrc_expr_to_javascript_method + + {" "} + :={" "} + + + NNRCtoJavaScript.nnrcToJSMethod + + + .
+    +
+   Definition{" "} + + + nnrc_expr_to_javascript_fun_lift + + +
+              ( + e: + + + nnrc_expr + + + )
+              ( + fname: + + + String.string + + + )
+              ( + input_v: + + + String.string + + + )
+              ( + init_indent: + + nat + + )
+              ( + eol: + + + String.string + + + )
+              ( + quotel: + + + String.string + + + ) :{" "} + + + javascript + + {" "} + := +
+      + + + cNNRC.lift_nnrc_core + + +
+         ( + fun e =>{" "} + + + NNRCtoJavaScript.nnrcToJSFun + + {" "} + + input_v + {" "} + + e + {" "} + + init_indent + {" "} + + eol + {" "} + + quotel + {" "} + ( + + input_v + + :: + + nil + + ){" "} + + fname + + )
+         ( + + + NNRC.nnrc_to_nnrc_core + + {" "} + + e + + ). +
+
+   Definition{" "} + + java_indent + {" "} + :={" "} + + + NNRCtoJava.indent + + + .
+   Definition{" "} + + java_quotel_double + {" "} + :={" "} + + + NNRCtoJava.quotel_double + + + .
+   Definition{" "} + + java_eol_newline + {" "} + :={" "} + + + NNRCtoJava.eol_newline + + + .
+
+   Definition{" "} + + java + {" "} + :={" "} + + + CompLang.java + + + .
+    +
+   Definition{" "} + + nnrc_expr_to_java + {" "} + :={" "} + + + NNRCtoJava.nnrcToJava + + + .
+
+   Definition{" "} + + nnrc_expr_to_java_method + +
+              ( + input_v: + + + String.string + + + )
+              ( + e: + + + nnrc_expr + + + )
+              ( + i: + + nat + + )
+              ( + eol: + + + String.string + + + )
+              ( + quotel: + + + String.string + + + )
+              ( + ivs: + + + list + + {" "} + ( + + + String.string + + {" "} + *{" "} + + + String.string + + + )) +
+     :={" "} + + + NNRCtoJava.nnrcToJavaFun + + +
+           + + i + {" "} + + input_v + {" "} + + e + {" "} + + eol + {" "} + + quotel + {" "} + + ivs + + .
+
+
java_data -- Internally data is kept as JSON
+   Definition{" "} + + java_data + {" "} + :={" "} + + + ForeignToJava.java_json + + + .
+   Definition{" "} + + mk_java_data + {" "} + :={" "} + + + ForeignToJava.mk_java_json + + + .
+   Definition{" "} + + from_java_data + {" "} + :{" "} + + + java_data + + {" "} + ->{" "} + + + String.string + + {" "} + :={" "} + + + NNRCtoJava.from_java_json + + + .
+
+ End{" "} + + ECodeGen + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.Lib.EData.html b/docs/assets/specification/ErgoSpec.Backend.Lib.EData.html deleted file mode 100644 index 978b8afb..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.Lib.EData.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.Lib.EData - - - - - - -

Module ErgoSpec.Backend.Lib.EData

-
-
-Require String.
-Require Qcert.Common.CommonRuntime.
-Require Qcert.Utils.JSON.
-Require Qcert.Common.Data.DatatoJSON.
-Require Qcert.Translation.NNRCtoJavaScript.
-
-Require Import ErgoSpec.Backend.Model.ErgoBackendModel.
-Require Import ErgoSpec.Backend.Model.ErgoBackendRuntime.
-
-Module EData(ergomodel:ErgoBackendModel).
-  
-  Definition json : Set
-    := JSON.json.
-  Definition data : Set
-    := Data.data.
-  Definition t : Set
-    := data.
-  
-  Definition jnil : json
-    := JSON.jnil.
-  Definition jnumber z : json
-    := JSON.jnumber z.
-  Definition jbool b : json
-    := JSON.jbool b.
-  Definition jstring s : json
-    := JSON.jstring s.
-  Definition jarray jl : json
-    := JSON.jarray jl.
-  Definition jobject jl : json
-    := JSON.jobject jl.
-
-  Definition dunit : data
-    := Data.dunit.
-  Definition dnat z : data
-    := Data.dnat z.
-  Definition dfloat f : data
-    := Data.dfloat f.
-  Definition dbool b : data
-    := Data.dbool b.
-  Definition dstring s : data
-    := Data.dstring s.
-  Definition dcoll dl : data
-    := Data.dcoll dl.
-  Definition drec dl : data
-    := Data.drec dl.
-  Definition dleft : data -> data
-    := Data.dleft.
-  Definition dright : data -> data
-    := Data.dright.
-  Definition dbrand b : data -> data
-    := Data.dbrand b.
-
-  Definition dsome : data -> data
-    := Data.dsome.
-  Definition dnone : data
-    := Data.dnone.
-  
-  Definition dsuccess : data -> data
-    := Data.dleft.
-  Definition derror : data -> data
-    := Data.dright.
-  
-
data -> JSON *string* conversion
-  Definition data_to_json_string s : Data.data -> String.string
-    := ergomodel.ergo_data_to_json_string s.
-
-  Definition json_to_json_string s : json -> String.string
-    := JSON.jsonToJS s.
-
-End EData.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Backend.Lib.EData.jsx b/docs/assets/specification/ErgoSpec.Backend.Lib.EData.jsx new file mode 100644 index 00000000..26b51237 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.Lib.EData.jsx @@ -0,0 +1,569 @@ +
+ + Module ErgoSpec.Backend.Lib.EData + + +

Module ErgoSpec.Backend.Lib.EData

+
+
+ Require{" "} + +
String + + .
+ Require{" "} + + + Qcert.Common.CommonRuntime + + + .
+ Require{" "} + + + Qcert.Utils.JSON + + + .
+ Require{" "} + + + Qcert.Common.Data.DatatoJSON + + + .
+ Require{" "} + + + Qcert.Translation.NNRCtoJavaScript + + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendModel + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendRuntime + + + .
+
+ Module{" "} + + EData + + (ergomodel: + + + ErgoBackendModel + + + ). +
+    +
+   Definition{" "} + + json + {" "} + : Set
+     :={" "} + + + JSON.json + + + .
+   Definition{" "} + + data + {" "} + : Set
+     :={" "} + + + Data.data + + + .
+   Definition{" "} + + t + {" "} + : Set
+     :={" "} + + data + + .
+    +
+   Definition{" "} + + jnil + {" "} + :{" "} + + json + +
+     :={" "} + + + JSON.jnil + + + .
+   Definition{" "} + + jnumber + {" "} + z :{" "} + + json + {" "} +
+     :={" "} + + + JSON.jnumber + + {" "} + + z + + .
+   Definition{" "} + + jbool + {" "} + b :{" "} + + json + {" "} +
+     :={" "} + + + JSON.jbool + + {" "} + + b + + .
+   Definition{" "} + + jstring + {" "} + s :{" "} + + json + +
+     :={" "} + + + JSON.jstring + + {" "} + + s + + .
+   Definition{" "} + + jarray + {" "} + jl :{" "} + + json + +
+     :={" "} + + + JSON.jarray + + {" "} + + jl + + .
+   Definition{" "} + + jobject + {" "} + jl :{" "} + + json + +
+     :={" "} + + + JSON.jobject + + {" "} + + jl + + .
+
+   Definition{" "} + + dunit + {" "} + :{" "} + + data + {" "} +
+     :={" "} + + + Data.dunit + + + .
+   Definition{" "} + + dnat + {" "} + z :{" "} + + data + {" "} +
+     :={" "} + + + Data.dnat + + {" "} + + z + + .
+   Definition{" "} + + dfloat + {" "} + f :{" "} + + data + {" "} +
+     :={" "} + + + Data.dfloat + + {" "} + + f + + .
+   Definition{" "} + + dbool + {" "} + b :{" "} + + data + {" "} +
+     :={" "} + + + Data.dbool + + {" "} + + b + + .
+   Definition{" "} + + dstring + {" "} + s :{" "} + + data + {" "} +
+     :={" "} + + + Data.dstring + + {" "} + + s + + .
+   Definition{" "} + + dcoll + {" "} + dl :{" "} + + data + {" "} +
+     :={" "} + + + Data.dcoll + + {" "} + + dl + + .
+   Definition{" "} + + drec + {" "} + dl :{" "} + + data + {" "} +
+     :={" "} + + + Data.drec + + {" "} + + dl + + .
+   Definition{" "} + + dleft + {" "} + :{" "} + + data + {" "} + ->{" "} + + data + {" "} +
+     :={" "} + + + Data.dleft + + + .
+   Definition{" "} + + dright + {" "} + :{" "} + + data + {" "} + ->{" "} + + data + {" "} +
+     :={" "} + + + Data.dright + + + .
+   Definition{" "} + + dbrand + {" "} + b :{" "} + + data + {" "} + ->{" "} + + data + {" "} +
+     :={" "} + + + Data.dbrand + + {" "} + + b + + .
+
+   Definition{" "} + + dsome + {" "} + :{" "} + + data + {" "} + ->{" "} + + data + +
+     :={" "} + + + Data.dsome + + + .
+   Definition{" "} + + dnone + {" "} + :{" "} + + data + +
+     :={" "} + + + Data.dnone + + + .
+    +
+   Definition{" "} + + dsuccess + {" "} + :{" "} + + data + {" "} + ->{" "} + + data + +
+     :={" "} + + + Data.dleft + + + .
+   Definition{" "} + + derror + {" "} + :{" "} + + data + {" "} + ->{" "} + + data + +
+     :={" "} + + + Data.dright + + + .
+    +
+
data -> JSON *string* conversion
+   Definition{" "} + + data_to_json_string + {" "} + s :{" "} + + + Data.data + + {" "} + ->{" "} + + + String.string + + {" "} +
+     :={" "} + + + ergomodel.ergo_data_to_json_string + + {" "} + + s + + .
+
+   Definition{" "} + + json_to_json_string + {" "} + s :{" "} + + json + {" "} + ->{" "} + + + String.string + + {" "} +
+     :={" "} + + + JSON.jsonToJS + + {" "} + + s + + .
+
+ End{" "} + + EData + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.html b/docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.html deleted file mode 100644 index c63f4489..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.html +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.Lib.EOperators - - - - - - -

Module ErgoSpec.Backend.Lib.EOperators

-
-
-Require Import Ascii.
-Require Import ZArith.
-Require Qcert.Common.Brands.BrandRelation.
-Require Import ErgoSpec.Backend.Model.ErgoBackendModel.
-Require Import ErgoSpec.Backend.Model.ErgoBackendRuntime.
-Require Import ErgoSpec.Backend.Lib.EData.
-
-Module EOperators(ergomodel:ErgoBackendModel).
-  Module ErgoData := EData.EData ergomodel.
-  
-  Module Unary.
-    Definition op : Set
-      := UnaryOperators.unary_op.
-    Definition t : Set
-      := op.
-
-    Module Double.
-      Definition opuminus : op
-        := UnaryOperators.OpFloatUnary UnaryOperators.FloatNeg.
-      Definition opabs : op
-        := UnaryOperators.OpFloatUnary UnaryOperators.FloatAbs.
-      Definition oplog2 : op
-        := UnaryOperators.OpFloatUnary UnaryOperators.FloatLog.
-      Definition opsqrt : op
-        := UnaryOperators.OpFloatUnary UnaryOperators.FloatSqrt.
-      Definition opsum : op
-        := UnaryOperators.OpFloatSum.
-      Definition opnummin : op
-        := UnaryOperators.OpFloatBagMin.
-      Definition opnummax : op
-        := UnaryOperators.OpFloatBagMax.
-      Definition opnummean : op
-        := UnaryOperators.OpFloatMean.
-    End Double.
-
-    Definition opidentity : op
-      := UnaryOperators.OpIdentity.
-    Definition opneg : op
-      := UnaryOperators.OpNeg.
-    Definition oprec : String.string -> op
-      := UnaryOperators.OpRec.
-    Definition opdot : String.string -> op
-      := UnaryOperators.OpDot.
-    Definition oprecremove : String.string -> op
-      := UnaryOperators.OpRecRemove.
-    Definition oprecproject : list String.string -> op
-      := UnaryOperators.OpRecProject.
-    Definition opbag : op
-      := UnaryOperators.OpBag.
-    Definition opsingleton : op
-      := UnaryOperators.OpSingleton.
-    Definition opflatten : op
-      := UnaryOperators.OpFlatten.
-    Definition opdistinct : op
-      := UnaryOperators.OpDistinct.
-    Definition opcount : op
-      := UnaryOperators.OpCount.
-    Definition optostring : op
-      := UnaryOperators.OpToString.
-    Definition opsubstring : Z -> option Z -> op
-      := UnaryOperators.OpSubstring.
-    Definition oplike : String.string -> option Ascii.ascii -> op
-      := UnaryOperators.OpLike.
-    Definition opleft : op
-      := UnaryOperators.OpLeft.
-    Definition opright : op
-      := UnaryOperators.OpRight.
-    Definition opbrand b : op
-      := UnaryOperators.OpBrand b.
-    Definition opunbrand : op
-      := UnaryOperators.OpUnbrand.
-    Definition opcast : BrandRelation.brands -> op
-      := UnaryOperators.OpCast.
-
-    Definition eval
-               (h:BrandRelation.brand_relation_t)
-               (uop:UnaryOperators.unary_op)
-               (d:ErgoData.data) : option ErgoData.data
-      := UnaryOperatorsSem.unary_op_eval h uop d.
-
-  End Unary.
-
-  Module Binary.
-
-    Definition op : Set
-      := BinaryOperators.binary_op.
-    Definition t : Set
-      := op.
-
-    Module Double.
-      Definition opplus : op
-        := BinaryOperators.OpFloatBinary BinaryOperators.FloatPlus.
-      Definition opminus : op
-        := BinaryOperators.OpFloatBinary BinaryOperators.FloatMinus.
-      Definition opmult : op
-        := BinaryOperators.OpFloatBinary BinaryOperators.FloatMult.
-      Definition opmin : op
-        := BinaryOperators.OpFloatBinary BinaryOperators.FloatMin.
-      Definition opmax : op
-        := BinaryOperators.OpFloatBinary BinaryOperators.FloatMax.
-      Definition opdiv : op
-        := BinaryOperators.OpFloatBinary BinaryOperators.FloatDiv.
-      Definition oppow : op
-        := BinaryOperators.OpFloatBinary BinaryOperators.FloatPow.
-      Definition oplt : op
-        := BinaryOperators.OpFloatCompare BinaryOperators.FloatLt.
-      Definition ople : op
-        := BinaryOperators.OpFloatCompare BinaryOperators.FloatLe.
-      Definition opgt : op
-        := BinaryOperators.OpFloatCompare BinaryOperators.FloatGt.
-      Definition opge : op
-        := BinaryOperators.OpFloatCompare BinaryOperators.FloatGe.
-    End Double.
-
-    Module Integer.
-      Definition opplusi : op
-        := BinaryOperators.OpNatBinary BinaryOperators.NatPlus.
-      Definition opminusi : op
-        := BinaryOperators.OpNatBinary BinaryOperators.NatMinus.
-      Definition opmulti : op
-        := BinaryOperators.OpNatBinary BinaryOperators.NatMult.
-      Definition opdivi : op
-        := BinaryOperators.OpNatBinary BinaryOperators.NatDiv.
-      Definition oplti : op
-        := BinaryOperators.OpLt.
-      Definition oplei : op
-        := BinaryOperators.OpLe.
-    End Integer.
-
-    Module DateTime.
-      Definition opdateplus : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimePlus.
-      Definition opdateminus : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeMinus.
-      Definition opdatene : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeNe.
-      Definition opdatelt : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeLt.
-      Definition opdatele : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeLe.
-      Definition opdategt : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeGt.
-      Definition opdatege : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeGe.
-      Definition opdateintervaldays : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeIntervalDays.
-      Definition opdateintervalseconds : op
-        := ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeIntervalSeconds.
-    End DateTime.
-
-    Definition opequal : op
-      := BinaryOperators.OpEqual.
-    Definition oprecconcat : op
-      := BinaryOperators.OpRecConcat.
-    Definition oprecmerge : op
-      := BinaryOperators.OpRecMerge.
-    Definition opand : op
-      := BinaryOperators.OpAnd.
-    Definition opor : op
-      := BinaryOperators.OpOr.
-    Definition opbagunion : op
-      := BinaryOperators.OpBagUnion.
-    Definition opbagdiff : op
-      := BinaryOperators.OpBagDiff.
-    Definition opbagmin : op
-      := BinaryOperators.OpBagMin.
-    Definition opbagmax : op
-      := BinaryOperators.OpBagMax.
-    Definition opcontains : op
-      := BinaryOperators.OpContains.
-    Definition opstringconcat : op
-      := BinaryOperators.OpStringConcat.
-
-    Definition eval
-               (h:BrandRelation.brand_relation_t)
-               (bop:BinaryOperators.binary_op)
-               (d1 d2:ErgoData.data) : option ErgoData.data
-      := BinaryOperatorsSem.binary_op_eval h bop d1 d2.
-
-  End Binary.
-End EOperators.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.jsx b/docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.jsx new file mode 100644 index 00000000..2035fe08 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.Lib.EOperators.jsx @@ -0,0 +1,1598 @@ +
+ + Module ErgoSpec.Backend.Lib.EOperators + + +

Module ErgoSpec.Backend.Lib.EOperators

+
+
+ + Require + Import{" "} + +
Ascii + + .
+ + Require + Import{" "} + + ZArith + + .
+ Require{" "} + + + Qcert.Common.Brands.BrandRelation + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendModel + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendRuntime + + + .
+ + Require + Import{" "} + + ErgoSpec.Backend.Lib.EData + + .
+
+ Module{" "} + + EOperators + + (ergomodel: + + + ErgoBackendModel + + + ). +
+   Module{" "} + + ErgoData + {" "} + :={" "} + + EData.EData + {" "} + + ergomodel + + .
+    +
+   Module{" "} + + Unary + + .
+     Definition{" "} + + op + {" "} + : Set
+       :={" "} + + + UnaryOperators.unary_op + + + .
+     Definition{" "} + + t + {" "} + : Set
+       :={" "} + + op + + .
+
+     Module{" "} + + Double + + .
+        + Definition + {" "} + + opuminus + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + UnaryOperators.OpFloatUnary + + {" "} + + + UnaryOperators.FloatNeg + + + .
+        + Definition + {" "} + + opabs + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + UnaryOperators.OpFloatUnary + + {" "} + + + UnaryOperators.FloatAbs + + + .
+        + Definition + {" "} + + oplog2 + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + UnaryOperators.OpFloatUnary + + {" "} + + + UnaryOperators.FloatLog + + + .
+        + Definition + {" "} + + opsqrt + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + UnaryOperators.OpFloatUnary + + {" "} + + + UnaryOperators.FloatSqrt + + + .
+        + Definition + {" "} + + opsum + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + UnaryOperators.OpFloatSum + + + .
+        + Definition + {" "} + + opnummin + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + UnaryOperators.OpFloatBagMin + + + .
+        + Definition + {" "} + + opnummax + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + UnaryOperators.OpFloatBagMax + + + .
+        + Definition + {" "} + + opnummean + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + UnaryOperators.OpFloatMean + + + .
+     End{" "} + + + Double + + + .
+
+     Definition{" "} + + opidentity + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpIdentity + + + .
+     Definition{" "} + + opneg + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpNeg + + + .
+     Definition{" "} + + oprec + {" "} + :{" "} + + + String.string + + {" "} + ->{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpRec + + + .
+     Definition{" "} + + opdot + {" "} + :{" "} + + + String.string + + {" "} + ->{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpDot + + + .
+     Definition{" "} + + oprecremove + {" "} + :{" "} + + + String.string + + {" "} + ->{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpRecRemove + + + .
+     Definition{" "} + + oprecproject + {" "} + :{" "} + + + list + + {" "} + + + String.string + + {" "} + ->{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpRecProject + + + .
+     Definition{" "} + + opbag + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpBag + + + .
+     Definition{" "} + + opsingleton + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpSingleton + + + .
+     Definition{" "} + + opflatten + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpFlatten + + + .
+     Definition{" "} + + opdistinct + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpDistinct + + + .
+     Definition{" "} + + opcount + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpCount + + + .
+     Definition{" "} + + optostring + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpToString + + + .
+     Definition{" "} + + opsubstring + {" "} + :{" "} + + Z + {" "} + ->{" "} + + + option + + {" "} + + Z + {" "} + ->{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpSubstring + + + .
+     Definition{" "} + + oplike + {" "} + :{" "} + + + String.string + + {" "} + ->{" "} + + + option + + {" "} + + + Ascii.ascii + + {" "} + ->{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpLike + + + .
+     Definition{" "} + + opleft + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpLeft + + + .
+     Definition{" "} + + opright + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpRight + + + .
+     Definition{" "} + + opbrand + {" "} + b :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpBrand + + {" "} + + b + + .
+     Definition{" "} + + opunbrand + {" "} + :{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpUnbrand + + + .
+     Definition{" "} + + opcast + {" "} + :{" "} + + + BrandRelation.brands + + {" "} + ->{" "} + + op + {" "} +
+       :={" "} + + + UnaryOperators.OpCast + + + .
+
+     Definition{" "} + + eval + +
+                ( + h: + + + BrandRelation.brand_relation_t + + + )
+                ( + uop: + + + UnaryOperators.unary_op + + + )
+                ( + d: + + + ErgoData.data + + + ) :{" "} + + + option + + {" "} + + + ErgoData.data + + +
+       :={" "} + + + UnaryOperatorsSem.unary_op_eval + + {" "} + + h + {" "} + + uop + {" "} + + d + + .
+
+   End{" "} + + Unary + + .
+
+   Module{" "} + + Binary + + .
+
+     Definition{" "} + + op + {" "} + : Set
+       :={" "} + + + BinaryOperators.binary_op + + + .
+     Definition{" "} + + t + {" "} + : Set
+       :={" "} + + op + + .
+
+     Module{" "} + + Double + + .
+        + Definition + {" "} + + opplus + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpFloatBinary + + {" "} + + + BinaryOperators.FloatPlus + + + .
+        + Definition + {" "} + + opminus + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpFloatBinary + + {" "} + + + BinaryOperators.FloatMinus + + + .
+        + Definition + {" "} + + opmult + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpFloatBinary + + {" "} + + + BinaryOperators.FloatMult + + + .
+        + Definition + {" "} + + opmin + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpFloatBinary + + {" "} + + + BinaryOperators.FloatMin + + + .
+        + Definition + {" "} + + opmax + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpFloatBinary + + {" "} + + + BinaryOperators.FloatMax + + + .
+        + Definition + {" "} + + opdiv + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpFloatBinary + + {" "} + + + BinaryOperators.FloatDiv + + + .
+        + Definition + {" "} + + oppow + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpFloatBinary + + {" "} + + + BinaryOperators.FloatPow + + + .
+        + Definition + {" "} + + oplt + {" "} + :{" "} + + op + +
+         :={" "} + + + BinaryOperators.OpFloatCompare + + {" "} + + + BinaryOperators.FloatLt + + + .
+        + Definition + {" "} + + ople + {" "} + :{" "} + + op + +
+         :={" "} + + + BinaryOperators.OpFloatCompare + + {" "} + + + BinaryOperators.FloatLe + + + .
+        + Definition + {" "} + + opgt + {" "} + :{" "} + + op + +
+         :={" "} + + + BinaryOperators.OpFloatCompare + + {" "} + + + BinaryOperators.FloatGt + + + .
+        + Definition + {" "} + + opge + {" "} + :{" "} + + op + +
+         :={" "} + + + BinaryOperators.OpFloatCompare + + {" "} + + + BinaryOperators.FloatGe + + + .
+     End{" "} + + + Double + + + .
+
+     Module{" "} + + Integer + + .
+        + Definition + {" "} + + opplusi + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpNatBinary + + {" "} + + + BinaryOperators.NatPlus + + + .
+        + Definition + {" "} + + opminusi + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpNatBinary + + {" "} + + + BinaryOperators.NatMinus + + + .
+        + Definition + {" "} + + opmulti + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpNatBinary + + {" "} + + + BinaryOperators.NatMult + + + .
+        + Definition + {" "} + + opdivi + {" "} + :{" "} + + op + {" "} +
+         :={" "} + + + BinaryOperators.OpNatBinary + + {" "} + + + BinaryOperators.NatDiv + + + .
+        + Definition + {" "} + + oplti + {" "} + :{" "} + + op + +
+         :={" "} + + + BinaryOperators.OpLt + + + .
+        + Definition + {" "} + + oplei + {" "} + :{" "} + + op + +
+         :={" "} + + + BinaryOperators.OpLe + + + .
+     End{" "} + + + Integer + + + .
+
+     Module{" "} + + DateTime + + .
+        + Definition + {" "} + + opdateplus + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimePlus + + + .
+        + Definition + {" "} + + opdateminus + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeMinus + + + .
+        + Definition + {" "} + + opdatene + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeNe + + + .
+        + Definition + {" "} + + opdatelt + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeLt + + + .
+        + Definition + {" "} + + opdatele + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeLe + + + .
+        + Definition + {" "} + + opdategt + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeGt + + + .
+        + Definition + {" "} + + opdatege + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeGe + + + .
+        + Definition + {" "} + + + opdateintervaldays + + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeIntervalDays + + + .
+        + Definition + {" "} + + + opdateintervalseconds + + {" "} + :{" "} + + op + +
+         :={" "} + + + ErgoEnhancedModel.CompEnhanced.Enhanced.Ops.Binary.OpDateTimeIntervalSeconds + + + .
+     End{" "} + + + DateTime + + + .
+
+     Definition{" "} + + opequal + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpEqual + + + .
+     Definition{" "} + + oprecconcat + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpRecConcat + + + .
+     Definition{" "} + + oprecmerge + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpRecMerge + + + .
+     Definition{" "} + + opand + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpAnd + + + .
+     Definition{" "} + + opor + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpOr + + + .
+     Definition{" "} + + opbagunion + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpBagUnion + + + .
+     Definition{" "} + + opbagdiff + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpBagDiff + + + .
+     Definition{" "} + + opbagmin + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpBagMin + + + .
+     Definition{" "} + + opbagmax + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpBagMax + + + .
+     Definition{" "} + + opcontains + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpContains + + + .
+     Definition{" "} + + opstringconcat + {" "} + :{" "} + + op + +
+       :={" "} + + + BinaryOperators.OpStringConcat + + + .
+
+     Definition{" "} + + eval + +
+                ( + h: + + + BrandRelation.brand_relation_t + + + )
+                ( + bop: + + + BinaryOperators.binary_op + + + )
+                ( + d1 d2: + + + ErgoData.data + + + ) :{" "} + + + option + + {" "} + + + ErgoData.data + + +
+       :={" "} + + + BinaryOperatorsSem.binary_op_eval + + {" "} + + h + {" "} + + bop + {" "} + + d1 + {" "} + + d2 + + .
+
+   End{" "} + + + Binary + + + .
+ End{" "} + + EOperators + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.html b/docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.html deleted file mode 100644 index 98fc781b..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.html +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.Model.DateTimeModelPart - - - - - - -

Module ErgoSpec.Backend.Model.DateTimeModelPart

-
-
-Require Import String.
-Require Import List.
-Require Import ZArith.
-Require Import EquivDec.
-Require Import Equivalence.
-Require Import Qcert.Utils.Utils.
-Require Import Qcert.Common.DataModel.ForeignData.
-Require Import Qcert.Common.Operators.ForeignOperators.
-Require Import Qcert.JavaScriptAst.JavaScriptAstRuntime.
-
-Import ListNotations.
-
-
Defines the foreign support for DateTime - Posits axioms for the basic data/operators, and - defines how they are extracted to ocaml (using helper functions - defined in qcert/ocaml/...../Util.ml) -
-
-
-Axiom DATE_TIME_DURATION : Set.
-Extract Constant DATE_TIME_DURATION => "DateTime.duration".
-
-Axiom DATE_TIME_DURATION_eq : DATE_TIME_DURATION -> DATE_TIME_DURATION -> bool.
-Extract Inlined Constant DATE_TIME_DURATION_eq => "(fun x y -> DateTime.deq x y)".
-
-Conjecture DATE_TIME_DURATION_eq_correct :
-  forall f1 f2, (DATE_TIME_DURATION_eq f1 f2 = true <-> f1 = f2).
-
-Axiom DATE_TIME_DURATION_to_string : DATE_TIME_DURATION -> String.string.
-Extract Inlined Constant DATE_TIME_DURATION_to_string => "(fun x -> Util.char_list_of_string (DateTime.dto_string x))".
-
-Program Instance date_time_duration_foreign_data : foreign_data
-  := {foreign_data_type := DATE_TIME_DURATION}.
-
Next Obligation.
-
-  intros x y.
-  case_eq (DATE_TIME_DURATION_eq x y); intros eqq.
-  + left.
-    f_equal.
-    apply DATE_TIME_DURATION_eq_correct in eqq.
-    trivial.
-  + right; intros eqq2.
-    red in eqq2.
-    apply DATE_TIME_DURATION_eq_correct in eqq2.
-    congruence.
-Defined.
-
Next Obligation.
-
-  exact True.
-Defined.
-
Next Obligation.
-
-  reflexivity.
-Qed.
-
Next Obligation.
-
-  constructor.
-  intros f.
-  exact (DATE_TIME_DURATION_to_string f).
-Defined.
-
-
-Axiom DATE_TIME : Set.
-Extract Constant DATE_TIME => "DateTime.dateTime".
-
-Axiom DATE_TIME_now : DATE_TIME.
-Extract Inlined Constant DATE_TIME_now => "(DateTime.now ())".
-
-Axiom DATE_TIME_eq : DATE_TIME -> DATE_TIME -> bool.
-Extract Inlined Constant DATE_TIME_eq => "(fun x y -> DateTime.eq x y)".
-
-Conjecture DATE_TIME_eq_correct :
-  forall f1 f2, (DATE_TIME_eq f1 f2 = true <-> f1 = f2).
-
-Axiom DATE_TIME_to_string : DATE_TIME -> String.string.
-Extract Inlined Constant DATE_TIME_to_string => "(fun x -> Util.char_list_of_string (DateTime.to_string x))".
-
-Program Instance date_time_foreign_data : foreign_data
-  := {foreign_data_type := DATE_TIME}.
-
Next Obligation.
-
-  intros x y.
-  case_eq (DATE_TIME_eq x y); intros eqq.
-  + left.
-    f_equal.
-    apply DATE_TIME_eq_correct in eqq.
-    trivial.
-  + right; intros eqq2.
-    red in eqq2.
-    apply DATE_TIME_eq_correct in eqq2.
-    congruence.
-Defined.
-
Next Obligation.
-
-  exact True.
-Defined.
-
Next Obligation.
-
-  reflexivity.
-Qed.
-
Next Obligation.
-
-  constructor.
-  intros f.
-  exact (DATE_TIME_to_string f).
-Defined.
-
-Axiom DATE_TIME_from_string : String.string -> DATE_TIME.
-Extract Inlined Constant DATE_TIME_from_string => "(fun x -> DateTime.from_string (Util.string_of_char_list x))".
-
-Axiom DATE_TIME_DURATION_from_string : String.string -> DATE_TIME_DURATION.
-Extract Inlined Constant DATE_TIME_DURATION_from_string => "(fun x -> DateTime.dfrom_string (Util.string_of_char_list x))".
-
-Inductive date_time_component
-  :=
-  | date_time_DAY
-  | date_time_MONTH
-  | date_time_QUARTER
-  | date_time_YEAR.
-
-Definition date_time_component_tostring (part:date_time_component) : String.string
-  := match part with
-     | date_time_DAY => "day"
-     | date_time_MONTH => "month"
-     | date_time_QUARTER => "quarter"
-     | date_time_YEAR => "year"
-     end.
-
-Global Instance date_time_component_to_string : ToString date_time_component
-  := { toString := date_time_component_tostring }.
-
-Axiom DATE_TIME_day : DATE_TIME -> Z.
-Extract Inlined Constant DATE_TIME_day => "(fun x -> DateTime.day x)".
-  
-Axiom DATE_TIME_month : DATE_TIME -> Z.
-Extract Inlined Constant DATE_TIME_month => "(fun x -> DateTime.month x)".
-  
-Axiom DATE_TIME_quarter : DATE_TIME -> Z.
-Extract Inlined Constant DATE_TIME_quarter => "(fun x -> DateTime.quarter x)".
-  
-Axiom DATE_TIME_year : DATE_TIME -> Z.
-Extract Inlined Constant DATE_TIME_year => "(fun x -> DateTime.year x)".
-
-Definition DATE_TIME_component (part:date_time_component) (dt:DATE_TIME) : Z :=
-  match part with
-  | date_time_DAY => DATE_TIME_day dt
-  | date_time_MONTH => DATE_TIME_month dt
-  | date_time_QUARTER => DATE_TIME_quarter dt
-  | date_time_YEAR => DATE_TIME_year dt
-  end.
-
-Inductive date_time_unary_op
-  :=
-  | uop_date_time_component : date_time_component -> date_time_unary_op
-  | uop_date_time_from_string
-  | uop_date_time_duration_from_string
-.
-
-Local Open Scope string.
-
-Definition date_time_unary_op_tostring (f:date_time_unary_op) : String.string
-  := match f with
-     | uop_date_time_component part =>
-       "(dateTimeComponent" ++ (date_time_component_tostring part) ++ ")"
-     | uop_date_time_from_string => "DateTimeFromString"
-     | uop_date_time_duration_from_string => "DateTimeDurationFromString"
-     end.
-
-Require Import Qcert.Translation.ForeignToJava.
-Require Import Qcert.Translation.NNRCtoJava.
-
-Definition date_time_component_to_java_string (part:date_time_component): string
-  := match part with
-     | date_time_DAY => "UnaryOperators.day"
-     | date_time_MONTH => "UnaryOperators.month"
-     | date_time_QUARTER => "UnaryOperators.quarter"
-     | date_time_YEAR => "UnaryOperators.year"
-     end.
-
-  
-Definition date_time_to_java_unary_op
-             (indent:nat) (eol:String.string)
-             (quotel:String.string) (fu:date_time_unary_op)
-             (d:java_json) : java_json
-  := match fu with
-     | uop_date_time_component part =>
-       mk_java_unary_op1 "date_time_component" (date_time_component_to_java_string part) d
-     | uop_date_time_from_string => mk_java_unary_op0 "date_time_from_string" d
-     | uop_date_time_duration_from_string => mk_java_unary_op0 "date_time_duration_from_string" d
-     end.
-
-Definition date_time_to_javascript_unary_op
-             (indent:nat) (eol:String.string)
-             (quotel:String.string) (fu:date_time_unary_op)
-             (d:String.string) : String.string
-  := match fu with
-     | uop_date_time_component part => "dateTimeComponent(" ++ quotel ++ (toString part) ++ quotel ++ ", " ++ d ++ ")"
-     | uop_date_time_from_string => "dateTimeFromString(" ++ d ++ ")"
-     | uop_date_time_duration_from_string => "dateTimeDurationFromString(" ++ d ++ ")"
-     end.
-
-Definition date_time_to_ajavascript_unary_op
-             (fu:date_time_unary_op)
-             (e:JsSyntax.expr) : JsSyntax.expr
-  := match fu with
-     | uop_date_time_component part =>
-       call_runtime "dateTimeComponent" [ expr_literal (literal_string (toString part)); e ]
-     | uop_date_time_from_string => call_runtime "dateTimeFromString" [ e ]
-     | uop_date_time_duration_from_string => call_runtime "dateTimeDurationFromString" [ e ]
-     end.
-
-Axiom DATE_TIME_plus : DATE_TIME -> DATE_TIME_DURATION -> DATE_TIME.
-Extract Inlined Constant DATE_TIME_plus => "(fun x y -> DateTime.plus x y)".
-
-Axiom DATE_TIME_minus : DATE_TIME -> DATE_TIME_DURATION -> DATE_TIME.
-Extract Inlined Constant DATE_TIME_minus => "(fun x y -> DateTime.minus x y)".
-
-Axiom DATE_TIME_ne : DATE_TIME -> DATE_TIME -> bool.
-Extract Inlined Constant DATE_TIME_ne => "(fun x y -> DateTime.ne x y)".
-
-Axiom DATE_TIME_lt : DATE_TIME -> DATE_TIME -> bool.
-Extract Inlined Constant DATE_TIME_lt => "(fun x y -> DateTime.lt x y)".
-
-Axiom DATE_TIME_le : DATE_TIME -> DATE_TIME -> bool.
-Extract Inlined Constant DATE_TIME_le => "(fun x y -> DateTime.le x y)".
-
-Axiom DATE_TIME_gt : DATE_TIME -> DATE_TIME -> bool.
-Extract Inlined Constant DATE_TIME_gt => "(fun x y -> DateTime.gt x y)".
-
-Axiom DATE_TIME_ge : DATE_TIME -> DATE_TIME -> bool.
-Extract Inlined Constant DATE_TIME_ge => "(fun x y -> DateTime.ge x y)".
-
-Axiom DATE_TIME_DURATION_duration : DATE_TIME -> DATE_TIME -> DATE_TIME_DURATION.
-Extract Inlined Constant DATE_TIME_DURATION_duration => "(fun x y -> DateTime.dduration x y)".
-
-Axiom DATE_TIME_DURATION_days : DATE_TIME -> DATE_TIME -> float.
-Extract Inlined Constant DATE_TIME_DURATION_days => "(fun x y -> DateTime.ddays x y)".
-
-Axiom DATE_TIME_DURATION_seconds : DATE_TIME -> DATE_TIME -> float.
-Extract Inlined Constant DATE_TIME_DURATION_seconds => "(fun x y -> DateTime.dseconds x y)".
-
-Inductive date_time_binary_op
-  :=
-  | bop_date_time_plus
-  | bop_date_time_minus
-  | bop_date_time_ne
-  | bop_date_time_lt
-  | bop_date_time_le
-  | bop_date_time_gt
-  | bop_date_time_ge
-  | bop_date_time_duration
-  | bop_date_time_duration_days
-  | bop_date_time_duration_seconds
-.
-
-Definition date_time_binary_op_tostring (f:date_time_binary_op) : String.string
-  := match f with
-     | bop_date_time_plus => "DateTimePlus"
-     | bop_date_time_minus => "DateTimeMinus"
-     | bop_date_time_ne => "DateTimeNe"
-     | bop_date_time_lt => "DateTimeLt"
-     | bop_date_time_le => "DateTimeLe"
-     | bop_date_time_gt => "DateTimeGt"
-     | bop_date_time_ge => "DateTimeGe"
-     | bop_date_time_duration => "DateTimeDiff"
-     | bop_date_time_duration_days => "DateTimeDiffDays"
-     | bop_date_time_duration_seconds => "DateTimeDiffSeconds"
-     end.
-
-Definition jsFunc (name d1 d2:string)
-  := name ++ "(" ++ d1 ++ ", " ++ d2 ++ ")".
-
-Definition date_time_to_java_binary_op
-             (indent:nat) (eol:String.string)
-             (quotel:String.string) (fb:date_time_binary_op)
-             (d1 d2:java_json) : java_json
-  := match fb with
-     | bop_date_time_plus => mk_java_binary_op0 "date_time_plus" d1 d2
-     | bop_date_time_minus => mk_java_binary_op0 "date_time_minus" d1 d2
-     | bop_date_time_ne => mk_java_binary_op0 "date_time_ne" d1 d2
-     | bop_date_time_lt => mk_java_binary_op0 "date_time_lt" d1 d2
-     | bop_date_time_le => mk_java_binary_op0 "date_time_le" d1 d2
-     | bop_date_time_gt => mk_java_binary_op0 "date_time_gt" d1 d2
-     | bop_date_time_ge => mk_java_binary_op0 "date_time_ge" d1 d2
-     | bop_date_time_duration => mk_java_binary_op0 "date_time_duration" d1 d2
-     | bop_date_time_duration_days => mk_java_binary_op0 "date_time_duration_days" d1 d2
-     | bop_date_time_duration_seconds => mk_java_binary_op0 "date_time_duration_seconds" d1 d2
-     end.
-
-Definition date_time_to_javascript_binary_op
-             (indent:nat) (eol:String.string)
-             (quotel:String.string) (fb:date_time_binary_op)
-             (d1 d2:String.string) : String.string
-  := match fb with
-     | bop_date_time_plus => jsFunc "dateTimePointPlus" d1 d2
-     | bop_date_time_minus => jsFunc "dateTimePointMinus" d1 d2
-     | bop_date_time_ne => jsFunc "dateTimePointNe" d1 d2
-     | bop_date_time_lt => jsFunc "dateTimePointLt" d1 d2
-     | bop_date_time_le => jsFunc "dateTimePointLe" d1 d2
-     | bop_date_time_gt => jsFunc "dateTimePointGt" d1 d2
-     | bop_date_time_ge => jsFunc "dateTimePointGe" d1 d2
-     | bop_date_time_duration => jsFunc "dateTimeDuration" d1 d2
-     | bop_date_time_duration_days => jsFunc "dateTimeDurationDays" d1 d2
-     | bop_date_time_duration_seconds => jsFunc "dateTimeDurationSeconds" d1 d2
-     end.
-
-Definition date_time_to_ajavascript_binary_op
-             (fb:date_time_binary_op)
-             (e1 e2:JsSyntax.expr) : JsSyntax.expr
-  := match fb with
-     | bop_date_time_plus => call_runtime "dateTimePointPlus" [ e1; e2 ]
-     | bop_date_time_minus => call_runtime "dateTimePointMinus" [ e1; e2 ]
-     | bop_date_time_ne => call_runtime "dateTimePointNe" [ e1; e2 ]
-     | bop_date_time_lt => call_runtime "dateTimePointLt" [ e1; e2 ]
-     | bop_date_time_le => call_runtime "dateTimePointLe" [ e1; e2 ]
-     | bop_date_time_gt => call_runtime "dateTimePointGt" [ e1; e2 ]
-     | bop_date_time_ge => call_runtime "dateTimePointGe" [ e1; e2 ]
-     | bop_date_time_duration => call_runtime "dateTimeDuration" [ e1; e2 ]
-     | bop_date_time_duration_days => call_runtime "dateTimeDurationDays" [ e1; e2 ]
-     | bop_date_time_duration_seconds => call_runtime "dateTimeDurationSeconds" [ e1; e2 ]
-     end.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.jsx b/docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.jsx new file mode 100644 index 00000000..91b44d18 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.Model.DateTimeModelPart.jsx @@ -0,0 +1,2593 @@ +
+ + Module ErgoSpec.Backend.Model.DateTimeModelPart + + +

Module ErgoSpec.Backend.Model.DateTimeModelPart

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + ZArith + + .
+ + Require + Import{" "} + + + EquivDec + + + .
+ + Require + Import{" "} + + + Equivalence + + + .
+ + Require + Import{" "} + + + Qcert.Utils.Utils + + + .
+ + Require + Import{" "} + + + Qcert.Common.DataModel.ForeignData + + + .
+ + Require + Import{" "} + + + Qcert.Common.Operators.ForeignOperators + + + .
+ + Require + Import{" "} + + + Qcert.JavaScriptAst.JavaScriptAstRuntime + + + .
+
+ Import{" "} + ListNotations.
+
+
+ Defines the foreign support for DateTime Posits axioms for the basic + data/operators, and defines how they are extracted to ocaml (using helper + functions defined in qcert/ocaml/...../Util.ml) +
+
+
+ Axiom{" "} + + DATE_TIME_DURATION + {" "} + : Set.
+ + Extract + Constant{" "} + DATE_TIME_DURATION => " + DateTime.duration". +
+
+ Axiom{" "} + + DATE_TIME_DURATION_eq + {" "} + :{" "} + + + DATE_TIME_DURATION + + {" "} + ->{" "} + + + DATE_TIME_DURATION + + {" "} + ->{" "} + + + bool + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_DURATION_eq => "( + fun x{" "} + y -> DateTime.deq{" "} + x y)". +
+
+ Conjecture{" "} + + DATE_TIME_DURATION_eq_correct + {" "} + :
+   forall{" "} + f1 f2, ( + + + DATE_TIME_DURATION_eq + + {" "} + + f1 + {" "} + + f2 + {" "} + ={" "} + + + true + + {" "} + <->{" "} + + f1 + {" "} + ={" "} + + f2 + + ). +
+
+ Axiom{" "} + + DATE_TIME_DURATION_to_string + {" "} + :{" "} + + + DATE_TIME_DURATION + + {" "} + ->{" "} + + + String.string + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_DURATION_to_string => "( + fun x ->{" "} + Util.char_list_of_string ( + DateTime.dto_string{" "} + x))". +
+
+ + Program + Instance{" "} + + + date_time_duration_foreign_data + + {" "} + :{" "} + + + foreign_data + + +
+   := {"{"} + + + foreign_data_type + + {" "} + :={" "} + + + DATE_TIME_DURATION + + + {"}"}.
+
+ Next Obligation. +
+
+   intros{" "} + x y.
+   case_eq ( + + + DATE_TIME_DURATION_eq + + {" "} + x y);{" "} + intros eqq. +
+   + left.
+     f_equal.
+     apply{" "} + + + DATE_TIME_DURATION_eq_correct + + {" "} + in eqq.
+     trivial.
+   + right;{" "} + intros eqq2. +
+     red{" "} + in eqq2.
+     apply{" "} + + + DATE_TIME_DURATION_eq_correct + + {" "} + in eqq2.
+     congruence.
+ Defined. +
+
+ Next Obligation. +
+
+   exact{" "} + + True + + .
+ Defined. +
+
+ Next Obligation. +
+
+   reflexivity.
+ Qed. +
+
+ Next Obligation. +
+
+   constructor.
+   intros{" "} + f.
+   exact ( + + + DATE_TIME_DURATION_to_string + + {" "} + f). +
+ Defined. +
+
+
+ Axiom{" "} + + DATE_TIME + {" "} + : Set.
+ + Extract + Constant{" "} + DATE_TIME => " + DateTime.dateTime". +
+
+ Axiom{" "} + + DATE_TIME_now + {" "} + :{" "} + + + DATE_TIME + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_now => "( + DateTime.now ())". +
+
+ Axiom{" "} + + DATE_TIME_eq + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + bool + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_eq => "( + fun x{" "} + y -> DateTime.eq{" "} + x y)". +
+
+ Conjecture{" "} + + DATE_TIME_eq_correct + {" "} + :
+   forall{" "} + f1 f2, ( + + + DATE_TIME_eq + + {" "} + + f1 + {" "} + + f2 + {" "} + ={" "} + + + true + + {" "} + <->{" "} + + f1 + {" "} + ={" "} + + f2 + + ). +
+
+ Axiom{" "} + + DATE_TIME_to_string + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + String.string + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_to_string => "( + fun x ->{" "} + Util.char_list_of_string ( + DateTime.to_string x + ))". +
+
+ + Program + Instance{" "} + + date_time_foreign_data + {" "} + :{" "} + + + foreign_data + + +
+   := {"{"} + + + foreign_data_type + + {" "} + :={" "} + + + DATE_TIME + + + {"}"}.
+
+ Next Obligation. +
+
+   intros{" "} + x y.
+   case_eq ( + + + DATE_TIME_eq + + {" "} + x y);{" "} + intros eqq. +
+   + left.
+     f_equal.
+     apply{" "} + + + DATE_TIME_eq_correct + + {" "} + in eqq.
+     trivial.
+   + right;{" "} + intros eqq2. +
+     red{" "} + in eqq2.
+     apply{" "} + + + DATE_TIME_eq_correct + + {" "} + in eqq2.
+     congruence.
+ Defined. +
+
+ Next Obligation. +
+
+   exact{" "} + + True + + .
+ Defined. +
+
+ Next Obligation. +
+
+   reflexivity.
+ Qed. +
+
+ Next Obligation. +
+
+   constructor.
+   intros{" "} + f.
+   exact ( + + + DATE_TIME_to_string + + {" "} + f). +
+ Defined. +
+
+ Axiom{" "} + + DATE_TIME_from_string + {" "} + :{" "} + + + String.string + + {" "} + ->{" "} + + + DATE_TIME + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_from_string => "( + fun x ->{" "} + DateTime.from_string ( + Util.string_of_char_list{" "} + x))". +
+
+ Axiom{" "} + + + DATE_TIME_DURATION_from_string + + {" "} + :{" "} + + + String.string + + {" "} + ->{" "} + + + DATE_TIME_DURATION + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_DURATION_from_string => "( + fun x ->{" "} + DateTime.dfrom_string ( + Util.string_of_char_list{" "} + x))". +
+
+ Inductive{" "} + + date_time_component + +
+   := +
+   |{" "} + + date_time_DAY + +
+   |{" "} + + date_time_MONTH + +
+   |{" "} + + date_time_QUARTER + +
+   |{" "} + + date_time_YEAR + + .
+
+ Definition{" "} + + date_time_component_tostring + {" "} + (part: + + + date_time_component + + + ) :{" "} + + + String.string + + +
+   := match{" "} + + part + {" "} + with +
+      |{" "} + + + date_time_DAY + + {" "} + => "day"
+      |{" "} + + + date_time_MONTH + + {" "} + => "month"
+      |{" "} + + + date_time_QUARTER + + {" "} + => "quarter"
+      |{" "} + + + date_time_YEAR + + {" "} + => "year"
+      end.
+
+ + Global + Instance{" "} + + date_time_component_to_string + {" "} + :{" "} + + + ToString + + {" "} + + + date_time_component + + +
+   := {"{"}{" "} + + + toString + + {" "} + :={" "} + + + date_time_component_tostring + + {" "} + {"}"}.
+
+ Axiom{" "} + + DATE_TIME_day + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + Z + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_day => "( + fun x ->{" "} + DateTime.day x)". +
+    +
+ Axiom{" "} + + DATE_TIME_month + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + Z + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_month => "( + fun x ->{" "} + DateTime.month x)". +
+    +
+ Axiom{" "} + + DATE_TIME_quarter + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + Z + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_quarter => "( + fun x ->{" "} + DateTime.quarter x + )". +
+    +
+ Axiom{" "} + + DATE_TIME_year + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + Z + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_year => "( + fun x ->{" "} + DateTime.year x)". +
+
+ Definition{" "} + + DATE_TIME_component + {" "} + (part: + + + date_time_component + + + ) (dt: + + + DATE_TIME + + + ) :{" "} + + Z + {" "} + := +
+   match{" "} + + part + {" "} + with +
+   |{" "} + + + date_time_DAY + + {" "} + =>{" "} + + + DATE_TIME_day + + {" "} + + dt + +
+   |{" "} + + + date_time_MONTH + + {" "} + =>{" "} + + + DATE_TIME_month + + {" "} + + dt + +
+   |{" "} + + + date_time_QUARTER + + {" "} + =>{" "} + + + DATE_TIME_quarter + + {" "} + + dt + +
+   |{" "} + + + date_time_YEAR + + {" "} + =>{" "} + + + DATE_TIME_year + + {" "} + + dt + +
+   end.
+
+ Inductive{" "} + + date_time_unary_op + +
+   := +
+   |{" "} + + uop_date_time_component + {" "} + :{" "} + + + date_time_component + + {" "} + ->{" "} + + + date_time_unary_op + + +
+   |{" "} + + uop_date_time_from_string + +
+   |{" "} + + + uop_date_time_duration_from_string + + +
+ .
+
+ Local Open{" "} + Scope string.
+
+ Definition{" "} + + date_time_unary_op_tostring + {" "} + (f: + + + date_time_unary_op + + + ) :{" "} + + + String.string + + +
+   := match{" "} + + f + {" "} + with +
+      |{" "} + + + uop_date_time_component + + {" "} + part => +
+        "( + dateTimeComponent" ++ ( + + + date_time_component_tostring + + {" "} + part) ++ ")" +
+      |{" "} + + + uop_date_time_from_string + + {" "} + => "DateTimeFromString"
+      |{" "} + + + uop_date_time_duration_from_string + + {" "} + => "DateTimeDurationFromString"
+      end.
+
+ + Require + Import{" "} + + + Qcert.Translation.ForeignToJava + + + .
+ + Require + Import{" "} + + + Qcert.Translation.NNRCtoJava + + + .
+
+ Definition{" "} + + + date_time_component_to_java_string + + {" "} + (part: + + + date_time_component + + + ):{" "} + + + string + + +
+   := match{" "} + + part + {" "} + with +
+      |{" "} + + + date_time_DAY + + {" "} + => "UnaryOperators.day"
+      |{" "} + + + date_time_MONTH + + {" "} + => "UnaryOperators.month"
+      |{" "} + + + date_time_QUARTER + + {" "} + => "UnaryOperators.quarter"
+      |{" "} + + + date_time_YEAR + + {" "} + => "UnaryOperators.year"
+      end.
+
+    +
+ Definition{" "} + + date_time_to_java_unary_op + +
+              ( + indent: + + nat + + ) (eol: + + + String.string + + + )
+              ( + quotel: + + + String.string + + + ) (fu: + + + date_time_unary_op + + + )
+              ( + d: + + + java_json + + + ) :{" "} + + + java_json + + +
+   := match{" "} + + fu + {" "} + with +
+      |{" "} + + + uop_date_time_component + + {" "} + part => +
+         + + + mk_java_unary_op1 + + {" "} + "date_time_component" ( + + + date_time_component_to_java_string + + {" "} + part){" "} + + d + +
+      |{" "} + + + uop_date_time_from_string + + {" "} + =>{" "} + + + mk_java_unary_op0 + + {" "} + "date_time_from_string"{" "} + + d + +
+      |{" "} + + + uop_date_time_duration_from_string + + {" "} + =>{" "} + + + mk_java_unary_op0 + + {" "} + "date_time_duration_from_string"{" "} + + d + +
+      end.
+
+ Definition{" "} + + + date_time_to_javascript_unary_op + + +
+              ( + indent: + + nat + + ) (eol: + + + String.string + + + )
+              ( + quotel: + + + String.string + + + ) (fu: + + + date_time_unary_op + + + )
+              ( + d: + + + String.string + + + ) :{" "} + + + String.string + + +
+   := match{" "} + + fu + {" "} + with +
+      |{" "} + + + uop_date_time_component + + {" "} + part => " + dateTimeComponent(" ++{" "} + + quotel + {" "} + ++ ( + + + toString + + {" "} + part) ++{" "} + + quotel + {" "} + ++ ", " ++{" "} + + d + {" "} + ++ ")" +
+      |{" "} + + + uop_date_time_from_string + + {" "} + => "dateTimeFromString(" ++{" "} + + d + {" "} + ++ ")" +
+      |{" "} + + + uop_date_time_duration_from_string + + {" "} + => "dateTimeDurationFromString(" ++{" "} + + d + {" "} + ++ ")" +
+      end.
+
+ Definition{" "} + + + date_time_to_ajavascript_unary_op + + +
+              ( + fu: + + + date_time_unary_op + + + )
+              ( + e:JsSyntax.expr) :{" "} + JsSyntax.expr +
+   := match{" "} + + fu + {" "} + with +
+      |{" "} + + + uop_date_time_component + + {" "} + part => +
+         + + + call_runtime + + {" "} + "dateTimeComponent" [{" "} + expr_literal ( + literal_string ( + + + toString + + {" "} + part));{" "} + + e + {" "} + ]
+      |{" "} + + + uop_date_time_from_string + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimeFromString" [{" "} + + e + {" "} + ]
+      |{" "} + + + uop_date_time_duration_from_string + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimeDurationFromString" [{" "} + + e + {" "} + ]
+      end.
+
+ Axiom{" "} + + DATE_TIME_plus + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME_DURATION + + {" "} + ->{" "} + + + DATE_TIME + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_plus => "( + fun x{" "} + y ->{" "} + DateTime.plus x{" "} + y)". +
+
+ Axiom{" "} + + DATE_TIME_minus + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME_DURATION + + {" "} + ->{" "} + + + DATE_TIME + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_minus => "( + fun x{" "} + y ->{" "} + DateTime.minus x{" "} + y)". +
+
+ Axiom{" "} + + DATE_TIME_ne + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + bool + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_ne => "( + fun x{" "} + y -> DateTime.ne{" "} + x y)". +
+
+ Axiom{" "} + + DATE_TIME_lt + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + bool + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_lt => "( + fun x{" "} + y -> DateTime.lt{" "} + x y)". +
+
+ Axiom{" "} + + DATE_TIME_le + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + bool + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_le => "( + fun x{" "} + y -> DateTime.le{" "} + x y)". +
+
+ Axiom{" "} + + DATE_TIME_gt + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + bool + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_gt => "( + fun x{" "} + y -> DateTime.gt{" "} + x y)". +
+
+ Axiom{" "} + + DATE_TIME_ge + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + bool + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_ge => "( + fun x{" "} + y -> DateTime.ge{" "} + x y)". +
+
+ Axiom{" "} + + DATE_TIME_DURATION_duration + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME_DURATION + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_DURATION_duration => "( + fun x{" "} + y ->{" "} + DateTime.dduration x{" "} + y)". +
+
+ Axiom{" "} + + DATE_TIME_DURATION_days + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + float + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_DURATION_days => "( + fun x{" "} + y ->{" "} + DateTime.ddays x{" "} + y)". +
+
+ Axiom{" "} + + DATE_TIME_DURATION_seconds + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + float + + + .
+ Extract Inlined{" "} + Constant{" "} + DATE_TIME_DURATION_seconds => "( + fun x{" "} + y ->{" "} + DateTime.dseconds x{" "} + y)". +
+
+ Inductive{" "} + + date_time_binary_op + +
+   := +
+   |{" "} + + bop_date_time_plus + +
+   |{" "} + + bop_date_time_minus + +
+   |{" "} + + bop_date_time_ne + +
+   |{" "} + + bop_date_time_lt + +
+   |{" "} + + bop_date_time_le + +
+   |{" "} + + bop_date_time_gt + +
+   |{" "} + + bop_date_time_ge + +
+   |{" "} + + bop_date_time_duration + +
+   |{" "} + + bop_date_time_duration_days + +
+   |{" "} + + + bop_date_time_duration_seconds + + +
+ .
+
+ Definition{" "} + + date_time_binary_op_tostring + {" "} + (f: + + + date_time_binary_op + + + ) :{" "} + + + String.string + + +
+   := match{" "} + + f + {" "} + with +
+      |{" "} + + + bop_date_time_plus + + {" "} + => "DateTimePlus"
+      |{" "} + + + bop_date_time_minus + + {" "} + => "DateTimeMinus"
+      |{" "} + + + bop_date_time_ne + + {" "} + => "DateTimeNe"
+      |{" "} + + + bop_date_time_lt + + {" "} + => "DateTimeLt"
+      |{" "} + + + bop_date_time_le + + {" "} + => "DateTimeLe"
+      |{" "} + + + bop_date_time_gt + + {" "} + => "DateTimeGt"
+      |{" "} + + + bop_date_time_ge + + {" "} + => "DateTimeGe"
+      |{" "} + + + bop_date_time_duration + + {" "} + => "DateTimeDiff"
+      |{" "} + + + bop_date_time_duration_days + + {" "} + => "DateTimeDiffDays"
+      |{" "} + + + bop_date_time_duration_seconds + + {" "} + => "DateTimeDiffSeconds"
+      end.
+
+ Definition{" "} + + jsFunc + {" "} + (name d1{" "} + d2: + + + string + + + )
+   :={" "} + + name + {" "} + ++ "(" ++{" "} + + d1 + {" "} + ++ ", " ++{" "} + + d2 + {" "} + ++ ")". +
+
+ Definition{" "} + + date_time_to_java_binary_op + +
+              ( + indent: + + nat + + ) (eol: + + + String.string + + + )
+              ( + quotel: + + + String.string + + + ) (fb: + + + date_time_binary_op + + + )
+              ( + d1 d2: + + + java_json + + + ) :{" "} + + + java_json + + +
+   := match{" "} + + fb + {" "} + with +
+      |{" "} + + + bop_date_time_plus + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_plus"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_minus + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_minus"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_ne + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_ne"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_lt + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_lt"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_le + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_le"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_gt + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_gt"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_ge + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_ge"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_duration + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_duration"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_duration_days + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_duration_days"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_duration_seconds + + {" "} + =>{" "} + + + mk_java_binary_op0 + + {" "} + "date_time_duration_seconds"{" "} + + d1 + {" "} + + d2 + +
+      end.
+
+ Definition{" "} + + + date_time_to_javascript_binary_op + + +
+              ( + indent: + + nat + + ) (eol: + + + String.string + + + )
+              ( + quotel: + + + String.string + + + ) (fb: + + + date_time_binary_op + + + )
+              ( + d1 d2: + + + String.string + + + ) :{" "} + + + String.string + + +
+   := match{" "} + + fb + {" "} + with +
+      |{" "} + + + bop_date_time_plus + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimePointPlus"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_minus + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimePointMinus"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_ne + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimePointNe"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_lt + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimePointLt"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_le + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimePointLe"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_gt + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimePointGt"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_ge + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimePointGe"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_duration + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimeDuration"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_duration_days + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimeDurationDays"{" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_duration_seconds + + {" "} + =>{" "} + + jsFunc + {" "} + "dateTimeDurationSeconds"{" "} + + d1 + {" "} + + d2 + +
+      end.
+
+ Definition{" "} + + + date_time_to_ajavascript_binary_op + + +
+              ( + fb: + + + date_time_binary_op + + + )
+              ( + e1 e2: + JsSyntax.expr) :{" "} + JsSyntax.expr +
+   := match{" "} + + fb + {" "} + with +
+      |{" "} + + + bop_date_time_plus + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimePointPlus" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_minus + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimePointMinus" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_ne + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimePointNe" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_lt + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimePointLt" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_le + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimePointLe" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_gt + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimePointGt" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_ge + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimePointGe" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_duration + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimeDuration" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_duration_days + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimeDurationDays" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      |{" "} + + + bop_date_time_duration_seconds + + {" "} + =>{" "} + + + call_runtime + + {" "} + "dateTimeDurationSeconds" [{" "} + + e1 + + ;{" "} + + e2 + {" "} + ]
+      end.
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.html b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.html deleted file mode 100644 index 9c8a529e..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.Model.ErgoBackendModel - - - - - - -

Module ErgoSpec.Backend.Model.ErgoBackendModel

- - - - diff --git a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.jsx b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.jsx new file mode 100644 index 00000000..97f35c01 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendModel.jsx @@ -0,0 +1,120 @@ +
+ + Module ErgoSpec.Backend.Model.ErgoBackendModel + + +

Module ErgoSpec.Backend.Model.ErgoBackendModel

+
+
+ + Require + Import{" "} + +
+ Qcert.Common.CommonSystem + + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoEnhancedModel + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ForeignErgo + + + .
+
+ Module Type{" "} + + ErgoBackendModel + + .
+   Definition{" "} + + ergo_foreign_data + {" "} + :{" "} + + + foreign_data + + {" "} + :={" "} + + + enhanced_foreign_data + + + .
+   Axiom{" "} + + + ergo_data_to_json_string + + {" "} + :{" "} + + + String.string + + {" "} + ->{" "} + + + data + + {" "} + ->{" "} + + + String.string + + + .
+   Definition{" "} + + ergo_foreign_type + {" "} + :{" "} + + + foreign_type + + {" "} + :={" "} + + + enhanced_foreign_type + + + .
+ End{" "} + + + ErgoBackendModel + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.html b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.html deleted file mode 100644 index 066e7a8c..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.Model.ErgoBackendRuntime - - - - - - -

Module ErgoSpec.Backend.Model.ErgoBackendRuntime

-
-
-Require Import String.
-Require Import List.
-Require Import Qcert.Utils.Closure.
-Require Import Qcert.Common.CommonSystem.
-Require Import Qcert.Compiler.Model.CompilerRuntime.
-Require Import Qcert.Translation.NNRCtoJavaScript.
-Require Import Qcert.cNNRC.Lang.cNNRC.
-
-Require Import ErgoSpec.Backend.Model.DateTimeModelPart.
-Require Import ErgoSpec.Backend.Model.ErgoEnhancedModel.
-Require Import ErgoSpec.Backend.ForeignErgo.
-Require Import ErgoSpec.Backend.Model.ErgoBackendModel.
-
-Module ErgoBackendRuntime <: ErgoBackendModel.
-  Local Open Scope string.
-
-  Definition ergo_foreign_data := enhanced_foreign_data.
-  Definition ergo_data_to_json_string := NNRCtoJavaScript.dataToJS.
-  Definition ergo_foreign_type := enhanced_foreign_type.
-
-End ErgoBackendRuntime.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.jsx b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.jsx new file mode 100644 index 00000000..1e641a51 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoBackendRuntime.jsx @@ -0,0 +1,174 @@ +
+ + Module ErgoSpec.Backend.Model.ErgoBackendRuntime + + +

Module ErgoSpec.Backend.Model.ErgoBackendRuntime

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + Qcert.Utils.Closure + + + .
+ + Require + Import{" "} + + + Qcert.Common.CommonSystem + + + .
+ + Require + Import{" "} + + + Qcert.Compiler.Model.CompilerRuntime + + + .
+ + Require + Import{" "} + + + Qcert.Translation.NNRCtoJavaScript + + + .
+ + Require + Import{" "} + + + Qcert.cNNRC.Lang.cNNRC + + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.DateTimeModelPart + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoEnhancedModel + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ForeignErgo + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendModel + + + .
+
+ Module{" "} + + ErgoBackendRuntime + {" "} + <:{" "} + + + ErgoBackendModel + + + .
+   Local{" "} + Open Scope{" "} + string.
+
+   Definition{" "} + + ergo_foreign_data + {" "} + :={" "} + + + enhanced_foreign_data + + + .
+   Definition{" "} + + + ergo_data_to_json_string + + {" "} + :={" "} + + + NNRCtoJavaScript.dataToJS + + + .
+   Definition{" "} + + ergo_foreign_type + {" "} + :={" "} + + + enhanced_foreign_type + + + .
+
+ End{" "} + + + ErgoBackendRuntime + + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.html b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.html deleted file mode 100644 index 35065715..00000000 --- a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.html +++ /dev/null @@ -1,1957 +0,0 @@ - - - - - - -Module ErgoSpec.Backend.Model.ErgoEnhancedModel - - - - - - -

Module ErgoSpec.Backend.Model.ErgoEnhancedModel

-
-
-Require Import List.
-Require Import EquivDec.
-Require Import Qcert.Utils.Utils.
-Require Import Qcert.Common.CommonSystem.
-Require Import Qcert.Translation.ForeignToJava.
-Require Import Qcert.Translation.ForeignToJavaScript.
-Require Import Qcert.Translation.ForeignToJavaScriptAst.
-Require Import Qcert.Translation.ForeignToScala.
-Require Import Qcert.Common.DataModel.ForeignDataToJSON.
-Require Import Qcert.Common.TypeSystem.ForeignTypeToJSON.
-Require Import Qcert.Translation.ForeignToSpark.
-Require Import Qcert.NNRCMR.Lang.ForeignReduceOps.
-Require Import Qcert.Translation.ForeignToReduceOps.
-Require Import Qcert.CldMR.Lang.ForeignCloudant.
-Require Import Qcert.Translation.ForeignToCloudant.
-Require Import Qcert.Compiler.Model.CompilerRuntime.
-Require Import Qcert.Compiler.Model.CompilerModel.
-Require Import Qcert.Compiler.Model.StringModelPart.
-Require Qcert.NNRCMR.Lang.NNRCMR.
-Require Qcert.CldMR.Lang.CldMR.
-Require Import Qcert.Utils.OptimizerLogger.
-Require Import String.
-Require Import Qcert.cNRAEnv.Lang.cNRAEnv.
-Require Import Qcert.NRAEnv.Lang.NRAEnv.
-Require Import Qcert.cNNRC.Lang.cNNRC.
-Require Import Qcert.NNRSimp.Lang.NNRSimp.
-Require Import Qcert.DNNRC.Lang.DNNRCBase.
-Require Import Qcert.tDNNRC.Lang.tDNNRC.
-Require Import Qcert.DNNRC.Lang.Dataframe.
-
-Require Import ErgoSpec.Backend.Model.DateTimeModelPart.
-
-Import ListNotations.
-
-Local Open Scope list_scope.
-
-Definition check_subtype_pairs
-           {br:brand_relation}
-           {fr:foreign_type}
-           (l:list (rtype*rtype)) : bool
-  := forallb (fun τs => if subtype_dec (fst τs) (snd τs) then true else false) l.
-
-Definition enforce_unary_op_schema
-           {br:brand_relation}
-           {fr:foreign_type}
-           (ts1:rtype*rtype) (tr:rtype)
-  : option (rtype*rtype)
-  := if check_subtype_pairs (ts1::nil)
-    then Some (tr, (snd ts1))
-    else None.
-
-Definition enforce_binary_op_schema
-           {br:brand_relation}
-           {fr:foreign_type}
-           (ts1:rtype*rtype) (ts2:rtype*rtype) (tr:rtype)
-  : option (rtype*rtype*rtype)
-  := if check_subtype_pairs (ts1::ts2::nil)
-    then Some (tr, (snd ts1), (snd ts2))
-    else None.
-
-Inductive enhanced_data : Set
-  :=
-  | enhancedstring : STRING -> enhanced_data
-  | enhanceddateTime : DATE_TIME -> enhanced_data
-  | enhanceddateTimeinterval : DATE_TIME_DURATION -> enhanced_data
-.
-
-Definition enhanceddateTime_now := DATE_TIME_now.
-
-Inductive enhanced_type : Set
-  :=
-  | enhancedTop : enhanced_type
-  | enhancedBottom : enhanced_type
-  | enhancedString : enhanced_type
-  | enhancedDateTime : enhanced_type
-  | enhancedDateTimeInterval : enhanced_type
-.
-
-Definition enhanced_type_to_string (et:enhanced_type) : string :=
-  match et with
-  | enhancedTop => "ETop"
-  | enhancedBottom => "EBottom"
-  | enhancedString => "EString"
-  | enhancedDateTime => "EDateTime"
-  | enhancedDateTimeInterval => "EDateTimeInterval"
-  end.
-
-Definition string_to_enhanced_type (s:string) : option enhanced_type :=
-  match s with
-  | "ETop"%string => Some enhancedTop
-  | "EBottom"%string => Some enhancedBottom
-  | "EString"%string => Some enhancedString
-  | "EDateTime"%string => Some enhancedDateTime
-  | "EDateTimeInterval"%string => Some enhancedDateTimeInterval
-  | _ => None
-  end.
-
-Require Import RelationClasses.
-Require Import Equivalence.
-
-Existing Instance date_time_foreign_data.
-Existing Instance date_time_duration_foreign_data.
-
-Program Instance enhanced_foreign_data : foreign_data
-  := mk_foreign_data enhanced_data _ _ _ _ _ _.
-
Next Obligation.
-
-  red.
-  unfold equiv, complement.
-  destruct x; destruct y; simpl; try solve [right; inversion 1].
-  - case_eq (STRING_eq s s0).
-    + left; intros.
-      f_equal.
-      apply StringModelPart.STRING_eq_correct in H.
-      trivial.
-    + right; intros.
-      inversion H0.
-      apply StringModelPart.STRING_eq_correct in H2.
-      congruence.
-  - destruct (@equiv_dec _ _ _ (@foreign_data_dec date_time_foreign_data) d d0).
-    + left; congruence.
-    + right; congruence.
-  - destruct (@equiv_dec _ _ _ (@foreign_data_dec date_time_duration_foreign_data) d d0).
-    + left; congruence.
-    + right; congruence.
-Defined.
-
Next Obligation.
-
-  (* normalized? *)
-  destruct a.
-  - exact True.
-  - exact (@foreign_data_normalized date_time_foreign_data d).
-  - exact (@foreign_data_normalized date_time_duration_foreign_data d).
-Defined.
-
Next Obligation.
-
-  destruct a.
-  - simpl; trivial.
-  - exact (@foreign_data_normalize_normalizes date_time_foreign_data d).
-  - exact (@foreign_data_normalize_normalizes date_time_duration_foreign_data d).
-Defined.
-
Next Obligation.
-
-  constructor.
-  destruct 1.
-  - exact (STRING_tostring s).
-  - exact (@toString _ (@foreign_data_tostring date_time_foreign_data) d).
-  - exact (@toString _ (@foreign_data_tostring date_time_duration_foreign_data) d).
-Defined.
-
-Definition denhanceddateTime td := dforeign (enhanceddateTime td).
-Definition denhanceddateTimeinterval td := dforeign (enhanceddateTimeinterval td).
-
-Require Import Qcert.Utils.JSON.
-
-Axiom JENHANCED_string : STRING -> string.
-Extract Constant JENHANCED_string => "(fun s -> Util.string_of_enhanced_string s)".
-
-Definition jenhancedstring s := JENHANCED_string s.
-
-Inductive enhanced_unary_op
-  :=
-  | enhanced_unary_date_time_op : date_time_unary_op -> enhanced_unary_op.
-
-Definition onddateTime {A} (f : DATE_TIME -> A) (d : data) : option A
-  := match d with
-     | dforeign (enhanceddateTime fd) => Some (f fd)
-     | _ => None
-     end.
-
-Definition ondstring {A} (f : String.string -> A) (d : data) : option A
-  := match d with
-     | dstring s => Some (f s)
-     | _ => None
-     end.
-
-Definition date_time_unary_op_interp (op:date_time_unary_op) (d:data) : option data
-  := match op with
-     | uop_date_time_component part =>
-       lift dnat (onddateTime (DATE_TIME_component part) d)
-     | uop_date_time_from_string =>
-       lift denhanceddateTime (ondstring DATE_TIME_from_string d)
-     | uop_date_time_duration_from_string =>
-       lift denhanceddateTimeinterval (ondstring DATE_TIME_DURATION_from_string d)
-     end.
-
-
-Definition enhanced_unary_op_interp
-           (br:brand_relation_t)
-           (op:enhanced_unary_op)
-           (d:data) : option data
-  := match op with
-     | enhanced_unary_date_time_op f => date_time_unary_op_interp f d
-     end.
-
-Require Import String.
-
-Program Instance enhanced_foreign_unary_op : foreign_unary_op
-  := { foreign_unary_op_type := enhanced_unary_op
-       ; foreign_unary_op_interp := enhanced_unary_op_interp }.
-
Next Obligation.
-
-  red; unfold equiv; intros.
-  change ({x = y} + {x <> y}).
-  decide equality.
-  - decide equality.
-    decide equality.
-Defined.
-
Next Obligation.
-
-  constructor; intros op.
-  destruct op.
-  - exact (date_time_unary_op_tostring d).
-Defined.
-
Next Obligation.
-
-  destruct op; simpl in H.
-  - destruct d0; simpl in H;
-      unfold onddateTime, denhanceddateTime, denhanceddateTimeinterval, lift in H; simpl in H;
-        destruct d; simpl in H; try discriminate.
-    + destruct f; invcs H; repeat constructor.
-    + invcs H; repeat constructor.
-    + invcs H; repeat constructor.
-Qed.
-
-Inductive enhanced_binary_op
-  :=
-  | enhanced_binary_date_time_op : date_time_binary_op -> enhanced_binary_op
-.
-
-Definition onddateTime2 {A} (f : DATE_TIME -> DATE_TIME -> A) (d1 d2 : data) : option A
-  := match d1, d2 with
-     | dforeign (enhanceddateTime fd1), dforeign (enhanceddateTime fd2) => Some (f fd1 fd2)
-     | _, _ => None
-     end.
-
-Definition rondbooldateTime2 (f: DATE_TIME -> DATE_TIME -> bool) (d1 d2:data) : option data
-  := lift dbool (onddateTime2 f d1 d2).
-
-Definition date_time_binary_op_interp
-           (op:date_time_binary_op) (d1 d2:data) : option data
-  := match op with
-     | bop_date_time_plus
-       => match d1, d2 with
-       | dforeign (enhanceddateTime tp), dforeign (enhanceddateTimeinterval td)
-         => Some (denhanceddateTime (DATE_TIME_plus tp td))
-       | _,_ => None
-       end
-     | bop_date_time_minus
-       => match d1, d2 with
-       | dforeign (enhanceddateTime tp), dforeign (enhanceddateTimeinterval td)
-         => Some (denhanceddateTime (DATE_TIME_minus tp td))
-       | _,_ => None
-       end
-     | bop_date_time_ne => rondbooldateTime2 DATE_TIME_ne d1 d2
-     | bop_date_time_lt => rondbooldateTime2 DATE_TIME_lt d1 d2
-     | bop_date_time_le => rondbooldateTime2 DATE_TIME_le d1 d2
-     | bop_date_time_gt => rondbooldateTime2 DATE_TIME_gt d1 d2
-     | bop_date_time_ge => rondbooldateTime2 DATE_TIME_ge d1 d2
-     | bop_date_time_duration => lift denhanceddateTimeinterval (onddateTime2 DATE_TIME_DURATION_duration d1 d2)
-     | bop_date_time_duration_days => lift dfloat (onddateTime2 DATE_TIME_DURATION_days d1 d2)
-     | bop_date_time_duration_seconds => lift dfloat (onddateTime2 DATE_TIME_DURATION_seconds d1 d2)
-     end.
-
-Definition enhanced_binary_op_interp
-           (br:brand_relation_t)
-           (op:enhanced_binary_op)
-           (d1 d2:data) : option data
-  := match op with
-     | enhanced_binary_date_time_op f => date_time_binary_op_interp f d1 d2
-     end.
-
-Program Instance enhanced_foreign_binary_op : foreign_binary_op
-  := { foreign_binary_op_type := enhanced_binary_op
-       ; foreign_binary_op_interp := enhanced_binary_op_interp }.
-
Next Obligation.
-
-  red; unfold equiv; intros.
-  change ({x = y} + {x <> y}).
-  decide equality.
-  - decide equality.
-Defined.
-
Next Obligation.
-
-  constructor; intros op.
-  destruct op.
-  - exact (date_time_binary_op_tostring d).
-Defined.
-
Next Obligation.
-
-  destruct op; simpl in H.
-  - destruct d; simpl in H;
-      unfold rondbooldateTime2, onddateTime2, denhanceddateTime, lift in H
-      ; destruct d1; simpl in H; try discriminate
-      ; destruct f; simpl in H; try discriminate
-      ; destruct d2; simpl in H; try discriminate
-      ; try (destruct f; simpl in H; try discriminate)
-      ; invcs H
-      ; repeat constructor.
-Qed.
-
-Instance enhanced_foreign_runtime :
-  foreign_runtime
-  := mk_foreign_runtime
-       enhanced_foreign_data
-       enhanced_foreign_unary_op
-       enhanced_foreign_binary_op.
-
-Definition enhanced_to_java_data
-           (quotel:String.string) (fd:enhanced_data) : java_json
-  := match fd with
-     | enhancedstring s => mk_java_json (STRING_tostring s)
-     | enhanceddateTime tp => mk_java_json (@toString _ date_time_foreign_data.(@foreign_data_tostring ) tp)
-     | enhanceddateTimeinterval tp => mk_java_json (@toString _ date_time_duration_foreign_data.(@foreign_data_tostring ) tp)
-     end.
-
-Definition enhanced_to_java_unary_op
-             (indent:nat) (eol:String.string)
-             (quotel:String.string) (fu:enhanced_unary_op)
-             (d:java_json) : java_json
-  := match fu with
-     | enhanced_unary_date_time_op op =>
-       date_time_to_java_unary_op indent eol quotel op d
-     end.
-
-Definition enhanced_to_java_binary_op
-           (indent:nat) (eol:String.string)
-           (quotel:String.string) (fb:enhanced_binary_op)
-           (d1 d2:java_json) : java_json
-  := match fb with
-     | enhanced_binary_date_time_op op =>
-       date_time_to_java_binary_op indent eol quotel op d1 d2
-     end.
-
-Instance enhanced_foreign_to_java :
-  @foreign_to_java enhanced_foreign_runtime
-  := mk_foreign_to_java
-       enhanced_foreign_runtime
-       enhanced_to_java_data
-       enhanced_to_java_unary_op
-       enhanced_to_java_binary_op.
-
-Definition enhanced_to_javascript_data
-           (quotel:String.string) (fd:enhanced_data) : String.string
-  := match fd with
-     | enhancedstring s => STRING_tostring s
-     | enhanceddateTime tp => (@toString _ date_time_foreign_data.(@foreign_data_tostring ) tp)
-     | enhanceddateTimeinterval tp => (@toString _ date_time_duration_foreign_data.(@foreign_data_tostring ) tp)
-     end.
-
-Definition enhanced_to_javascript_unary_op
-             (indent:nat) (eol:String.string)
-             (quotel:String.string) (fu:enhanced_unary_op)
-             (d:String.string) : String.string
-  := match fu with
-     | enhanced_unary_date_time_op op =>
-       date_time_to_javascript_unary_op indent eol quotel op d
-     end.
-
-Definition enhanced_to_javascript_binary_op
-           (indent:nat) (eol:String.string)
-           (quotel:String.string) (fb:enhanced_binary_op)
-           (d1 d2:String.string) : String.string
-  := match fb with
-     | enhanced_binary_date_time_op op =>
-       date_time_to_javascript_binary_op indent eol quotel op d1 d2
-     end.
-
-Definition enhanced_to_ajavascript_unary_op
-             (fu:enhanced_unary_op)
-             (e:JsSyntax.expr) : JsSyntax.expr
-  := match fu with
-     | enhanced_unary_date_time_op op =>
-       date_time_to_ajavascript_unary_op op e
-     end.
-
-Definition enhanced_to_ajavascript_binary_op
-           (fb:enhanced_binary_op)
-           (e1 e2:JsSyntax.expr) : JsSyntax.expr
-  := match fb with
-     | enhanced_binary_date_time_op op =>
-       date_time_to_ajavascript_binary_op op e1 e2
-     end.
-
-Instance enhanced_foreign_to_javascript :
-  @foreign_to_javascript enhanced_foreign_runtime
-  := mk_foreign_to_javascript
-       enhanced_foreign_runtime
-       enhanced_to_javascript_unary_op
-       enhanced_to_javascript_binary_op.
-
-Instance enhanced_foreign_to_ajavascript :
-  @foreign_to_ajavascript enhanced_foreign_runtime
-  := mk_foreign_to_ajavascript
-       enhanced_foreign_runtime
-       enhanced_to_ajavascript_unary_op
-       enhanced_to_ajavascript_binary_op.
-
-Definition enhanced_to_scala_unary_op (op: enhanced_unary_op) (d: string) : string :=
-  match op with
-    | enhanced_unary_date_time_op op => "EnhancedModel: date time ops not supported for now."
-  end.
-
-Definition enhanced_to_scala_spark_datatype {ftype: foreign_type} (ft: foreign_type_type) : string :=
-  "FloatType".
-
-Instance enhanced_foreign_to_scala {ftype: foreign_type}:
-  @foreign_to_scala enhanced_foreign_runtime _
-  := mk_foreign_to_scala
-       enhanced_foreign_runtime _
-       enhanced_to_scala_unary_op
-       enhanced_to_scala_spark_datatype.
-
-
-
-
-Program Instance enhanced_foreign_to_JSON : foreign_to_JSON
-  := mk_foreign_to_JSON enhanced_foreign_data _ _.
-
Next Obligation.
-
-  (* TODO: For now, we assume that JSON supports floating point *)
-  exact None.
-Defined.
-
Next Obligation.
-
-  destruct fd.
-  - exact (jstring (jenhancedstring s)).
-  - exact (jstring (@toString _ date_time_foreign_data.(@foreign_data_tostring ) d)).
-  - exact (jstring (@toString _ date_time_duration_foreign_data.(@foreign_data_tostring ) d)).
-Defined.
-
-  Inductive enhanced_numeric_type :=
-  | enhanced_numeric_int
-  | enhanced_numeric_float.
-
-  Global Instance enhanced_numeric_type_eqdec : EqDec enhanced_numeric_type eq.
-
Proof.
-
-    red. unfold equiv, complement.
-    change (forall x y : enhanced_numeric_type, {x = y} + {x <> y}).
-    decide equality.
-  Defined.
-
-  Definition enhanced_to_cld_numeric_type
-             (typ:enhanced_numeric_type) : CldMR.cld_numeric_type
-    := match typ with
-       | enhanced_numeric_int => CldMR.Cld_int
-       | enhanced_numeric_float => CldMR.Cld_float
-       end.
-
-Inductive enhanced_reduce_op
-  := RedOpCount : enhanced_reduce_op
-   | RedOpSum (typ:enhanced_numeric_type) : enhanced_reduce_op
-   | RedOpMin (typ:enhanced_numeric_type) : enhanced_reduce_op
-   | RedOpMax (typ:enhanced_numeric_type) : enhanced_reduce_op
-   | RedOpArithMean (typ:enhanced_numeric_type) : enhanced_reduce_op
-   | RedOpStats (typ:enhanced_numeric_type) : enhanced_reduce_op.
-
-Definition enhanced_numeric_type_prefix
-           (typ:enhanced_numeric_type) : string
-  := match typ with
-     | enhanced_numeric_int => ""%string
-     | enhanced_numeric_float => "F"%string
-     end.
-
-Definition enhanced_reduce_op_tostring (op:enhanced_reduce_op) : string
-  := match op with
-     | RedOpCount => "COUNT"%string
-     | RedOpSum typ => append (enhanced_numeric_type_prefix typ) "FSUM"%string
-     | RedOpMin typ => append (enhanced_numeric_type_prefix typ) "FMIN"%string
-     | RedOpMax typ => append (enhanced_numeric_type_prefix typ) "FMAX"%string
-     | RedOpArithMean typ => append (enhanced_numeric_type_prefix typ) "FARITHMEAN"%string
-     | RedOpStats typ => append (enhanced_numeric_type_prefix typ) "FSTATS"%string
-     end.
-
-Definition enhanced_numeric_sum (typ:enhanced_numeric_type) : unary_op
-  := match typ with
-     | enhanced_numeric_int
-       => OpNatSum
-     | enhanced_numeric_float
-       => OpFloatSum
-     end.
-
-Definition enhanced_numeric_min (typ:enhanced_numeric_type) : unary_op
-  := match typ with
-     | enhanced_numeric_int
-       => OpNatMin
-     | enhanced_numeric_float
-       => OpFloatBagMin
-     end.
-
-Definition enhanced_numeric_max (typ:enhanced_numeric_type) : unary_op
-  := match typ with
-     | enhanced_numeric_int
-       => OpNatMax
-     | enhanced_numeric_float
-       => OpFloatBagMax
-     end.
-
-Definition enhanced_numeric_arith_mean (typ:enhanced_numeric_type) : unary_op
-  := match typ with
-     | enhanced_numeric_int
-       => OpNatMean
-     | enhanced_numeric_float
-       => OpFloatMean
-     end.
-
-Definition enhanced_reduce_op_interp
-           (br:brand_relation_t)
-           (op:enhanced_reduce_op)
-           (dl:list data) : option data
-  := match op with
-      | RedOpCount | RedOpSum _ | RedOpMin _ | RedOpMax _ | RedOpArithMean _ =>
-        let uop :=
-            match op with
-            | RedOpCount => OpCount
-            | RedOpSum typ => enhanced_numeric_sum typ
-            | RedOpMin typ => enhanced_numeric_min typ
-            | RedOpMax typ => enhanced_numeric_max typ
-            | RedOpArithMean typ => enhanced_numeric_arith_mean typ
-            | RedOpStats _ => OpCount
-            end
-        in
-        unary_op_eval br uop (dcoll dl)
-      | RedOpStats typ =>
-        let coll := dcoll dl in
-        let count := unary_op_eval br OpCount coll in
-        let sum := unary_op_eval br (enhanced_numeric_sum typ) coll in
-        let min := unary_op_eval br (enhanced_numeric_min typ) coll in
-        let max := unary_op_eval br (enhanced_numeric_max typ) coll in
-        let v :=
-            match (count, sum, min, max) with
-              | (Some count, Some sum, Some min, Some max) =>
-                Some (drec (("count"%string, count)
-                              ::("max"%string, max)
-                              ::("min"%string, min)
-                              ::("sum"%string, sum)
-                              ::nil))
-              | _ => None
-            end
-        in
-        v
-     end.
-
-Program Instance enhanced_foreign_reduce_op : foreign_reduce_op
-  := mk_foreign_reduce_op enhanced_foreign_data enhanced_reduce_op _ _ enhanced_reduce_op_interp _.
-
Next Obligation.
-
-  red; unfold equiv, complement.
-  change (forall x y:enhanced_reduce_op, {x = y} + {x <> y}).
-  decide equality; decide equality.
-Defined.
-
Next Obligation.
-
-  constructor.
-  apply enhanced_reduce_op_tostring.
-Defined.
-
Next Obligation.
-
-  destruct op; simpl in *; invcs H.
-  - constructor.
-  - destruct typ; simpl in *.
-    + apply some_lift in H2; destruct H2 as [? eqq ?];
-        subst; constructor.
-    + apply some_lift in H2; destruct H2 as [? eqq ?];
-        subst; constructor.
-  - destruct typ; simpl in *.
-    + unfold lifted_min in *.
-      apply some_lift in H2; destruct H2 as [? eqq ?];
-        subst; constructor.
-    + unfold lifted_fmin in *.
-      apply some_lift in H2; destruct H2 as [? eqq ?];
-        subst; constructor.
-  - destruct typ; simpl in *.
-    + unfold lifted_max in * .
-      apply some_lift in H2; destruct H2 as [? eqq ?];
-        subst; constructor.
-    + unfold lifted_fmax in * .
-      apply some_lift in H2; destruct H2 as [? eqq ?];
-        subst; constructor.
-  - destruct typ; simpl in *.
-    + unfold lifted_max in * .
-      apply some_lift in H2; destruct H2 as [? eqq ?];
-        subst; constructor.
-    + unfold lifted_fmax in * .
-      apply some_lift in H2; destruct H2 as [? eqq ?];
-        subst; constructor.
-  - destruct typ; simpl in *.
-    + destruct (dsum dl); simpl in *; try discriminate.
-      unfold lifted_min, lifted_max in *.
-      destruct ((lift bnummin (lifted_zbag dl))); simpl in *; try discriminate.
-      destruct ((lift bnummax (lifted_zbag dl))); simpl in *; try discriminate.
-      invcs H2.
-      constructor.
-      * repeat constructor.
-      * reflexivity.
-    + case_eq (lifted_fsum dl); intros; simpl in *; rewrite H in *; try discriminate.
-      unfold lifted_fmin, lifted_fmax in *.
-      destruct ((lift float_list_min (lifted_fbag dl))); simpl in *; try discriminate.
-      destruct ((lift float_list_max (lifted_fbag dl))); simpl in *; try discriminate.
-      invcs H2.
-      constructor.
-      * repeat constructor.
-        apply some_lift in H; destruct H as [? eqq ?]; subst.
-        constructor.
-      * reflexivity.
-Qed.
-
-Definition enhanced_to_reduce_op (uop:unary_op) : option NNRCMR.reduce_op
-  := match uop with
-     | OpCount => Some (NNRCMR.RedOpForeign RedOpCount)
-     | OpNatSum =>
-       Some (NNRCMR.RedOpForeign (RedOpSum enhanced_numeric_int))
-     | OpFloatSum =>
-       Some (NNRCMR.RedOpForeign (RedOpSum enhanced_numeric_float))
-     | OpNatMin =>
-       Some (NNRCMR.RedOpForeign (RedOpMin enhanced_numeric_int))
-     | OpFloatBagMin =>
-       Some (NNRCMR.RedOpForeign (RedOpMin enhanced_numeric_float))
-     | OpNatMax =>
-       Some (NNRCMR.RedOpForeign (RedOpMax enhanced_numeric_int))
-     | OpFloatBagMax =>
-       Some (NNRCMR.RedOpForeign (RedOpMax enhanced_numeric_float))
-     | OpNatMean =>
-       Some (NNRCMR.RedOpForeign (RedOpArithMean enhanced_numeric_int))
-     | OpFloatMean =>
-       Some (NNRCMR.RedOpForeign (RedOpArithMean enhanced_numeric_float))
-     | _ => None
-     end.
-
-Definition enhanced_of_reduce_op (rop:NNRCMR.reduce_op) : option unary_op
-  := match rop with
-     | NNRCMR.RedOpForeign RedOpCount => Some OpCount
-     | NNRCMR.RedOpForeign (RedOpSum enhanced_numeric_int) =>
-       Some (OpNatSum)
-     | NNRCMR.RedOpForeign (RedOpSum enhanced_numeric_float) =>
-       Some (OpFloatSum)
-     | NNRCMR.RedOpForeign (RedOpMin enhanced_numeric_int) =>
-       Some (OpNatMin)
-     | NNRCMR.RedOpForeign (RedOpMin enhanced_numeric_float) =>
-       Some (OpFloatBagMin)
-     | NNRCMR.RedOpForeign (RedOpMax enhanced_numeric_int) =>
-       Some (OpNatMax)
-     | NNRCMR.RedOpForeign (RedOpMax enhanced_numeric_float) =>
-       Some (OpFloatBagMax)
-     | NNRCMR.RedOpForeign (RedOpArithMean enhanced_numeric_int) =>
-       Some (OpNatMean)
-     | NNRCMR.RedOpForeign (RedOpArithMean enhanced_numeric_float) =>
-       Some (OpFloatMean)
-     | NNRCMR.RedOpForeign (RedOpStats _) =>
-       None
-     end.
-
-Program Instance enhanced_foreign_to_reduce_op : foreign_to_reduce_op
-  := mk_foreign_to_reduce_op enhanced_foreign_runtime enhanced_foreign_reduce_op enhanced_to_reduce_op _ enhanced_of_reduce_op _.
-
Next Obligation.
-
-  unfold NNRCMR.reduce_op_eval.
-  destruct uop; simpl in *; invcs H; try reflexivity.
-Qed.
-
Next Obligation.
-
-  unfold NNRCMR.reduce_op_eval.
-  destruct rop; simpl in *; invcs H; try reflexivity.
-  destruct f; invcs H1; simpl; try reflexivity.
-  destruct typ; invcs H0; reflexivity.
-  destruct typ; invcs H0; reflexivity.
-  destruct typ; invcs H0; reflexivity.
-  destruct typ; invcs H0; reflexivity.
-Qed.
-
-Local Open Scope string_scope.
-Definition enhanced_to_spark_reduce_op
-           (rop:enhanced_reduce_op)
-           (scala_endl quotel:string) : string
-  := match rop with
-      | RedOpCount => ".count().toString()"
-      | RedOpSum enhanced_numeric_int => ".aggregate(0)(_ + _.toInt, _ + _).toString()"
-      | RedOpSum enhanced_numeric_float => ".aggregate(0.0)(_ + _.toDouble, _ + _).toString()"
-      | RedOpMin enhanced_numeric_int => ".aggregate(Int.MaxValue)(((x, y) => Math.min(x, y.toInt)), Math.min).toString()"
-      | RedOpMin enhanced_numeric_float => ".aggregate(Double.MaxValue)(((x, y) => Math.min(x, y.toDouble)), Math.min).toString()"
-      | RedOpMax enhanced_numeric_int =>
-        ".aggregate(Int.MinValue)(((x, y) => Math.max(x, y.toInt)), Math.max).toString()"
-      | RedOpMax enhanced_numeric_float =>
-        ".aggregate(Double.MinValue)(((x, y) => Math.max(x, y.toDouble)), Math.max).toString()"
-      | RedOpStats _ =>
-        ".aggregate("""")(statsReduce, statsRereduce).toString()" ++ scala_endl ++
-                     " sc.parallelize(Array(res))"
-      | RedOpArithMean _ =>
-        ".arithmean /* ArithMean must be removed before code generation */"
-     end.
-
-Require Import Qcert.NNRC.NNRCRuntime.
-Require Import Qcert.NNRCMR.NNRCMRRuntime.
-Require Import Qcert.NNRCMR.Optim.NNRCMRRewrite.
-
-  Definition min_max_to_stats avoid (mr: mr) :=
-    match mr.(mr_reduce) with
-    | RedOp (RedOpForeign op) =>
-      match op with
-      | RedOpMin typ | RedOpMax typ =>
-        let stats_field :=
-            match op with
-            | RedOpMin _ => "min"%string
-            | RedOpMax _ => "max"%string
-            | _ => "ERROR"%string
-            end
-        in
-        let (tmp, avoid) := fresh_mr_var "stats$" avoid in
-        let mr1 :=
-           mkMR
-             mr.(mr_input)
-             tmp
-             mr.(mr_map)
-             (RedOp (RedOpForeign (RedOpStats typ)))
-        in
-        let x := "stats"%string in
-        let mr2 :=
-            mkMR
-              tmp
-              mr.(mr_output)
-              (MapScalar (x, NNRCUnop OpBag (NNRCUnop (OpDot stats_field) (NNRCVar x))))
-              RedSingleton
-        in
-        Some (mr1::mr2::nil)
-      | _ => None
-      end
-    | _ => None
-    end.
-
-  Definition arithmean_to_stats avoid (mr: mr) :=
-    match mr.(mr_reduce) with
-    | RedOp (RedOpForeign op) =>
-      match op with
-      | RedOpArithMean typ =>
-        let (tmp, avoid) := fresh_mr_var "stats$" avoid in
-        let mr1 :=
-           mkMR
-             mr.(mr_input)
-             tmp
-             mr.(mr_map)
-             (RedOp (RedOpForeign (RedOpStats typ)))
-        in
-        let map :=
-            match typ with
-            | enhanced_numeric_int =>
-              let zero := NNRCConst (dnat 0) in
-              let x := "stats"%string in
-              MapScalar (x, NNRCUnop OpBag
-                                    (NNRCIf (NNRCBinop OpEqual (NNRCUnop (OpDot "count"%string) (NNRCVar x)) zero)
-                                           zero
-                                           (NNRCBinop (OpNatBinary NatDiv)
-                                                     (NNRCUnop (OpDot "sum"%string) (NNRCVar x))
-                                                     (NNRCUnop (OpDot "count"%string) (NNRCVar x)))))
-            | enhanced_numeric_float =>
-              let zero := NNRCConst (dnat 0) in
-              let zerof := NNRCConst (dfloat float_zero) in
-              let x := "stats"%string in
-              MapScalar (x, NNRCUnop OpBag
-                                    (NNRCIf (NNRCBinop OpEqual (NNRCUnop (OpDot "count"%string) (NNRCVar x)) zero)
-                                           zerof
-                                           (NNRCBinop (OpFloatBinary FloatDiv)
-                                                     (NNRCUnop (OpDot "sum"%string) (NNRCVar x))
-                                                     (NNRCUnop (OpFloatOfNat)
-                                                       (NNRCUnop (OpDot "count"%string) (NNRCVar x))))))
-            end
-        in
-        let mr2 :=
-            mkMR
-              tmp
-              mr.(mr_output)
-              map
-              RedSingleton
-        in
-        Some (mr1::mr2::nil)
-      | _ => None
-      end
-    | _ => None
-    end.
-
-  Definition min_max_free_reduce (src:reduce_fun)
-    := match src with
-       | RedOp (RedOpForeign (RedOpMin _|RedOpMax _)) => False
-       | _ => True
-       end.
-
-  Definition arithmean_free_reduce (src:reduce_fun)
-    := match src with
-       | RedOp (RedOpForeign (RedOpArithMean _)) => False
-       | _ => True
-       end.
-
-  Definition min_max_free_mr (src:mr)
-    := min_max_free_reduce src.(mr_reduce).
-
-  Definition arithmean_free_mr (src:mr)
-    := arithmean_free_reduce src.(mr_reduce).
-
-  Definition min_max_free_mr_chain (src:list mr)
-    := Forall min_max_free_mr src.
-
-  Definition min_max_free_nnrcmr (src:nnrcmr)
-    := min_max_free_mr_chain src.(mr_chain).
-
-  Definition arithmean_free_mr_chain (src:list mr)
-    := Forall arithmean_free_mr src.
-
-  Definition arithmean_free_nnrcmr (src:nnrcmr)
-    := arithmean_free_mr_chain src.(mr_chain).
-
-  Definition to_spark_nnrcmr (l: nnrcmr) :=
-    let avoid := get_nnrcmr_vars l in
-    let l := apply_rewrite (arithmean_to_stats avoid) l in
-    l.
-
-  Definition to_spark_nnrcmr_prepared (src:nnrcmr)
-    := arithmean_free_nnrcmr src.
-
-Program Instance enhanced_foreign_to_spark : foreign_to_spark
-  := mk_foreign_to_spark
-       enhanced_foreign_runtime
-       enhanced_foreign_reduce_op
-       enhanced_to_spark_reduce_op
-       to_spark_nnrcmr.
-
-Instance enhanced_foreign_cloudant : foreign_cloudant
-  := mk_foreign_cloudant
-       enhanced_foreign_runtime
-       (OpFloatSum)
-       (OpFloatBagMin)
-       (OpFloatBagMax).
-
-Definition enhanced_to_cloudant_reduce_op
-           (rop:enhanced_reduce_op) : CldMR.cld_reduce_op
-  := match rop with
-     | RedOpCount => CldMR.CldRedOpCount
-     | RedOpSum typ => CldMR.CldRedOpSum (enhanced_to_cld_numeric_type typ)
-     | RedOpStats typ => CldMR.CldRedOpStats (enhanced_to_cld_numeric_type typ)
-     | RedOpMin _ => CldMR.CldRedOpStats CldMR.Cld_int
-     | RedOpMax _ => CldMR.CldRedOpStats CldMR.Cld_int
-     | RedOpArithMean _ => CldMR.CldRedOpStats CldMR.Cld_int
-     end.
-
-  Definition to_cloudant_nnrcmr (l: nnrcmr) :=
-    let avoid := get_nnrcmr_vars l in
-    let l := apply_rewrite (min_max_to_stats avoid) l in
-    let l := apply_rewrite (arithmean_to_stats avoid) l in
-    l.
-
-  Definition to_cloudant_nnrcmr_prepared (src:nnrcmr)
-    := min_max_free_nnrcmr src /\ arithmean_free_nnrcmr src.
-
-  Program Instance enhanced_foreign_to_cloudant : foreign_to_cloudant
-    :=
-      { foreign_to_cloudant_reduce_op := enhanced_to_cloudant_reduce_op
-        ; foreign_to_cloudant_prepare_nnrcmr := to_cloudant_nnrcmr
-        ; foreign_to_cloudant_nnrcmr_prepared := to_cloudant_nnrcmr_prepared
-      }.
-
Next Obligation.
-
-    unfold to_cloudant_nnrcmr.
-    unfold to_cloudant_nnrcmr_prepared.
-    unfold min_max_free_nnrcmr, min_max_free_mr_chain, min_max_free_mr, min_max_free_reduce.
-    split.
-    - unfold apply_rewrite, min_max_to_stats.
-      unfold mr_chain_apply_rewrite.
-      apply Forall_forall; intros ? inn.
-      simpl in *.
-      apply in_flat_map in inn.
-      destruct inn as [? [inn1 inn2]].
-      destruct x; simpl.
-      destruct mr_reduce; simpl in *;
-        unfold min_max_free_mr;
-        simpl;
-      trivial.
-      destruct r; simpl in *; trivial.
-      destruct x0; simpl in *.
-      destruct mr_reduce; simpl in *;
-        try solve [invcs inn2; invcs H].
-      destruct r; simpl in * .
-      destruct f0; simpl in *.
-      + intuition.
-        invcs H; trivial.
-      + intuition.
-        invcs H; trivial.
-      + apply in_flat_map in inn1.
-        destruct inn1 as [? [inn1 inn3]].
-        destruct x.
-        simpl in inn3.
-        destruct mr_reduce
-        ; try solve [simpl in inn3; intuition
-                     ; invcs H].
-        destruct r; destruct f0
-        ; simpl in inn3; intuition
-        ; invcs H0
-        ; try solve [invcs H | invcs H1].
-      + apply in_flat_map in inn1.
-        destruct inn1 as [? [inn1 inn3]].
-        destruct x.
-        simpl in inn3.
-        destruct mr_reduce
-        ; try solve [simpl in inn3; intuition
-                     ; invcs H].
-        destruct r; destruct f0
-        ; simpl in inn3; intuition
-        ; invcs H0
-        ; try solve [invcs H | invcs H1].
-      + intuition.
-        invcs H; trivial.
-        intuition.
-        invcs H0; trivial.
-      + intuition.
-        invcs H; trivial.
-    - unfold apply_rewrite, mr_chain_apply_rewrite, arithmean_free_nnrcmr, arithmean_free_mr_chain.
-      simpl in *.
-      apply Forall_forall; intros ? inn.
-      apply in_flat_map in inn.
-      destruct inn as [? [inn1 inn2]].
-      destruct x; simpl.
-      destruct mr_reduce; simpl in *;
-        unfold arithmean_free_mr;
-        simpl;
-      trivial.
-      destruct r; simpl in *; trivial.
-      destruct x0; simpl in *.
-      destruct mr_reduce; simpl in *;
-        try solve [invcs inn2; invcs H].
-      destruct r; simpl in * .
-      destruct f0; simpl in *.
-      + intuition.
-        invcs H; trivial.
-      + intuition.
-        invcs H; trivial.
-      + intuition.
-        invcs H; trivial.
-      + intuition.
-        invcs H; trivial.
-      + intuition.
-        invcs H; trivial.
-        invcs H0; trivial.
-      + intuition.
-        invcs H; trivial.
-  Qed.
-
-  Axiom OPTIMIZER_LOGGER_nraenv_token_type : Set.
-  Extract Constant OPTIMIZER_LOGGER_nraenv_token_type => "Util.nra_logger_token_type".
-
-  Axiom OPTIMIZER_LOGGER_nraenv_startPass :
-    String.string -> nraenv -> OPTIMIZER_LOGGER_nraenv_token_type.
-
-  Extract Constant OPTIMIZER_LOGGER_nraenv_startPass =>
-  "(fun name input -> Logger.nra_log_startPass (Util.string_of_char_list name) input)".
-
-  Axiom OPTIMIZER_LOGGER_nraenv_step :
-    OPTIMIZER_LOGGER_nraenv_token_type -> String.string ->
-    nraenv -> nraenv ->
-    OPTIMIZER_LOGGER_nraenv_token_type.
-  
-  Extract Inlined Constant OPTIMIZER_LOGGER_nraenv_step =>
-  "(fun token name input output -> Logger.nra_log_step token (Util.string_of_char_list name) input output)".
-
-  Axiom OPTIMIZER_LOGGER_nraenv_endPass :
-    OPTIMIZER_LOGGER_nraenv_token_type -> nraenv -> OPTIMIZER_LOGGER_nraenv_token_type.
-  
-  Extract Inlined Constant OPTIMIZER_LOGGER_nraenv_endPass =>
-  "(fun token output -> Logger.nra_log_endPass token output)".
-
-  Instance foreign_nraenv_optimizer_logger :
-    optimizer_logger string nraenv
-    :=
-      {
-        optimizer_logger_token_type := OPTIMIZER_LOGGER_nraenv_token_type
-        ; logStartPass := OPTIMIZER_LOGGER_nraenv_startPass
-        ; logStep := OPTIMIZER_LOGGER_nraenv_step
-        ; logEndPass := OPTIMIZER_LOGGER_nraenv_endPass
-      } .
-
-  Axiom OPTIMIZER_LOGGER_nnrc_token_type : Set.
-  Extract Constant OPTIMIZER_LOGGER_nnrc_token_type => "Util.nrc_logger_token_type".
-
-  Axiom OPTIMIZER_LOGGER_nnrc_startPass :
-    String.string -> nnrc -> OPTIMIZER_LOGGER_nnrc_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrc_startPass =>
-  "(fun name input -> Logger.nrc_log_startPass (Util.string_of_char_list name) input)".
-
-  Axiom OPTIMIZER_LOGGER_nnrc_step :
-    OPTIMIZER_LOGGER_nnrc_token_type -> String.string ->
-    nnrc -> nnrc ->
-    OPTIMIZER_LOGGER_nnrc_token_type.
-  
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrc_step =>
-  "(fun token name input output -> Logger.nrc_log_step token (Util.string_of_char_list name) input output)".
-
-  Axiom OPTIMIZER_LOGGER_nnrc_endPass :
-    OPTIMIZER_LOGGER_nnrc_token_type -> nnrc -> OPTIMIZER_LOGGER_nnrc_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrc_endPass =>
-  "(fun token output -> Logger.nrc_log_endPass token output)".
-
-    Instance foreign_nnrc_optimizer_logger :
-    optimizer_logger string nnrc
-    :=
-      {
-        optimizer_logger_token_type := OPTIMIZER_LOGGER_nnrc_token_type
-        ; logStartPass := OPTIMIZER_LOGGER_nnrc_startPass
-        ; logStep := OPTIMIZER_LOGGER_nnrc_step
-        ; logEndPass := OPTIMIZER_LOGGER_nnrc_endPass
-      } .
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_expr_token_type : Set.
-  Extract Constant OPTIMIZER_LOGGER_nnrs_imp_expr_token_type => "Util.nnrs_imp_expr_logger_token_type".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_expr_startPass :
-    String.string -> nnrs_imp_expr -> OPTIMIZER_LOGGER_nnrs_imp_expr_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_expr_startPass =>
-  "(fun name input -> Logger.nnrs_imp_expr_log_startPass (Util.string_of_char_list name) input)".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_expr_step :
-    OPTIMIZER_LOGGER_nnrs_imp_expr_token_type -> String.string ->
-    nnrs_imp_expr -> nnrs_imp_expr ->
-    OPTIMIZER_LOGGER_nnrs_imp_expr_token_type.
-  
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_expr_step =>
-  "(fun token name input output -> Logger.nnrs_imp_expr_log_step token (Util.string_of_char_list name) input output)".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_expr_endPass :
-    OPTIMIZER_LOGGER_nnrs_imp_expr_token_type -> nnrs_imp_expr -> OPTIMIZER_LOGGER_nnrs_imp_expr_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_expr_endPass =>
-  "(fun token output -> Logger.nnrs_imp_expr_log_endPass token output)".
-
-    Instance foreign_nnrs_imp_expr_optimizer_logger :
-    optimizer_logger string nnrs_imp_expr
-    :=
-      {
-        optimizer_logger_token_type := OPTIMIZER_LOGGER_nnrs_imp_expr_token_type
-        ; logStartPass := OPTIMIZER_LOGGER_nnrs_imp_expr_startPass
-        ; logStep := OPTIMIZER_LOGGER_nnrs_imp_expr_step
-        ; logEndPass := OPTIMIZER_LOGGER_nnrs_imp_expr_endPass
-      } .
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type : Set.
-  Extract Constant OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type => "Util.nnrs_imp_stmt_logger_token_type".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_stmt_startPass :
-    String.string -> nnrs_imp_stmt -> OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_stmt_startPass =>
-  "(fun name input -> Logger.nnrs_imp_stmt_log_startPass (Util.string_of_char_list name) input)".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_stmt_step :
-    OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type -> String.string ->
-    nnrs_imp_stmt -> nnrs_imp_stmt ->
-    OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type.
-  
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_stmt_step =>
-  "(fun token name input output -> Logger.nnrs_imp_stmt_log_step token (Util.string_of_char_list name) input output)".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_stmt_endPass :
-    OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type -> nnrs_imp_stmt -> OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_stmt_endPass =>
-  "(fun token output -> Logger.nnrs_imp_stmt_log_endPass token output)".
-
-    Instance foreign_nnrs_imp_stmt_optimizer_logger :
-    optimizer_logger string nnrs_imp_stmt
-    :=
-      {
-        optimizer_logger_token_type := OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type
-        ; logStartPass := OPTIMIZER_LOGGER_nnrs_imp_stmt_startPass
-        ; logStep := OPTIMIZER_LOGGER_nnrs_imp_stmt_step
-        ; logEndPass := OPTIMIZER_LOGGER_nnrs_imp_stmt_endPass
-      } .
-
-      Axiom OPTIMIZER_LOGGER_nnrs_imp_token_type : Set.
-  Extract Constant OPTIMIZER_LOGGER_nnrs_imp_token_type => "Util.nnrs_imp_logger_token_type".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_startPass :
-    String.string -> nnrs_imp -> OPTIMIZER_LOGGER_nnrs_imp_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_startPass =>
-  "(fun name input -> Logger.nnrs_imp_log_startPass (Util.string_of_char_list name) input)".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_step :
-    OPTIMIZER_LOGGER_nnrs_imp_token_type -> String.string ->
-    nnrs_imp -> nnrs_imp ->
-    OPTIMIZER_LOGGER_nnrs_imp_token_type.
-  
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_step =>
-  "(fun token name input output -> Logger.nnrs_imp_log_step token (Util.string_of_char_list name) input output)".
-
-  Axiom OPTIMIZER_LOGGER_nnrs_imp_endPass :
-    OPTIMIZER_LOGGER_nnrs_imp_token_type -> nnrs_imp -> OPTIMIZER_LOGGER_nnrs_imp_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_nnrs_imp_endPass =>
-  "(fun token output -> Logger.nnrs_imp_log_endPass token output)".
-
-    Instance foreign_nnrs_imp_optimizer_logger :
-    optimizer_logger string nnrs_imp
-    :=
-      {
-        optimizer_logger_token_type := OPTIMIZER_LOGGER_nnrs_imp_token_type
-        ; logStartPass := OPTIMIZER_LOGGER_nnrs_imp_startPass
-        ; logStep := OPTIMIZER_LOGGER_nnrs_imp_step
-        ; logEndPass := OPTIMIZER_LOGGER_nnrs_imp_endPass
-      } .
-
-
Foreign typing, used to build the basic_model
-
-Definition enhanced_type_join (t1 t2:enhanced_type)
-  := match t1, t2 with
-     | enhancedBottom, _ => t2
-     | _, enhancedBottom => t1
-     | enhancedString, enhancedString => enhancedString
-     | enhancedDateTime, enhancedDateTime => enhancedDateTime
-     | enhancedDateTimeInterval, enhancedDateTimeInterval => enhancedDateTimeInterval
-     | _, _ => enhancedTop
-     end.
-
-Definition enhanced_type_meet (t1 t2:enhanced_type)
-  := match t1, t2 with
-     | enhancedTop, _ => t2
-     | _, enhancedTop => t1
-     | enhancedString, enhancedString => enhancedString
-     | enhancedDateTime, enhancedDateTime => enhancedDateTime
-     | enhancedDateTimeInterval, enhancedDateTimeInterval => enhancedDateTimeInterval
-     | _, _ => enhancedBottom
-     end.
-
-Inductive enhanced_subtype : enhanced_type -> enhanced_type -> Prop :=
-| enhanced_subtype_top t : enhanced_subtype t enhancedTop
-| enhanced_subtype_bottom t : enhanced_subtype enhancedBottom t
-| enhanced_subtype_refl t : enhanced_subtype t t.
-
-Instance enhanced_subtype_pre : PreOrder enhanced_subtype.
-
Proof.
-
-  constructor; red; intros.
-  - destruct x; constructor.
-  - inversion H; inversion H0; subst; try constructor; congruence.
-Qed.
-
-Instance enhanced_subtype_post : PartialOrder eq enhanced_subtype.
-
Proof.
-
-  intros x y; split.
-  - intros; subst.
-    repeat red.
-    split; constructor.
-  - destruct 1.
-    inversion H; inversion H0; congruence.
-Qed.
-
-Instance enhanced_type_lattice : Lattice enhanced_type eq
-  := {
-      join := enhanced_type_join
-      ; meet := enhanced_type_meet
-    }.
-
Proof.
-
-  - red; intros t1 t2.
-    destruct t1; destruct t2; simpl;
-    reflexivity.
-  - red; intros t1 t2 t3.
-    destruct t1; destruct t2; destruct t3; simpl;
-    reflexivity.
-  - red; intros t1.
-    simpl.
-    destruct t1; simpl; try reflexivity.
-  - red; intros t1 t2.
-    destruct t1; destruct t2; simpl;
-    reflexivity.
-  - red; intros t1 t2 t3.
-    destruct t1; destruct t2; destruct t3; simpl;
-    reflexivity.
-  - red; intros t1.
-    destruct t1; simpl;
-    reflexivity.
-  - red; intros t1 t2.
-    destruct t1; destruct t2; simpl;
-      reflexivity.
-  - red; intros t1 t2.
-    destruct t1; destruct t2; simpl;
-      reflexivity.
-Defined.
-
-Instance enhanced_type_olattice : OLattice eq enhanced_subtype.
-
Proof.
-
-  constructor.
-  split.
-  - destruct a; destruct b; inversion 1; simpl; reflexivity.
-  - destruct a; destruct b; inversion 1; simpl;
-    constructor.
-Qed.
-
-Program Instance enhanced_foreign_type : foreign_type
-  := mk_foreign_type enhanced_type _ _ _ _ _ _ _.
-
Next Obligation.
-
-  red.
-  unfold equiv, complement.
-  intros.
-  change ({x = y} + {x <> y}).
-  decide equality.
-Defined.
-
Next Obligation.
-
-  destruct a; destruct b; try solve [left; constructor | right; inversion 1].
-Defined.
-
-Program Instance enhanced_foreign_type_to_JSON : foreign_type_to_JSON
-  := mk_foreign_type_to_JSON enhanced_foreign_type _ _.
-
Next Obligation.
-
-  exact (string_to_enhanced_type s).
-Defined.
-
Next Obligation.
-
-  exact (enhanced_type_to_string fd).
-Defined.
-
-Inductive enhanced_has_type : enhanced_data -> enhanced_type -> Prop :=
-| enhanced_has_type_top fd : enhanced_has_type fd enhancedTop
-| enhanced_has_type_string (s:STRING) : enhanced_has_type (enhancedstring s) enhancedString
-| enhanced_has_type_dateTime (tp:DATE_TIME) : enhanced_has_type (enhanceddateTime tp) enhancedDateTime
-| enhanced_has_type_dateTimeinterval (tp:DATE_TIME_DURATION) : enhanced_has_type (enhanceddateTimeinterval tp) enhancedDateTimeInterval
-.
-
-Definition enhanced_infer_type (d:enhanced_data) : option enhanced_type
-  := match d with
-     | enhancedstring _ => Some enhancedString
-     | enhanceddateTime _ => Some enhancedDateTime
-     | enhanceddateTimeinterval _ => Some enhancedDateTimeInterval
-     end.
-
-Program Instance enhanced_foreign_data_typing :
-  @foreign_data_typing enhanced_foreign_data enhanced_foreign_type
-  := mk_foreign_data_typing
-       enhanced_foreign_data
-       enhanced_foreign_type
-       enhanced_has_type _ _ _
-       enhanced_infer_type _ _ _
-.
-
Next Obligation.
-
-  inversion H; subst;
-    simpl; trivial.
-  - destruct d; simpl; constructor.
-  - constructor.
-  - constructor.
-Defined.
-
Next Obligation.
-
-  inversion H0; subst; simpl.
-  - constructor.
-  - inversion H.
-  - trivial.
-Defined.
-
Next Obligation.
-
-  inversion H; inversion H0; subst; simpl; try constructor; congruence.
-Defined.
-
Next Obligation.
-
-  destruct d; simpl; eexists; reflexivity.
-Defined.
-
Next Obligation.
-
-  destruct d; simpl in H; invcs H; constructor.
-Defined.
-
Next Obligation.
-
-  destruct d; simpl in H, H0
-  ; invcs H; invcs H0; constructor.
-Defined.
-
-Definition dnnrc_for_log {br:brand_relation}
-  := (@dnnrc_base enhanced_foreign_runtime (type_annotation unit) dataframe).
-
-  Axiom OPTIMIZER_LOGGER_dnnrc_token_type : Set.
-  Extract Constant OPTIMIZER_LOGGER_dnnrc_token_type => "Util.dnrc_logger_token_type".
-
-  Axiom OPTIMIZER_LOGGER_dnnrc_startPass :
-    forall {br:brand_relation}, String.string -> dnnrc_for_log -> OPTIMIZER_LOGGER_dnnrc_token_type.
-
-  Extract Inlined Constant OPTIMIZER_LOGGER_dnnrc_startPass =>
-  "(fun br name input -> Logger.dnrc_log_startPass (Util.string_of_char_list name) input)".
-
-  Axiom OPTIMIZER_LOGGER_dnnrc_step :
-    forall {br:brand_relation},
-    OPTIMIZER_LOGGER_dnnrc_token_type -> String.string ->
-    dnnrc_for_log -> dnnrc_for_log ->
-    OPTIMIZER_LOGGER_dnnrc_token_type.
-  
-  Extract Inlined Constant OPTIMIZER_LOGGER_dnnrc_step =>
-  "(fun br token name input output -> Logger.dnrc_log_step token (Util.string_of_char_list name) input output)".
-
-  Axiom OPTIMIZER_LOGGER_dnnrc_endPass :
-    forall {br:brand_relation}, OPTIMIZER_LOGGER_dnnrc_token_type -> dnnrc_for_log -> OPTIMIZER_LOGGER_dnnrc_token_type.
-  
-  Extract Inlined Constant OPTIMIZER_LOGGER_dnnrc_endPass =>
-  "(fun br token output -> Logger.dnrc_log_endPass token output)".
-
-  Instance foreign_dnnrc_optimizer_logger {br:brand_relation} :
-    optimizer_logger string dnnrc_for_log
-    :=
-      {
-        optimizer_logger_token_type := OPTIMIZER_LOGGER_dnnrc_token_type
-        ; logStartPass := OPTIMIZER_LOGGER_dnnrc_startPass
-        ; logStep := OPTIMIZER_LOGGER_dnnrc_step
-        ; logEndPass := OPTIMIZER_LOGGER_dnnrc_endPass
-      } .
-
-Module EnhancedRuntime <: CompilerRuntime.
-  Definition compiler_foreign_type : foreign_type
-    := enhanced_foreign_type.
-  Definition compiler_foreign_runtime : foreign_runtime
-    := enhanced_foreign_runtime.
-  Definition compiler_foreign_to_java : foreign_to_java
-    := enhanced_foreign_to_java.
-  Definition compiler_foreign_to_javascript : foreign_to_javascript
-    := enhanced_foreign_to_javascript.
-  Definition compiler_foreign_to_ajavascript : foreign_to_ajavascript
-    := enhanced_foreign_to_ajavascript.
-  Definition compiler_foreign_to_scala : foreign_to_scala
-    := enhanced_foreign_to_scala.
-  Definition compiler_foreign_to_JSON : foreign_to_JSON
-    := enhanced_foreign_to_JSON.
-  Definition compiler_foreign_type_to_JSON : foreign_type_to_JSON
-    := enhanced_foreign_type_to_JSON.
-  Definition compiler_foreign_reduce_op : foreign_reduce_op
-    := enhanced_foreign_reduce_op.
-  Definition compiler_foreign_to_reduce_op : foreign_to_reduce_op
-    := enhanced_foreign_to_reduce_op.
-  Definition compiler_foreign_to_spark : foreign_to_spark
-    := enhanced_foreign_to_spark.
-  Definition compiler_foreign_cloudant : foreign_cloudant
-    := enhanced_foreign_cloudant.
-  Definition compiler_foreign_to_cloudant : foreign_to_cloudant
-    := enhanced_foreign_to_cloudant.
-  Definition compiler_nraenv_optimizer_logger : optimizer_logger string nraenv
-    := foreign_nraenv_optimizer_logger.
-  Definition compiler_nnrc_optimizer_logger : optimizer_logger string nnrc
-    := foreign_nnrc_optimizer_logger.
-  Definition compiler_nnrs_imp_expr_optimizer_logger : optimizer_logger string nnrs_imp_expr
-    := foreign_nnrs_imp_expr_optimizer_logger.
-  Definition compiler_nnrs_imp_stmt_optimizer_logger : optimizer_logger string nnrs_imp_stmt
-    := foreign_nnrs_imp_stmt_optimizer_logger.
-  Definition compiler_nnrs_imp_optimizer_logger : optimizer_logger string nnrs_imp
-    := foreign_nnrs_imp_optimizer_logger.
-  Definition compiler_dnnrc_optimizer_logger {br:brand_relation}: optimizer_logger string (@dnnrc_base _ (type_annotation unit) dataframe)
-    := foreign_dnnrc_optimizer_logger.
-  Definition compiler_foreign_data_typing : foreign_data_typing
-    := enhanced_foreign_data_typing.
-End EnhancedRuntime.
-
-Definition DateTime {br:brand_relation} : rtype := Foreign enhancedDateTime.
-Definition DateTimeInterval {br:brand_relation} : rtype := Foreign enhancedDateTimeInterval.
-
-Definition isDateTime {model : brand_model} (τ:rtype) :=
-  match proj1_sig τ with
-  | ForeignenhancedDateTime => true
-  | _ => false
-  end.
-
-Definition isDateTimeInterval {model : brand_model} (τ:rtype) :=
-  match proj1_sig τ with
-  | ForeignenhancedDateTimeInterval => true
-  | _ => false
-  end.
-
-Definition isNat {model : brand_model} (τ:rtype) :=
-  match proj1_sig τ with
-  | Nat₀ => true
-  | _ => false
-  end.
-
-Definition isString {model : brand_model} (τ:rtype) :=
-  match proj1_sig τ with
-  | String₀ => true
-  | _ => false
-  end.
-
-  Definition tuncoll {model:brand_model} (τ:rtype) : option rtype.
-
Proof.
-
-    destruct τ.
-    destruct x.
-    - exact None.
-    - exact None.
-    - exact None.
-    - exact None.
-    - exact None.
-    - exact None.
-    - exact None.
-    - exact (Some (exist (fun τ₀ : rtype₀ => wf_rtype₀ τ₀ = true) x e)).
-    - exact None.
-    - exact None.
-    - exact None.
-    - exact None.
-    - exact None.
-  Defined.
-
-Inductive date_time_unary_op_has_type {model:brand_model} :
-  date_time_unary_op -> rtype -> rtype -> Prop
-  :=
-  | tuop_date_time_component part : date_time_unary_op_has_type (uop_date_time_component part) DateTime Nat
-  | tuop_date_time_from_string : date_time_unary_op_has_type uop_date_time_from_string RType.String DateTime
-  | tuop_date_time_duration_from_string : date_time_unary_op_has_type uop_date_time_duration_from_string RType.String DateTimeInterval
-.
-
-Definition date_time_unary_op_type_infer {model : brand_model} (op:date_time_unary_op) (τ₁:rtype) : option rtype :=
-  match op with
-  | uop_date_time_component part =>
-    if isDateTime τ₁ then Some Nat else None
-  | uop_date_time_from_string =>
-    if isString τ₁ then Some DateTime else None
-  | uop_date_time_duration_from_string =>
-    if isString τ₁ then Some DateTimeInterval else None
-  end.
-
-Definition date_time_unary_op_type_infer_sub {model : brand_model} (op:date_time_unary_op) (τ₁:rtype) : option (rtype*rtype) :=
-  match op with
-  | uop_date_time_component part =>
-    enforce_unary_op_schema (τ₁,DateTime) Nat
-  | uop_date_time_from_string =>
-    enforce_unary_op_schema (τ₁,RType.String) DateTime
-  | uop_date_time_duration_from_string =>
-    enforce_unary_op_schema (τ₁,RType.String) DateTimeInterval
-  end.
-
-Lemma date_time_unary_op_typing_sound {model : brand_model}
-      (fu : date_time_unary_op) (τin τout : rtype) :
-  date_time_unary_op_has_type fu τin τout ->
-  forall din : data,
-    din ▹ τin ->
-    exists dout : data,
-      date_time_unary_op_interp fu din = Some dout /\ dout ▹ τout.
-
Proof.
-
-  inversion 1; subst;
-    try solve[inversion 1; subst;
-      try invcs H0;
-      try invcs H3;
-      simpl; unfold denhanceddateTime, denhanceddateTimeinterval; simpl;
-      eexists; split; try reflexivity;
-      repeat constructor].
-Qed.
-
-  Inductive enhanced_unary_op_has_type {model:brand_model} : enhanced_unary_op -> rtype -> rtype -> Prop
-    :=
-    | tenhanced_unary_date_time_op fu τin τout:
-        date_time_unary_op_has_type fu τin τout ->
-        enhanced_unary_op_has_type (enhanced_unary_date_time_op fu) τin τout.
-
-  Definition enhanced_unary_op_typing_infer {model:brand_model} (fu:enhanced_unary_op) (τ:rtype) : option rtype :=
-    match fu with
-    | enhanced_unary_date_time_op op => date_time_unary_op_type_infer op τ
-    end.
-
-  Lemma enhanced_unary_op_typing_infer_correct
-        {model:brand_model}
-        (fu:foreign_unary_op_type)
-        {τ₁ τout} :
-    enhanced_unary_op_typing_infer fu τ₁ = Some τout ->
-    enhanced_unary_op_has_type fu τ₁ τout.
-
Proof.
-
-    intros.
-    destruct fu; simpl.
-    - destruct d; simpl in *.
-      + destruct τ₁; simpl in *; try congruence;
-        destruct x; simpl in *; try congruence;
-        destruct ft; simpl in *; try congruence;
-        inversion H; subst; clear H; constructor;
-        rewrite Foreign_canon; constructor.
-      + destruct τ₁; simpl in *; try congruence;
-        destruct x; simpl in *; try congruence;
-        inversion H; subst; clear H; constructor;
-        rewrite String_canon; constructor.
-      + destruct τ₁; simpl in *; try congruence;
-        destruct x; simpl in *; try congruence.
-        inversion H; subst; clear H; constructor.
-        rewrite String_canon; constructor.
-  Qed.
-
-  Lemma enhanced_unary_op_typing_infer_least
-        {model:brand_model}
-        (fu:foreign_unary_op_type)
-        {τ₁ τout₁ τout₂} :
-    enhanced_unary_op_typing_infer fu τ₁ = Some τout₁ ->
-    enhanced_unary_op_has_type fu τ₁ τout₂ ->
-    τout₁ ≤ τout₂.
-
Proof.
-
-    intros.
-    destruct fu; simpl in *.
-    - destruct d; simpl in *;
-      destruct τ₁; simpl in *; try congruence;
-      destruct x; simpl in *; try congruence.
-      + destruct ft; simpl in *; try congruence;
-        inversion H; subst; clear H;
-        rewrite Foreign_canon in H0;
-        inversion H0; subst; clear H0;
-        inversion H1; subst; clear H1;
-        reflexivity.
-      + inversion H; subst; clear H;
-        rewrite String_canon in H0;
-        inversion H0; subst; clear H0;
-        inversion H1; subst; clear H1;
-        reflexivity.
-      + inversion H; subst; clear H;
-        rewrite String_canon in H0;
-        inversion H0; subst; clear H0;
-        inversion H1; subst; clear H1;
-        reflexivity.
-  Qed.
-
-  Lemma enhanced_unary_op_typing_infer_complete
-        {model:brand_model}
-        (fu:foreign_unary_op_type)
-        {τ₁ τout} :
-    enhanced_unary_op_typing_infer fu τ₁ = None ->
-    ~ enhanced_unary_op_has_type fu τ₁ τout.
-
Proof.
-
-    intros.
-    destruct fu; simpl in *.
-    - destruct d; simpl in *;
-      destruct τ₁; simpl in *; try congruence;
-      destruct x; simpl in *; try congruence;
-      unfold not; intros;
-      inversion H0; subst; clear H0;
-      inversion H2; subst; clear H2.
-      + simpl in H; congruence.
-  Qed.
-
-  Definition enhanced_unary_op_typing_infer_sub {model:brand_model} (fu:enhanced_unary_op) (τ:rtype) : option (rtype*rtype) :=
-    match fu with
-    | enhanced_unary_date_time_op op => date_time_unary_op_type_infer_sub op τ
-    end.
-    
-Lemma enhanced_unary_op_typing_sound {model : brand_model}
-      (fu : foreign_unary_op_type) (τin τout : rtype) :
-  enhanced_unary_op_has_type fu τin τout ->
-  forall din : data,
-    din ▹ τin ->
-    exists dout : data,
-      enhanced_unary_op_interp brand_relation_brands fu din = Some dout /\ dout ▹ τout.
-
Proof.
-
-  intros.
-  destruct H.
-  - eapply date_time_unary_op_typing_sound; eauto.
-Qed.
-
-Instance enhanced_foreign_unary_op_typing
-        {model:brand_model} :
-  @foreign_unary_op_typing
-    enhanced_foreign_data
-    enhanced_foreign_unary_op
-    enhanced_foreign_type
-    enhanced_foreign_data_typing
-    model
-  := { foreign_unary_op_typing_has_type := enhanced_unary_op_has_type
-       ; foreign_unary_op_typing_sound := enhanced_unary_op_typing_sound
-       ; foreign_unary_op_typing_infer := enhanced_unary_op_typing_infer
-       ; foreign_unary_op_typing_infer_correct := enhanced_unary_op_typing_infer_correct
-       ; foreign_unary_op_typing_infer_least := enhanced_unary_op_typing_infer_least
-       ; foreign_unary_op_typing_infer_complete := enhanced_unary_op_typing_infer_complete
-       ; foreign_unary_op_typing_infer_sub := enhanced_unary_op_typing_infer_sub
-     }.
-
-Inductive date_time_binary_op_has_type {model:brand_model} :
-  date_time_binary_op -> rtype -> rtype -> rtype -> Prop
-  :=
-  | tbop_date_time_plus :
-      date_time_binary_op_has_type bop_date_time_plus DateTime DateTimeInterval DateTime
-  | tbop_date_time_minus :
-      date_time_binary_op_has_type bop_date_time_minus DateTime DateTimeInterval DateTime
-  | tbop_date_time_ne :
-      date_time_binary_op_has_type bop_date_time_ne DateTime DateTime Bool
-  | tbop_date_time_lt :
-      date_time_binary_op_has_type bop_date_time_lt DateTime DateTime Bool
-  | tbop_date_time_le :
-      date_time_binary_op_has_type bop_date_time_le DateTime DateTime Bool
-  | tbop_date_time_gt :
-      date_time_binary_op_has_type bop_date_time_gt DateTime DateTime Bool
-  | tbop_date_time_ge :
-      date_time_binary_op_has_type bop_date_time_ge DateTime DateTime Bool
-  | tbop_date_time_duration :
-      date_time_binary_op_has_type bop_date_time_duration DateTime DateTime DateTimeInterval
-  | tbop_date_time_duration_days :
-      date_time_binary_op_has_type bop_date_time_duration_days DateTime DateTime Float
-  | tbop_date_time_duration_seconds :
-      date_time_binary_op_has_type bop_date_time_duration_seconds DateTime DateTime Float
-.
-
-Definition date_time_binary_op_type_infer {model : brand_model} (op:date_time_binary_op) (τ₁ τ₂:rtype) :=
-  match op with
-  | bop_date_time_plus =>
-    if isDateTime τ₁ && isDateTimeInterval τ₂ then Some DateTime else None
-  | bop_date_time_minus =>
-    if isDateTime τ₁ && isDateTimeInterval τ₂ then Some DateTime else None
-  | bop_date_time_ne =>
-    if isDateTime τ₁ && isDateTime τ₂ then Some Bool else None
-  | bop_date_time_lt =>
-    if isDateTime τ₁ && isDateTime τ₂ then Some Bool else None
-  | bop_date_time_le =>
-    if isDateTime τ₁ && isDateTime τ₂ then Some Bool else None
-  | bop_date_time_gt =>
-    if isDateTime τ₁ && isDateTime τ₂ then Some Bool else None
-  | bop_date_time_ge =>
-    if isDateTime τ₁ && isDateTime τ₂ then Some Bool else None
-  | bop_date_time_duration =>
-    if isDateTime τ₁ && isDateTime τ₂ then Some DateTimeInterval else None
-  | bop_date_time_duration_days =>
-    if isDateTime τ₁ && isDateTime τ₂ then Some Float else None
-  | bop_date_time_duration_seconds =>
-    if isDateTime τ₁ && isDateTime τ₂ then Some Float else None
-  end.
-
-Lemma date_time_binary_op_typing_sound {model : brand_model}
-      (fb : date_time_binary_op) (τin₁ τin₂ τout : rtype) :
-  date_time_binary_op_has_type fb τin₁ τin₂ τout ->
-  forall dindin₂ : data,
-    din₁ ▹ τin₁ ->
-    din₂ ▹ τin₂ ->
-    exists dout : data,
-      date_time_binary_op_interp fb dindin₂ = Some dout /\ dout ▹ τout.
-
Proof.
-
-    inversion 1; subst;
-      inversion 1; subst;
-        inversion 1; subst;
-      try invcs H0;
-      try invcs H1;
-      invcs H3;
-      try invcs H4;
-      simpl;
-        eexists; split; try reflexivity;
-          repeat constructor.
-Qed.
-         
-Definition date_time_binary_op_type_infer_sub {model : brand_model} (op:date_time_binary_op) (τ₁ τ₂:rtype) : option (rtype*rtype*rtype) :=
-  match op with
-  | bop_date_time_plus =>
-    enforce_binary_op_schema (τ₁,DateTime) (τ₂,DateTimeInterval) DateTime
-  | bop_date_time_minus =>
-    enforce_binary_op_schema (τ₁,DateTime) (τ₂,DateTimeInterval) DateTime
-  | bop_date_time_ne
-  | bop_date_time_lt
-  | bop_date_time_le
-  | bop_date_time_gt
-  | bop_date_time_ge =>
-    enforce_binary_op_schema (τ₁,DateTime) (τ₂,DateTime) Bool
-  | bop_date_time_duration =>
-    enforce_binary_op_schema (τ₁,DateTime) (τ₂,DateTime) DateTimeInterval
-  | bop_date_time_duration_days =>
-    enforce_binary_op_schema (τ₁,DateTime) (τ₂,DateTime) Float
-  | bop_date_time_duration_seconds =>
-    enforce_binary_op_schema (τ₁,DateTime) (τ₂,DateTime) Float
-  end.
-
-Inductive enhanced_binary_op_has_type {model:brand_model} :
-  enhanced_binary_op -> rtype -> rtype -> rtype -> Prop
-    :=
-    | tenhanced_binary_date_time_op fb τin₁ τin₂ τout:
-        date_time_binary_op_has_type fb τin₁ τin₂ τout ->
-        enhanced_binary_op_has_type (enhanced_binary_date_time_op fb) τin₁ τin₂ τout.
-
-Definition enhanced_binary_op_typing_infer {model:brand_model} (op:enhanced_binary_op) (τ₁ τ₂:rtype) :=
-  match op with
-  | enhanced_binary_date_time_op fb => date_time_binary_op_type_infer fb τ₁ τ₂
-  end.
-
-Lemma enhanced_binary_op_typing_infer_correct
-      {model:brand_model}
-      (fb:foreign_binary_op_type)
-      {τ₁ τ₂ τout} :
-  enhanced_binary_op_typing_infer fb τ₁ τ₂ = Some τout ->
-  enhanced_binary_op_has_type fb τ₁ τ₂ τout.
-
Proof.
-
-  intros.
-  destruct fb; simpl.
-  - destruct d; simpl in *;
-    destruct τ₁; destruct τ₂; simpl in *; try discriminate;
-         unfold isDateTime, isDateTimeInterval, isNat in *
-         ; destruct x; simpl in H; try discriminate
-    ; destruct ft; simpl in H; try discriminate
-    ; destruct x0; simpl in H; try discriminate
-    ; try (destruct ft; simpl in H; try discriminate)
-    ; invcs H
-    ; constructor
-    ; repeat rewrite Nat_canon
-    ; repeat rewrite Foreign_canon
-    ; try constructor.
-Qed.
-
-Lemma enhanced_binary_op_typing_infer_least
-      {model:brand_model}
-      (fb:foreign_binary_op_type)
-      {τ₁ τ₂ τout₁ τout₂} :
-  enhanced_binary_op_typing_infer fb τ₁ τ₂ = Some τout₁ ->
-  enhanced_binary_op_has_type fb τ₁ τ₂ τout₂ ->
-  τout₁ ≤ τout₂.
-
Proof.
-
-  intros.
-  destruct fb; simpl.
-  - destruct d; simpl in *;
-      destruct τ₁; destruct τ₂; simpl in *; try discriminate
-    ; unfold isDateTime, isDateTimeInterval, isNat in *
-    ; destruct x; simpl in H; try discriminate
-    ; destruct ft; simpl in H; try discriminate
-    ; destruct x0; simpl in H; try discriminate
-    ; try (destruct ft; simpl in H; try discriminate)
-    ; invcs H
-    ; repeat rewrite Foreign_canon in H0
-    ; invcs H0
-    ; invcs H1
-    ; reflexivity.
-Qed.
-
-Lemma enhanced_binary_op_typing_infer_complete
-      {model:brand_model}
-      (fb:foreign_binary_op_type)
-      {τ₁ τ₂ τout} :
-  enhanced_binary_op_typing_infer fb τ₁ τ₂ = None ->
-  ~ enhanced_binary_op_has_type fb τ₁ τ₂ τout.
-
Proof.
-
-  destruct fb; simpl; intros.
-  - intro HH; invcs HH.
-    destruct d; simpl in *; invcs H1; simpl in H; try discriminate.
-Qed.
-
-Definition enhanced_binary_op_typing_infer_sub {model:brand_model} (op:enhanced_binary_op) (τ₁ τ₂:rtype) :=
-  match op with
-  | enhanced_binary_date_time_op fb => date_time_binary_op_type_infer_sub fb τ₁ τ₂
-  end.
-
-Lemma enhanced_binary_op_typing_sound {model : brand_model}
-      (fu : foreign_binary_op_type) (τin₁ τin₂ τout : rtype) :
-  enhanced_binary_op_has_type fu τin₁ τin₂ τout ->
-  forall dindin₂ : data,
-    din₁ ▹ τin₁ ->
-    din₂ ▹ τin₂ ->
-    exists dout : data,
-      enhanced_binary_op_interp brand_relation_brands fu dindin₂ = Some dout /\ dout ▹ τout.
-
Proof.
-
-  intros.
-  destruct H.
-  - eapply date_time_binary_op_typing_sound; eauto.
-Qed.
-
-Program Instance enhanced_foreign_binary_op_typing
-        {model:brand_model} :
-  @foreign_binary_op_typing
-    enhanced_foreign_data
-    enhanced_foreign_binary_op
-    enhanced_foreign_type
-    enhanced_foreign_data_typing
-    model
-  := { foreign_binary_op_typing_has_type := enhanced_binary_op_has_type
-       ; foreign_binary_op_typing_sound := enhanced_binary_op_typing_sound
-       ; foreign_binary_op_typing_infer := enhanced_binary_op_typing_infer
-       ; foreign_binary_op_typing_infer_correct := enhanced_binary_op_typing_infer_correct
-       ; foreign_binary_op_typing_infer_least := enhanced_binary_op_typing_infer_least
-       ; foreign_binary_op_typing_infer_complete := enhanced_binary_op_typing_infer_complete
-       ; foreign_binary_op_typing_infer_sub := enhanced_binary_op_typing_infer_sub
-     }.
-
-Instance enhanced_foreign_typing {model:brand_model}:
-  @foreign_typing
-    enhanced_foreign_runtime
-    enhanced_foreign_type
-    model
-  := mk_foreign_typing
-       enhanced_foreign_runtime
-       enhanced_foreign_type
-       model
-       enhanced_foreign_data_typing
-       enhanced_foreign_unary_op_typing
-       enhanced_foreign_binary_op_typing.
-
-Instance enhanced_basic_model {model:brand_model} :
-  basic_model
-  := mk_basic_model
-       enhanced_foreign_runtime
-       enhanced_foreign_type
-       model
-       enhanced_foreign_typing.
-
-
-Module EnhancedForeignType <: CompilerForeignType.
-  Definition compiler_foreign_type : foreign_type
-    := enhanced_foreign_type.
-End EnhancedForeignType.
-
-Require Import ZArith.
-Module EnhancedModel(bm:CompilerBrandModel(EnhancedForeignType)) <: CompilerModel.
-  Definition compiler_foreign_type : foreign_type
-    := enhanced_foreign_type.
-  Definition compiler_basic_model : @basic_model
-    := @enhanced_basic_model bm.compiler_brand_model.
-  Definition compiler_model_foreign_to_java : foreign_to_java
-    := enhanced_foreign_to_java.
-  Definition compiler_model_foreign_to_javascript : foreign_to_javascript
-    := enhanced_foreign_to_javascript.
-  Definition compiler_model_foreign_to_ajavascript : foreign_to_ajavascript
-    := enhanced_foreign_to_ajavascript.
-  Definition compiler_model_foreign_to_scala : foreign_to_scala
-    := enhanced_foreign_to_scala.
-  Definition compiler_model_foreign_to_JSON : foreign_to_JSON
-    := enhanced_foreign_to_JSON.
-  Definition compiler_model_foreign_type_to_JSON : foreign_type_to_JSON
-    := enhanced_foreign_type_to_JSON.
-  Definition compiler_model_foreign_reduce_op : foreign_reduce_op
-    := enhanced_foreign_reduce_op.
-  Definition compiler_model_foreign_to_reduce_op : foreign_to_reduce_op
-    := enhanced_foreign_to_reduce_op.
-  Definition compiler_model_foreign_to_spark : foreign_to_spark
-    := enhanced_foreign_to_spark.
-  Definition compiler_model_foreign_cloudant : foreign_cloudant
-    := enhanced_foreign_cloudant.
-  Definition compiler_model_foreign_to_cloudant : foreign_to_cloudant
-    := enhanced_foreign_to_cloudant.
-  Definition compiler_model_nraenv_optimizer_logger : optimizer_logger string nraenv
-    := foreign_nraenv_optimizer_logger.
-  Definition compiler_model_nnrc_optimizer_logger : optimizer_logger string nnrc
-    := foreign_nnrc_optimizer_logger.
-  Definition compiler_model_nnrs_imp_expr_optimizer_logger : optimizer_logger string nnrs_imp_expr
-    := foreign_nnrs_imp_expr_optimizer_logger.
-  Definition compiler_model_nnrs_imp_stmt_optimizer_logger : optimizer_logger string nnrs_imp_stmt
-    := foreign_nnrs_imp_stmt_optimizer_logger.
-  Definition compiler_model_nnrs_imp_optimizer_logger : optimizer_logger string nnrs_imp
-    := foreign_nnrs_imp_optimizer_logger.
-  Definition compiler_model_dnnrc_optimizer_logger {br:brand_relation}: optimizer_logger string (@dnnrc_base _ (type_annotation unit) dataframe)
-    := foreign_dnnrc_optimizer_logger.
-  Definition compiler_model_foreign_data_typing : foreign_data_typing
-    := enhanced_foreign_data_typing.
-End EnhancedModel.
-
-Module CompEnhanced.
-  Module Enhanced.
-  Module Model.
-    Definition basic_model (bm:brand_model) : basic_model
-      := @enhanced_basic_model bm.
-
-    Definition foreign_type : foreign_type
-      := enhanced_foreign_type.
-
-    Definition foreign_typing (bm:brand_model) : foreign_typing
-      := @enhanced_foreign_typing bm.
-
-  End Model.
-
-    Module Data.
-      Definition dstringblob (s : STRING) : data
-        := dforeign (enhancedstring s).
-      Definition jstringblob (s : STRING) : json
-        := jstring (jenhancedstring s).
-
-      
-      Definition date_time_part := date_time_component.
-      Definition date_time_day : date_time_part := date_time_DAY.
-      Definition date_time_month : date_time_part := date_time_MONTH.
-      Definition date_time_quarter : date_time_part := date_time_QUARTER.
-      Definition date_time_year : date_time_part := date_time_YEAR.
-
-      Definition ddate_time (d:DATE_TIME) : data
-        := dforeign (enhanceddateTime d).
-
-      Definition ddate_time_duration (d:DATE_TIME_DURATION) : data
-        := dforeign (enhanceddateTimeinterval d).
-
-    End Data.
-
-    Module Ops.
-      Module Unary.
-        Definition date_time_component (component:date_time_component)
-          := OpForeignUnary (enhanced_unary_date_time_op (uop_date_time_component component)).
-        Definition date_time_from_string
-          := OpForeignUnary (enhanced_unary_date_time_op uop_date_time_from_string).
-        Definition date_time_duration_from_string
-          := OpForeignUnary (enhanced_unary_date_time_op uop_date_time_duration_from_string).
-
-        Definition OpDateTimeComponent := date_time_component.
-        Definition OpDateTimeFromString := date_time_from_string.
-        Definition OpDateTimeIntervalFromString := date_time_duration_from_string.
-        
-      End Unary.
-      
-      Module Binary.
-        Definition date_time_plus
-          := OpForeignBinary (enhanced_binary_date_time_op bop_date_time_plus).
-        Definition date_time_minus
-          := OpForeignBinary (enhanced_binary_date_time_op bop_date_time_minus).
-        Definition date_time_ne
-          := OpForeignBinary (enhanced_binary_date_time_op bop_date_time_ne).
-        Definition date_time_lt
-          := OpForeignBinary (enhanced_binary_date_time_op bop_date_time_lt).
-        Definition date_time_le
-          := OpForeignBinary (enhanced_binary_date_time_op bop_date_time_le).
-        Definition date_time_gt
-          := OpForeignBinary (enhanced_binary_date_time_op bop_date_time_gt).
-        Definition date_time_ge
-          := OpForeignBinary (enhanced_binary_date_time_op bop_date_time_ge).
-
-        Definition date_time_duration_days
-          := OpForeignBinary (enhanced_binary_date_time_op (bop_date_time_duration_days)).
-        Definition date_time_duration_seconds
-          := OpForeignBinary (enhanced_binary_date_time_op (bop_date_time_duration_seconds)).
-        
-        Definition OpDateTimePlus := date_time_plus.
-        Definition OpDateTimeMinus := date_time_minus.
-        Definition OpDateTimeNe := date_time_ne.
-        Definition OpDateTimeLt := date_time_lt.
-        Definition OpDateTimeLe := date_time_le.
-        Definition OpDateTimeGt := date_time_gt.
-        Definition OpDateTimeGe := date_time_ge.
-
-        Definition OpDateTimeIntervalDays := date_time_duration_days.
-        Definition OpDateTimeIntervalSeconds := date_time_duration_seconds.
-
-      End Binary.
-    End Ops.
-  End Enhanced.
-End CompEnhanced.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.jsx b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.jsx new file mode 100644 index 00000000..982340cd --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Backend.Model.ErgoEnhancedModel.jsx @@ -0,0 +1,16533 @@ +
+ + Module ErgoSpec.Backend.Model.ErgoEnhancedModel + + +

Module ErgoSpec.Backend.Model.ErgoEnhancedModel

+
+
+ + Require + Import{" "} + +
List + + .
+ + Require + Import{" "} + + + EquivDec + + + .
+ + Require + Import{" "} + + + Qcert.Utils.Utils + + + .
+ + Require + Import{" "} + + + Qcert.Common.CommonSystem + + + .
+ + Require + Import{" "} + + + Qcert.Translation.ForeignToJava + + + .
+ + Require + Import{" "} + + + Qcert.Translation.ForeignToJavaScript + + + .
+ + Require + Import{" "} + + + Qcert.Translation.ForeignToJavaScriptAst + + + .
+ + Require + Import{" "} + + + Qcert.Translation.ForeignToScala + + + .
+ + Require + Import{" "} + + + Qcert.Common.DataModel.ForeignDataToJSON + + + .
+ + Require + Import{" "} + + + Qcert.Common.TypeSystem.ForeignTypeToJSON + + + .
+ + Require + Import{" "} + + + Qcert.Translation.ForeignToSpark + + + .
+ + Require + Import{" "} + + + Qcert.NNRCMR.Lang.ForeignReduceOps + + + .
+ + Require + Import{" "} + + + Qcert.Translation.ForeignToReduceOps + + + .
+ + Require + Import{" "} + + + Qcert.CldMR.Lang.ForeignCloudant + + + .
+ + Require + Import{" "} + + + Qcert.Translation.ForeignToCloudant + + + .
+ + Require + Import{" "} + + + Qcert.Compiler.Model.CompilerRuntime + + + .
+ + Require + Import{" "} + + + Qcert.Compiler.Model.CompilerModel + + + .
+ + Require + Import{" "} + + + Qcert.Compiler.Model.StringModelPart + + + .
+ Require{" "} + + + Qcert.NNRCMR.Lang.NNRCMR + + + .
+ Require{" "} + + + Qcert.CldMR.Lang.CldMR + + + .
+ + Require + Import{" "} + + + Qcert.Utils.OptimizerLogger + + + .
+ + Require + Import{" "} + + String + + .
+ + Require + Import{" "} + + + Qcert.cNRAEnv.Lang.cNRAEnv + + + .
+ + Require + Import{" "} + + + Qcert.NRAEnv.Lang.NRAEnv + + + .
+ + Require + Import{" "} + + + Qcert.cNNRC.Lang.cNNRC + + + .
+ + Require + Import{" "} + + + Qcert.NNRSimp.Lang.NNRSimp + + + .
+ + Require + Import{" "} + + + Qcert.DNNRC.Lang.DNNRCBase + + + .
+ + Require + Import{" "} + + + Qcert.tDNNRC.Lang.tDNNRC + + + .
+ + Require + Import{" "} + + + Qcert.DNNRC.Lang.Dataframe + + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.DateTimeModelPart + + + .
+
+ Import{" "} + ListNotations.
+
+ Local Open{" "} + Scope list_scope. +
+
+ Definition{" "} + + check_subtype_pairs + +
+            {"{"} + br: + + + brand_relation + + + {"}"} +
+            {"{"} + fr: + + + foreign_type + + + {"}"} +
+            ( + l: + + + list + + {" "} + ( + + + rtype + + + * + + + rtype + + + )) :{" "} + + + bool + + +
+   :={" "} + + + forallb + + {" "} + (fun τs =>{" "} + if{" "} + + + subtype_dec + + {" "} + ( + + fst + {" "} + τs) ( + + snd + {" "} + τs) then{" "} + + + true + + {" "} + else{" "} + + + false + + + ){" "} + + l + + .
+
+ Definition{" "} + + enforce_unary_op_schema + +
+            {"{"} + br: + + + brand_relation + + + {"}"} +
+            {"{"} + fr: + + + foreign_type + + + {"}"} +
+            ( + ts1: + + + rtype + + + * + + + rtype + + + ) (tr: + + + rtype + + + )
+   :{" "} + + + option + + {" "} + ( + + + rtype + + + * + + + rtype + + + )
+   := if{" "} + + + check_subtype_pairs + + {" "} + ( + + ts1 + + :: + + nil + + )
+     then{" "} + + + Some + + {" "} + ( + + tr + + , ( + + snd + {" "} + + ts1 + + )) +
+     else{" "} + + + None + + + .
+
+ Definition{" "} + + enforce_binary_op_schema + +
+            {"{"} + br: + + + brand_relation + + + {"}"} +
+            {"{"} + fr: + + + foreign_type + + + {"}"} +
+            ( + ts1: + + + rtype + + + * + + + rtype + + + ) (ts2: + + + rtype + + + * + + + rtype + + + ) (tr: + + + rtype + + + )
+   :{" "} + + + option + + {" "} + ( + + + rtype + + + * + + + rtype + + + * + + + rtype + + + )
+   := if{" "} + + + check_subtype_pairs + + {" "} + ( + + ts1 + + :: + + ts2 + + :: + + nil + + )
+     then{" "} + + + Some + + {" "} + ( + + tr + + , ( + + snd + {" "} + + ts1 + + ), ( + + snd + {" "} + + ts2 + + )) +
+     else{" "} + + + None + + + .
+
+ Inductive{" "} + + enhanced_data + {" "} + : Set +
+   := +
+   |{" "} + + enhancedstring + {" "} + :{" "} + + + STRING + + {" "} + ->{" "} + + + enhanced_data + + +
+   |{" "} + + enhanceddateTime + {" "} + :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + enhanced_data + + +
+   |{" "} + + enhanceddateTimeinterval + {" "} + :{" "} + + + DATE_TIME_DURATION + + {" "} + ->{" "} + + + enhanced_data + + +
+ .
+
+ Definition{" "} + + enhanceddateTime_now + {" "} + :={" "} + + + DATE_TIME_now + + + .
+
+ Inductive{" "} + + enhanced_type + {" "} + : Set +
+   := +
+   |{" "} + + enhancedTop + {" "} + :{" "} + + + enhanced_type + + +
+   |{" "} + + enhancedBottom + {" "} + :{" "} + + + enhanced_type + + +
+   |{" "} + + enhancedString + {" "} + :{" "} + + + enhanced_type + + +
+   |{" "} + + enhancedDateTime + {" "} + :{" "} + + + enhanced_type + + +
+   |{" "} + + enhancedDateTimeInterval + {" "} + :{" "} + + + enhanced_type + + +
+ .
+
+ Definition{" "} + + enhanced_type_to_string + {" "} + (et: + + + enhanced_type + + + ) :{" "} + + + string + + {" "} + := +
+   match{" "} + + et + {" "} + with +
+   |{" "} + + + enhancedTop + + {" "} + => "ETop"
+   |{" "} + + + enhancedBottom + + {" "} + => "EBottom"
+   |{" "} + + + enhancedString + + {" "} + => "EString"
+   |{" "} + + + enhancedDateTime + + {" "} + => "EDateTime"
+   |{" "} + + + enhancedDateTimeInterval + + {" "} + => "EDateTimeInterval"
+   end.
+
+ Definition{" "} + + string_to_enhanced_type + {" "} + (s: + + + string + + + ) :{" "} + + + option + + {" "} + + + enhanced_type + + {" "} + := +
+   match{" "} + + s + {" "} + with +
+   | "ETop"% + string =>{" "} + + + Some + + {" "} + + + enhancedTop + + +
+   | "EBottom"% + string =>{" "} + + + Some + + {" "} + + + enhancedBottom + + +
+   | "EString"% + string =>{" "} + + + Some + + {" "} + + + enhancedString + + +
+   | "EDateTime"% + string =>{" "} + + + Some + + {" "} + + + enhancedDateTime + + +
+   | "EDateTimeInterval"% + string =>{" "} + + + Some + + {" "} + + + enhancedDateTimeInterval + + +
+   | _ =>{" "} + + + None + + +
+   end.
+
+ + Require + Import{" "} + + + RelationClasses + + + .
+ + Require + Import{" "} + + + Equivalence + + + .
+
+ + Existing + Instance{" "} + date_time_foreign_data.
+ + Existing + Instance{" "} + date_time_duration_foreign_data.
+
+ + Program + Instance{" "} + + enhanced_foreign_data + {" "} + :{" "} + + + foreign_data + + +
+   :={" "} + + + mk_foreign_data + + {" "} + + + enhanced_data + + {" "} + _ _{" "} + _ _{" "} + _ _.
+
+ Next Obligation. +
+
+   red.
+   unfold{" "} + + + equiv + + + ,{" "} + + + complement + + + .
+   destruct{" "} + x; destruct{" "} + y; simpl;{" "} + try solve [ + right;{" "} + inversion 1]. +
+   - case_eq ( + + + STRING_eq + + {" "} + s s0). +
+     + left;{" "} + intros.
+        + f_equal.
+        + apply + {" "} + + + StringModelPart.STRING_eq_correct + + {" "} + in H.
+        + trivial.
+     + right;{" "} + intros.
+        + inversion H0. +
+        + apply + {" "} + + + StringModelPart.STRING_eq_correct + + {" "} + in H2.
+        + congruence.
+   - destruct (@ + + + equiv_dec + + {" "} + _ _{" "} + _ (@ + + + foreign_data_dec + + {" "} + + + date_time_foreign_data + + + ) d d0). +
+     + left;{" "} + congruence.
+     + right;{" "} + congruence.
+   - destruct (@ + + + equiv_dec + + {" "} + _ _{" "} + _ (@ + + + foreign_data_dec + + {" "} + + + date_time_duration_foreign_data + + + ) d d0). +
+     + left;{" "} + congruence.
+     + right;{" "} + congruence.
+ Defined. +
+
+ Next Obligation. +
+
+   (* normalized? *) +
+   destruct{" "} + a.
+   - exact{" "} + + True + + .
+   - exact (@ + + + foreign_data_normalized + + {" "} + + + date_time_foreign_data + + {" "} + d). +
+   - exact (@ + + + foreign_data_normalized + + {" "} + + + date_time_duration_foreign_data + + {" "} + d). +
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + a.
+   - simpl;{" "} + trivial.
+   - exact (@ + + + foreign_data_normalize_normalizes + + {" "} + + + date_time_foreign_data + + {" "} + d). +
+   - exact (@ + + + foreign_data_normalize_normalizes + + {" "} + + + date_time_duration_foreign_data + + {" "} + d). +
+ Defined. +
+
+ Next Obligation. +
+
+   constructor.
+   destruct 1. +
+   - exact ( + + + STRING_tostring + + {" "} + s). +
+   - exact (@ + + + toString + + {" "} + _ (@ + + + foreign_data_tostring + + {" "} + + + date_time_foreign_data + + + ) d). +
+   - exact (@ + + + toString + + {" "} + _ (@ + + + foreign_data_tostring + + {" "} + + + date_time_duration_foreign_data + + + ) d). +
+ Defined. +
+
+ Definition{" "} + + denhanceddateTime + {" "} + td :={" "} + + + dforeign + + {" "} + ( + + + enhanceddateTime + + {" "} + + td + + ). +
+ Definition{" "} + + denhanceddateTimeinterval + {" "} + td :={" "} + + + dforeign + + {" "} + ( + + + enhanceddateTimeinterval + + {" "} + + td + + ). +
+
+ + Require + Import{" "} + + + Qcert.Utils.JSON + + + .
+
+ Axiom{" "} + + JENHANCED_string + {" "} + :{" "} + + + STRING + + {" "} + ->{" "} + + + string + + + .
+ + Extract + Constant{" "} + JENHANCED_string => "( + fun s ->{" "} + Util.string_of_enhanced_string{" "} + s)". +
+
+ Definition{" "} + + jenhancedstring + {" "} + s :={" "} + + + JENHANCED_string + + {" "} + + s + + .
+
+ Inductive{" "} + + enhanced_unary_op + +
+   := +
+   |{" "} + + enhanced_unary_date_time_op + {" "} + :{" "} + + + date_time_unary_op + + {" "} + ->{" "} + + + enhanced_unary_op + + + .
+
+ Definition{" "} + + onddateTime + {" "} + {"{"} + A + {"}"} (f :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + A + + ) (d :{" "} + + + data + + + ) :{" "} + + + option + + {" "} + + A + +
+   := match{" "} + + d + {" "} + with +
+      |{" "} + + + dforeign + + {" "} + ( + + + enhanceddateTime + + {" "} + fd) =>{" "} + + + Some + + {" "} + ( + + f + {" "} + fd)
+      | _ =>{" "} + + + None + + +
+      end.
+
+ Definition{" "} + + ondstring + {" "} + {"{"} + A + {"}"} (f :{" "} + + + String.string + + {" "} + ->{" "} + + A + + ) (d :{" "} + + + data + + + ) :{" "} + + + option + + {" "} + + A + +
+   := match{" "} + + d + {" "} + with +
+      |{" "} + + + dstring + + {" "} + s =>{" "} + + + Some + + {" "} + ( + + f + {" "} + s)
+      | _ =>{" "} + + + None + + +
+      end.
+
+ Definition{" "} + + date_time_unary_op_interp + {" "} + (op: + + + date_time_unary_op + + + ) (d: + + + data + + + ) :{" "} + + + option + + {" "} + + + data + + +
+   := match{" "} + + op + {" "} + with +
+      |{" "} + + + uop_date_time_component + + {" "} + part => +
+         + + + lift + + {" "} + + + dnat + + {" "} + ( + + + onddateTime + + {" "} + ( + + + DATE_TIME_component + + {" "} + part){" "} + + d + + )
+      |{" "} + + + uop_date_time_from_string + + {" "} + => +
+         + + + lift + + {" "} + + + denhanceddateTime + + {" "} + ( + + + ondstring + + {" "} + + + DATE_TIME_from_string + + {" "} + + d + + )
+      |{" "} + + + uop_date_time_duration_from_string + + {" "} + => +
+         + + + lift + + {" "} + + + denhanceddateTimeinterval + + {" "} + ( + + + ondstring + + {" "} + + + DATE_TIME_DURATION_from_string + + {" "} + + d + + )
+      end.
+
+
+ Definition{" "} + + enhanced_unary_op_interp + +
+            ( + br: + + + brand_relation_t + + + )
+            ( + op: + + + enhanced_unary_op + + + )
+            ( + d: + + + data + + + ) :{" "} + + + option + + {" "} + + + data + + +
+   := match{" "} + + op + {" "} + with +
+      |{" "} + + + enhanced_unary_date_time_op + + {" "} + f =>{" "} + + + date_time_unary_op_interp + + {" "} + f{" "} + + d + +
+      end.
+
+ + Require + Import{" "} + + String + + .
+
+ + Program + Instance{" "} + + enhanced_foreign_unary_op + {" "} + :{" "} + + + foreign_unary_op + + +
+   := {"{"}{" "} + + + foreign_unary_op_type + + {" "} + :={" "} + + + enhanced_unary_op + + +
+        ;{" "} + + + foreign_unary_op_interp + + {" "} + :={" "} + + + enhanced_unary_op_interp + + {" "} + {"}"}.
+
+ Next Obligation. +
+
+   red;{" "} + unfold{" "} + + + equiv + + + ; intros.
+   change ({"{"} + x = y + {"}"} + {"{"} + x <> y + {"}"}). +
+   decide{" "} + equality.
+   - decide{" "} + equality.
+     decide{" "} + equality.
+ Defined. +
+
+ Next Obligation. +
+
+   constructor;{" "} + intros op. +
+   destruct{" "} + op.
+   - exact ( + + + date_time_unary_op_tostring + + {" "} + d). +
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + op; simpl{" "} + in H.
+   - destruct{" "} + d0; simpl{" "} + in H;
+        + unfold + {" "} + + + onddateTime + + + ,{" "} + + + denhanceddateTime + + + ,{" "} + + + denhanceddateTimeinterval + + + ,{" "} + + + lift + + {" "} + in H;{" "} + simpl in{" "} + H;
+          + destruct d;{" "} + simpl in{" "} + H; try{" "} + discriminate.
+     + destruct{" "} + f; invcs{" "} + H; repeat{" "} + constructor.
+     + invcs{" "} + H; repeat{" "} + constructor.
+     + invcs{" "} + H; repeat{" "} + constructor.
+ Qed. +
+
+ Inductive{" "} + + enhanced_binary_op + +
+   := +
+   |{" "} + + enhanced_binary_date_time_op + {" "} + :{" "} + + + date_time_binary_op + + {" "} + ->{" "} + + + enhanced_binary_op + + +
+ .
+
+ Definition{" "} + + onddateTime2 + {" "} + {"{"} + A + {"}"} (f :{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + A + + ) (d1 d2 :{" "} + + + data + + + ) :{" "} + + + option + + {" "} + + A + +
+   := match{" "} + + d1 + + ,{" "} + + d2 + {" "} + with +
+      |{" "} + + + dforeign + + {" "} + ( + + + enhanceddateTime + + {" "} + fd1),{" "} + + + dforeign + + {" "} + ( + + + enhanceddateTime + + {" "} + fd2) =>{" "} + + + Some + + {" "} + ( + + f + {" "} + fd1 fd2)
+      | _,{" "} + _ =>{" "} + + + None + + +
+      end.
+
+ Definition{" "} + + rondbooldateTime2 + {" "} + (f:{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + DATE_TIME + + {" "} + ->{" "} + + + bool + + + ) (d1 d2: + + + data + + + ) :{" "} + + + option + + {" "} + + + data + + +
+   :={" "} + + + lift + + {" "} + + + dbool + + {" "} + ( + + + onddateTime2 + + {" "} + + f + {" "} + + d1 + {" "} + + d2 + + ). +
+
+ Definition{" "} + + date_time_binary_op_interp + +
+            ( + op: + + + date_time_binary_op + + + ) (d1 d2: + + + data + + + ) :{" "} + + + option + + {" "} + + + data + + +
+   := match{" "} + + op + {" "} + with +
+      |{" "} + + + bop_date_time_plus + + +
+        =>{" "} + match{" "} + + d1 + + ,{" "} + + d2 + {" "} + with +
+        |{" "} + + + dforeign + + {" "} + ( + + + enhanceddateTime + + {" "} + tp),{" "} + + + dforeign + + {" "} + ( + + + enhanceddateTimeinterval + + {" "} + td)
+          =>{" "} + + + Some + + {" "} + ( + + + denhanceddateTime + + {" "} + ( + + + DATE_TIME_plus + + {" "} + tp td)) +
+        | _, + _ =>{" "} + + + None + + +
+        end +
+      |{" "} + + + bop_date_time_minus + + +
+        =>{" "} + match{" "} + + d1 + + ,{" "} + + d2 + {" "} + with +
+        |{" "} + + + dforeign + + {" "} + ( + + + enhanceddateTime + + {" "} + tp),{" "} + + + dforeign + + {" "} + ( + + + enhanceddateTimeinterval + + {" "} + td)
+          =>{" "} + + + Some + + {" "} + ( + + + denhanceddateTime + + {" "} + ( + + + DATE_TIME_minus + + {" "} + tp td)) +
+        | _, + _ =>{" "} + + + None + + +
+        end +
+      |{" "} + + + bop_date_time_ne + + {" "} + =>{" "} + + + rondbooldateTime2 + + {" "} + + + DATE_TIME_ne + + {" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_lt + + {" "} + =>{" "} + + + rondbooldateTime2 + + {" "} + + + DATE_TIME_lt + + {" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_le + + {" "} + =>{" "} + + + rondbooldateTime2 + + {" "} + + + DATE_TIME_le + + {" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_gt + + {" "} + =>{" "} + + + rondbooldateTime2 + + {" "} + + + DATE_TIME_gt + + {" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_ge + + {" "} + =>{" "} + + + rondbooldateTime2 + + {" "} + + + DATE_TIME_ge + + {" "} + + d1 + {" "} + + d2 + +
+      |{" "} + + + bop_date_time_duration + + {" "} + =>{" "} + + + lift + + {" "} + + + denhanceddateTimeinterval + + {" "} + ( + + + onddateTime2 + + {" "} + + + DATE_TIME_DURATION_duration + + {" "} + + d1 + {" "} + + d2 + + )
+      |{" "} + + + bop_date_time_duration_days + + {" "} + =>{" "} + + + lift + + {" "} + + + dfloat + + {" "} + ( + + + onddateTime2 + + {" "} + + + DATE_TIME_DURATION_days + + {" "} + + d1 + {" "} + + d2 + + )
+      |{" "} + + + bop_date_time_duration_seconds + + {" "} + =>{" "} + + + lift + + {" "} + + + dfloat + + {" "} + ( + + + onddateTime2 + + {" "} + + + DATE_TIME_DURATION_seconds + + {" "} + + d1 + {" "} + + d2 + + )
+      end.
+
+ Definition{" "} + + enhanced_binary_op_interp + +
+            ( + br: + + + brand_relation_t + + + )
+            ( + op: + + + enhanced_binary_op + + + )
+            ( + d1 d2: + + + data + + + ) :{" "} + + + option + + {" "} + + + data + + +
+   := match{" "} + + op + {" "} + with +
+      |{" "} + + + enhanced_binary_date_time_op + + {" "} + f =>{" "} + + + date_time_binary_op_interp + + {" "} + f{" "} + + d1 + {" "} + + d2 + +
+      end.
+
+ + Program + Instance{" "} + + enhanced_foreign_binary_op + {" "} + :{" "} + + + foreign_binary_op + + +
+   := {"{"}{" "} + + + foreign_binary_op_type + + {" "} + :={" "} + + + enhanced_binary_op + + +
+        ;{" "} + + + foreign_binary_op_interp + + {" "} + :={" "} + + + enhanced_binary_op_interp + + {" "} + {"}"}.
+
+ Next Obligation. +
+
+   red;{" "} + unfold{" "} + + + equiv + + + ; intros.
+   change ({"{"} + x = y + {"}"} + {"{"} + x <> y + {"}"}). +
+   decide{" "} + equality.
+   - decide{" "} + equality.
+ Defined. +
+
+ Next Obligation. +
+
+   constructor;{" "} + intros op. +
+   destruct{" "} + op.
+   - exact ( + + + date_time_binary_op_tostring + + {" "} + d). +
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + op; simpl{" "} + in H.
+   - destruct{" "} + d; simpl{" "} + in H;
+        + unfold + {" "} + + + rondbooldateTime2 + + + ,{" "} + + + onddateTime2 + + + ,{" "} + + + denhanceddateTime + + + ,{" "} + + + lift + + {" "} + in H +
+       ;{" "} + destruct d1;{" "} + simpl in{" "} + H; try{" "} + discriminate +
+       ;{" "} + destruct f;{" "} + simpl in{" "} + H; try{" "} + discriminate +
+       ;{" "} + destruct d2;{" "} + simpl in{" "} + H; try{" "} + discriminate +
+       ; + try + {" "} + (destruct f;{" "} + simpl in{" "} + H; try{" "} + discriminate)
+       ; + invcs + {" "} + H +
+       ;{" "} + repeat{" "} + constructor.
+ Qed. +
+
+ Instance{" "} + + enhanced_foreign_runtime + {" "} + :
+    + + + foreign_runtime + + +
+   :={" "} + + + mk_foreign_runtime + + +
+         + + + enhanced_foreign_data + + +
+         + + + enhanced_foreign_unary_op + + +
+         + + + enhanced_foreign_binary_op + + + .
+
+ Definition{" "} + + enhanced_to_java_data + +
+            ( + quotel: + + + String.string + + + ) (fd: + + + enhanced_data + + + ) :{" "} + + + java_json + + +
+   := match{" "} + + fd + {" "} + with +
+      |{" "} + + + enhancedstring + + {" "} + s =>{" "} + + + mk_java_json + + {" "} + ( + + + STRING_tostring + + {" "} + s)
+      |{" "} + + + enhanceddateTime + + {" "} + tp =>{" "} + + + mk_java_json + + {" "} + (@ + + + toString + + {" "} + _{" "} + + + date_time_foreign_data + + + .(@ + + + foreign_data_tostring + + {" "} + ) tp)
+      |{" "} + + + enhanceddateTimeinterval + + {" "} + tp =>{" "} + + + mk_java_json + + {" "} + (@ + + + toString + + {" "} + _{" "} + + + date_time_duration_foreign_data + + + .(@ + + + foreign_data_tostring + + {" "} + ) tp)
+      end.
+
+ Definition{" "} + + enhanced_to_java_unary_op + +
+              ( + indent: + + nat + + ) (eol: + + + String.string + + + )
+              ( + quotel: + + + String.string + + + ) (fu: + + + enhanced_unary_op + + + )
+              ( + d: + + + java_json + + + ) :{" "} + + + java_json + + +
+   := match{" "} + + fu + {" "} + with +
+      |{" "} + + + enhanced_unary_date_time_op + + {" "} + op => +
+         + + + date_time_to_java_unary_op + + {" "} + + indent + {" "} + + eol + {" "} + + quotel + {" "} + op{" "} + + d + +
+      end.
+
+ Definition{" "} + + enhanced_to_java_binary_op + +
+            ( + indent: + + nat + + ) (eol: + + + String.string + + + )
+            ( + quotel: + + + String.string + + + ) (fb: + + + enhanced_binary_op + + + )
+            ( + d1 d2: + + + java_json + + + ) :{" "} + + + java_json + + +
+   := match{" "} + + fb + {" "} + with +
+      |{" "} + + + enhanced_binary_date_time_op + + {" "} + op => +
+         + + + date_time_to_java_binary_op + + {" "} + + indent + {" "} + + eol + {" "} + + quotel + {" "} + op{" "} + + d1 + {" "} + + d2 + +
+      end.
+
+ Instance{" "} + + enhanced_foreign_to_java + {" "} + :
+   @ + + + foreign_to_java + + {" "} + + + enhanced_foreign_runtime + + +
+   :={" "} + + + mk_foreign_to_java + + +
+         + + + enhanced_foreign_runtime + + +
+         + + + enhanced_to_java_data + + +
+         + + + enhanced_to_java_unary_op + + +
+         + + + enhanced_to_java_binary_op + + + .
+
+ Definition{" "} + + enhanced_to_javascript_data + +
+            ( + quotel: + + + String.string + + + ) (fd: + + + enhanced_data + + + ) :{" "} + + + String.string + + +
+   := match{" "} + + fd + {" "} + with +
+      |{" "} + + + enhancedstring + + {" "} + s =>{" "} + + + STRING_tostring + + {" "} + s +
+      |{" "} + + + enhanceddateTime + + {" "} + tp => (@ + + + toString + + {" "} + _{" "} + + + date_time_foreign_data + + + .(@ + + + foreign_data_tostring + + {" "} + ) tp)
+      |{" "} + + + enhanceddateTimeinterval + + {" "} + tp => (@ + + + toString + + {" "} + _{" "} + + + date_time_duration_foreign_data + + + .(@ + + + foreign_data_tostring + + {" "} + ) tp)
+      end.
+
+ Definition{" "} + + + enhanced_to_javascript_unary_op + + +
+              ( + indent: + + nat + + ) (eol: + + + String.string + + + )
+              ( + quotel: + + + String.string + + + ) (fu: + + + enhanced_unary_op + + + )
+              ( + d: + + + String.string + + + ) :{" "} + + + String.string + + +
+   := match{" "} + + fu + {" "} + with +
+      |{" "} + + + enhanced_unary_date_time_op + + {" "} + op => +
+         + + + date_time_to_javascript_unary_op + + {" "} + + indent + {" "} + + eol + {" "} + + quotel + {" "} + op{" "} + + d + +
+      end.
+
+ Definition{" "} + + + enhanced_to_javascript_binary_op + + +
+            ( + indent: + + nat + + ) (eol: + + + String.string + + + )
+            ( + quotel: + + + String.string + + + ) (fb: + + + enhanced_binary_op + + + )
+            ( + d1 d2: + + + String.string + + + ) :{" "} + + + String.string + + +
+   := match{" "} + + fb + {" "} + with +
+      |{" "} + + + enhanced_binary_date_time_op + + {" "} + op => +
+         + + + date_time_to_javascript_binary_op + + {" "} + + indent + {" "} + + eol + {" "} + + quotel + {" "} + op{" "} + + d1 + {" "} + + d2 + +
+      end.
+
+ Definition{" "} + + + enhanced_to_ajavascript_unary_op + + +
+              ( + fu: + + + enhanced_unary_op + + + )
+              ( + e:JsSyntax.expr) :{" "} + JsSyntax.expr +
+   := match{" "} + + fu + {" "} + with +
+      |{" "} + + + enhanced_unary_date_time_op + + {" "} + op => +
+         + + + date_time_to_ajavascript_unary_op + + {" "} + op{" "} + + e + +
+      end.
+
+ Definition{" "} + + + enhanced_to_ajavascript_binary_op + + +
+            ( + fb: + + + enhanced_binary_op + + + )
+            ( + e1 e2: + JsSyntax.expr) :{" "} + JsSyntax.expr +
+   := match{" "} + + fb + {" "} + with +
+      |{" "} + + + enhanced_binary_date_time_op + + {" "} + op => +
+         + + + date_time_to_ajavascript_binary_op + + {" "} + op{" "} + + e1 + {" "} + + e2 + +
+      end.
+
+ Instance{" "} + + + enhanced_foreign_to_javascript + + {" "} + :
+   @ + + + foreign_to_javascript + + {" "} + + + enhanced_foreign_runtime + + +
+   :={" "} + + + mk_foreign_to_javascript + + +
+         + + + enhanced_foreign_runtime + + +
+         + + + enhanced_to_javascript_unary_op + + +
+         + + + enhanced_to_javascript_binary_op + + + .
+
+ Instance{" "} + + + enhanced_foreign_to_ajavascript + + {" "} + :
+   @ + + + foreign_to_ajavascript + + {" "} + + + enhanced_foreign_runtime + + +
+   :={" "} + + + mk_foreign_to_ajavascript + + +
+         + + + enhanced_foreign_runtime + + +
+         + + + enhanced_to_ajavascript_unary_op + + +
+         + + + enhanced_to_ajavascript_binary_op + + + .
+
+ Definition{" "} + + enhanced_to_scala_unary_op + {" "} + (op:{" "} + + + enhanced_unary_op + + + ) (d:{" "} + + + string + + + ) :{" "} + + + string + + {" "} + := +
+   match{" "} + + op + {" "} + with +
+     |{" "} + + + enhanced_unary_date_time_op + + {" "} + op => " + EnhancedModel: date{" "} + time ops{" "} + not supported{" "} + for now." +
+   end.
+
+ Definition{" "} + + + enhanced_to_scala_spark_datatype + + {" "} + {"{"} + ftype:{" "} + + + foreign_type + + + {"}"} (ft:{" "} + + + foreign_type_type + + + ) :{" "} + + + string + + {" "} + := +
+   "FloatType". +
+
+ Instance{" "} + + enhanced_foreign_to_scala + {" "} + {"{"} + ftype:{" "} + + + foreign_type + + + {"}"}:
+   @ + + + foreign_to_scala + + {" "} + + + enhanced_foreign_runtime + + {" "} + _ +
+   :={" "} + + + mk_foreign_to_scala + + +
+         + + + enhanced_foreign_runtime + + {" "} + _ +
+         + + + enhanced_to_scala_unary_op + + +
+         + + + enhanced_to_scala_spark_datatype + + + .
+
+
+
+
+ + Program + Instance{" "} + + enhanced_foreign_to_JSON + {" "} + :{" "} + + + foreign_to_JSON + + +
+   :={" "} + + + mk_foreign_to_JSON + + {" "} + + + enhanced_foreign_data + + {" "} + _ _.
+
+ Next Obligation. +
+
+    + + (* TODO: For now, we assume that JSON supports floating point *) + +
+   exact{" "} + + + None + + + .
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + fd.
+   - exact ( + + + jstring + + {" "} + ( + + + jenhancedstring + + {" "} + s)). +
+   - exact ( + + + jstring + + {" "} + (@ + + + toString + + {" "} + _{" "} + + + date_time_foreign_data + + + .(@ + + + foreign_data_tostring + + {" "} + ) d)). +
+   - exact ( + + + jstring + + {" "} + (@ + + + toString + + {" "} + _{" "} + + + date_time_duration_foreign_data + + + .(@ + + + foreign_data_tostring + + {" "} + ) d)). +
+ Defined. +
+
+   Inductive{" "} + + enhanced_numeric_type + {" "} + := +
+   |{" "} + + enhanced_numeric_int + +
+   |{" "} + + enhanced_numeric_float + + .
+
+   Global{" "} + Instance{" "} + + enhanced_numeric_type_eqdec + {" "} + :{" "} + + + EqDec + + {" "} + + + enhanced_numeric_type + + {" "} + + eq + + .
+
+ Proof. +
+
+     red.{" "} + unfold{" "} + + + equiv + + + ,{" "} + + + complement + + + .
+     change ( + forall x{" "} + y :{" "} + + + enhanced_numeric_type + + + , {"{"} + + x + {" "} + ={" "} + + y + + {"}"} + {"{"} + + x + {" "} + <>{" "} + + y + + {"}"}). +
+     decide{" "} + equality.
+   Defined. +
+
+   Definition{" "} + + enhanced_to_cld_numeric_type + +
+              ( + typ: + + + enhanced_numeric_type + + + ) :{" "} + + + CldMR.cld_numeric_type + + +
+     := match{" "} + + typ + {" "} + with +
+        |{" "} + + + enhanced_numeric_int + + {" "} + =>{" "} + + + CldMR.Cld_int + + +
+        |{" "} + + + enhanced_numeric_float + + {" "} + =>{" "} + + + CldMR.Cld_float + + +
+        end. +
+
+ Inductive{" "} + + enhanced_reduce_op + +
+   :={" "} + + RedOpCount + {" "} + :{" "} + + + enhanced_reduce_op + + +
+    |{" "} + + RedOpSum + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + enhanced_reduce_op + + +
+    |{" "} + + RedOpMin + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + enhanced_reduce_op + + +
+    |{" "} + + RedOpMax + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + enhanced_reduce_op + + +
+    |{" "} + + RedOpArithMean + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + enhanced_reduce_op + + +
+    |{" "} + + RedOpStats + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + enhanced_reduce_op + + + .
+
+ Definition{" "} + + enhanced_numeric_type_prefix + +
+            ( + typ: + + + enhanced_numeric_type + + + ) :{" "} + + + string + + +
+   := match{" "} + + typ + {" "} + with +
+      |{" "} + + + enhanced_numeric_int + + {" "} + => ""%string +
+      |{" "} + + + enhanced_numeric_float + + {" "} + => "F"%string +
+      end.
+
+ Definition{" "} + + enhanced_reduce_op_tostring + {" "} + (op: + + + enhanced_reduce_op + + + ) :{" "} + + + string + + +
+   := match{" "} + + op + {" "} + with +
+      |{" "} + + + RedOpCount + + {" "} + => "COUNT"%string +
+      |{" "} + + + RedOpSum + + {" "} + typ =>{" "} + + + append + + {" "} + ( + + + enhanced_numeric_type_prefix + + {" "} + typ) "FSUM"% + string +
+      |{" "} + + + RedOpMin + + {" "} + typ =>{" "} + + + append + + {" "} + ( + + + enhanced_numeric_type_prefix + + {" "} + typ) "FMIN"% + string +
+      |{" "} + + + RedOpMax + + {" "} + typ =>{" "} + + + append + + {" "} + ( + + + enhanced_numeric_type_prefix + + {" "} + typ) "FMAX"% + string +
+      |{" "} + + + RedOpArithMean + + {" "} + typ =>{" "} + + + append + + {" "} + ( + + + enhanced_numeric_type_prefix + + {" "} + typ) "FARITHMEAN"% + string +
+      |{" "} + + + RedOpStats + + {" "} + typ =>{" "} + + + append + + {" "} + ( + + + enhanced_numeric_type_prefix + + {" "} + typ) "FSTATS"% + string +
+      end.
+
+ Definition{" "} + + enhanced_numeric_sum + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + unary_op + + +
+   := match{" "} + + typ + {" "} + with +
+      |{" "} + + + enhanced_numeric_int + + +
+        =>{" "} + + + OpNatSum + + +
+      |{" "} + + + enhanced_numeric_float + + +
+        =>{" "} + + + OpFloatSum + + +
+      end.
+
+ Definition{" "} + + enhanced_numeric_min + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + unary_op + + +
+   := match{" "} + + typ + {" "} + with +
+      |{" "} + + + enhanced_numeric_int + + +
+        =>{" "} + + + OpNatMin + + +
+      |{" "} + + + enhanced_numeric_float + + +
+        =>{" "} + + + OpFloatBagMin + + +
+      end.
+
+ Definition{" "} + + enhanced_numeric_max + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + unary_op + + +
+   := match{" "} + + typ + {" "} + with +
+      |{" "} + + + enhanced_numeric_int + + +
+        =>{" "} + + + OpNatMax + + +
+      |{" "} + + + enhanced_numeric_float + + +
+        =>{" "} + + + OpFloatBagMax + + +
+      end.
+
+ Definition{" "} + + enhanced_numeric_arith_mean + {" "} + (typ: + + + enhanced_numeric_type + + + ) :{" "} + + + unary_op + + +
+   := match{" "} + + typ + {" "} + with +
+      |{" "} + + + enhanced_numeric_int + + +
+        =>{" "} + + + OpNatMean + + +
+      |{" "} + + + enhanced_numeric_float + + +
+        =>{" "} + + + OpFloatMean + + +
+      end.
+
+ Definition{" "} + + enhanced_reduce_op_interp + +
+            ( + br: + + + brand_relation_t + + + )
+            ( + op: + + + enhanced_reduce_op + + + )
+            ( + dl: + + + list + + {" "} + + + data + + + ) :{" "} + + + option + + {" "} + + + data + + +
+   := match{" "} + + op + {" "} + with +
+       |{" "} + + + RedOpCount + + {" "} + |{" "} + + + RedOpSum + + {" "} + _ |{" "} + + + RedOpMin + + {" "} + _ |{" "} + + + RedOpMax + + {" "} + _ |{" "} + + + RedOpArithMean + + {" "} + _ => +
+          + let uop := +
+              + match{" "} + + op + {" "} + with +
+             |{" "} + + + RedOpCount + + {" "} + =>{" "} + + + OpCount + + +
+             |{" "} + + + RedOpSum + + {" "} + typ =>{" "} + + + enhanced_numeric_sum + + {" "} + typ +
+             |{" "} + + + RedOpMin + + {" "} + typ =>{" "} + + + enhanced_numeric_min + + {" "} + typ +
+             |{" "} + + + RedOpMax + + {" "} + typ =>{" "} + + + enhanced_numeric_max + + {" "} + typ +
+             |{" "} + + + RedOpArithMean + + {" "} + typ =>{" "} + + + enhanced_numeric_arith_mean + + {" "} + typ +
+             |{" "} + + + RedOpStats + + {" "} + _ =>{" "} + + + OpCount + + {" "} +
+              + end +
+          + in +
+          + + + unary_op_eval + + {" "} + + br + {" "} + + uop + {" "} + ( + + + dcoll + + {" "} + + dl + + )
+       |{" "} + + + RedOpStats + + {" "} + typ => +
+          + let coll :={" "} + + + dcoll + + {" "} + + dl + {" "} + in +
+          + let count :={" "} + + + unary_op_eval + + {" "} + + br + {" "} + + + OpCount + + {" "} + + coll + {" "} + in +
+          + let sum :={" "} + + + unary_op_eval + + {" "} + + br + {" "} + ( + + + enhanced_numeric_sum + + {" "} + typ){" "} + + coll + {" "} + in +
+          + let min :={" "} + + + unary_op_eval + + {" "} + + br + {" "} + ( + + + enhanced_numeric_min + + {" "} + typ){" "} + + coll + {" "} + in +
+          + let max :={" "} + + + unary_op_eval + + {" "} + + br + {" "} + ( + + + enhanced_numeric_max + + {" "} + typ){" "} + + coll + {" "} + in +
+          + let v := +
+              + match ( + + count + + ,{" "} + + sum + + ,{" "} + + min + + ,{" "} + + max + + ) with +
+               | + ( + + + Some + + {" "} + count,{" "} + + + Some + + {" "} + sum,{" "} + + + Some + + {" "} + min,{" "} + + + Some + + {" "} + max) => +
+                  + + + Some + + {" "} + ( + + + drec + + {" "} + (("count"%string,{" "} + + count + + )
+                               ::(" + max"%string,{" "} + + max + + )
+                               ::(" + min"%string,{" "} + + min + + )
+                               ::(" + sum"%string,{" "} + + sum + + )
+                               :: + + nil + + )) +
+               |{" "} + _ =>{" "} + + + None + + +
+              + end +
+          + in +
+          + + v + +
+      end.
+
+ + Program + Instance{" "} + + enhanced_foreign_reduce_op + {" "} + :{" "} + + + foreign_reduce_op + + +
+   :={" "} + + + mk_foreign_reduce_op + + {" "} + + + enhanced_foreign_data + + {" "} + + + enhanced_reduce_op + + {" "} + _ _{" "} + + + enhanced_reduce_op_interp + + {" "} + _.
+
+ Next Obligation. +
+
+   red;{" "} + unfold{" "} + + + equiv + + + ,{" "} + + + complement + + + .
+   change ( + forall x{" "} + y: + + + enhanced_reduce_op + + + , {"{"} + + x + {" "} + ={" "} + + y + + {"}"} + {"{"} + + x + {" "} + <>{" "} + + y + + {"}"}). +
+   decide{" "} + equality; decide{" "} + equality.
+ Defined. +
+
+ Next Obligation. +
+
+   constructor.
+   apply{" "} + + + enhanced_reduce_op_tostring + + + .
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + op; simpl{" "} + in *; invcs{" "} + H.
+   - constructor.
+   - destruct{" "} + typ; simpl{" "} + in *. +
+     + apply{" "} + + + some_lift + + {" "} + in H2;{" "} + destruct H2{" "} + as [? eqq ?]; +
+          + subst;{" "} + constructor.
+     + apply{" "} + + + some_lift + + {" "} + in H2;{" "} + destruct H2{" "} + as [? eqq ?]; +
+          + subst;{" "} + constructor.
+   - destruct{" "} + typ; simpl{" "} + in *. +
+     + unfold{" "} + + + lifted_min + + {" "} + in *. +
+        + apply + {" "} + + + some_lift + + {" "} + in H2;{" "} + destruct H2{" "} + as [? eqq ?]; +
+          + subst;{" "} + constructor.
+     + unfold{" "} + + + lifted_fmin + + {" "} + in *. +
+        + apply + {" "} + + + some_lift + + {" "} + in H2;{" "} + destruct H2{" "} + as [? eqq ?]; +
+          + subst;{" "} + constructor.
+   - destruct{" "} + typ; simpl{" "} + in *. +
+     + unfold{" "} + + + lifted_max + + {" "} + in * .
+        + apply + {" "} + + + some_lift + + {" "} + in H2;{" "} + destruct H2{" "} + as [? eqq ?]; +
+          + subst;{" "} + constructor.
+     + unfold{" "} + + + lifted_fmax + + {" "} + in * .
+        + apply + {" "} + + + some_lift + + {" "} + in H2;{" "} + destruct H2{" "} + as [? eqq ?]; +
+          + subst;{" "} + constructor.
+   - destruct{" "} + typ; simpl{" "} + in *. +
+     + unfold{" "} + + + lifted_max + + {" "} + in * .
+        + apply + {" "} + + + some_lift + + {" "} + in H2;{" "} + destruct H2{" "} + as [? eqq ?]; +
+          + subst;{" "} + constructor.
+     + unfold{" "} + + + lifted_fmax + + {" "} + in * .
+        + apply + {" "} + + + some_lift + + {" "} + in H2;{" "} + destruct H2{" "} + as [? eqq ?]; +
+          + subst;{" "} + constructor.
+   - destruct{" "} + typ; simpl{" "} + in *. +
+     + destruct ( + + + dsum + + {" "} + dl); simpl{" "} + in *; try{" "} + discriminate.
+        + unfold + {" "} + + + lifted_min + + + ,{" "} + + + lifted_max + + {" "} + in *. +
+        + destruct (( + + + lift + + {" "} + + + bnummin + + {" "} + ( + + + lifted_zbag + + {" "} + dl))); simpl{" "} + in *; try{" "} + discriminate.
+        + destruct (( + + + lift + + {" "} + + + bnummax + + {" "} + ( + + + lifted_zbag + + {" "} + dl))); simpl{" "} + in *; try{" "} + discriminate.
+       invcs{" "} + H2.
+        + constructor.
+       *{" "} + repeat{" "} + constructor.
+       *{" "} + reflexivity.
+     + case_eq ( + + + lifted_fsum + + {" "} + dl); intros;{" "} + simpl in *;{" "} + rewrite H{" "} + in *; try{" "} + discriminate.
+        + unfold + {" "} + + + lifted_fmin + + + ,{" "} + + + lifted_fmax + + {" "} + in *. +
+        + destruct (( + + + lift + + {" "} + + + float_list_min + + {" "} + ( + + + lifted_fbag + + {" "} + dl))); simpl{" "} + in *; try{" "} + discriminate.
+        + destruct (( + + + lift + + {" "} + + + float_list_max + + {" "} + ( + + + lifted_fbag + + {" "} + dl))); simpl{" "} + in *; try{" "} + discriminate.
+       invcs{" "} + H2.
+        + constructor.
+       *{" "} + repeat{" "} + constructor.
+          + apply{" "} + + + some_lift + + {" "} + in H;{" "} + destruct H{" "} + as [? eqq ?];{" "} + subst.
+          + constructor.
+       *{" "} + reflexivity.
+ Qed. +
+
+ Definition{" "} + + enhanced_to_reduce_op + {" "} + (uop: + + + unary_op + + + ) :{" "} + + + option + + {" "} + + + NNRCMR.reduce_op + + +
+   := match{" "} + + uop + {" "} + with +
+      |{" "} + + + OpCount + + {" "} + =>{" "} + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + + + RedOpCount + + + )
+      |{" "} + + + OpNatSum + + {" "} + => +
+         + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpSum + + {" "} + + + enhanced_numeric_int + + + )) +
+      |{" "} + + + OpFloatSum + + {" "} + => +
+         + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpSum + + {" "} + + + enhanced_numeric_float + + + )) +
+      |{" "} + + + OpNatMin + + {" "} + => +
+         + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpMin + + {" "} + + + enhanced_numeric_int + + + )) +
+      |{" "} + + + OpFloatBagMin + + {" "} + => +
+         + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpMin + + {" "} + + + enhanced_numeric_float + + + )) +
+      |{" "} + + + OpNatMax + + {" "} + => +
+         + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpMax + + {" "} + + + enhanced_numeric_int + + + )) +
+      |{" "} + + + OpFloatBagMax + + {" "} + => +
+         + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpMax + + {" "} + + + enhanced_numeric_float + + + )) +
+      |{" "} + + + OpNatMean + + {" "} + => +
+         + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpArithMean + + {" "} + + + enhanced_numeric_int + + + )) +
+      |{" "} + + + OpFloatMean + + {" "} + => +
+         + + + Some + + {" "} + ( + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpArithMean + + {" "} + + + enhanced_numeric_float + + + )) +
+      | _ =>{" "} + + + None + + +
+      end.
+
+ Definition{" "} + + enhanced_of_reduce_op + {" "} + (rop: + + + NNRCMR.reduce_op + + + ) :{" "} + + + option + + {" "} + + + unary_op + + +
+   := match{" "} + + rop + {" "} + with +
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + + + RedOpCount + + {" "} + =>{" "} + + + Some + + {" "} + + + OpCount + + +
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpSum + + {" "} + + + enhanced_numeric_int + + + ) => +
+         + + + Some + + {" "} + ( + + + OpNatSum + + + )
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpSum + + {" "} + + + enhanced_numeric_float + + + ) => +
+         + + + Some + + {" "} + ( + + + OpFloatSum + + + )
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpMin + + {" "} + + + enhanced_numeric_int + + + ) => +
+         + + + Some + + {" "} + ( + + + OpNatMin + + + )
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpMin + + {" "} + + + enhanced_numeric_float + + + ) => +
+         + + + Some + + {" "} + ( + + + OpFloatBagMin + + + )
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpMax + + {" "} + + + enhanced_numeric_int + + + ) => +
+         + + + Some + + {" "} + ( + + + OpNatMax + + + )
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpMax + + {" "} + + + enhanced_numeric_float + + + ) => +
+         + + + Some + + {" "} + ( + + + OpFloatBagMax + + + )
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpArithMean + + {" "} + + + enhanced_numeric_int + + + ) => +
+         + + + Some + + {" "} + ( + + + OpNatMean + + + )
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpArithMean + + {" "} + + + enhanced_numeric_float + + + ) => +
+         + + + Some + + {" "} + ( + + + OpFloatMean + + + )
+      |{" "} + + + NNRCMR.RedOpForeign + + {" "} + ( + + + RedOpStats + + {" "} + _) => +
+         + + + None + + {" "} +
+      end.
+
+ + Program + Instance{" "} + + enhanced_foreign_to_reduce_op + {" "} + :{" "} + + + foreign_to_reduce_op + + +
+   :={" "} + + + mk_foreign_to_reduce_op + + {" "} + + + enhanced_foreign_runtime + + {" "} + + + enhanced_foreign_reduce_op + + {" "} + + + enhanced_to_reduce_op + + {" "} + _{" "} + + + enhanced_of_reduce_op + + {" "} + _.
+
+ Next Obligation. +
+
+   unfold{" "} + + + NNRCMR.reduce_op_eval + + + .
+   destruct{" "} + uop; simpl{" "} + in *; invcs{" "} + H; try{" "} + reflexivity.
+ Qed. +
+
+ Next Obligation. +
+
+   unfold{" "} + + + NNRCMR.reduce_op_eval + + + .
+   destruct{" "} + rop; simpl{" "} + in *; invcs{" "} + H; try{" "} + reflexivity.
+   destruct{" "} + f; invcs{" "} + H1; simpl;{" "} + try{" "} + reflexivity.
+   destruct{" "} + typ; invcs{" "} + H0;{" "} + reflexivity.
+   destruct{" "} + typ; invcs{" "} + H0;{" "} + reflexivity.
+   destruct{" "} + typ; invcs{" "} + H0;{" "} + reflexivity.
+   destruct{" "} + typ; invcs{" "} + H0;{" "} + reflexivity.
+ Qed. +
+
+ Local Open{" "} + Scope string_scope. +
+ Definition{" "} + + enhanced_to_spark_reduce_op + +
+            ( + rop: + + + enhanced_reduce_op + + + )
+            ( + scala_endl quotel: + + + string + + + ) :{" "} + + + string + + +
+   := match{" "} + + rop + {" "} + with +
+       |{" "} + + + RedOpCount + + {" "} + => ".count(). + toString()" +
+       |{" "} + + + RedOpSum + + {" "} + + + enhanced_numeric_int + + {" "} + => ".aggregate(0)( + _ + _.toInt,{" "} + _ + _). + toString()" +
+       |{" "} + + + RedOpSum + + {" "} + + + enhanced_numeric_float + + {" "} + => ".aggregate(0.0)( + _ + _.toDouble,{" "} + _ + _). + toString()" +
+       |{" "} + + + RedOpMin + + {" "} + + + enhanced_numeric_int + + {" "} + => ".aggregate( + Int.MaxValue)(((x,{" "} + y) => Math.min( + x, y.toInt)),{" "} + Math.min).toString + ()" +
+       |{" "} + + + RedOpMin + + {" "} + + + enhanced_numeric_float + + {" "} + => ".aggregate( + Double.MaxValue)(((x + , y) => Math.min( + x, y.toDouble)),{" "} + Math.min).toString + ()" +
+       |{" "} + + + RedOpMax + + {" "} + + + enhanced_numeric_int + + {" "} + => +
+         ". + aggregate( + Int.MinValue)(((x,{" "} + y) => Math.max( + x, y.toInt)),{" "} + Math.max).toString + ()" +
+       |{" "} + + + RedOpMax + + {" "} + + + enhanced_numeric_float + + {" "} + => +
+         ". + aggregate( + Double.MinValue)(((x + , y) => Math.max( + x, y.toDouble)),{" "} + Math.max).toString + ()" +
+       |{" "} + + + RedOpStats + + {" "} + _ => +
+         ". + aggregate("""")( + statsReduce,{" "} + statsRereduce). + toString()" ++{" "} + + + scala_endl + + {" "} + ++ +
+                      "{" "} + sc.parallelize(Array + (res))" +
+       |{" "} + + + RedOpArithMean + + {" "} + _ =>
+         ". + arithmean /*{" "} + ArithMean must{" "} + be removed{" "} + before code{" "} + generation */" +
+      end.
+
+ + Require + Import{" "} + + + Qcert.NNRC.NNRCRuntime + + + .
+ + Require + Import{" "} + + + Qcert.NNRCMR.NNRCMRRuntime + + + .
+ + Require + Import{" "} + + + Qcert.NNRCMR.Optim.NNRCMRRewrite + + + .
+
+   Definition{" "} + + min_max_to_stats + {" "} + avoid (mr:{" "} + + + mr + + + ) := +
+     match{" "} + + mr + + .( + + + mr_reduce + + + ) with +
+     |{" "} + + + RedOp + + {" "} + ( + + + RedOpForeign + + {" "} + op) => +
+       match{" "} + op with +
+       |{" "} + + + RedOpMin + + {" "} + typ |{" "} + + + RedOpMax + + {" "} + typ => +
+          + + let + stats_field := +
+              + match op{" "} + with +
+             |{" "} + + + RedOpMin + + {" "} + _ => "min"% + string +
+             |{" "} + + + RedOpMax + + {" "} + _ => "max"% + string +
+             |{" "} + _ => "ERROR"% + string
+              + end +
+          + in +
+          + let (tmp,{" "} + avoid) :={" "} + + + fresh_mr_var + + {" "} + "stats$"{" "} + + avoid + {" "} + in +
+          + let mr1 := +
+             + + + mkMR + + +
+               + + mr + + .( + + + mr_input + + + )
+               + + tmp + +
+               + + mr + + .( + + + mr_map + + + )
+              ( + + + RedOp + + {" "} + ( + + + RedOpForeign + + {" "} + ( + + + RedOpStats + + {" "} + typ))) +
+          + in +
+          + let x := " + stats"%string{" "} + in +
+          + let mr2 := +
+              + + + mkMR + + +
+                + + tmp + +
+                + + mr + + .( + + + mr_output + + + )
+               ( + + + MapScalar + + {" "} + ( + + x + + ,{" "} + + + NNRCUnop + + {" "} + + + OpBag + + {" "} + ( + + + NNRCUnop + + {" "} + ( + + + OpDot + + {" "} + + + stats_field + + + ) ( + + + NNRCVar + + {" "} + + x + + )))) +
+                + + + RedSingleton + + +
+          + in +
+          + + + Some + + {" "} + ( + + mr1 + + :: + + mr2 + + :: + + nil + + )
+       | + _ + =>{" "} + + + None + + +
+       end +
+     | _ =>{" "} + + + None + + +
+     end.
+
+   Definition{" "} + + arithmean_to_stats + {" "} + avoid (mr:{" "} + + + mr + + + ) := +
+     match{" "} + + mr + + .( + + + mr_reduce + + + ) with +
+     |{" "} + + + RedOp + + {" "} + ( + + + RedOpForeign + + {" "} + op) => +
+       match{" "} + op with +
+       |{" "} + + + RedOpArithMean + + {" "} + typ => +
+          + let (tmp,{" "} + avoid) :={" "} + + + fresh_mr_var + + {" "} + "stats$"{" "} + + avoid + {" "} + in +
+          + let mr1 := +
+             + + + mkMR + + +
+               + + mr + + .( + + + mr_input + + + )
+               + + tmp + +
+               + + mr + + .( + + + mr_map + + + )
+              ( + + + RedOp + + {" "} + ( + + + RedOpForeign + + {" "} + ( + + + RedOpStats + + {" "} + typ))) +
+          + in +
+          + let map := +
+              + match typ{" "} + with +
+             |{" "} + + + enhanced_numeric_int + + {" "} + => +
+                + let zero :={" "} + + + NNRCConst + + {" "} + ( + + + dnat + + {" "} + 0) in +
+                + let x := " + stats"%string{" "} + in +
+                + + + MapScalar + + {" "} + ( + + x + + ,{" "} + + + NNRCUnop + + {" "} + + + OpBag + + +
+                                     ( + + + NNRCIf + + {" "} + ( + + + NNRCBinop + + {" "} + + + OpEqual + + {" "} + ( + + + NNRCUnop + + {" "} + ( + + + OpDot + + {" "} + "count"%string) ( + + + NNRCVar + + {" "} + + x + + )){" "} + + zero + + )
+                                             + + zero + +
+                                            ( + + + NNRCBinop + + {" "} + ( + + + OpNatBinary + + {" "} + + + NatDiv + + + )
+                                                      ( + + + NNRCUnop + + {" "} + ( + + + OpDot + + {" "} + "sum"%string) ( + + + NNRCVar + + {" "} + + x + + )) +
+                                                      ( + + + NNRCUnop + + {" "} + ( + + + OpDot + + {" "} + "count"%string) ( + + + NNRCVar + + {" "} + + x + + ))))) +
+             |{" "} + + + enhanced_numeric_float + + {" "} + => +
+                + let zero :={" "} + + + NNRCConst + + {" "} + ( + + + dnat + + {" "} + 0) in +
+                + let zerof :={" "} + + + NNRCConst + + {" "} + ( + + + dfloat + + {" "} + + + float_zero + + + ) in +
+                + let x := " + stats"%string{" "} + in +
+                + + + MapScalar + + {" "} + ( + + x + + ,{" "} + + + NNRCUnop + + {" "} + + + OpBag + + +
+                                     ( + + + NNRCIf + + {" "} + ( + + + NNRCBinop + + {" "} + + + OpEqual + + {" "} + ( + + + NNRCUnop + + {" "} + ( + + + OpDot + + {" "} + "count"%string) ( + + + NNRCVar + + {" "} + + x + + )){" "} + + zero + + )
+                                             + + zerof + +
+                                            ( + + + NNRCBinop + + {" "} + ( + + + OpFloatBinary + + {" "} + + + FloatDiv + + + )
+                                                      ( + + + NNRCUnop + + {" "} + ( + + + OpDot + + {" "} + "sum"%string) ( + + + NNRCVar + + {" "} + + x + + )) +
+                                                      ( + + + NNRCUnop + + {" "} + ( + + + OpFloatOfNat + + + )
+                                                        ( + + + NNRCUnop + + {" "} + ( + + + OpDot + + {" "} + "count"%string) ( + + + NNRCVar + + {" "} + + x + + )))))) +
+              + end +
+          + in +
+          + let mr2 := +
+              + + + mkMR + + +
+                + + tmp + +
+                + + mr + + .( + + + mr_output + + + )
+                + + map + +
+                + + + RedSingleton + + +
+          + in +
+          + + + Some + + {" "} + ( + + mr1 + + :: + + mr2 + + :: + + nil + + )
+       | + _ + =>{" "} + + + None + + +
+       end +
+     | _ =>{" "} + + + None + + +
+     end.
+
+   Definition{" "} + + min_max_free_reduce + {" "} + (src: + + + reduce_fun + + + )
+     := match{" "} + + src + {" "} + with +
+        |{" "} + + + RedOp + + {" "} + ( + + + RedOpForeign + + {" "} + ( + + + RedOpMin + + {" "} + _| + + + RedOpMax + + {" "} + _)) =>{" "} + + False + +
+        | + _ + {" "} + =>{" "} + + True + +
+        end. +
+
+   Definition{" "} + + arithmean_free_reduce + {" "} + (src: + + + reduce_fun + + + )
+     := match{" "} + + src + {" "} + with +
+        |{" "} + + + RedOp + + {" "} + ( + + + RedOpForeign + + {" "} + ( + + + RedOpArithMean + + {" "} + _)) =>{" "} + + False + +
+        | + _ + {" "} + =>{" "} + + True + +
+        end. +
+
+   Definition{" "} + + min_max_free_mr + {" "} + (src: + + + mr + + + )
+     :={" "} + + + min_max_free_reduce + + {" "} + + src + + .( + + + mr_reduce + + + ). +
+
+   Definition{" "} + + arithmean_free_mr + {" "} + (src: + + + mr + + + )
+     :={" "} + + + arithmean_free_reduce + + {" "} + + src + + .( + + + mr_reduce + + + ). +
+
+   Definition{" "} + + min_max_free_mr_chain + {" "} + (src: + + + list + + {" "} + + + mr + + + )
+     :={" "} + + + Forall + + {" "} + + + min_max_free_mr + + {" "} + + src + + .
+
+   Definition{" "} + + min_max_free_nnrcmr + {" "} + (src: + + + nnrcmr + + + )
+     :={" "} + + + min_max_free_mr_chain + + {" "} + + src + + .( + + + mr_chain + + + ). +
+
+   Definition{" "} + + arithmean_free_mr_chain + {" "} + (src: + + + list + + {" "} + + + mr + + + )
+     :={" "} + + + Forall + + {" "} + + + arithmean_free_mr + + {" "} + + src + + .
+
+   Definition{" "} + + arithmean_free_nnrcmr + {" "} + (src: + + + nnrcmr + + + )
+     :={" "} + + + arithmean_free_mr_chain + + {" "} + + src + + .( + + + mr_chain + + + ). +
+
+   Definition{" "} + + to_spark_nnrcmr + {" "} + (l:{" "} + + + nnrcmr + + + ) := +
+     let{" "} + avoid :={" "} + + + get_nnrcmr_vars + + {" "} + + l + {" "} + in +
+     let{" "} + l :={" "} + + + apply_rewrite + + {" "} + ( + + + arithmean_to_stats + + {" "} + + avoid + + ){" "} + + l + {" "} + in +
+      + + l + + .
+
+   Definition{" "} + + to_spark_nnrcmr_prepared + {" "} + (src: + + + nnrcmr + + + )
+     :={" "} + + + arithmean_free_nnrcmr + + {" "} + + src + + .
+
+ + Program + Instance{" "} + + enhanced_foreign_to_spark + {" "} + :{" "} + + + foreign_to_spark + + +
+   :={" "} + + + mk_foreign_to_spark + + +
+         + + + enhanced_foreign_runtime + + +
+         + + + enhanced_foreign_reduce_op + + +
+         + + + enhanced_to_spark_reduce_op + + +
+         + + + to_spark_nnrcmr + + + .
+
+ Instance{" "} + + enhanced_foreign_cloudant + {" "} + :{" "} + + + foreign_cloudant + + +
+   :={" "} + + + mk_foreign_cloudant + + +
+         + + + enhanced_foreign_runtime + + +
+        ( + + + OpFloatSum + + + )
+        ( + + + OpFloatBagMin + + + )
+        ( + + + OpFloatBagMax + + + ). +
+
+ Definition{" "} + + + enhanced_to_cloudant_reduce_op + + +
+            ( + rop: + + + enhanced_reduce_op + + + ) :{" "} + + + CldMR.cld_reduce_op + + +
+   := match{" "} + + rop + {" "} + with +
+      |{" "} + + + RedOpCount + + {" "} + =>{" "} + + + CldMR.CldRedOpCount + + +
+      |{" "} + + + RedOpSum + + {" "} + typ =>{" "} + + + CldMR.CldRedOpSum + + {" "} + ( + + + enhanced_to_cld_numeric_type + + {" "} + typ)
+      |{" "} + + + RedOpStats + + {" "} + typ =>{" "} + + + CldMR.CldRedOpStats + + {" "} + ( + + + enhanced_to_cld_numeric_type + + {" "} + typ)
+      |{" "} + + + RedOpMin + + {" "} + _ =>{" "} + + + CldMR.CldRedOpStats + + {" "} + + + CldMR.Cld_int + + {" "} +
+      |{" "} + + + RedOpMax + + {" "} + _ =>{" "} + + + CldMR.CldRedOpStats + + {" "} + + + CldMR.Cld_int + + {" "} +
+      |{" "} + + + RedOpArithMean + + {" "} + _ =>{" "} + + + CldMR.CldRedOpStats + + {" "} + + + CldMR.Cld_int + + {" "} +
+      end.
+
+   Definition{" "} + + to_cloudant_nnrcmr + {" "} + (l:{" "} + + + nnrcmr + + + ) := +
+     let{" "} + avoid :={" "} + + + get_nnrcmr_vars + + {" "} + + l + {" "} + in +
+     let{" "} + l :={" "} + + + apply_rewrite + + {" "} + ( + + + min_max_to_stats + + {" "} + + avoid + + ){" "} + + l + {" "} + in +
+     let{" "} + l :={" "} + + + apply_rewrite + + {" "} + ( + + + arithmean_to_stats + + {" "} + + avoid + + ){" "} + + l + {" "} + in +
+      + + l + + .
+
+   Definition{" "} + + to_cloudant_nnrcmr_prepared + {" "} + (src: + + + nnrcmr + + + )
+     :={" "} + + + min_max_free_nnrcmr + + {" "} + + src + {" "} + /\{" "} + + + arithmean_free_nnrcmr + + {" "} + + src + + .
+
+   Program{" "} + Instance{" "} + + enhanced_foreign_to_cloudant + {" "} + :{" "} + + + foreign_to_cloudant + + +
+     := +
+       {"{"}{" "} + + + foreign_to_cloudant_reduce_op + + {" "} + :={" "} + + + enhanced_to_cloudant_reduce_op + + +
+         ;{" "} + + + foreign_to_cloudant_prepare_nnrcmr + + {" "} + :={" "} + + + to_cloudant_nnrcmr + + +
+         ;{" "} + + + foreign_to_cloudant_nnrcmr_prepared + + {" "} + :={" "} + + + to_cloudant_nnrcmr_prepared + + +
+       {"}"}.
+
+ Next Obligation. +
+
+     unfold{" "} + + + to_cloudant_nnrcmr + + + .
+     unfold{" "} + + + to_cloudant_nnrcmr_prepared + + + .
+     unfold{" "} + + + min_max_free_nnrcmr + + + ,{" "} + + + min_max_free_mr_chain + + + ,{" "} + + + min_max_free_mr + + + ,{" "} + + + min_max_free_reduce + + + .
+     split.
+     - unfold{" "} + + + apply_rewrite + + + ,{" "} + + + min_max_to_stats + + + .
+        + unfold + {" "} + + + mr_chain_apply_rewrite + + + .
+        + apply + {" "} + + + Forall_forall + + + ; intros ? inn + .
+        + simpl + {" "} + in *. +
+        + apply + {" "} + + + in_flat_map + + {" "} + in inn.
+        + + destruct + inn as [? + [inn1 inn2]]. +
+        + destruct x;{" "} + simpl.
+        + destruct{" "} + mr_reduce;{" "} + simpl in *; +
+          + unfold{" "} + + + min_max_free_mr + + + ;
+          + simpl;
+        + trivial.
+        + destruct r;{" "} + simpl in *;{" "} + trivial.
+        + destruct x0;{" "} + simpl in *. +
+        + destruct{" "} + mr_reduce;{" "} + simpl in *; +
+          + try solve [ + invcs inn2;{" "} + invcs H]. +
+        + destruct r;{" "} + simpl in * . +
+        + destruct f0;{" "} + simpl in *. +
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+       +{" "} + apply{" "} + + + in_flat_map + + {" "} + in inn1.
+          + + destruct + inn1 as{" "} + [? [inn1 inn3]]. +
+          + destruct x. +
+          + simpl in{" "} + inn3.
+          + destruct{" "} + mr_reduce +
+         ;{" "} + try solve [ + simpl in{" "} + inn3;{" "} + intuition +
+                      ;{" "} + invcs H]. +
+          + destruct r;{" "} + destruct f0 +
+         ;{" "} + simpl in{" "} + inn3;{" "} + intuition +
+         ;{" "} + invcs H0 +
+         ;{" "} + try solve [ + invcs H |{" "} + invcs H1]. +
+       +{" "} + apply{" "} + + + in_flat_map + + {" "} + in inn1.
+          + + destruct + inn1 as{" "} + [? [inn1 inn3]]. +
+          + destruct x. +
+          + simpl in{" "} + inn3.
+          + destruct{" "} + mr_reduce +
+         ;{" "} + try solve [ + simpl in{" "} + inn3;{" "} + intuition +
+                      ;{" "} + invcs H]. +
+          + destruct r;{" "} + destruct f0 +
+         ;{" "} + simpl in{" "} + inn3;{" "} + intuition +
+         ;{" "} + invcs H0 +
+         ;{" "} + try solve [ + invcs H |{" "} + invcs H1]. +
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+          + intuition.
+          + invcs H0;{" "} + trivial.
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+     - unfold{" "} + + + apply_rewrite + + + ,{" "} + + + mr_chain_apply_rewrite + + + ,{" "} + + + arithmean_free_nnrcmr + + + ,{" "} + + + arithmean_free_mr_chain + + + .
+        + simpl + {" "} + in *. +
+        + apply + {" "} + + + Forall_forall + + + ; intros ? inn + .
+        + apply + {" "} + + + in_flat_map + + {" "} + in inn.
+        + + destruct + inn as [? + [inn1 inn2]]. +
+        + destruct x;{" "} + simpl.
+        + destruct{" "} + mr_reduce;{" "} + simpl in *; +
+          + unfold{" "} + + + arithmean_free_mr + + + ;
+          + simpl;
+        + trivial.
+        + destruct r;{" "} + simpl in *;{" "} + trivial.
+        + destruct x0;{" "} + simpl in *. +
+        + destruct{" "} + mr_reduce;{" "} + simpl in *; +
+          + try solve [ + invcs inn2;{" "} + invcs H]. +
+        + destruct r;{" "} + simpl in * . +
+        + destruct f0;{" "} + simpl in *. +
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+          + invcs H0;{" "} + trivial.
+       +{" "} + intuition.
+          + invcs H;{" "} + trivial.
+   Qed. +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nraenv_token_type + + {" "} + : Set.
+   Extract{" "} + Constant{" "} + OPTIMIZER_LOGGER_nraenv_token_type => " + Util.nra_logger_token_type". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nraenv_startPass + + {" "} + :
+      + + + String.string + + {" "} + ->{" "} + + + nraenv + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nraenv_token_type + + + .
+
+   Extract{" "} + Constant{" "} + OPTIMIZER_LOGGER_nraenv_startPass => +
+   "(fun{" "} + name input ->{" "} + Logger.nra_log_startPass ( + Util.string_of_char_list{" "} + name) input)". +
+
+   Axiom{" "} + + OPTIMIZER_LOGGER_nraenv_step + {" "} + :
+      + + + OPTIMIZER_LOGGER_nraenv_token_type + + {" "} + ->{" "} + + + String.string + + {" "} + -> +
+      + + + nraenv + + {" "} + ->{" "} + + + nraenv + + {" "} + -> +
+      + + + OPTIMIZER_LOGGER_nraenv_token_type + + + .
+    +
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nraenv_step => +
+   "(fun{" "} + token name{" "} + input output ->{" "} + Logger.nra_log_step{" "} + token ( + Util.string_of_char_list{" "} + name) input{" "} + output)". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nraenv_endPass + + {" "} + :
+      + + + OPTIMIZER_LOGGER_nraenv_token_type + + {" "} + ->{" "} + + + nraenv + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nraenv_token_type + + + .
+    +
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nraenv_endPass => +
+   "(fun{" "} + token output ->{" "} + Logger.nra_log_endPass{" "} + token output)". +
+
+   Instance{" "} + + + foreign_nraenv_optimizer_logger + + {" "} + :
+      + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nraenv + + +
+     := +
+       {"{"} +
+          + + + optimizer_logger_token_type + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nraenv_token_type + + +
+         ;{" "} + + + logStartPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nraenv_startPass + + +
+         ;{" "} + + + logStep + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nraenv_step + + +
+         ;{" "} + + + logEndPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nraenv_endPass + + +
+       {"}"} .
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrc_token_type + + {" "} + : Set.
+   Extract{" "} + Constant{" "} + OPTIMIZER_LOGGER_nnrc_token_type => " + Util.nrc_logger_token_type". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrc_startPass + + {" "} + :
+      + + + String.string + + {" "} + ->{" "} + + + nnrc + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nnrc_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrc_startPass => +
+   "(fun{" "} + name input ->{" "} + Logger.nrc_log_startPass ( + Util.string_of_char_list{" "} + name) input)". +
+
+   Axiom{" "} + + OPTIMIZER_LOGGER_nnrc_step + {" "} + :
+      + + + OPTIMIZER_LOGGER_nnrc_token_type + + {" "} + ->{" "} + + + String.string + + {" "} + -> +
+      + + + nnrc + + {" "} + ->{" "} + + + nnrc + + {" "} + -> +
+      + + + OPTIMIZER_LOGGER_nnrc_token_type + + + .
+    +
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrc_step => +
+   "(fun{" "} + token name{" "} + input output ->{" "} + Logger.nrc_log_step{" "} + token ( + Util.string_of_char_list{" "} + name) input{" "} + output)". +
+
+   Axiom{" "} + + OPTIMIZER_LOGGER_nnrc_endPass + {" "} + :
+      + + + OPTIMIZER_LOGGER_nnrc_token_type + + {" "} + ->{" "} + + + nnrc + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nnrc_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrc_endPass => +
+   "(fun{" "} + token output ->{" "} + Logger.nrc_log_endPass{" "} + token output)". +
+
+     Instance{" "} + + foreign_nnrc_optimizer_logger + {" "} + :
+      + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrc + + +
+     := +
+       {"{"} +
+          + + + optimizer_logger_token_type + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrc_token_type + + +
+         ;{" "} + + + logStartPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrc_startPass + + +
+         ;{" "} + + + logStep + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrc_step + + +
+         ;{" "} + + + logEndPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrc_endPass + + +
+       {"}"} .
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_token_type + + {" "} + : Set.
+   Extract{" "} + Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_expr_token_type => + "Util.nnrs_imp_expr_logger_token_type". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_startPass + + {" "} + :
+      + + + String.string + + {" "} + ->{" "} + + + nnrs_imp_expr + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_expr_startPass => +
+   "(fun{" "} + name input ->{" "} + Logger.nnrs_imp_expr_log_startPass ( + Util.string_of_char_list{" "} + name) input)". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_step + + {" "} + :
+      + + + OPTIMIZER_LOGGER_nnrs_imp_expr_token_type + + {" "} + ->{" "} + + + String.string + + {" "} + -> +
+      + + + nnrs_imp_expr + + {" "} + ->{" "} + + + nnrs_imp_expr + + {" "} + -> +
+      + + + OPTIMIZER_LOGGER_nnrs_imp_expr_token_type + + + .
+    +
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_expr_step => +
+   "(fun{" "} + token name{" "} + input output ->{" "} + Logger.nnrs_imp_expr_log_step{" "} + token ( + Util.string_of_char_list{" "} + name) input{" "} + output)". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_endPass + + {" "} + :
+      + + + OPTIMIZER_LOGGER_nnrs_imp_expr_token_type + + {" "} + ->{" "} + + + nnrs_imp_expr + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_expr_endPass => +
+   "(fun{" "} + token output ->{" "} + Logger.nnrs_imp_expr_log_endPass{" "} + token output)". +
+
+     Instance{" "} + + + foreign_nnrs_imp_expr_optimizer_logger + + {" "} + :
+      + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp_expr + + +
+     := +
+       {"{"} +
+          + + + optimizer_logger_token_type + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_token_type + + +
+         ;{" "} + + + logStartPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_startPass + + +
+         ;{" "} + + + logStep + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_step + + +
+         ;{" "} + + + logEndPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_expr_endPass + + +
+       {"}"} .
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type + + {" "} + : Set.
+   Extract{" "} + Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type => + "Util.nnrs_imp_stmt_logger_token_type". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_startPass + + {" "} + :
+      + + + String.string + + {" "} + ->{" "} + + + nnrs_imp_stmt + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_stmt_startPass => +
+   "(fun{" "} + name input ->{" "} + Logger.nnrs_imp_stmt_log_startPass ( + Util.string_of_char_list{" "} + name) input)". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_step + + {" "} + :
+      + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type + + {" "} + ->{" "} + + + String.string + + {" "} + -> +
+      + + + nnrs_imp_stmt + + {" "} + ->{" "} + + + nnrs_imp_stmt + + {" "} + -> +
+      + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type + + + .
+    +
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_stmt_step => +
+   "(fun{" "} + token name{" "} + input output ->{" "} + Logger.nnrs_imp_stmt_log_step{" "} + token ( + Util.string_of_char_list{" "} + name) input{" "} + output)". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_endPass + + {" "} + :
+      + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type + + {" "} + ->{" "} + + + nnrs_imp_stmt + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_stmt_endPass => +
+   "(fun{" "} + token output ->{" "} + Logger.nnrs_imp_stmt_log_endPass{" "} + token output)". +
+
+     Instance{" "} + + + foreign_nnrs_imp_stmt_optimizer_logger + + {" "} + :
+      + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp_stmt + + +
+     := +
+       {"{"} +
+          + + + optimizer_logger_token_type + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_token_type + + +
+         ;{" "} + + + logStartPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_startPass + + +
+         ;{" "} + + + logStep + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_step + + +
+         ;{" "} + + + logEndPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_stmt_endPass + + +
+       {"}"} .
+
+       Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_token_type + + {" "} + : Set.
+   Extract{" "} + Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_token_type => " + Util.nnrs_imp_logger_token_type". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_startPass + + {" "} + :
+      + + + String.string + + {" "} + ->{" "} + + + nnrs_imp + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_startPass => +
+   "(fun{" "} + name input ->{" "} + Logger.nnrs_imp_log_startPass ( + Util.string_of_char_list{" "} + name) input)". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_step + + {" "} + :
+      + + + OPTIMIZER_LOGGER_nnrs_imp_token_type + + {" "} + ->{" "} + + + String.string + + {" "} + -> +
+      + + + nnrs_imp + + {" "} + ->{" "} + + + nnrs_imp + + {" "} + -> +
+      + + + OPTIMIZER_LOGGER_nnrs_imp_token_type + + + .
+    +
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_step => +
+   "(fun{" "} + token name{" "} + input output ->{" "} + Logger.nnrs_imp_log_step{" "} + token ( + Util.string_of_char_list{" "} + name) input{" "} + output)". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_endPass + + {" "} + :
+      + + + OPTIMIZER_LOGGER_nnrs_imp_token_type + + {" "} + ->{" "} + + + nnrs_imp + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_nnrs_imp_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_nnrs_imp_endPass => +
+   "(fun{" "} + token output ->{" "} + Logger.nnrs_imp_log_endPass{" "} + token output)". +
+
+     Instance{" "} + + + foreign_nnrs_imp_optimizer_logger + + {" "} + :
+      + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp + + +
+     := +
+       {"{"} +
+          + + + optimizer_logger_token_type + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_token_type + + +
+         ;{" "} + + + logStartPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_startPass + + +
+         ;{" "} + + + logStep + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_step + + +
+         ;{" "} + + + logEndPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_nnrs_imp_endPass + + +
+       {"}"} .
+
+
Foreign typing, used to build the basic_model
+
+ Definition{" "} + + enhanced_type_join + {" "} + (t1 t2: + + + enhanced_type + + + )
+   := match{" "} + + t1 + + ,{" "} + + t2 + {" "} + with +
+      |{" "} + + + enhancedBottom + + + , _ =>{" "} + + t2 + +
+      | _,{" "} + + + enhancedBottom + + {" "} + =>{" "} + + t1 + +
+      |{" "} + + + enhancedString + + + ,{" "} + + + enhancedString + + {" "} + =>{" "} + + + enhancedString + + +
+      |{" "} + + + enhancedDateTime + + + ,{" "} + + + enhancedDateTime + + {" "} + =>{" "} + + + enhancedDateTime + + +
+      |{" "} + + + enhancedDateTimeInterval + + + ,{" "} + + + enhancedDateTimeInterval + + {" "} + =>{" "} + + + enhancedDateTimeInterval + + +
+      | _,{" "} + _ =>{" "} + + + enhancedTop + + +
+      end.
+
+ Definition{" "} + + enhanced_type_meet + {" "} + (t1 t2: + + + enhanced_type + + + )
+   := match{" "} + + t1 + + ,{" "} + + t2 + {" "} + with +
+      |{" "} + + + enhancedTop + + + , _ =>{" "} + + t2 + +
+      | _,{" "} + + + enhancedTop + + {" "} + =>{" "} + + t1 + +
+      |{" "} + + + enhancedString + + + ,{" "} + + + enhancedString + + {" "} + =>{" "} + + + enhancedString + + +
+      |{" "} + + + enhancedDateTime + + + ,{" "} + + + enhancedDateTime + + {" "} + =>{" "} + + + enhancedDateTime + + +
+      |{" "} + + + enhancedDateTimeInterval + + + ,{" "} + + + enhancedDateTimeInterval + + {" "} + =>{" "} + + + enhancedDateTimeInterval + + +
+      | _,{" "} + _ =>{" "} + + + enhancedBottom + + +
+      end.
+
+ Inductive{" "} + + enhanced_subtype + {" "} + :{" "} + + + enhanced_type + + {" "} + ->{" "} + + + enhanced_type + + {" "} + -> Prop := +
|{" "} + + enhanced_subtype_top + {" "} + t :{" "} + + + enhanced_subtype + + {" "} + + t + {" "} + + + enhancedTop + + +
|{" "} + + enhanced_subtype_bottom + {" "} + t :{" "} + + + enhanced_subtype + + {" "} + + + enhancedBottom + + {" "} + + t + +
|{" "} + + enhanced_subtype_refl + {" "} + t :{" "} + + + enhanced_subtype + + {" "} + + t + {" "} + + t + + .
+
+ Instance{" "} + + enhanced_subtype_pre + {" "} + :{" "} + + + PreOrder + + {" "} + + + enhanced_subtype + + + .
+
+ Proof. +
+
+   constructor;{" "} + red;{" "} + intros.
+   - destruct{" "} + x; constructor. +
+   - inversion{" "} + H; inversion{" "} + H0; subst;{" "} + try{" "} + constructor;{" "} + congruence.
+ Qed. +
+
+ Instance{" "} + + enhanced_subtype_post + {" "} + :{" "} + + + PartialOrder + + {" "} + + eq + {" "} + + + enhanced_subtype + + + .
+
+ Proof. +
+
+   intros{" "} + x y;{" "} + split.
+   - intros;{" "} + subst.
+     repeat{" "} + red.
+     split;{" "} + constructor.
+   - destruct 1. +
+     inversion{" "} + H; inversion{" "} + H0; congruence + .
+ Qed. +
+
+ Instance{" "} + + enhanced_type_lattice + {" "} + :{" "} + + + Lattice + + {" "} + + + enhanced_type + + {" "} + + eq + +
+   := {"{"} +
+        + + + join + + {" "} + :={" "} + + + enhanced_type_join + + +
+       ;{" "} + + + meet + + {" "} + :={" "} + + + enhanced_type_meet + + +
+     {"}"}.
+
+ Proof. +
+
+   - red;{" "} + intros t1{" "} + t2.
+     destruct{" "} + t1; destruct{" "} + t2; simpl; +
+     reflexivity.
+   - red;{" "} + intros t1{" "} + t2 t3.
+     destruct{" "} + t1; destruct{" "} + t2; destruct{" "} + t3; simpl; +
+     reflexivity.
+   - red;{" "} + intros t1. +
+     simpl.
+     destruct{" "} + t1; simpl;{" "} + try{" "} + reflexivity.
+   - red;{" "} + intros t1{" "} + t2.
+     destruct{" "} + t1; destruct{" "} + t2; simpl; +
+     reflexivity.
+   - red;{" "} + intros t1{" "} + t2 t3.
+     destruct{" "} + t1; destruct{" "} + t2; destruct{" "} + t3; simpl; +
+     reflexivity.
+   - red;{" "} + intros t1. +
+     destruct{" "} + t1; simpl; +
+     reflexivity.
+   - red;{" "} + intros t1{" "} + t2.
+     destruct{" "} + t1; destruct{" "} + t2; simpl; +
+        + reflexivity.
+   - red;{" "} + intros t1{" "} + t2.
+     destruct{" "} + t1; destruct{" "} + t2; simpl; +
+        + reflexivity.
+ Defined. +
+
+ Instance{" "} + + enhanced_type_olattice + {" "} + :{" "} + + + OLattice + + {" "} + + eq + {" "} + + + enhanced_subtype + + + .
+
+ Proof. +
+
+   constructor.
+   split.
+   - destruct{" "} + a; destruct{" "} + b; inversion{" "} + 1; simpl;{" "} + reflexivity.
+   - destruct{" "} + a; destruct{" "} + b; inversion{" "} + 1; simpl;
+     constructor.
+ Qed. +
+
+ + Program + Instance{" "} + + enhanced_foreign_type + {" "} + :{" "} + + + foreign_type + + +
+   :={" "} + + + mk_foreign_type + + {" "} + + + enhanced_type + + {" "} + _ _{" "} + _ _{" "} + _ _{" "} + _.
+
+ Next Obligation. +
+
+   red.
+   unfold{" "} + + + equiv + + + ,{" "} + + + complement + + + .
+   intros.
+   change ({"{"} + x = y + {"}"} + {"{"} + x <> y + {"}"}). +
+   decide{" "} + equality.
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + a; destruct{" "} + b; try{" "} + solve [left;{" "} + constructor |{" "} + right;{" "} + inversion 1]. +
+ Defined. +
+
+ + Program + Instance{" "} + + enhanced_foreign_type_to_JSON + {" "} + :{" "} + + + foreign_type_to_JSON + + +
+   :={" "} + + + mk_foreign_type_to_JSON + + {" "} + + + enhanced_foreign_type + + {" "} + _ _.
+
+ Next Obligation. +
+
+   exact ( + + + string_to_enhanced_type + + {" "} + s). +
+ Defined. +
+
+ Next Obligation. +
+
+   exact ( + + + enhanced_type_to_string + + {" "} + fd). +
+ Defined. +
+
+ Inductive{" "} + + enhanced_has_type + {" "} + :{" "} + + + enhanced_data + + {" "} + ->{" "} + + + enhanced_type + + {" "} + -> Prop := +
|{" "} + + enhanced_has_type_top + {" "} + fd :{" "} + + + enhanced_has_type + + {" "} + + fd + {" "} + + + enhancedTop + + +
|{" "} + + enhanced_has_type_string + {" "} + (s: + + + STRING + + + ) :{" "} + + + enhanced_has_type + + {" "} + ( + + + enhancedstring + + {" "} + + s + + ){" "} + + + enhancedString + + +
|{" "} + + enhanced_has_type_dateTime + {" "} + (tp: + + + DATE_TIME + + + ) :{" "} + + + enhanced_has_type + + {" "} + ( + + + enhanceddateTime + + {" "} + + tp + + ){" "} + + + enhancedDateTime + + +
|{" "} + + + enhanced_has_type_dateTimeinterval + + {" "} + (tp: + + + DATE_TIME_DURATION + + + ) :{" "} + + + enhanced_has_type + + {" "} + ( + + + enhanceddateTimeinterval + + {" "} + + tp + + ){" "} + + + enhancedDateTimeInterval + + +
+ .
+
+ Definition{" "} + + enhanced_infer_type + {" "} + (d: + + + enhanced_data + + + ) :{" "} + + + option + + {" "} + + + enhanced_type + + +
+   := match{" "} + + d + {" "} + with +
+      |{" "} + + + enhancedstring + + {" "} + _ =>{" "} + + + Some + + {" "} + + + enhancedString + + +
+      |{" "} + + + enhanceddateTime + + {" "} + _ =>{" "} + + + Some + + {" "} + + + enhancedDateTime + + +
+      |{" "} + + + enhanceddateTimeinterval + + {" "} + _ =>{" "} + + + Some + + {" "} + + + enhancedDateTimeInterval + + +
+      end.
+
+ + Program + Instance{" "} + + enhanced_foreign_data_typing + {" "} + :
+   @ + + + foreign_data_typing + + {" "} + + + enhanced_foreign_data + + {" "} + + + enhanced_foreign_type + + +
+   :={" "} + + + mk_foreign_data_typing + + +
+         + + + enhanced_foreign_data + + +
+         + + + enhanced_foreign_type + + +
+         + + + enhanced_has_type + + {" "} + _ _{" "} + _ +
+         + + + enhanced_infer_type + + {" "} + _ _{" "} + _ +
+ .
+
+ Next Obligation. +
+
+   inversion{" "} + H; subst; +
+     simpl;{" "} + trivial.
+   - destruct{" "} + d; simpl;{" "} + constructor.
+   - constructor.
+   - constructor.
+ Defined. +
+
+ Next Obligation. +
+
+   inversion{" "} + H0; subst;{" "} + simpl.
+   - constructor.
+   - inversion{" "} + H.
+   - trivial.
+ Defined. +
+
+ Next Obligation. +
+
+   inversion{" "} + H; inversion{" "} + H0; subst;{" "} + simpl; try{" "} + constructor;{" "} + congruence.
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + d; simpl;{" "} + eexists;{" "} + reflexivity.
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + d; simpl{" "} + in H;{" "} + invcs H;{" "} + constructor.
+ Defined. +
+
+ Next Obligation. +
+
+   destruct{" "} + d; simpl{" "} + in H,{" "} + H0 +
+   ; invcs{" "} + H; invcs{" "} + H0; constructor. +
+ Defined. +
+
+ Definition{" "} + + dnnrc_for_log + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} +
+   := (@ + + + dnnrc_base + + {" "} + + + enhanced_foreign_runtime + + {" "} + ( + + + type_annotation + + {" "} + + + unit + + + ){" "} + + + dataframe + + + ). +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_dnnrc_token_type + + {" "} + : Set.
+   Extract{" "} + Constant{" "} + OPTIMIZER_LOGGER_dnnrc_token_type => " + Util.dnrc_logger_token_type". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_dnnrc_startPass + + {" "} + :
+     forall {"{"} + br: + + + brand_relation + + + {"}"},{" "} + + + String.string + + {" "} + ->{" "} + + + dnnrc_for_log + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_dnnrc_token_type + + + .
+
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_dnnrc_startPass => +
+   "(fun{" "} + br name{" "} + input ->{" "} + Logger.dnrc_log_startPass ( + Util.string_of_char_list{" "} + name) input)". +
+
+   Axiom{" "} + + OPTIMIZER_LOGGER_dnnrc_step + {" "} + :
+     forall {"{"} + br: + + + brand_relation + + + {"}"},
+      + + + OPTIMIZER_LOGGER_dnnrc_token_type + + {" "} + ->{" "} + + + String.string + + {" "} + -> +
+      + + + dnnrc_for_log + + {" "} + ->{" "} + + + dnnrc_for_log + + {" "} + -> +
+      + + + OPTIMIZER_LOGGER_dnnrc_token_type + + + .
+    +
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_dnnrc_step => +
+   "(fun{" "} + br token{" "} + name input{" "} + output ->{" "} + Logger.dnrc_log_step{" "} + token ( + Util.string_of_char_list{" "} + name) input{" "} + output)". +
+
+   Axiom{" "} + + + OPTIMIZER_LOGGER_dnnrc_endPass + + {" "} + :
+     forall {"{"} + br: + + + brand_relation + + + {"}"},{" "} + + + OPTIMIZER_LOGGER_dnnrc_token_type + + {" "} + ->{" "} + + + dnnrc_for_log + + {" "} + ->{" "} + + + OPTIMIZER_LOGGER_dnnrc_token_type + + + .
+    +
+   Extract{" "} + Inlined Constant{" "} + OPTIMIZER_LOGGER_dnnrc_endPass => +
+   "(fun{" "} + br token{" "} + output ->{" "} + Logger.dnrc_log_endPass{" "} + token output)". +
+
+   Instance{" "} + + + foreign_dnnrc_optimizer_logger + + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :
+      + + + optimizer_logger + + {" "} + + + string + + {" "} + + + dnnrc_for_log + + +
+     := +
+       {"{"} +
+          + + + optimizer_logger_token_type + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_dnnrc_token_type + + +
+         ;{" "} + + + logStartPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_dnnrc_startPass + + +
+         ;{" "} + + + logStep + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_dnnrc_step + + +
+         ;{" "} + + + logEndPass + + {" "} + :={" "} + + + OPTIMIZER_LOGGER_dnnrc_endPass + + +
+       {"}"} .
+
+ Module{" "} + + EnhancedRuntime + {" "} + <:{" "} + + + CompilerRuntime + + + .
+   Definition{" "} + + compiler_foreign_type + {" "} + :{" "} + + + foreign_type + + +
+     :={" "} + + + enhanced_foreign_type + + + .
+   Definition{" "} + + + compiler_foreign_runtime + + {" "} + :{" "} + + + foreign_runtime + + +
+     :={" "} + + + enhanced_foreign_runtime + + + .
+   Definition{" "} + + + compiler_foreign_to_java + + {" "} + :{" "} + + + foreign_to_java + + +
+     :={" "} + + + enhanced_foreign_to_java + + + .
+   Definition{" "} + + + compiler_foreign_to_javascript + + {" "} + :{" "} + + + foreign_to_javascript + + +
+     :={" "} + + + enhanced_foreign_to_javascript + + + .
+   Definition{" "} + + + compiler_foreign_to_ajavascript + + {" "} + :{" "} + + + foreign_to_ajavascript + + +
+     :={" "} + + + enhanced_foreign_to_ajavascript + + + .
+   Definition{" "} + + + compiler_foreign_to_scala + + {" "} + :{" "} + + + foreign_to_scala + + +
+     :={" "} + + + enhanced_foreign_to_scala + + + .
+   Definition{" "} + + + compiler_foreign_to_JSON + + {" "} + :{" "} + + + foreign_to_JSON + + +
+     :={" "} + + + enhanced_foreign_to_JSON + + + .
+   Definition{" "} + + + compiler_foreign_type_to_JSON + + {" "} + :{" "} + + + foreign_type_to_JSON + + +
+     :={" "} + + + enhanced_foreign_type_to_JSON + + + .
+   Definition{" "} + + + compiler_foreign_reduce_op + + {" "} + :{" "} + + + foreign_reduce_op + + +
+     :={" "} + + + enhanced_foreign_reduce_op + + + .
+   Definition{" "} + + + compiler_foreign_to_reduce_op + + {" "} + :{" "} + + + foreign_to_reduce_op + + +
+     :={" "} + + + enhanced_foreign_to_reduce_op + + + .
+   Definition{" "} + + + compiler_foreign_to_spark + + {" "} + :{" "} + + + foreign_to_spark + + +
+     :={" "} + + + enhanced_foreign_to_spark + + + .
+   Definition{" "} + + + compiler_foreign_cloudant + + {" "} + :{" "} + + + foreign_cloudant + + +
+     :={" "} + + + enhanced_foreign_cloudant + + + .
+   Definition{" "} + + + compiler_foreign_to_cloudant + + {" "} + :{" "} + + + foreign_to_cloudant + + +
+     :={" "} + + + enhanced_foreign_to_cloudant + + + .
+   Definition{" "} + + + compiler_nraenv_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nraenv + + +
+     :={" "} + + + foreign_nraenv_optimizer_logger + + + .
+   Definition{" "} + + + compiler_nnrc_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrc + + +
+     :={" "} + + + foreign_nnrc_optimizer_logger + + + .
+   Definition{" "} + + + compiler_nnrs_imp_expr_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp_expr + + +
+     :={" "} + + + foreign_nnrs_imp_expr_optimizer_logger + + + .
+   Definition{" "} + + + compiler_nnrs_imp_stmt_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp_stmt + + +
+     :={" "} + + + foreign_nnrs_imp_stmt_optimizer_logger + + + .
+   Definition{" "} + + + compiler_nnrs_imp_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp + + +
+     :={" "} + + + foreign_nnrs_imp_optimizer_logger + + + .
+   Definition{" "} + + + compiler_dnnrc_optimizer_logger + + {" "} + {"{"} + br: + + + brand_relation + + + {"}"}:{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + (@ + + + dnnrc_base + + {" "} + _ ( + + + type_annotation + + {" "} + + + unit + + + ){" "} + + + dataframe + + + )
+     :={" "} + + + foreign_dnnrc_optimizer_logger + + + .
+   Definition{" "} + + + compiler_foreign_data_typing + + {" "} + :{" "} + + + foreign_data_typing + + +
+     :={" "} + + + enhanced_foreign_data_typing + + + .
+ End{" "} + + + EnhancedRuntime + + + .
+
+ Definition{" "} + + DateTime + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + + rtype + + {" "} + :={" "} + + + Foreign + + {" "} + + + enhancedDateTime + + + .
+ Definition{" "} + + DateTimeInterval + {" "} + {"{"} + br: + + + brand_relation + + + {"}"} :{" "} + + + rtype + + {" "} + :={" "} + + + Foreign + + {" "} + + + enhancedDateTimeInterval + + + .
+
+ Definition{" "} + + isDateTime + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} (τ: + + + rtype + + + ) := +
+   match{" "} + + + proj1_sig + + {" "} + τ with +
+   | Foreign₀{" "} + + + enhancedDateTime + + {" "} + =>{" "} + + + true + + +
+   | _ =>{" "} + + + false + + +
+   end.
+
+ Definition{" "} + + isDateTimeInterval + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} (τ: + + + rtype + + + ) := +
+   match{" "} + + + proj1_sig + + {" "} + τ with +
+   | Foreign₀{" "} + + + enhancedDateTimeInterval + + {" "} + =>{" "} + + + true + + +
+   | _ =>{" "} + + + false + + +
+   end.
+
+ Definition{" "} + + isNat + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} (τ: + + + rtype + + + ) := +
+   match{" "} + + + proj1_sig + + {" "} + τ with +
+   | Nat₀ =>{" "} + + + true + + +
+   | _ =>{" "} + + + false + + +
+   end.
+
+ Definition{" "} + + isString + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} (τ: + + + rtype + + + ) := +
+   match{" "} + + + proj1_sig + + {" "} + τ with +
+   | String₀ =>{" "} + + + true + + +
+   | _ =>{" "} + + + false + + +
+   end.
+
+   Definition{" "} + + tuncoll + {" "} + {"{"} + model: + + + brand_model + + + {"}"} (τ: + + + rtype + + + ) :{" "} + + + option + + {" "} + + + rtype + + + .
+
+ Proof. +
+
+     destruct τ. +
+     destruct{" "} + x.
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact ( + + + Some + + {" "} + ( + + + exist + + {" "} + (fun τ₀ : rtype₀ + => wf_rtype₀ τ₀ ={" "} + + + true + + + ) x e)).
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+     - exact{" "} + + + None + + + .
+   Defined. +
+
+ Inductive{" "} + + date_time_unary_op_has_type + {" "} + {"{"} + model: + + + brand_model + + + {"}"} :
+    + + + date_time_unary_op + + {" "} + ->{" "} + + + rtype + + {" "} + ->{" "} + + + rtype + + {" "} + -> Prop +
+   := +
+   |{" "} + + tuop_date_time_component + {" "} + part :{" "} + + + date_time_unary_op_has_type + + {" "} + ( + + + uop_date_time_component + + {" "} + + part + + ){" "} + + + DateTime + + {" "} + + + Nat + + +
+   |{" "} + + tuop_date_time_from_string + {" "} + :{" "} + + + date_time_unary_op_has_type + + {" "} + + + uop_date_time_from_string + + {" "} + + + RType.String + + {" "} + + + DateTime + + +
+   |{" "} + + + tuop_date_time_duration_from_string + + {" "} + :{" "} + + + date_time_unary_op_has_type + + {" "} + + + uop_date_time_duration_from_string + + {" "} + + + RType.String + + {" "} + + + DateTimeInterval + + +
+ .
+
+ Definition{" "} + + date_time_unary_op_type_infer + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} (op: + + + date_time_unary_op + + + ) (τ₁: + + + rtype + + + ) :{" "} + + + option + + {" "} + + + rtype + + {" "} + := +
+   match{" "} + + op + {" "} + with +
+   |{" "} + + + uop_date_time_component + + {" "} + part => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ then{" "} + + + Some + + {" "} + + + Nat + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + uop_date_time_from_string + + {" "} + => +
+     if{" "} + + + isString + + {" "} + τ₁ then{" "} + + + Some + + {" "} + + + DateTime + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + uop_date_time_duration_from_string + + {" "} + => +
+     if{" "} + + + isString + + {" "} + τ₁ then{" "} + + + Some + + {" "} + + + DateTimeInterval + + {" "} + else{" "} + + + None + + +
+   end.
+
+ Definition{" "} + + + date_time_unary_op_type_infer_sub + + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} (op: + + + date_time_unary_op + + + ) (τ₁: + + + rtype + + + ) :{" "} + + + option + + {" "} + ( + + + rtype + + + * + + + rtype + + + ) := +
+   match{" "} + + op + {" "} + with +
+   |{" "} + + + uop_date_time_component + + {" "} + part => +
+      + + + enforce_unary_op_schema + + {" "} + (τ₁, + + + DateTime + + + ){" "} + + + Nat + + +
+   |{" "} + + + uop_date_time_from_string + + {" "} + => +
+      + + + enforce_unary_op_schema + + {" "} + (τ₁, + + + RType.String + + + ){" "} + + + DateTime + + +
+   |{" "} + + + uop_date_time_duration_from_string + + {" "} + => +
+      + + + enforce_unary_op_schema + + {" "} + (τ₁, + + + RType.String + + + ){" "} + + + DateTimeInterval + + +
+   end.
+
+ Lemma{" "} + + + date_time_unary_op_typing_sound + + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} +
+       (fu :{" "} + + + date_time_unary_op + + + ) (τin τout :{" "} + + + rtype + + + ) :
+    + + + date_time_unary_op_has_type + + {" "} + + fu + {" "} + τin τout -> +
+   forall{" "} + din :{" "} + + + data + + + ,
+      + + din + {" "} + ▹ τin -> +
+     exists{" "} + dout :{" "} + + + data + + + ,
+        + + + date_time_unary_op_interp + + {" "} + + fu + {" "} + + din + {" "} + ={" "} + + + Some + + {" "} + + dout + {" "} + /\{" "} + + dout + {" "} + ▹ τout.
+
+ Proof. +
+
+   inversion 1;{" "} + subst;
+     try{" "} + solve[ + inversion 1;{" "} + subst;
+        + try + {" "} + invcs H0;
+        + try + {" "} + invcs H3;
+        + simpl + ; unfold{" "} + + + denhanceddateTime + + + ,{" "} + + + denhanceddateTimeinterval + + + ; simpl;
+        + eexists + ; split;{" "} + try{" "} + reflexivity;
+        + repeat + {" "} + constructor]. +
+ Qed. +
+
+   Inductive{" "} + + enhanced_unary_op_has_type + {" "} + {"{"} + model: + + + brand_model + + + {"}"} :{" "} + + + enhanced_unary_op + + {" "} + ->{" "} + + + rtype + + {" "} + ->{" "} + + + rtype + + {" "} + -> Prop +
+     := +
+     |{" "} + + tenhanced_unary_date_time_op + {" "} + fu τin τ + out:
+          + + + date_time_unary_op_has_type + + {" "} + + fu + {" "} + τin τout -> +
+          + + + enhanced_unary_op_has_type + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + + fu + + ) τin τout.
+
+   Definition{" "} + + + enhanced_unary_op_typing_infer + + {" "} + {"{"} + model: + + + brand_model + + + {"}"} (fu: + + + enhanced_unary_op + + + ) (τ: + + + rtype + + + ) :{" "} + + + option + + {" "} + + + rtype + + {" "} + := +
+     match{" "} + + fu + {" "} + with +
+     |{" "} + + + enhanced_unary_date_time_op + + {" "} + op =>{" "} + + + date_time_unary_op_type_infer + + {" "} + op τ
+     end.
+
+   Lemma{" "} + + + enhanced_unary_op_typing_infer_correct + + +
+         {"{"} + model: + + + brand_model + + + {"}"} +
+         ( + fu: + + + foreign_unary_op_type + + + )
+         {"{"}τ₁ τ + out + {"}"} :
+      + + + enhanced_unary_op_typing_infer + + {" "} + + fu + {" "} + τ₁ ={" "} + + + Some + + {" "} + τout -> +
+      + + + enhanced_unary_op_has_type + + {" "} + + fu + {" "} + τ₁ τout.
+
+ Proof. +
+
+     intros.
+     destruct{" "} + fu; simpl. +
+     - destruct{" "} + d; simpl{" "} + in *. +
+       +{" "} + destruct τ₁;{" "} + simpl in *;{" "} + try{" "} + congruence;
+          + destruct x;{" "} + simpl in *;{" "} + try{" "} + congruence;
+          + destruct ft;{" "} + simpl in *;{" "} + try{" "} + congruence;
+          + inversion H;{" "} + subst;{" "} + clear H;{" "} + constructor;
+          + rewrite{" "} + + + Foreign_canon + + + ; constructor.
+       +{" "} + destruct τ₁;{" "} + simpl in *;{" "} + try{" "} + congruence;
+          + destruct x;{" "} + simpl in *;{" "} + try{" "} + congruence;
+          + inversion H;{" "} + subst;{" "} + clear H;{" "} + constructor;
+          + rewrite{" "} + + + String_canon + + + ; constructor.
+       +{" "} + destruct τ₁;{" "} + simpl in *;{" "} + try{" "} + congruence;
+          + destruct x;{" "} + simpl in *;{" "} + try{" "} + congruence.
+          + inversion H;{" "} + subst;{" "} + clear H;{" "} + constructor.
+          + rewrite{" "} + + + String_canon + + + ; constructor.
+   Qed. +
+
+   Lemma{" "} + + + enhanced_unary_op_typing_infer_least + + +
+         {"{"} + model: + + + brand_model + + + {"}"} +
+         ( + fu: + + + foreign_unary_op_type + + + )
+         {"{"}τ₁ τ + out₁ τout₂{"}"} : +
+      + + + enhanced_unary_op_typing_infer + + {" "} + + fu + {" "} + τ₁ ={" "} + + + Some + + {" "} + τout₁ -> +
+      + + + enhanced_unary_op_has_type + + {" "} + + fu + {" "} + τ₁ τout₂ -> +
+     τout₁ ≤ τ + out₂. +
+
+ Proof. +
+
+     intros.
+     destruct{" "} + fu; simpl{" "} + in *. +
+     - destruct{" "} + d; simpl{" "} + in *; +
+        + destruct τ₁;{" "} + simpl in *;{" "} + try{" "} + congruence;
+        + destruct x;{" "} + simpl in *;{" "} + try{" "} + congruence.
+       +{" "} + destruct ft;{" "} + simpl in *;{" "} + try{" "} + congruence;
+          + inversion H;{" "} + subst;{" "} + clear H;
+          + rewrite{" "} + + + Foreign_canon + + {" "} + in H0;
+          + inversion H0;{" "} + subst;{" "} + clear H0; +
+          + inversion H1;{" "} + subst;{" "} + clear H1; +
+          + reflexivity.
+       +{" "} + inversion H;{" "} + subst;{" "} + clear H;
+          + rewrite{" "} + + + String_canon + + {" "} + in H0;
+          + inversion H0;{" "} + subst;{" "} + clear H0; +
+          + inversion H1;{" "} + subst;{" "} + clear H1; +
+          + reflexivity.
+       +{" "} + inversion H;{" "} + subst;{" "} + clear H;
+          + rewrite{" "} + + + String_canon + + {" "} + in H0;
+          + inversion H0;{" "} + subst;{" "} + clear H0; +
+          + inversion H1;{" "} + subst;{" "} + clear H1; +
+          + reflexivity.
+   Qed. +
+
+   Lemma{" "} + + + enhanced_unary_op_typing_infer_complete + + +
+         {"{"} + model: + + + brand_model + + + {"}"} +
+         ( + fu: + + + foreign_unary_op_type + + + )
+         {"{"}τ₁ τ + out + {"}"} :
+      + + + enhanced_unary_op_typing_infer + + {" "} + + fu + {" "} + τ₁ ={" "} + + + None + + {" "} + -> +
+     ~{" "} + + + enhanced_unary_op_has_type + + {" "} + + fu + {" "} + τ₁ τout.
+
+ Proof. +
+
+     intros.
+     destruct{" "} + fu; simpl{" "} + in *. +
+     - destruct{" "} + d; simpl{" "} + in *; +
+        + destruct τ₁;{" "} + simpl in *;{" "} + try{" "} + congruence;
+        + destruct x;{" "} + simpl in *;{" "} + try{" "} + congruence;
+        + unfold + {" "} + + not + + ; intros;
+        + inversion H0;{" "} + subst;{" "} + clear H0; +
+        + inversion H2;{" "} + subst;{" "} + clear H2. +
+       +{" "} + simpl in{" "} + H; congruence. +
+   Qed. +
+
+   Definition{" "} + + + enhanced_unary_op_typing_infer_sub + + {" "} + {"{"} + model: + + + brand_model + + + {"}"} (fu: + + + enhanced_unary_op + + + ) (τ: + + + rtype + + + ) :{" "} + + + option + + {" "} + ( + + + rtype + + + * + + + rtype + + + ) := +
+     match{" "} + + fu + {" "} + with +
+     |{" "} + + + enhanced_unary_date_time_op + + {" "} + op =>{" "} + + + date_time_unary_op_type_infer_sub + + {" "} + op τ
+     end.
+      +
+ Lemma{" "} + + + enhanced_unary_op_typing_sound + + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} +
+       (fu :{" "} + + + foreign_unary_op_type + + + ) (τin τout :{" "} + + + rtype + + + ) :
+    + + + enhanced_unary_op_has_type + + {" "} + + fu + {" "} + τin τout -> +
+   forall{" "} + din :{" "} + + + data + + + ,
+      + + din + {" "} + ▹ τin -> +
+     exists{" "} + dout :{" "} + + + data + + + ,
+        + + + enhanced_unary_op_interp + + {" "} + + + brand_relation_brands + + {" "} + + fu + {" "} + + din + {" "} + ={" "} + + + Some + + {" "} + + dout + {" "} + /\{" "} + + dout + {" "} + ▹ τout.
+
+ Proof. +
+
+   intros.
+   destruct{" "} + H.
+   - eapply{" "} + + + date_time_unary_op_typing_sound + + + ; eauto.
+ Qed. +
+
+ Instance{" "} + + + enhanced_foreign_unary_op_typing + + +
+         {"{"} + model: + + + brand_model + + + {"}"} :
+   @ + + + foreign_unary_op_typing + + +
+      + + + enhanced_foreign_data + + +
+      + + + enhanced_foreign_unary_op + + +
+      + + + enhanced_foreign_type + + +
+      + + + enhanced_foreign_data_typing + + +
+      + + model + +
+   := {"{"}{" "} + + + foreign_unary_op_typing_has_type + + {" "} + :={" "} + + + enhanced_unary_op_has_type + + +
+        ;{" "} + + + foreign_unary_op_typing_sound + + {" "} + :={" "} + + + enhanced_unary_op_typing_sound + + +
+        ;{" "} + + + foreign_unary_op_typing_infer + + {" "} + :={" "} + + + enhanced_unary_op_typing_infer + + +
+        ;{" "} + + + foreign_unary_op_typing_infer_correct + + {" "} + :={" "} + + + enhanced_unary_op_typing_infer_correct + + +
+        ;{" "} + + + foreign_unary_op_typing_infer_least + + {" "} + :={" "} + + + enhanced_unary_op_typing_infer_least + + +
+        ;{" "} + + + foreign_unary_op_typing_infer_complete + + {" "} + :={" "} + + + enhanced_unary_op_typing_infer_complete + + +
+        ;{" "} + + + foreign_unary_op_typing_infer_sub + + {" "} + :={" "} + + + enhanced_unary_op_typing_infer_sub + + +
+      {"}"}.
+
+ Inductive{" "} + + date_time_binary_op_has_type + {" "} + {"{"} + model: + + + brand_model + + + {"}"} :
+    + + + date_time_binary_op + + {" "} + ->{" "} + + + rtype + + {" "} + ->{" "} + + + rtype + + {" "} + ->{" "} + + + rtype + + {" "} + -> Prop +
+   := +
+   |{" "} + + tbop_date_time_plus + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_plus + + {" "} + + + DateTime + + {" "} + + + DateTimeInterval + + {" "} + + + DateTime + + {" "} +
+   |{" "} + + tbop_date_time_minus + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_minus + + {" "} + + + DateTime + + {" "} + + + DateTimeInterval + + {" "} + + + DateTime + + {" "} +
+   |{" "} + + tbop_date_time_ne + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_ne + + {" "} + + + DateTime + + {" "} + + + DateTime + + {" "} + + + Bool + + {" "} +
+   |{" "} + + tbop_date_time_lt + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_lt + + {" "} + + + DateTime + + {" "} + + + DateTime + + {" "} + + + Bool + + {" "} +
+   |{" "} + + tbop_date_time_le + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_le + + {" "} + + + DateTime + + {" "} + + + DateTime + + {" "} + + + Bool + + {" "} +
+   |{" "} + + tbop_date_time_gt + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_gt + + {" "} + + + DateTime + + {" "} + + + DateTime + + {" "} + + + Bool + + {" "} +
+   |{" "} + + tbop_date_time_ge + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_ge + + {" "} + + + DateTime + + {" "} + + + DateTime + + {" "} + + + Bool + + +
+   |{" "} + + tbop_date_time_duration + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_duration + + {" "} + + + DateTime + + {" "} + + + DateTime + + {" "} + + + DateTimeInterval + + +
+   |{" "} + + tbop_date_time_duration_days + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_duration_days + + {" "} + + + DateTime + + {" "} + + + DateTime + + {" "} + + + Float + + +
+   |{" "} + + + tbop_date_time_duration_seconds + + {" "} + :
+        + + + date_time_binary_op_has_type + + {" "} + + + bop_date_time_duration_seconds + + {" "} + + + DateTime + + {" "} + + + DateTime + + {" "} + + + Float + + +
+ .
+
+ Definition{" "} + + + date_time_binary_op_type_infer + + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} (op: + + + date_time_binary_op + + + ) (τ₁ τ₂: + + + rtype + + + ) := +
+   match{" "} + + op + {" "} + with +
+   |{" "} + + + bop_date_time_plus + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTimeInterval + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + DateTime + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_minus + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTimeInterval + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + DateTime + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_ne + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTime + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + Bool + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_lt + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTime + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + Bool + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_le + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTime + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + Bool + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_gt + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTime + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + Bool + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_ge + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTime + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + Bool + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_duration + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTime + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + DateTimeInterval + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_duration_days + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTime + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + Float + + {" "} + else{" "} + + + None + + +
+   |{" "} + + + bop_date_time_duration_seconds + + {" "} + => +
+     if{" "} + + + isDateTime + + {" "} + τ₁ &&{" "} + + + isDateTime + + {" "} + τ₂ then{" "} + + + Some + + {" "} + + + Float + + {" "} + else{" "} + + + None + + +
+   end.
+
+ Lemma{" "} + + + date_time_binary_op_typing_sound + + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} +
+       (fb :{" "} + + + date_time_binary_op + + + ) (τin₁ τin₂ τ + out :{" "} + + + rtype + + + ) :
+    + + + date_time_binary_op_has_type + + {" "} + + fb + {" "} + τin₁ τin₂ τ + out -> +
+   forall{" "} + dindin₂ :{" "} + + + data + + + ,
+     din₁ ▹ τ + in₁ -> +
+     din₂ ▹ τ + in₂ -> +
+     exists{" "} + dout :{" "} + + + data + + + ,
+        + + + date_time_binary_op_interp + + {" "} + + fb + {" "} + dindin₂ ={" "} + + + Some + + {" "} + + dout + {" "} + /\{" "} + + dout + {" "} + ▹ τout.
+
+ Proof. +
+
+     inversion 1;{" "} + subst;
+        + inversion 1;{" "} + subst;
+          + inversion 1;{" "} + subst;
+        + try + {" "} + invcs H0;
+        + try + {" "} + invcs H1;
+       invcs{" "} + H3;
+        + try + {" "} + invcs H4;
+        + simpl + ;
+          + eexists; split + ; try{" "} + reflexivity;
+            + repeat{" "} + constructor.
+ Qed. +
+           +
+ Definition{" "} + + + date_time_binary_op_type_infer_sub + + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} (op: + + + date_time_binary_op + + + ) (τ₁ τ₂: + + + rtype + + + ) :{" "} + + + option + + {" "} + ( + + + rtype + + + * + + + rtype + + + * + + + rtype + + + ) := +
+   match{" "} + + op + {" "} + with +
+   |{" "} + + + bop_date_time_plus + + {" "} + => +
+      + + + enforce_binary_op_schema + + {" "} + (τ₁, + + + DateTime + + + ) (τ₂, + + + DateTimeInterval + + + ){" "} + + + DateTime + + +
+   |{" "} + + + bop_date_time_minus + + {" "} + => +
+      + + + enforce_binary_op_schema + + {" "} + (τ₁, + + + DateTime + + + ) (τ₂, + + + DateTimeInterval + + + ){" "} + + + DateTime + + +
+   |{" "} + + + bop_date_time_ne + + +
+   |{" "} + + + bop_date_time_lt + + +
+   |{" "} + + + bop_date_time_le + + +
+   |{" "} + + + bop_date_time_gt + + +
+   |{" "} + + + bop_date_time_ge + + {" "} + => +
+      + + + enforce_binary_op_schema + + {" "} + (τ₁, + + + DateTime + + + ) (τ₂, + + + DateTime + + + ){" "} + + + Bool + + +
+   |{" "} + + + bop_date_time_duration + + {" "} + => +
+      + + + enforce_binary_op_schema + + {" "} + (τ₁, + + + DateTime + + + ) (τ₂, + + + DateTime + + + ){" "} + + + DateTimeInterval + + +
+   |{" "} + + + bop_date_time_duration_days + + {" "} + => +
+      + + + enforce_binary_op_schema + + {" "} + (τ₁, + + + DateTime + + + ) (τ₂, + + + DateTime + + + ){" "} + + + Float + + +
+   |{" "} + + + bop_date_time_duration_seconds + + {" "} + => +
+      + + + enforce_binary_op_schema + + {" "} + (τ₁, + + + DateTime + + + ) (τ₂, + + + DateTime + + + ){" "} + + + Float + + +
+   end.
+
+ Inductive{" "} + + enhanced_binary_op_has_type + {" "} + {"{"} + model: + + + brand_model + + + {"}"} :
+    + + + enhanced_binary_op + + {" "} + ->{" "} + + + rtype + + {" "} + ->{" "} + + + rtype + + {" "} + ->{" "} + + + rtype + + {" "} + -> Prop +
+     := +
+     |{" "} + + tenhanced_binary_date_time_op + {" "} + fb τin₁ τ + in₂ τout:
+          + + + date_time_binary_op_has_type + + {" "} + + fb + {" "} + τin₁ τin₂ τ + out -> +
+          + + + enhanced_binary_op_has_type + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + fb + + ) τin₁ τin₂ τ + out.
+
+ Definition{" "} + + + enhanced_binary_op_typing_infer + + {" "} + {"{"} + model: + + + brand_model + + + {"}"} (op: + + + enhanced_binary_op + + + ) (τ₁ τ₂: + + + rtype + + + ) := +
+   match{" "} + + op + {" "} + with +
+   |{" "} + + + enhanced_binary_date_time_op + + {" "} + fb =>{" "} + + + date_time_binary_op_type_infer + + {" "} + fb τ₁ τ₂ +
+   end.
+
+ Lemma{" "} + + + enhanced_binary_op_typing_infer_correct + + +
+       {"{"} + model: + + + brand_model + + + {"}"} +
+       (fb: + + + foreign_binary_op_type + + + )
+       {"{"}τ₁ τ₂ τ + out + {"}"} :
+    + + + enhanced_binary_op_typing_infer + + {" "} + + fb + {" "} + τ₁ τ₂ ={" "} + + + Some + + {" "} + τout -> +
+    + + + enhanced_binary_op_has_type + + {" "} + + fb + {" "} + τ₁ τ₂ τout.
+
+ Proof. +
+
+   intros.
+   destruct{" "} + fb; simpl. +
+   - destruct{" "} + d; simpl{" "} + in *; +
+     destruct τ₁;{" "} + destruct τ₂;{" "} + simpl in *;{" "} + try{" "} + discriminate;
+           + unfold{" "} + + + isDateTime + + + ,{" "} + + + isDateTimeInterval + + + ,{" "} + + isNat + {" "} + in *
+          ;{" "} + destruct x;{" "} + simpl in{" "} + H; try{" "} + discriminate +
+     ; destruct{" "} + ft; simpl{" "} + in H;{" "} + try{" "} + discriminate +
+     ; destruct{" "} + x0; simpl{" "} + in H;{" "} + try{" "} + discriminate +
+     ; try ( + destruct ft;{" "} + simpl in{" "} + H; try{" "} + discriminate)
+     ; invcs{" "} + H +
+     ; constructor +
+     ; repeat{" "} + rewrite{" "} + + + Nat_canon + + +
+     ; repeat{" "} + rewrite{" "} + + + Foreign_canon + + +
+     ; try{" "} + constructor.
+ Qed. +
+
+ Lemma{" "} + + + enhanced_binary_op_typing_infer_least + + +
+       {"{"} + model: + + + brand_model + + + {"}"} +
+       (fb: + + + foreign_binary_op_type + + + )
+       {"{"}τ₁ τ₂ τ + out₁ τout₂{"}"} :{" "} +
+    + + + enhanced_binary_op_typing_infer + + {" "} + + fb + {" "} + τ₁ τ₂ ={" "} + + + Some + + {" "} + τout₁ -> +
+    + + + enhanced_binary_op_has_type + + {" "} + + fb + {" "} + τ₁ τ₂ τout₂ -> +
+   τout₁ ≤ τ + out₂. +
+
+ Proof. +
+
+   intros.
+   destruct{" "} + fb; simpl. +
+   - destruct{" "} + d; simpl{" "} + in *; +
+        + destruct τ₁;{" "} + destruct τ₂;{" "} + simpl in *;{" "} + try{" "} + discriminate +
+     ; unfold{" "} + + + isDateTime + + + ,{" "} + + + isDateTimeInterval + + + ,{" "} + + isNat + {" "} + in *
+     ; destruct{" "} + x; simpl{" "} + in H;{" "} + try{" "} + discriminate +
+     ; destruct{" "} + ft; simpl{" "} + in H;{" "} + try{" "} + discriminate +
+     ; destruct{" "} + x0; simpl{" "} + in H;{" "} + try{" "} + discriminate +
+     ; try ( + destruct ft;{" "} + simpl in{" "} + H; try{" "} + discriminate)
+     ; invcs{" "} + H +
+     ; repeat{" "} + rewrite{" "} + + + Foreign_canon + + {" "} + in H0 +
+     ; invcs{" "} + H0 +
+     ; invcs{" "} + H1 +
+     ; reflexivity. +
+ Qed. +
+
+ Lemma{" "} + + + enhanced_binary_op_typing_infer_complete + + +
+       {"{"} + model: + + + brand_model + + + {"}"} +
+       (fb: + + + foreign_binary_op_type + + + )
+       {"{"}τ₁ τ₂ τ + out + {"}"} :
+    + + + enhanced_binary_op_typing_infer + + {" "} + + fb + {" "} + τ₁ τ₂ ={" "} + + + None + + {" "} + -> +
+   ~{" "} + + + enhanced_binary_op_has_type + + {" "} + + fb + {" "} + τ₁ τ₂ τout.
+
+ Proof. +
+
+   destruct{" "} + fb; simpl;{" "} + intros.
+   - intro{" "} + HH; invcs{" "} + HH.
+     destruct{" "} + d; simpl{" "} + in *; invcs{" "} + H1; simpl{" "} + in H;{" "} + try{" "} + discriminate.
+ Qed. +
+
+ Definition{" "} + + + enhanced_binary_op_typing_infer_sub + + {" "} + {"{"} + model: + + + brand_model + + + {"}"} (op: + + + enhanced_binary_op + + + ) (τ₁ τ₂: + + + rtype + + + ) := +
+   match{" "} + + op + {" "} + with +
+   |{" "} + + + enhanced_binary_date_time_op + + {" "} + fb =>{" "} + + + date_time_binary_op_type_infer_sub + + {" "} + fb τ₁ τ₂ +
+   end.
+
+ Lemma{" "} + + + enhanced_binary_op_typing_sound + + {" "} + {"{"} + model :{" "} + + + brand_model + + + {"}"} +
+       (fu :{" "} + + + foreign_binary_op_type + + + ) (τin₁ τin₂ τ + out :{" "} + + + rtype + + + ) :
+    + + + enhanced_binary_op_has_type + + {" "} + + fu + {" "} + τin₁ τin₂ τ + out -> +
+   forall{" "} + dindin₂ :{" "} + + + data + + + ,
+     din₁ ▹ τ + in₁ -> +
+     din₂ ▹ τ + in₂ -> +
+     exists{" "} + dout :{" "} + + + data + + + ,
+        + + + enhanced_binary_op_interp + + {" "} + + + brand_relation_brands + + {" "} + + fu + {" "} + dindin₂ ={" "} + + + Some + + {" "} + + dout + {" "} + /\{" "} + + dout + {" "} + ▹ τout.
+
+ Proof. +
+
+   intros.
+   destruct{" "} + H.
+   - eapply{" "} + + + date_time_binary_op_typing_sound + + + ; eauto.
+ Qed. +
+
+ + Program + Instance{" "} + + + enhanced_foreign_binary_op_typing + + +
+         {"{"} + model: + + + brand_model + + + {"}"} :
+   @ + + + foreign_binary_op_typing + + +
+      + + + enhanced_foreign_data + + +
+      + + + enhanced_foreign_binary_op + + +
+      + + + enhanced_foreign_type + + +
+      + + + enhanced_foreign_data_typing + + +
+      + + model + +
+   := {"{"}{" "} + + + foreign_binary_op_typing_has_type + + {" "} + :={" "} + + + enhanced_binary_op_has_type + + +
+        ;{" "} + + + foreign_binary_op_typing_sound + + {" "} + :={" "} + + + enhanced_binary_op_typing_sound + + +
+        ;{" "} + + + foreign_binary_op_typing_infer + + {" "} + :={" "} + + + enhanced_binary_op_typing_infer + + +
+        ;{" "} + + + foreign_binary_op_typing_infer_correct + + {" "} + :={" "} + + + enhanced_binary_op_typing_infer_correct + + +
+        ;{" "} + + + foreign_binary_op_typing_infer_least + + {" "} + :={" "} + + + enhanced_binary_op_typing_infer_least + + +
+        ;{" "} + + + foreign_binary_op_typing_infer_complete + + {" "} + :={" "} + + + enhanced_binary_op_typing_infer_complete + + +
+        ;{" "} + + + foreign_binary_op_typing_infer_sub + + {" "} + :={" "} + + + enhanced_binary_op_typing_infer_sub + + +
+      {"}"}.
+
+ Instance{" "} + + enhanced_foreign_typing + {" "} + {"{"} + model: + + + brand_model + + + {"}"}:
+   @ + + + foreign_typing + + +
+      + + + enhanced_foreign_runtime + + +
+      + + + enhanced_foreign_type + + +
+      + + model + +
+   :={" "} + + + mk_foreign_typing + + +
+         + + + enhanced_foreign_runtime + + +
+         + + + enhanced_foreign_type + + +
+        model +
+         + + + enhanced_foreign_data_typing + + +
+         + + + enhanced_foreign_unary_op_typing + + +
+         + + + enhanced_foreign_binary_op_typing + + + .
+
+ Instance{" "} + + enhanced_basic_model + {" "} + {"{"} + model: + + + brand_model + + + {"}"} :
+    + + + basic_model + + +
+   :={" "} + + + mk_basic_model + + +
+         + + + enhanced_foreign_runtime + + +
+         + + + enhanced_foreign_type + + +
+        model +
+         + + + enhanced_foreign_typing + + + .
+
+
+ Module{" "} + + EnhancedForeignType + {" "} + <:{" "} + + + CompilerForeignType + + + .
+   Definition{" "} + + + compiler_foreign_type + + {" "} + :{" "} + + + foreign_type + + +
+     :={" "} + + + enhanced_foreign_type + + + .
+ End{" "} + + + EnhancedForeignType + + + .
+
+ + Require + Import{" "} + + ZArith + + .
+ Module{" "} + + EnhancedModel + + (bm: + + + CompilerBrandModel + + + ( + + + EnhancedForeignType + + + )) <:{" "} + + + CompilerModel + + + .
+   Definition{" "} + + compiler_foreign_type + {" "} + :{" "} + + + foreign_type + + +
+     :={" "} + + + enhanced_foreign_type + + + .
+   Definition{" "} + + compiler_basic_model + {" "} + : @ + + + basic_model + + +
+     := @ + + + enhanced_basic_model + + {" "} + + + bm.compiler_brand_model + + + .
+   Definition{" "} + + + compiler_model_foreign_to_java + + {" "} + :{" "} + + + foreign_to_java + + +
+     :={" "} + + + enhanced_foreign_to_java + + + .
+   Definition{" "} + + + compiler_model_foreign_to_javascript + + {" "} + :{" "} + + + foreign_to_javascript + + +
+     :={" "} + + + enhanced_foreign_to_javascript + + + .
+   Definition{" "} + + + compiler_model_foreign_to_ajavascript + + {" "} + :{" "} + + + foreign_to_ajavascript + + +
+     :={" "} + + + enhanced_foreign_to_ajavascript + + + .
+   Definition{" "} + + + compiler_model_foreign_to_scala + + {" "} + :{" "} + + + foreign_to_scala + + +
+     :={" "} + + + enhanced_foreign_to_scala + + + .
+   Definition{" "} + + + compiler_model_foreign_to_JSON + + {" "} + :{" "} + + + foreign_to_JSON + + +
+     :={" "} + + + enhanced_foreign_to_JSON + + + .
+   Definition{" "} + + + compiler_model_foreign_type_to_JSON + + {" "} + :{" "} + + + foreign_type_to_JSON + + +
+     :={" "} + + + enhanced_foreign_type_to_JSON + + + .
+   Definition{" "} + + + compiler_model_foreign_reduce_op + + {" "} + :{" "} + + + foreign_reduce_op + + +
+     :={" "} + + + enhanced_foreign_reduce_op + + + .
+   Definition{" "} + + + compiler_model_foreign_to_reduce_op + + {" "} + :{" "} + + + foreign_to_reduce_op + + +
+     :={" "} + + + enhanced_foreign_to_reduce_op + + + .
+   Definition{" "} + + + compiler_model_foreign_to_spark + + {" "} + :{" "} + + + foreign_to_spark + + +
+     :={" "} + + + enhanced_foreign_to_spark + + + .
+   Definition{" "} + + + compiler_model_foreign_cloudant + + {" "} + :{" "} + + + foreign_cloudant + + +
+     :={" "} + + + enhanced_foreign_cloudant + + + .
+   Definition{" "} + + + compiler_model_foreign_to_cloudant + + {" "} + :{" "} + + + foreign_to_cloudant + + +
+     :={" "} + + + enhanced_foreign_to_cloudant + + + .
+   Definition{" "} + + + compiler_model_nraenv_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nraenv + + +
+     :={" "} + + + foreign_nraenv_optimizer_logger + + + .
+   Definition{" "} + + + compiler_model_nnrc_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrc + + +
+     :={" "} + + + foreign_nnrc_optimizer_logger + + + .
+   Definition{" "} + + + compiler_model_nnrs_imp_expr_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp_expr + + +
+     :={" "} + + + foreign_nnrs_imp_expr_optimizer_logger + + + .
+   Definition{" "} + + + compiler_model_nnrs_imp_stmt_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp_stmt + + +
+     :={" "} + + + foreign_nnrs_imp_stmt_optimizer_logger + + + .
+   Definition{" "} + + + compiler_model_nnrs_imp_optimizer_logger + + {" "} + :{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + + + nnrs_imp + + +
+     :={" "} + + + foreign_nnrs_imp_optimizer_logger + + + .
+   Definition{" "} + + + compiler_model_dnnrc_optimizer_logger + + {" "} + {"{"} + br: + + + brand_relation + + + {"}"}:{" "} + + + optimizer_logger + + {" "} + + + string + + {" "} + (@ + + + dnnrc_base + + {" "} + _ ( + + + type_annotation + + {" "} + + + unit + + + ){" "} + + + dataframe + + + )
+     :={" "} + + + foreign_dnnrc_optimizer_logger + + + .
+   Definition{" "} + + + compiler_model_foreign_data_typing + + {" "} + :{" "} + + + foreign_data_typing + + +
+     :={" "} + + + enhanced_foreign_data_typing + + + .
+ End{" "} + + + EnhancedModel + + + .
+
+ Module{" "} + + CompEnhanced + + .
+   Module{" "} + + Enhanced + + .
+   Module{" "} + + Model + + .
+     Definition{" "} + + basic_model + {" "} + (bm: + + + brand_model + + + ) :{" "} + + + basic_model + + +
+       := @ + + + enhanced_basic_model + + {" "} + + bm + + .
+
+     Definition{" "} + + foreign_type + {" "} + :{" "} + + + foreign_type + + +
+       :={" "} + + + enhanced_foreign_type + + + .
+
+     Definition{" "} + + foreign_typing + {" "} + (bm: + + + brand_model + + + ) :{" "} + + + foreign_typing + + +
+       := @ + + + enhanced_foreign_typing + + {" "} + + bm + + .
+
+   End{" "} + + + Model + + + .
+
+     Module{" "} + + Data + + .
+        + Definition + {" "} + + dstringblob + {" "} + (s :{" "} + + + STRING + + + ) :{" "} + + + data + + +
+         :={" "} + + + dforeign + + {" "} + ( + + + enhancedstring + + {" "} + + s + + ). +
+        + Definition + {" "} + + jstringblob + {" "} + (s :{" "} + + + STRING + + + ) :{" "} + + + json + + +
+         :={" "} + + + jstring + + {" "} + ( + + + jenhancedstring + + {" "} + + s + + ). +
+
+        +
+        + Definition + {" "} + + date_time_part + {" "} + :={" "} + + + date_time_component + + + .
+        + Definition + {" "} + + date_time_day + {" "} + :{" "} + + + date_time_part + + {" "} + :={" "} + + + date_time_DAY + + + .
+        + Definition + {" "} + + date_time_month + {" "} + :{" "} + + + date_time_part + + {" "} + :={" "} + + + date_time_MONTH + + + .
+        + Definition + {" "} + + + date_time_quarter + + {" "} + :{" "} + + + date_time_part + + {" "} + :={" "} + + + date_time_QUARTER + + + .
+        + Definition + {" "} + + date_time_year + {" "} + :{" "} + + + date_time_part + + {" "} + :={" "} + + + date_time_YEAR + + + .
+
+        + Definition + {" "} + + ddate_time + {" "} + (d: + + + DATE_TIME + + + ) :{" "} + + + data + + +
+         :={" "} + + + dforeign + + {" "} + ( + + + enhanceddateTime + + {" "} + + d + + ). +
+
+        + Definition + {" "} + + + ddate_time_duration + + {" "} + (d: + + + DATE_TIME_DURATION + + + ) :{" "} + + + data + + +
+         :={" "} + + + dforeign + + {" "} + ( + + + enhanceddateTimeinterval + + {" "} + + d + + ). +
+
+     End{" "} + + + Data + + + .
+
+     Module{" "} + + Ops + + .
+       Module{" "} + + Unary + + .
+          + Definition{" "} + + + date_time_component + + {" "} + (component: + + + date_time_component + + + )
+           :={" "} + + + OpForeignUnary + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + ( + + + uop_date_time_component + + {" "} + + + component + + + )). +
+          + Definition{" "} + + + date_time_from_string + + +
+           :={" "} + + + OpForeignUnary + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + + + uop_date_time_from_string + + + ). +
+          + Definition{" "} + + + date_time_duration_from_string + + +
+           :={" "} + + + OpForeignUnary + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + + + uop_date_time_duration_from_string + + + ). +
+
+          + Definition{" "} + + + OpDateTimeComponent + + {" "} + :={" "} + + + date_time_component + + + .
+          + Definition{" "} + + + OpDateTimeFromString + + {" "} + :={" "} + + + date_time_from_string + + + .
+          + Definition{" "} + + + OpDateTimeIntervalFromString + + {" "} + :={" "} + + + date_time_duration_from_string + + + .
+          +
+       End{" "} + + + Unary + + + .
+        +
+       Module{" "} + + Binary + + .
+          + Definition{" "} + + + date_time_plus + + +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_plus + + + ). +
+          + Definition{" "} + + + date_time_minus + + +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_minus + + + ). +
+          + Definition{" "} + + date_time_ne + {" "} +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_ne + + + ). +
+          + Definition{" "} + + date_time_lt + {" "} +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_lt + + + ). +
+          + Definition{" "} + + date_time_le + {" "} +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_le + + + ). +
+          + Definition{" "} + + date_time_gt + {" "} +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_gt + + + ). +
+          + Definition{" "} + + date_time_ge + {" "} +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_ge + + + ). +
+
+          + Definition{" "} + + + date_time_duration_days + + +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + ( + + + bop_date_time_duration_days + + + )). +
+          + Definition{" "} + + + date_time_duration_seconds + + {" "} +
+           :={" "} + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + ( + + + bop_date_time_duration_seconds + + + )). +
+          +
+          + Definition{" "} + + + OpDateTimePlus + + {" "} + :={" "} + + + date_time_plus + + + .
+          + Definition{" "} + + + OpDateTimeMinus + + {" "} + :={" "} + + + date_time_minus + + + .
+          + Definition{" "} + + OpDateTimeNe + {" "} + :={" "} + + + date_time_ne + + + .
+          + Definition{" "} + + OpDateTimeLt + {" "} + :={" "} + + + date_time_lt + + + .
+          + Definition{" "} + + OpDateTimeLe + {" "} + :={" "} + + + date_time_le + + + .
+          + Definition{" "} + + OpDateTimeGt + {" "} + :={" "} + + + date_time_gt + + + .
+          + Definition{" "} + + OpDateTimeGe + {" "} + :={" "} + + + date_time_ge + + + .
+
+          + Definition{" "} + + + OpDateTimeIntervalDays + + {" "} + :={" "} + + + date_time_duration_days + + + .
+          + Definition{" "} + + + OpDateTimeIntervalSeconds + + {" "} + :={" "} + + + date_time_duration_seconds + + + .
+
+       End{" "} + + + Binary + + + .
+     End{" "} + + + Ops + + + .
+   End{" "} + + + Enhanced + + + .
+ End{" "} + + + CompEnhanced + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.CTO.CTO.html b/docs/assets/specification/ErgoSpec.Common.CTO.CTO.html deleted file mode 100644 index bc3a32f9..00000000 --- a/docs/assets/specification/ErgoSpec.Common.CTO.CTO.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -Module ErgoSpec.Common.CTO.CTO - - - - - - -

Module ErgoSpec.Common.CTO.CTO

-
-
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-
-Section CTO.
-  Section Ast.
-    Context {A:Set}.
-    Context {N:Set}.
-  
-    Inductive cto_type :=
-    | CTOBoolean : A -> cto_type (* bool atomic type *)
-    | CTOString : A -> cto_type (* string atomic type *)
-    | CTODouble : A -> cto_type (* double atomic type *)
-    | CTOLong : A -> cto_type (* long atomic type *)
-    | CTOInteger : A -> cto_type (* integer atomic type *)
-    | CTODateTime : A -> cto_type (* date and time atomic type *)
-    | CTOClassRef : A -> N -> cto_type (* relative class reference *)
-    | CTOOption : A -> cto_type -> cto_type (* optional type *)
-    | CTOArray : A -> cto_type -> cto_type (* array type *)
-    .
-
-    Definition cto_annot (ct:cto_type) : A :=
-      match ct with
-      | CTOBoolean a => a
-      | CTOString a => a
-      | CTODouble a => a
-      | CTOLong a => a
-      | CTOInteger a => a
-      | CTODateTime a => a
-      | CTOClassRef a _ => a
-      | CTOOption a _ => a
-      | CTOArray a _ => a
-      end.
-
-    Inductive cto_declaration_desc :=
-    | CTOEnum : list string -> cto_declaration_desc
-    | CTOTransaction : is_abstract -> @extends N -> list (string * cto_type) -> cto_declaration_desc
-    | CTOConcept : is_abstract -> @extends N -> list (string * cto_type) -> cto_declaration_desc
-    | CTOEvent : is_abstract -> @extends N -> list (string * cto_type) -> cto_declaration_desc
-    | CTOAsset : is_abstract -> @extends N -> list (string * cto_type) -> cto_declaration_desc
-    | CTOParticipant : is_abstract -> @extends N -> list (string * cto_type) -> cto_declaration_desc.
-
-    Record cto_declaration :=
-      mkCTODeclaration
-        { cto_declaration_annot : A;
-          cto_declaration_name : local_name;
-          cto_declaration_type : cto_declaration_desc; }.
-
-    Record cto_package :=
-      mkCTOPackage
-        { cto_package_annot : A;
-          cto_package_file : string;
-          cto_package_namespace : namespace_name;
-          cto_package_imports : list (@import_decl A);
-          cto_package_declarations : list cto_declaration; }.
-  End Ast.
-
-  Definition rcto_type {A:Set} : Set := @cto_type A relative_name.
-  Definition rcto_declaration_desc {A:Set} : Set := @cto_declaration_desc A relative_name.
-  Definition rcto_declaration {A:Set} : Set := @cto_declaration A relative_name.
-  Definition rcto_package {A:Set} : Set := @cto_package A relative_name.
-  
-  Definition lrcto_type : Set := @cto_type provenance relative_name.
-  Definition lrcto_declaration_desc : Set := @cto_declaration_desc provenance relative_name.
-  Definition lrcto_declaration : Set := @cto_declaration provenance relative_name.
-  Definition lrcto_package : Set := @cto_package provenance relative_name.
-
-End CTO.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.CTO.CTO.jsx b/docs/assets/specification/ErgoSpec.Common.CTO.CTO.jsx new file mode 100644 index 00000000..3297bc0f --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.CTO.CTO.jsx @@ -0,0 +1,803 @@ +
+ + Module ErgoSpec.Common.CTO.CTO + + +

Module ErgoSpec.Common.CTO.CTO

+
+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+
+ Section{" "} + + CTO + + .
+   Section{" "} + + Ast + + .
+     Context {"{"} + A:Set + {"}"}.
+     Context {"{"} + N:Set + {"}"}.
+    +
+     Inductive{" "} + + cto_type + {" "} + := +
+     |{" "} + + CTOBoolean + {" "} + :{" "} + + A + {" "} + ->{" "} + + cto_type + {" "} + (* bool atomic type *) +
+     |{" "} + + CTOString + {" "} + :{" "} + + A + {" "} + ->{" "} + + cto_type + {" "} + (* string atomic type *) +
+     |{" "} + + CTODouble + {" "} + :{" "} + + A + {" "} + ->{" "} + + cto_type + {" "} + (* double atomic type *) +
+     |{" "} + + CTOLong + {" "} + :{" "} + + A + {" "} + ->{" "} + + cto_type + {" "} + (* long atomic type *) +
+     |{" "} + + CTOInteger + {" "} + :{" "} + + A + {" "} + ->{" "} + + cto_type + {" "} + (* integer atomic type *) +
+     |{" "} + + CTODateTime + {" "} + :{" "} + + A + {" "} + ->{" "} + + cto_type + {" "} + (* date and time atomic type *) +
+     |{" "} + + CTOClassRef + {" "} + :{" "} + + A + {" "} + ->{" "} + + N + {" "} + ->{" "} + + cto_type + {" "} + (* relative class reference *) +
+     |{" "} + + CTOOption + {" "} + :{" "} + + A + {" "} + ->{" "} + + cto_type + {" "} + ->{" "} + + cto_type + {" "} + (* optional type *) +
+     |{" "} + + CTOArray + {" "} + :{" "} + + A + {" "} + ->{" "} + + cto_type + {" "} + ->{" "} + + cto_type + {" "} + (* array type *) +
+     . +
+
+     Definition{" "} + + cto_annot + {" "} + (ct: + + cto_type + + ) :{" "} + + A + {" "} + := +
+       match{" "} + + ct + {" "} + with +
+       |{" "} + + CTOBoolean + {" "} + a => a +
+       |{" "} + + CTOString + {" "} + a => a +
+       |{" "} + + CTODouble + {" "} + a => a +
+       |{" "} + + CTOLong + {" "} + a => a +
+       |{" "} + + CTOInteger + {" "} + a => a +
+       |{" "} + + CTODateTime + {" "} + a => a +
+       |{" "} + + CTOClassRef + {" "} + a _ =>{" "} + a +
+       |{" "} + + CTOOption + {" "} + a _ =>{" "} + a +
+       |{" "} + + CTOArray + {" "} + a _ =>{" "} + a +
+       end.
+
+     Inductive{" "} + + cto_declaration_desc + {" "} + := +
+     |{" "} + + CTOEnum + {" "} + :{" "} + + + list + + {" "} + + + string + + {" "} + ->{" "} + + + cto_declaration_desc + + +
+     |{" "} + + CTOTransaction + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + cto_type + + ) ->{" "} + + + cto_declaration_desc + + +
+     |{" "} + + CTOConcept + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + cto_type + + ) ->{" "} + + + cto_declaration_desc + + +
+     |{" "} + + CTOEvent + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + cto_type + + ) ->{" "} + + + cto_declaration_desc + + +
+     |{" "} + + CTOAsset + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + cto_type + + ) ->{" "} + + + cto_declaration_desc + + +
+     |{" "} + + CTOParticipant + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + cto_type + + ) ->{" "} + + + cto_declaration_desc + + + .
+
+     Record{" "} + + cto_declaration + {" "} + := +
+        + + mkCTODeclaration + +
+         {"{"}{" "} + + cto_declaration_annot + {" "} + :{" "} + + A + + ;
+            + + cto_declaration_name + {" "} + :{" "} + + local_name + + ;
+            + + cto_declaration_type + {" "} + :{" "} + + + cto_declaration_desc + + + ; {"}"}.
+
+     Record{" "} + + cto_package + {" "} + := +
+        + + mkCTOPackage + +
+         {"{"}{" "} + + cto_package_annot + {" "} + :{" "} + + A + + ;
+            + + cto_package_file + {" "} + :{" "} + + + string + + + ;
+            + + cto_package_namespace + {" "} + :{" "} + + + namespace_name + + + ;
+            + + cto_package_imports + {" "} + :{" "} + + + list + + {" "} + (@ + + import_decl + {" "} + + A + + ); +
+            + + cto_package_declarations + {" "} + :{" "} + + + list + + {" "} + + cto_declaration + + ; {"}"}.
+   End{" "} + + Ast + + .
+
+   Definition{" "} + + rcto_type + {" "} + {"{"} + A:Set + {"}"} : Set := @ + + cto_type + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rcto_declaration_desc + {" "} + {"{"} + A:Set + {"}"} : Set := @ + + + cto_declaration_desc + + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rcto_declaration + {" "} + {"{"} + A:Set + {"}"} : Set := @ + + cto_declaration + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rcto_package + {" "} + {"{"} + A:Set + {"}"} : Set := @ + + cto_package + {" "} + + A + {" "} + + relative_name + + .
+    +
+   Definition{" "} + + lrcto_type + {" "} + : Set := @ + + cto_type + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrcto_declaration_desc + {" "} + : Set := @ + + + cto_declaration_desc + + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrcto_declaration + {" "} + : Set := @ + + cto_declaration + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrcto_package + {" "} + : Set := @ + + cto_package + {" "} + + provenance + {" "} + + relative_name + + .
+
+ End{" "} + + CTO + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Types.ErgoType.html b/docs/assets/specification/ErgoSpec.Common.Types.ErgoType.html deleted file mode 100644 index 77d473e6..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Types.ErgoType.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Types.ErgoType - - - - - - -

Module ErgoSpec.Common.Types.ErgoType

-
-
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-
-Section ErgoType.
-  Section Ast.
-    Context {A:Set}.
-    Context {N:Set}.
-  
-    Inductive ergo_type :=
-    | ErgoTypeAny : A -> ergo_type (* any type *)
-    | ErgoTypeNothing : A -> ergo_type (* nothing type *)
-    | ErgoTypeUnit : A -> ergo_type (* unit type *)
-    | ErgoTypeBoolean : A -> ergo_type (* bool atomic type *)
-    | ErgoTypeString : A -> ergo_type (* string atomic type *)
-    | ErgoTypeDouble : A -> ergo_type (* double atomic type *)
-    | ErgoTypeLong : A -> ergo_type (* long atomic type *)
-    | ErgoTypeInteger : A -> ergo_type (* integer atomic type *)
-    | ErgoTypeDateTime : A -> ergo_type (* date and time atomic type *)
-    | ErgoTypeClassRef : A -> N -> ergo_type (* relative class reference *)
-    | ErgoTypeOption : A -> ergo_type -> ergo_type (* optional type *)
-    | ErgoTypeRecord : A -> list (string*ergo_type) -> ergo_type (* record type *)
-    | ErgoTypeArray : A -> ergo_type -> ergo_type (* array type *)
-    | ErgoTypeSum : A -> ergo_type -> ergo_type -> ergo_type (* sum type *)
-    .
-
-    Definition type_annot (et:ergo_type) : A :=
-      match et with
-      | ErgoTypeAny a => a
-      | ErgoTypeNothing a => a
-      | ErgoTypeUnit a => a
-      | ErgoTypeBoolean a => a
-      | ErgoTypeString a => a
-      | ErgoTypeDouble a => a
-      | ErgoTypeLong a => a
-      | ErgoTypeInteger a => a
-      | ErgoTypeDateTime a => a
-      | ErgoTypeClassRef a _ => a
-      | ErgoTypeOption a _ => a
-      | ErgoTypeRecord a _ => a
-      | ErgoTypeArray a _ => a
-      | ErgoTypeSum a _ _ => a
-      end.
-
-    Record ergo_type_signature : Set :=
-      mkErgoTypeSignature
-        { type_signature_annot : A;
-          type_signature_params : list (string * ergo_type);
-          type_signature_output : option ergo_type;
-          type_signature_emits : option ergo_type; }.
-
-    Inductive ergo_type_declaration_desc :=
-    | ErgoTypeEnum : list string -> ergo_type_declaration_desc
-    | ErgoTypeTransaction : is_abstract -> @extends N -> list (string * ergo_type) -> ergo_type_declaration_desc
-    | ErgoTypeConcept : is_abstract -> @extends N -> list (string * ergo_type) -> ergo_type_declaration_desc
-    | ErgoTypeEvent : is_abstract -> @extends N -> list (string * ergo_type) -> ergo_type_declaration_desc
-    | ErgoTypeAsset : is_abstract -> @extends N -> list (string * ergo_type) -> ergo_type_declaration_desc
-    | ErgoTypeParticipant : is_abstract -> @extends N -> list (string * ergo_type) -> ergo_type_declaration_desc
-    | ErgoTypeGlobal : ergo_type -> ergo_type_declaration_desc
-    | ErgoTypeFunction : ergo_type_signature -> ergo_type_declaration_desc
-    | ErgoTypeContract :
-        ergo_type (* template type *)
-        -> ergo_type (* state type *)
-        -> list (string * ergo_type_signature) (* clauses signatures *)
-        -> ergo_type_declaration_desc.
-
-    Record ergo_type_declaration :=
-      mkErgoTypeDeclaration
-        { type_declaration_annot : A;
-          type_declaration_name : local_name;
-          type_declaration_type : ergo_type_declaration_desc; }.
-
-    Section Abstract.
-      Definition type_declaration_is_abstract
-                 (decl_desc:ergo_type_declaration_desc) : is_abstract :=
-        match decl_desc with
-        | ErgoTypeEnum _ => false
-        | ErgoTypeTransaction isabs _ _ => isabs
-        | ErgoTypeConcept isabs _ _ => isabs
-        | ErgoTypeEvent isabs _ _ => isabs
-        | ErgoTypeAsset isabs _ _ => isabs
-        | ErgoTypeParticipant isabs _ _ => isabs
-        | ErgoTypeGlobal _ => false
-        | ErgoTypeFunction _ => false
-        | ErgoTypeContract _ _ _ => false
-        end.
-
-    End Abstract.
-
-    Section Enum.
-      Definition type_declaration_is_enum
-                 (d:ergo_type_declaration_desc)
-      : bool :=
-        match d with
-        | ErgoTypeEnum _ => true
-        | _ => false
-        end.
-
-  End Enum.
-  
-  End Ast.
-
-  Definition rergo_type {A} : Set := @ergo_type A relative_name.
-  Definition rergo_type_signature {A} : Set := @ergo_type_signature A relative_name.
-  Definition rergo_type_declaration {A} : Set := @ergo_type_declaration A relative_name.
-  Definition rergo_type_declaration_desc {A} : Set := @ergo_type_declaration_desc A relative_name.
-
-  Definition aergo_type {A} : Set := @ergo_type A absolute_name.
-  Definition aergo_type_signature {A} : Set := @ergo_type_signature A absolute_name.
-  Definition aergo_type_declaration_desc {A} : Set := @ergo_type_declaration_desc A absolute_name.
-  Definition aergo_type_declaration {A} : Set := @ergo_type_declaration A absolute_name.
-  
-  Definition lrergo_type : Set := @ergo_type provenance relative_name.
-  Definition lrergo_type_signature : Set := @ergo_type_signature provenance relative_name.
-  Definition lrergo_type_declaration_desc : Set := @ergo_type_declaration_desc provenance relative_name.
-  Definition lrergo_type_declaration : Set := @ergo_type_declaration provenance relative_name.
-
-  Definition laergo_type : Set := @ergo_type provenance absolute_name.
-  Definition laergo_type_signature : Set := @ergo_type_signature provenance absolute_name.
-  Definition laergo_type_declaration : Set := @ergo_type_declaration provenance absolute_name.
-  Definition laergo_type_declaration_desc : Set := @ergo_type_declaration_desc provenance absolute_name.
-  
-  Definition lift_default_emits_type (prov:provenance) (emits:option laergo_type) : laergo_type :=
-    match emits with
-    | Some e => e
-    | None => ErgoTypeClassRef prov default_emits_absolute_name
-    end.
-
-  Definition lift_default_state_type (prov:provenance) (state:option laergo_type) : laergo_type :=
-    match state with
-    | Some e => e
-    | None => ErgoTypeClassRef prov default_state_absolute_name
-    end.
-
-  Definition default_throws_type (prov:provenance) : laergo_type :=
-    ErgoTypeClassRef prov default_error_absolute_name.
-
-  Definition mk_success_type (prov:provenance) (response_type state_type emit_type: laergo_type) : laergo_type :=
-    ErgoTypeRecord prov
-       ((this_response,response_type)
-          ::(this_state,state_type)
-          ::(this_emit,ErgoTypeArray prov emit_type)
-          ::nil)%string.
-
-  Definition mk_error_type (prov:provenance) (throw_type: laergo_type) : laergo_type := throw_type.
-  Definition mk_output_type (prov:provenance) (success_type error_type: laergo_type) : laergo_type :=
-    ErgoTypeSum prov success_type error_type.
-
-  Definition lift_default_state_name (state:option laergo_type) : eresult absolute_name :=
-    match state with
-    | None => esuccess default_state_absolute_name
-    | Some et =>
-      match et with
-      | ErgoTypeClassRef _ r => esuccess r
-      | _ => unresolved_name_error (type_annot et)
-      end
-    end.
-
-  Section Extends.
-    Definition fix_nothing (to:absolute_name) : list (absolute_name * absolute_name) := nil.
-    Definition fix_transaction (to:absolute_name) :=
-      if string_dec to "org.hyperledger.composer.system.Transaction"%string
-      then nil
-      else (to, "org.hyperledger.composer.system.Transaction"%string) :: nil.
-    Definition fix_event (to:absolute_name) :=
-      if string_dec to "org.hyperledger.composer.system.Event"%string
-      then nil
-      else (to, "org.hyperledger.composer.system.Event"%string) :: nil.
-    Definition fix_asset (to:absolute_name) :=
-      if string_dec to "org.hyperledger.composer.system.Asset"%string
-      then nil
-      else (to, "org.hyperledger.composer.system.Asset"%string) :: nil.
-    Definition fix_participant (to:absolute_name) :=
-      if string_dec to "org.hyperledger.composer.system.Participant"%string
-      then nil
-      else (to, "org.hyperledger.composer.system.Participant"%string) :: nil.
-    
-    Definition extends_rel
-               (fix_none:absolute_name -> list (absolute_name * absolute_name))
-               (to:absolute_name)
-               (e:@extends absolute_name) : list (absolute_name * absolute_name) :=
-      match e with
-      | None => fix_none to
-      | Some from => (to,from) :: nil
-      end.
-
-    Definition type_declaration_desc_extend_rel
-               (to:absolute_name)
-               (decl_desc:laergo_type_declaration_desc) : list (absolute_name * absolute_name) :=
-      match decl_desc with
-      | ErgoTypeEnum _ => extends_rel fix_nothing to None
-      | ErgoTypeTransaction _ e _ => extends_rel fix_transaction to e
-      | ErgoTypeConcept _ e _ => extends_rel fix_nothing to e
-      | ErgoTypeEvent _ e _ => extends_rel fix_event to e
-      | ErgoTypeAsset _ e _ => extends_rel fix_asset to e
-      | ErgoTypeParticipant _ e _ => extends_rel fix_participant to e
-      | ErgoTypeGlobal _ => nil
-      | ErgoTypeFunction _ => nil
-      | ErgoTypeContract _ _ _ => extends_rel fix_nothing to None
-      end.
-
-    Definition type_declaration_extend_rel
-               (decl:laergo_type_declaration) : list (absolute_name * absolute_name) :=
-      type_declaration_desc_extend_rel decl.(type_declaration_name) decl.(type_declaration_type).
-
-    Definition type_declarations_extend_rel
-               (decls:list laergo_type_declaration) : list (absolute_name * absolute_name) :=
-      List.concat (List.map type_declaration_extend_rel decls).
-  End Extends.
-  
-End ErgoType.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Types.ErgoType.jsx b/docs/assets/specification/ErgoSpec.Common.Types.ErgoType.jsx new file mode 100644 index 00000000..d8d69c99 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Types.ErgoType.jsx @@ -0,0 +1,2338 @@ +
+ + Module ErgoSpec.Common.Types.ErgoType + + +

Module ErgoSpec.Common.Types.ErgoType

+
+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+
+ Section{" "} + + ErgoType + + .
+   Section{" "} + + Ast + + .
+     Context {"{"} + A:Set + {"}"}.
+     Context {"{"} + N:Set + {"}"}.
+    +
+     Inductive{" "} + + ergo_type + {" "} + := +
+     |{" "} + + ErgoTypeAny + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* any type *) +
+     |{" "} + + ErgoTypeNothing + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* nothing type *) +
+     |{" "} + + ErgoTypeUnit + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* unit type *) +
+     |{" "} + + ErgoTypeBoolean + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* bool atomic type *) +
+     |{" "} + + ErgoTypeString + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* string atomic type *) +
+     |{" "} + + ErgoTypeDouble + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* double atomic type *) +
+     |{" "} + + ErgoTypeLong + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* long atomic type *) +
+     |{" "} + + ErgoTypeInteger + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* integer atomic type *) +
+     |{" "} + + ErgoTypeDateTime + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + (* date and time atomic type *) +
+     |{" "} + + ErgoTypeClassRef + {" "} + :{" "} + + A + {" "} + ->{" "} + + N + {" "} + ->{" "} + + ergo_type + {" "} + (* relative class reference *) +
+     |{" "} + + ErgoTypeOption + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + ->{" "} + + ergo_type + {" "} + (* optional type *) +
+     |{" "} + + ErgoTypeRecord + {" "} + :{" "} + + A + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + + * + + ergo_type + + ) ->{" "} + + ergo_type + {" "} + (* record type *) +
+     |{" "} + + ErgoTypeArray + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + ->{" "} + + ergo_type + {" "} + (* array type *) +
+     |{" "} + + ErgoTypeSum + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_type + {" "} + ->{" "} + + ergo_type + {" "} + ->{" "} + + ergo_type + {" "} + (* sum type *) +
+     . +
+
+     Definition{" "} + + type_annot + {" "} + (et: + + ergo_type + + ) :{" "} + + A + {" "} + := +
+       match{" "} + + et + {" "} + with +
+       |{" "} + + ErgoTypeAny + {" "} + a => a +
+       |{" "} + + + ErgoTypeNothing + + {" "} + a => a +
+       |{" "} + + + ErgoTypeUnit + + {" "} + a => a +
+       |{" "} + + + ErgoTypeBoolean + + {" "} + a => a +
+       |{" "} + + + ErgoTypeString + + {" "} + a => a +
+       |{" "} + + + ErgoTypeDouble + + {" "} + a => a +
+       |{" "} + + + ErgoTypeLong + + {" "} + a => a +
+       |{" "} + + + ErgoTypeInteger + + {" "} + a => a +
+       |{" "} + + + ErgoTypeDateTime + + {" "} + a => a +
+       |{" "} + + + ErgoTypeClassRef + + {" "} + a _ =>{" "} + a +
+       |{" "} + + + ErgoTypeOption + + {" "} + a _ =>{" "} + a +
+       |{" "} + + + ErgoTypeRecord + + {" "} + a _ =>{" "} + a +
+       |{" "} + + + ErgoTypeArray + + {" "} + a _ =>{" "} + a +
+       |{" "} + + ErgoTypeSum + {" "} + a _{" "} + _ => a +
+       end.
+
+     Record{" "} + + ergo_type_signature + {" "} + : Set := +
+        + + mkErgoTypeSignature + +
+         {"{"}{" "} + + type_signature_annot + {" "} + :{" "} + + A + + ;
+            + + type_signature_params + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_type + + ); +
+            + + type_signature_output + {" "} + :{" "} + + + option + + {" "} + + ergo_type + + ;
+            + + type_signature_emits + {" "} + :{" "} + + + option + + {" "} + + ergo_type + + ; {"}"}.
+
+     Inductive{" "} + + ergo_type_declaration_desc + {" "} + := +
+     |{" "} + + ErgoTypeEnum + {" "} + :{" "} + + + list + + {" "} + + + string + + {" "} + ->{" "} + + + ergo_type_declaration_desc + + +
+     |{" "} + + ErgoTypeTransaction + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_type + + ) ->{" "} + + + ergo_type_declaration_desc + + +
+     |{" "} + + ErgoTypeConcept + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_type + + ) ->{" "} + + + ergo_type_declaration_desc + + +
+     |{" "} + + ErgoTypeEvent + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_type + + ) ->{" "} + + + ergo_type_declaration_desc + + +
+     |{" "} + + ErgoTypeAsset + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_type + + ) ->{" "} + + + ergo_type_declaration_desc + + +
+     |{" "} + + ErgoTypeParticipant + {" "} + :{" "} + + is_abstract + {" "} + -> @ + + extends + {" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_type + + ) ->{" "} + + + ergo_type_declaration_desc + + +
+     |{" "} + + ErgoTypeGlobal + {" "} + :{" "} + + ergo_type + {" "} + ->{" "} + + + ergo_type_declaration_desc + + +
+     |{" "} + + ErgoTypeFunction + {" "} + :{" "} + + + ergo_type_signature + + {" "} + ->{" "} + + + ergo_type_declaration_desc + + +
+     |{" "} + + ErgoTypeContract + {" "} + :
+          + + ergo_type + {" "} + (* template type *) +
+         ->{" "} + + ergo_type + {" "} + (* state type *) +
+         ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + ergo_type_signature + + + ) (* clauses signatures *) +
+         ->{" "} + + + ergo_type_declaration_desc + + + .
+
+     Record{" "} + + ergo_type_declaration + {" "} + := +
+        + + mkErgoTypeDeclaration + +
+         {"{"}{" "} + + type_declaration_annot + {" "} + :{" "} + + A + + ;
+            + + type_declaration_name + {" "} + :{" "} + + local_name + + ;
+            + + type_declaration_type + {" "} + :{" "} + + + ergo_type_declaration_desc + + + ; {"}"}.
+
+     Section{" "} + + Abstract + + .
+        + Definition + {" "} + + type_declaration_is_abstract + +
+                  ( + decl_desc: + + + ergo_type_declaration_desc + + + ) :{" "} + + is_abstract + {" "} + := +
+          + match{" "} + + decl_desc + {" "} + with +
+         |{" "} + + + ErgoTypeEnum + + {" "} + _ =>{" "} + + + false + + +
+         |{" "} + + + ErgoTypeTransaction + + {" "} + isabs _{" "} + _ => isabs +
+         |{" "} + + + ErgoTypeConcept + + {" "} + isabs _{" "} + _ => isabs +
+         |{" "} + + + ErgoTypeEvent + + {" "} + isabs _{" "} + _ => isabs +
+         |{" "} + + + ErgoTypeAsset + + {" "} + isabs _{" "} + _ => isabs +
+         |{" "} + + + ErgoTypeParticipant + + {" "} + isabs _{" "} + _ => isabs +
+         |{" "} + + + ErgoTypeGlobal + + {" "} + _ =>{" "} + + + false + + +
+         |{" "} + + + ErgoTypeFunction + + {" "} + _ =>{" "} + + + false + + +
+         |{" "} + + + ErgoTypeContract + + {" "} + _ _{" "} + _ =>{" "} + + + false + + +
+          + end.
+
+     End{" "} + + + Abstract + + + .
+
+     Section{" "} + + Enum + + .
+        + Definition + {" "} + + type_declaration_is_enum + +
+                  ( + d: + + + ergo_type_declaration_desc + + + )
+       :{" "} + + + bool + + {" "} + := +
+          + match{" "} + + d + {" "} + with +
+         |{" "} + + + ErgoTypeEnum + + {" "} + _ =>{" "} + + + true + + +
+         |{" "} + _ =>{" "} + + + false + + +
+          + end.
+
+   End{" "} + + Enum + + .
+    +
+   End{" "} + + Ast + + .
+
+   Definition{" "} + + rergo_type + {" "} + {"{"} + A + {"}"} : Set := @ + + ergo_type + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_type_signature + {" "} + {"{"} + A + {"}"} : Set := @ + + + ergo_type_signature + + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_type_declaration + {" "} + {"{"} + A + {"}"} : Set := @ + + + ergo_type_declaration + + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_type_declaration_desc + {" "} + {"{"} + A + {"}"} : Set := @ + + + ergo_type_declaration_desc + + {" "} + + A + {" "} + + relative_name + + .
+
+   Definition{" "} + + aergo_type + {" "} + {"{"} + A + {"}"} : Set := @ + + ergo_type + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + aergo_type_signature + {" "} + {"{"} + A + {"}"} : Set := @ + + + ergo_type_signature + + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + aergo_type_declaration_desc + {" "} + {"{"} + A + {"}"} : Set := @ + + + ergo_type_declaration_desc + + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + aergo_type_declaration + {" "} + {"{"} + A + {"}"} : Set := @ + + + ergo_type_declaration + + {" "} + + A + {" "} + + absolute_name + + .
+    +
+   Definition{" "} + + lrergo_type + {" "} + : Set := @ + + ergo_type + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_type_signature + {" "} + : Set := @ + + + ergo_type_signature + + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_type_declaration_desc + {" "} + : Set := @ + + + ergo_type_declaration_desc + + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_type_declaration + {" "} + : Set := @ + + + ergo_type_declaration + + {" "} + + provenance + {" "} + + relative_name + + .
+
+   Definition{" "} + + laergo_type + {" "} + : Set := @ + + ergo_type + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_type_signature + {" "} + : Set := @ + + + ergo_type_signature + + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_type_declaration + {" "} + : Set := @ + + + ergo_type_declaration + + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_type_declaration_desc + {" "} + : Set := @ + + + ergo_type_declaration_desc + + {" "} + + provenance + {" "} + + absolute_name + + .
+    +
+   Definition{" "} + + lift_default_emits_type + {" "} + (prov: + + provenance + + ) (emits: + + + option + + {" "} + + laergo_type + + ) :{" "} + + laergo_type + {" "} + := +
+     match{" "} + + emits + {" "} + with +
+     |{" "} + + + Some + + {" "} + e => e +
+     |{" "} + + + None + + {" "} + =>{" "} + + + ErgoTypeClassRef + + {" "} + + prov + {" "} + + + default_emits_absolute_name + + +
+     end.
+
+   Definition{" "} + + lift_default_state_type + {" "} + (prov: + + provenance + + ) (state: + + + option + + {" "} + + laergo_type + + ) :{" "} + + laergo_type + {" "} + := +
+     match{" "} + + state + {" "} + with +
+     |{" "} + + + Some + + {" "} + e => e +
+     |{" "} + + + None + + {" "} + =>{" "} + + + ErgoTypeClassRef + + {" "} + + prov + {" "} + + + default_state_absolute_name + + +
+     end.
+
+   Definition{" "} + + default_throws_type + {" "} + (prov: + + provenance + + ) :{" "} + + laergo_type + {" "} + := +
+      + + + ErgoTypeClassRef + + {" "} + + prov + {" "} + + + default_error_absolute_name + + + .
+
+   Definition{" "} + + mk_success_type + {" "} + (prov: + + provenance + + ) (response_type{" "} + state_type emit_type + :{" "} + + laergo_type + + ) :{" "} + + laergo_type + {" "} + := +
+      + + + ErgoTypeRecord + + {" "} + + prov + +
+        (( + + this_response + + , + + + response_type + + + )
+           ::( + + this_state + + , + + state_type + + )
+           ::( + + this_emit + + , + + + ErgoTypeArray + + {" "} + + prov + {" "} + + emit_type + + )
+           :: + + nil + + )%string.
+
+   Definition{" "} + + mk_error_type + {" "} + (prov: + + provenance + + ) (throw_type:{" "} + + laergo_type + + ) :{" "} + + laergo_type + {" "} + :={" "} + + throw_type + + .
+   Definition{" "} + + mk_output_type + {" "} + (prov: + + provenance + + ) (success_type{" "} + error_type:{" "} + + laergo_type + + ) :{" "} + + laergo_type + {" "} + := +
+      + + ErgoTypeSum + {" "} + + prov + {" "} + + + success_type + + {" "} + + error_type + + .
+
+   Definition{" "} + + lift_default_state_name + {" "} + (state: + + + option + + {" "} + + laergo_type + + ) :{" "} + + eresult + {" "} + + absolute_name + {" "} + := +
+     match{" "} + + state + {" "} + with +
+     |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + default_state_absolute_name + + +
+     |{" "} + + + Some + + {" "} + et => +
+       match{" "} + et with +
+       |{" "} + + + ErgoTypeClassRef + + {" "} + _ r =>{" "} + + esuccess + {" "} + r +
+       | + _ + =>{" "} + + + unresolved_name_error + + {" "} + ( + + type_annot + {" "} + et)
+       end +
+     end.
+
+   Section{" "} + + Extends + + .
+     Definition{" "} + + fix_nothing + {" "} + (to: + + absolute_name + + ) :{" "} + + + list + + {" "} + ( + + absolute_name + {" "} + *{" "} + + absolute_name + + ) :={" "} + + nil + + .
+     Definition{" "} + + fix_transaction + {" "} + (to: + + absolute_name + + ) := +
+       if{" "} + + + string_dec + + {" "} + + to + {" "} + "org.hyperledger.composer.system.Transaction"% + string +
+       then{" "} + + nil + +
+       else ( + + to + + , "org.hyperledger.composer.system.Transaction"% + string) ::{" "} + + nil + + .
+     Definition{" "} + + fix_event + {" "} + (to: + + absolute_name + + ) := +
+       if{" "} + + + string_dec + + {" "} + + to + {" "} + "org.hyperledger.composer.system.Event"% + string +
+       then{" "} + + nil + +
+       else ( + + to + + , "org.hyperledger.composer.system.Event"% + string) ::{" "} + + nil + + .
+     Definition{" "} + + fix_asset + {" "} + (to: + + absolute_name + + ) := +
+       if{" "} + + + string_dec + + {" "} + + to + {" "} + "org.hyperledger.composer.system.Asset"% + string +
+       then{" "} + + nil + +
+       else ( + + to + + , "org.hyperledger.composer.system.Asset"% + string) ::{" "} + + nil + + .
+     Definition{" "} + + fix_participant + {" "} + (to: + + absolute_name + + ) := +
+       if{" "} + + + string_dec + + {" "} + + to + {" "} + "org.hyperledger.composer.system.Participant"% + string +
+       then{" "} + + nil + +
+       else ( + + to + + , "org.hyperledger.composer.system.Participant"% + string) ::{" "} + + nil + + .
+      +
+     Definition{" "} + + extends_rel + +
+                ( + fix_none: + + absolute_name + {" "} + ->{" "} + + + list + + {" "} + ( + + absolute_name + {" "} + *{" "} + + absolute_name + + )) +
+                ( + to: + + absolute_name + + )
+                ( + e:@ + + extends + {" "} + + absolute_name + + ) :{" "} + + + list + + {" "} + ( + + absolute_name + {" "} + *{" "} + + absolute_name + + ) := +
+       match{" "} + + e + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + fix_none + {" "} + + to + +
+       |{" "} + + + Some + + {" "} + from => ( + + to + + ,from) ::{" "} + + nil + +
+       end.
+
+     Definition{" "} + + + type_declaration_desc_extend_rel + + +
+                ( + to: + + absolute_name + + )
+                ( + decl_desc: + + + laergo_type_declaration_desc + + + ) :{" "} + + + list + + {" "} + ( + + absolute_name + {" "} + *{" "} + + absolute_name + + ) := +
+       match{" "} + + decl_desc + {" "} + with +
+       |{" "} + + + ErgoTypeEnum + + {" "} + _ =>{" "} + + extends_rel + {" "} + + fix_nothing + {" "} + + to + {" "} + + + None + + +
+       |{" "} + + + ErgoTypeTransaction + + {" "} + _ e{" "} + _ =>{" "} + + extends_rel + {" "} + + + fix_transaction + + {" "} + + to + {" "} + e +
+       |{" "} + + + ErgoTypeConcept + + {" "} + _ e{" "} + _ =>{" "} + + extends_rel + {" "} + + fix_nothing + {" "} + + to + {" "} + e +
+       |{" "} + + + ErgoTypeEvent + + {" "} + _ e{" "} + _ =>{" "} + + extends_rel + {" "} + + fix_event + {" "} + + to + {" "} + e +
+       |{" "} + + + ErgoTypeAsset + + {" "} + _ e{" "} + _ =>{" "} + + extends_rel + {" "} + + fix_asset + {" "} + + to + {" "} + e +
+       |{" "} + + + ErgoTypeParticipant + + {" "} + _ e{" "} + _ =>{" "} + + extends_rel + {" "} + + + fix_participant + + {" "} + + to + {" "} + e +
+       |{" "} + + + ErgoTypeGlobal + + {" "} + _ =>{" "} + + nil + +
+       |{" "} + + + ErgoTypeFunction + + {" "} + _ =>{" "} + + nil + +
+       |{" "} + + + ErgoTypeContract + + {" "} + _ _{" "} + _ =>{" "} + + extends_rel + {" "} + + fix_nothing + {" "} + + to + {" "} + + + None + + +
+       end.
+
+     Definition{" "} + + type_declaration_extend_rel + +
+                ( + decl: + + + laergo_type_declaration + + + ) :{" "} + + + list + + {" "} + ( + + absolute_name + {" "} + *{" "} + + absolute_name + + ) := +
+        + + + type_declaration_desc_extend_rel + + {" "} + + decl + + .( + + + type_declaration_name + + + ){" "} + + decl + + .( + + + type_declaration_type + + + ). +
+
+     Definition{" "} + + type_declarations_extend_rel + +
+                ( + decls: + + + list + + {" "} + + + laergo_type_declaration + + + ) :{" "} + + + list + + {" "} + ( + + absolute_name + {" "} + *{" "} + + absolute_name + + ) := +
+        + + + List.concat + + {" "} + ( + + List.map + {" "} + + + type_declaration_extend_rel + + {" "} + + decls + + ). +
+   End{" "} + + Extends + + .
+    +
+ End{" "} + + ErgoType + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.html b/docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.html deleted file mode 100644 index 8f547a49..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Types.ErgoTypetoErgoCType - - - - - - -

Module ErgoSpec.Common.Types.ErgoTypetoErgoCType

-
-
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Common.Types.ErgoType.
-
-Section ErgoTypetoErgoCType.
-  Definition expand_hierarchy : Set := list string.
-  Definition expanded_type : Set := list (string * laergo_type).
-  Definition expand_ctxt : Set := list (string * (expand_hierarchy * expanded_type)).
-
-  Section ErgoTypeExpansion.
-
Assumes decls sorted in topological order
-    Definition ergo_expand_extends
-               (ctxt:expand_ctxt)
-               (this:absolute_name)
-               (super:absolute_name)
-               (localtype:list (string * laergo_type)) : expand_ctxt :=
-      match lookup string_dec ctxt super with
-      | None => ctxt
-      | Some (hierarchy, etype) =>
-        (this, (super::hierarchy,etype ++ localtype)) :: ctxt
-      end.
-
-    Definition ergo_decl_expand_extends (ctxt:expand_ctxt)
-               (this:absolute_name)
-               (decl_desc:laergo_type_declaration_desc) : expand_ctxt :=
-      match decl_desc with
-      | ErgoTypeEnum _ => ctxt
-      | ErgoTypeTransaction _ None rtl =>
-        if string_dec this "org.hyperledger.composer.system.Transaction"%string
-        then (this, (nil, rtl)) :: ctxt
-        else ergo_expand_extends ctxt this "org.hyperledger.composer.system.Transaction"%string rtl
-      | ErgoTypeTransaction _ (Some super) rtl =>
-        ergo_expand_extends ctxt this super rtl
-      | ErgoTypeConcept _ None rtl =>
-        (this, (nil, rtl)) :: ctxt
-      | ErgoTypeConcept _ (Some super) rtl =>
-        ergo_expand_extends ctxt this super rtl
-      | ErgoTypeEvent _ None rtl =>
-        if string_dec this "org.hyperledger.composer.system.Event"%string
-        then (this, (nil, rtl)) :: ctxt
-        else ergo_expand_extends ctxt this "org.hyperledger.composer.system.Event"%string rtl
-      | ErgoTypeEvent _ (Some super) rtl =>
-        ergo_expand_extends ctxt this super rtl
-      | ErgoTypeAsset _ None rtl =>
-        if string_dec this "org.hyperledger.composer.system.Asset"%string
-        then (this, (nil, rtl)) :: ctxt
-        else ergo_expand_extends ctxt this "org.hyperledger.composer.system.Asset"%string rtl
-      | ErgoTypeAsset _ (Some super) rtl =>
-        ergo_expand_extends ctxt this super rtl
-      | ErgoTypeParticipant _ None rtl =>
-        if string_dec this "org.hyperledger.composer.system.Participant"%string
-        then (this, (nil, rtl)) :: ctxt
-        else ergo_expand_extends ctxt this "org.hyperledger.composer.system.Participant"%string rtl
-      | ErgoTypeParticipant _ (Some super) rtl =>
-        ergo_expand_extends ctxt this super rtl
-      | ErgoTypeGlobal _ => ctxt
-      | ErgoTypeFunction _ => ctxt
-      | ErgoTypeContract _ _ _ => ctxt
-      end.
-
-    Fixpoint ergo_expand_extends_in_declarations (decls:list laergo_type_declaration) : expand_ctxt :=
-      List.fold_left
-        (fun ctxt decl =>
-           ergo_decl_expand_extends
-             ctxt
-             decl.(type_declaration_name)
-                    decl.(type_declaration_type))
-        decls nil.
-
-    Definition ergo_hierarchy_from_expand (ctxt : expand_ctxt) :=
-      List.concat
-        (List.map (fun xyz =>
-                     List.map (fun x => (fst xyz, x)) (fst (snd xyz)))
-                  ctxt).
-
-  End ErgoTypeExpansion.
-
-  Section ErgoTypetoErgoCType.
-    Context {m:brand_relation}.
-    Import ErgoCTypes.
-    Definition enums_ctxt : Set := list string.
-
-    Fixpoint ergo_type_to_ergoc_type (t:laergo_type) : ergoc_type :=
-      match t with
-      | ErgoTypeAny _ => ttop
-      | ErgoTypeNothing _ => tbottom
-      | ErgoTypeUnit _ => tunit
-      | ErgoTypeBoolean _ => tbool
-      | ErgoTypeString _ => tstring
-      | ErgoTypeDouble _ => tfloat
-      | ErgoTypeLong _ => tfloat
-      | ErgoTypeInteger _ => tnat
-      | ErgoTypeDateTime _ => tdateTime
-      | ErgoTypeClassRef _ cr => tbrand (cr::nil)
-      | ErgoTypeOption _ t => teither (ergo_type_to_ergoc_type t) tunit
-      | ErgoTypeRecord _ rtl =>
-        trec
-          open_kind
-          (rec_sort (List.map (fun xy => (fst xy, ergo_type_to_ergoc_type (snd xy))) rtl))
-          (rec_sort_sorted
-             (List.map (fun xy => (fst xy, ergo_type_to_ergoc_type (snd xy))) rtl)
-             (rec_sort (List.map (fun xy => (fst xy, ergo_type_to_ergoc_type (snd xy))) rtl))
-             eq_refl)
-      | ErgoTypeArray _ t => tcoll (ergo_type_to_ergoc_type t)
-      | ErgoTypeSum _ t1 t2 => teither (ergo_type_to_ergoc_type t1) (ergo_type_to_ergoc_type t2)
-      end.
-
-    Definition ergo_ctype_decl_from_expand (ctxt : expand_ctxt) : tbrand_context_decls :=
-      List.map (fun xyz =>
-                  (fst xyz,
-                   let rtl := snd (snd xyz) in
-                   trec
-                     open_kind
-                     (rec_sort
-                        (List.map (fun xy => (fst xy, ergo_type_to_ergoc_type (snd xy))) rtl))
-                     (rec_sort_sorted
-                        (List.map (fun xy => (fst xy, ergo_type_to_ergoc_type (snd xy))) rtl)
-                        (rec_sort (List.map (fun xy => (fst xy, ergo_type_to_ergoc_type (snd xy))) rtl))
-                        eq_refl))) ctxt.
-
-  End ErgoTypetoErgoCType.
-
-  Section Translate.
-    Local Open Scope string.
-    Import ErgoCTypes.
-
-    Definition brand_relation_maybe hierarchy : eresult tbrand_relation
-      := eresult_of_qresult dummy_provenance (mk_tbrand_relation hierarchy).
-
-
-    Definition mk_model_type_decls
-               {br:brand_relation}
-               (ctxt : expand_ctxt) : tbrand_context_decls :=
-      @ergo_ctype_decl_from_expand br ctxt.
-
-    Definition label_of_decl (decl:laergo_type_declaration) : string :=
-      decl.(type_declaration_name).
-    Definition name_of_decl : laergo_type_declaration -> string := label_of_decl.
-    Definition decls_table (decls:list laergo_type_declaration) : list (string * laergo_type_declaration) :=
-      List.map (fun d => (d.(type_declaration_name), d)) decls.
-    Definition edge_of_decl (dt:list (string * laergo_type_declaration)) (decl:laergo_type_declaration) : laergo_type_declaration * list laergo_type_declaration :=
-      let outedges := type_declaration_extend_rel decl in
-      (decl, List.concat (List.map (fun xy => match lookup string_dec dt (snd xy) with | None => nil | Some x => x :: nil end) outedges)).
-    Definition graph_of_decls (decls:list laergo_type_declaration)
-      : list (laergo_type_declaration * list (laergo_type_declaration)) :=
-      let dt := decls_table decls in
-      map (edge_of_decl dt) decls.
-    
-    Definition sort_decls (decls:list laergo_type_declaration) : list laergo_type_declaration :=
-      coq_toposort label_of_decl name_of_decl (graph_of_decls decls).
-
-    Definition brand_model_of_declarations
-               (decls:list laergo_type_declaration)
-      : eresult ErgoCTypes.tbrand_model :=
-      let decls := sort_decls decls in
-      let ctxt := ergo_expand_extends_in_declarations decls in
-      let hierarchy := ergo_hierarchy_from_expand ctxt in
-      eolift (fun br =>
-                eresult_of_qresult dummy_provenance
-                                   (mk_tbrand_model (@mk_model_type_decls br ctxt)))
-             (brand_relation_maybe hierarchy).
-
-    Definition force_brand_model_of_declarations
-               (decls:list laergo_type_declaration)
-      : ErgoCTypes.tbrand_model :=
-      match brand_model_of_declarations decls with
-      | Success _ _ s => s
-      | Failure _ _ e => tempty_brand_model
-      end.
-
-  End Translate.
-
-End ErgoTypetoErgoCType.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.jsx b/docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.jsx new file mode 100644 index 00000000..b2770744 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Types.ErgoTypetoErgoCType.jsx @@ -0,0 +1,2110 @@ +
+ + Module ErgoSpec.Common.Types.ErgoTypetoErgoCType + + +

Module ErgoSpec.Common.Types.ErgoTypetoErgoCType

+
+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+
+ Section{" "} + + ErgoTypetoErgoCType + + .
+   Definition{" "} + + expand_hierarchy + {" "} + : Set :={" "} + + + list + + {" "} + + + string + + + .
+   Definition{" "} + + expanded_type + {" "} + : Set :={" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_type + + ). +
+   Definition{" "} + + expand_ctxt + {" "} + : Set :={" "} + + + list + + {" "} + ( + + + string + + {" "} + * ( + + + expand_hierarchy + + {" "} + *{" "} + + + expanded_type + + + )). +
+
+   Section{" "} + + ErgoTypeExpansion + + .
+
Assumes decls sorted in topological order
+     Definition{" "} + + ergo_expand_extends + +
+                ( + ctxt: + + + expand_ctxt + + + )
+                ( + this: + + absolute_name + + )
+                ( + super: + + absolute_name + + )
+                ( + localtype: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_type + + )) :{" "} + + + expand_ctxt + + {" "} + := +
+       match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + ctxt + {" "} + + super + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + ctxt + {" "} +
+       |{" "} + + + Some + + {" "} + (hierarchy, etype) + => +
+         ( + + this + + , ( + + super + + ::hierarchy,etype ++{" "} + + + localtype + + + )) ::{" "} + + ctxt + +
+       end.
+
+     Definition{" "} + + ergo_decl_expand_extends + {" "} + (ctxt: + + + expand_ctxt + + + )
+                ( + this: + + absolute_name + + )
+                ( + decl_desc: + + + laergo_type_declaration_desc + + + ) :{" "} + + + expand_ctxt + + {" "} + := +
+       match{" "} + + + decl_desc + + {" "} + with +
+       |{" "} + + + ErgoTypeEnum + + {" "} + _ =>{" "} + + ctxt + +
+       |{" "} + + + ErgoTypeTransaction + + {" "} + _{" "} + + + None + + {" "} + rtl => +
+          + if{" "} + + + string_dec + + {" "} + + this + {" "} + "org.hyperledger.composer.system.Transaction"% + string +
+          + then ( + + this + + , ( + + nil + + , rtl)) ::{" "} + + ctxt + +
+          + else{" "} + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + "org.hyperledger.composer.system.Transaction"% + string rtl +
+       |{" "} + + + ErgoTypeTransaction + + {" "} + _ ( + + + Some + + {" "} + super) rtl => +
+          + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + super rtl +
+       |{" "} + + + ErgoTypeConcept + + {" "} + _{" "} + + + None + + {" "} + rtl => +
+         ( + + this + + , ( + + nil + + , rtl)) ::{" "} + + ctxt + +
+       |{" "} + + + ErgoTypeConcept + + {" "} + _ ( + + + Some + + {" "} + super) rtl => +
+          + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + super rtl +
+       |{" "} + + + ErgoTypeEvent + + {" "} + _{" "} + + + None + + {" "} + rtl => +
+          + if{" "} + + + string_dec + + {" "} + + this + {" "} + "org.hyperledger.composer.system.Event"% + string +
+          + then ( + + this + + , ( + + nil + + , rtl)) ::{" "} + + ctxt + +
+          + else{" "} + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + "org.hyperledger.composer.system.Event"% + string rtl +
+       |{" "} + + + ErgoTypeEvent + + {" "} + _ ( + + + Some + + {" "} + super) rtl => +
+          + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + super rtl +
+       |{" "} + + + ErgoTypeAsset + + {" "} + _{" "} + + + None + + {" "} + rtl => +
+          + if{" "} + + + string_dec + + {" "} + + this + {" "} + "org.hyperledger.composer.system.Asset"% + string +
+          + then ( + + this + + , ( + + nil + + , rtl)) ::{" "} + + ctxt + +
+          + else{" "} + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + "org.hyperledger.composer.system.Asset"% + string rtl +
+       |{" "} + + + ErgoTypeAsset + + {" "} + _ ( + + + Some + + {" "} + super) rtl => +
+          + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + super rtl +
+       |{" "} + + + ErgoTypeParticipant + + {" "} + _{" "} + + + None + + {" "} + rtl => +
+          + if{" "} + + + string_dec + + {" "} + + this + {" "} + "org.hyperledger.composer.system.Participant"% + string +
+          + then ( + + this + + , ( + + nil + + , rtl)) ::{" "} + + ctxt + +
+          + else{" "} + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + "org.hyperledger.composer.system.Participant"% + string rtl +
+       |{" "} + + + ErgoTypeParticipant + + {" "} + _ ( + + + Some + + {" "} + super) rtl => +
+          + + + ergo_expand_extends + + {" "} + + ctxt + {" "} + + this + {" "} + super rtl +
+       |{" "} + + + ErgoTypeGlobal + + {" "} + _ =>{" "} + + ctxt + +
+       |{" "} + + + ErgoTypeFunction + + {" "} + _ =>{" "} + + ctxt + +
+       |{" "} + + + ErgoTypeContract + + {" "} + _ _{" "} + _ =>{" "} + + ctxt + +
+       end.
+
+     Fixpoint{" "} + + + ergo_expand_extends_in_declarations + + {" "} + (decls: + + + list + + {" "} + + + laergo_type_declaration + + + ) :{" "} + + + expand_ctxt + + {" "} + := +
+        + + + List.fold_left + + +
+         ( + fun ctxt{" "} + decl => +
+             + + + ergo_decl_expand_extends + + +
+               + + ctxt + +
+               + + decl + + .( + + + type_declaration_name + + + )
+                      + + decl + + .( + + + type_declaration_type + + + )) +
+          + + decls + {" "} + + nil + + .
+
+     Definition{" "} + + ergo_hierarchy_from_expand + {" "} + (ctxt :{" "} + + + expand_ctxt + + + ) := +
+        + + + List.concat + + +
+         ( + + List.map + {" "} + (fun xyz => +
+                       + + List.map + {" "} + (fun x => ( + + fst + {" "} + + xyz + + ,{" "} + + x + + )) ( + + fst + {" "} + ( + + snd + {" "} + + xyz + + ))) +
+                    + + ctxt + + ). +
+
+   End{" "} + + + ErgoTypeExpansion + + + .
+
+   Section{" "} + + ErgoTypetoErgoCType + + .
+     Context {"{"} + m: + + + brand_relation + + + {"}"}.
+     Import{" "} + ErgoCTypes.
+     Definition{" "} + + enums_ctxt + {" "} + : Set :={" "} + + + list + + {" "} + + + string + + + .
+
+     Fixpoint{" "} + + ergo_type_to_ergoc_type + {" "} + (t: + + laergo_type + + ) :{" "} + + ergoc_type + {" "} + := +
+       match{" "} + + t + {" "} + with +
+       |{" "} + + ErgoTypeAny + {" "} + _ =>{" "} + + ttop + +
+       |{" "} + + + ErgoTypeNothing + + {" "} + _ =>{" "} + + tbottom + +
+       |{" "} + + + ErgoTypeUnit + + {" "} + _ =>{" "} + + tunit + +
+       |{" "} + + + ErgoTypeBoolean + + {" "} + _ =>{" "} + + tbool + +
+       |{" "} + + + ErgoTypeString + + {" "} + _ =>{" "} + + tstring + +
+       |{" "} + + + ErgoTypeDouble + + {" "} + _ =>{" "} + + tfloat + +
+       |{" "} + + + ErgoTypeLong + + {" "} + _ =>{" "} + + tfloat + +
+       |{" "} + + + ErgoTypeInteger + + {" "} + _ =>{" "} + + tnat + +
+       |{" "} + + + ErgoTypeDateTime + + {" "} + _ =>{" "} + + + tdateTime + + +
+       |{" "} + + + ErgoTypeClassRef + + {" "} + _ cr =>{" "} + + tbrand + {" "} + (cr:: + + nil + + )
+       |{" "} + + + ErgoTypeOption + + {" "} + _ t =>{" "} + + teither + {" "} + ( + + + ergo_type_to_ergoc_type + + {" "} + + t + + ){" "} + + tunit + +
+       |{" "} + + + ErgoTypeRecord + + {" "} + _ rtl => +
+          + + trec + +
+            + + + open_kind + + +
+           ( + + + rec_sort + + {" "} + ( + + List.map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + ergo_type_to_ergoc_type + + {" "} + ( + + snd + {" "} + + xy + + ))) rtl)) +
+           ( + + + rec_sort_sorted + + +
+              ( + + List.map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + ergo_type_to_ergoc_type + + {" "} + ( + + snd + {" "} + + xy + + ))) rtl)
+              ( + + + rec_sort + + {" "} + ( + + List.map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + ergo_type_to_ergoc_type + + {" "} + ( + + snd + {" "} + + xy + + ))) rtl)) +
+               + + + eq_refl + + + )
+       |{" "} + + + ErgoTypeArray + + {" "} + _ t =>{" "} + + tcoll + {" "} + ( + + + ergo_type_to_ergoc_type + + {" "} + + t + + )
+       |{" "} + + ErgoTypeSum + {" "} + _ t1{" "} + t2 =>{" "} + + teither + {" "} + ( + + + ergo_type_to_ergoc_type + + {" "} + t1) ( + + + ergo_type_to_ergoc_type + + {" "} + t2)
+       end.
+
+     Definition{" "} + + ergo_ctype_decl_from_expand + {" "} + (ctxt :{" "} + + + expand_ctxt + + + ) :{" "} + + + tbrand_context_decls + + {" "} + := +
+        + + List.map + {" "} + (fun xyz => +
+                   ( + + fst + {" "} + + xyz + + ,
+                     + let rtl :={" "} + + snd + {" "} + ( + + snd + {" "} + + xyz + + ) in +
+                     + + trec + +
+                       + + + open_kind + + +
+                      ( + + + rec_sort + + +
+                         ( + + List.map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + ergo_type_to_ergoc_type + + {" "} + ( + + snd + {" "} + + xy + + ))){" "} + + rtl + + )) +
+                      ( + + + rec_sort_sorted + + +
+                         ( + + List.map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + ergo_type_to_ergoc_type + + {" "} + ( + + snd + {" "} + + xy + + ))){" "} + + rtl + + )
+                         ( + + + rec_sort + + {" "} + ( + + List.map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + ergo_type_to_ergoc_type + + {" "} + ( + + snd + {" "} + + xy + + ))){" "} + + rtl + + )) +
+                          + + + eq_refl + + + ))){" "} + + ctxt + + .
+
+   End{" "} + + + ErgoTypetoErgoCType + + + .
+
+   Section{" "} + + Translate + + .
+     Local{" "} + Open Scope{" "} + string.
+     Import{" "} + ErgoCTypes.
+
+     Definition{" "} + + brand_relation_maybe + {" "} + hierarchy :{" "} + + eresult + {" "} + + + tbrand_relation + + +
+       :={" "} + + + eresult_of_qresult + + {" "} + + + dummy_provenance + + {" "} + ( + + + mk_tbrand_relation + + {" "} + + + hierarchy + + + ). +
+
+
+     Definition{" "} + + mk_model_type_decls + +
+                 + {"{"} + br: + + + brand_relation + + + {"}"} +
+                ( + ctxt :{" "} + + + expand_ctxt + + + ) :{" "} + + + tbrand_context_decls + + {" "} + := +
+       @ + + + ergo_ctype_decl_from_expand + + {" "} + + br + {" "} + + ctxt + + .
+
+     Definition{" "} + + label_of_decl + {" "} + (decl: + + + laergo_type_declaration + + + ) :{" "} + + + string + + {" "} + := +
+        + + decl + + .( + + + type_declaration_name + + + ). +
+     Definition{" "} + + name_of_decl + {" "} + :{" "} + + + laergo_type_declaration + + {" "} + ->{" "} + + + string + + {" "} + :={" "} + + + label_of_decl + + + .
+     Definition{" "} + + decls_table + {" "} + (decls: + + + list + + {" "} + + + laergo_type_declaration + + + ) :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + laergo_type_declaration + + + ) := +
+        + + List.map + {" "} + (fun d => ( + + d + + .( + + + type_declaration_name + + + ),{" "} + + d + + )){" "} + + decls + + .
+     Definition{" "} + + edge_of_decl + {" "} + (dt: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + laergo_type_declaration + + + )) (decl: + + + laergo_type_declaration + + + ) :{" "} + + + laergo_type_declaration + + {" "} + *{" "} + + + list + + {" "} + + + laergo_type_declaration + + {" "} + := +
+       let{" "} + outedges :={" "} + + + type_declaration_extend_rel + + {" "} + + decl + {" "} + in +
+       ( + + decl + + ,{" "} + + + List.concat + + {" "} + ( + + List.map + {" "} + (fun xy =>{" "} + match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + dt + {" "} + ( + + snd + {" "} + + xy + + ) with |{" "} + + + None + + {" "} + =>{" "} + + nil + {" "} + |{" "} + + + Some + + {" "} + x => x ::{" "} + + nil + {" "} + end){" "} + + + outedges + + + )). +
+     Definition{" "} + + graph_of_decls + {" "} + (decls: + + + list + + {" "} + + + laergo_type_declaration + + + )
+       :{" "} + + + list + + {" "} + ( + + + laergo_type_declaration + + {" "} + *{" "} + + + list + + {" "} + ( + + + laergo_type_declaration + + + )) := +
+       let{" "} + dt :={" "} + + + decls_table + + {" "} + + decls + {" "} + in +
+        + + map + {" "} + ( + + + edge_of_decl + + {" "} + + dt + + ){" "} + + decls + + .
+      +
+     Definition{" "} + + sort_decls + {" "} + (decls: + + + list + + {" "} + + + laergo_type_declaration + + + ) :{" "} + + + list + + {" "} + + + laergo_type_declaration + + {" "} + := +
+        + + coq_toposort + {" "} + + + label_of_decl + + {" "} + + + name_of_decl + + {" "} + ( + + + graph_of_decls + + {" "} + + decls + + ). +
+
+     Definition{" "} + + brand_model_of_declarations + +
+                ( + decls: + + + list + + {" "} + + + laergo_type_declaration + + + )
+       :{" "} + + eresult + {" "} + + + ErgoCTypes.tbrand_model + + {" "} + := +
+       let{" "} + decls :={" "} + + + sort_decls + + {" "} + + decls + {" "} + in +
+       let{" "} + ctxt :={" "} + + + ergo_expand_extends_in_declarations + + {" "} + + decls + {" "} + in +
+       let{" "} + hierarchy :={" "} + + + ergo_hierarchy_from_expand + + {" "} + + ctxt + {" "} + in +
+        + + eolift + {" "} + (fun br => +
+                  + + + eresult_of_qresult + + {" "} + + + dummy_provenance + + +
+                                    ( + + + mk_tbrand_model + + {" "} + (@ + + + mk_model_type_decls + + {" "} + + br + {" "} + + ctxt + + ))) +
+              ( + + + brand_relation_maybe + + {" "} + + + hierarchy + + + ). +
+
+     Definition{" "} + + + force_brand_model_of_declarations + + +
+                ( + decls: + + + list + + {" "} + + + laergo_type_declaration + + + )
+       :{" "} + + + ErgoCTypes.tbrand_model + + {" "} + := +
+       match{" "} + + + brand_model_of_declarations + + {" "} + + decls + {" "} + with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + s => s +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + e =>{" "} + + + tempty_brand_model + + {" "} +
+       end.
+
+   End{" "} + + + Translate + + + .
+
+ End{" "} + + + ErgoTypetoErgoCType + + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Ast.html b/docs/assets/specification/ErgoSpec.Common.Utils.Ast.html deleted file mode 100644 index 4c0a8b5a..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Utils.Ast.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Utils.Ast - - - - - - -

Module ErgoSpec.Common.Utils.Ast

-
-
-Require Import String.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Provenance.
-
-Section Ast.
-  Section Imports.
-    Section Defn.
-      Context {A:Set}.
-      Context {N:Set}.
-  
-      Inductive import_decl : Set :=
-      | ImportAll : A -> namespace_name -> import_decl
-      | ImportSelf : A -> namespace_name -> import_decl
-      | ImportName : A -> namespace_name -> local_name -> import_decl.
-
-      Definition import_annot (i:import_decl) :=
-        match i with
-        | ImportAll a _ => a
-        | ImportSelf a _ => a
-        | ImportName a _ _ => a
-        end.
-
-      Definition extends : Set := option N.
-    End Defn.
-
-    Definition limport_decl : Set := @import_decl provenance.
-    
-    Definition rextends : Set := @extends relative_name.
-    Definition aextends : Set := @extends absolute_name.
-  End Imports.
-
-  Section Abstract.
-    Definition is_abstract : Set := bool.
-    
-  End Abstract.
-
-  Section Patterns.
-    Section Defn.
-      Local Open Scope string.
-
-      Context {A:Set}.
-      Context {N:Set}.
-  
-      Definition type_annotation : Set := option N.
-
-      Inductive ergo_pattern :=
-      | CaseData : A -> ErgoData.data -> ergo_pattern (* match against value *)
-      | CaseWildcard : A -> type_annotation -> ergo_pattern (* match anything *)
-      | CaseLet : A -> string -> type_annotation -> ergo_pattern (* match against type *)
-      | CaseLetOption : A -> string -> type_annotation -> ergo_pattern (* match against type *)
-      .
-    End Defn.
-
-    Definition rergo_pattern {A} := @ergo_pattern A relative_name.
-    Definition aergo_pattern {A} := @ergo_pattern A absolute_name.
-
-    Definition lrergo_pattern := @ergo_pattern provenance relative_name.
-    Definition laergo_pattern := @ergo_pattern provenance absolute_name.
-  End Patterns.
-  
-End Ast.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Ast.jsx b/docs/assets/specification/ErgoSpec.Common.Utils.Ast.jsx new file mode 100644 index 00000000..85b4f502 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Utils.Ast.jsx @@ -0,0 +1,514 @@ +
+ + Module ErgoSpec.Common.Utils.Ast + + +

Module ErgoSpec.Common.Utils.Ast

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+
+ Section{" "} + + Ast + + .
+   Section{" "} + + Imports + + .
+     Section{" "} + + Defn + + .
+        + Context + {" "} + {"{"} + A:Set + {"}"}.
+        + Context + {" "} + {"{"} + N:Set + {"}"}.
+    +
+        + Inductive + {" "} + + import_decl + {" "} + : Set := +
+       |{" "} + + ImportAll + {" "} + :{" "} + + A + {" "} + ->{" "} + + + namespace_name + + {" "} + ->{" "} + + import_decl + +
+       |{" "} + + ImportSelf + {" "} + :{" "} + + A + {" "} + ->{" "} + + + namespace_name + + {" "} + ->{" "} + + import_decl + +
+       |{" "} + + ImportName + {" "} + :{" "} + + A + {" "} + ->{" "} + + + namespace_name + + {" "} + ->{" "} + + local_name + {" "} + ->{" "} + + import_decl + + .
+
+        + Definition + {" "} + + import_annot + {" "} + (i: + + import_decl + + ) := +
+          + match{" "} + + i + {" "} + with +
+         |{" "} + + ImportAll + {" "} + a _ =>{" "} + a +
+         |{" "} + + ImportSelf + {" "} + a _ =>{" "} + a +
+         |{" "} + + ImportName + {" "} + a _{" "} + _ => a +
+          + end.
+
+        + Definition + {" "} + + extends + {" "} + : Set :={" "} + + + option + + {" "} + + N + + .
+     End{" "} + + Defn + + .
+
+     Definition{" "} + + limport_decl + {" "} + : Set := @ + + import_decl + {" "} + + provenance + + .
+      +
+     Definition{" "} + + rextends + {" "} + : Set := @ + + extends + {" "} + + relative_name + + .
+     Definition{" "} + + aextends + {" "} + : Set := @ + + extends + {" "} + + absolute_name + + .
+   End{" "} + + Imports + + .
+
+   Section{" "} + + Abstract + + .
+     Definition{" "} + + is_abstract + {" "} + : Set :={" "} + + + bool + + + .
+      +
+   End{" "} + + Abstract + + .
+
+   Section{" "} + + Patterns + + .
+     Section{" "} + + Defn + + .
+       Local{" "} + Open Scope{" "} + string.
+
+        + Context + {" "} + {"{"} + A:Set + {"}"}.
+        + Context + {" "} + {"{"} + N:Set + {"}"}.
+    +
+        + Definition + {" "} + + type_annotation + {" "} + : Set :={" "} + + + option + + {" "} + + N + + .
+
+        + Inductive + {" "} + + ergo_pattern + {" "} + := +
+       |{" "} + + CaseData + {" "} + :{" "} + + A + {" "} + ->{" "} + + + ErgoData.data + + {" "} + ->{" "} + + ergo_pattern + {" "} + (* match against value *) +
+       |{" "} + + CaseWildcard + {" "} + :{" "} + + A + {" "} + ->{" "} + + + type_annotation + + {" "} + ->{" "} + + ergo_pattern + {" "} + (* match anything *) +
+       |{" "} + + CaseLet + {" "} + :{" "} + + A + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + + type_annotation + + {" "} + ->{" "} + + ergo_pattern + {" "} + (* match against type *) +
+       |{" "} + + CaseLetOption + {" "} + :{" "} + + A + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + + type_annotation + + {" "} + ->{" "} + + ergo_pattern + {" "} + (* match against type *) +
+       . +
+     End{" "} + + Defn + + .
+
+     Definition{" "} + + rergo_pattern + {" "} + {"{"} + A + {"}"} := @ + + ergo_pattern + {" "} + + A + {" "} + + relative_name + + .
+     Definition{" "} + + aergo_pattern + {" "} + {"{"} + A + {"}"} := @ + + ergo_pattern + {" "} + + A + {" "} + + absolute_name + + .
+
+     Definition{" "} + + lrergo_pattern + {" "} + := @ + + ergo_pattern + {" "} + + provenance + {" "} + + relative_name + + .
+     Definition{" "} + + laergo_pattern + {" "} + := @ + + ergo_pattern + {" "} + + provenance + {" "} + + absolute_name + + .
+   End{" "} + + Patterns + + .
+    +
+ End{" "} + + Ast + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Misc.html b/docs/assets/specification/ErgoSpec.Common.Utils.Misc.html deleted file mode 100644 index 01e65f78..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Utils.Misc.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Utils.Misc - - - - - - -

Module ErgoSpec.Common.Utils.Misc

-
-
-Require Import String.
-Require Import List.
-
-Section Misc.
-  Definition multi_append {A} separator (f:A -> string) (elems:list A) : string :=
-    match elems with
-    | nil => ""
-    | e :: elems' =>
-      (fold_left (fun acc e => acc ++ separator ++ (f e)) elems' (f e))%string
-    end.
-
-  Fixpoint filter_some {A B:Type} (f:A -> option B) (l:list A) : list B :=
-    match l with
-    | nil => nil
-    | x :: t =>
-      match f x with
-      | None => (filter_some f t)
-      | Some x' => x' :: (filter_some f t)
-      end
-    end.
-
-  Definition postpend {A : Set} (ls : list A) (a : A) : list A :=
-    ls ++ (a :: nil).
-
-  Fixpoint last_some {A} (l:list (option A)) : option A :=
-    let proc_one (one:option A) (acc:option A) :=
-        match acc with
-        | Some x => Some x
-        | None => one
-        end
-    in
-    fold_right
-      proc_one
-      None
-      l.
-
-  Fixpoint last_some_pair {A} {B} (l:list ((option A) * (option B))) : ((option A) * (option B)) :=
-    let proc_one (one : ((option A) * (option B))) (acc : ((option A) * (option B))) :=
-        match acc with
-        | (Some x, Some y) => acc
-        | _ => one
-        end
-    in
-    fold_right
-      proc_one
-      (None, None)
-      l.
-
-  Record result_file :=
-    mkResultFile {
-        res_file : string;
-        res_content : string;
-      }.
-  
-  Section TopoSort.
-    Context {A B:Set}.
-    Parameter coq_toposort : (A -> B) -> (A -> string) -> list (A * list A) -> list A.
-  End TopoSort.
-
-  Section StringStuff.
-
Turns "foo.bar.baz" into "baz" if there is at least on '.' character
-    Parameter get_local_part : string -> option string.
-  End StringStuff.
-End Misc.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Misc.jsx b/docs/assets/specification/ErgoSpec.Common.Utils.Misc.jsx new file mode 100644 index 00000000..3a9fa01c --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Utils.Misc.jsx @@ -0,0 +1,673 @@ +
+ + Module ErgoSpec.Common.Utils.Misc + + +

Module ErgoSpec.Common.Utils.Misc

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ Section{" "} + + Misc + + .
+   Definition{" "} + + multi_append + {" "} + {"{"} + A + {"}"} separator (f: + + A + {" "} + ->{" "} + + + string + + + ) (elems: + + + list + + {" "} + + A + + ) :{" "} + + + string + + {" "} + := +
+     match{" "} + + elems + {" "} + with +
+     |{" "} + + nil + {" "} + => "" +
+     | e ::{" "} + elems' => +
+       ( + + + fold_left + + {" "} + (fun acc{" "} + e =>{" "} + + acc + {" "} + ++{" "} + + separator + {" "} + ++ ( + + f + {" "} + + e + + )) elems' ( + + f + {" "} + e))%string +
+     end.
+
+   Fixpoint{" "} + + filter_some + {" "} + {"{"} + A B: + Type + {"}"} (f: + + A + {" "} + ->{" "} + + + option + + {" "} + + B + + ) (l: + + + list + + {" "} + + A + + ) :{" "} + + + list + + {" "} + + B + {" "} + := +
+     match{" "} + + l + {" "} + with +
+     |{" "} + + nil + {" "} + =>{" "} + + nil + +
+     | x ::{" "} + t => +
+       match{" "} + + f + {" "} + x with +
+       |{" "} + + + None + + {" "} + => ( + + filter_some + {" "} + + f + {" "} + t)
+       |{" "} + + + Some + + {" "} + x' => x' :: ( + + filter_some + {" "} + + f + {" "} + t)
+       end +
+     end.
+
+   Definition{" "} + + postpend + {" "} + {"{"} + A : Set + {"}"} (ls :{" "} + + + list + + {" "} + + A + + ) (a :{" "} + + A + + ) :{" "} + + + list + + {" "} + + A + {" "} + := +
+      + + ls + {" "} + ++ ( + + a + {" "} + ::{" "} + + nil + + ). +
+
+   Fixpoint{" "} + + last_some + {" "} + {"{"} + A + {"}"} (l: + + + list + + {" "} + ( + + + option + + {" "} + + A + + )) :{" "} + + + option + + {" "} + + A + {" "} + := +
+     let{" "} + proc_one (one: + + + option + + {" "} + + A + + ) (acc: + + + option + + {" "} + + A + + ) := +
+          + match{" "} + + acc + {" "} + with +
+         |{" "} + + + Some + + {" "} + x =>{" "} + + + Some + + {" "} + x +
+         |{" "} + + + None + + {" "} + =>{" "} + + one + +
+          + end +
+     in +
+      + + + fold_right + + +
+        + + proc_one + +
+        + + + None + + +
+        + + l + + .
+
+   Fixpoint{" "} + + last_some_pair + {" "} + {"{"} + A + {"}"} {"{"} + B + {"}"} (l: + + + list + + {" "} + (( + + + option + + {" "} + + A + + ) * ( + + + option + + {" "} + + B + + ))) : (( + + + option + + {" "} + + A + + ) * ( + + + option + + {" "} + + B + + )) := +
+     let{" "} + proc_one (one : (( + + + option + + {" "} + + A + + ) * ( + + + option + + {" "} + + B + + ))) (acc : (( + + + option + + {" "} + + A + + ) * ( + + + option + + {" "} + + B + + ))) := +
+          + match{" "} + + acc + {" "} + with +
+         | ( + + + Some + + {" "} + x,{" "} + + + Some + + {" "} + y) =>{" "} + + acc + +
+         |{" "} + _ =>{" "} + + one + +
+          + end +
+     in +
+      + + + fold_right + + +
+        + + proc_one + +
+       ( + + + None + + + ,{" "} + + + None + + + )
+        + + l + + .
+
+   Record{" "} + + result_file + {" "} + := +
+      + + mkResultFile + {" "} + {"{"} +
+          + + res_file + {" "} + :{" "} + + + string + + + ;
+          + + res_content + {" "} + :{" "} + + + string + + + ;
+       {"}"}.
+    +
+   Section{" "} + + TopoSort + + .
+     Context {"{"} + A B: + Set + {"}"}.
+     Parameter{" "} + + coq_toposort + {" "} + : ( + + A + {" "} + ->{" "} + + B + + ) -> ( + + A + {" "} + ->{" "} + + + string + + + ) ->{" "} + + + list + + {" "} + ( + + A + {" "} + *{" "} + + + list + + {" "} + + A + + ) ->{" "} + + + list + + {" "} + + A + + .
+   End{" "} + + TopoSort + + .
+
+   Section{" "} + + StringStuff + + .
+
+ Turns "foo.bar.baz" into "baz" if there is at least on '.' character{" "} +
+     Parameter{" "} + + get_local_part + {" "} + :{" "} + + + string + + {" "} + ->{" "} + + + option + + {" "} + + + string + + + .
+   End{" "} + + StringStuff + + .
+ End{" "} + + Misc + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Names.html b/docs/assets/specification/ErgoSpec.Common.Utils.Names.html deleted file mode 100644 index 54bd5aed..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Utils.Names.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Utils.Names - - - - - - -

Module ErgoSpec.Common.Utils.Names

-
-
-Require Import String.
-
-Section Names.
-  Local Open Scope string.
-
-  Section ScopedNames.
-    Definition local_name : Set := string.
-    Definition namespace_name : Set := string.
-    Definition namespace_prefix : Set := option namespace_name.
-
-    Definition relative_name : Set := namespace_prefix * local_name.
-    Definition absolute_name : Set := string.
-
-    Definition absolute_name_of_local_name (ns: namespace_name) (ln: local_name) : absolute_name :=
-      ns ++ "." ++ ln.
-
-    Definition absolute_name_of_relative_name (local_ns: namespace_name) (rn: relative_name) : absolute_name :=
-      match rn with
-      | (None,ln) => absolute_name_of_local_name local_ns ln
-      | (Some ns,ln) => absolute_name_of_local_name ns ln
-      end.
-
-  End ScopedNames.
-
-  Section ReservedNames.
-    Definition clause_main_name : local_name := "main".
-    Definition clause_init_name : local_name := "init".
-
-
This
-    Definition this_contract := "contract".
-    Definition this_state := "state".
-    Definition this_emit := "emit".
-    Definition this_response := "response".
-    Definition local_state := "lstate".
-    Definition local_emit := "lemit".
-    Definition current_time := "now".
-
-  End ReservedNames.
-  
-  Section TypeNames.
-    Definition hyperledger_namespace : string := "org.hyperledger.composer.system"%string.
-    Definition stdlib_namespace : string := "org.accordproject.ergo.stdlib"%string.
-    
-    Definition default_request_absolute_name : string := "org.accordproject.cicero.runtime.Request".
-    Definition default_response_absolute_name : string := "org.accordproject.cicero.runtime.Response".
-    Definition default_emits_absolute_name : string := "org.hyperledger.composer.system.Event".
-    Definition default_state_absolute_name : string := "org.accordproject.cicero.contract.AccordContractState".
-    Definition default_error_absolute_name : string := "org.accordproject.ergo.stdlib.ErgoErrorResponse".
-
-  End TypeNames.
-
-  Section Misc.
-    Definition function_name_in_table (tname:option string) (fname:string) : string :=
-      match tname with
-      | None => fname
-      | Some tname => tname ++ "_" ++ fname
-      end.
-  End Misc.
-
-  Section Namespaces.
-    Definition no_namespace : string := "".
-  End Namespaces.
-
-End Names.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Names.jsx b/docs/assets/specification/ErgoSpec.Common.Utils.Names.jsx new file mode 100644 index 00000000..7c797817 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Utils.Names.jsx @@ -0,0 +1,483 @@ +
+ + Module ErgoSpec.Common.Utils.Names + + +

Module ErgoSpec.Common.Utils.Names

+
+
+ + Require + Import{" "} + +
String + + .
+
+ Section{" "} + + Names + + .
+   Local{" "} + Open Scope{" "} + string.
+
+   Section{" "} + + ScopedNames + + .
+     Definition{" "} + + local_name + {" "} + : Set :={" "} + + + string + + + .
+     Definition{" "} + + namespace_name + {" "} + : Set :={" "} + + + string + + + .
+     Definition{" "} + + namespace_prefix + {" "} + : Set :={" "} + + + option + + {" "} + + + namespace_name + + + .
+
+     Definition{" "} + + relative_name + {" "} + : Set :={" "} + + + namespace_prefix + + {" "} + *{" "} + + local_name + + .
+     Definition{" "} + + absolute_name + {" "} + : Set :={" "} + + + string + + + .
+
+     Definition{" "} + + absolute_name_of_local_name + {" "} + (ns:{" "} + + + namespace_name + + + ) (ln:{" "} + + local_name + + ) :{" "} + + absolute_name + {" "} + := +
+        + + ns + {" "} + ++ "." ++{" "} + + ln + + .
+
+     Definition{" "} + + + absolute_name_of_relative_name + + {" "} + (local_ns:{" "} + + + namespace_name + + + ) (rn:{" "} + + relative_name + + ) :{" "} + + absolute_name + {" "} + := +
+       match{" "} + + rn + {" "} + with +
+       | ( + + + None + + + ,ln) =>{" "} + + + absolute_name_of_local_name + + {" "} + + local_ns + {" "} + ln +
+       | ( + + + Some + + {" "} + ns,ln) =>{" "} + + + absolute_name_of_local_name + + {" "} + ns ln +
+       end.
+
+   End{" "} + + + ScopedNames + + + .
+
+   Section{" "} + + ReservedNames + + .
+     Definition{" "} + + clause_main_name + {" "} + :{" "} + + local_name + {" "} + := "main".
+     Definition{" "} + + clause_init_name + {" "} + :{" "} + + local_name + {" "} + := "init".
+
+
This
+     Definition{" "} + + this_contract + {" "} + := "contract".
+     Definition{" "} + + this_state + {" "} + := "state".
+     Definition{" "} + + this_emit + {" "} + := "emit".
+     Definition{" "} + + this_response + {" "} + := "response".
+     Definition{" "} + + local_state + {" "} + := "lstate".
+     Definition{" "} + + local_emit + {" "} + := "lemit".
+     Definition{" "} + + current_time + {" "} + := "now".
+
+   End{" "} + + + ReservedNames + + + .
+    +
+   Section{" "} + + TypeNames + + .
+     Definition{" "} + + hyperledger_namespace + {" "} + :{" "} + + + string + + {" "} + := "org.hyperledger.composer.system"% + string.
+     Definition{" "} + + stdlib_namespace + {" "} + :{" "} + + + string + + {" "} + := "org.accordproject.ergo.stdlib"% + string.
+      +
+     Definition{" "} + + default_request_absolute_name + {" "} + :{" "} + + + string + + {" "} + := "org.accordproject.cicero.runtime.Request". +
+     Definition{" "} + + + default_response_absolute_name + + {" "} + :{" "} + + + string + + {" "} + := "org.accordproject.cicero.runtime.Response". +
+     Definition{" "} + + default_emits_absolute_name + {" "} + :{" "} + + + string + + {" "} + := "org.hyperledger.composer.system.Event". +
+     Definition{" "} + + default_state_absolute_name + {" "} + :{" "} + + + string + + {" "} + := " + + org.accordproject.cicero.contract.AccordContractState + + ". +
+     Definition{" "} + + default_error_absolute_name + {" "} + :{" "} + + + string + + {" "} + := " + org.accordproject.ergo.stdlib.ErgoErrorResponse + ". +
+
+   End{" "} + + TypeNames + + .
+
+   Section{" "} + + Misc + + .
+     Definition{" "} + + function_name_in_table + {" "} + (tname: + + + option + + {" "} + + + string + + + ) (fname: + + + string + + + ) :{" "} + + + string + + {" "} + := +
+       match{" "} + + tname + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + fname + +
+       |{" "} + + + Some + + {" "} + tname =>{" "} + + tname + {" "} + ++ "_" ++{" "} + + fname + +
+       end.
+   End{" "} + + Misc + + .
+
+   Section{" "} + + Namespaces + + .
+     Definition{" "} + + no_namespace + {" "} + :{" "} + + + string + + {" "} + := "". +
+   End{" "} + + Namespaces + + .
+
+ End{" "} + + Names + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.html b/docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.html deleted file mode 100644 index ac91623f..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Utils.NamespaceContext - - - - - - -

Module ErgoSpec.Common.Utils.NamespaceContext

-
-
-
Ergo is a language for expressing contract logic.
-
-

Abstract Syntax

-
-Require Import String.
-Require Import List.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-
-Section NamespaceContext.
-
-  Section NameTable.
-
Maps local names to absolute names for a given ErgoType module
-    Definition name_table : Set := list (local_name * absolute_name).
-
-
Maps namespaces to the names tables for that namespace
-    Record namespace_table : Set :=
-      mkNamespaceTable
-        { namespace_table_types : name_table;
-          namespace_table_constants : name_table;
-          namespace_table_functions : name_table;
-          namespace_table_contracts : name_table; }.
-
-    Definition empty_namespace_table : namespace_table :=
-      mkNamespaceTable nil nil nil nil.
-
-    Definition one_type_to_namespace_table (ln:local_name) (an:absolute_name) : namespace_table :=
-      mkNamespaceTable ((ln,an)::nil) nil nil nil.
-    Definition one_constant_to_namespace_table (ln:local_name) (an:absolute_name) : namespace_table :=
-      mkNamespaceTable nil ((ln,an)::nil) nil nil.
-    Definition one_function_to_namespace_table (ln:local_name) (an:absolute_name) : namespace_table :=
-      mkNamespaceTable nil nil ((ln,an)::nil) nil.
-    Definition one_contract_to_namespace_table (ln:local_name) (an:absolute_name) : namespace_table :=
-      mkNamespaceTable nil nil nil ((ln,an)::nil).
-
-    Definition namespace_table_app (tbl1 tbl2:namespace_table) : namespace_table :=
-      mkNamespaceTable
-        (app tbl1.(namespace_table_types) tbl2.(namespace_table_types))
-        (app tbl1.(namespace_table_constants) tbl2.(namespace_table_constants))
-        (app tbl1.(namespace_table_functions) tbl2.(namespace_table_functions))
-        (app tbl1.(namespace_table_contracts) tbl2.(namespace_table_contracts)).
-
-    Definition lookup_type_name (prov:provenance) (tbl:namespace_table) (ln:local_name) : eresult absolute_name :=
-      match lookup string_dec tbl.(namespace_table_types) ln with
-      | None => type_name_not_found_error prov ln
-      | Some an => esuccess an
-      end.
-    Definition lookup_constant_name (prov:provenance) (tbl:namespace_table) (ln:local_name) : eresult absolute_name :=
-      match lookup string_dec tbl.(namespace_table_constants) ln with
-      | None => variable_name_not_found_error prov ln
-      | Some an => esuccess an
-      end.
-    Definition lookup_function_name (prov:provenance) (tbl:namespace_table) (ln:local_name) : eresult absolute_name :=
-      match lookup string_dec tbl.(namespace_table_functions) ln with
-      | None => function_name_not_found_error prov ln
-      | Some an => esuccess an
-      end.
-    Definition lookup_contract_name (prov:provenance) (tbl:namespace_table) (ln:local_name) : eresult absolute_name :=
-      match lookup string_dec tbl.(namespace_table_contracts) ln with
-      | None => contract_name_not_found_error prov ln
-      | Some an => esuccess an
-      end.
-
-    Definition resolve_type_name (prov:provenance) (tbl:namespace_table) (rn:relative_name) :=
-      match fst rn with
-      | None => lookup_type_name prov tbl (snd rn)
-      | Some ns => esuccess (absolute_name_of_local_name ns (snd rn))
-      end.
-    Definition resolve_constant_name (prov:provenance) (tbl:namespace_table) (rn:relative_name) :=
-      match fst rn with
-      | None => lookup_constant_name prov tbl (snd rn)
-      | Some ns => esuccess (absolute_name_of_local_name ns (snd rn))
-      end.
-    Definition resolve_function_name (prov:provenance) (tbl:namespace_table) (rn:relative_name) :=
-      match fst rn with
-      | None => lookup_function_name prov tbl (snd rn)
-      | Some ns => esuccess (absolute_name_of_local_name ns (snd rn))
-      end.
-    Definition resolve_contract_name (prov:provenance) (tbl:namespace_table) (rn:relative_name) :=
-      match fst rn with
-      | None => lookup_contract_name prov tbl (snd rn)
-      | Some ns => esuccess (absolute_name_of_local_name ns (snd rn))
-      end.
-
-    Definition add_type_to_namespace_table (ln:local_name) (an:absolute_name) (tbl:namespace_table) :=
-      mkNamespaceTable
-        ((ln,an)::tbl.(namespace_table_types))
-        tbl.(namespace_table_constants)
-        tbl.(namespace_table_functions)
-        tbl.(namespace_table_contracts).
-    Definition add_constant_to_namespace_table (ln:local_name) (an:absolute_name) (tbl:namespace_table) :=
-      mkNamespaceTable
-        tbl.(namespace_table_types)
-        ((ln,an)::tbl.(namespace_table_constants))
-        tbl.(namespace_table_functions)
-        tbl.(namespace_table_contracts).
-    Definition add_function_to_namespace_table (ln:local_name) (an:absolute_name) (tbl:namespace_table) :=
-      mkNamespaceTable
-        tbl.(namespace_table_types)
-        tbl.(namespace_table_constants)
-        ((ln,an)::tbl.(namespace_table_functions))
-        tbl.(namespace_table_contracts).
-    Definition add_contract_to_namespace_table (ln:local_name) (an:absolute_name) (tbl:namespace_table) :=
-      mkNamespaceTable
-        tbl.(namespace_table_types)
-        tbl.(namespace_table_constants)
-        tbl.(namespace_table_functions)
-        ((ln,an)::tbl.(namespace_table_contracts)).
-  End NameTable.
-
-  Definition enum_ctxt : Set := list string.
-  Definition abstract_ctxt : Set := list string.
-  Record namespace_ctxt : Set :=
-    mkNamespaceCtxt {
-        namespace_ctxt_modules : list (namespace_name * namespace_table);
-        namespace_ctxt_namespace : namespace_name;
-        namespace_ctxt_current_module : namespace_table;
-        namespace_ctxt_current_in_scope : namespace_table;
-        namespace_ctxt_enums : enum_ctxt;
-        namespace_ctxt_abstract : abstract_ctxt;
-      }.
-
-  Definition empty_namespace_ctxt (ns:namespace_name) : namespace_ctxt :=
-    mkNamespaceCtxt nil ns empty_namespace_table empty_namespace_table nil nil.
-
-  Definition update_namespace_context_modules
-             (ctxt:namespace_ctxt)
-             (ns:namespace_name)
-             (update:namespace_table -> namespace_table) : namespace_ctxt :=
-    match lookup string_dec ctxt.(namespace_ctxt_modules) ns with
-    | Some t =>
-      mkNamespaceCtxt (update_first string_dec ctxt.(namespace_ctxt_modules) ns (update t))
-                      ctxt.(namespace_ctxt_namespace)
-                      ctxt.(namespace_ctxt_current_module)
-                      ctxt.(namespace_ctxt_current_in_scope)
-                      ctxt.(namespace_ctxt_enums)
-                      ctxt.(namespace_ctxt_abstract)
-    | None =>
-      mkNamespaceCtxt ((ns, update empty_namespace_table) :: ctxt.(namespace_ctxt_modules))
-                      ctxt.(namespace_ctxt_namespace)
-                      ctxt.(namespace_ctxt_current_module)
-                      ctxt.(namespace_ctxt_current_in_scope)
-                      ctxt.(namespace_ctxt_enums)
-                      ctxt.(namespace_ctxt_abstract)
-    end.
-
-  Definition update_namespace_context_current_module
-             (ctxt:namespace_ctxt)
-             (update:namespace_table -> namespace_table) : namespace_ctxt :=
-    mkNamespaceCtxt ctxt.(namespace_ctxt_modules)
-                    ctxt.(namespace_ctxt_namespace)
-                    (update ctxt.(namespace_ctxt_current_module))
-                    ctxt.(namespace_ctxt_current_in_scope)
-                    ctxt.(namespace_ctxt_enums)
-                    ctxt.(namespace_ctxt_abstract).
-  
-  Definition update_namespace_context_current_in_scope
-             (ctxt:namespace_ctxt)
-             (update:namespace_table -> namespace_table) : namespace_ctxt :=
-    mkNamespaceCtxt ctxt.(namespace_ctxt_modules)
-                    ctxt.(namespace_ctxt_namespace)
-                    ctxt.(namespace_ctxt_current_module)
-                    (update ctxt.(namespace_ctxt_current_in_scope))
-                    ctxt.(namespace_ctxt_enums)
-                    ctxt.(namespace_ctxt_abstract).
-  
-  Definition update_namespace_context_current_both
-             (ctxt:namespace_ctxt)
-             (update:namespace_table -> namespace_table) : namespace_ctxt :=
-    mkNamespaceCtxt ctxt.(namespace_ctxt_modules)
-                    ctxt.(namespace_ctxt_namespace)
-                    (update ctxt.(namespace_ctxt_current_module))
-                    (update ctxt.(namespace_ctxt_current_in_scope))
-                    ctxt.(namespace_ctxt_enums)
-                    ctxt.(namespace_ctxt_abstract).
-  
-  Definition update_namespace_context_enums
-             (ctxt:namespace_ctxt)
-             (ectxt:enum_ctxt) : namespace_ctxt :=
-    mkNamespaceCtxt ctxt.(namespace_ctxt_modules)
-                    ctxt.(namespace_ctxt_namespace)
-                    ctxt.(namespace_ctxt_current_module)
-                    ctxt.(namespace_ctxt_current_in_scope)
-                    ectxt
-                    ctxt.(namespace_ctxt_abstract).
-    
-  Definition update_namespace_context_abstract
-             (ctxt:namespace_ctxt)
-             (actxt:abstract_ctxt) : namespace_ctxt :=
-    mkNamespaceCtxt ctxt.(namespace_ctxt_modules)
-                    ctxt.(namespace_ctxt_namespace)
-                    ctxt.(namespace_ctxt_current_module)
-                    ctxt.(namespace_ctxt_current_in_scope)
-                    ctxt.(namespace_ctxt_enums)
-                    actxt.
-    
-  Definition add_type_to_namespace_ctxt
-             (ctxt:namespace_ctxt) (ns:namespace_name) (ln:local_name) (an:absolute_name) :=
-    update_namespace_context_modules ctxt ns (add_type_to_namespace_table ln an).
-  
-  Definition add_constant_to_namespace_ctxt
-             (ctxt:namespace_ctxt) (ns:namespace_name) (ln:local_name) (an:absolute_name) :=
-    update_namespace_context_modules ctxt ns (add_constant_to_namespace_table ln an).
-  
-  Definition add_function_to_namespace_ctxt
-             (ctxt:namespace_ctxt) (ns:namespace_name) (ln:local_name) (an:absolute_name) :=
-    update_namespace_context_modules ctxt ns (add_function_to_namespace_table ln an).
-
-  Definition add_contract_to_namespace_ctxt
-             (ctxt:namespace_ctxt) (ns:namespace_name) (ln:local_name) (an:absolute_name) :=
-    update_namespace_context_modules ctxt ns (add_contract_to_namespace_table ln an).
-
-  Definition add_type_to_namespace_ctxt_current
-             (ctxt:namespace_ctxt) (ln:local_name) (an:absolute_name) :=
-    update_namespace_context_current_both ctxt (add_type_to_namespace_table ln an).
-    
-  Definition add_constant_to_namespace_ctxt_current
-             (ctxt:namespace_ctxt) (ln:local_name) (an:absolute_name) :=
-    update_namespace_context_current_both ctxt (add_constant_to_namespace_table ln an).
-  
-  Definition add_function_to_namespace_ctxt_current
-             (ctxt:namespace_ctxt) (ln:local_name) (an:absolute_name) :=
-    update_namespace_context_current_both ctxt (add_function_to_namespace_table ln an).
-
-  Definition add_contract_to_namespace_ctxt_current
-             (ctxt:namespace_ctxt) (ln:local_name) (an:absolute_name) :=
-    update_namespace_context_current_both ctxt (add_contract_to_namespace_table ln an).
-
-  Definition new_namespace_scope (ctxt:namespace_ctxt) (ns:namespace_name) : namespace_ctxt :=
-    let prev_ns := ctxt.(namespace_ctxt_namespace) in
-    let prev_tbl_current_module := ctxt.(namespace_ctxt_current_module) in
-    let prev_modules := ctxt.(namespace_ctxt_modules) in
-    let prev_enums := ctxt.(namespace_ctxt_enums) in
-    let prev_abstract := ctxt.(namespace_ctxt_abstract) in
-    if string_dec prev_ns no_namespace
-    then
-      mkNamespaceCtxt
-        prev_modules
-        ns
-        empty_namespace_table
-        empty_namespace_table
-        prev_enums
-        prev_abstract
-    else
-      match lookup string_dec prev_modules prev_ns with
-      | Some t =>
-        mkNamespaceCtxt
-          (update_first string_dec prev_modules prev_ns (namespace_table_app prev_tbl_current_module t))
-          ns
-          empty_namespace_table
-          empty_namespace_table
-          prev_enums
-          prev_abstract
-      | None =>
-        mkNamespaceCtxt
-          ((prev_ns, prev_tbl_current_module) :: prev_modules)
-          ns
-          empty_namespace_table
-          empty_namespace_table
-          prev_enums
-          prev_abstract
-      end.
-
-  Definition local_namespace_scope (ctxt:namespace_ctxt) (ns:namespace_name) : namespace_ctxt :=
-    let prev_ns := ctxt.(namespace_ctxt_namespace) in
-    let prev_tbl_current_module := ctxt.(namespace_ctxt_current_module) in
-    let prev_tbl_current_in_scope := ctxt.(namespace_ctxt_current_in_scope) in
-    let prev_modules := ctxt.(namespace_ctxt_modules) in
-    let prev_enums := ctxt.(namespace_ctxt_enums) in
-    let prev_abstract := ctxt.(namespace_ctxt_abstract) in
-    mkNamespaceCtxt
-      prev_modules
-      ns
-      prev_tbl_current_module
-      prev_tbl_current_in_scope
-      prev_enums
-      prev_abstract.
-
-End NamespaceContext.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.jsx b/docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.jsx new file mode 100644 index 00000000..994b4f77 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Utils.NamespaceContext.jsx @@ -0,0 +1,3414 @@ +
+ + Module ErgoSpec.Common.Utils.NamespaceContext + + +

Module ErgoSpec.Common.Utils.NamespaceContext

+
+
+
+ Ergo is a language for expressing contract logic.{" "} +
+
+

Abstract Syntax

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+
+ Section{" "} + + NamespaceContext + + .
+
+   Section{" "} + + NameTable + + .
+
+ Maps local names to absolute names for a given ErgoType module{" "} +
+     Definition{" "} + + name_table + {" "} + : Set :={" "} + + + list + + {" "} + ( + + local_name + {" "} + *{" "} + + absolute_name + + ). +
+
+
+ Maps namespaces to the names tables for that namespace{" "} +
+     Record{" "} + + namespace_table + {" "} + : Set := +
+        + + mkNamespaceTable + +
+         {"{"}{" "} + + namespace_table_types + {" "} + :{" "} + + + name_table + + + ;
+            + + namespace_table_constants + {" "} + :{" "} + + + name_table + + + ;
+            + + namespace_table_functions + {" "} + :{" "} + + + name_table + + + ;
+            + + namespace_table_contracts + {" "} + :{" "} + + + name_table + + + ; {"}"}.
+
+     Definition{" "} + + empty_namespace_table + {" "} + :{" "} + + + namespace_table + + {" "} + := +
+        + + + mkNamespaceTable + + {" "} + + nil + {" "} + + nil + {" "} + + nil + {" "} + + nil + + .
+
+     Definition{" "} + + one_type_to_namespace_table + {" "} + (ln: + + local_name + + ) (an: + + absolute_name + + ) :{" "} + + + namespace_table + + {" "} + := +
+        + + + mkNamespaceTable + + {" "} + (( + + ln + + , + + an + + ):: + + nil + + ){" "} + + nil + {" "} + + nil + {" "} + + nil + + .
+     Definition{" "} + + + one_constant_to_namespace_table + + {" "} + (ln: + + local_name + + ) (an: + + absolute_name + + ) :{" "} + + + namespace_table + + {" "} + := +
+        + + + mkNamespaceTable + + {" "} + + nil + {" "} + (( + + ln + + , + + an + + ):: + + nil + + ){" "} + + nil + {" "} + + nil + + .
+     Definition{" "} + + + one_function_to_namespace_table + + {" "} + (ln: + + local_name + + ) (an: + + absolute_name + + ) :{" "} + + + namespace_table + + {" "} + := +
+        + + + mkNamespaceTable + + {" "} + + nil + {" "} + + nil + {" "} + (( + + ln + + , + + an + + ):: + + nil + + ){" "} + + nil + + .
+     Definition{" "} + + + one_contract_to_namespace_table + + {" "} + (ln: + + local_name + + ) (an: + + absolute_name + + ) :{" "} + + + namespace_table + + {" "} + := +
+        + + + mkNamespaceTable + + {" "} + + nil + {" "} + + nil + {" "} + + nil + {" "} + (( + + ln + + , + + an + + ):: + + nil + + ). +
+
+     Definition{" "} + + namespace_table_app + {" "} + (tbl1 tbl2: + + + namespace_table + + + ) :{" "} + + + namespace_table + + {" "} + := +
+        + + + mkNamespaceTable + + +
+         ( + + app + {" "} + + tbl1 + + .( + + + namespace_table_types + + + ){" "} + + tbl2 + + .( + + + namespace_table_types + + + )) +
+         ( + + app + {" "} + + tbl1 + + .( + + + namespace_table_constants + + + ){" "} + + tbl2 + + .( + + + namespace_table_constants + + + )) +
+         ( + + app + {" "} + + tbl1 + + .( + + + namespace_table_functions + + + ){" "} + + tbl2 + + .( + + + namespace_table_functions + + + )) +
+         ( + + app + {" "} + + tbl1 + + .( + + + namespace_table_contracts + + + ){" "} + + tbl2 + + .( + + + namespace_table_contracts + + + )). +
+
+     Definition{" "} + + lookup_type_name + {" "} + (prov: + + provenance + + ) (tbl: + + + namespace_table + + + ) (ln: + + local_name + + ) :{" "} + + eresult + {" "} + + absolute_name + {" "} + := +
+       match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + tbl + + .( + + + namespace_table_types + + + ){" "} + + ln + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + type_name_not_found_error + + {" "} + + prov + {" "} + + ln + +
+       |{" "} + + + Some + + {" "} + an =>{" "} + + esuccess + {" "} + an +
+       end.
+     Definition{" "} + + lookup_constant_name + {" "} + (prov: + + provenance + + ) (tbl: + + + namespace_table + + + ) (ln: + + local_name + + ) :{" "} + + eresult + {" "} + + absolute_name + {" "} + := +
+       match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + tbl + + .( + + + namespace_table_constants + + + ){" "} + + ln + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + variable_name_not_found_error + + {" "} + + prov + {" "} + + ln + +
+       |{" "} + + + Some + + {" "} + an =>{" "} + + esuccess + {" "} + an +
+       end.
+     Definition{" "} + + lookup_function_name + {" "} + (prov: + + provenance + + ) (tbl: + + + namespace_table + + + ) (ln: + + local_name + + ) :{" "} + + eresult + {" "} + + absolute_name + {" "} + := +
+       match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + tbl + + .( + + + namespace_table_functions + + + ){" "} + + ln + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + function_name_not_found_error + + {" "} + + prov + {" "} + + ln + +
+       |{" "} + + + Some + + {" "} + an =>{" "} + + esuccess + {" "} + an +
+       end.
+     Definition{" "} + + lookup_contract_name + {" "} + (prov: + + provenance + + ) (tbl: + + + namespace_table + + + ) (ln: + + local_name + + ) :{" "} + + eresult + {" "} + + absolute_name + {" "} + := +
+       match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + tbl + + .( + + + namespace_table_contracts + + + ){" "} + + ln + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + contract_name_not_found_error + + {" "} + + prov + {" "} + + ln + +
+       |{" "} + + + Some + + {" "} + an =>{" "} + + esuccess + {" "} + an +
+       end.
+
+     Definition{" "} + + resolve_type_name + {" "} + (prov: + + provenance + + ) (tbl: + + + namespace_table + + + ) (rn: + + relative_name + + ) := +
+       match{" "} + + fst + {" "} + + rn + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + lookup_type_name + + {" "} + + prov + {" "} + + tbl + {" "} + ( + + snd + {" "} + + rn + + )
+       |{" "} + + + Some + + {" "} + ns =>{" "} + + esuccess + {" "} + ( + + + absolute_name_of_local_name + + {" "} + ns ( + + snd + {" "} + + rn + + )) +
+       end.
+     Definition{" "} + + resolve_constant_name + {" "} + (prov: + + provenance + + ) (tbl: + + + namespace_table + + + ) (rn: + + relative_name + + ) := +
+       match{" "} + + fst + {" "} + + rn + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + lookup_constant_name + + {" "} + + prov + {" "} + + tbl + {" "} + ( + + snd + {" "} + + rn + + )
+       |{" "} + + + Some + + {" "} + ns =>{" "} + + esuccess + {" "} + ( + + + absolute_name_of_local_name + + {" "} + ns ( + + snd + {" "} + + rn + + )) +
+       end.
+     Definition{" "} + + resolve_function_name + {" "} + (prov: + + provenance + + ) (tbl: + + + namespace_table + + + ) (rn: + + relative_name + + ) := +
+       match{" "} + + fst + {" "} + + rn + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + lookup_function_name + + {" "} + + prov + {" "} + + tbl + {" "} + ( + + snd + {" "} + + rn + + )
+       |{" "} + + + Some + + {" "} + ns =>{" "} + + esuccess + {" "} + ( + + + absolute_name_of_local_name + + {" "} + ns ( + + snd + {" "} + + rn + + )) +
+       end.
+     Definition{" "} + + resolve_contract_name + {" "} + (prov: + + provenance + + ) (tbl: + + + namespace_table + + + ) (rn: + + relative_name + + ) := +
+       match{" "} + + fst + {" "} + + rn + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + lookup_contract_name + + {" "} + + prov + {" "} + + tbl + {" "} + ( + + snd + {" "} + + rn + + )
+       |{" "} + + + Some + + {" "} + ns =>{" "} + + esuccess + {" "} + ( + + + absolute_name_of_local_name + + {" "} + ns ( + + snd + {" "} + + rn + + )) +
+       end.
+
+     Definition{" "} + + add_type_to_namespace_table + {" "} + (ln: + + local_name + + ) (an: + + absolute_name + + ) (tbl: + + + namespace_table + + + ) := +
+        + + + mkNamespaceTable + + +
+         (( + + ln + + , + + an + + ):: + + tbl + + .( + + + namespace_table_types + + + )) +
+          + + tbl + + .( + + + namespace_table_constants + + + )
+          + + tbl + + .( + + + namespace_table_functions + + + )
+          + + tbl + + .( + + + namespace_table_contracts + + + ). +
+     Definition{" "} + + + add_constant_to_namespace_table + + {" "} + (ln: + + local_name + + ) (an: + + absolute_name + + ) (tbl: + + + namespace_table + + + ) := +
+        + + + mkNamespaceTable + + +
+          + + tbl + + .( + + + namespace_table_types + + + )
+         (( + + ln + + , + + an + + ):: + + tbl + + .( + + + namespace_table_constants + + + )) +
+          + + tbl + + .( + + + namespace_table_functions + + + )
+          + + tbl + + .( + + + namespace_table_contracts + + + ). +
+     Definition{" "} + + + add_function_to_namespace_table + + {" "} + (ln: + + local_name + + ) (an: + + absolute_name + + ) (tbl: + + + namespace_table + + + ) := +
+        + + + mkNamespaceTable + + +
+          + + tbl + + .( + + + namespace_table_types + + + )
+          + + tbl + + .( + + + namespace_table_constants + + + )
+         (( + + ln + + , + + an + + ):: + + tbl + + .( + + + namespace_table_functions + + + )) +
+          + + tbl + + .( + + + namespace_table_contracts + + + ). +
+     Definition{" "} + + + add_contract_to_namespace_table + + {" "} + (ln: + + local_name + + ) (an: + + absolute_name + + ) (tbl: + + + namespace_table + + + ) := +
+        + + + mkNamespaceTable + + {" "} +
+          + + tbl + + .( + + + namespace_table_types + + + )
+          + + tbl + + .( + + + namespace_table_constants + + + )
+          + + tbl + + .( + + + namespace_table_functions + + + )
+         (( + + ln + + , + + an + + ):: + + tbl + + .( + + + namespace_table_contracts + + + )). +
+   End{" "} + + + NameTable + + + .
+
+   Definition{" "} + + enum_ctxt + {" "} + : Set :={" "} + + + list + + {" "} + + + string + + + .
+   Definition{" "} + + abstract_ctxt + {" "} + : Set :={" "} + + + list + + {" "} + + + string + + + .
+   Record{" "} + + namespace_ctxt + {" "} + : Set := +
+      + + mkNamespaceCtxt + {" "} + {"{"} +
+          + + namespace_ctxt_modules + {" "} + :{" "} + + + list + + {" "} + ( + + + namespace_name + + {" "} + *{" "} + + + namespace_table + + + ); +
+          + + namespace_ctxt_namespace + {" "} + :{" "} + + + namespace_name + + + ;
+          + + namespace_ctxt_current_module + {" "} + :{" "} + + + namespace_table + + + ;
+          + + + namespace_ctxt_current_in_scope + + {" "} + :{" "} + + + namespace_table + + + ;
+          + + namespace_ctxt_enums + {" "} + :{" "} + + + enum_ctxt + + + ;
+          + + namespace_ctxt_abstract + {" "} + :{" "} + + + abstract_ctxt + + + ;
+       {"}"}.
+
+   Definition{" "} + + empty_namespace_ctxt + {" "} + (ns: + + + namespace_name + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + + mkNamespaceCtxt + + {" "} + + nil + {" "} + + ns + {" "} + + + empty_namespace_table + + {" "} + + + empty_namespace_table + + {" "} + + nil + {" "} + + nil + + .
+
+   Definition{" "} + + + update_namespace_context_modules + + +
+              ( + ctxt: + + + namespace_ctxt + + + )
+              ( + ns: + + + namespace_name + + + )
+              ( + update: + + + namespace_table + + {" "} + ->{" "} + + + namespace_table + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+     match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + ){" "} + + ns + {" "} + with +
+     |{" "} + + + Some + + {" "} + t => +
+        + + + mkNamespaceCtxt + + {" "} + ( + + + update_first + + {" "} + + + string_dec + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + ){" "} + + ns + {" "} + ( + + update + {" "} + t)) +
+                        + + ctxt + + .( + + + namespace_ctxt_namespace + + + )
+                        + + ctxt + + .( + + + namespace_ctxt_current_module + + + )
+                        + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + )
+                        + + ctxt + + .( + + + namespace_ctxt_enums + + + )
+                        + + ctxt + + .( + + + namespace_ctxt_abstract + + + )
+     |{" "} + + + None + + {" "} + => +
+        + + + mkNamespaceCtxt + + {" "} + (( + + ns + + ,{" "} + + update + {" "} + + + empty_namespace_table + + + ) ::{" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + )) +
+                        + + ctxt + + .( + + + namespace_ctxt_namespace + + + )
+                        + + ctxt + + .( + + + namespace_ctxt_current_module + + + )
+                        + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + )
+                        + + ctxt + + .( + + + namespace_ctxt_enums + + + )
+                        + + ctxt + + .( + + + namespace_ctxt_abstract + + + )
+     end.
+
+   Definition{" "} + + + update_namespace_context_current_module + + +
+              ( + ctxt: + + + namespace_ctxt + + + )
+              ( + update: + + + namespace_table + + {" "} + ->{" "} + + + namespace_table + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + + mkNamespaceCtxt + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_namespace + + + )
+                     ( + + update + {" "} + + ctxt + + .( + + + namespace_ctxt_current_module + + + )) +
+                      + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_enums + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_abstract + + + ). +
+    +
+   Definition{" "} + + + update_namespace_context_current_in_scope + + +
+              ( + ctxt: + + + namespace_ctxt + + + )
+              ( + update: + + + namespace_table + + {" "} + ->{" "} + + + namespace_table + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + + mkNamespaceCtxt + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_namespace + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_current_module + + + )
+                     ( + + update + {" "} + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + )) +
+                      + + ctxt + + .( + + + namespace_ctxt_enums + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_abstract + + + ). +
+    +
+   Definition{" "} + + + update_namespace_context_current_both + + +
+              ( + ctxt: + + + namespace_ctxt + + + )
+              ( + update: + + + namespace_table + + {" "} + ->{" "} + + + namespace_table + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + + mkNamespaceCtxt + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_namespace + + + )
+                     ( + + update + {" "} + + ctxt + + .( + + + namespace_ctxt_current_module + + + )) +
+                     ( + + update + {" "} + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + )) +
+                      + + ctxt + + .( + + + namespace_ctxt_enums + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_abstract + + + ). +
+    +
+   Definition{" "} + + + update_namespace_context_enums + + +
+              ( + ctxt: + + + namespace_ctxt + + + )
+              ( + ectxt: + + + enum_ctxt + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + + mkNamespaceCtxt + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_namespace + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_current_module + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + )
+                      + + ectxt + +
+                      + + ctxt + + .( + + + namespace_ctxt_abstract + + + ). +
+      +
+   Definition{" "} + + + update_namespace_context_abstract + + +
+              ( + ctxt: + + + namespace_ctxt + + + )
+              ( + actxt: + + + abstract_ctxt + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + + mkNamespaceCtxt + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_namespace + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_current_module + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + )
+                      + + ctxt + + .( + + + namespace_ctxt_enums + + + )
+                      + + actxt + + .
+      +
+   Definition{" "} + + add_type_to_namespace_ctxt + +
+              ( + ctxt: + + + namespace_ctxt + + + ) (ns: + + + namespace_name + + + ) (ln: + + local_name + + ) (an: + + absolute_name + + ) := +
+      + + + update_namespace_context_modules + + {" "} + + ctxt + {" "} + + ns + {" "} + ( + + + add_type_to_namespace_table + + {" "} + + ln + {" "} + + an + + ). +
+    +
+   Definition{" "} + + + add_constant_to_namespace_ctxt + + +
+              ( + ctxt: + + + namespace_ctxt + + + ) (ns: + + + namespace_name + + + ) (ln: + + local_name + + ) (an: + + absolute_name + + ) := +
+      + + + update_namespace_context_modules + + {" "} + + ctxt + {" "} + + ns + {" "} + ( + + + add_constant_to_namespace_table + + {" "} + + ln + {" "} + + an + + ). +
+    +
+   Definition{" "} + + + add_function_to_namespace_ctxt + + +
+              ( + ctxt: + + + namespace_ctxt + + + ) (ns: + + + namespace_name + + + ) (ln: + + local_name + + ) (an: + + absolute_name + + ) := +
+      + + + update_namespace_context_modules + + {" "} + + ctxt + {" "} + + ns + {" "} + ( + + + add_function_to_namespace_table + + {" "} + + ln + {" "} + + an + + ). +
+
+   Definition{" "} + + + add_contract_to_namespace_ctxt + + +
+              ( + ctxt: + + + namespace_ctxt + + + ) (ns: + + + namespace_name + + + ) (ln: + + local_name + + ) (an: + + absolute_name + + ) := +
+      + + + update_namespace_context_modules + + {" "} + + ctxt + {" "} + + ns + {" "} + ( + + + add_contract_to_namespace_table + + {" "} + + ln + {" "} + + an + + ). +
+
+   Definition{" "} + + + add_type_to_namespace_ctxt_current + + +
+              ( + ctxt: + + + namespace_ctxt + + + ) (ln: + + local_name + + ) (an: + + absolute_name + + ) := +
+      + + + update_namespace_context_current_both + + {" "} + + ctxt + {" "} + ( + + + add_type_to_namespace_table + + {" "} + + ln + {" "} + + an + + ). +
+      +
+   Definition{" "} + + + add_constant_to_namespace_ctxt_current + + +
+              ( + ctxt: + + + namespace_ctxt + + + ) (ln: + + local_name + + ) (an: + + absolute_name + + ) := +
+      + + + update_namespace_context_current_both + + {" "} + + ctxt + {" "} + ( + + + add_constant_to_namespace_table + + {" "} + + ln + {" "} + + an + + ). +
+    +
+   Definition{" "} + + + add_function_to_namespace_ctxt_current + + +
+              ( + ctxt: + + + namespace_ctxt + + + ) (ln: + + local_name + + ) (an: + + absolute_name + + ) := +
+      + + + update_namespace_context_current_both + + {" "} + + ctxt + {" "} + ( + + + add_function_to_namespace_table + + {" "} + + ln + {" "} + + an + + ). +
+
+   Definition{" "} + + + add_contract_to_namespace_ctxt_current + + +
+              ( + ctxt: + + + namespace_ctxt + + + ) (ln: + + local_name + + ) (an: + + absolute_name + + ) := +
+      + + + update_namespace_context_current_both + + {" "} + + ctxt + {" "} + ( + + + add_contract_to_namespace_table + + {" "} + + ln + {" "} + + an + + ). +
+
+   Definition{" "} + + new_namespace_scope + {" "} + (ctxt: + + + namespace_ctxt + + + ) (ns: + + + namespace_name + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+     let{" "} + prev_ns :={" "} + + ctxt + + .( + + + namespace_ctxt_namespace + + + ) in +
+     let{" "} + prev_tbl_current_module :={" "} + + ctxt + + .( + + + namespace_ctxt_current_module + + + ) in +
+     let{" "} + prev_modules :={" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + ) in +
+     let{" "} + prev_enums :={" "} + + ctxt + + .( + + + namespace_ctxt_enums + + + ) in +
+     let{" "} + prev_abstract :={" "} + + ctxt + + .( + + + namespace_ctxt_abstract + + + ) in +
+     if{" "} + + + string_dec + + {" "} + + prev_ns + {" "} + + no_namespace + {" "} +
+     then +
+        + + + mkNamespaceCtxt + + +
+          + + + prev_modules + + +
+          + + ns + +
+          + + + empty_namespace_table + + +
+          + + + empty_namespace_table + + +
+          + + + prev_enums + + +
+          + + + prev_abstract + + +
+     else +
+       match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + + prev_modules + + {" "} + + prev_ns + {" "} + with +
+       |{" "} + + + Some + + {" "} + t => +
+          + + + mkNamespaceCtxt + + +
+           ( + + + update_first + + {" "} + + + string_dec + + {" "} + + + prev_modules + + {" "} + + prev_ns + {" "} + ( + + + namespace_table_app + + {" "} + + + prev_tbl_current_module + + {" "} + t)) +
+            + + ns + +
+            + + + empty_namespace_table + + +
+            + + + empty_namespace_table + + +
+            + + + prev_enums + + +
+            + + + prev_abstract + + +
+       |{" "} + + + None + + {" "} + => +
+          + + + mkNamespaceCtxt + + +
+           (( + + prev_ns + + ,{" "} + + + prev_tbl_current_module + + + ) ::{" "} + + + prev_modules + + + )
+            + + ns + +
+            + + + empty_namespace_table + + +
+            + + + empty_namespace_table + + +
+            + + + prev_enums + + +
+            + + + prev_abstract + + +
+       end.
+
+   Definition{" "} + + local_namespace_scope + {" "} + (ctxt: + + + namespace_ctxt + + + ) (ns: + + + namespace_name + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+     let{" "} + prev_ns :={" "} + + ctxt + + .( + + + namespace_ctxt_namespace + + + ) in +
+     let{" "} + prev_tbl_current_module :={" "} + + ctxt + + .( + + + namespace_ctxt_current_module + + + ) in +
+     let{" "} + prev_tbl_current_in_scope :={" "} + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + ) in +
+     let{" "} + prev_modules :={" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + ) in +
+     let{" "} + prev_enums :={" "} + + ctxt + + .( + + + namespace_ctxt_enums + + + ) in +
+     let{" "} + prev_abstract :={" "} + + ctxt + + .( + + + namespace_ctxt_abstract + + + ) in +
+      + + + mkNamespaceCtxt + + +
+        + + + prev_modules + + +
+        + + ns + +
+        + + + prev_tbl_current_module + + +
+        + + + prev_tbl_current_in_scope + + +
+        + + + prev_enums + + +
+        + + + prev_abstract + + + .
+
+ End{" "} + + + NamespaceContext + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.html b/docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.html deleted file mode 100644 index e3f8cfe6..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Utils.PrintTypedData - - - - - - -

Module ErgoSpec.Common.Utils.PrintTypedData

-
-
-Require Import Ascii.
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.NamespaceContext.
-
-Require Import JsAst.JsNumber.
-
-Local Open Scope string.
-
-Section PrintTypedData.
-  Definition print_brand (nsctxt:namespace_ctxt) (b:string) : string :=
-    match get_local_part b with
-    | None => "~" ++ b
-    | Some local_name =>
-      match resolve_type_name dummy_provenance nsctxt.(namespace_ctxt_current_in_scope) (None,local_name) with
-      | Success _ _ resolved_b =>
-        if string_dec resolved_b b
-        then
-          local_name
-        else
-          "~" ++ b
-      | Failure _ _ _ =>
-        "~" ++ b
-      end
-    end.
-  
-  Section Data.
-    Context {br:brand_relation}.
-
-    Definition unpack_output
-               (out : ergo_data)
-      : option (ergo_data * list ergo_data * ergo_data) :=
-      match out with
-      | (dleft (drec (("response", response)
-                        ::("state", state)
-                        ::("emit", dcoll emits)
-                        ::nil))) =>
-        Some (response, emits, state)
-      | _ => None
-      end.
-
-    Definition fmt_nl := String.String (ascii_of_N 10) EmptyString.
-    Definition fmt_dq := """".
-
-    Fixpoint string_of_data (nsctxt:namespace_ctxt) (d : ergo_data) : string :=
-      let jsonify := ErgoData.data_to_json_string fmt_dq in
-      let string_of_rec : list (string * ergo_data) -> string :=
-          fun rec =>
-            ("{"
-                ++ (String.concat
-                      ", "
-                      (map
-                         (fun item =>
-                            (fst item) ++ ": " ++ (string_of_data nsctxt (snd item)))
-                         rec))
-                ++ "}") in
-      match d with
-      | dunit => "unit"
-      | dnat z => Z_to_string10 z
-      | dfloat f => to_string f
-      | dbool true => "true"
-      | dbool false => "false"
-      | dstring s => jsonify (dstring s)
-      | dcoll arr =>
-        "["
-           ++ (String.concat
-                 ", "
-                 (map (string_of_data nsctxt) arr))
-           ++ "]"
-      | dleft s => "some(" ++ (string_of_data nsctxt s) ++ ")"
-      | dright _ => "none"
-      | dbrand (b::nil) d' => print_brand nsctxt b ++ (string_of_data nsctxt d')
-      | dbrand _ _ => "???more than one brand???"
-      | drec r => string_of_rec r
-      | dforeign (ErgoEnhancedModel.enhanceddateTime dt) =>
-        "dateTime(""" ++ DateTimeModelPart.DATE_TIME_to_string dt ++ """)"
-      | dforeign (ErgoEnhancedModel.enhanceddateTimeinterval dti) =>
-        "duration(" ++ DateTimeModelPart.DATE_TIME_DURATION_to_string dti ++ ")"
-      | dforeign _ => "???UnknownForeign???"
-      end.
-
-  End Data.
-
-  Section Types.
-    Import ErgoCTypes.
-    
-    Context {br:brand_model}.
-
-    Fixpoint rtype_to_string
-               (nsctxt:namespace_ctxt) (t : rtype₀) : string :=
-      match t with
-      | Bottom₀ => "Nothing"
-      | Top₀ => "Any"
-      | Unit₀ => "Unit"
-      | Nat₀ => "Integer"
-      | Float₀ => "Double"
-      | Bool₀ => "Boolean"
-      | String₀ => "String"
-      | Collr' => (rtype_to_string nsctxt r') ++ "[]"
-      | Reck srl =>
-        let recend : string :=
-            match k with
-            | Closed => ""
-            | Open => " .."
-            end
-        in
-          "{" ++
-             (String.concat
-                (", ")
-                (map (fun sr => ((fst sr) ++ ": " ++ (rtype_to_string nsctxt (snd sr))))
-                     srl)) ++ recend ++ "}"
-      | Eithertl tr => (rtype_to_string nsctxt tl) ++ "?"
-      | Arrowtin tout => (rtype_to_string nsctxt tin) ++ " -> " ++ (rtype_to_string nsctxt tout)
-      | Brand₀ (b::nil) => print_brand nsctxt b
-      | Brand_ => "~" ++ "[multiple]"
-      | ForeignErgoEnhancedModel.enhancedDateTime => "DateTime"
-      | ForeignErgoEnhancedModel.enhancedDateTimeInterval => "Duration"
-      | Foreign_ => "(unknown foreign type)"
-      end.
-
-    Definition ergoc_type_to_string
-               (nsctxt:namespace_ctxt) (t : ectype) : string :=
-      rtype_to_string nsctxt (ergoc_type_unpack t).
-
-    Definition string_of_result_type
-               (nsctxt:namespace_ctxt) (result : option ergoc_type)
-      : string :=
-      match result with
-      | None => ""
-      | Some typ => " : " ++ (ergoc_type_to_string nsctxt typ)
-      end.
-
-    Definition unpack_error nsctxt kind out :=
-      ESystemError dummy_provenance
-                   ("Cannot unpack type: "
-                      ++ (string_of_result_type nsctxt (Some out))
-                      ++ " (expected "
-                      ++ kind ++ ")").
-
-    Definition unpack_failure_type
-               (nsctxt:namespace_ctxt)
-               (out : ergoc_type)
-      : eresult ergoc_type :=
-      let osuccess :=
-          match unteither out with
-          | None => None
-          | Some (tl, tr) => Some (tl, tr)
-          end
-      in
-      eresult_of_option
-        (lift snd osuccess)
-        (unpack_error nsctxt "either" out).
-
-    Definition unpack_success_type
-               (nsctxt:namespace_ctxt)
-               (out:ergoc_type)
-      : eresult (ergoc_type * ergoc_type * ergoc_type) :=
-      let osuccess :=
-          match unteither out with
-          | None => None
-          | Some (tl, tr) => Some (tl, tr)
-          end
-      in
-      let success :=
-          eresult_of_option
-            (lift fst osuccess)
-            (unpack_error nsctxt "either" out)
-      in
-      let response :=
-          elift fst
-                (eolift
-                   (fun success =>
-                      (eresult_of_option (ergoc_type_infer_unary_op (OpDot "response") success)
-                                         (unpack_error nsctxt "response" out)))
-                   success)
-      in
-      let emit :=
-          elift fst
-                (eolift
-                   (fun success =>
-                      (eresult_of_option (ergoc_type_infer_unary_op (OpDot "emit") success)
-                                         (unpack_error nsctxt "emit" out)))
-                   success)
-      in
-      let state :=
-          elift fst
-                (eolift
-                   (fun success =>
-                      (eresult_of_option (ergoc_type_infer_unary_op (OpDot "state") success)
-                                         (unpack_error nsctxt "state" out)))
-                   success)
-      in
-      elift3 (fun r e s => (r,e,s))
-             response emit state.
-
-    Definition unpack_output_type
-               (nsctxt:namespace_ctxt)
-               (out:ergoc_type) : eresult (ergoc_type * ergoc_type * ergoc_type * ergoc_type) :=
-      elift2
-        (fun x y =>
-           let '(respt,emitt,statet) := x in
-           (respt,emitt,statet,y))
-        (unpack_success_type nsctxt out)
-        (unpack_failure_type nsctxt out).
-
-  End Types.
-
-  Section Both.
-    Context {br:brand_model}.
-
-    Definition string_of_response
-               (nsctxt:namespace_ctxt)
-               (response:ergo_data)
-               (response_type:option ergoc_type) : string :=
-      "Response. " ++ (string_of_data nsctxt response) ++ (string_of_result_type nsctxt response_type).
-
-    Definition string_of_emits
-               (nsctxt:namespace_ctxt)
-               (emits:list ergo_data)
-               (emit_type:option ergoc_type) : string :=
-      match emits with
-      | nil => ""
-      | e1 :: erest =>
-        (fold_right
-           (fun new old =>
-              (old ++ fmt_nl ++ "Emit. " ++ new))
-           ("Emit. " ++ string_of_data nsctxt e1)
-           (map (string_of_data nsctxt) erest))
-          ++ (string_of_result_type nsctxt emit_type) ++ fmt_nl
-      end.
-
-    Definition string_of_state
-               (nsctxt:namespace_ctxt)
-               (old_state : option ergo_data)
-               (new_state : ergo_data)
-               (state_type: option ergoc_type)
-      : string :=
-      let jsonify := string_of_data nsctxt in
-      match old_state with
-      | None => fmt_nl ++ "State. " ++ (jsonify new_state) ++ (string_of_result_type nsctxt state_type)
-      | Some actual_old_state =>
-        if Data.data_eq_dec new_state actual_old_state
-        then ""
-        else
-          fmt_nl ++ "State. " ++ (jsonify new_state) ++ (string_of_result_type nsctxt state_type)
-      end.
-
-    Definition string_of_typed_data
-               (nsctxt:namespace_ctxt)
-               (old_state : option ergo_data)
-               (data: ergo_data)
-               (typ: option ergoc_type) : string :=
-      match data with
-      | dright msg =>
-        let failure_type :=
-            match typ with
-            | None => None
-            | Some typ =>
-              match unpack_failure_type nsctxt typ with
-              | Success _ _ f => Some f
-              | Failure _ _ _ => None
-              end
-            end
-        in
-        "Failure. " ++ (string_of_data nsctxt msg) ++ (string_of_result_type nsctxt failure_type)
-      | out =>
-        match unpack_output out with
-        | Some (response, emits, state) =>
-          let '(response_type, emit_type, state_type) :=
-              match typ with
-              | None => (None, None, None)
-              | Some typ =>
-                match unpack_success_type nsctxt typ with
-                | Success _ _ (r,e,s) => (Some r, Some e, Some s)
-                | Failure _ _ _ => (None, None, None)
-                end
-              end
-          in
-          (string_of_emits nsctxt emits emit_type)
-            ++ (string_of_response nsctxt response response_type)
-            ++ (string_of_state nsctxt old_state state state_type)
-        | None => (string_of_data nsctxt out)
-        end
-      end.
-
-    Definition string_of_typed_result
-               (nsctxt:namespace_ctxt)
-               (old_state : option ergo_data)
-               (result : option ergoc_type * option ergo_data) : string :=
-      match result with
-      | (_, None) => ""
-      | (typ, Some dat) => (string_of_typed_data nsctxt old_state dat typ) ++ fmt_nl
-      end.
-  End Both.
-
-End PrintTypedData.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.jsx b/docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.jsx new file mode 100644 index 00000000..f04696b3 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Utils.PrintTypedData.jsx @@ -0,0 +1,2529 @@ +
+ + Module ErgoSpec.Common.Utils.PrintTypedData + + +

Module ErgoSpec.Common.Utils.PrintTypedData

+
+
+ + Require + Import{" "} + +
Ascii + + .
+ + Require + Import{" "} + + String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.NamespaceContext + + + .
+
+ + Require + Import{" "} + JsAst.JsNumber.
+
+ Local Open{" "} + Scope string.
+
+ Section{" "} + + PrintTypedData + + .
+   Definition{" "} + + print_brand + {" "} + (nsctxt: + + + namespace_ctxt + + + ) (b: + + + string + + + ) :{" "} + + + string + + {" "} + := +
+     match{" "} + + + get_local_part + + {" "} + + b + {" "} + with +
+     |{" "} + + + None + + {" "} + => "~" ++{" "} + + b + +
+     |{" "} + + + Some + + {" "} + local_name => +
+       match{" "} + + + resolve_type_name + + {" "} + + + dummy_provenance + + {" "} + + nsctxt + + .( + + + namespace_ctxt_current_in_scope + + + ) ( + + + None + + + ,local_name) with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + resolved_b => +
+          + if{" "} + + + string_dec + + {" "} + resolved_b{" "} + + b + +
+          + then +
+            + local_name +
+          + else +
+           "~" ++{" "} + + b + +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + _ => +
+         "~" ++{" "} + + b + +
+       end +
+     end.
+    +
+   Section{" "} + + Data + + .
+     Context {"{"} + br: + + + brand_relation + + + {"}"}.
+
+     Definition{" "} + + unpack_output + +
+                ( + out :{" "} + + ergo_data + + )
+       :{" "} + + + option + + {" "} + ( + + ergo_data + {" "} + *{" "} + + + list + + {" "} + + ergo_data + {" "} + *{" "} + + ergo_data + + ) := +
+       match{" "} + + out + {" "} + with +
+       | ( + + + dleft + + {" "} + ( + + + drec + + {" "} + (("response",{" "} + response)
+                         ::(" + state", state)
+                         ::(" + emit",{" "} + + + dcoll + + {" "} + emits)
+                         :: + + nil + + ))) => +
+          + + + Some + + {" "} + (response, emits,{" "} + state)
+       | + _ + =>{" "} + + + None + + +
+       end.
+
+     Definition{" "} + + fmt_nl + {" "} + :={" "} + + + String.String + + {" "} + ( + + + ascii_of_N + + {" "} + 10){" "} + + + EmptyString + + + .
+     Definition{" "} + + fmt_dq + {" "} + := """". +
+
+     Fixpoint{" "} + + string_of_data + {" "} + (nsctxt: + + + namespace_ctxt + + + ) (d :{" "} + + ergo_data + + ) :{" "} + + + string + + {" "} + := +
+       let{" "} + jsonify :={" "} + + + ErgoData.data_to_json_string + + {" "} + + fmt_dq + {" "} + in +
+       let{" "} + string_of_rec :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_data + + ) ->{" "} + + + string + + {" "} + := +
+            + fun rec => +
+             (" + {"{"}"
+                 ++ + ( + + + String.concat + + +
+                       ", + "
+                       ( + + map + +
+                          ( + fun item => +
+                             ( + + fst + {" "} + + item + + ) ++ ": " ++ ( + + + string_of_data + + {" "} + + nsctxt + {" "} + ( + + snd + {" "} + + item + + ))) +
+                           + + rec + + )) +
+                 ++ + "{"}"}") in +
+       match{" "} + + d + {" "} + with +
+       |{" "} + + + dunit + + {" "} + => "unit"
+       |{" "} + + + dnat + + {" "} + z =>{" "} + + + Z_to_string10 + + {" "} + z +
+       |{" "} + + + dfloat + + {" "} + f => to_string{" "} + f +
+       |{" "} + + + dbool + + {" "} + + + true + + {" "} + => "true"
+       |{" "} + + + dbool + + {" "} + + + false + + {" "} + => "false"
+       |{" "} + + + dstring + + {" "} + s =>{" "} + + jsonify + {" "} + ( + + + dstring + + {" "} + s)
+       |{" "} + + + dcoll + + {" "} + arr => +
+         "[" +
+            ++ ( + + + String.concat + + +
+                  ", + "
+                  ( + + map + {" "} + ( + + + string_of_data + + {" "} + + nsctxt + + ) arr)) +
+            ++ "]" +
+       |{" "} + + + dleft + + {" "} + s => "some(" ++ ( + + + string_of_data + + {" "} + + nsctxt + {" "} + s) ++ ")" +
+       |{" "} + + + dright + + {" "} + _ => "none"
+       |{" "} + + + dbrand + + {" "} + (b:: + + nil + + ) d' =>{" "} + + + print_brand + + {" "} + + nsctxt + {" "} + b ++ ( + + + string_of_data + + {" "} + + nsctxt + {" "} + d') +
+       |{" "} + + + dbrand + + {" "} + _ _ => "??? + more than{" "} + one brand???" +
+       |{" "} + + + drec + + {" "} + r =>{" "} + + + string_of_rec + + {" "} + r
+       |{" "} + + + dforeign + + {" "} + ( + + + ErgoEnhancedModel.enhanceddateTime + + {" "} + dt) => +
+         " + dateTime(""" ++{" "} + + + DateTimeModelPart.DATE_TIME_to_string + + {" "} + dt ++ """)" +
+       |{" "} + + + dforeign + + {" "} + ( + + + ErgoEnhancedModel.enhanceddateTimeinterval + + {" "} + dti) => +
+         " + duration(" ++{" "} + + + DateTimeModelPart.DATE_TIME_DURATION_to_string + + {" "} + dti ++ ")" +
+       |{" "} + + + dforeign + + {" "} + _ => "??? + UnknownForeign???" +
+       end.
+
+   End{" "} + + + Data + + + .
+
+   Section{" "} + Types.
+     Import{" "} + ErgoCTypes.
+      +
+     Context {"{"} + br: + + + brand_model + + + {"}"}.
+
+     Fixpoint{" "} + + rtype_to_string + +
+                ( + nsctxt: + + + namespace_ctxt + + + ) (t : rtype₀) :{" "} + + + string + + {" "} + := +
+       match{" "} + + t + {" "} + with +
+       | Bottom₀ + => "Nothing"
+       | Top₀ => + "Any"
+       | Unit₀ + => "Unit"
+       | Nat₀ => + "Integer"
+       | Float₀ + => "Double"
+       | Bool₀ + => "Boolean"
+       | String₀ + => "String"
+       | Coll₀{" "} + r' => ( + + + rtype_to_string + + {" "} + + nsctxt + {" "} + r') ++ "[]" +
+       | Rec₀{" "} + k srl => +
+          + let recend :{" "} + + + string + + {" "} + := +
+              + match k{" "} + with +
+             |{" "} + + + Closed + + {" "} + => "" +
+             |{" "} + Open => " .." +
+              + end +
+          + in +
+           "{"{"}" ++ +
+              ( + + + String.concat + + +
+                 (", + ") +
+                 ( + + map + {" "} + (fun sr => (( + + fst + {" "} + + sr + + ) ++ ": " ++ ( + + + rtype_to_string + + {" "} + + nsctxt + {" "} + ( + + snd + {" "} + + sr + + )))) +
+                       + srl)) ++{" "} + + recend + {" "} + ++ "{"}"}"
+       | + Either + tl tr => + ( + + + rtype_to_string + + {" "} + + nsctxt + {" "} + tl) ++ "?" +
+       | + Arrow + tin tout{" "} + => ( + + + rtype_to_string + + {" "} + + nsctxt + {" "} + tin) ++ " -> " ++ ( + + + rtype_to_string + + {" "} + + nsctxt + {" "} + tout)
+       | Brand₀ ( + b:: + + nil + + ) =>{" "} + + + print_brand + + {" "} + + nsctxt + {" "} + b +
+       | + Brand + _ => "~" ++ "[ + multiple]" +
+       | + Foreign + ₀{" "} + + + ErgoEnhancedModel.enhancedDateTime + + {" "} + => "DateTime"
+       | + Foreign + ₀{" "} + + + ErgoEnhancedModel.enhancedDateTimeInterval + + {" "} + => "Duration"
+       | + Foreign + _ => "( + unknown foreign{" "} + type)" +
+       end.
+
+     Definition{" "} + + ergoc_type_to_string + +
+                ( + nsctxt: + + + namespace_ctxt + + + ) (t :{" "} + + ectype + + ) :{" "} + + + string + + {" "} + := +
+        + + + rtype_to_string + + {" "} + + nsctxt + {" "} + ( + + + ergoc_type_unpack + + {" "} + + t + + ). +
+
+     Definition{" "} + + string_of_result_type + +
+                ( + nsctxt: + + + namespace_ctxt + + + ) (result :{" "} + + + option + + {" "} + + ergoc_type + + )
+       :{" "} + + + string + + {" "} + := +
+       match{" "} + + result + {" "} + with +
+       |{" "} + + + None + + {" "} + => "" +
+       |{" "} + + + Some + + {" "} + typ => " : " ++ ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + typ)
+       end.
+
+     Definition{" "} + + unpack_error + {" "} + nsctxt kind{" "} + out := +
+        + + ESystemError + {" "} + + + dummy_provenance + + +
+                    (" + Cannot unpack{" "} + type: "
+                       ++ + ( + + + string_of_result_type + + {" "} + + nsctxt + {" "} + ( + + + Some + + {" "} + + out + + )) +
+                       ++ + " (expected "
+                       ++{" "} + + kind + {" "} + ++ ")"). +
+
+     Definition{" "} + + unpack_failure_type + +
+                ( + nsctxt: + + + namespace_ctxt + + + )
+                ( + out :{" "} + + ergoc_type + + )
+       :{" "} + + eresult + {" "} + + ergoc_type + {" "} + := +
+       let{" "} + osuccess := +
+            + match{" "} + + + unteither + + {" "} + + out + {" "} + with +
+           |{" "} + + + None + + {" "} + =>{" "} + + + None + + +
+           |{" "} + + + Some + + {" "} + (tl, tr) =>{" "} + + + Some + + {" "} + (tl, tr)
+            + end +
+       in +
+        + + + eresult_of_option + + +
+         ( + + + lift + + {" "} + + snd + {" "} + + osuccess + + )
+         ( + + + unpack_error + + {" "} + + nsctxt + {" "} + "either"{" "} + + out + + ). +
+
+     Definition{" "} + + unpack_success_type + +
+                ( + nsctxt: + + + namespace_ctxt + + + )
+                ( + out: + + ergoc_type + + )
+       :{" "} + + eresult + {" "} + ( + + ergoc_type + {" "} + *{" "} + + ergoc_type + {" "} + *{" "} + + ergoc_type + + ) := +
+       let{" "} + osuccess := +
+            + match{" "} + + + unteither + + {" "} + + out + {" "} + with +
+           |{" "} + + + None + + {" "} + =>{" "} + + + None + + +
+           |{" "} + + + Some + + {" "} + (tl, tr) =>{" "} + + + Some + + {" "} + (tl, tr)
+            + end +
+       in +
+       let{" "} + success := +
+            + + + eresult_of_option + + +
+             ( + + + lift + + {" "} + + fst + {" "} + + osuccess + + )
+             ( + + + unpack_error + + {" "} + + nsctxt + {" "} + "either"{" "} + + out + + )
+       in +
+       let{" "} + response := +
+            + + elift + {" "} + + fst + +
+                 ( + + eolift + +
+                    ( + fun success => +
+                       ( + + + eresult_of_option + + {" "} + ( + + + ergoc_type_infer_unary_op + + {" "} + ( + + + OpDot + + {" "} + "response"){" "} + + success + + )
+                                          ( + + + unpack_error + + {" "} + + nsctxt + {" "} + "response"{" "} + + out + + ))) +
+                     + + success + + )
+       in +
+       let{" "} + emit := +
+            + + elift + {" "} + + fst + +
+                 ( + + eolift + +
+                    ( + fun success => +
+                       ( + + + eresult_of_option + + {" "} + ( + + + ergoc_type_infer_unary_op + + {" "} + ( + + + OpDot + + {" "} + "emit"){" "} + + success + + )
+                                          ( + + + unpack_error + + {" "} + + nsctxt + {" "} + "emit"{" "} + + out + + ))) +
+                     + + success + + )
+       in +
+       let{" "} + state := +
+            + + elift + {" "} + + fst + +
+                 ( + + eolift + +
+                    ( + fun success => +
+                       ( + + + eresult_of_option + + {" "} + ( + + + ergoc_type_infer_unary_op + + {" "} + ( + + + OpDot + + {" "} + "state"){" "} + + success + + )
+                                          ( + + + unpack_error + + {" "} + + nsctxt + {" "} + "state"{" "} + + out + + )))
+                     + + success + + )
+       in +
+        + + elift3 + {" "} + (fun r{" "} + e s => ( + + r + + , + + e + + , + + s + + )) +
+               + + response + {" "} + + emit + {" "} + + state + + .
+
+     Definition{" "} + + unpack_output_type + +
+                ( + nsctxt: + + + namespace_ctxt + + + )
+                ( + out: + + ergoc_type + + ) :{" "} + + eresult + {" "} + ( + + ergoc_type + {" "} + *{" "} + + ergoc_type + {" "} + *{" "} + + ergoc_type + {" "} + *{" "} + + ergoc_type + + ) := +
+        + + elift2 + +
+         ( + fun x{" "} + y => +
+             + let '(respt, + emitt,statet) :={" "} + + x + {" "} + in +
+            ( + respt,emitt, + statet, + + y + + )) +
+         ( + + + unpack_success_type + + {" "} + + nsctxt + {" "} + + out + + )
+         ( + + + unpack_failure_type + + {" "} + + nsctxt + {" "} + + out + + ). +
+
+   End{" "} + Types.
+
+   Section{" "} + + Both + + .
+     Context {"{"} + br: + + + brand_model + + + {"}"}.
+
+     Definition{" "} + + string_of_response + +
+                ( + nsctxt: + + + namespace_ctxt + + + )
+                ( + response: + + ergo_data + + )
+                ( + response_type: + + + option + + {" "} + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+       "Response. " + ++ ( + + + string_of_data + + {" "} + + nsctxt + {" "} + + response + + ) ++ ( + + + string_of_result_type + + {" "} + + nsctxt + {" "} + + + response_type + + + ). +
+
+     Definition{" "} + + string_of_emits + +
+                ( + nsctxt: + + + namespace_ctxt + + + )
+                ( + emits: + + + list + + {" "} + + ergo_data + + )
+                ( + emit_type: + + + option + + {" "} + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+       match{" "} + + emits + {" "} + with +
+       |{" "} + + nil + {" "} + => "" +
+       | e1 ::{" "} + erest => +
+         ( + + + fold_right + + +
+            ( + fun new{" "} + old => +
+               ( + + old + {" "} + ++{" "} + + fmt_nl + {" "} + ++ "Emit. " ++{" "} + + new + + )) +
+            (" + Emit. " ++{" "} + + + string_of_data + + {" "} + + nsctxt + {" "} + e1)
+            ( + + map + {" "} + ( + + + string_of_data + + {" "} + + nsctxt + + ) erest)) +
+           ++ ( + + + string_of_result_type + + {" "} + + nsctxt + {" "} + + + emit_type + + + ) ++{" "} + + fmt_nl + +
+       end.
+
+     Definition{" "} + + string_of_state + +
+                ( + nsctxt: + + + namespace_ctxt + + + )
+                ( + old_state :{" "} + + + option + + {" "} + + ergo_data + + )
+                ( + new_state :{" "} + + ergo_data + + )
+                ( + state_type:{" "} + + + option + + {" "} + + ergoc_type + + )
+       :{" "} + + + string + + {" "} + := +
+       let{" "} + jsonify :={" "} + + + string_of_data + + {" "} + + nsctxt + {" "} + in +
+       match{" "} + + + old_state + + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + fmt_nl + {" "} + ++ "State. " ++ ( + + jsonify + {" "} + + + new_state + + + ) ++ ( + + + string_of_result_type + + {" "} + + nsctxt + {" "} + + + state_type + + + )
+       |{" "} + + + Some + + {" "} + actual_old_state => +
+          + if{" "} + + + Data.data_eq_dec + + {" "} + + + new_state + + {" "} + actual_old_state +
+          + then "" +
+          + else +
+            + + fmt_nl + {" "} + ++ "State. " ++ ( + + jsonify + {" "} + + + new_state + + + ) ++ ( + + + string_of_result_type + + {" "} + + nsctxt + {" "} + + + state_type + + + )
+       end.
+
+     Definition{" "} + + string_of_typed_data + +
+                ( + nsctxt: + + + namespace_ctxt + + + )
+                ( + old_state :{" "} + + + option + + {" "} + + ergo_data + + )
+                ( + data:{" "} + + ergo_data + + )
+                ( + typ:{" "} + + + option + + {" "} + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+       match{" "} + + data + {" "} + with +
+       |{" "} + + + dright + + {" "} + msg => +
+          + + let + failure_type := +
+              + match{" "} + + typ + {" "} + with +
+             |{" "} + + + None + + {" "} + =>{" "} + + + None + + +
+             |{" "} + + + Some + + {" "} + typ => +
+                + match{" "} + + + unpack_failure_type + + {" "} + + nsctxt + {" "} + + typ + {" "} + with +
+               |{" "} + + + Success + + {" "} + _ _{" "} + f =>{" "} + + + Some + + {" "} + f +
+               |{" "} + + + Failure + + {" "} + _ _{" "} + _ =>{" "} + + + None + + +
+                + end +
+              + end +
+          + in +
+         " + Failure. " ++ ( + + + string_of_data + + {" "} + + nsctxt + {" "} + msg) ++ ( + + + string_of_result_type + + {" "} + + nsctxt + {" "} + + + failure_type + + + )
+       | out => +
+          + match{" "} + + + unpack_output + + {" "} + out with +
+         |{" "} + + + Some + + {" "} + (response, emits,{" "} + state) => +
+            + let '(response_type + , emit_type,{" "} + state_type) := +
+                + match{" "} + + typ + {" "} + with +
+               |{" "} + + + None + + {" "} + => ( + + + None + + + ,{" "} + + + None + + + ,{" "} + + + None + + + )
+               |{" "} + + + Some + + {" "} + typ => +
+                  + match{" "} + + + unpack_success_type + + {" "} + + nsctxt + {" "} + + typ + {" "} + with +
+                 |{" "} + + + Success + + {" "} + _ _ ( + r,e, + s) => ( + + + Some + + {" "} + r,{" "} + + + Some + + {" "} + e,{" "} + + + Some + + {" "} + s)
+                 |{" "} + + + Failure + + {" "} + _ _{" "} + _ => ( + + + None + + + ,{" "} + + + None + + + ,{" "} + + + None + + + )
+                  + end +
+                + end +
+            + in +
+           ( + + + string_of_emits + + {" "} + + nsctxt + {" "} + emits emit_type) +
+             ++ ( + + + string_of_response + + {" "} + + nsctxt + {" "} + response{" "} + response_type)
+             ++ ( + + + string_of_state + + {" "} + + nsctxt + {" "} + + + old_state + + {" "} + state state_type) +
+         |{" "} + + + None + + {" "} + => ( + + + string_of_data + + {" "} + + nsctxt + {" "} + out)
+          + end +
+       end.
+
+     Definition{" "} + + string_of_typed_result + +
+                ( + nsctxt: + + + namespace_ctxt + + + )
+                ( + old_state :{" "} + + + option + + {" "} + + ergo_data + + )
+                ( + result :{" "} + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + option + + {" "} + + ergo_data + + ) :{" "} + + + string + + {" "} + := +
+       match{" "} + + result + {" "} + with +
+       | (_,{" "} + + + None + + + ) => "" +
+       | (typ,{" "} + + + Some + + {" "} + dat) => ( + + + string_of_typed_data + + {" "} + + nsctxt + {" "} + + + old_state + + {" "} + dat typ) ++{" "} + + fmt_nl + +
+       end.
+   End{" "} + + + Both + + + .
+
+ End{" "} + + + PrintTypedData + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Provenance.html b/docs/assets/specification/ErgoSpec.Common.Utils.Provenance.html deleted file mode 100644 index 4031ba9a..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Utils.Provenance.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Utils.Provenance - - - - - - -

Module ErgoSpec.Common.Utils.Provenance

-
-
-
-Require Import String.
-Require Import ZArith.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section Provenance.
-  Record location_point :=
-    mkLocationPoint {
-        offset: Z;
-        line : Z;
-        column : Z;
-      }.
-  Record location :=
-    mkLocation {
-        loc_file: string;
-        loc_start: location_point;
-        loc_end: location_point;
-      }.
-  Definition dummy_location : location :=
-    let dummy_location_point := mkLocationPoint (-1) (-1) (-1) in
-    mkLocation "" dummy_location_point dummy_location_point.
-
-  Inductive provenance :=
-  | ProvFunc : location -> string -> provenance (* Compiled from function *)
-  | ProvClause : location -> string -> provenance (* Compiled from clause *)
-  | ProvThisContract : location -> provenance (* Compiled from contract *)
-  | ProvThisClause : location -> provenance (* Compiled from clause *)
-  | ProvThisState : location -> provenance (* Compiled from state *)
-  | ProvLoc : location -> provenance (* Compiled from others *)
-  .
-
-  Definition dummy_provenance : provenance :=
-    ProvLoc dummy_location.
-
-  Definition loc_of_provenance prov : location :=
-    match prov with
-    | ProvFunc loc _ => loc
-    | ProvClause loc _ => loc
-    | ProvThisContract loc => loc
-    | ProvThisClause loc => loc
-    | ProvThisState loc => loc
-    | ProvLoc loc => loc
-    end.
-
-  Definition is_contract prov : bool :=
-    match prov with
-    | ProvThisContract loc => true
-    | _ => false
-    end.
-  Definition is_clause prov : bool :=
-    match prov with
-    | ProvThisClause loc => true
-    | _ => false
-    end.
-  Definition is_state prov : bool :=
-    match prov with
-    | ProvThisState loc => true
-    | _ => false
-    end.
-    
-  Definition string_of_location_point (lp : location_point) : string :=
-    (toString lp.(line)) ++ ":" ++ (toString lp.(column)).
-
-  Definition string_of_location (loc : location) : string :=
-    let f := loc.(loc_file) in
-    let file :=
-        if string_dec f ""%string
-        then ""%string
-        else (f ++ " ")%string
-    in
-    file ++
-         (string_of_location_point loc.(loc_start)) ++ "-" ++
-         (string_of_location_point loc.(loc_end)).
-
-End Provenance.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Provenance.jsx b/docs/assets/specification/ErgoSpec.Common.Utils.Provenance.jsx new file mode 100644 index 00000000..c1728f1c --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Utils.Provenance.jsx @@ -0,0 +1,639 @@ +
+ + Module ErgoSpec.Common.Utils.Provenance + + +

Module ErgoSpec.Common.Utils.Provenance

+
+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + ZArith + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+
+ Section{" "} + + Provenance + + .
+   Record{" "} + + location_point + {" "} + := +
+      + + mkLocationPoint + {" "} + {"{"} +
+          + + offset + + :{" "} + + Z + + ;
+          + + line + {" "} + :{" "} + + Z + + ;
+          + + column + {" "} + :{" "} + + Z + + ;
+       {"}"}.
+   Record{" "} + + location + {" "} + := +
+      + + mkLocation + {" "} + {"{"} +
+          + + loc_file + + :{" "} + + + string + + + ;
+          + + loc_start + + :{" "} + + + location_point + + + ;
+          + + loc_end + + :{" "} + + + location_point + + + ;
+       {"}"}.
+   Definition{" "} + + dummy_location + {" "} + :{" "} + + location + {" "} + := +
+     let{" "} + dummy_location_point :={" "} + + + mkLocationPoint + + {" "} + (-1) (-1) (-1) in +
+      + + mkLocation + {" "} + ""{" "} + + + dummy_location_point + + {" "} + + + dummy_location_point + + + .
+
+   Inductive{" "} + + provenance + {" "} + := +
+   |{" "} + + ProvFunc + {" "} + :{" "} + + location + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + provenance + {" "} + (* Compiled from function *) +
+   |{" "} + + ProvClause + {" "} + :{" "} + + location + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + provenance + {" "} + (* Compiled from clause *) +
+   |{" "} + + ProvThisContract + {" "} + :{" "} + + location + {" "} + ->{" "} + + provenance + {" "} + + (* Compiled from{" "} + + contract + {" "} + *) + +
+   |{" "} + + ProvThisClause + {" "} + :{" "} + + location + {" "} + ->{" "} + + provenance + {" "} + + (* Compiled from{" "} + + clause + {" "} + *) + +
+   |{" "} + + ProvThisState + {" "} + :{" "} + + location + {" "} + ->{" "} + + provenance + {" "} + + (* Compiled from{" "} + + state + {" "} + *) + +
+   |{" "} + + ProvLoc + {" "} + :{" "} + + location + {" "} + ->{" "} + + provenance + {" "} + (* Compiled from others *) +
+   . +
+
+   Definition{" "} + + dummy_provenance + {" "} + :{" "} + + provenance + {" "} + := +
+      + + ProvLoc + {" "} + + + dummy_location + + + .
+
+   Definition{" "} + + loc_of_provenance + {" "} + prov :{" "} + + location + {" "} + := +
+     match{" "} + + prov + {" "} + with +
+     |{" "} + + ProvFunc + {" "} + loc _ =>{" "} + loc +
+     |{" "} + + ProvClause + {" "} + loc _ =>{" "} + loc +
+     |{" "} + + + ProvThisContract + + {" "} + loc => loc +
+     |{" "} + + + ProvThisClause + + {" "} + loc => loc +
+     |{" "} + + + ProvThisState + + {" "} + loc => loc +
+     |{" "} + + ProvLoc + {" "} + loc => loc +
+     end.
+
+   Definition{" "} + + is_contract + {" "} + prov :{" "} + + + bool + + {" "} + := +
+     match{" "} + + prov + {" "} + with +
+     |{" "} + + + ProvThisContract + + {" "} + loc =>{" "} + + + true + + +
+     | _ =>{" "} + + + false + + +
+     end.
+   Definition{" "} + + is_clause + {" "} + prov :{" "} + + + bool + + {" "} + := +
+     match{" "} + + prov + {" "} + with +
+     |{" "} + + + ProvThisClause + + {" "} + loc =>{" "} + + + true + + +
+     | _ =>{" "} + + + false + + +
+     end.
+   Definition{" "} + + is_state + {" "} + prov :{" "} + + + bool + + {" "} + := +
+     match{" "} + + prov + {" "} + with +
+     |{" "} + + + ProvThisState + + {" "} + loc =>{" "} + + + true + + +
+     | _ =>{" "} + + + false + + +
+     end.
+      +
+   Definition{" "} + + string_of_location_point + {" "} + (lp :{" "} + + + location_point + + + ) :{" "} + + + string + + {" "} + := +
+     ( + + + toString + + {" "} + + lp + + .( + + line + + )) ++ ":" ++ ( + + + toString + + {" "} + + lp + + .( + + column + + )). +
+
+   Definition{" "} + + string_of_location + {" "} + (loc :{" "} + + location + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + f :={" "} + + loc + + .( + + loc_file + + ) in +
+     let{" "} + file := +
+          + if{" "} + + + string_dec + + {" "} + + f + {" "} + ""%string +
+          + then ""%string +
+          + else ( + + f + {" "} + ++ " ")%string +
+     in +
+      + + file + {" "} + ++ +
+          ( + + + string_of_location_point + + {" "} + + loc + + .( + + loc_start + + )) ++ "-" ++ +
+          ( + + + string_of_location_point + + {" "} + + loc + + .( + + loc_end + + )). +
+
+ End{" "} + + Provenance + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Result.html b/docs/assets/specification/ErgoSpec.Common.Utils.Result.html deleted file mode 100644 index 0cdfba6a..00000000 --- a/docs/assets/specification/ErgoSpec.Common.Utils.Result.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - -Module ErgoSpec.Common.Utils.Result - - - - - - -

Module ErgoSpec.Common.Utils.Result

-
-
-
-Require Import Ascii.
-Require Import String.
-Require Import List.
-Require Import ZArith.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-
-Section Result.
-  Inductive eerror : Set :=
-  | ESystemError : provenance -> string -> eerror
-  | EParseError : provenance -> string -> eerror
-  | ECompilationError : provenance -> string -> eerror
-  | ETypeError : provenance -> string -> eerror
-  | ERuntimeError : provenance -> string -> eerror.
-
-  Definition eresult (A:Set) := Result A eerror.
-  Definition esuccess {A:Set} (a:A) : eresult A :=
-    Success A eerror a.
-  Definition efailure {A:Set} (e:eerror) : eresult A :=
-    Failure A eerror e.
-
-  Section Lift.
-    Definition eolift {A B:Set} (f:A -> eresult B) (a:eresult A) : eresult B :=
-      lift_failure f a.
-    Definition elift {A B:Set} (f:A -> B) (a:eresult A) : eresult B :=
-      lift_failure_in f a.
-    Definition elift2 {A B C:Set} (f:A -> B -> C) (a:eresult A) (b:eresult B) : eresult C :=
-      lift_failure_in_two f a b.
-    Definition elift3 {A B C D:Set} (f:A -> B -> C -> D)
-               (a:eresult A) (b:eresult B) (c:eresult C) : eresult D :=
-      lift_failure_in_three f a b c.
-    Definition elift4 {A B C D E:Set} (f:A -> B -> C -> D -> E)
-               (a:eresult A) (b:eresult B) (c:eresult C) (d:eresult D) : eresult E :=
-      eolift (fun x => elift (fun g => g x) (elift3 f a b c)) d.
-    Definition elift5 {A B C D E F:Set} (f:A -> B -> C -> D -> E -> F)
-               (a:eresult A) (b:eresult B) (c:eresult C) (d:eresult D) (e:eresult E) : eresult F :=
-      eolift (fun x => elift (fun g => g x) (elift4 f a b c d)) e.
-    Definition emaplift {A B:Set} (f:A -> eresult B) (al:list A) : eresult (list B) :=
-      lift_failure_map f al.
-    Definition eresult_of_option {A:Set} (a:option A) (e:eerror) :=
-      result_of_option a e.
-
-    Definition elift_both {A B:Set} (f: A -> B) (g:eerror -> B) (a:eresult A) : B :=
-      match a with
-      | Success _ _ s => f s
-      | Failure _ _ e => g e
-      end.
-    Definition elift2_both {A B C:Set} (f: A -> B -> C) (g:eerror -> C) (a:eresult A) (b:eresult B) : C :=
-      match a with
-      | Success _ _ s1 =>
-        match b with
-        | Success _ _ s2 => f s1 s2
-        | Failure _ _ e => g e
-        end
-      | Failure _ _ e => g e
-      end.
-    Definition elift_maybe {A:Set} (f: A -> option (eresult A)) (a:eresult A) : eresult A :=
-      match elift f a with
-      | Success _ _ (Some s) => s
-      | Success _ _ None => a
-      | Failure _ _ e => efailure e
-      end.
-    Definition eolift2 {A B C:Set} (f : A -> B -> eresult C) (a : eresult A) (b : eresult B) : eresult C :=
-      match elift2 f a b with
-      | Failure _ _ f => efailure f
-      | Success _ _ s => s
-      end.
-
-    Definition elift_fold_left {A:Set} {B:Set}
-               (f : A -> B -> eresult A) (l:list B) (a:A) : eresult A :=
-      let proc_one (acc:eresult A) (x:B)
-          : eresult A :=
-          eolift (fun acc => f acc x) acc
-      in
-      fold_left proc_one l (esuccess a).
-
-    Definition elift_context_fold_left_alt {A:Set} {B:Set} {C:Set}
-               (f : C -> A -> eresult (B * C)) (l:list A) (c:C) : eresult (list B * C) :=
-      elift_fold_left
-        (fun acc c =>
-           elift (fun mc => ((fst acc)++((fst mc)::nil), snd mc)) (f (snd acc) c))
-        l
-        (nil, c).
-
-    Definition elift_context_fold_left {A:Set} {B:Set} {C:Set}
-               (f : C -> A -> eresult (B * C)) (l:list A) (c:C) : eresult (list B * C) :=
-      elift_fold_left
-        (fun acc c =>
-           elift (fun mc => ((fst acc)++((fst mc)::nil), snd mc)) (f (snd acc) c))
-        l
-        (nil, c).
-
-    Definition eflatmaplift {A B:Set} (f:A -> eresult (list B)) (al:list A) : eresult (list B) :=
-      elift_fold_left
-        (fun acc c =>
-           elift (fun mc => acc ++ mc) (f c))
-        al nil.
-
-    Section qcert.
-      Definition eerror_of_qerror (prov:provenance) (qe:qerror) :=
-        match qe with
-        | QResult.CompilationError msg => ECompilationError prov msg
-        | QResult.TypeError msg => ETypeError prov msg
-        | QResult.UserError msg => ESystemError prov "User error occured in backend"
-        end.
-
-      Definition eresult_of_qresult {A:Set} (prov:provenance) (a:qresult A) : eresult A :=
-        match a with
-        | Result.Success _ _ s => esuccess s
-        | Result.Failure _ _ e => efailure (eerror_of_qerror prov e)
-        end.
-
-      Definition option_of_eresult {A:Set} (a:eresult A) : option A :=
-        option_of_result a.
-
-    End qcert.
-
-  End Lift.
-
-  Section Fmt.
-    Definition format_error (name : string) (prov : provenance) (msg : string) :=
-      let loc := loc_of_provenance prov in
-      (name ++ " at " ++ (string_of_location loc) ++ " '" ++ msg ++ "'")%string.
-  End Fmt.
-  
-
Built-in errors
-  Section Builtin.
-    Definition clause_call_not_on_contract_error {A} prov : eresult A :=
-      efailure (ECompilationError prov "Cannot call a clause except on 'contract'").
-    Definition use_contract_not_in_contract_error {A} prov : eresult A :=
-      efailure (ECompilationError prov "Cannot use 'contract' variable outside of a contract").
-    Definition call_clause_not_in_contract_error {A} prov clname : eresult A :=
-      efailure (ECompilationError prov ("Cannot call clause " ++ clname ++ " outside of a contract")).
-    Definition not_in_clause_error {A} prov : eresult A :=
-      efailure (ECompilationError prov "Cannot use 'clause' variable outside of a clause").
-
-    Definition import_not_found_error {A} prov (import:string) : eresult A :=
-      efailure (ECompilationError prov ("Import not found: " ++ import)).
-    Definition type_name_not_found_error {A} prov (ln:string) : eresult A :=
-      efailure (ECompilationError prov ("Cannot find type with name '" ++ ln ++ "'")).
-    Definition variable_name_not_found_error {A} prov (ln:string) : eresult A :=
-      efailure (ECompilationError prov ("Cannot find variable with name '" ++ ln ++ "'")).
-    Definition function_name_not_found_error {A} prov (ln:string) : eresult A :=
-      efailure (ECompilationError prov ("Cannot find function with name '" ++ ln ++ "'")).
-    Definition contract_name_not_found_error {A} prov (ln:string) : eresult A :=
-      efailure (ECompilationError prov ("Cannot find contract with name '" ++ ln ++ "'")).
-    Definition import_name_not_found_error {A} prov (namespace:string) (name_ref:string) : eresult A :=
-      efailure (ECompilationError prov ("Cannot import name '" ++ name_ref++ "' in CTO with namespace " ++ namespace)).
-  
-
Main clause creation errors
-    Definition main_parameter_mismatch_error {A} prov : eresult A :=
-      efailure (ECompilationError prov "Parameter mismatch during main creation").
-    Definition main_at_least_one_parameter_error {A} prov : eresult A :=
-      efailure (ECompilationError prov "Cannot create main if not at least one parameter").
-    Definition main_not_a_class_error {A} prov (cname:string) : eresult A :=
-      efailure (ECompilationError prov ("Cannot create main for non-class type "++cname)).
-    
-
Call errors
-    Definition function_not_found_error {A} prov (fname:string) : eresult A :=
-      efailure (ECompilationError prov ("Function '" ++ fname ++ "' not found")).
-    Definition eval_function_not_found_error {A} prov (fname:string) : eresult A :=
-      efailure (ERuntimeError prov ("Function '" ++ fname ++ "' not found during eval")).
-    Definition clause_not_found_error {A} prov (fname:string) : eresult A :=
-      efailure (ECompilationError prov ("Clause '" ++ fname ++ "' not found")).
-    Definition call_params_error {A} prov (fname:string) : eresult A :=
-      efailure (ECompilationError prov ("Parameter mismatch when calling function '" ++ fname ++ "'")).
-
-
Other runtime errors
-    Definition eval_unary_op_error {A} prov (op:ErgoOps.Unary.op) : eresult A :=
-      efailure (ERuntimeError prov "Unary operation failed.").
-    Definition eval_binary_op_error {A} prov (op:ErgoOps.Binary.op) : eresult A :=
-      efailure (ERuntimeError prov "Binary operation failed.").
-    Definition eval_if_not_boolean_error {A} prov : eresult A :=
-      efailure (ERuntimeError prov "'If' condition not boolean.").
-    Definition eval_match_let_optional_not_on_option_error {A} prov : eresult A :=
-      efailure (ERuntimeError prov "Matched LetOption without an option.").
-    Definition eval_foreach_not_on_array_error {A} prov : eresult A :=
-      efailure (ERuntimeError prov "Foreach needs to be called on an array").
-
-
System errors
-    Definition no_ergo_module_error {A} prov : eresult A :=
-      efailure (ESystemError prov ("No input ergo found")).
-    Definition built_in_function_not_found_error {A} prov (fname:string) : eresult A :=
-      efailure (ESystemError prov ("Built in function " ++ fname ++ " not found")).
-    Definition built_in_function_without_body_error {A} prov (fname:string) : eresult A :=
-      efailure (ESystemError prov ("Built in function " ++ fname ++ " does not have a body")).
-    Definition TODO {A : Set} prov (feature:string) : eresult A :=
-      efailure (ESystemError prov ("Feature " ++ feature ++ " not implemented.")%string).
-
-    Definition enforce_error_content (prov:provenance) (msg:string) : ErgoData.data :=
-      let message := format_error "Enforce Error" prov msg in
-      ErgoData.dbrand (default_error_absolute_name::nil)
-                      (ErgoData.drec (("message"%string, ErgoData.dstring message)::nil)).
-    Definition default_match_error_content (prov:provenance) (msg:string) : ErgoData.data :=
-      let message := format_error "DefaultMatch Error" prov msg in
-      ErgoData.dbrand (default_error_absolute_name::nil)
-                      (ErgoData.drec (("message"%string, ErgoData.dstring message)::nil)).
-
-    Definition unresolved_name_error {A} prov : eresult A :=
-      efailure (ECompilationError prov "Unresolved name").
-    Definition should_have_one_contract_error {A} prov : eresult A :=
-      efailure (ECompilationError prov "Should have exactly one contract").
-
-    Definition contract_in_calculus_error {A} prov : eresult A :=
-      efailure (ESystemError prov "Should not find 'contract' in Ergo Calculus").
-    Definition clause_in_calculus_error {A} prov : eresult A :=
-      efailure (ESystemError prov "Should not find 'clause' in Ergo Calculus").
-    Definition state_in_calculus_error {A} prov : eresult A :=
-      efailure (ESystemError prov "Should not find 'state' in Ergo Calculus").
-    Definition complex_foreach_in_calculus_error {A} prov : eresult A :=
-      efailure (ESystemError prov "Should only have single loop foreach in Ergo Calculus").
-    Definition function_not_inlined_error {A} prov fname : eresult A :=
-      efailure (ESystemError prov ("Function " ++ fname ++ " did not get inlined")).
-    Definition function_in_group_not_inlined_error {A} prov gname fname : eresult A :=
-      efailure (ESystemError prov ("Clause " ++ fname ++ " in contract " ++ gname ++ " did not get inlined")).
-  End Builtin.
-
-End Result.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Common.Utils.Result.jsx b/docs/assets/specification/ErgoSpec.Common.Utils.Result.jsx new file mode 100644 index 00000000..2e596a0a --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Common.Utils.Result.jsx @@ -0,0 +1,3366 @@ +
+ + Module ErgoSpec.Common.Utils.Result + + +

Module ErgoSpec.Common.Utils.Result

+
+
+
+ + Require + Import{" "} + +
Ascii + + .
+ + Require + Import{" "} + + String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + ZArith + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+
+ Section{" "} + + Result + + .
+   Inductive{" "} + + eerror + {" "} + : Set := +
+   |{" "} + + ESystemError + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + eerror + +
+   |{" "} + + EParseError + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + eerror + +
+   |{" "} + + ECompilationError + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + eerror + +
+   |{" "} + + ETypeError + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + eerror + +
+   |{" "} + + ERuntimeError + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + eerror + + .
+
+   Definition{" "} + + eresult + {" "} + (A:Set) :={" "} + + + Result + + {" "} + + A + {" "} + + eerror + + .
+   Definition{" "} + + esuccess + {" "} + {"{"} + A:Set + {"}"} (a: + + A + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+      + + + Success + + {" "} + + A + {" "} + + eerror + {" "} + + a + + .
+   Definition{" "} + + efailure + {" "} + {"{"} + A:Set + {"}"} (e: + + eerror + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+      + + + Failure + + {" "} + + A + {" "} + + eerror + {" "} + + e + + .
+
+   Section{" "} + + Lift + + .
+     Definition{" "} + + eolift + {" "} + {"{"} + A B: + Set + {"}"} (f: + + A + {" "} + ->{" "} + + eresult + {" "} + + B + + ) (a: + + eresult + {" "} + + A + + ) :{" "} + + eresult + {" "} + + B + {" "} + := +
+        + + + lift_failure + + {" "} + + f + {" "} + + a + + .
+     Definition{" "} + + elift + {" "} + {"{"} + A B: + Set + {"}"} (f: + + A + {" "} + ->{" "} + + B + + ) (a: + + eresult + {" "} + + A + + ) :{" "} + + eresult + {" "} + + B + {" "} + := +
+        + + + lift_failure_in + + {" "} + + f + {" "} + + a + + .
+     Definition{" "} + + elift2 + {" "} + {"{"} + A B{" "} + C:Set + {"}"} (f: + + A + {" "} + ->{" "} + + B + {" "} + ->{" "} + + C + + ) (a: + + eresult + {" "} + + A + + ) (b: + + eresult + {" "} + + B + + ) :{" "} + + eresult + {" "} + + C + {" "} + := +
+        + + + lift_failure_in_two + + {" "} + + f + {" "} + + a + {" "} + + b + + .
+     Definition{" "} + + elift3 + {" "} + {"{"} + A B{" "} + C D: + Set + {"}"} (f: + + A + {" "} + ->{" "} + + B + {" "} + ->{" "} + + C + {" "} + ->{" "} + + D + + )
+                ( + a: + + eresult + {" "} + + A + + ) (b: + + eresult + {" "} + + B + + ) (c: + + eresult + {" "} + + C + + ) :{" "} + + eresult + {" "} + + D + {" "} + := +
+        + + + lift_failure_in_three + + {" "} + + f + {" "} + + a + {" "} + + b + {" "} + + c + + .
+     Definition{" "} + + elift4 + {" "} + {"{"} + A B{" "} + C D{" "} + E:Set + {"}"} (f: + + A + {" "} + ->{" "} + + B + {" "} + ->{" "} + + C + {" "} + ->{" "} + + D + {" "} + ->{" "} + + E + + )
+                ( + a: + + eresult + {" "} + + A + + ) (b: + + eresult + {" "} + + B + + ) (c: + + eresult + {" "} + + C + + ) (d: + + eresult + {" "} + + D + + ) :{" "} + + eresult + {" "} + + E + {" "} + := +
+        + + eolift + {" "} + (fun x =>{" "} + + elift + {" "} + (fun g =>{" "} + + g + {" "} + + x + + ) ( + + elift3 + {" "} + + f + {" "} + + a + {" "} + + b + {" "} + + c + + )){" "} + + d + + .
+     Definition{" "} + + elift5 + {" "} + {"{"} + A B{" "} + C D{" "} + E F: + Set + {"}"} (f: + + A + {" "} + ->{" "} + + B + {" "} + ->{" "} + + C + {" "} + ->{" "} + + D + {" "} + ->{" "} + + E + {" "} + ->{" "} + + F + + )
+                ( + a: + + eresult + {" "} + + A + + ) (b: + + eresult + {" "} + + B + + ) (c: + + eresult + {" "} + + C + + ) (d: + + eresult + {" "} + + D + + ) (e: + + eresult + {" "} + + E + + ) :{" "} + + eresult + {" "} + + F + {" "} + := +
+        + + eolift + {" "} + (fun x =>{" "} + + elift + {" "} + (fun g =>{" "} + + g + {" "} + + x + + ) ( + + elift4 + {" "} + + f + {" "} + + a + {" "} + + b + {" "} + + c + {" "} + + d + + )){" "} + + e + + .
+     Definition{" "} + + emaplift + {" "} + {"{"} + A B: + Set + {"}"} (f: + + A + {" "} + ->{" "} + + eresult + {" "} + + B + + ) (al: + + + list + + {" "} + + A + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + B + + ) := +
+        + + + lift_failure_map + + {" "} + + f + {" "} + + al + + .
+     Definition{" "} + + eresult_of_option + {" "} + {"{"} + A:Set + {"}"} (a: + + + option + + {" "} + + A + + ) (e: + + eerror + + ) := +
+        + + + result_of_option + + {" "} + + a + {" "} + + e + + .
+
+     Definition{" "} + + elift_both + {" "} + {"{"} + A B: + Set + {"}"} (f:{" "} + + A + {" "} + ->{" "} + + B + + ) (g: + + eerror + {" "} + ->{" "} + + B + + ) (a: + + eresult + {" "} + + A + + ) :{" "} + + B + {" "} + := +
+       match{" "} + + a + {" "} + with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + s =>{" "} + + f + {" "} + s +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + e =>{" "} + + g + {" "} + e +
+       end.
+     Definition{" "} + + elift2_both + {" "} + {"{"} + A B{" "} + C:Set + {"}"} (f:{" "} + + A + {" "} + ->{" "} + + B + {" "} + ->{" "} + + C + + ) (g: + + eerror + {" "} + ->{" "} + + C + + ) (a: + + eresult + {" "} + + A + + ) (b: + + eresult + {" "} + + B + + ) :{" "} + + C + {" "} + := +
+       match{" "} + + a + {" "} + with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + s1 => +
+          + match{" "} + + b + {" "} + with +
+         |{" "} + + + Success + + {" "} + _ _{" "} + s2 =>{" "} + + f + {" "} + s1 s2 +
+         |{" "} + + + Failure + + {" "} + _ _{" "} + e =>{" "} + + g + {" "} + e +
+          + end +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + e =>{" "} + + g + {" "} + e +
+       end.
+     Definition{" "} + + elift_maybe + {" "} + {"{"} + A:Set + {"}"} (f:{" "} + + A + {" "} + ->{" "} + + + option + + {" "} + ( + + eresult + {" "} + + A + + )) (a: + + eresult + {" "} + + A + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+       match{" "} + + elift + {" "} + + f + {" "} + + a + {" "} + with +
+       |{" "} + + + Success + + {" "} + _ _ ( + + + Some + + {" "} + s) => s +
+       |{" "} + + + Success + + {" "} + _ _{" "} + + + None + + {" "} + =>{" "} + + a + +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + e =>{" "} + + efailure + {" "} + e +
+       end.
+     Definition{" "} + + eolift2 + {" "} + {"{"} + A B{" "} + C:Set + {"}"} (f :{" "} + + A + {" "} + ->{" "} + + B + {" "} + ->{" "} + + eresult + {" "} + + C + + ) (a :{" "} + + eresult + {" "} + + A + + ) (b :{" "} + + eresult + {" "} + + B + + ) :{" "} + + eresult + {" "} + + C + {" "} + := +
+       match{" "} + + elift2 + {" "} + + f + {" "} + + a + {" "} + + b + {" "} + with +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + + f + +
+       |{" "} + + + Success + + {" "} + _ _{" "} + s => s +
+       end.
+
+     Definition{" "} + + elift_fold_left + {" "} + {"{"} + A:Set + {"}"} {"{"} + B:Set + {"}"} +
+                ( + f :{" "} + + A + {" "} + ->{" "} + + B + {" "} + ->{" "} + + eresult + {" "} + + A + + ) (l: + + + list + + {" "} + + B + + ) (a: + + A + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+       let{" "} + proc_one (acc: + + eresult + {" "} + + A + + ) (x: + + B + + )
+           :{" "} + + eresult + {" "} + + A + {" "} + := +
+            + + eolift + {" "} + (fun acc =>{" "} + + f + {" "} + + acc + {" "} + + x + + ){" "} + + acc + +
+       in +
+        + + + fold_left + + {" "} + + proc_one + {" "} + + l + {" "} + ( + + esuccess + {" "} + + a + + ). +
+
+     Definition{" "} + + elift_context_fold_left_alt + {" "} + {"{"} + A:Set + {"}"} {"{"} + B:Set + {"}"} {"{"} + C:Set + {"}"} +
+                ( + f :{" "} + + C + {" "} + ->{" "} + + A + {" "} + ->{" "} + + eresult + {" "} + ( + + B + {" "} + *{" "} + + C + + )) (l: + + + list + + {" "} + + A + + ) (c: + + C + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + B + {" "} + *{" "} + + C + + ) := +
+        + + + elift_fold_left + + +
+         ( + fun acc{" "} + c => +
+             + + elift + {" "} + (fun mc => (( + + fst + {" "} + + acc + + )++(( + + fst + {" "} + + mc + + ):: + + nil + + ),{" "} + + snd + {" "} + + mc + + )) ( + + f + {" "} + ( + + snd + {" "} + + acc + + ){" "} + + c + + )) +
+          + + l + +
+         ( + + nil + + ,{" "} + + c + + ). +
+
+     Definition{" "} + + elift_context_fold_left + {" "} + {"{"} + A:Set + {"}"} {"{"} + B:Set + {"}"} {"{"} + C:Set + {"}"} +
+                ( + f :{" "} + + C + {" "} + ->{" "} + + A + {" "} + ->{" "} + + eresult + {" "} + ( + + B + {" "} + *{" "} + + C + + )) (l: + + + list + + {" "} + + A + + ) (c: + + C + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + B + {" "} + *{" "} + + C + + ) := +
+        + + + elift_fold_left + + +
+         ( + fun acc{" "} + c => +
+             + + elift + {" "} + (fun mc => (( + + fst + {" "} + + acc + + )++(( + + fst + {" "} + + mc + + ):: + + nil + + ),{" "} + + snd + {" "} + + mc + + )) ( + + f + {" "} + ( + + snd + {" "} + + acc + + ){" "} + + c + + )) +
+          + + l + +
+         ( + + nil + + ,{" "} + + c + + ). +
+
+     Definition{" "} + + eflatmaplift + {" "} + {"{"} + A B: + Set + {"}"} (f: + + A + {" "} + ->{" "} + + eresult + {" "} + ( + + + list + + {" "} + + B + + )) (al: + + + list + + {" "} + + A + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + B + + ) := +
+        + + + elift_fold_left + + +
+         ( + fun acc{" "} + c => +
+             + + elift + {" "} + (fun mc =>{" "} + + acc + {" "} + ++{" "} + + mc + + ) ( + + f + {" "} + + c + + )) +
+          + + al + {" "} + + nil + + .
+
+     Section{" "} + + qcert + + .
+        + Definition + {" "} + + eerror_of_qerror + {" "} + (prov: + + provenance + + ) (qe: + + + qerror + + + ) := +
+          + match{" "} + + qe + {" "} + with +
+         |{" "} + + + QResult.CompilationError + + {" "} + msg =>{" "} + + + ECompilationError + + {" "} + + prov + {" "} + msg +
+         |{" "} + + + QResult.TypeError + + {" "} + msg =>{" "} + + ETypeError + {" "} + + prov + {" "} + msg +
+         |{" "} + + + QResult.UserError + + {" "} + msg =>{" "} + + ESystemError + {" "} + + prov + {" "} + "User error{" "} + occured in{" "} + backend"
+          + end.
+
+        + Definition + {" "} + + eresult_of_qresult + {" "} + {"{"} + A:Set + {"}"} (prov: + + provenance + + ) (a: + + + qresult + + {" "} + + A + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+          + match{" "} + + a + {" "} + with +
+         |{" "} + + + Result.Success + + {" "} + _ _{" "} + s =>{" "} + + esuccess + {" "} + s +
+         |{" "} + + + Result.Failure + + {" "} + _ _{" "} + e =>{" "} + + efailure + {" "} + ( + + + eerror_of_qerror + + {" "} + + prov + {" "} + e)
+          + end.
+
+        + Definition + {" "} + + option_of_eresult + {" "} + {"{"} + A:Set + {"}"} (a: + + eresult + {" "} + + A + + ) :{" "} + + + option + + {" "} + + A + {" "} + := +
+          + + + option_of_result + + {" "} + + a + + .
+
+     End{" "} + + qcert + + .
+
+   End{" "} + + Lift + + .
+
+   Section{" "} + + Fmt + + .
+     Definition{" "} + + format_error + {" "} + (name :{" "} + + + string + + + ) (prov :{" "} + + provenance + + ) (msg :{" "} + + + string + + + ) := +
+       let{" "} + loc :={" "} + + + loc_of_provenance + + {" "} + + prov + {" "} + in +
+       ( + + name + {" "} + ++ " at " ++ ( + + + string_of_location + + {" "} + + loc + + ) ++ " '" ++{" "} + + msg + {" "} + ++ "'")%string.
+   End{" "} + + Fmt + + .
+    +
+
Built-in errors
+   Section{" "} + + Builtin + + .
+     Definition{" "} + + + clause_call_not_on_contract_error + + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + "Cannot call{" "} + a clause{" "} + except on ' + contract'"). +
+     Definition{" "} + + + use_contract_not_in_contract_error + + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + "Cannot use ' + contract' variable{" "} + outside of{" "} + a contract"). +
+     Definition{" "} + + + call_clause_not_in_contract_error + + {" "} + {"{"} + A + {"}"} prov clname :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Cannot call{" "} + clause " ++{" "} + + clname + {" "} + ++ " outside of{" "} + a contract")). +
+     Definition{" "} + + not_in_clause_error + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + "Cannot use ' + clause' variable{" "} + outside of{" "} + a clause"). +
+
+     Definition{" "} + + import_not_found_error + {" "} + {"{"} + A + {"}"} prov (import: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Import not{" "} + found: " ++{" "} + + import + + )). +
+     Definition{" "} + + type_name_not_found_error + {" "} + {"{"} + A + {"}"} prov (ln: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Cannot find{" "} + type with{" "} + name '" ++{" "} + + ln + {" "} + ++ "'")). +
+     Definition{" "} + + variable_name_not_found_error + {" "} + {"{"} + A + {"}"} prov (ln: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Cannot find{" "} + variable with{" "} + name '" ++{" "} + + ln + {" "} + ++ "'")). +
+     Definition{" "} + + function_name_not_found_error + {" "} + {"{"} + A + {"}"} prov (ln: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Cannot find{" "} + function with{" "} + name '" ++{" "} + + ln + {" "} + ++ "'")). +
+     Definition{" "} + + contract_name_not_found_error + {" "} + {"{"} + A + {"}"} prov (ln: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Cannot find{" "} + contract with{" "} + name '" ++{" "} + + ln + {" "} + ++ "'")). +
+     Definition{" "} + + import_name_not_found_error + {" "} + {"{"} + A + {"}"} prov ( + namespace: + + + string + + + ) (name_ref: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Cannot import{" "} + name '" ++{" "} + + name_ref + + ++ "' in CTO{" "} + with namespace " ++{" "} + + namespace + + )). +
+    +
+
Main clause creation errors
+     Definition{" "} + + main_parameter_mismatch_error + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + "Parameter mismatch{" "} + during main{" "} + creation"). +
+     Definition{" "} + + + main_at_least_one_parameter_error + + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + "Cannot create{" "} + main if{" "} + not at{" "} + least one{" "} + parameter"). +
+     Definition{" "} + + main_not_a_class_error + {" "} + {"{"} + A + {"}"} prov (cname: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Cannot create{" "} + main for{" "} + non-class{" "} + type "++ + + cname + + )). +
+      +
+
Call errors
+     Definition{" "} + + function_not_found_error + {" "} + {"{"} + A + {"}"} prov (fname: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Function '" ++{" "} + + fname + {" "} + ++ "' not found")). +
+     Definition{" "} + + eval_function_not_found_error + {" "} + {"{"} + A + {"}"} prov (fname: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ERuntimeError + + {" "} + + prov + {" "} + ("Function '" ++{" "} + + fname + {" "} + ++ "' not found{" "} + during eval")). +
+     Definition{" "} + + clause_not_found_error + {" "} + {"{"} + A + {"}"} prov (fname: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Clause '" ++{" "} + + fname + {" "} + ++ "' not found")). +
+     Definition{" "} + + call_params_error + {" "} + {"{"} + A + {"}"} prov (fname: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + ("Parameter{" "} + mismatch when{" "} + calling function '" + ++{" "} + + fname + {" "} + ++ "'")). +
+
+
Other runtime errors
+     Definition{" "} + + eval_unary_op_error + {" "} + {"{"} + A + {"}"} prov (op: + + + ErgoOps.Unary.op + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ERuntimeError + + {" "} + + prov + {" "} + "Unary operation{" "} + failed."). +
+     Definition{" "} + + eval_binary_op_error + {" "} + {"{"} + A + {"}"} prov (op: + + + ErgoOps.Binary.op + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ERuntimeError + + {" "} + + prov + {" "} + "Binary operation{" "} + failed."). +
+     Definition{" "} + + eval_if_not_boolean_error + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ERuntimeError + + {" "} + + prov + {" "} + "'If' condition{" "} + not boolean."). +
+     Definition{" "} + + + eval_match_let_optional_not_on_option_error + + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ERuntimeError + + {" "} + + prov + {" "} + "Matched LetOption{" "} + without an{" "} + option."). +
+     Definition{" "} + + + eval_foreach_not_on_array_error + + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ERuntimeError + + {" "} + + prov + {" "} + "Foreach needs{" "} + to be{" "} + called on{" "} + an array"). +
+
+
System errors
+     Definition{" "} + + no_ergo_module_error + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + ("No input{" "} + ergo found")). +
+     Definition{" "} + + + built_in_function_not_found_error + + {" "} + {"{"} + A + {"}"} prov (fname: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + ("Built in{" "} + function " ++{" "} + + fname + {" "} + ++ " not found")). +
+     Definition{" "} + + + built_in_function_without_body_error + + {" "} + {"{"} + A + {"}"} prov (fname: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + ("Built in{" "} + function " ++{" "} + + fname + {" "} + ++ " does not{" "} + have a{" "} + body")). +
+     Definition{" "} + + TODO + {" "} + {"{"} + A : Set + {"}"} prov (feature: + + + string + + + ) :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + ("Feature " ++{" "} + + feature + {" "} + ++ " not implemented + .")%string). +
+
+     Definition{" "} + + enforce_error_content + {" "} + (prov: + + provenance + + ) (msg: + + + string + + + ) :{" "} + + + ErgoData.data + + {" "} + := +
+       let{" "} + message :={" "} + + format_error + {" "} + "Enforce Error"{" "} + + prov + {" "} + + msg + {" "} + in +
+        + + + ErgoData.dbrand + + {" "} + ( + + + default_error_absolute_name + + + :: + + nil + + )
+                       ( + + + ErgoData.drec + + {" "} + (("message"%string,{" "} + + + ErgoData.dstring + + {" "} + + message + + ):: + + nil + + )). +
+     Definition{" "} + + default_match_error_content + {" "} + (prov: + + provenance + + ) (msg: + + + string + + + ) :{" "} + + + ErgoData.data + + {" "} + := +
+       let{" "} + message :={" "} + + format_error + {" "} + "DefaultMatch Error"{" "} + + prov + {" "} + + msg + {" "} + in +
+        + + + ErgoData.dbrand + + {" "} + ( + + + default_error_absolute_name + + + :: + + nil + + )
+                       ( + + + ErgoData.drec + + {" "} + (("message"%string,{" "} + + + ErgoData.dstring + + {" "} + + message + + ):: + + nil + + )). +
+
+     Definition{" "} + + unresolved_name_error + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + "Unresolved name"). +
+     Definition{" "} + + + should_have_one_contract_error + + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + + ECompilationError + + {" "} + + prov + {" "} + "Should have{" "} + exactly one{" "} + contract"). +
+
+     Definition{" "} + + contract_in_calculus_error + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + "Should not{" "} + find 'contract'{" "} + in Ergo{" "} + Calculus"). +
+     Definition{" "} + + clause_in_calculus_error + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + "Should not{" "} + find 'clause'{" "} + in Ergo{" "} + Calculus"). +
+     Definition{" "} + + state_in_calculus_error + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + "Should not{" "} + find 'state'{" "} + in Ergo{" "} + Calculus"). +
+     Definition{" "} + + + complex_foreach_in_calculus_error + + {" "} + {"{"} + A + {"}"} prov :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + "Should only{" "} + have single{" "} + loop foreach{" "} + in Ergo{" "} + Calculus"). +
+     Definition{" "} + + function_not_inlined_error + {" "} + {"{"} + A + {"}"} prov fname :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + ("Function " ++{" "} + + fname + {" "} + ++ " did not{" "} + get inlined")). +
+     Definition{" "} + + + function_in_group_not_inlined_error + + {" "} + {"{"} + A + {"}"} prov gname{" "} + fname :{" "} + + eresult + {" "} + + A + {" "} + := +
+        + + efailure + {" "} + ( + + ESystemError + {" "} + + prov + {" "} + ("Clause " ++{" "} + + fname + {" "} + ++ " in contract " + ++{" "} + + gname + {" "} + ++ " did not{" "} + get inlined")). +
+   End{" "} + + Builtin + + .
+
+ End{" "} + + Result + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.html b/docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.html deleted file mode 100644 index 294cb17e..00000000 --- a/docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - -Module ErgoSpec.Compiler.ErgoCompiler - - - - - - -

Module ErgoSpec.Compiler.ErgoCompiler

-
-
-Require String.
-Require Qcert.Common.Brands.BrandRelation.
-
-Require ErgoSpec.Version.
-Require ErgoSpec.Backend.ErgoBackend.
-Require ErgoSpec.Common.Utils.Provenance.
-Require ErgoSpec.Common.Utils.Names.
-Require ErgoSpec.Common.Utils.Result.
-Require ErgoSpec.Common.Utils.Ast.
-Require ErgoSpec.Common.CTO.CTO.
-Require ErgoSpec.Common.Types.ErgoType.
-Require ErgoSpec.Ergo.Lang.Ergo.
-Require ErgoSpec.Ergo.Lang.ErgoSugar.
-Require ErgoSpec.Compiler.ErgoDriver.
-
-Module ErgoCompiler.
-
-  Definition ergo_version := Version.ergo_version.
-  
-  Module ErgoData := ErgoBackend.ErgoData.
-  Module ErgoOps := ErgoBackend.ErgoOps.
-  Module ErgoCTypes := ErgoBackend.ErgoCTypes.
-
-
Utils
-  Definition javascript_identifier_sanitizer := ErgoBackend.ErgoCodeGen.javascript_identifier_sanitizer.
-
-
Location
-  Definition location := Provenance.location.
-  Definition provenance := Provenance.provenance.
-
-  Definition loc_of_provenance := Provenance.loc_of_provenance.
-  
-  Definition prov_func := Provenance.ProvFunc.
-  Definition prov_clause := Provenance.ProvClause.
-  Definition prov_this_contract := Provenance.ProvThisContract.
-  Definition prov_this_clause := Provenance.ProvThisClause.
-  Definition prov_this_state := Provenance.ProvThisState.
-  Definition prov_loc := Provenance.ProvLoc.
-
-
Names
-  Definition relative_name : Set := Names.relative_name.
-
-
Results
-  Definition eerror : Set := Result.eerror.
-  Definition system_error : provenance -> String.string -> eerror := Result.ESystemError.
-  Definition parse_error : provenance -> String.string -> eerror := Result.EParseError.
-  Definition compilation_error : provenance -> String.string -> eerror := Result.ECompilationError.
-  Definition type_error : provenance -> String.string -> eerror := Result.ETypeError.
-  Definition runtime_error : provenance -> String.string -> eerror := Result.ERuntimeError.
-
-  Definition eresult (A:Set) : Set := Result.eresult A.
-  Definition esuccess (A:Set) : A -> eresult A := Result.esuccess.
-  Definition efailure (A:Set) : eerror -> eresult A := Result.efailure.
-
-  Definition result_file : Set := Misc.result_file.
-  
-
CTOs
-  Definition cto_type := CTO.lrcto_type.
-  Definition cto_declaration_desc := CTO.lrcto_declaration_desc.
-  Definition cto_declaration := CTO.lrcto_declaration.
-  Definition cto_package := CTO.lrcto_package.
-  
-  Definition cto_boolean : provenance -> cto_type
-    := CTO.CTOBoolean.
-  Definition cto_string : provenance -> cto_type
-    := CTO.CTOString.
-  Definition cto_double : provenance -> cto_type
-    := CTO.CTODouble.
-  Definition cto_long : provenance -> cto_type
-    := CTO.CTOLong.
-  Definition cto_integer : provenance -> cto_type
-    := CTO.CTOInteger.
-  Definition cto_dateTime : provenance -> cto_type
-    := CTO.CTODateTime.
-  Definition cto_class_ref prov name_ref : cto_type
-    := CTO.CTOClassRef prov name_ref.
-  Definition cto_option prov ct : cto_type
-    := CTO.CTOOption prov ct.
-  Definition cto_array prov ct : cto_type
-    := CTO.CTOArray prov ct.
-
-  Definition cto_enum : list String.string -> cto_declaration_desc
-    := CTO.CTOEnum.
-  Definition cto_transaction :
-    bool -> option relative_name -> list (String.string * cto_type) -> cto_declaration_desc
-    := CTO.CTOTransaction.
-  Definition cto_concept :
-    bool -> option relative_name -> list (String.string * cto_type) -> cto_declaration_desc
-    := CTO.CTOConcept.
-
-  Definition mk_cto_declaration :
-    Provenance.provenance -> String.string -> cto_declaration_desc -> cto_declaration
-    := CTO.mkCTODeclaration.
-  Definition mk_cto_package :
-    Provenance.provenance
-    -> String.string
-    -> String.string
-    -> list Ast.import_decl
-    -> list cto_declaration
-    -> cto_package
-    := CTO.mkCTOPackage.
-
-
Types
-  Definition ergo_type : Set
-    := ErgoType.lrergo_type.
-  Definition ergo_type_declaration_desc : Set :=
-    ErgoType.lrergo_type_declaration_desc.
-  Definition ergo_type_declaration : Set :=
-    ErgoType.lrergo_type_declaration.
-  Definition laergo_type_declaration : Set :=
-    ErgoType.laergo_type_declaration.
-  
-  Definition ergo_type_any prov : ergo_type
-    := ErgoType.ErgoTypeAny prov.
-  Definition ergo_type_nothing prov : ergo_type
-    := ErgoType.ErgoTypeNothing prov.
-  Definition ergo_type_unit prov : ergo_type
-    := ErgoType.ErgoTypeUnit prov.
-  Definition ergo_type_boolean prov : ergo_type
-    := ErgoType.ErgoTypeBoolean prov.
-  Definition ergo_type_string prov : ergo_type
-    := ErgoType.ErgoTypeString prov.
-  Definition ergo_type_double prov : ergo_type
-    := ErgoType.ErgoTypeDouble prov.
-  Definition ergo_type_long prov : ergo_type
-    := ErgoType.ErgoTypeLong prov.
-  Definition ergo_type_integer prov : ergo_type
-    := ErgoType.ErgoTypeInteger prov.
-  Definition ergo_type_dateTime prov : ergo_type
-    := ErgoType.ErgoTypeDateTime prov.
-  Definition ergo_type_class_ref prov relative_name : ergo_type
-    := ErgoType.ErgoTypeClassRef prov relative_name.
-  Definition ergo_type_option prov et : ergo_type
-    := ErgoType.ErgoTypeOption prov et.
-  Definition ergo_type_record prov rec : ergo_type
-    := ErgoType.ErgoTypeRecord prov rec.
-  Definition ergo_type_array prov et : ergo_type
-    := ErgoType.ErgoTypeArray prov et.
-
-  Definition ergo_type_enum : list String.string -> ergo_type_declaration_desc
-    := ErgoType.ErgoTypeEnum.
-  Definition ergo_type_transaction :
-    bool -> option relative_name -> list (String.string * ergo_type) -> ergo_type_declaration_desc
-    := ErgoType.ErgoTypeTransaction.
-  Definition ergo_type_concept :
-    bool -> option relative_name -> list (String.string * ergo_type) -> ergo_type_declaration_desc
-    := ErgoType.ErgoTypeConcept.
-
-  Definition mk_ergo_type_declaration :
-    Provenance.provenance -> String.string -> ergo_type_declaration_desc -> ergo_type_declaration
-    := ErgoType.mkErgoTypeDeclaration.
-
-
Ergo
-  Definition ergo_expr : Set
-    := Ergo.lrergo_expr.
-  Definition ergo_stmt : Set
-    := Ergo.lrergo_stmt.
-  Definition ergo_function : Set
-    := Ergo.lrergo_function.
-  Definition ergo_clause : Set
-    := Ergo.lrergo_clause.
-  Definition ergo_declaration : Set
-    := Ergo.lrergo_declaration.
-  Definition ergo_contract : Set
-    := Ergo.lrergo_contract.
-  Definition ergo_module : Set
-    := Ergo.lrergo_module.
-  Definition ergo_input : Set
-    := Ergo.lrergo_input.
-
-
Patterns
-  Definition ecasedata : Provenance.provenance -> ErgoData.data -> Ast.lrergo_pattern
-    := Ast.CaseData.
-  Definition ecasewildcard : Provenance.provenance -> Ast.type_annotation -> Ast.lrergo_pattern
-    := Ast.CaseWildcard.
-  Definition ecaselet : Provenance.provenance -> String.string -> Ast.type_annotation -> Ast.lrergo_pattern
-    := Ast.CaseLet.
-  Definition ecaseletoption : Provenance.provenance -> String.string -> Ast.type_annotation -> Ast.lrergo_pattern
-    := Ast.CaseLetOption.
-
-
Expressions
-  Definition ethis_contract prov : ergo_expr
-    := Ergo.EThisContract prov.
-  Definition ethis_clause prov : ergo_expr
-    := Ergo.EThisClause prov.
-  Definition ethis_state prov : ergo_expr
-    := Ergo.EThisState prov.
-  Definition evar prov v: ergo_expr
-    := Ergo.EVar prov v.
-  Definition econst prov d :ergo_expr
-    := Ergo.EConst prov d.
-  Definition enone prov : ergo_expr
-    := Ergo.ENone prov.
-  Definition esome prov : ergo_expr -> ergo_expr
-    := Ergo.ESome prov.
-  Definition earray prov arr : ergo_expr
-    := Ergo.EArray prov arr.
-  Definition eunaryop prov u e : ergo_expr
-    := Ergo.EUnaryOp prov u e.
-  Definition ebinaryop prov b e1 e2 : ergo_expr
-    := Ergo.EBinaryOp prov b e1 e2.
-  Definition eif prov e1 e2 e3 : ergo_expr
-    := Ergo.EIf prov e1 e2 e3.
-  Definition elet prov (v:String.string) (t:option ErgoType.ergo_type) (e1 e2:ergo_expr) : ergo_expr
-    := Ergo.ELet prov v t e1 e2.
-  Definition enew prov n rec : ergo_expr
-    := Ergo.ENew prov n rec.
-  Definition erecord prov rec : ergo_expr
-    := Ergo.ERecord prov rec.
-  Definition ecallfun prov f el : ergo_expr
-    := Ergo.ECallFun prov f el.
-  Definition ematch prov e0 epl ed : ergo_expr
-    := Ergo.EMatch prov e0 epl ed.
-  Definition eforeach prov efl ew er : ergo_expr
-    := Ergo.EForeach prov efl ew er.
-
-  Section Integer.
-    Local Open Scope Z_scope.
-    Definition opuminusi prov e :=
-      ebinaryop prov ErgoOps.Binary.Integer.opminusi (econst prov (ErgoData.dnat 0)) e.
-  End Integer.
-  
-
Statements
-  Definition sreturn prov e : ergo_stmt :=
-    Ergo.SReturn prov e.
-  Definition efunreturn (prov:provenance) e : ergo_expr := e.
-  Definition sthrow prov e : ergo_stmt :=
-    Ergo.SThrow prov e.
-  Definition scallclause prov e0 c el : ergo_stmt :=
-    Ergo.SCallClause prov e0 c el.
-  Definition ssetstate prov e s : ergo_stmt :=
-    Ergo.SSetState prov e s.
-  Definition semit prov e s : ergo_stmt :=
-    Ergo.SEmit prov e s.
-  Definition slet prov (v:String.string) (t:option ErgoType.ergo_type) (e1:ergo_expr) (s2:ergo_stmt) : ergo_stmt :=
-    Ergo.SLet prov v t e1 s2.
-  Definition sif prov e1 s2 s3 : ergo_stmt :=
-    Ergo.SIf prov e1 s2 s3.
-  Definition senforce prov (e1:ergo_expr) (s2: option ergo_stmt) (s3:ergo_stmt) : ergo_stmt :=
-    Ergo.SEnforce prov e1 s2 s3.
-  Definition smatch prov e slp sd : ergo_stmt :=
-    Ergo.SMatch prov e slp sd.
-
-
Syntactic sugar
-  Definition edot : Provenance.provenance -> String.string -> ergo_expr -> ergo_expr
-    := ErgoSugar.EDot.
-  Definition eoptionaldot : Provenance.provenance -> String.string -> ergo_expr -> ergo_expr
-    := ErgoSugar.EOptionalDot.
-  Definition eoptionaldefault : Provenance.provenance -> ergo_expr -> ergo_expr -> ergo_expr
-    := ErgoSugar.EOptionalDefault.
-  Definition sreturnempty : Provenance.provenance -> ergo_stmt :=
-    ErgoSugar.SReturnEmpty.
-  Definition efunreturnempty : Provenance.provenance -> ergo_expr :=
-    ErgoSugar.EFunReturnEmpty.
-  
-
Declarations
-  Definition dnamespace prov ns : ergo_declaration
-    := Ergo.DNamespace prov ns.
-  Definition dimport prov id : ergo_declaration
-    := Ergo.DImport prov id.
-  Definition dtype prov etd : ergo_declaration
-    := Ergo.DType prov etd.
-  Definition dstmt prov s : ergo_declaration
-    := Ergo.DStmt prov s.
-  Definition dconstant prov v ta e : ergo_declaration
-    := Ergo.DConstant prov v ta e.
-  Definition dfunc prov fn f : ergo_declaration
-    := Ergo.DFunc prov fn f.
-  Definition dcontract prov cn c : ergo_declaration
-    := Ergo.DContract prov cn c.
-  Definition dsetcontract prov cn e : ergo_declaration
-    := Ergo.DSetContract prov cn e.
-
-
Compilation
-  Definition ergo_module_to_javascript :
-    list ergo_input
-    -> Result.eresult result_file
-    := ErgoDriver.ergo_module_to_javascript_top.
-
-  Definition ergo_module_to_javascript_cicero :
-    list ergo_input
-    -> Result.eresult result_file
-    := ErgoDriver.ergo_module_to_javascript_cicero_top.
-
-  Definition ergo_module_to_java :
-    list ergo_input
-    -> Result.eresult result_file
-    := ErgoDriver.ergo_module_to_java_top.
-
-
Brand model
-  Definition ergo_brand_model := ErgoCTypes.tbrand_model.
-
-  Definition ergo_empty_brand_model := ErgoCTypes.tempty_brand_model.
-
-  Definition ergo_brand_model_from_inputs (inputs : list ergo_input) : eresult ergo_brand_model
-    := ErgoDriver.brand_model_from_inputs inputs.
-
-  Definition ergo_refresh_brand_model {bm:ergo_brand_model} :
-    @ErgoDriver.repl_context bm -> eresult (ergo_brand_model * @ErgoDriver.repl_context bm)
-    := ErgoDriver.refresh_brand_model.
-
-
REPL
-  Definition init_repl_context {bm:ergo_brand_model} (inputs:list ergo_input)
-    := @ErgoDriver.init_repl_context bm inputs.
-
-  Definition ergo_repl_eval_decl {bm:ergo_brand_model} :
-    @ErgoDriver.repl_context bm
-    -> ergo_declaration
-    -> Result.eresult String.string * (@ErgoDriver.repl_context bm)
-    := (@ErgoDriver.ergo_repl_eval_decl bm).
-
-End ErgoCompiler.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.jsx b/docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.jsx new file mode 100644 index 00000000..6042191a --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Compiler.ErgoCompiler.jsx @@ -0,0 +1,3245 @@ +
+ + Module ErgoSpec.Compiler.ErgoCompiler + + +

Module ErgoSpec.Compiler.ErgoCompiler

+
+
+ Require{" "} + +
String + + .
+ Require{" "} + + + Qcert.Common.Brands.BrandRelation + + + .
+
+ Require{" "} + + ErgoSpec.Version + + .
+ Require{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ Require{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ Require{" "} + + ErgoSpec.Common.Utils.Names + + .
+ Require{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ Require{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ Require{" "} + + ErgoSpec.Common.CTO.CTO + + .
+ Require{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ Require{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ Require{" "} + + + ErgoSpec.Ergo.Lang.ErgoSugar + + + .
+ Require{" "} + + + ErgoSpec.Compiler.ErgoDriver + + + .
+
+ Module{" "} + + ErgoCompiler + + .
+
+   Definition{" "} + + ergo_version + {" "} + :={" "} + + Version.ergo_version + + .
+    +
+   Module{" "} + + ErgoData + {" "} + :={" "} + + + ErgoBackend.ErgoData + + + .
+   Module{" "} + + ErgoOps + {" "} + :={" "} + + + ErgoBackend.ErgoOps + + + .
+   Module{" "} + + ErgoCTypes + {" "} + :={" "} + + + ErgoBackend.ErgoCTypes + + + .
+
+
Utils
+   Definition{" "} + + + javascript_identifier_sanitizer + + {" "} + :={" "} + + + ErgoBackend.ErgoCodeGen.javascript_identifier_sanitizer + + + .
+
+
Location
+   Definition{" "} + + location + {" "} + :={" "} + + + Provenance.location + + + .
+   Definition{" "} + + provenance + {" "} + :={" "} + + + Provenance.provenance + + + .
+
+   Definition{" "} + + loc_of_provenance + {" "} + :={" "} + + + Provenance.loc_of_provenance + + + .
+    +
+   Definition{" "} + + prov_func + {" "} + :={" "} + + + Provenance.ProvFunc + + + .
+   Definition{" "} + + prov_clause + {" "} + :={" "} + + + Provenance.ProvClause + + + .
+   Definition{" "} + + prov_this_contract + {" "} + :={" "} + + + Provenance.ProvThisContract + + + .
+   Definition{" "} + + prov_this_clause + {" "} + :={" "} + + + Provenance.ProvThisClause + + + .
+   Definition{" "} + + prov_this_state + {" "} + :={" "} + + + Provenance.ProvThisState + + + .
+   Definition{" "} + + prov_loc + {" "} + :={" "} + + + Provenance.ProvLoc + + + .
+
+
Names
+   Definition{" "} + + relative_name + {" "} + : Set :={" "} + + + Names.relative_name + + + .
+
+
Results
+   Definition{" "} + + eerror + {" "} + : Set :={" "} + + Result.eerror + + .
+   Definition{" "} + + system_error + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + eerror + + {" "} + :={" "} + + + Result.ESystemError + + + .
+   Definition{" "} + + parse_error + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + eerror + + {" "} + :={" "} + + + Result.EParseError + + + .
+   Definition{" "} + + compilation_error + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + eerror + + {" "} + :={" "} + + + Result.ECompilationError + + + .
+   Definition{" "} + + type_error + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + eerror + + {" "} + :={" "} + + + Result.ETypeError + + + .
+   Definition{" "} + + runtime_error + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + eerror + + {" "} + :={" "} + + + Result.ERuntimeError + + + .
+
+   Definition{" "} + + eresult + {" "} + (A:Set) :{" "} + Set :={" "} + + Result.eresult + {" "} + + A + + .
+   Definition{" "} + + esuccess + {" "} + (A:Set) :{" "} + + A + {" "} + ->{" "} + + + eresult + + {" "} + + A + {" "} + :={" "} + + Result.esuccess + + .
+   Definition{" "} + + efailure + {" "} + (A:Set) :{" "} + + + eerror + + {" "} + ->{" "} + + + eresult + + {" "} + + A + {" "} + :={" "} + + Result.efailure + + .
+
+   Definition{" "} + + result_file + {" "} + : Set :={" "} + + Misc.result_file + + .
+    +
+
CTOs
+   Definition{" "} + + cto_type + {" "} + :={" "} + + CTO.lrcto_type + + .
+   Definition{" "} + + cto_declaration_desc + {" "} + :={" "} + + + CTO.lrcto_declaration_desc + + + .
+   Definition{" "} + + cto_declaration + {" "} + :={" "} + + + CTO.lrcto_declaration + + + .
+   Definition{" "} + + cto_package + {" "} + :={" "} + + CTO.lrcto_package + + .
+    +
+   Definition{" "} + + cto_boolean + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTOBoolean + + .
+   Definition{" "} + + cto_string + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTOString + + .
+   Definition{" "} + + cto_double + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTODouble + + .
+   Definition{" "} + + cto_long + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTOLong + + .
+   Definition{" "} + + cto_integer + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTOInteger + + .
+   Definition{" "} + + cto_dateTime + {" "} + :{" "} + + + provenance + + {" "} + ->{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTODateTime + + .
+   Definition{" "} + + cto_class_ref + {" "} + prov name_ref :{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTOClassRef + {" "} + + prov + {" "} + + name_ref + + .
+   Definition{" "} + + cto_option + {" "} + prov ct :{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTOOption + {" "} + + prov + {" "} + + ct + + .
+   Definition{" "} + + cto_array + {" "} + prov ct :{" "} + + + cto_type + + +
+     :={" "} + + CTO.CTOArray + {" "} + + prov + {" "} + + ct + + .
+
+   Definition{" "} + + cto_enum + {" "} + :{" "} + + + list + + {" "} + + + String.string + + {" "} + ->{" "} + + + cto_declaration_desc + + +
+     :={" "} + + CTO.CTOEnum + + .
+   Definition{" "} + + cto_transaction + {" "} + :
+      + + + bool + + {" "} + ->{" "} + + + option + + {" "} + + + relative_name + + {" "} + ->{" "} + + + list + + {" "} + ( + + + String.string + + {" "} + *{" "} + + + cto_type + + + ) ->{" "} + + + cto_declaration_desc + + +
+     :={" "} + + + CTO.CTOTransaction + + + .
+   Definition{" "} + + cto_concept + {" "} + :
+      + + + bool + + {" "} + ->{" "} + + + option + + {" "} + + + relative_name + + {" "} + ->{" "} + + + list + + {" "} + ( + + + String.string + + {" "} + *{" "} + + + cto_type + + + ) ->{" "} + + + cto_declaration_desc + + +
+     :={" "} + + CTO.CTOConcept + + .
+
+   Definition{" "} + + mk_cto_declaration + {" "} + :
+      + + + Provenance.provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + cto_declaration_desc + + {" "} + ->{" "} + + + cto_declaration + + +
+     :={" "} + + + CTO.mkCTODeclaration + + + .
+   Definition{" "} + + mk_cto_package + {" "} + :
+      + + + Provenance.provenance + + +
+     ->{" "} + + + String.string + + +
+     ->{" "} + + + String.string + + +
+     ->{" "} + + + list + + {" "} + + Ast.import_decl + +
+     ->{" "} + + + list + + {" "} + + + cto_declaration + + +
+     ->{" "} + + + cto_package + + +
+     :={" "} + + CTO.mkCTOPackage + + .
+
+
Types
+   Definition{" "} + + ergo_type + {" "} + : Set +
+     :={" "} + + + ErgoType.lrergo_type + + + .
+   Definition{" "} + + + ergo_type_declaration_desc + + {" "} + : Set := +
+      + + + ErgoType.lrergo_type_declaration_desc + + + .
+   Definition{" "} + + ergo_type_declaration + {" "} + : Set := +
+      + + + ErgoType.lrergo_type_declaration + + + .
+   Definition{" "} + + laergo_type_declaration + {" "} + : Set := +
+      + + + ErgoType.laergo_type_declaration + + + .
+    +
+   Definition{" "} + + ergo_type_any + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeAny + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_nothing + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeNothing + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_unit + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeUnit + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_boolean + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeBoolean + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_string + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeString + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_double + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeDouble + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_long + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeLong + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_integer + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeInteger + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_dateTime + {" "} + prov :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeDateTime + + {" "} + + prov + + .
+   Definition{" "} + + ergo_type_class_ref + {" "} + prov relative_name :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeClassRef + + {" "} + + prov + {" "} + + + relative_name + + + .
+   Definition{" "} + + ergo_type_option + {" "} + prov et :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeOption + + {" "} + + prov + {" "} + + et + + .
+   Definition{" "} + + ergo_type_record + {" "} + prov rec :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeRecord + + {" "} + + prov + {" "} + + rec + + .
+   Definition{" "} + + ergo_type_array + {" "} + prov et :{" "} + + + ergo_type + + +
+     :={" "} + + + ErgoType.ErgoTypeArray + + {" "} + + prov + {" "} + + et + + .
+
+   Definition{" "} + + ergo_type_enum + {" "} + :{" "} + + + list + + {" "} + + + String.string + + {" "} + ->{" "} + + + ergo_type_declaration_desc + + +
+     :={" "} + + + ErgoType.ErgoTypeEnum + + + .
+   Definition{" "} + + ergo_type_transaction + {" "} + :
+      + + + bool + + {" "} + ->{" "} + + + option + + {" "} + + + relative_name + + {" "} + ->{" "} + + + list + + {" "} + ( + + + String.string + + {" "} + *{" "} + + + ergo_type + + + ) ->{" "} + + + ergo_type_declaration_desc + + +
+     :={" "} + + + ErgoType.ErgoTypeTransaction + + + .
+   Definition{" "} + + ergo_type_concept + {" "} + :
+      + + + bool + + {" "} + ->{" "} + + + option + + {" "} + + + relative_name + + {" "} + ->{" "} + + + list + + {" "} + ( + + + String.string + + {" "} + *{" "} + + + ergo_type + + + ) ->{" "} + + + ergo_type_declaration_desc + + +
+     :={" "} + + + ErgoType.ErgoTypeConcept + + + .
+
+   Definition{" "} + + + mk_ergo_type_declaration + + {" "} + :
+      + + + Provenance.provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + ergo_type_declaration_desc + + {" "} + ->{" "} + + + ergo_type_declaration + + +
+     :={" "} + + + ErgoType.mkErgoTypeDeclaration + + + .
+
+
Ergo
+   Definition{" "} + + ergo_expr + {" "} + : Set
+     :={" "} + + Ergo.lrergo_expr + + .
+   Definition{" "} + + ergo_stmt + {" "} + : Set
+     :={" "} + + Ergo.lrergo_stmt + + .
+   Definition{" "} + + ergo_function + {" "} + : Set +
+     :={" "} + + + Ergo.lrergo_function + + + .
+   Definition{" "} + + ergo_clause + {" "} + : Set +
+     :={" "} + + + Ergo.lrergo_clause + + + .
+   Definition{" "} + + ergo_declaration + {" "} + : Set +
+     :={" "} + + + Ergo.lrergo_declaration + + + .
+   Definition{" "} + + ergo_contract + {" "} + : Set +
+     :={" "} + + + Ergo.lrergo_contract + + + .
+   Definition{" "} + + ergo_module + {" "} + : Set
+     :={" "} + + + Ergo.lrergo_module + + + .
+   Definition{" "} + + ergo_input + {" "} + : Set
+     :={" "} + + Ergo.lrergo_input + + .
+
+
Patterns
+   Definition{" "} + + ecasedata + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + ErgoData.data + + {" "} + ->{" "} + + + Ast.lrergo_pattern + + +
+     :={" "} + + Ast.CaseData + + .
+   Definition{" "} + + ecasewildcard + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + Ast.type_annotation + + {" "} + ->{" "} + + + Ast.lrergo_pattern + + +
+     :={" "} + + Ast.CaseWildcard + + .
+   Definition{" "} + + ecaselet + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + Ast.type_annotation + + {" "} + ->{" "} + + + Ast.lrergo_pattern + + +
+     :={" "} + + Ast.CaseLet + + .
+   Definition{" "} + + ecaseletoption + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + Ast.type_annotation + + {" "} + ->{" "} + + + Ast.lrergo_pattern + + +
+     :={" "} + + + Ast.CaseLetOption + + + .
+
+
Expressions
+   Definition{" "} + + ethis_contract + {" "} + prov :{" "} + + + ergo_expr + + +
+     :={" "} + + + Ergo.EThisContract + + {" "} + + prov + + .
+   Definition{" "} + + ethis_clause + {" "} + prov :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.EThisClause + {" "} + + prov + + .
+   Definition{" "} + + ethis_state + {" "} + prov :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.EThisState + {" "} + + prov + + .
+   Definition{" "} + + evar + {" "} + prov v:{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.EVar + {" "} + + prov + {" "} + + v + + .
+   Definition{" "} + + econst + {" "} + prov d : + + + ergo_expr + + +
+     :={" "} + + Ergo.EConst + {" "} + + prov + {" "} + + d + + .
+   Definition{" "} + + enone + {" "} + prov :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.ENone + {" "} + + prov + + .
+   Definition{" "} + + esome + {" "} + prov :{" "} + + + ergo_expr + + {" "} + ->{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.ESome + {" "} + + prov + + .
+   Definition{" "} + + earray + {" "} + prov arr :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.EArray + {" "} + + prov + {" "} + + arr + + .
+   Definition{" "} + + eunaryop + {" "} + prov u{" "} + e :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.EUnaryOp + {" "} + + prov + {" "} + + u + {" "} + + e + + .
+   Definition{" "} + + ebinaryop + {" "} + prov b{" "} + e1 e2 :{" "} + + + ergo_expr + + {" "} +
+     :={" "} + + Ergo.EBinaryOp + {" "} + + prov + {" "} + + b + {" "} + + e1 + {" "} + + e2 + + .
+   Definition{" "} + + eif + {" "} + prov e1{" "} + e2 e3 :{" "} + + + ergo_expr + + {" "} +
+     :={" "} + + Ergo.EIf + {" "} + + prov + {" "} + + e1 + {" "} + + e2 + {" "} + + e3 + + .
+   Definition{" "} + + elet + {" "} + prov (v: + + + String.string + + + ) (t: + + + option + + {" "} + + + ErgoType.ergo_type + + + ) (e1 e2: + + + ergo_expr + + + ) :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.ELet + {" "} + + prov + {" "} + + v + {" "} + + t + {" "} + + e1 + {" "} + + e2 + + .
+   Definition{" "} + + enew + {" "} + prov n{" "} + rec :{" "} + + + ergo_expr + + {" "} +
+     :={" "} + + Ergo.ENew + {" "} + + prov + {" "} + + n + {" "} + + rec + + .
+   Definition{" "} + + erecord + {" "} + prov rec :{" "} + + + ergo_expr + + {" "} +
+     :={" "} + + Ergo.ERecord + {" "} + + prov + {" "} + + rec + + .
+   Definition{" "} + + ecallfun + {" "} + prov f{" "} + el :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.ECallFun + {" "} + + prov + {" "} + + f + {" "} + + el + + .
+   Definition{" "} + + ematch + {" "} + prov e0{" "} + epl ed :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.EMatch + {" "} + + prov + {" "} + + e0 + {" "} + + epl + {" "} + + ed + + .
+   Definition{" "} + + eforeach + {" "} + prov efl{" "} + ew er :{" "} + + + ergo_expr + + +
+     :={" "} + + Ergo.EForeach + {" "} + + prov + {" "} + + efl + {" "} + + ew + {" "} + + er + + .
+
+   Section{" "} + + Integer + + .
+     Local{" "} + Open Scope{" "} + Z_scope.
+     Definition{" "} + + opuminusi + {" "} + prov e := +
+        + + + ebinaryop + + {" "} + + prov + {" "} + + + ErgoOps.Binary.Integer.opminusi + + {" "} + ( + + + econst + + {" "} + + prov + {" "} + ( + + + ErgoData.dnat + + {" "} + 0)){" "} + + e + + .
+   End{" "} + + + Integer + + + .
+    +
+
Statements
+   Definition{" "} + + sreturn + {" "} + prov e :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SReturn + {" "} + + prov + {" "} + + e + + .
+   Definition{" "} + + efunreturn + {" "} + (prov: + + + provenance + + + ) e :{" "} + + + ergo_expr + + {" "} + :={" "} + + e + + .
+   Definition{" "} + + sthrow + {" "} + prov e :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SThrow + {" "} + + prov + {" "} + + e + + .
+   Definition{" "} + + scallclause + {" "} + prov e0{" "} + c el :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SCallClause + {" "} + + prov + {" "} + + e0 + {" "} + + c + {" "} + + el + + .
+   Definition{" "} + + ssetstate + {" "} + prov e{" "} + s :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SSetState + {" "} + + prov + {" "} + + e + {" "} + + s + + .
+   Definition{" "} + + semit + {" "} + prov e{" "} + s :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SEmit + {" "} + + prov + {" "} + + e + {" "} + + s + + .
+   Definition{" "} + + slet + {" "} + prov (v: + + + String.string + + + ) (t: + + + option + + {" "} + + + ErgoType.ergo_type + + + ) (e1: + + + ergo_expr + + + ) (s2: + + + ergo_stmt + + + ) :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SLet + {" "} + + prov + {" "} + + v + {" "} + + t + {" "} + + e1 + {" "} + + s2 + + .
+   Definition{" "} + + sif + {" "} + prov e1{" "} + s2 s3 :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SIf + {" "} + + prov + {" "} + + e1 + {" "} + + s2 + {" "} + + s3 + + .
+   Definition{" "} + + senforce + {" "} + prov (e1: + + + ergo_expr + + + ) (s2:{" "} + + + option + + {" "} + + + ergo_stmt + + + ) (s3: + + + ergo_stmt + + + ) :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SEnforce + {" "} + + prov + {" "} + + e1 + {" "} + + s2 + {" "} + + s3 + + .
+   Definition{" "} + + smatch + {" "} + prov e{" "} + slp sd :{" "} + + + ergo_stmt + + {" "} + := +
+      + + Ergo.SMatch + {" "} + + prov + {" "} + + e + {" "} + + slp + {" "} + + sd + + .
+
+
Syntactic sugar
+   Definition{" "} + + edot + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + ergo_expr + + {" "} + ->{" "} + + + ergo_expr + + {" "} +
+     :={" "} + + ErgoSugar.EDot + + .
+   Definition{" "} + + eoptionaldot + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + String.string + + {" "} + ->{" "} + + + ergo_expr + + {" "} + ->{" "} + + + ergo_expr + + +
+     :={" "} + + + ErgoSugar.EOptionalDot + + + .
+   Definition{" "} + + eoptionaldefault + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + ergo_expr + + {" "} + ->{" "} + + + ergo_expr + + {" "} + ->{" "} + + + ergo_expr + + +
+     :={" "} + + + ErgoSugar.EOptionalDefault + + + .
+   Definition{" "} + + sreturnempty + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + ergo_stmt + + {" "} + := +
+      + + + ErgoSugar.SReturnEmpty + + + .
+   Definition{" "} + + efunreturnempty + {" "} + :{" "} + + + Provenance.provenance + + {" "} + ->{" "} + + + ergo_expr + + {" "} + := +
+      + + + ErgoSugar.EFunReturnEmpty + + + .
+    +
+
Declarations
+   Definition{" "} + + dnamespace + {" "} + prov ns :{" "} + + + ergo_declaration + + +
+     :={" "} + + Ergo.DNamespace + {" "} + + prov + {" "} + + ns + + .
+   Definition{" "} + + dimport + {" "} + prov id :{" "} + + + ergo_declaration + + +
+     :={" "} + + Ergo.DImport + {" "} + + prov + {" "} + + id + + .
+   Definition{" "} + + dtype + {" "} + prov etd :{" "} + + + ergo_declaration + + +
+     :={" "} + + Ergo.DType + {" "} + + prov + {" "} + + etd + + .
+   Definition{" "} + + dstmt + {" "} + prov s :{" "} + + + ergo_declaration + + +
+     :={" "} + + Ergo.DStmt + {" "} + + prov + {" "} + + s + + .
+   Definition{" "} + + dconstant + {" "} + prov v{" "} + ta e :{" "} + + + ergo_declaration + + +
+     :={" "} + + Ergo.DConstant + {" "} + + prov + {" "} + + v + {" "} + + ta + {" "} + + e + + .
+   Definition{" "} + + dfunc + {" "} + prov fn{" "} + f :{" "} + + + ergo_declaration + + +
+     :={" "} + + Ergo.DFunc + {" "} + + prov + {" "} + + fn + {" "} + + f + + .
+   Definition{" "} + + dcontract + {" "} + prov cn{" "} + c :{" "} + + + ergo_declaration + + +
+     :={" "} + + Ergo.DContract + {" "} + + prov + {" "} + + cn + {" "} + + c + + .
+   Definition{" "} + + dsetcontract + {" "} + prov cn{" "} + e :{" "} + + + ergo_declaration + + +
+     :={" "} + + Ergo.DSetContract + {" "} + + prov + {" "} + + cn + {" "} + + e + + .
+
+
Compilation
+   Definition{" "} + + + ergo_module_to_javascript + + {" "} + :
+      + + + list + + {" "} + + + ergo_input + + +
+     ->{" "} + + Result.eresult + {" "} + + + result_file + + +
+     :={" "} + + + ErgoDriver.ergo_module_to_javascript_top + + + .
+
+   Definition{" "} + + + ergo_module_to_javascript_cicero + + {" "} + :
+      + + + list + + {" "} + + + ergo_input + + +
+     ->{" "} + + Result.eresult + {" "} + + + result_file + + +
+     :={" "} + + + ErgoDriver.ergo_module_to_javascript_cicero_top + + + .
+
+   Definition{" "} + + ergo_module_to_java + {" "} + :
+      + + + list + + {" "} + + + ergo_input + + +
+     ->{" "} + + Result.eresult + {" "} + + + result_file + + +
+     :={" "} + + + ErgoDriver.ergo_module_to_java_top + + + .
+
+
Brand model
+   Definition{" "} + + ergo_brand_model + {" "} + :={" "} + + + ErgoCTypes.tbrand_model + + + .
+
+   Definition{" "} + + ergo_empty_brand_model + {" "} + :={" "} + + + ErgoCTypes.tempty_brand_model + + + .
+
+   Definition{" "} + + + ergo_brand_model_from_inputs + + {" "} + (inputs :{" "} + + + list + + {" "} + + + ergo_input + + + ) :{" "} + + + eresult + + {" "} + + + ergo_brand_model + + +
+     :={" "} + + + ErgoDriver.brand_model_from_inputs + + {" "} + + inputs + + .
+
+   Definition{" "} + + + ergo_refresh_brand_model + + {" "} + {"{"} + bm: + + + ergo_brand_model + + + {"}"} :
+     @ + + + ErgoDriver.repl_context + + {" "} + + bm + {" "} + ->{" "} + + + eresult + + {" "} + ( + + + ergo_brand_model + + {" "} + * @ + + + ErgoDriver.repl_context + + {" "} + + bm + + )
+     :={" "} + + + ErgoDriver.refresh_brand_model + + + .
+
+
REPL
+   Definition{" "} + + init_repl_context + {" "} + {"{"} + bm: + + + ergo_brand_model + + + {"}"} (inputs: + + + list + + {" "} + + + ergo_input + + + )
+     := @ + + + ErgoDriver.init_repl_context + + {" "} + + bm + {" "} + + inputs + + .
+
+   Definition{" "} + + ergo_repl_eval_decl + {" "} + {"{"} + bm: + + + ergo_brand_model + + + {"}"} :
+     @ + + + ErgoDriver.repl_context + + {" "} + + bm + +
+     ->{" "} + + + ergo_declaration + + +
+     ->{" "} + + Result.eresult + {" "} + + + String.string + + {" "} + * (@ + + + ErgoDriver.repl_context + + {" "} + + bm + + )
+     := (@ + + + ErgoDriver.ergo_repl_eval_decl + + {" "} + + bm + + ). +
+
+ End{" "} + + + ErgoCompiler + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.html b/docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.html deleted file mode 100644 index 4e870557..00000000 --- a/docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.html +++ /dev/null @@ -1,428 +0,0 @@ - - - - - - -Module ErgoSpec.Compiler.ErgoDriver - - - - - - -

Module ErgoSpec.Compiler.ErgoDriver

-
-
-
Compilation paths
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ForeignErgo.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.NamespaceContext.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Common.Utils.PrintTypedData.
-Require Import ErgoSpec.Common.CTO.CTO.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.Ergo.Lang.ErgoExpand.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCTypeContext.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCType.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCEvalContext.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCEval.
-Require Import ErgoSpec.Translation.CTOtoErgo.
-Require Import ErgoSpec.Translation.ErgoNameResolve.
-Require Import ErgoSpec.Translation.ErgotoErgoC.
-Require Import ErgoSpec.Translation.ErgoCompContext.
-Require Import ErgoSpec.Translation.ErgoCInline.
-Require Import ErgoSpec.Translation.ErgoCtoErgoNNRC.
-Require Import ErgoSpec.Translation.ErgoNNRCtoJavaScript.
-Require Import ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.
-Require Import ErgoSpec.Translation.ErgoNNRCtoJava.
-
-Section ErgoDriver.
-  Section CompilerPre.
-    Definition resolve_inputs_opt
-               (inputs:list lrergo_input)
-    : eresult ((list laergo_module * option laergo_module) * namespace_ctxt) :=
-      let '(ctos, mls, p) := split_ctos_and_ergos inputs in
-      let ctxt := init_namespace_ctxt in
-      let rctxt := resolve_cto_packages ctxt ctos in
-      let mls :=
-          eolift (fun ctxt =>
-                    elift
-                      (fun res =>
-                         (fst ctxt ++ fst res, snd res))
-                      (resolve_ergo_modules (snd ctxt) mls))
-                 rctxt
-      in
-      match p with
-      | Some p =>
-        eolift (fun ctxt =>
-                  elift (fun rp =>
-                           ((fst ctxt, Some (fst rp)), snd rp))
-                        (resolve_ergo_module (snd ctxt) p)
-               ) mls
-      | None =>
-        elift (fun ctxt => ((fst ctxt, None), (snd ctxt))) mls
-      end.
-
-    Definition resolve_inputs
-               (inputs:list lrergo_input)
-      : eresult ((list laergo_module * laergo_module) * namespace_ctxt) :=
-      eolift (fun res =>
-                let '(mls, op, ctxt) := res in
-                match op with
-                | Some p => esuccess (mls, p, ctxt)
-                | None => no_ergo_module_error dummy_provenance
-                end) (resolve_inputs_opt inputs).
-      
-    Definition resolve_inputs_no_main
-               (inputs:list lrergo_input)
-      : eresult (list laergo_module * namespace_ctxt) :=
-      elift (fun res =>
-               let '(mls, op, ctxt) := res in
-               match op with
-               | Some p => (mls ++ (p::nil), ctxt)
-               | None => (mls, ctxt)
-               end) (resolve_inputs_opt inputs).
-      
-    Definition just_resolved_inputs
-               (inputs:list lrergo_input) : eresult (list laergo_module) :=
-      let resolved := resolve_inputs_no_main inputs in
-      elift (fun x => (fst x)) resolved.
-
-    Definition brand_model_from_inputs (inputs : list lrergo_input) : eresult ErgoCTypes.tbrand_model :=
-      let resolved := just_resolved_inputs inputs in
-      let type_decls := elift modules_get_type_decls resolved in
-      eolift ErgoTypetoErgoCType.brand_model_of_declarations type_decls.
-
-  End CompilerPre.
-
-  Section CompilerCore.
-    Context {bm:brand_model}.
-
-    Definition init_compilation_context_from_inputs
-               (inputs:list lrergo_input) :
-      eresult ((list laergo_module * laergo_module) * compilation_context) :=
-      let rinputs := resolve_inputs inputs in
-      elift
-        (fun rinputs =>
-           let '(mls, p, ns_ctxt) := rinputs in
-           (mls, p, init_compilation_context ns_ctxt))
-        rinputs.
-
-    Definition init_compilation_context_from_inputs_no_main
-               (inputs:list lrergo_input) :
-      eresult (list laergo_module * compilation_context) :=
-      let rinputs := resolve_inputs_no_main inputs in
-      elift
-        (fun rinputs =>
-           let '(mls, ns_ctxt) := rinputs in
-           (mls, init_compilation_context ns_ctxt))
-        rinputs.
-
-    Definition ergo_module_to_ergoc
-               (ctxt:compilation_context)
-               (lm:laergo_module) : eresult (ergoc_module * compilation_context) :=
-      let p := ergo_expand_module lm in
-      let pc := eolift (ergo_module_to_calculus ctxt) p in
-      let pc := eolift (fun xy => ergoc_inline_module (snd xy) (fst xy)) pc in
-      eolift (fun xy : ergoc_module * compilation_context =>
-                let (mod,ctxt) := xy in
-                let nsctxt := ctxt.(compilation_context_namespace) in
-                let sctxt := ctxt.(compilation_context_type_ctxt) in
-                let pctypes := ergoc_type_module nsctxt sctxt mod in
-                elift (fun xy : ergoc_module * type_context =>
-                         let (mod, sctxt') := xy in
-                         (mod, compilation_context_update_type_ctxt ctxt sctxt')) pctypes
-             ) pc.
-
-    Definition ergo_modules_to_ergoc
-               (ctxt:compilation_context)
-               (lm:list laergo_module) : eresult (list ergoc_module * compilation_context) :=
-      elift_context_fold_left
-        ergo_module_to_ergoc
-        lm
-        ctxt.
-
-    Definition ergo_declaration_to_ergoc
-               (ctxt:compilation_context)
-               (ld:lrergo_declaration) : eresult (list ergoc_declaration * compilation_context) :=
-      let ns_ctxt := namespace_ctxt_of_compilation_context ctxt in
-      let am := resolve_ergo_declaration ns_ctxt ld in
-      eolift (fun amc =>
-                let ctxt := compilation_context_update_namespace ctxt (snd amc) in
-                let p := ergo_expand_declaration (fst amc) in
-                eolift (declaration_to_calculus ctxt) p)
-             am.
-
-    Definition ergo_declaration_to_ergoc_inlined
-               (sctxt : compilation_context)
-               (decl : lrergo_declaration)
-      : eresult (list (option ergoc_type * ergoc_declaration) * compilation_context) :=
-      let ec := ergo_declaration_to_ergoc sctxt decl in
-      let inlined : eresult (list ergoc_declaration * compilation_context) :=
-          eolift
-            (fun (x : list ergoc_declaration * compilation_context) =>
-               let (decls, ctxt) := x in
-               elift_context_fold_left
-                 ergoc_inline_declaration
-                 decls
-                 ctxt)
-            ec
-      in
-      eolift (fun xy : list ergoc_declaration * compilation_context =>
-                elift_context_fold_left
-                  (fun (sctxt : compilation_context) (decl : ergoc_declaration) =>
-                     let nsctxt := sctxt.(compilation_context_namespace) in
-                     match ergoc_type_decl nsctxt sctxt.(compilation_context_type_ctxt) decl with
-                     | Failure _ _ f => efailure f
-                     | Success _ _ (typ, tctxt') =>
-                       esuccess ((typ,decl), compilation_context_update_type_ctxt sctxt tctxt')
-                     end)
-                  (fst xy)
-                  (snd xy)
-             ) inlined.
-        
-    Definition ergo_module_to_javascript
-               (ctxt:compilation_context)
-               (p:laergo_module) : eresult ErgoCodeGen.javascript :=
-      let pc := ergo_module_to_ergoc ctxt p in
-      let pn := eolift (fun xy => ergoc_module_to_nnrc (fst xy)) pc in
-      elift nnrc_module_to_javascript_top pn.
-
-    Definition compilation_context_from_inputs
-               (inputs:list lrergo_input) : eresult (laergo_module * compilation_context) :=
-      let cinit := init_compilation_context_from_inputs inputs in
-      eolift (fun init =>
-                let '(mls, p, ctxt) := init in
-                elift (fun r => (p, snd r))
-                      (ergo_modules_to_ergoc ctxt mls))
-             cinit.
-    
-    Definition compilation_context_from_inputs_no_main
-               (inputs:list lrergo_input) : eresult compilation_context :=
-      let cinit := init_compilation_context_from_inputs_no_main inputs in
-      eolift (fun init =>
-                let '(mls, ctxt) := init in
-                elift snd
-                      (ergo_modules_to_ergoc ctxt mls))
-             cinit.
-    
-    Definition ergo_module_to_java
-               (ctxt:compilation_context)
-               (p:laergo_module) : eresult ErgoCodeGen.java :=
-      let pc := ergo_module_to_ergoc ctxt p in
-      let pn := eolift (fun xy => ergoc_module_to_nnrc (fst xy)) pc in
-      elift nnrc_module_to_java_top pn.
-
-  End CompilerCore.
-
-  Section CompilerTop.
-
-    Definition ergo_module_to_javascript_top
-               (inputs:list lrergo_input) : eresult result_file :=
-      let bm : eresult brand_model := brand_model_from_inputs inputs in
-      eolift (fun bm :brand_model=>
-                let cinit := compilation_context_from_inputs inputs in
-                eolift (fun init : laergo_module * compilation_context =>
-                          let (p, ctxt) := init in
-                          let res := ergo_module_to_javascript ctxt p in
-                          elift (mkResultFile p.(module_file)) res)
-                       cinit) bm.
-
-    Definition ergo_module_to_java_top
-               (inputs:list lrergo_input) : eresult result_file :=
-      let bm : eresult brand_model := brand_model_from_inputs inputs in
-      eolift (fun bm :brand_model=>
-                let cinit := compilation_context_from_inputs inputs in
-                eolift (fun init : laergo_module * compilation_context =>
-                          let (p, ctxt) := init in
-                          let res := ergo_module_to_java ctxt p in
-                          elift (mkResultFile p.(module_file)) res)
-                       cinit) bm.
-
-    Definition ergo_module_to_javascript_cicero_top
-               (inputs:list lrergo_input) : eresult result_file :=
-      let bm : eresult brand_model := brand_model_from_inputs inputs in
-      eolift
-        (fun bm : brand_model=>
-           let ctxt := compilation_context_from_inputs inputs in
-           eolift
-             (fun init : laergo_module * compilation_context =>
-                let (p, ctxt) := init in
-                let res :=
-                    let ec := lookup_single_contract p in
-                    eolift
-                      (fun c : local_name * ergo_contract =>
-                         let contract_name := (fst c) in
-                         let sigs := lookup_contract_signatures (snd c) in
-                         let pc := ergo_module_to_ergoc ctxt p in
-                         let pn := eolift (fun xy => ergoc_module_to_nnrc (fst xy)) pc in
-                         elift (ergoc_module_to_javascript_cicero contract_name (snd c).(contract_state) sigs) pn)
-                      ec
-                in
-                elift (mkResultFile p.(module_file)) res)
-             ctxt) bm.
-    
-  End CompilerTop.
-
-  Section Interpreter.
-    Context {bm:brand_model}.
-
-    Record repl_context :=
-      mkREPLCtxt {
-          repl_context_eval_ctxt : eval_context;
-          repl_context_comp_ctxt : compilation_context;
-        }.
-
-    Definition init_repl_context
-               (inputs : list lrergo_input) : eresult repl_context :=
-      elift (mkREPLCtxt ErgoCEvalContext.empty_eval_context)
-            (eolift (set_namespace_in_compilation_context
-                       "org.accordproject.ergotop"%string)
-                    (compilation_context_from_inputs_no_main inputs)).
-
-    Definition update_repl_ctxt_comp_ctxt
-               (rctxt: repl_context)
-               (sctxt: compilation_context) : repl_context :=
-      mkREPLCtxt
-        rctxt.(repl_context_eval_ctxt)
-        sctxt.
-    
-    Definition update_repl_ctxt_type_ctxt
-               (rctxt: repl_context)
-               (nctxt: type_context) : repl_context :=
-      update_repl_ctxt_comp_ctxt
-        rctxt
-        (compilation_context_update_type_ctxt rctxt.(repl_context_comp_ctxt) nctxt).
-    
-    Definition update_repl_ctxt_eval_ctxt
-               (rctxt: repl_context)
-               (nctxt: eval_context) : repl_context :=
-      mkREPLCtxt
-        nctxt
-        rctxt.(repl_context_comp_ctxt).
-
-    Definition lift_repl_ctxt
-               (orig_ctxt : repl_context)
-               (result : eresult (option ergoc_type * option ergo_data * repl_context))
-               : repl_context
-      :=
-        elift_both
-          (fun s => snd s)
-          (fun e => orig_ctxt)
-          result.
-
-    Definition ergoc_repl_eval_declaration
-               (ctxt:repl_context) (typed_decl:option ergoc_type * ergoc_declaration)
-      : eresult (option ergoc_type * option ergo_data * repl_context) :=
-      let nsctxt := ctxt.(repl_context_comp_ctxt).(compilation_context_namespace) in
-      let (typ, decl) := typed_decl in
-      match ergoc_eval_decl ctxt.(repl_context_eval_ctxt) decl with
-      | Failure _ _ f => efailure f
-      | Success _ _ (dctxt', None) => esuccess (typ, None, update_repl_ctxt_eval_ctxt ctxt dctxt')
-      | Success _ _ (dctxt', Some out) =>
-        match unpack_output out with
-        | None => esuccess (typ, Some out, update_repl_ctxt_eval_ctxt ctxt dctxt')
-        | Some (_, _, state) =>
-          let newctxt :=
-              match typ with
-              | None =>
-                esuccess (update_repl_ctxt_eval_ctxt ctxt (eval_context_update_global_env dctxt' this_state state))
-              | Some typ =>
-                elift
-                  (fun ty =>
-                     let '(_, _, statety) := ty in
-                     let ctxt1 :=
-                         update_repl_ctxt_eval_ctxt ctxt (eval_context_update_global_env dctxt' this_state state)
-                     in
-                     let sctxt1 := ctxt1.(repl_context_comp_ctxt).(compilation_context_type_ctxt) in
-                     update_repl_ctxt_type_ctxt ctxt1 (type_context_update_global_env sctxt1 this_state statety))
-                  (unpack_success_type nsctxt typ)
-              end
-          in
-          elift (fun ctxt => (typ, Some out, ctxt)) newctxt
-        end
-      end.
-
-    Definition ergoc_repl_eval_declarations
-               (ctxt:repl_context) (decls:list (option ergoc_type * ergoc_declaration))
-      : eresult (option ergoc_type * option ergo_data * repl_context) :=
-      elift
-        (fun xy =>
-           (last_some_pair (fst xy), snd xy))
-        (elift_context_fold_left
-           ergoc_repl_eval_declaration
-           decls
-           ctxt).
-
-    Definition ergo_eval_decl_via_calculus
-               (ctxt : repl_context)
-               (decl : lrergo_declaration)
-      : eresult (option ergoc_type * option ergo_data * repl_context) :=
-      match ergo_declaration_to_ergoc_inlined ctxt.(repl_context_comp_ctxt) decl with
-      | Failure _ _ f => efailure f
-      | Success _ _ (decls, sctxt') =>
-        let rctxt' := update_repl_ctxt_comp_ctxt ctxt sctxt' in
-        ergoc_repl_eval_declarations rctxt' decls
-      end.
-
-    Definition ergo_string_of_result
-               (rctxt : repl_context)
-               (result : eresult (option ergoc_type * option ergo_data * repl_context))
-      : eresult string :=
-      let nsctxt := rctxt.(repl_context_comp_ctxt).(compilation_context_namespace) in
-      let global_env := rctxt.(repl_context_eval_ctxt).(eval_context_global_env) in
-      let old_state := lookup String.string_dec global_env this_state in
-      elift
-        (string_of_typed_result nsctxt old_state)
-        (elift fst result).
-
-    Definition ergo_repl_eval_decl
-               (rctxt : repl_context)
-               (decl : lrergo_declaration)
-      : eresult string * repl_context :=
-      let result := ergo_eval_decl_via_calculus rctxt decl in
-      let out := ergo_string_of_result rctxt result in
-      (out, lift_repl_ctxt rctxt result).
-
-  End Interpreter.
-
-  Section InterpreterHack.
-    Definition refresh_brand_model_in_comp_ctxt {bm:brand_model} (ctxt:@compilation_context bm) :
-      eresult (ErgoCTypes.tbrand_model * @compilation_context bm) :=
-      match ctxt.(compilation_context_new_type_decls) with
-      | nil => esuccess (bm, ctxt)
-      | _ =>
-        let all_decls := ctxt.(compilation_context_type_decls) ++ ctxt.(compilation_context_new_type_decls) in
-        let new_bm := ErgoTypetoErgoCType.brand_model_of_declarations all_decls in
-        elift (fun bm =>
-                 let new_ctxt := compilation_context_update_type_declarations ctxt all_decls nil in
-                 (bm, new_ctxt)) new_bm
-      end.
-
-    Definition refresh_brand_model {bm:brand_model} (ctxt:@repl_context bm) :
-      eresult (ErgoCTypes.tbrand_model * @repl_context bm) :=
-      elift (fun xy : ErgoCTypes.tbrand_model * @compilation_context bm =>
-               let (bm, sctxt) := xy in
-               (bm, update_repl_ctxt_comp_ctxt ctxt sctxt))
-            (@refresh_brand_model_in_comp_ctxt bm ctxt.(repl_context_comp_ctxt)).
-
-  End InterpreterHack.
-  
-End ErgoDriver.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.jsx b/docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.jsx new file mode 100644 index 00000000..d0dda4cc --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Compiler.ErgoDriver.jsx @@ -0,0 +1,4132 @@ +
+ + Module ErgoSpec.Compiler.ErgoDriver + + +

Module ErgoSpec.Compiler.ErgoDriver

+
+
+
Compilation paths
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ForeignErgo + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.NamespaceContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.PrintTypedData + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.CTO.CTO + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + + ErgoSpec.Ergo.Lang.ErgoExpand + + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCTypeContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCType + + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCEvalContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCEval + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.CTOtoErgo + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoNameResolve + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgotoErgoC + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoCompContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoCInline + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoCtoErgoNNRC + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoNNRCtoJavaScript + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoNNRCtoJava + + + .
+
+ Section{" "} + + ErgoDriver + + .
+   Section{" "} + + CompilerPre + + .
+     Definition{" "} + + resolve_inputs_opt + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + )
+     :{" "} + + eresult + {" "} + (( + + + list + + {" "} + + laergo_module + {" "} + *{" "} + + + option + + {" "} + + laergo_module + + ) *{" "} + + + namespace_ctxt + + + ) := +
+       let '( + ctos, mls,{" "} + p) :={" "} + + + split_ctos_and_ergos + + {" "} + + inputs + {" "} + in +
+       let{" "} + ctxt :={" "} + + + init_namespace_ctxt + + {" "} + in +
+       let{" "} + rctxt :={" "} + + + resolve_cto_packages + + {" "} + + ctxt + {" "} + ctos in +
+       let{" "} + mls := +
+            + + eolift + {" "} + (fun ctxt => +
+                      + + elift + +
+                       ( + fun res => +
+                          ( + + fst + {" "} + + ctxt + {" "} + ++{" "} + + fst + {" "} + + res + + ,{" "} + + snd + {" "} + + res + + )) +
+                       ( + + + resolve_ergo_modules + + {" "} + ( + + snd + {" "} + + ctxt + + ) mls)) +
+                   + + rctxt + +
+       in +
+       match{" "} + p with +
+       |{" "} + + + Some + + {" "} + p => +
+          + + eolift + {" "} + (fun ctxt => +
+                    + + elift + {" "} + (fun rp => +
+                            (( + + fst + {" "} + + ctxt + + ,{" "} + + + Some + + {" "} + ( + + fst + {" "} + + rp + + )),{" "} + + snd + {" "} + + rp + + )) +
+                         ( + + + resolve_ergo_module + + {" "} + ( + + snd + {" "} + + ctxt + + ) p)
+                ){" "} + + mls + +
+       |{" "} + + + None + + {" "} + => +
+          + + elift + {" "} + (fun ctxt => (( + + fst + {" "} + + ctxt + + ,{" "} + + + None + + + ), ( + + snd + {" "} + + ctxt + + ))){" "} + + mls + +
+       end.
+
+     Definition{" "} + + resolve_inputs + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + )
+       :{" "} + + eresult + {" "} + (( + + + list + + {" "} + + laergo_module + {" "} + *{" "} + + laergo_module + + ) *{" "} + + + namespace_ctxt + + + ) := +
+        + + eolift + {" "} + (fun res => +
+                  + let '(mls,{" "} + op, ctxt) :={" "} + + res + {" "} + in +
+                  + match op{" "} + with +
+                 |{" "} + + + Some + + {" "} + p =>{" "} + + esuccess + {" "} + (mls, p,{" "} + ctxt)
+                 |{" "} + + + None + + {" "} + =>{" "} + + + no_ergo_module_error + + {" "} + + + dummy_provenance + + +
+                  + end) ( + + + resolve_inputs_opt + + {" "} + + inputs + + ). +
+        +
+     Definition{" "} + + resolve_inputs_no_main + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + )
+       :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_module + {" "} + *{" "} + + + namespace_ctxt + + + ) := +
+        + + elift + {" "} + (fun res => +
+                 + let '(mls,{" "} + op, ctxt) :={" "} + + res + {" "} + in +
+                 + match op{" "} + with +
+                |{" "} + + + Some + + {" "} + p => (mls ++ ( + p:: + + nil + + ), ctxt)
+                |{" "} + + + None + + {" "} + => (mls, ctxt) +
+                 + end) ( + + + resolve_inputs_opt + + {" "} + + inputs + + ). +
+        +
+     Definition{" "} + + just_resolved_inputs + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_module + + ) := +
+       let{" "} + resolved :={" "} + + + resolve_inputs_no_main + + {" "} + + inputs + {" "} + in +
+        + + elift + {" "} + (fun x => ( + + fst + {" "} + + x + + )){" "} + + resolved + + .
+
+     Definition{" "} + + brand_model_from_inputs + {" "} + (inputs :{" "} + + + list + + {" "} + + lrergo_input + + ) :{" "} + + eresult + {" "} + + + ErgoCTypes.tbrand_model + + {" "} + := +
+       let{" "} + resolved :={" "} + + + just_resolved_inputs + + {" "} + + inputs + {" "} + in +
+       let{" "} + type_decls :={" "} + + elift + {" "} + + + modules_get_type_decls + + {" "} + + resolved + {" "} + in +
+        + + eolift + {" "} + + + ErgoTypetoErgoCType.brand_model_of_declarations + + {" "} + + type_decls + + .
+
+   End{" "} + + + CompilerPre + + + .
+
+   Section{" "} + + CompilerCore + + .
+     Context {"{"} + bm: + + + brand_model + + + {"}"}.
+
+     Definition{" "} + + + init_compilation_context_from_inputs + + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + ) :
+        + + eresult + {" "} + (( + + + list + + {" "} + + laergo_module + {" "} + *{" "} + + laergo_module + + ) *{" "} + + + compilation_context + + + ) := +
+       let{" "} + rinputs :={" "} + + + resolve_inputs + + {" "} + + inputs + {" "} + in +
+        + + elift + +
+         ( + fun rinputs => +
+             + let '(mls,{" "} + p, ns_ctxt) :={" "} + + rinputs + {" "} + in +
+            ( + mls, p,{" "} + + + init_compilation_context + + {" "} + ns_ctxt)) +
+          + + rinputs + + .
+
+     Definition{" "} + + + init_compilation_context_from_inputs_no_main + + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + ) :
+        + + eresult + {" "} + ( + + + list + + {" "} + + laergo_module + {" "} + *{" "} + + + compilation_context + + + ) := +
+       let{" "} + rinputs :={" "} + + + resolve_inputs_no_main + + {" "} + + inputs + {" "} + in +
+        + + elift + +
+         ( + fun rinputs => +
+             + let '(mls,{" "} + ns_ctxt) :={" "} + + rinputs + {" "} + in +
+            ( + mls,{" "} + + + init_compilation_context + + {" "} + ns_ctxt)) +
+          + + rinputs + + .
+
+     Definition{" "} + + ergo_module_to_ergoc + +
+                ( + ctxt: + + + compilation_context + + + )
+                ( + lm: + + laergo_module + + ) :{" "} + + eresult + {" "} + ( + + ergoc_module + {" "} + *{" "} + + + compilation_context + + + ) := +
+       let{" "} + p :={" "} + + + ergo_expand_module + + {" "} + + lm + {" "} + in +
+       let{" "} + pc :={" "} + + eolift + {" "} + ( + + + ergo_module_to_calculus + + {" "} + + ctxt + + ){" "} + + p + {" "} + in +
+       let{" "} + pc :={" "} + + eolift + {" "} + (fun xy =>{" "} + + + ergoc_inline_module + + {" "} + ( + + snd + {" "} + + xy + + ) ( + + fst + {" "} + + xy + + )){" "} + + pc + {" "} + in +
+        + + eolift + {" "} + (fun xy :{" "} + + ergoc_module + {" "} + *{" "} + + + compilation_context + + {" "} + => +
+                  + let (mod, + ctxt) :={" "} + + xy + {" "} + in +
+                  + let nsctxt :={" "} + + ctxt + + .( + + + compilation_context_namespace + + + ) in +
+                  + let sctxt :={" "} + + ctxt + + .( + + + compilation_context_type_ctxt + + + ) in +
+                  + let pctypes :={" "} + + + ergoc_type_module + + {" "} + + nsctxt + {" "} + + sctxt + {" "} + + mod + {" "} + in +
+                  + + elift + {" "} + (fun xy :{" "} + + ergoc_module + {" "} + *{" "} + + + type_context + + {" "} + => +
+                           + let (mod,{" "} + sctxt') :={" "} + + xy + {" "} + in +
+                          ( + + mod + + ,{" "} + + + compilation_context_update_type_ctxt + + {" "} + + ctxt + {" "} + sctxt')){" "} + + pctypes + +
+              ){" "} + + pc + + .
+
+     Definition{" "} + + ergo_modules_to_ergoc + +
+                ( + ctxt: + + + compilation_context + + + )
+                ( + lm: + + + list + + {" "} + + laergo_module + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + ergoc_module + {" "} + *{" "} + + + compilation_context + + + ) := +
+        + + + elift_context_fold_left + + +
+          + + + ergo_module_to_ergoc + + +
+          + + lm + +
+          + + ctxt + + .
+
+     Definition{" "} + + ergo_declaration_to_ergoc + +
+                ( + ctxt: + + + compilation_context + + + )
+                ( + ld: + + + lrergo_declaration + + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) := +
+       let{" "} + ns_ctxt :={" "} + + + namespace_ctxt_of_compilation_context + + {" "} + + ctxt + {" "} + in +
+       let{" "} + am :={" "} + + + resolve_ergo_declaration + + {" "} + + ns_ctxt + {" "} + + ld + {" "} + in +
+        + + eolift + {" "} + (fun amc => +
+                  + let ctxt :={" "} + + + compilation_context_update_namespace + + {" "} + + ctxt + {" "} + ( + + snd + {" "} + + amc + + ) in +
+                  + let p :={" "} + + + ergo_expand_declaration + + {" "} + ( + + fst + {" "} + + amc + + ) in +
+                  + + eolift + {" "} + ( + + + declaration_to_calculus + + {" "} + + ctxt + + ){" "} + + p + + )
+               + + am + + .
+
+     Definition{" "} + + + ergo_declaration_to_ergoc_inlined + + +
+                ( + sctxt :{" "} + + + compilation_context + + + )
+                ( + decl :{" "} + + + lrergo_declaration + + + )
+       :{" "} + + eresult + {" "} + ( + + + list + + {" "} + ( + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + ergoc_declaration + + + ) *{" "} + + + compilation_context + + + ) := +
+       let{" "} + ec :={" "} + + + ergo_declaration_to_ergoc + + {" "} + + sctxt + {" "} + + decl + {" "} + in +
+       let{" "} + inlined :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) := +
+            + + eolift + +
+             ( + fun (x :{" "} + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) => +
+                 + let (decls,{" "} + ctxt) :={" "} + + x + {" "} + in +
+                 + + + elift_context_fold_left + + +
+                   + + + ergoc_inline_declaration + + +
+                   + + decls + +
+                   + + ctxt + + )
+              + + ec + +
+       in +
+        + + eolift + {" "} + (fun xy :{" "} + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + {" "} + => +
+                  + + + elift_context_fold_left + + +
+                   ( + fun (sctxt :{" "} + + + compilation_context + + + ) (decl :{" "} + + + ergoc_declaration + + + ) => +
+                       + let nsctxt :={" "} + + sctxt + + .( + + + compilation_context_namespace + + + ) in +
+                       + match{" "} + + + ergoc_type_decl + + {" "} + + nsctxt + {" "} + + sctxt + + .( + + + compilation_context_type_ctxt + + + ){" "} + + decl + {" "} + with +
+                      |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+                      |{" "} + + + Success + + {" "} + _ _ ( + typ, tctxt') => +
+                         + + esuccess + {" "} + ((typ, + + decl + + ),{" "} + + + compilation_context_update_type_ctxt + + {" "} + + sctxt + {" "} + tctxt') +
+                       + end)
+                   ( + + fst + {" "} + + xy + + )
+                   ( + + snd + {" "} + + xy + + )
+              ){" "} + + inlined + + .
+          +
+     Definition{" "} + + ergo_module_to_javascript + +
+                ( + ctxt: + + + compilation_context + + + )
+                ( + p: + + laergo_module + + ) :{" "} + + eresult + {" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+       let{" "} + pc :={" "} + + + ergo_module_to_ergoc + + {" "} + + ctxt + {" "} + + p + {" "} + in +
+       let{" "} + pn :={" "} + + eolift + {" "} + (fun xy =>{" "} + + + ergoc_module_to_nnrc + + {" "} + ( + + fst + {" "} + + xy + + )){" "} + + pc + {" "} + in +
+        + + elift + {" "} + + + nnrc_module_to_javascript_top + + {" "} + + pn + + .
+
+     Definition{" "} + + + compilation_context_from_inputs + + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + ) :{" "} + + eresult + {" "} + ( + + laergo_module + {" "} + *{" "} + + + compilation_context + + + ) := +
+       let{" "} + cinit :={" "} + + + init_compilation_context_from_inputs + + {" "} + + inputs + {" "} + in +
+        + + eolift + {" "} + (fun init => +
+                  + let '(mls,{" "} + p, ctxt) :={" "} + + init + {" "} + in +
+                  + + elift + {" "} + (fun r => ( + p,{" "} + + snd + {" "} + + r + + )) +
+                       ( + + + ergo_modules_to_ergoc + + {" "} + ctxt mls)) +
+               + + cinit + + .
+      +
+     Definition{" "} + + + compilation_context_from_inputs_no_main + + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + ) :{" "} + + eresult + {" "} + + + compilation_context + + {" "} + := +
+       let{" "} + cinit :={" "} + + + init_compilation_context_from_inputs_no_main + + {" "} + + inputs + {" "} + in +
+        + + eolift + {" "} + (fun init => +
+                  + let '(mls,{" "} + ctxt) :={" "} + + init + {" "} + in +
+                  + + elift + {" "} + + snd + +
+                       ( + + + ergo_modules_to_ergoc + + {" "} + ctxt mls)) +
+               + + cinit + + .
+      +
+     Definition{" "} + + ergo_module_to_java + +
+                ( + ctxt: + + + compilation_context + + + )
+                ( + p: + + laergo_module + + ) :{" "} + + eresult + {" "} + + + ErgoCodeGen.java + + {" "} + := +
+       let{" "} + pc :={" "} + + + ergo_module_to_ergoc + + {" "} + + ctxt + {" "} + + p + {" "} + in +
+       let{" "} + pn :={" "} + + eolift + {" "} + (fun xy =>{" "} + + + ergoc_module_to_nnrc + + {" "} + ( + + fst + {" "} + + xy + + )){" "} + + pc + {" "} + in +
+        + + elift + {" "} + + + nnrc_module_to_java_top + + {" "} + + pn + + .
+
+   End{" "} + + + CompilerCore + + + .
+
+   Section{" "} + + CompilerTop + + .
+
+     Definition{" "} + + ergo_module_to_javascript_top + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + ) :{" "} + + eresult + {" "} + + result_file + {" "} + := +
+       let{" "} + bm :{" "} + + eresult + {" "} + + + brand_model + + {" "} + :={" "} + + + brand_model_from_inputs + + {" "} + + inputs + {" "} + in +
+        + + eolift + {" "} + (fun bm : + + + brand_model + + + => +
+                  + let cinit :={" "} + + + compilation_context_from_inputs + + {" "} + + inputs + {" "} + in +
+                  + + eolift + {" "} + (fun init :{" "} + + laergo_module + {" "} + *{" "} + + + compilation_context + + {" "} + => +
+                            + let (p,{" "} + ctxt) :={" "} + + init + {" "} + in +
+                            + let res :={" "} + + + ergo_module_to_javascript + + {" "} + + ctxt + {" "} + + p + {" "} + in +
+                            + + elift + {" "} + ( + + mkResultFile + {" "} + + p + + .( + + module_file + + )){" "} + + res + + )
+                         + + cinit + + ){" "} + + bm + + .
+
+     Definition{" "} + + ergo_module_to_java_top + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + ) :{" "} + + eresult + {" "} + + result_file + {" "} + := +
+       let{" "} + bm :{" "} + + eresult + {" "} + + + brand_model + + {" "} + :={" "} + + + brand_model_from_inputs + + {" "} + + inputs + {" "} + in +
+        + + eolift + {" "} + (fun bm : + + + brand_model + + + => +
+                  + let cinit :={" "} + + + compilation_context_from_inputs + + {" "} + + inputs + {" "} + in +
+                  + + eolift + {" "} + (fun init :{" "} + + laergo_module + {" "} + *{" "} + + + compilation_context + + {" "} + => +
+                            + let (p,{" "} + ctxt) :={" "} + + init + {" "} + in +
+                            + let res :={" "} + + + ergo_module_to_java + + {" "} + + ctxt + {" "} + + p + {" "} + in +
+                            + + elift + {" "} + ( + + mkResultFile + {" "} + + p + + .( + + module_file + + )){" "} + + res + + )
+                         + + cinit + + ){" "} + + bm + + .
+
+     Definition{" "} + + + ergo_module_to_javascript_cicero_top + + +
+                ( + inputs: + + + list + + {" "} + + lrergo_input + + ) :{" "} + + eresult + {" "} + + result_file + {" "} + := +
+       let{" "} + bm :{" "} + + eresult + {" "} + + + brand_model + + {" "} + :={" "} + + + brand_model_from_inputs + + {" "} + + inputs + {" "} + in +
+        + + eolift + +
+         ( + fun bm :{" "} + + + brand_model + + + => +
+             + let ctxt :={" "} + + + compilation_context_from_inputs + + {" "} + + inputs + {" "} + in +
+             + + eolift + +
+              ( + fun init :{" "} + + laergo_module + {" "} + *{" "} + + + compilation_context + + {" "} + => +
+                  + let (p,{" "} + ctxt) :={" "} + + init + {" "} + in +
+                  + let res := +
+                      + let ec :={" "} + + + lookup_single_contract + + {" "} + + p + {" "} + in +
+                      + + eolift + +
+                       ( + fun c :{" "} + + local_name + {" "} + *{" "} + + + ergo_contract + + {" "} + => +
+                           + + let + contract_name := ( + + fst + {" "} + + c + + ) in
+                           + let sigs :={" "} + + + lookup_contract_signatures + + {" "} + ( + + snd + {" "} + + c + + ) in +
+                           + let pc :={" "} + + + ergo_module_to_ergoc + + {" "} + + ctxt + {" "} + + p + {" "} + in +
+                           + let pn :={" "} + + eolift + {" "} + (fun xy =>{" "} + + + ergoc_module_to_nnrc + + {" "} + ( + + fst + {" "} + + xy + + )){" "} + + pc + {" "} + in +
+                           + + elift + {" "} + ( + + + ergoc_module_to_javascript_cicero + + {" "} + + + contract_name + + {" "} + ( + + snd + {" "} + + c + + ).( + + contract_state + + ){" "} + + sigs + + ){" "} + + pn + + )
+                        + + ec + +
+                  + in +
+                  + + elift + {" "} + ( + + mkResultFile + {" "} + + p + + .( + + module_file + + )){" "} + + res + + )
+               + + ctxt + + ){" "} + + bm + + .
+      +
+   End{" "} + + + CompilerTop + + + .
+
+   Section{" "} + + Interpreter + + .
+     Context {"{"} + bm: + + + brand_model + + + {"}"}.
+
+     Record{" "} + + repl_context + {" "} + := +
+        + + mkREPLCtxt + {" "} + {"{"} +
+            + + repl_context_eval_ctxt + {" "} + :{" "} + + + eval_context + + + ;
+            + + repl_context_comp_ctxt + {" "} + :{" "} + + + compilation_context + + + ;
+         {"}"}.
+
+     Definition{" "} + + init_repl_context + +
+                ( + inputs :{" "} + + + list + + {" "} + + lrergo_input + + ) :{" "} + + eresult + {" "} + + repl_context + {" "} + := +
+        + + elift + {" "} + ( + + mkREPLCtxt + {" "} + + + ErgoCEvalContext.empty_eval_context + + + )
+             ( + + eolift + {" "} + ( + + + set_namespace_in_compilation_context + + +
+                        " + org.accordproject.ergotop"% + string)
+                     ( + + + compilation_context_from_inputs_no_main + + {" "} + + inputs + + )). +
+
+     Definition{" "} + + update_repl_ctxt_comp_ctxt + +
+                ( + rctxt:{" "} + + repl_context + + )
+                ( + sctxt:{" "} + + + compilation_context + + + ) :{" "} + + repl_context + {" "} + := +
+        + + mkREPLCtxt + +
+          + + rctxt + + .( + + + repl_context_eval_ctxt + + + )
+          + + sctxt + + .
+      +
+     Definition{" "} + + update_repl_ctxt_type_ctxt + +
+                ( + rctxt:{" "} + + repl_context + + )
+                ( + nctxt:{" "} + + + type_context + + + ) :{" "} + + repl_context + {" "} + := +
+        + + + update_repl_ctxt_comp_ctxt + + +
+          + + rctxt + +
+         ( + + + compilation_context_update_type_ctxt + + {" "} + + rctxt + + .( + + + repl_context_comp_ctxt + + + ){" "} + + nctxt + + ). +
+      +
+     Definition{" "} + + update_repl_ctxt_eval_ctxt + +
+                ( + rctxt:{" "} + + repl_context + + )
+                ( + nctxt:{" "} + + + eval_context + + + ) :{" "} + + repl_context + {" "} + := +
+        + + mkREPLCtxt + +
+          + + nctxt + +
+          + + rctxt + + .( + + + repl_context_comp_ctxt + + + ). +
+
+     Definition{" "} + + lift_repl_ctxt + +
+                ( + orig_ctxt :{" "} + + repl_context + + )
+                ( + result :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + option + + {" "} + + ergo_data + {" "} + *{" "} + + repl_context + + )) +
+                :{" "} + + repl_context + +
+       := +
+          + + elift_both + +
+           ( + fun s =>{" "} + + snd + {" "} + + s + + )
+           ( + fun e =>{" "} + + orig_ctxt + + )
+            + + result + + .
+
+     Definition{" "} + + ergoc_repl_eval_declaration + +
+                ( + ctxt: + + repl_context + + ) (typed_decl: + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + ergoc_declaration + + + )
+       :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + option + + {" "} + + ergo_data + {" "} + *{" "} + + repl_context + + ) := +
+       let{" "} + nsctxt :={" "} + + ctxt + + .( + + + repl_context_comp_ctxt + + + ).( + + + compilation_context_namespace + + + ) in +
+       let ( + typ, decl) :={" "} + + typed_decl + {" "} + in +
+       match{" "} + + + ergoc_eval_decl + + {" "} + + ctxt + + .( + + + repl_context_eval_ctxt + + + ){" "} + + decl + {" "} + with +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       |{" "} + + + Success + + {" "} + _ _ ( + dctxt',{" "} + + + None + + + ) =>{" "} + + esuccess + {" "} + ( + + typ + + ,{" "} + + + None + + + ,{" "} + + + update_repl_ctxt_eval_ctxt + + {" "} + + ctxt + {" "} + dctxt') +
+       |{" "} + + + Success + + {" "} + _ _ ( + dctxt',{" "} + + + Some + + {" "} + out) => +
+          + match{" "} + + + unpack_output + + {" "} + out with +
+         |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + ( + + typ + + ,{" "} + + + Some + + {" "} + out,{" "} + + + update_repl_ctxt_eval_ctxt + + {" "} + + ctxt + {" "} + dctxt') +
+         |{" "} + + + Some + + {" "} + (_, _,{" "} + state) => +
+            + let newctxt := +
+                + match{" "} + + typ + {" "} + with
+               |{" "} + + + None + + {" "} + => +
+                  + + esuccess + {" "} + ( + + + update_repl_ctxt_eval_ctxt + + {" "} + + ctxt + {" "} + ( + + + eval_context_update_global_env + + {" "} + dctxt'{" "} + + this_state + {" "} + state)) +
+               |{" "} + + + Some + + {" "} + typ => +
+                  + + elift + +
+                   ( + fun ty => +
+                       + let '(_,{" "} + _, statety) :={" "} + + ty + {" "} + in +
+                       + let ctxt1 := +
+                           + + + update_repl_ctxt_eval_ctxt + + {" "} + + ctxt + {" "} + ( + + + eval_context_update_global_env + + {" "} + dctxt'{" "} + + this_state + {" "} + state)
+                       + in +
+                       + let sctxt1 :={" "} + + ctxt1 + + .( + + + repl_context_comp_ctxt + + + ).( + + + compilation_context_type_ctxt + + + ) in +
+                       + + + update_repl_ctxt_type_ctxt + + {" "} + + ctxt1 + {" "} + ( + + + type_context_update_global_env + + {" "} + + sctxt1 + {" "} + + this_state + {" "} + statety)) +
+                   ( + + + unpack_success_type + + {" "} + + nsctxt + {" "} + + typ + + )
+                + end +
+            + in +
+            + + elift + {" "} + (fun ctxt => ( + + typ + + ,{" "} + + + Some + + {" "} + out,{" "} + + ctxt + + )){" "} + + newctxt + +
+          + end +
+       end.
+
+     Definition{" "} + + ergoc_repl_eval_declarations + +
+                ( + ctxt: + + repl_context + + ) (decls: + + + list + + {" "} + ( + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + ergoc_declaration + + + )) +
+       :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + option + + {" "} + + ergo_data + {" "} + *{" "} + + repl_context + + ) := +
+        + + elift + +
+         ( + fun xy => +
+            ( + + + last_some_pair + + {" "} + ( + + fst + {" "} + + xy + + ),{" "} + + snd + {" "} + + xy + + )) +
+         ( + + + elift_context_fold_left + + +
+             + + + ergoc_repl_eval_declaration + + +
+             + + decls + +
+             + + ctxt + + ). +
+
+     Definition{" "} + + ergo_eval_decl_via_calculus + +
+                ( + ctxt :{" "} + + repl_context + + )
+                ( + decl :{" "} + + + lrergo_declaration + + + )
+       :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + option + + {" "} + + ergo_data + {" "} + *{" "} + + repl_context + + ) := +
+       match{" "} + + + ergo_declaration_to_ergoc_inlined + + {" "} + + ctxt + + .( + + + repl_context_comp_ctxt + + + ){" "} + + decl + {" "} + with +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       |{" "} + + + Success + + {" "} + _ _ ( + decls, sctxt') => +
+          + let rctxt' :={" "} + + + update_repl_ctxt_comp_ctxt + + {" "} + + ctxt + {" "} + sctxt' in +
+          + + + ergoc_repl_eval_declarations + + {" "} + rctxt' decls +
+       end.
+
+     Definition{" "} + + ergo_string_of_result + +
+                ( + rctxt :{" "} + + repl_context + + )
+                ( + result :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + option + + {" "} + + ergo_data + {" "} + *{" "} + + repl_context + + )) +
+       :{" "} + + eresult + {" "} + + + string + + {" "} + := +
+       let{" "} + nsctxt :={" "} + + rctxt + + .( + + + repl_context_comp_ctxt + + + ).( + + + compilation_context_namespace + + + ) in +
+       let{" "} + global_env :={" "} + + rctxt + + .( + + + repl_context_eval_ctxt + + + ).( + + + eval_context_global_env + + + ) in +
+       let{" "} + old_state :={" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + + global_env + {" "} + + this_state + {" "} + in +
+        + + elift + +
+         ( + + + string_of_typed_result + + {" "} + + nsctxt + {" "} + + old_state + + )
+         ( + + elift + {" "} + + fst + {" "} + + result + + ). +
+
+     Definition{" "} + + ergo_repl_eval_decl + +
+                ( + rctxt :{" "} + + repl_context + + )
+                ( + decl :{" "} + + + lrergo_declaration + + + )
+       :{" "} + + eresult + {" "} + + + string + + {" "} + *{" "} + + repl_context + {" "} + := +
+       let{" "} + result :={" "} + + + ergo_eval_decl_via_calculus + + {" "} + + rctxt + {" "} + + decl + {" "} + in +
+       let{" "} + out :={" "} + + + ergo_string_of_result + + {" "} + + rctxt + {" "} + + result + {" "} + in +
+       ( + + out + + ,{" "} + + + lift_repl_ctxt + + {" "} + + rctxt + {" "} + + result + + ). +
+
+   End{" "} + + + Interpreter + + + .
+
+   Section{" "} + + InterpreterHack + + .
+     Definition{" "} + + + refresh_brand_model_in_comp_ctxt + + {" "} + {"{"} + bm: + + + brand_model + + + {"}"} (ctxt:@ + + + compilation_context + + {" "} + + bm + + ) :
+        + + eresult + {" "} + ( + + + ErgoCTypes.tbrand_model + + {" "} + * @ + + + compilation_context + + {" "} + + bm + + ) := +
+       match{" "} + + ctxt + + .( + + + compilation_context_new_type_decls + + + ) with +
+       |{" "} + + nil + {" "} + =>{" "} + + esuccess + {" "} + ( + + bm + + ,{" "} + + ctxt + + )
+       | _ => +
+          + let all_decls :={" "} + + ctxt + + .( + + + compilation_context_type_decls + + + ) ++{" "} + + ctxt + + .( + + + compilation_context_new_type_decls + + + ) in +
+          + let new_bm :={" "} + + + ErgoTypetoErgoCType.brand_model_of_declarations + + {" "} + + all_decls + {" "} + in +
+          + + elift + {" "} + (fun bm => +
+                   + let new_ctxt :={" "} + + + compilation_context_update_type_declarations + + {" "} + + ctxt + {" "} + + all_decls + {" "} + + nil + {" "} + in +
+                  ( + + bm + + ,{" "} + + new_ctxt + + )){" "} + + new_bm + +
+       end.
+
+     Definition{" "} + + refresh_brand_model + {" "} + {"{"} + bm: + + + brand_model + + + {"}"} (ctxt:@ + + repl_context + {" "} + + bm + + ) :
+        + + eresult + {" "} + ( + + + ErgoCTypes.tbrand_model + + {" "} + * @ + + repl_context + {" "} + + bm + + ) := +
+        + + elift + {" "} + (fun xy :{" "} + + + ErgoCTypes.tbrand_model + + {" "} + * @ + + + compilation_context + + {" "} + + bm + {" "} + => +
+                 + let (bm,{" "} + sctxt) :={" "} + + xy + {" "} + in +
+                ( + + bm + + ,{" "} + + + update_repl_ctxt_comp_ctxt + + {" "} + + ctxt + {" "} + + sctxt + + )) +
+             (@ + + + refresh_brand_model_in_comp_ctxt + + {" "} + + bm + {" "} + + ctxt + + .( + + + repl_context_comp_ctxt + + + )). +
+
+   End{" "} + + + InterpreterHack + + + .
+    +
+ End{" "} + + ErgoDriver + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.html b/docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.html deleted file mode 100644 index 5b17545e..00000000 --- a/docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - -Module ErgoSpec.Ergo.Lang.Ergo - - - - - - -

Module ErgoSpec.Ergo.Lang.Ergo

-
-
-
Ergo is a language for expressing contract logic.
-
-

Abstract Syntax

-
-Require Import String.
-Require Import List.
-Require Import EquivDec.
-
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Common.CTO.CTO.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section Ergo.
-  Section Ast.
-    Context {A:Set}.
-    Context {N:Set}.
-  
-
Expression
-
-    Inductive ergo_expr :=
-    | EThisContract : A -> ergo_expr (* this contract *)
-    | EThisClause : A -> ergo_expr (* this clause *)
-    | EThisState : A -> ergo_expr (* this state *)
-    | EVar : A -> string -> ergo_expr (* variable *)
-    | EConst : A -> ErgoData.data -> ergo_expr (* constant *)
-    | ENone : A -> ergo_expr (* none *)
-    | ESome : A -> ergo_expr -> ergo_expr (* some(e) *)
-    | EArray : A -> list ergo_expr -> ergo_expr (* array constructor *)
-    | EUnaryOp : A -> ErgoOps.Unary.op -> ergo_expr -> ergo_expr (* unary operator *)
-    | EBinaryOp : A -> ErgoOps.Binary.op -> ergo_expr -> ergo_expr -> ergo_expr (* binary operator *)
-    | EIf : A -> ergo_expr -> ergo_expr -> ergo_expr -> ergo_expr (* conditional *)
-    | ELet : A -> string -> option (@ergo_type A N) -> ergo_expr -> ergo_expr -> ergo_expr (* local variable binding *)
-    | ERecord : A -> list (string * ergo_expr) -> ergo_expr (* create a new record *)
-    | ENew : A -> N -> list (string * ergo_expr) -> ergo_expr (* create a new concept/object *)
-    | ECallFun : A -> string -> list ergo_expr -> ergo_expr (* function call *)
-    | ECallFunInGroup : A -> N -> string -> list ergo_expr -> ergo_expr (* call function in group *)
-    | EMatch : A -> ergo_expr -> list (@ergo_pattern A N * ergo_expr) -> ergo_expr -> ergo_expr (* match-case *)
-    | EForeach : A -> list (string * ergo_expr)
-                 -> option ergo_expr -> ergo_expr -> ergo_expr (* foreach with optional where *)
-    .
-
-    Definition expr_annot (e:ergo_expr) : A :=
-      match e with
-      | EThisContract a => a
-      | EThisClause a => a
-      | EThisState a => a
-      | EVar a _ => a
-      | EConst a _ => a
-      | ENone a => a
-      | ESome a _ => a
-      | EArray a _ => a
-      | EUnaryOp a _ _ => a
-      | EBinaryOp a _ _ _ => a
-      | EIf a _ _ _ => a
-      | ELet a _ _ _ _ => a
-      | ERecord a _ => a
-      | ENew a _ _ => a
-      | ECallFun a _ _ => a
-      | ECallFunInGroup a _ _ _ => a
-      | EMatch a _ _ _ => a
-      | EForeach a _ _ _ => a
-      end.
-    
-
Statement
-    Inductive ergo_stmt :=
-    | SReturn : A -> ergo_expr -> ergo_stmt
-    | SFunReturn : A -> ergo_expr -> ergo_stmt
-    | SThrow : A -> ergo_expr -> ergo_stmt
-    | SCallClause : A -> ergo_expr -> string -> list ergo_expr -> ergo_stmt (* clause call *)
-    | SSetState : A -> ergo_expr -> ergo_stmt -> ergo_stmt
-    | SEmit : A -> ergo_expr -> ergo_stmt -> ergo_stmt
-    | SLet : A -> string -> option (@ergo_type A N) -> ergo_expr -> ergo_stmt -> ergo_stmt (* local variable *)
-    | SIf : A -> ergo_expr -> ergo_stmt -> ergo_stmt -> ergo_stmt
-    | SEnforce : A -> ergo_expr -> option ergo_stmt -> ergo_stmt -> ergo_stmt (* enforce *)
-    | SMatch : A -> ergo_expr -> (list (@ergo_pattern A N * ergo_stmt)) -> ergo_stmt -> ergo_stmt
-    .
-
-    Definition stmt_annot (e:ergo_stmt) : A :=
-      match e with
-      | SReturn a _ => a
-      | SFunReturn a _ => a
-      | SThrow a _ => a
-      | SCallClause a _ _ _ => a
-      | SSetState a _ _ => a
-      | SEmit a _ _ => a
-      | SLet a _ _ _ _ => a
-      | SIf a _ _ _ => a
-      | SEnforce a _ _ _ => a
-      | SMatch a _ _ _ => a
-      end.
-    
-
Function
-    Record ergo_function :=
-      mkFunc
-        { function_annot : A;
-          function_sig : @ergo_type_signature A N;
-          function_body : option ergo_expr; }.
-
-    Definition body_annot (f:ergo_function) : A :=
-      match f.(function_body) with
-      | None => f.(function_annot)
-      | Some e => expr_annot e
-      end.
-    
-
Clause
-    Record ergo_clause :=
-      mkClause
-        { clause_annot : A;
-          clause_name : local_name;
-          clause_sig : @ergo_type_signature A N;
-          clause_body : option ergo_stmt; }.
-
-
Contract
-    Record ergo_contract :=
-      mkContract
-        { contract_annot : A;
-          contract_template : (@ergo_type A N);
-          contract_state : option (@ergo_type A N);
-          contract_clauses : list ergo_clause; }.
-
-
Declaration
-    Inductive ergo_declaration :=
-    | DNamespace : A -> namespace_name -> ergo_declaration
-    | DImport : A -> @import_decl A -> ergo_declaration
-    | DType : A -> @ergo_type_declaration A N -> ergo_declaration
-    | DStmt : A -> ergo_stmt -> ergo_declaration
-    | DConstant : A -> local_name -> option (@ergo_type A N) -> ergo_expr -> ergo_declaration
-    | DFunc : A -> local_name -> ergo_function -> ergo_declaration
-    | DContract : A -> local_name -> ergo_contract -> ergo_declaration
-    | DSetContract : A -> N -> ergo_expr -> ergo_declaration
-    .
-    
-    Definition decl_annot (d:ergo_declaration) : A :=
-      match d with
-      | DNamespace a _ => a
-      | DImport a _ => a
-      | DType a _ => a
-      | DStmt a _ => a
-      | DConstant a _ _ _ => a
-      | DFunc a _ _ => a
-      | DContract a _ _ => a
-      | DSetContract a _ _ => a
-      end.
-
-
Module.
-    Record ergo_module :=
-      mkModule
-        { module_annot : A;
-          module_file : string;
-          module_namespace : namespace_name;
-          module_declarations : list ergo_declaration; }.
-
-    Inductive ergo_input :=
-    | InputErgo : ergo_module -> ergo_input
-    | InputCTO : @cto_package A N -> ergo_input.
-
-  End Ast.
-
-  Definition rergo_expr {A} := @ergo_expr A relative_name.
-  Definition rergo_stmt {A} := @ergo_stmt A relative_name.
-  Definition rergo_function {A} := @ergo_function A relative_name.
-  Definition rergo_clause {A} := @ergo_clause A relative_name.
-  Definition rergo_contract {A} := @ergo_contract A relative_name.
-  Definition rergo_declaration {A} := @ergo_declaration A relative_name.
-  Definition rergo_module {A} := @ergo_module A relative_name.
-  Definition rergo_input {A} := @ergo_input A relative_name.
-
-  Definition aergo_expr {A} := @ergo_expr A absolute_name.
-  Definition aergo_stmt {A} := @ergo_stmt A absolute_name.
-  Definition arergo_function {A} := @ergo_function A absolute_name.
-  Definition arergo_clause {A} := @ergo_clause A absolute_name.
-  Definition arergo_contract {A} := @ergo_contract A absolute_name.
-  Definition arergo_declaration {A} := @ergo_declaration A absolute_name.
-  Definition arergo_module {A} := @ergo_module A absolute_name.
-
-  Definition lrergo_expr := @ergo_expr provenance relative_name.
-  Definition lrergo_stmt := @ergo_stmt provenance relative_name.
-  Definition lrergo_function := @ergo_function provenance relative_name.
-  Definition lrergo_clause := @ergo_clause provenance relative_name.
-  Definition lrergo_contract := @ergo_contract provenance relative_name.
-  Definition lrergo_declaration := @ergo_declaration provenance relative_name.
-  Definition lrergo_module := @ergo_module provenance relative_name.
-  Definition lrergo_input := @ergo_input provenance relative_name.
-
-  Definition laergo_expr := @ergo_expr provenance absolute_name.
-  Definition laergo_stmt := @ergo_stmt provenance absolute_name.
-  Definition laergo_function := @ergo_function provenance absolute_name.
-  Definition laergo_clause := @ergo_clause provenance absolute_name.
-  Definition laergo_contract := @ergo_contract provenance absolute_name.
-  Definition laergo_declaration := @ergo_declaration provenance absolute_name.
-  Definition laergo_module := @ergo_module provenance absolute_name.
-
-  Section Lookup.
-    Fixpoint lookup_clauses_signatures (dl:list laergo_clause) : list (local_name * ergo_type_signature) :=
-      match dl with
-      | nil => nil
-      | cl :: dl' =>
-        (cl.(clause_name),cl.(clause_sig)) :: lookup_clauses_signatures dl'
-      end.
-      
-    Definition lookup_contract_signatures (c:ergo_contract) : list (local_name * ergo_type_signature) :=
-      lookup_clauses_signatures c.(contract_clauses).
-
-    Definition contract_of_declaration (d:laergo_declaration) : option (absolute_name * laergo_contract) :=
-      match d with
-      | DContract _ cn c => Some (cn, c)
-      | _ => None
-      end.
-
-    Definition lookup_contracts_in_declarations (dl:list laergo_declaration)
-      : list (absolute_name * laergo_contract) :=
-      filter_some contract_of_declaration dl.
-
-    Definition lookup_single_contract_in_declarations
-               (prov:provenance) (dl:list laergo_declaration) : eresult (absolute_name * laergo_contract) :=
-      match lookup_contracts_in_declarations dl with
-      | nil => should_have_one_contract_error prov
-      | c :: nil => esuccess c
-      | _ :: _ => should_have_one_contract_error prov
-      end.
-
-    Definition lookup_single_contract (p:laergo_module) : eresult (absolute_name * laergo_contract) :=
-      lookup_single_contract_in_declarations p.(module_annot) p.(module_declarations).
-
-    Definition lookup_single_contract_with_state (p:laergo_module)
-      : eresult ((absolute_name * laergo_contract) * string) :=
-      eolift (fun ec =>
-                elift (fun ecstate =>
-                         (ec, ecstate)) (lift_default_state_name (snd ec).(contract_state)))
-             (lookup_single_contract_in_declarations p.(module_annot) p.(module_declarations)).
-  End Lookup.
-
-  Section TypeDeclarations.
-    Fixpoint get_type_decls (decls:list laergo_declaration) : list laergo_type_declaration :=
-      match decls with
-      | nil => nil
-      | DType _ td :: rest => td :: (get_type_decls rest)
-      | _ :: rest => get_type_decls rest
-      end.
-
-    Definition module_get_type_decls (m:laergo_module) : list laergo_type_declaration :=
-      get_type_decls m.(module_declarations).
-
-    Definition modules_get_type_decls (m:list laergo_module) : list laergo_type_declaration :=
-      List.concat (List.map module_get_type_decls m).
-  End TypeDeclarations.
-  
-End Ergo.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.jsx b/docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.jsx new file mode 100644 index 00000000..d5d06d90 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Ergo.Lang.Ergo.jsx @@ -0,0 +1,2887 @@ +
+ + Module ErgoSpec.Ergo.Lang.Ergo + + +

Module ErgoSpec.Ergo.Lang.Ergo

+
+
+
+ Ergo is a language for expressing contract logic.{" "} +
+
+

Abstract Syntax

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + EquivDec + + + .
+
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + ErgoSpec.Common.CTO.CTO + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+
+ Section{" "} + + Ergo + + .
+   Section{" "} + + Ast + + .
+     Context {"{"} + A:Set + {"}"}.
+     Context {"{"} + N:Set + {"}"}.
+    +
+
Expression
+
+     Inductive{" "} + + ergo_expr + {" "} + := +
+     |{" "} + + EThisContract + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + (* this contract *) +
+     |{" "} + + EThisClause + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + (* this clause *) +
+     |{" "} + + EThisState + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + (* this state *) +
+     |{" "} + + EVar + {" "} + :{" "} + + A + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + ergo_expr + {" "} + (* variable *) +
+     |{" "} + + EConst + {" "} + :{" "} + + A + {" "} + ->{" "} + + + ErgoData.data + + {" "} + ->{" "} + + ergo_expr + {" "} + (* constant *) +
+     |{" "} + + ENone + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + (* none *) +
+     |{" "} + + ESome + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* some(e) *) +
+     |{" "} + + EArray + {" "} + :{" "} + + A + {" "} + ->{" "} + + + list + + {" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* array constructor *)
+     |{" "} + + EUnaryOp + {" "} + :{" "} + + A + {" "} + ->{" "} + + + ErgoOps.Unary.op + + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* unary operator *) +
+     |{" "} + + EBinaryOp + {" "} + :{" "} + + A + {" "} + ->{" "} + + + ErgoOps.Binary.op + + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* binary operator *) +
+     |{" "} + + EIf + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* conditional *) +
+     |{" "} + + ELet + {" "} + :{" "} + + A + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + + option + + {" "} + (@ + + ergo_type + {" "} + + A + {" "} + + N + + ) ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* local variable binding *) +
+     |{" "} + + ERecord + {" "} + :{" "} + + A + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_expr + + ) ->{" "} + + ergo_expr + {" "} + (* create a new record *) +
+     |{" "} + + ENew + {" "} + :{" "} + + A + {" "} + ->{" "} + + N + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_expr + + ) ->{" "} + + ergo_expr + {" "} + (* create a new concept/object *) +
+     |{" "} + + ECallFun + {" "} + :{" "} + + A + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + + list + + {" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* function call *) +
+     |{" "} + + ECallFunInGroup + {" "} + :{" "} + + A + {" "} + ->{" "} + + N + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + + list + + {" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* call function in group *) +
+     |{" "} + + EMatch + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + + list + + {" "} + (@ + + ergo_pattern + {" "} + + A + {" "} + + N + {" "} + *{" "} + + ergo_expr + + ) ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* match-case *) +
+     |{" "} + + EForeach + {" "} + :{" "} + + A + {" "} + ->{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_expr + + )
+                  ->{" "} + + + option + + {" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_expr + {" "} + (* foreach with optional where *) +
+     . +
+
+     Definition{" "} + + expr_annot + {" "} + (e: + + ergo_expr + + ) :{" "} + + A + {" "} + := +
+       match{" "} + + e + {" "} + with +
+       |{" "} + + EThisContract + {" "} + a => a +
+       |{" "} + + EThisClause + {" "} + a => a +
+       |{" "} + + EThisState + {" "} + a => a +
+       |{" "} + + EVar + {" "} + a _ =>{" "} + a +
+       |{" "} + + EConst + {" "} + a _ =>{" "} + a +
+       |{" "} + + ENone + {" "} + a => a +
+       |{" "} + + ESome + {" "} + a _ =>{" "} + a +
+       |{" "} + + EArray + {" "} + a _ =>{" "} + a +
+       |{" "} + + EUnaryOp + {" "} + a _{" "} + _ => a +
+       |{" "} + + EBinaryOp + {" "} + a _{" "} + _ _ =>{" "} + a +
+       |{" "} + + EIf + {" "} + a _{" "} + _ _ =>{" "} + a +
+       |{" "} + + ELet + {" "} + a _{" "} + _ _{" "} + _ => a +
+       |{" "} + + ERecord + {" "} + a _ =>{" "} + a +
+       |{" "} + + ENew + {" "} + a _{" "} + _ => a +
+       |{" "} + + ECallFun + {" "} + a _{" "} + _ => a +
+       |{" "} + + ECallFunInGroup + {" "} + a _{" "} + _ _ =>{" "} + a +
+       |{" "} + + EMatch + {" "} + a _{" "} + _ _ =>{" "} + a +
+       |{" "} + + EForeach + {" "} + a _{" "} + _ _ =>{" "} + a +
+       end.
+      +
+
Statement
+     Inductive{" "} + + ergo_stmt + {" "} + := +
+     |{" "} + + SReturn + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_stmt + +
+     |{" "} + + SFunReturn + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_stmt + +
+     |{" "} + + SThrow + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_stmt + +
+     |{" "} + + SCallClause + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + + list + + {" "} + + ergo_expr + {" "} + ->{" "} + + ergo_stmt + {" "} + (* clause call *) +
+     |{" "} + + SSetState + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_stmt + {" "} + ->{" "} + + ergo_stmt + +
+     |{" "} + + SEmit + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_stmt + {" "} + ->{" "} + + ergo_stmt + +
+     |{" "} + + SLet + {" "} + :{" "} + + A + {" "} + ->{" "} + + + string + + {" "} + ->{" "} + + + option + + {" "} + (@ + + ergo_type + {" "} + + A + {" "} + + N + + ) ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_stmt + {" "} + ->{" "} + + ergo_stmt + {" "} + (* local variable *) +
+     |{" "} + + SIf + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + ergo_stmt + {" "} + ->{" "} + + ergo_stmt + {" "} + ->{" "} + + ergo_stmt + +
+     |{" "} + + SEnforce + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + + option + + {" "} + + ergo_stmt + {" "} + ->{" "} + + ergo_stmt + {" "} + ->{" "} + + ergo_stmt + {" "} + (* enforce *) +
+     |{" "} + + SMatch + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_expr + {" "} + -> ( + + + list + + {" "} + (@ + + ergo_pattern + {" "} + + A + {" "} + + N + {" "} + *{" "} + + ergo_stmt + + )) ->{" "} + + ergo_stmt + {" "} + ->{" "} + + ergo_stmt + +
+     . +
+
+     Definition{" "} + + stmt_annot + {" "} + (e: + + ergo_stmt + + ) :{" "} + + A + {" "} + := +
+       match{" "} + + e + {" "} + with +
+       |{" "} + + SReturn + {" "} + a _ =>{" "} + a +
+       |{" "} + + SFunReturn + {" "} + a _ =>{" "} + a +
+       |{" "} + + SThrow + {" "} + a _ =>{" "} + a +
+       |{" "} + + SCallClause + {" "} + a _{" "} + _ _ =>{" "} + a +
+       |{" "} + + SSetState + {" "} + a _{" "} + _ => a +
+       |{" "} + + SEmit + {" "} + a _{" "} + _ => a +
+       |{" "} + + SLet + {" "} + a _{" "} + _ _{" "} + _ => a +
+       |{" "} + + SIf + {" "} + a _{" "} + _ _ =>{" "} + a +
+       |{" "} + + SEnforce + {" "} + a _{" "} + _ _ =>{" "} + a +
+       |{" "} + + SMatch + {" "} + a _{" "} + _ _ =>{" "} + a +
+       end.
+      +
+
Function
+     Record{" "} + + ergo_function + {" "} + := +
+        + + mkFunc + +
+         {"{"}{" "} + + function_annot + {" "} + :{" "} + + A + + ;
+            + + function_sig + {" "} + : @ + + + ergo_type_signature + + {" "} + + A + {" "} + + N + + ;
+            + + function_body + {" "} + :{" "} + + + option + + {" "} + + ergo_expr + + ; {"}"}.
+
+     Definition{" "} + + body_annot + {" "} + (f: + + ergo_function + + ) :{" "} + + A + {" "} + := +
+       match{" "} + + f + + .( + + function_body + + ) with +
+       |{" "} + + + None + + {" "} + =>{" "} + + f + + .( + + function_annot + + )
+       |{" "} + + + Some + + {" "} + e =>{" "} + + expr_annot + {" "} + e +
+       end.
+      +
+
Clause
+     Record{" "} + + ergo_clause + {" "} + := +
+        + + mkClause + +
+         {"{"}{" "} + + clause_annot + {" "} + :{" "} + + A + + ;
+            + + clause_name + {" "} + :{" "} + + local_name + + ;
+            + + clause_sig + {" "} + : @ + + + ergo_type_signature + + {" "} + + A + {" "} + + N + + ;
+            + + clause_body + {" "} + :{" "} + + + option + + {" "} + + ergo_stmt + + ; {"}"}.
+
+
Contract
+     Record{" "} + + ergo_contract + {" "} + := +
+        + + mkContract + +
+         {"{"}{" "} + + contract_annot + {" "} + :{" "} + + A + + ;
+            + + contract_template + {" "} + : (@ + + ergo_type + {" "} + + A + {" "} + + N + + ); +
+            + + contract_state + {" "} + :{" "} + + + option + + {" "} + (@ + + ergo_type + {" "} + + A + {" "} + + N + + ); +
+            + + contract_clauses + {" "} + :{" "} + + + list + + {" "} + + ergo_clause + + ; {"}"}.
+
+
Declaration
+     Inductive{" "} + + ergo_declaration + {" "} + := +
+     |{" "} + + DNamespace + {" "} + :{" "} + + A + {" "} + ->{" "} + + + namespace_name + + {" "} + ->{" "} + + + ergo_declaration + + +
+     |{" "} + + DImport + {" "} + :{" "} + + A + {" "} + -> @ + + import_decl + {" "} + + A + {" "} + ->{" "} + + + ergo_declaration + + +
+     |{" "} + + DType + {" "} + :{" "} + + A + {" "} + -> @ + + + ergo_type_declaration + + {" "} + + A + {" "} + + N + {" "} + ->{" "} + + + ergo_declaration + + +
+     |{" "} + + DStmt + {" "} + :{" "} + + A + {" "} + ->{" "} + + ergo_stmt + {" "} + ->{" "} + + + ergo_declaration + + +
+     |{" "} + + DConstant + {" "} + :{" "} + + A + {" "} + ->{" "} + + local_name + {" "} + ->{" "} + + + option + + {" "} + (@ + + ergo_type + {" "} + + A + {" "} + + N + + ) ->{" "} + + ergo_expr + {" "} + ->{" "} + + + ergo_declaration + + +
+     |{" "} + + DFunc + {" "} + :{" "} + + A + {" "} + ->{" "} + + local_name + {" "} + ->{" "} + + ergo_function + {" "} + ->{" "} + + + ergo_declaration + + +
+     |{" "} + + DContract + {" "} + :{" "} + + A + {" "} + ->{" "} + + local_name + {" "} + ->{" "} + + ergo_contract + {" "} + ->{" "} + + + ergo_declaration + + +
+     |{" "} + + DSetContract + {" "} + :{" "} + + A + {" "} + ->{" "} + + N + {" "} + ->{" "} + + ergo_expr + {" "} + ->{" "} + + + ergo_declaration + + +
+     . +
+      +
+     Definition{" "} + + decl_annot + {" "} + (d: + + + ergo_declaration + + + ) :{" "} + + A + {" "} + := +
+       match{" "} + + d + {" "} + with +
+       |{" "} + + DNamespace + {" "} + a _ =>{" "} + a +
+       |{" "} + + DImport + {" "} + a _ =>{" "} + a +
+       |{" "} + + DType + {" "} + a _ =>{" "} + a +
+       |{" "} + + DStmt + {" "} + a _ =>{" "} + a +
+       |{" "} + + DConstant + {" "} + a _{" "} + _ _ =>{" "} + a +
+       |{" "} + + DFunc + {" "} + a _{" "} + _ => a +
+       |{" "} + + DContract + {" "} + a _{" "} + _ => a +
+       |{" "} + + DSetContract + {" "} + a _{" "} + _ => a +
+       end.
+
+
Module.
+     Record{" "} + + ergo_module + {" "} + := +
+        + + mkModule + +
+         {"{"}{" "} + + module_annot + {" "} + :{" "} + + A + + ;
+            + + module_file + {" "} + :{" "} + + + string + + + ;
+            + + module_namespace + {" "} + :{" "} + + + namespace_name + + + ;
+            + + module_declarations + {" "} + :{" "} + + + list + + {" "} + + + ergo_declaration + + + ; {"}"}.
+
+     Inductive{" "} + + ergo_input + {" "} + := +
+     |{" "} + + InputErgo + {" "} + :{" "} + + ergo_module + {" "} + ->{" "} + + ergo_input + +
+     |{" "} + + InputCTO + {" "} + : @ + + cto_package + {" "} + + A + {" "} + + N + {" "} + ->{" "} + + ergo_input + + .
+
+   End{" "} + + Ast + + .
+
+   Definition{" "} + + rergo_expr + {" "} + {"{"} + A + {"}"} := @ + + ergo_expr + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_stmt + {" "} + {"{"} + A + {"}"} := @ + + ergo_stmt + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_function + {" "} + {"{"} + A + {"}"} := @ + + ergo_function + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_clause + {" "} + {"{"} + A + {"}"} := @ + + ergo_clause + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_contract + {" "} + {"{"} + A + {"}"} := @ + + ergo_contract + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_declaration + {" "} + {"{"} + A + {"}"} := @ + + + ergo_declaration + + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_module + {" "} + {"{"} + A + {"}"} := @ + + ergo_module + {" "} + + A + {" "} + + relative_name + + .
+   Definition{" "} + + rergo_input + {" "} + {"{"} + A + {"}"} := @ + + ergo_input + {" "} + + A + {" "} + + relative_name + + .
+
+   Definition{" "} + + aergo_expr + {" "} + {"{"} + A + {"}"} := @ + + ergo_expr + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + aergo_stmt + {" "} + {"{"} + A + {"}"} := @ + + ergo_stmt + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + arergo_function + {" "} + {"{"} + A + {"}"} := @ + + ergo_function + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + arergo_clause + {" "} + {"{"} + A + {"}"} := @ + + ergo_clause + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + arergo_contract + {" "} + {"{"} + A + {"}"} := @ + + ergo_contract + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + arergo_declaration + {" "} + {"{"} + A + {"}"} := @ + + + ergo_declaration + + {" "} + + A + {" "} + + absolute_name + + .
+   Definition{" "} + + arergo_module + {" "} + {"{"} + A + {"}"} := @ + + ergo_module + {" "} + + A + {" "} + + absolute_name + + .
+
+   Definition{" "} + + lrergo_expr + {" "} + := @ + + ergo_expr + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_stmt + {" "} + := @ + + ergo_stmt + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_function + {" "} + := @ + + ergo_function + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_clause + {" "} + := @ + + ergo_clause + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_contract + {" "} + := @ + + ergo_contract + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_declaration + {" "} + := @ + + + ergo_declaration + + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_module + {" "} + := @ + + ergo_module + {" "} + + provenance + {" "} + + relative_name + + .
+   Definition{" "} + + lrergo_input + {" "} + := @ + + ergo_input + {" "} + + provenance + {" "} + + relative_name + + .
+
+   Definition{" "} + + laergo_expr + {" "} + := @ + + ergo_expr + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_stmt + {" "} + := @ + + ergo_stmt + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_function + {" "} + := @ + + ergo_function + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_clause + {" "} + := @ + + ergo_clause + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_contract + {" "} + := @ + + ergo_contract + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_declaration + {" "} + := @ + + + ergo_declaration + + {" "} + + provenance + {" "} + + absolute_name + + .
+   Definition{" "} + + laergo_module + {" "} + := @ + + ergo_module + {" "} + + provenance + {" "} + + absolute_name + + .
+
+   Section{" "} + + Lookup + + .
+     Fixpoint{" "} + + lookup_clauses_signatures + {" "} + (dl: + + + list + + {" "} + + laergo_clause + + ) :{" "} + + + list + + {" "} + ( + + local_name + {" "} + *{" "} + + + ergo_type_signature + + + ) := +
+       match{" "} + + dl + {" "} + with +
+       |{" "} + + nil + {" "} + =>{" "} + + nil + +
+       | cl ::{" "} + dl' => +
+         ( + cl.( + + clause_name + + ),cl.( + + clause_sig + + )) ::{" "} + + + lookup_clauses_signatures + + {" "} + dl'
+       end.
+        +
+     Definition{" "} + + lookup_contract_signatures + {" "} + (c: + + ergo_contract + + ) :{" "} + + + list + + {" "} + ( + + local_name + {" "} + *{" "} + + + ergo_type_signature + + + ) := +
+        + + + lookup_clauses_signatures + + {" "} + + c + + .( + + + contract_clauses + + + ). +
+
+     Definition{" "} + + contract_of_declaration + {" "} + (d: + + + laergo_declaration + + + ) :{" "} + + + option + + {" "} + ( + + absolute_name + {" "} + *{" "} + + laergo_contract + + ) := +
+       match{" "} + + d + {" "} + with +
+       |{" "} + + DContract + {" "} + _ cn{" "} + c =>{" "} + + + Some + + {" "} + (cn, c)
+       | + _ + =>{" "} + + + None + + +
+       end.
+
+     Definition{" "} + + + lookup_contracts_in_declarations + + {" "} + (dl: + + + list + + {" "} + + + laergo_declaration + + + )
+       :{" "} + + + list + + {" "} + ( + + absolute_name + {" "} + *{" "} + + laergo_contract + + ) := +
+        + + filter_some + {" "} + + + contract_of_declaration + + {" "} + + dl + + .
+
+     Definition{" "} + + + lookup_single_contract_in_declarations + + +
+                ( + prov: + + provenance + + ) (dl: + + + list + + {" "} + + + laergo_declaration + + + ) :{" "} + + eresult + {" "} + ( + + absolute_name + {" "} + *{" "} + + laergo_contract + + ) := +
+       match{" "} + + + lookup_contracts_in_declarations + + {" "} + + dl + {" "} + with +
+       |{" "} + + nil + {" "} + =>{" "} + + + should_have_one_contract_error + + {" "} + + prov + +
+       | c ::{" "} + + nil + {" "} + =>{" "} + + esuccess + {" "} + c +
+       | _ ::{" "} + _ =>{" "} + + + should_have_one_contract_error + + {" "} + + prov + +
+       end.
+
+     Definition{" "} + + lookup_single_contract + {" "} + (p: + + laergo_module + + ) :{" "} + + eresult + {" "} + ( + + absolute_name + {" "} + *{" "} + + laergo_contract + + ) := +
+        + + + lookup_single_contract_in_declarations + + {" "} + + p + + .( + + module_annot + + ){" "} + + p + + .( + + + module_declarations + + + ). +
+
+     Definition{" "} + + + lookup_single_contract_with_state + + {" "} + (p: + + laergo_module + + )
+       :{" "} + + eresult + {" "} + (( + + absolute_name + {" "} + *{" "} + + laergo_contract + + ) *{" "} + + + string + + + ) := +
+        + + eolift + {" "} + (fun ec => +
+                  + + elift + {" "} + (fun ecstate => +
+                          ( + + ec + + ,{" "} + + ecstate + + )) ( + + + lift_default_state_name + + {" "} + ( + + snd + {" "} + + ec + + ).( + + contract_state + + ))) +
+              ( + + + lookup_single_contract_in_declarations + + {" "} + + p + + .( + + module_annot + + ){" "} + + p + + .( + + + module_declarations + + + )). +
+   End{" "} + + Lookup + + .
+
+   Section{" "} + + TypeDeclarations + + .
+     Fixpoint{" "} + + get_type_decls + {" "} + (decls: + + + list + + {" "} + + + laergo_declaration + + + ) :{" "} + + + list + + {" "} + + + laergo_type_declaration + + {" "} + := +
+       match{" "} + + decls + {" "} + with +
+       |{" "} + + nil + {" "} + =>{" "} + + nil + +
+       |{" "} + + DType + {" "} + _ td ::{" "} + rest => td :: ( + + get_type_decls + {" "} + rest)
+       | _ ::{" "} + rest =>{" "} + + get_type_decls + {" "} + rest +
+       end.
+
+     Definition{" "} + + module_get_type_decls + {" "} + (m: + + laergo_module + + ) :{" "} + + + list + + {" "} + + + laergo_type_declaration + + {" "} + := +
+        + + get_type_decls + {" "} + + m + + .( + + + module_declarations + + + ). +
+
+     Definition{" "} + + modules_get_type_decls + {" "} + (m: + + + list + + {" "} + + laergo_module + + ) :{" "} + + + list + + {" "} + + + laergo_type_declaration + + {" "} + := +
+        + + + List.concat + + {" "} + ( + + List.map + {" "} + + + module_get_type_decls + + {" "} + + m + + ). +
+   End{" "} + + + TypeDeclarations + + + .
+    +
+ End{" "} + + Ergo + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.html b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.html deleted file mode 100644 index a1259744..00000000 --- a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - -Module ErgoSpec.Ergo.Lang.ErgoExpand - - - - - - -

Module ErgoSpec.Ergo.Lang.ErgoExpand

-
-
-
Translates contract logic to calculus
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ForeignErgo.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-
-Section ErgoExpand.
-
-  Definition create_call
-             (prov:provenance)
-             (cname:string)
-             (v0:string)
-             (effparam0:laergo_expr)
-             (effparamrest:list laergo_expr)
-             (callparams:list (string * laergo_type)) : eresult laergo_stmt :=
-    let zipped := zip callparams (effparam0 :: effparamrest) in
-    match zipped with
-    | None => main_parameter_mismatch_error prov
-    | Some _ =>
-      esuccess (SCallClause prov (EThisContract prov) cname (EVar prov v0 :: effparamrest))
-    end.
-
-  Definition case_of_sig
-             (prov:provenance)
-             (v0:string)
-             (effparam0:laergo_expr)
-             (effparamrest:list laergo_expr)
-             (s: (string * laergo_type_signature)) : eresult (list (ergo_pattern * laergo_stmt)) :=
-    let cname := (fst s) in
-    let callparams := (snd s).(type_signature_params) in
-    match callparams with
-    | nil => main_at_least_one_parameter_error prov
-    | (param0, et)::otherparams =>
-      match et with
-      | ErgoTypeClassRef _ type0 =>
-        elift (fun x =>
-                 ((CaseLet prov v0 (Some type0),x)::nil))
-              (create_call prov cname v0 effparam0 effparamrest callparams)
-      | _ => esuccess nil
-      end
-    end.
-
-  Definition match_of_sigs
-             (prov:provenance)
-             (v0:string)
-             (effparam0:laergo_expr)
-             (effparamrest:list laergo_expr)
-             (ss:list (string * laergo_type_signature)) : eresult laergo_stmt :=
-    elift (fun s =>
-             SMatch prov effparam0
-                    s
-                    (SThrow prov
-                            (EConst prov (default_match_error_content prov ""))))
-          (eflatmaplift (case_of_sig prov v0 effparam0 effparamrest) ss).
-
-  Definition match_of_sigs_top
-             (prov:provenance)
-             (effparams:list ergo_expr)
-             (ss:list (string * laergo_type_signature)) :=
-    match effparams with
-    | nil => main_at_least_one_parameter_error prov
-    | effparam0 :: effparamrest =>
-      let v0 := ("$"++clause_main_name)%string in
-      match_of_sigs prov v0 effparam0 effparamrest ss
-    end.
-
-  Definition filter_init (sigs:list (string * laergo_type_signature)) :=
-    filter (fun s =>
-              if (string_dec (fst s) clause_init_name)
-              then false
-              else true) sigs.
-
-  Definition create_main_clause_for_contract
-             (prov:provenance)
-             (c:laergo_contract) : eresult laergo_clause :=
-    let sigs := lookup_contract_signatures c in
-    let sigs := filter_init sigs in
-    let effparams := EVar prov "request"%string :: nil in
-    elift
-      (fun disp =>
-         (mkClause prov
-                   clause_main_name
-                   (mkErgoTypeSignature
-                      prov
-                      (("request"%string,ErgoTypeClassRef prov default_request_absolute_name)::nil)
-                      None
-                      None)
-                   (Some disp)))
-      (match_of_sigs_top prov effparams sigs).
-
-  Definition default_state (prov:provenance) : laergo_expr :=
-    EUnaryOp prov
-             (OpBrand (default_state_absolute_name::nil))
-             (EConst prov (drec (("stateId",dstring "1") :: nil)))%string.
-
-  Definition create_init_clause_for_contract
-             (prov:provenance)
-             (c:laergo_contract) : laergo_clause :=
-    let effparams : list laergo_expr := EVar prov "request"%string :: nil in
-    let init_body :=
-        SSetState prov (default_state prov)
-                  (SReturn prov (EConst prov dunit))
-    in
-    mkClause prov
-             clause_init_name
-             (mkErgoTypeSignature
-                prov
-                (("request"%string, ErgoTypeClassRef prov default_request_absolute_name)::nil)
-                (Some (ErgoTypeUnit prov))
-                (Some (ErgoTypeClassRef prov default_emits_absolute_name)))
-             (Some init_body).
-
-  Definition add_init_clause_to_contract (c:laergo_contract) : laergo_contract :=
-    let prov := c.(contract_annot) in
-    if in_dec string_dec clause_init_name
-              (map (fun cl => cl.(clause_name)) c.(contract_clauses))
-    then c
-    else
-      let init_clause :=
-          create_init_clause_for_contract prov c
-      in
-      mkContract
-        prov
-        c.(contract_template)
-        c.(contract_state)
-        (c.(contract_clauses) ++ (init_clause::nil)).
-
-  Definition add_main_clause_to_contract (c:laergo_contract) : eresult laergo_contract :=
-    let prov := c.(contract_annot) in
-    if in_dec string_dec clause_main_name
-              (map (fun cl => cl.(clause_name)) c.(contract_clauses))
-    then esuccess c
-    else
-      elift
-        (fun main_clause =>
-           mkContract
-             prov
-             c.(contract_template)
-             c.(contract_state)
-             (c.(contract_clauses) ++ (main_clause::nil)))
-        (create_main_clause_for_contract prov c).
-  
-  Definition ergo_expand_declaration
-             (d:laergo_declaration) : eresult laergo_declaration :=
-    match d with
-    | DNamespace _ _ => esuccess d
-    | DImport _ _ => esuccess d
-    | DType _ _ => esuccess d
-    | DStmt _ _ => esuccess d
-    | DConstant _ _ _ _ => esuccess d
-    | DFunc _ _ _ => esuccess d
-    | DContract _ cn c =>
-      let cd := add_init_clause_to_contract c in
-      elift
-        (fun dd =>
-           (DContract (decl_annot d) cn dd))
-        (add_main_clause_to_contract cd)
-    | DSetContract _ _ _ => esuccess d
-    end.
-    
-  Definition ergo_expand_declarations
-             (dl:list laergo_declaration) : eresult (list laergo_declaration) :=
-    emaplift ergo_expand_declaration dl.
-    
-
Pre-processing. At the moment only add main clauses when missing
-  Definition ergo_expand_module (p:laergo_module) : eresult laergo_module :=
-    elift
-      (fun ds => mkModule
-                   p.(module_annot)
-                   p.(module_file)
-                   p.(module_namespace)
-                   ds)
-      (ergo_expand_declarations p.(module_declarations)).
-
-  Definition ergo_expand_modules (pl:list laergo_module) : eresult (list laergo_module) :=
-    emaplift (ergo_expand_module) pl.
-
-End ErgoExpand.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.jsx b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.jsx new file mode 100644 index 00000000..954221ba --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoExpand.jsx @@ -0,0 +1,1836 @@ +
+ + Module ErgoSpec.Ergo.Lang.ErgoExpand + + +

Module ErgoSpec.Ergo.Lang.ErgoExpand

+
+
+
Translates contract logic to calculus
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ForeignErgo + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+
+ Section{" "} + + ErgoExpand + + .
+
+   Definition{" "} + + create_call + +
+              ( + prov: + + provenance + + )
+              ( + cname: + + + string + + + )
+              ( + v0: + + + string + + + )
+              ( + effparam0: + + laergo_expr + + )
+              ( + effparamrest: + + + list + + {" "} + + laergo_expr + + )
+              ( + callparams: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_type + + )) :{" "} + + eresult + {" "} + + laergo_stmt + {" "} + := +
+     let{" "} + zipped :={" "} + + zip + {" "} + + callparams + {" "} + ( + + effparam0 + {" "} + ::{" "} + + effparamrest + + ) in +
+     match{" "} + + zipped + {" "} + with +
+     |{" "} + + + None + + {" "} + =>{" "} + + + main_parameter_mismatch_error + + {" "} + + prov + +
+     |{" "} + + + Some + + {" "} + _ => +
+        + + esuccess + {" "} + ( + + SCallClause + {" "} + + prov + {" "} + ( + + EThisContract + {" "} + + prov + + ){" "} + + cname + {" "} + ( + + EVar + {" "} + + prov + {" "} + + v0 + {" "} + ::{" "} + + effparamrest + + )) +
+     end.
+
+   Definition{" "} + + case_of_sig + +
+              ( + prov: + + provenance + + )
+              ( + v0: + + + string + + + )
+              ( + effparam0: + + laergo_expr + + )
+              ( + effparamrest: + + + list + + {" "} + + laergo_expr + + )
+              ( + s: ( + + + string + + {" "} + *{" "} + + + laergo_type_signature + + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + ( + + ergo_pattern + {" "} + *{" "} + + laergo_stmt + + )) := +
+     let{" "} + cname := ( + + fst + {" "} + + s + + ) in +
+     let{" "} + callparams := ( + + snd + {" "} + + s + + ).( + + + type_signature_params + + + ) in +
+     match{" "} + + callparams + {" "} + with +
+     |{" "} + + nil + {" "} + =>{" "} + + + main_at_least_one_parameter_error + + {" "} + + prov + +
+     | (param0,{" "} + et)::otherparams{" "} + => +
+       match{" "} + et with +
+       |{" "} + + + ErgoTypeClassRef + + {" "} + _ type0 => +
+          + + elift + {" "} + (fun x => +
+                  (( + + CaseLet + {" "} + + prov + {" "} + + v0 + {" "} + ( + + + Some + + {" "} + type0), + + x + + ):: + + nil + + )) +
+               ( + + create_call + {" "} + + prov + {" "} + + cname + {" "} + + v0 + {" "} + + effparam0 + {" "} + + effparamrest + {" "} + + callparams + + )
+       | + _ + =>{" "} + + esuccess + {" "} + + nil + {" "} +
+       end +
+     end.
+
+   Definition{" "} + + match_of_sigs + +
+              ( + prov: + + provenance + + )
+              ( + v0: + + + string + + + )
+              ( + effparam0: + + laergo_expr + + )
+              ( + effparamrest: + + + list + + {" "} + + laergo_expr + + )
+              ( + ss: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + laergo_type_signature + + + )) :{" "} + + eresult + {" "} + + laergo_stmt + {" "} + := +
+      + + elift + {" "} + (fun s => +
+               + + SMatch + {" "} + + prov + {" "} + + effparam0 + +
+                      + + s + +
+                     ( + + SThrow + {" "} + + prov + +
+                             ( + + EConst + {" "} + + prov + {" "} + ( + + + default_match_error_content + + {" "} + + prov + {" "} + "")))) +
+           ( + + eflatmaplift + {" "} + ( + + case_of_sig + {" "} + + prov + {" "} + + v0 + {" "} + + effparam0 + {" "} + + effparamrest + + ){" "} + + ss + + ). +
+
+   Definition{" "} + + match_of_sigs_top + +
+              ( + prov: + + provenance + + )
+              ( + effparams: + + + list + + {" "} + + ergo_expr + + )
+              ( + ss: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + laergo_type_signature + + + )) := +
+     match{" "} + + effparams + {" "} + with +
+     |{" "} + + nil + {" "} + =>{" "} + + + main_at_least_one_parameter_error + + {" "} + + prov + +
+     | effparam0 ::{" "} + effparamrest => +
+       let{" "} + v0 := ("$"++ + + + clause_main_name + + + )%string in
+        + + + match_of_sigs + + {" "} + + prov + {" "} + + v0 + {" "} + effparam0{" "} + effparamrest{" "} + + ss + +
+     end.
+
+   Definition{" "} + + filter_init + {" "} + (sigs: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + laergo_type_signature + + + )) := +
+      + + + filter + + {" "} + (fun s => +
+                + if ( + + + string_dec + + {" "} + ( + + fst + {" "} + + s + + ){" "} + + + clause_init_name + + + )
+                + then{" "} + + + false + + +
+                + else{" "} + + + true + + + ){" "} + + sigs + + .
+
+   Definition{" "} + + + create_main_clause_for_contract + + +
+              ( + prov: + + provenance + + )
+              ( + c: + + laergo_contract + + ) :{" "} + + eresult + {" "} + + laergo_clause + {" "} + := +
+     let{" "} + sigs :={" "} + + + lookup_contract_signatures + + {" "} + + c + {" "} + in +
+     let{" "} + sigs :={" "} + + filter_init + {" "} + + sigs + {" "} + in +
+     let{" "} + effparams :={" "} + + EVar + {" "} + + prov + {" "} + "request"%string ::{" "} + + nil + {" "} + in +
+      + + elift + +
+       (fun{" "} + disp => +
+          ( + + mkClause + {" "} + + prov + +
+                     + + + clause_main_name + + +
+                    ( + + + mkErgoTypeSignature + + +
+                        + + prov + +
+                       ((" + request"%string, + + + ErgoTypeClassRef + + {" "} + + prov + {" "} + + + default_request_absolute_name + + + ):: + + nil + + )
+                        + + + None + + {" "} +
+                        + + + None + + + )
+                    ( + + + Some + + {" "} + + disp + + ))) +
+       ( + + + match_of_sigs_top + + {" "} + + prov + {" "} + + effparams + {" "} + + sigs + + ). +
+
+   Definition{" "} + + default_state + {" "} + (prov: + + provenance + + ) :{" "} + + laergo_expr + {" "} + := +
+      + + EUnaryOp + {" "} + + prov + +
+              ( + + + OpBrand + + {" "} + ( + + + default_state_absolute_name + + + :: + + nil + + )) +
+              ( + + EConst + {" "} + + prov + {" "} + ( + + + drec + + {" "} + (("stateId", + + + dstring + + {" "} + "1") ::{" "} + + nil + + )))%string.
+
+   Definition{" "} + + + create_init_clause_for_contract + + +
+              ( + prov: + + provenance + + )
+              ( + c: + + laergo_contract + + ) :{" "} + + laergo_clause + {" "} + := +
+     let{" "} + effparams :{" "} + + + list + + {" "} + + laergo_expr + {" "} + :={" "} + + EVar + {" "} + + prov + {" "} + "request"%string ::{" "} + + nil + {" "} + in +
+     let{" "} + init_body := +
+          + + SSetState + {" "} + + prov + {" "} + ( + + + default_state + + {" "} + + prov + + )
+                   ( + + SReturn + {" "} + + prov + {" "} + ( + + EConst + {" "} + + prov + {" "} + + + dunit + + + )) +
+     in +
+      + + mkClause + {" "} + + prov + +
+               + + + clause_init_name + + +
+              ( + + + mkErgoTypeSignature + + +
+                  + + prov + +
+                 ((" + request"%string,{" "} + + + ErgoTypeClassRef + + {" "} + + prov + {" "} + + + default_request_absolute_name + + + ):: + + nil + + )
+                 ( + + + Some + + {" "} + ( + + + ErgoTypeUnit + + {" "} + + prov + + )) +
+                 ( + + + Some + + {" "} + ( + + + ErgoTypeClassRef + + {" "} + + prov + {" "} + + + default_emits_absolute_name + + + ))) +
+              ( + + + Some + + {" "} + + init_body + + ). +
+
+   Definition{" "} + + add_init_clause_to_contract + {" "} + (c: + + laergo_contract + + ) :{" "} + + laergo_contract + {" "} + := +
+     let{" "} + prov :={" "} + + c + + .( + + contract_annot + + ) in +
+     if{" "} + + + in_dec + + {" "} + + + string_dec + + {" "} + + + clause_init_name + + +
+               ( + + map + {" "} + (fun cl =>{" "} + + cl + + .( + + clause_name + + )){" "} + + c + + .( + + + contract_clauses + + + )) +
+     then{" "} + + c + +
+     else +
+       let{" "} + init_clause := +
+            + + + create_init_clause_for_contract + + {" "} + + prov + {" "} + + c + +
+       in +
+        + + mkContract + +
+          + + prov + +
+          + + c + + .( + + + contract_template + + + )
+          + + c + + .( + + contract_state + + )
+         ( + + c + + .( + + + contract_clauses + + + ) ++ ( + + init_clause + + :: + + nil + + )). +
+
+   Definition{" "} + + add_main_clause_to_contract + {" "} + (c: + + laergo_contract + + ) :{" "} + + eresult + {" "} + + laergo_contract + {" "} + := +
+     let{" "} + prov :={" "} + + c + + .( + + contract_annot + + ) in +
+     if{" "} + + + in_dec + + {" "} + + + string_dec + + {" "} + + + clause_main_name + + +
+               ( + + map + {" "} + (fun cl =>{" "} + + cl + + .( + + clause_name + + )){" "} + + c + + .( + + + contract_clauses + + + )) +
+     then{" "} + + esuccess + {" "} + + c + +
+     else +
+        + + elift + +
+         ( + + fun + main_clause => +
+             + + mkContract + +
+               + + prov + +
+               + + c + + .( + + + contract_template + + + )
+               + + c + + .( + + contract_state + + )
+              ( + + c + + .( + + + contract_clauses + + + ) ++ ( + + main_clause + + :: + + nil + + ))) +
+         ( + + + create_main_clause_for_contract + + {" "} + + prov + {" "} + + c + + ). +
+    +
+   Definition{" "} + + ergo_expand_declaration + +
+              ( + d: + + + laergo_declaration + + + ) :{" "} + + eresult + {" "} + + + laergo_declaration + + {" "} + := +
+     match{" "} + + d + {" "} + with +
+     |{" "} + + DNamespace + {" "} + _ _ =>{" "} + + esuccess + {" "} + + d + +
+     |{" "} + + DImport + {" "} + _ _ =>{" "} + + esuccess + {" "} + + d + +
+     |{" "} + + DType + {" "} + _ _ =>{" "} + + esuccess + {" "} + + d + +
+     |{" "} + + DStmt + {" "} + _ _ =>{" "} + + esuccess + {" "} + + d + +
+     |{" "} + + DConstant + {" "} + _ _{" "} + _ _ =>{" "} + + esuccess + {" "} + + d + +
+     |{" "} + + DFunc + {" "} + _ _{" "} + _ =>{" "} + + esuccess + {" "} + + d + +
+     |{" "} + + DContract + {" "} + _ cn{" "} + c => +
+       let{" "} + cd :={" "} + + + add_init_clause_to_contract + + {" "} + c in +
+        + + elift + +
+         ( + fun dd => +
+            ( + + DContract + {" "} + ( + + decl_annot + {" "} + + d + + ) cn{" "} + + dd + + )) +
+         ( + + + add_main_clause_to_contract + + {" "} + + cd + + )
+     |{" "} + + DSetContract + {" "} + _ _{" "} + _ =>{" "} + + esuccess + {" "} + + d + +
+     end.
+      +
+   Definition{" "} + + ergo_expand_declarations + +
+              ( + dl: + + + list + + {" "} + + + laergo_declaration + + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + + laergo_declaration + + + ) := +
+      + + emaplift + {" "} + + + ergo_expand_declaration + + {" "} + + dl + + .
+      +
+
+ Pre-processing. At the moment only add main clauses when missing{" "} +
+   Definition{" "} + + ergo_expand_module + {" "} + (p: + + laergo_module + + ) :{" "} + + eresult + {" "} + + laergo_module + {" "} + := +
+      + + elift + +
+       (fun{" "} + ds =>{" "} + + mkModule + +
+                     + + p + + .( + + module_annot + + )
+                     + + p + + .( + + module_file + + )
+                     + + p + + .( + + + module_namespace + + + )
+                     + + ds + + )
+       ( + + + ergo_expand_declarations + + {" "} + + p + + .( + + + module_declarations + + + )). +
+
+   Definition{" "} + + ergo_expand_modules + {" "} + (pl: + + + list + + {" "} + + laergo_module + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_module + + ) := +
+      + + emaplift + {" "} + ( + + + ergo_expand_module + + + ){" "} + + pl + + .
+
+ End{" "} + + ErgoExpand + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.html b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.html deleted file mode 100644 index dccd0dcc..00000000 --- a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -Module ErgoSpec.Ergo.Lang.ErgoMap - - - - - - -

Module ErgoSpec.Ergo.Lang.ErgoMap

-
-
-Require Import String.
-Require Import List.
-Require Import Basics.
-
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-
-Section ErgoMap.
-  Context {A:Set}.
-  Context {N:Set}.
-
-  Fixpoint ergo_map_expr {C : Set}
-           (ctx : C)
-           (ctxt_new_variable_scope : C -> string -> @ergo_expr A N -> C)
-           (fn : C -> @ergo_expr A N -> option (eresult (@ergo_expr A N)))
-           (expr : @ergo_expr A N)
-    : eresult (@ergo_expr A N) :=
-    let maybe_fn := elift_maybe (fn ctx) in
-    maybe_fn
-      match expr with
-      | EThisContract _ => esuccess expr
-      | EThisClause _ => esuccess expr
-      | EThisState _ => esuccess expr
-      | EVar _ _ => esuccess expr
-      | EConst _ _ => esuccess expr
-      | ENone _ => esuccess expr
-      | ESome loc e =>
-        elift (ESome loc) (ergo_map_expr ctx ctxt_new_variable_scope fn e)
-      | EArray loc a =>
-        elift (EArray loc)
-              (fold_left
-                 (fun ls na =>
-                    elift2 postpend ls (ergo_map_expr ctx ctxt_new_variable_scope fn na))
-                 a (esuccess nil))
-      | EUnaryOp loc o e =>
-        elift (EUnaryOp loc o) (ergo_map_expr ctx ctxt_new_variable_scope fn e)
-      | EBinaryOp loc o e1 e2 =>
-        elift2 (EBinaryOp loc o)
-               (ergo_map_expr ctx ctxt_new_variable_scope fn e1)
-               (ergo_map_expr ctx ctxt_new_variable_scope fn e2)
-      | EIf loc c t f =>
-        elift3 (EIf loc)
-               (ergo_map_expr ctx ctxt_new_variable_scope fn c)
-               (ergo_map_expr ctx ctxt_new_variable_scope fn t)
-               (ergo_map_expr ctx ctxt_new_variable_scope fn f)
-      | ELet loc n t v b =>
-        elift2 (fun v' b' => (ELet loc) n t v' b')
-               (ergo_map_expr ctx ctxt_new_variable_scope fn v)
-               (ergo_map_expr (ctxt_new_variable_scope ctx n v) ctxt_new_variable_scope fn b)
-      | ERecord loc rs =>
-        elift (ERecord loc)
-              (fold_left
-                 (fun ls nr =>
-                    elift2 postpend ls
-                           (elift (fun x => (fst nr, x)) (ergo_map_expr ctx ctxt_new_variable_scope fn (snd nr))))
-                 rs (esuccess nil))
-      | ENew loc n rs =>
-        elift (ENew loc n)
-              (fold_left
-                 (fun ls nr =>
-                    elift2 postpend ls
-                           (elift (fun x => (fst nr, x)) (ergo_map_expr ctx ctxt_new_variable_scope fn (snd nr))))
-                 rs (esuccess nil))
-      | ECallFun loc fn' args =>
-        elift (ECallFun loc fn')
-              (fold_left (fun ls nv =>
-                            elift2 postpend ls (ergo_map_expr ctx ctxt_new_variable_scope fn nv))
-                         args (esuccess nil))
-      | ECallFunInGroup loc gn fn' args =>
-        elift (ECallFunInGroup loc gn fn')
-              (fold_left (fun ls nv =>
-                            elift2 postpend ls (ergo_map_expr ctx ctxt_new_variable_scope fn nv))
-                         args (esuccess nil))
-      | EForeach loc rs whr fn' =>
-        elift3
-          (EForeach loc)
-          (fold_left
-             (fun ls nr =>
-                elift2 postpend ls
-                       (elift (fun x => (fst nr, x)) (ergo_map_expr ctx ctxt_new_variable_scope fn (snd nr))))
-             rs (esuccess nil))
-          (match whr with
-           | Some whr' => (elift Some) (ergo_map_expr ctx ctxt_new_variable_scope fn whr')
-           | None => esuccess None
-           end)
-          (ergo_map_expr ctx ctxt_new_variable_scope fn fn')
-
-      | EMatch loc expr pes def =>
-        eolift
-          (fun expr' =>
-             eolift
-               (fun def' =>
-                  elift (fun pes' => EMatch loc expr' pes' def')
-                        (fold_right
-                           (fun pe prev =>
-                              elift2
-                                (fun pe' prev' => pe' :: prev')
-                                match pe with
-                                | (CaseData _ _, e) =>
-                                  elift (fun x => (fst pe, x))
-                                        (ergo_map_expr ctx ctxt_new_variable_scope fn e)
-                                | (CaseWildcard _ _, e) =>
-                                  elift (fun x => (fst pe, x))
-                                        (ergo_map_expr ctx ctxt_new_variable_scope fn e)
-                                | (CaseLet _ name _, e) =>
-                                  elift (fun x => (fst pe, x))
-                                        (ergo_map_expr (ctxt_new_variable_scope ctx name expr')
-                                                       ctxt_new_variable_scope fn e)
-                                | (CaseLetOption _ name _, e) =>
-                                  elift (fun x => (fst pe, x))
-                                        (ergo_map_expr (ctxt_new_variable_scope ctx name expr')
-                                                       ctxt_new_variable_scope fn e)
-                                end
-                                prev)
-                           (esuccess nil)
-                           pes))
-               (ergo_map_expr ctx ctxt_new_variable_scope fn def))
-          (ergo_map_expr ctx ctxt_new_variable_scope fn expr)
-      end.
-
-End ErgoMap.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.jsx b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.jsx new file mode 100644 index 00000000..ffcbbd45 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoMap.jsx @@ -0,0 +1,1357 @@ +
+ + Module ErgoSpec.Ergo.Lang.ErgoMap + + +

Module ErgoSpec.Ergo.Lang.ErgoMap

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + Basics + + .
+
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+
+ Section{" "} + + ErgoMap + + .
+   Context {"{"} + A:Set + {"}"}.
+   Context {"{"} + N:Set + {"}"}.
+
+   Fixpoint{" "} + + ergo_map_expr + {" "} + {"{"} + C : Set + {"}"} +
+            ( + ctx :{" "} + + C + + )
+            ( + ctxt_new_variable_scope :{" "} + + C + {" "} + ->{" "} + + + string + + {" "} + -> @ + + ergo_expr + {" "} + + A + {" "} + + N + {" "} + ->{" "} + + C + + )
+            ( + fn :{" "} + + C + {" "} + -> @ + + ergo_expr + {" "} + + A + {" "} + + N + {" "} + ->{" "} + + + option + + {" "} + ( + + eresult + {" "} + (@ + + ergo_expr + {" "} + + A + {" "} + + N + + ))) +
+            ( + expr : @ + + ergo_expr + {" "} + + A + {" "} + + N + + )
+     :{" "} + + eresult + {" "} + (@ + + ergo_expr + {" "} + + A + {" "} + + N + + ) := +
+     let{" "} + maybe_fn :={" "} + + elift_maybe + {" "} + ( + + fn + {" "} + + ctx + + ) in +
+      + + maybe_fn + +
+       match{" "} + + expr + {" "} + with +
+       |{" "} + + EThisContract + {" "} + _ =>{" "} + + esuccess + {" "} + + expr + +
+       |{" "} + + EThisClause + {" "} + _ =>{" "} + + esuccess + {" "} + + expr + +
+       |{" "} + + EThisState + {" "} + _ =>{" "} + + esuccess + {" "} + + expr + +
+       |{" "} + + EVar + {" "} + _ _ =>{" "} + + esuccess + {" "} + + expr + +
+       |{" "} + + EConst + {" "} + _ _ =>{" "} + + esuccess + {" "} + + expr + +
+       |{" "} + + ENone + {" "} + _ =>{" "} + + esuccess + {" "} + + expr + +
+       |{" "} + + ESome + {" "} + loc e => +
+          + + elift + {" "} + ( + + ESome + {" "} + loc) ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + e)
+       |{" "} + + EArray + {" "} + loc a => +
+          + + elift + {" "} + ( + + EArray + {" "} + loc)
+               ( + + + fold_left + + +
+                  ( + fun ls{" "} + na => +
+                      + + elift2 + {" "} + + postpend + {" "} + + ls + {" "} + ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + + na + + )) +
+                   + a ( + + esuccess + {" "} + + nil + + )) +
+       |{" "} + + EUnaryOp + {" "} + loc o{" "} + e => +
+          + + elift + {" "} + ( + + EUnaryOp + {" "} + loc o) ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + e)
+       |{" "} + + EBinaryOp + {" "} + loc o{" "} + e1 e2 => +
+          + + elift2 + {" "} + ( + + EBinaryOp + {" "} + loc o)
+                ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + e1)
+                ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + e2)
+       |{" "} + + EIf + {" "} + loc c{" "} + t f => +
+          + + elift3 + {" "} + ( + + EIf + {" "} + loc)
+                ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + c)
+                ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + t)
+                ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + f)
+       |{" "} + + ELet + {" "} + loc n{" "} + t v{" "} + b => +
+          + + elift2 + {" "} + (fun v'{" "} + b' => ( + + ELet + {" "} + loc) n{" "} + t v'{" "} + b') +
+                ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + v)
+                ( + + ergo_map_expr + {" "} + ( + + + ctxt_new_variable_scope + + {" "} + + ctx + {" "} + n v){" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + b)
+       |{" "} + + ERecord + {" "} + loc rs => +
+          + + elift + {" "} + ( + + ERecord + {" "} + loc)
+               ( + + + fold_left + + +
+                  ( + fun ls{" "} + nr => +
+                      + + elift2 + {" "} + + postpend + {" "} + + ls + +
+                            ( + + elift + {" "} + (fun x => ( + + fst + {" "} + + nr + + ,{" "} + + x + + )) ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + ( + + snd + {" "} + + nr + + )))) +
+                   + rs ( + + esuccess + {" "} + + nil + + )) +
+       |{" "} + + ENew + {" "} + loc n{" "} + rs => +
+          + + elift + {" "} + ( + + ENew + {" "} + loc n)
+               ( + + + fold_left + + +
+                  ( + fun ls{" "} + nr => +
+                      + + elift2 + {" "} + + postpend + {" "} + + ls + +
+                            ( + + elift + {" "} + (fun x => ( + + fst + {" "} + + nr + + ,{" "} + + x + + )) ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + ( + + snd + {" "} + + nr + + )))) +
+                   + rs ( + + esuccess + {" "} + + nil + + )) +
+       |{" "} + + ECallFun + {" "} + loc fn'{" "} + args => +
+          + + elift + {" "} + ( + + ECallFun + {" "} + loc fn') +
+               ( + + + fold_left + + {" "} + (fun ls{" "} + nv => +
+                              + + elift2 + {" "} + + postpend + {" "} + + ls + {" "} + ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + + nv + + )) +
+                           + args ( + + esuccess + {" "} + + nil + + )) +
+       |{" "} + + ECallFunInGroup + {" "} + loc gn{" "} + fn' args => +
+          + + elift + {" "} + ( + + ECallFunInGroup + {" "} + loc gn{" "} + fn') +
+               ( + + + fold_left + + {" "} + (fun ls{" "} + nv => +
+                              + + elift2 + {" "} + + postpend + {" "} + + ls + {" "} + ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + + nv + + )) +
+                           + args ( + + esuccess + {" "} + + nil + + )) +
+       |{" "} + + EForeach + {" "} + loc rs{" "} + whr fn' => +
+          + + elift3 + +
+           ( + + EForeach + {" "} + loc)
+           ( + + + fold_left + + +
+              ( + fun ls{" "} + nr => +
+                  + + elift2 + {" "} + + postpend + {" "} + + ls + +
+                        ( + + elift + {" "} + (fun x => ( + + fst + {" "} + + nr + + ,{" "} + + x + + )) ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + ( + + snd + {" "} + + nr + + )))) +
+               + rs ( + + esuccess + {" "} + + nil + + )) +
+           ( + match whr{" "} + with +
+            |{" "} + + + Some + + {" "} + whr' => ( + + elift + {" "} + + + Some + + + ) ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + whr') +
+            |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+             + end)
+           ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + fn') +
+
+       |{" "} + + EMatch + {" "} + loc expr{" "} + pes def => +
+          + + eolift + +
+           ( + fun expr' => +
+               + + eolift + +
+                ( + fun def' => +
+                    + + elift + {" "} + (fun pes' =>{" "} + + EMatch + {" "} + loc expr'{" "} + pes' def') +
+                         ( + + + fold_right + + +
+                            ( + fun pe{" "} + prev => +
+                                + + elift2 + +
+                                 ( + fun pe'{" "} + prev' => pe' ::{" "} + prev') +
+                                  + match{" "} + + pe + {" "} + with +
+                                 | + ( + + CaseData + {" "} + _ _,{" "} + e) => +
+                                    + + elift + {" "} + (fun x => ( + + fst + {" "} + + pe + + ,{" "} + + x + + )) +
+                                         ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + e)
+                                 | + ( + + CaseWildcard + {" "} + _ _,{" "} + e) => +
+                                    + + elift + {" "} + (fun x => ( + + fst + {" "} + + pe + + ,{" "} + + x + + )) +
+                                         ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + e)
+                                 | + ( + + CaseLet + {" "} + _ name{" "} + _, e) => +
+                                    + + elift + {" "} + (fun x => ( + + fst + {" "} + + pe + + ,{" "} + + x + + )) +
+                                         ( + + ergo_map_expr + {" "} + ( + + + ctxt_new_variable_scope + + {" "} + + ctx + {" "} + name expr') +
+                                                         + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + e)
+                                 | + ( + + CaseLetOption + {" "} + _ name{" "} + _, e) => +
+                                    + + elift + {" "} + (fun x => ( + + fst + {" "} + + pe + + ,{" "} + + x + + )) +
+                                         ( + + ergo_map_expr + {" "} + ( + + + ctxt_new_variable_scope + + {" "} + + ctx + {" "} + name expr') +
+                                                         + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + e)
+                                  + end +
+                                  + + prev + + )
+                            ( + + esuccess + {" "} + + nil + + )
+                             + pes)) +
+                ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + def)) +
+           ( + + ergo_map_expr + {" "} + + ctx + {" "} + + + ctxt_new_variable_scope + + {" "} + + fn + {" "} + + expr + + )
+       end.
+
+ End{" "} + + ErgoMap + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.html b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.html deleted file mode 100644 index 5e16dc5c..00000000 --- a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - -Module ErgoSpec.Ergo.Lang.ErgoSem - - - - - - -

Module ErgoSpec.Ergo.Lang.ErgoSem

-
-
-
Ergo is a language for expressing contract logic.
-
-

Semantics

-
-Require Import String.
-Require Import List.
-Require Import EquivDec.
-
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.CTO.CTO.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-
-Section ErgoSem.
-  Record env :=
-    mkDynEnv
-        { env_this_contract : ErgoData.data;
-          env_this_clause : ErgoData.data;
-          env_this_state : ErgoData.data;
-          env_this_emit : list ErgoData.data;
-          env_variables : list (string * ErgoData.data); }.
-
-  Definition env_add_variable env v d :=
-    mkDynEnv
-      env.(env_this_contract)
-      env.(env_this_clause)
-      env.(env_this_state)
-      env.(env_this_emit)
-      ((v,d)::env.(env_variables)).
-  
-  Definition module_context := list laergo_module.
-
-
Currently, this is written as a big-step semantics. There is - some amount of duplication in rules preconditions due to error - handling. This might benefit to be written in a pretty-big-step - semantic style. See Charguéraud ESOP 2013 - http://www.chargueraud.org/research/2012/pretty/
-
-  Inductive ergo_expr_sem : module_context -> env -> laergo_expr -> ErgoData.data -> Prop :=
-  | sem_EThisContract : forall a mc env,
-      ergo_expr_sem mc env (EThisContract a) (env.(env_this_contract))
-  | sem_EThisClause : forall a mc env,
-      ergo_expr_sem mc env (EThisClause a) (env.(env_this_clause))
-  | sem_EThisState : forall a mc env,
-      ergo_expr_sem mc env (EThisState a) (env.(env_this_state))
-  | sem_EVar : forall a mc env v d,
-      lookup equiv_dec env.(env_variables) v = Some d -> (* Γ(v) = d *)
-      ergo_expr_sem mc env (EVar a v) d
-  | sem_EConst : forall a mc env d,
-      ergo_expr_sem mc env (EConst a d) d
-  | sem_EArray_nil : forall a mc env,
-      ergo_expr_sem mc env (EArray a nil) (ErgoData.dcoll nil)
-  | sem_EArray_cons : forall a1 a2 mc env e1 el d1 dl,
-      ergo_expr_sem mc env e1 d1 ->
-      ergo_expr_sem mc env (EArray a1 el) (ErgoData.dcoll dl) ->
-      ergo_expr_sem mc env (EArray a2 (e1::el)) (ErgoData.dcoll (d1::dl))
-  | sem_EUnaryOp : forall a uop mc env e1 h d1 d2,
-      ergo_expr_sem mc env e1 d1 ->
-      ErgoOps.Unary.eval h uop d1 = Some d2 -> (* ∧ d₁ = d *)
-      ergo_expr_sem mc env (EUnaryOp a uop e1) d2
-  | sem_EBinnaryOp : forall a bop mc env e1 e2 h d1 d2 d3,
-      ergo_expr_sem mc env e1 d1 ->
-      ergo_expr_sem mc env e2 d2 ->
-      ErgoOps.Binary.eval h bop d1 d2 = Some d3 ->
-      ergo_expr_sem mc env (EBinaryOp a bop e1 e2) d2
-  | sem_EIf_true : forall a mc env e1 e2 e3 d,
-      ergo_expr_sem mc env e1 (ErgoData.dbool true) ->
-      ergo_expr_sem mc env e2 d ->
-      ergo_expr_sem mc env (EIf a e1 e2 e3) d
-  | sem_EIf_false : forall a mc env e1 e2 e3 d,
-      ergo_expr_sem mc env e1 (ErgoData.dbool false) ->
-      ergo_expr_sem mc env e3 d ->
-      ergo_expr_sem mc env (EIf a e1 e2 e3) d
-  | sem_ELet : forall a mc env v e1 e2 d1 d2,
-      ergo_expr_sem mc env e1 d1 ->
-      ergo_expr_sem mc (env_add_variable env v d1) e2 d2 ->
-      ergo_expr_sem mc env (ELet a v None e1 e2) d2
-  | sem_ELet_typed : forall a mc env v t e1 e2 d1 d2,
-      ergo_expr_sem mc env e1 d1 ->
-
instance_of d1 t1 = true ->
-
-      ergo_expr_sem mc (env_add_variable env v d1) e2 d2 ->
-      ergo_expr_sem mc env (ELet a v (Some t) e1 e2) d2
-  | sem_ERecord_nil : forall a mc env,
-      ergo_expr_sem mc env (ERecord a nil) (ErgoData.drec nil)
-  | sem_ERecord_cons : forall a1 a2 mc env v e1 el d1 rl rl',
-      ergo_expr_sem mc env e1 d1 ->
-      ergo_expr_sem mc env (ERecord a1 el) (ErgoData.drec rl) ->
-      rec_sort ((v,d1)::rl) = rl' ->
-      ergo_expr_sem mc env (ERecord a2 ((v,e1)::el)) (ErgoData.drec rl').
-
-End ErgoSem.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.jsx b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.jsx new file mode 100644 index 00000000..4f3d3420 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSem.jsx @@ -0,0 +1,1362 @@ +
+ + Module ErgoSpec.Ergo.Lang.ErgoSem + + +

Module ErgoSpec.Ergo.Lang.ErgoSem

+
+
+
+ Ergo is a language for expressing contract logic.{" "} +
+
+

Semantics

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + EquivDec + + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + ErgoSpec.Common.CTO.CTO + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+
+ Section{" "} + + ErgoSem + + .
+   Record{" "} + + env + {" "} + := +
+      + + mkDynEnv + +
+         {"{"}{" "} + + env_this_contract + {" "} + :{" "} + + + ErgoData.data + + + ;
+            + + env_this_clause + {" "} + :{" "} + + + ErgoData.data + + + ;
+            + + env_this_state + {" "} + :{" "} + + + ErgoData.data + + + ;
+            + + env_this_emit + {" "} + :{" "} + + + list + + {" "} + + + ErgoData.data + + + ;
+            + + env_variables + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + ErgoData.data + + + ); {"}"}.
+
+   Definition{" "} + + env_add_variable + {" "} + env v{" "} + d := +
+      + + mkDynEnv + +
+        + + env + + .( + + + env_this_contract + + + )
+        + + env + + .( + + + env_this_clause + + + )
+        + + env + + .( + + + env_this_state + + + )
+        + + env + + .( + + env_this_emit + + )
+       (( + + v + + , + + d + + ):: + + env + + .( + + env_variables + + )). +
+    +
+   Definition{" "} + + module_context + {" "} + :={" "} + + + list + + {" "} + + laergo_module + + .
+
+
+ Currently, this is written as a big-step semantics. There is some amount + of duplication in rules preconditions due to error handling. This might + benefit to be written in a pretty-big-step semantic style. See{" "} + + Charguéraud{" "} + ESOP 2013 + + http://www.chargueraud.org/research/2012/pretty/{" "} +
+
+   Inductive{" "} + + ergo_expr_sem + {" "} + :{" "} + + + module_context + + {" "} + ->{" "} + + env + {" "} + ->{" "} + + laergo_expr + {" "} + ->{" "} + + + ErgoData.data + + {" "} + -> Prop := +
+   |{" "} + + sem_EThisContract + {" "} + : forall a{" "} + mc env,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EThisContract + {" "} + + a + + ) ( + + env + + .( + + + env_this_contract + + + )) +
+   |{" "} + + sem_EThisClause + {" "} + : forall a{" "} + mc env,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EThisClause + {" "} + + a + + ) ( + + env + + .( + + + env_this_clause + + + )) +
+   |{" "} + + sem_EThisState + {" "} + : forall a{" "} + mc env,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EThisState + {" "} + + a + + ) ( + + env + + .( + + + env_this_state + + + )) +
+   |{" "} + + sem_EVar + {" "} + : forall a{" "} + mc env{" "} + v d,
+        + + + lookup + + {" "} + + + equiv_dec + + {" "} + + env + + .( + + env_variables + + ){" "} + + v + {" "} + ={" "} + + + Some + + {" "} + + d + {" "} + ->{" "} + + (*{" "} + + Γ(v) = d + {" "} + *) + +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EVar + {" "} + + a + {" "} + + v + + ){" "} + + d + {" "} +
+   |{" "} + + sem_EConst + {" "} + : forall a{" "} + mc env{" "} + d,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EConst + {" "} + + a + {" "} + + d + + ){" "} + + d + +
+   |{" "} + + sem_EArray_nil + {" "} + : forall a{" "} + mc env,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EArray + {" "} + + a + {" "} + + nil + + ) ( + + + ErgoData.dcoll + + {" "} + + nil + + )
+   |{" "} + + sem_EArray_cons + {" "} + : forall a1{" "} + a2 mc{" "} + env e1{" "} + el d1{" "} + dl,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e1 + {" "} + + d1 + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EArray + {" "} + + a1 + {" "} + + el + + ) ( + + + ErgoData.dcoll + + {" "} + + dl + + ) -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EArray + {" "} + + a2 + {" "} + ( + + e1 + + :: + + el + + )) ( + + + ErgoData.dcoll + + {" "} + ( + + d1 + + :: + + dl + + )) +
+   |{" "} + + sem_EUnaryOp + {" "} + : forall a{" "} + uop mc{" "} + env e1{" "} + h d1{" "} + d2,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e1 + {" "} + + d1 + {" "} + -> +
+        + + + ErgoOps.Unary.eval + + {" "} + + h + {" "} + + uop + {" "} + + d1 + {" "} + ={" "} + + + Some + + {" "} + + d2 + {" "} + ->{" "} + + (* ∧{" "} + + ⊞ d₁ = d₂ + {" "} + *) + +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EUnaryOp + {" "} + + a + {" "} + + uop + {" "} + + e1 + + ){" "} + + d2 + +
+   |{" "} + + sem_EBinnaryOp + {" "} + : forall a{" "} + bop mc{" "} + env e1{" "} + e2 h{" "} + d1 d2{" "} + d3,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e1 + {" "} + + d1 + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e2 + {" "} + + d2 + {" "} + -> +
+        + + + ErgoOps.Binary.eval + + {" "} + + h + {" "} + + bop + {" "} + + d1 + {" "} + + d2 + {" "} + ={" "} + + + Some + + {" "} + + d3 + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EBinaryOp + {" "} + + a + {" "} + + bop + {" "} + + e1 + {" "} + + e2 + + ){" "} + + d2 + +
+   |{" "} + + sem_EIf_true + {" "} + : forall a{" "} + mc env{" "} + e1 e2{" "} + e3 d,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e1 + {" "} + ( + + + ErgoData.dbool + + {" "} + + + true + + + ) -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e2 + {" "} + + d + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EIf + {" "} + + a + {" "} + + e1 + {" "} + + e2 + {" "} + + e3 + + ){" "} + + d + +
+   |{" "} + + sem_EIf_false + {" "} + : forall a{" "} + mc env{" "} + e1 e2{" "} + e3 d,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e1 + {" "} + ( + + + ErgoData.dbool + + {" "} + + + false + + + ) -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e3 + {" "} + + d + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + EIf + {" "} + + a + {" "} + + e1 + {" "} + + e2 + {" "} + + e3 + + ){" "} + + d + +
+   |{" "} + + sem_ELet + {" "} + : forall a{" "} + mc env{" "} + v e1{" "} + e2 d1{" "} + d2,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e1 + {" "} + + d1 + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + ( + + + env_add_variable + + {" "} + + env + {" "} + + v + {" "} + + d1 + + ){" "} + + e2 + {" "} + + d2 + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + ELet + {" "} + + a + {" "} + + v + {" "} + + + None + + {" "} + + e1 + {" "} + + e2 + + ){" "} + + d2 + +
+   |{" "} + + sem_ELet_typed + {" "} + : forall a{" "} + mc env{" "} + v t{" "} + e1 e2{" "} + d1 d2,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e1 + {" "} + + d1 + {" "} + -> +
+
instance_of d1 t1 = true ->
+
+        + + ergo_expr_sem + {" "} + + mc + {" "} + ( + + + env_add_variable + + {" "} + + env + {" "} + + v + {" "} + + d1 + + ){" "} + + e2 + {" "} + + d2 + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + ELet + {" "} + + a + {" "} + + v + {" "} + ( + + + Some + + {" "} + + t + + ){" "} + + e1 + {" "} + + e2 + + ){" "} + + d2 + +
+   |{" "} + + sem_ERecord_nil + {" "} + : forall a{" "} + mc env,
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + ERecord + {" "} + + a + {" "} + + nil + + ) ( + + + ErgoData.drec + + {" "} + + nil + + )
+   |{" "} + + sem_ERecord_cons + {" "} + : forall a1{" "} + a2 mc{" "} + env v{" "} + e1 el{" "} + d1 rl{" "} + rl', +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + + e1 + {" "} + + d1 + {" "} + -> +
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + ERecord + {" "} + + a1 + {" "} + + el + + ) ( + + + ErgoData.drec + + {" "} + + rl + + ) -> +
+        + + + rec_sort + + {" "} + (( + + v + + , + + d1 + + ):: + + rl + + ) = rl' ->
+        + + ergo_expr_sem + {" "} + + mc + {" "} + + env + {" "} + ( + + ERecord + {" "} + + a2 + {" "} + (( + + v + + , + + e1 + + ):: + + el + + )) ( + + + ErgoData.drec + + {" "} + rl'). +
+
+ End{" "} + + ErgoSem + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.html b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.html deleted file mode 100644 index 181d3310..00000000 --- a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - -Module ErgoSpec.Ergo.Lang.ErgoSugar - - - - - - -

Module ErgoSpec.Ergo.Lang.ErgoSugar

-
-
-
Ergo is a language for expressing contract logic.
-
-

Syntactic sugar

-
-Require Import String.
-Require Import List.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section ErgoSugar.
-  Context {A:Set}.
-  
-
expr.field is a macro for unbranding followed by field access in a record
-  Definition EDot (a:A) (s:string) (e:rergo_expr) : rergo_expr :=
-    EUnaryOp a
-             (ErgoOps.Unary.opdot s)
-             (EUnaryOp a ErgoOps.Unary.opunbrand e).
-
-  Definition SReturnEmpty (a:A) : rergo_stmt := SReturn a (EConst a dunit).
-
-  Definition EFunReturnEmpty (a:A) : rergo_expr := EConst a dunit.
-
-  Definition EOptionalDot (a:A) (pname:string) (e:rergo_expr) :=
-    EMatch a
-           e
-           ((CaseLetOption a "$option" None,
-             (ESome a
-                    (EDot a pname (EVar a "$option")))) :: nil)
-           (ENone a).
-
-  Definition EOptionalDefault (a:A) (e1 e2:rergo_expr) :=
-    EMatch a e1
-           ((CaseLetOption a "$option" None, EVar a "$option") :: nil)
-           e2.
-
-End ErgoSugar.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.jsx b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.jsx new file mode 100644 index 00000000..e468d76d --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Ergo.Lang.ErgoSugar.jsx @@ -0,0 +1,363 @@ +
+ + Module ErgoSpec.Ergo.Lang.ErgoSugar + + +

Module ErgoSpec.Ergo.Lang.ErgoSugar

+
+
+
+ Ergo is a language for expressing contract logic.{" "} +
+
+

Syntactic sugar

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+
+ Section{" "} + + ErgoSugar + + .
+   Context {"{"} + A:Set + {"}"}.
+    +
+
+ + expr.field + {" "} + is a macro for unbranding followed by field access in a record{" "} +
+   Definition{" "} + + EDot + {" "} + (a: + + A + + ) (s: + + + string + + + ) (e: + + rergo_expr + + ) :{" "} + + rergo_expr + {" "} + := +
+      + + EUnaryOp + {" "} + + a + +
+              ( + + + ErgoOps.Unary.opdot + + {" "} + + s + + )
+              ( + + EUnaryOp + {" "} + + a + {" "} + + + ErgoOps.Unary.opunbrand + + {" "} + + e + + ). +
+
+   Definition{" "} + + SReturnEmpty + {" "} + (a: + + A + + ) :{" "} + + rergo_stmt + {" "} + :={" "} + + SReturn + {" "} + + a + {" "} + ( + + EConst + {" "} + + a + {" "} + + + dunit + + + ). +
+
+   Definition{" "} + + EFunReturnEmpty + {" "} + (a: + + A + + ) :{" "} + + rergo_expr + {" "} + :={" "} + + EConst + {" "} + + a + {" "} + + + dunit + + + .
+
+   Definition{" "} + + EOptionalDot + {" "} + (a: + + A + + ) (pname: + + + string + + + ) (e: + + rergo_expr + + ) := +
+      + + EMatch + {" "} + + a + +
+             + + e + +
+            (( + + CaseLetOption + {" "} + + a + {" "} + "$option"{" "} + + + None + + + ,
+              ( + + ESome + {" "} + + a + +
+                     ( + + EDot + {" "} + + a + {" "} + + pname + {" "} + ( + + EVar + {" "} + + a + {" "} + "$option")))) ::{" "} + + nil + + )
+            ( + + ENone + {" "} + + a + + ). +
+
+   Definition{" "} + + EOptionalDefault + {" "} + (a: + + A + + ) (e1 e2: + + rergo_expr + + ) := +
+      + + EMatch + {" "} + + a + {" "} + + e1 + +
+            (( + + CaseLetOption + {" "} + + a + {" "} + "$option"{" "} + + + None + + + ,{" "} + + EVar + {" "} + + a + {" "} + "$option") ::{" "} + + nil + + )
+             + + e2 + + .
+
+ End{" "} + + ErgoSugar + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.html b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.html deleted file mode 100644 index 75c51727..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoC.Lang.ErgoC - - - - - - -

Module ErgoSpec.ErgoC.Lang.ErgoC

-
-
-
ErgoC is an intermediate language for the Ergo compiler in which: -
    -
  • - Clauses have been resolved to functions -
  • -
  • - This* expressions have been eliminated -
  • -
  • - Foreach expressions have only one dimension and no condition -
  • -
  • - Match expressions have only two branches
  • -
-
-
-

Abstract Syntax

-
-Require Import String.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-
-Section ErgoC.
-
-  Section Syntax.
-
-
Expression
-    Definition ergoc_expr := laergo_expr.
-
-    Record sigc :=
-      mkSigC
-        { sigc_params: list (string * laergo_type);
-          sigc_output : option laergo_type; }.
-
-
Function
-    Record ergoc_function :=
-      mkFuncC
-        { functionc_annot : provenance;
-          functionc_sig : sigc;
-          functionc_body : option ergoc_expr; }.
-
-    Definition bodyc_annot (f:ergoc_function) : provenance :=
-      match f.(functionc_body) with
-      | None => f.(functionc_annot)
-      | Some e => expr_annot e
-      end.
-    
-
Contract
-    Record ergoc_contract :=
-      mkContractC
-        { contractc_annot : provenance;
-          contractc_clauses : list (local_name * ergoc_function); }.
-
-
Declaration
-    Inductive ergoc_declaration :=
-    | DCExpr : provenance -> ergoc_expr -> ergoc_declaration
-    | DCConstant : provenance -> absolute_name -> option laergo_type -> ergoc_expr -> ergoc_declaration
-    | DCFunc : provenance -> absolute_name -> ergoc_function -> ergoc_declaration
-    | DCContract : provenance -> absolute_name -> ergoc_contract -> ergoc_declaration.
-
-
Module.
-    Record ergoc_module :=
-      mkModuleC
-        { modulec_annot : provenance;
-          modulec_namespace : string;
-          modulec_declarations : list ergoc_declaration; }.
-
-  End Syntax.
-
-  Section Semantics.
-
-  End Semantics.
-
-  Section Evaluation.
-  End Evaluation.
-
-End ErgoC.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.jsx b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.jsx new file mode 100644 index 00000000..7bd5d8ab --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoC.jsx @@ -0,0 +1,484 @@ +
+ + Module ErgoSpec.ErgoC.Lang.ErgoC + + +

Module ErgoSpec.ErgoC.Lang.ErgoC

+
+
+
+ ErgoC is an intermediate language for the Ergo compiler in which: +
    +
  • Clauses have been resolved to functions
  • +
  • This* expressions have been eliminated
  • +
  • Foreach expressions have only one dimension and no condition
  • +
  • Match expressions have only two branches
  • +
+
+
+

Abstract Syntax

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+
+ Section{" "} + + ErgoC + + .
+
+   Section{" "} + Syntax.
+
+
Expression
+     Definition{" "} + + ergoc_expr + {" "} + :={" "} + + laergo_expr + + .
+
+     Record{" "} + + sigc + {" "} + := +
+        + + mkSigC + +
+         {"{"}{" "} + + sigc_params + + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_type + + ); +
+            + + sigc_output + {" "} + :{" "} + + + option + + {" "} + + laergo_type + + ; {"}"}.
+
+
Function
+     Record{" "} + + ergoc_function + {" "} + := +
+        + + mkFuncC + +
+         {"{"}{" "} + + functionc_annot + {" "} + :{" "} + + provenance + + ;
+            + + functionc_sig + {" "} + :{" "} + + sigc + + ;
+            + + functionc_body + {" "} + :{" "} + + + option + + {" "} + + ergoc_expr + + ; {"}"}.
+
+     Definition{" "} + + bodyc_annot + {" "} + (f: + + ergoc_function + + ) :{" "} + + provenance + {" "} + := +
+       match{" "} + + f + + .( + + functionc_body + + ) with +
+       |{" "} + + + None + + {" "} + =>{" "} + + f + + .( + + + functionc_annot + + + )
+       |{" "} + + + Some + + {" "} + e =>{" "} + + expr_annot + {" "} + e +
+       end.
+      +
+
Contract
+     Record{" "} + + ergoc_contract + {" "} + := +
+        + + mkContractC + +
+         {"{"}{" "} + + contractc_annot + {" "} + :{" "} + + provenance + + ;
+            + + contractc_clauses + {" "} + :{" "} + + + list + + {" "} + ( + + local_name + {" "} + *{" "} + + ergoc_function + + ); {"}"}.
+
+
Declaration
+     Inductive{" "} + + ergoc_declaration + {" "} + := +
+     |{" "} + + DCExpr + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + ergoc_expr + {" "} + ->{" "} + + + ergoc_declaration + + +
+     |{" "} + + DCConstant + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + absolute_name + {" "} + ->{" "} + + + option + + {" "} + + laergo_type + {" "} + ->{" "} + + ergoc_expr + {" "} + ->{" "} + + + ergoc_declaration + + +
+     |{" "} + + DCFunc + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + absolute_name + {" "} + ->{" "} + + ergoc_function + {" "} + ->{" "} + + + ergoc_declaration + + +
+     |{" "} + + DCContract + {" "} + :{" "} + + provenance + {" "} + ->{" "} + + absolute_name + {" "} + ->{" "} + + ergoc_contract + {" "} + ->{" "} + + + ergoc_declaration + + + .
+
+
Module.
+     Record{" "} + + ergoc_module + {" "} + := +
+        + + mkModuleC + +
+         {"{"}{" "} + + modulec_annot + {" "} + :{" "} + + provenance + + ;
+            + + modulec_namespace + {" "} + :{" "} + + + string + + + ;
+            + + modulec_declarations + {" "} + :{" "} + + + list + + {" "} + + + ergoc_declaration + + + ; {"}"}.
+
+   End{" "} + Syntax.
+
+   Section{" "} + + Semantics + + .
+
+   End{" "} + + Semantics + + .
+
+   Section{" "} + + Evaluation + + .
+   End{" "} + + Evaluation + + .
+
+ End{" "} + + ErgoC + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.html b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.html deleted file mode 100644 index 5ff8bd53..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoC.Lang.ErgoCEval - - - - - - -

Module ErgoSpec.ErgoC.Lang.ErgoCEval

-
-
-
-Require Import String.
-Require Import List.
-Require Import Basics.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCEvalContext.
-
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-
-Section ErgoC.
-  Context {h:brand_relation}.
-
-  Definition ergo_unary_eval := ErgoOps.Unary.eval.
-  Definition ergo_binary_eval := ErgoOps.Binary.eval.
-
-  Fixpoint ergo_eval_expr (ctxt : eval_context) (expr : ergoc_expr) : eresult ergo_data :=
-    match expr with
-    | EThisContract prov => contract_in_calculus_error prov
-    | EThisClause prov => clause_in_calculus_error prov
-    | EThisState prov => state_in_calculus_error prov
-    | EVar prov name =>
-      match lookup String.string_dec (ctxt.(eval_context_local_env)++ctxt.(eval_context_global_env)) name with
-      | None => variable_name_not_found_error prov name
-      | Some d => esuccess d
-      end
-    | EConst prov d => esuccess d
-    | ENone prov => esuccess dnone
-    | ESome prov e => elift dsome (ergo_eval_expr ctxt e)
-    | EArray prov es =>
-      let rcoll :=
-          fold_left
-            (fun ls new =>
-               match ls with
-               | Success _ _ ls' =>
-                 match ergo_eval_expr ctxt new with
-                 | Success _ _ new' => esuccess (ls' ++ (new'::nil))
-                 | Failure _ _ f => efailure f
-                 end
-               | Failure _ _ f => efailure f
-               end)
-            es (esuccess nil)
-      in
-      elift dcoll rcoll
-    | EUnaryOp prov o e =>
-      match ergo_eval_expr ctxt e with
-      | Success _ _ e' =>
-        match ergo_unary_eval nil o e' with
-        | Some r => esuccess r
-        | None => eval_unary_op_error prov o
-        end
-      | Failure _ _ f => efailure f
-      end
-    | EBinaryOp prov o e1 e2 =>
-      match ergo_eval_expr ctxt e1 with
-      | Success _ _ e1' =>
-        match ergo_eval_expr ctxt e2 with
-        | Success _ _ e2' =>
-          match ergo_binary_eval nil o e1' e2' with
-          | Some r => esuccess r
-          | None => eval_binary_op_error prov o
-          end
-        | Failure _ _ f => efailure f
-        end
-      | Failure _ _ f => efailure f
-      end
-    | EIf prov c t f =>
-      match ergo_eval_expr ctxt c with
-      | Success _ _ (dbool true) => ergo_eval_expr ctxt t
-      | Success _ _ (dbool false) => ergo_eval_expr ctxt f
-      | Success _ _ _ => eval_if_not_boolean_error prov
-      | Failure _ _ f => efailure f
-      end
-    | ELet prov n t v e =>
-      match ergo_eval_expr ctxt v with
-      | Success _ _ v' =>
-        let ctxt' := eval_context_update_local_env ctxt n v' in
-        ergo_eval_expr ctxt' e
-      | Failure _ _ f => efailure f
-      end
-    | ERecord prov rs =>
-      let rrec :=
-          fold_left
-            (fun ls nv =>
-               let name := fst nv in
-               let value := snd nv in
-               match ls with
-               | Success _ _ ls' =>
-                 match ergo_eval_expr ctxt value with
-                 | Success _ _ value' => esuccess (ls' ++ ((name, value')::nil))
-                 | Failure _ _ f => efailure f
-                 end
-               | Failure _ _ f => efailure f
-               end)
-            rs (esuccess nil)
-      in
-      elift drec rrec
-    | ENew prov nr rs =>
-      match
-        fold_left
-          (fun ls nv =>
-             let name := fst nv in
-             let value := snd nv in
-             match ls with
-             | Success _ _ ls' =>
-               match ergo_eval_expr ctxt value with
-               | Success _ _ value' => esuccess (ls' ++ ((name, value')::nil))
-               | Failure _ _ f => efailure f
-               end
-             | Failure _ _ f => efailure f
-             end)
-          rs (esuccess nil)
-      with
-      | Failure _ _ f => efailure f
-      | Success _ _ r => esuccess (dbrand (nr::nil) (drec r))
-      end
-    | ECallFun prov fname args => function_not_inlined_error prov fname
-    | ECallFunInGroup prov gname fname args => function_in_group_not_inlined_error prov gname fname
-    | EMatch prov term pes default =>
-      let lift_dbrand :=
-          fun dat brand fn default =>
-            match dat with
-            | dbrand (br::nil) rcd =>
-              if sub_brands_dec brand_relation_brands (br::nil) (brand::nil) then
-                fn dat
-              else
-                default
-            | _ => default
-            end
-      in
-      match ergo_eval_expr ctxt term with
-      | Failure _ _ f => efailure f
-      | Success _ _ dat =>
-        fold_left
-          (fun default_result pe =>
-             match pe with
-             | (CaseData prov d, res) =>
-               if Data.data_eq_dec d dat then
-                 ergo_eval_expr ctxt res
-               else
-                 default_result
-             | (CaseWildcard prov None, res) =>
-               ergo_eval_expr ctxt res
-             | (CaseLet prov name None, res) =>
-               ergo_eval_expr (eval_context_update_local_env ctxt name dat) res
-             | (CaseLetOption prov name None, res) =>
-               match dat with
-               | dleft dat' => ergo_eval_expr (eval_context_update_local_env ctxt name dat') res
-               | _ => default_result
-               end
-             | (CaseWildcard prov (Some typ), res) =>
-               lift_dbrand dat typ
-                           (fun dat' => ergo_eval_expr ctxt res)
-                           default_result
-             | (CaseLet prov name (Some typ), res) =>
-               lift_dbrand dat typ
-                           (fun dat' => ergo_eval_expr
-                                          (eval_context_update_local_env ctxt name dat')
-                                          res)
-                           default_result
-             | (CaseLetOption prov name (Some typ), res) =>
-               match dat with
-               | dleft dat' =>
-                lift_dbrand dat' typ
-                            (fun dat' => ergo_eval_expr
-                                            (eval_context_update_local_env ctxt name dat')
-                                            res)
-                            default_result
-               | _ => default_result
-               end
-             end)
-          pes (ergo_eval_expr ctxt default)
-       end
-
-    | EForeach prov ((name,arr)::nil) None fn =>
-      match ergo_eval_expr ctxt arr with
-      | Failure _ _ f => efailure f
-      | Success _ _ (dcoll arr') =>
-        (elift dcoll)
-          (emaplift
-             (fun elt => ergo_eval_expr (eval_context_update_local_env ctxt name elt) fn)
-             arr')
-      | Success _ _ _ => eval_foreach_not_on_array_error prov
-      end
-    | EForeach prov _ _ _ =>
-      complex_foreach_in_calculus_error prov
-    end.
-
-  Definition ergoc_eval_decl
-             (dctxt : eval_context)
-             (decl : ergoc_declaration)
-    : eresult (eval_context * option ergo_data) :=
-    match decl with
-    | DCExpr prov expr =>
-      elift (fun x => (dctxt, Some x)) (ergo_eval_expr dctxt expr)
-    | DCConstant prov name ta expr =>
-      let expr' := ergo_eval_expr dctxt expr in
-      eolift (fun val => esuccess (eval_context_update_global_env dctxt name val, None)) expr'
-    | DCFunc prov name func =>
-      esuccess (dctxt, None)
-    | DCContract prov name contr =>
-      esuccess (dctxt, None)
-    end.
-
-End ErgoC.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.jsx b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.jsx new file mode 100644 index 00000000..510891dc --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEval.jsx @@ -0,0 +1,1926 @@ +
+ + Module ErgoSpec.ErgoC.Lang.ErgoCEval + + +

Module ErgoSpec.ErgoC.Lang.ErgoCEval

+
+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + Basics + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCEvalContext + + + .
+
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+
+ Section{" "} + + ErgoC + + .
+   Context {"{"} + h: + + + brand_relation + + + {"}"}.
+
+   Definition{" "} + + ergo_unary_eval + {" "} + :={" "} + + + ErgoOps.Unary.eval + + + .
+   Definition{" "} + + ergo_binary_eval + {" "} + :={" "} + + + ErgoOps.Binary.eval + + + .
+
+   Fixpoint{" "} + + ergo_eval_expr + {" "} + (ctxt :{" "} + + + eval_context + + + ) (expr :{" "} + + ergoc_expr + + ) :{" "} + + eresult + {" "} + + ergo_data + {" "} + := +
+     match{" "} + + expr + {" "} + with +
+     |{" "} + + EThisContract + {" "} + prov =>{" "} + + + contract_in_calculus_error + + {" "} + prov +
+     |{" "} + + EThisClause + {" "} + prov =>{" "} + + + clause_in_calculus_error + + {" "} + prov +
+     |{" "} + + EThisState + {" "} + prov =>{" "} + + + state_in_calculus_error + + {" "} + prov +
+     |{" "} + + EVar + {" "} + prov name => +
+       match{" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + ( + + ctxt + + .( + + + eval_context_local_env + + + )++ + + ctxt + + .( + + + eval_context_global_env + + + )) name with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + variable_name_not_found_error + + {" "} + prov name +
+       |{" "} + + + Some + + {" "} + d =>{" "} + + esuccess + {" "} + d +
+       end +
+     |{" "} + + EConst + {" "} + prov d =>{" "} + + esuccess + {" "} + d +
+     |{" "} + + ENone + {" "} + prov =>{" "} + + esuccess + {" "} + + + dnone + + +
+     |{" "} + + ESome + {" "} + prov e =>{" "} + + elift + {" "} + + + dsome + + {" "} + ( + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + e)
+     |{" "} + + EArray + {" "} + prov es => +
+       let{" "} + rcoll := +
+            + + + fold_left + + +
+             ( + fun ls{" "} + new => +
+                 + match{" "} + + ls + {" "} + with +
+                |{" "} + + + Success + + {" "} + _ _{" "} + ls' => +
+                   + match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + + new + {" "} + with +
+                  |{" "} + + + Success + + {" "} + _ _{" "} + new' =>{" "} + + esuccess + {" "} + (ls' ++ (new':: + + nil + + )) +
+                  |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+                   + end +
+                |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+                 + end)
+              + es ( + + esuccess + {" "} + + nil + + )
+       in +
+        + + elift + {" "} + + + dcoll + + {" "} + + rcoll + +
+     |{" "} + + EUnaryOp + {" "} + prov o{" "} + e => +
+       match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + e with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + e' => +
+          + match{" "} + + + ergo_unary_eval + + {" "} + + nil + {" "} + o e'{" "} + with +
+         |{" "} + + + Some + + {" "} + r =>{" "} + + esuccess + {" "} + r +
+         |{" "} + + + None + + {" "} + =>{" "} + + + eval_unary_op_error + + {" "} + prov o +
+          + end +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       end +
+     |{" "} + + EBinaryOp + {" "} + prov o{" "} + e1 e2 => +
+       match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + e1 with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + e1' => +
+          + match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + e2 with +
+         |{" "} + + + Success + + {" "} + _ _{" "} + e2' => +
+            + match{" "} + + + ergo_binary_eval + + {" "} + + nil + {" "} + o e1'{" "} + e2' with +
+           |{" "} + + + Some + + {" "} + r =>{" "} + + esuccess + {" "} + r +
+           |{" "} + + + None + + {" "} + =>{" "} + + + eval_binary_op_error + + {" "} + prov o +
+            + end +
+         |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+          + end +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       end +
+     |{" "} + + EIf + {" "} + prov c{" "} + t f => +
+       match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + c with +
+       |{" "} + + + Success + + {" "} + _ _ ( + + + dbool + + {" "} + + + true + + + ) =>{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + t +
+       |{" "} + + + Success + + {" "} + _ _ ( + + + dbool + + {" "} + + + false + + + ) =>{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + f +
+       |{" "} + + + Success + + {" "} + _ _{" "} + _ =>{" "} + + + eval_if_not_boolean_error + + {" "} + prov +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       end +
+     |{" "} + + ELet + {" "} + prov n{" "} + t v{" "} + e => +
+       match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + v with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + v' => +
+          + let ctxt' :={" "} + + + eval_context_update_local_env + + {" "} + + ctxt + {" "} + n v'{" "} + in +
+          + + + ergo_eval_expr + + {" "} + ctxt' e +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       end +
+     |{" "} + + ERecord + {" "} + prov rs => +
+       let{" "} + rrec := +
+            + + + fold_left + + +
+             ( + fun ls{" "} + nv => +
+                 + let name :={" "} + + fst + {" "} + + nv + {" "} + in +
+                 + let value :={" "} + + snd + {" "} + + nv + {" "} + in +
+                 + match{" "} + + ls + {" "} + with +
+                |{" "} + + + Success + + {" "} + _ _{" "} + ls' => +
+                   + match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + + value + {" "} + with +
+                  |{" "} + + + Success + + {" "} + _ _{" "} + value' =>{" "} + + esuccess + {" "} + (ls' ++ (( + + name + + , value'):: + + nil + + )) +
+                  |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+                   + end +
+                |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+                 + end)
+              + rs ( + + esuccess + {" "} + + nil + + )
+       in +
+        + + elift + {" "} + + + drec + + {" "} + + rrec + +
+     |{" "} + + ENew + {" "} + prov nr{" "} + rs => +
+       match +
+          + + + fold_left + + +
+           ( + fun ls{" "} + nv => +
+               + let name :={" "} + + fst + {" "} + + nv + {" "} + in +
+               + let value :={" "} + + snd + {" "} + + nv + {" "} + in +
+               + match{" "} + + ls + {" "} + with +
+              |{" "} + + + Success + + {" "} + _ _{" "} + ls' => +
+                 + match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + + value + {" "} + with +
+                |{" "} + + + Success + + {" "} + _ _{" "} + value' =>{" "} + + esuccess + {" "} + (ls' ++ (( + + name + + , value'):: + + nil + + )) +
+                |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+                 + end +
+              |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+               + end)
+            + rs ( + + esuccess + {" "} + + nil + + )
+       with +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       |{" "} + + + Success + + {" "} + _ _{" "} + r =>{" "} + + esuccess + {" "} + ( + + + dbrand + + {" "} + (nr:: + + nil + + ) ( + + + drec + + {" "} + r)) +
+       end +
+     |{" "} + + ECallFun + {" "} + prov fname{" "} + args =>{" "} + + + function_not_inlined_error + + {" "} + prov fname +
+     |{" "} + + ECallFunInGroup + {" "} + prov gname{" "} + fname args =>{" "} + + + function_in_group_not_inlined_error + + {" "} + prov gname{" "} + fname +
+     |{" "} + + EMatch + {" "} + prov term{" "} + pes default => +
+       let{" "} + lift_dbrand := +
+            + fun dat{" "} + brand fn{" "} + default =>
+              + match{" "} + + dat + {" "} + with +
+             |{" "} + + + dbrand + + {" "} + (br:: + + nil + + ) rcd => +
+                + if{" "} + + + sub_brands_dec + + {" "} + + + brand_relation_brands + + {" "} + (br:: + + nil + + ) ( + + brand + + :: + + nil + + ) then +
+                  + + fn + {" "} + + dat + +
+                + else +
+                  + + default + +
+             |{" "} + _ =>{" "} + + default + +
+              + end +
+       in +
+       match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + term with +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       |{" "} + + + Success + + {" "} + _ _{" "} + dat => +
+          + + + fold_left + + +
+           ( + + fun + default_result{" "} + pe => +
+               + match{" "} + + pe + {" "} + with +
+              | + ( + + CaseData + {" "} + prov d,{" "} + res) => +
+                 + if{" "} + + + Data.data_eq_dec + + {" "} + d dat{" "} + then +
+                   + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + res +
+                 + else +
+                   + + + default_result + + +
+              | + ( + + CaseWildcard + {" "} + prov{" "} + + + None + + + , res) => +
+                 + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + res +
+              | + ( + + CaseLet + {" "} + prov name{" "} + + + None + + + , res) => +
+                 + + + ergo_eval_expr + + {" "} + ( + + + eval_context_update_local_env + + {" "} + + ctxt + {" "} + name dat){" "} + res +
+              | + ( + + CaseLetOption + {" "} + prov name{" "} + + + None + + + , res) => +
+                 + match dat{" "} + with +
+                |{" "} + + + dleft + + {" "} + dat' =>{" "} + + + ergo_eval_expr + + {" "} + ( + + + eval_context_update_local_env + + {" "} + + ctxt + {" "} + name dat'){" "} + res +
+                |{" "} + _ =>{" "} + + + default_result + + +
+                 + end +
+              | + ( + + CaseWildcard + {" "} + prov ( + + + Some + + {" "} + typ), res) => +
+                 + + lift_dbrand + {" "} + dat typ +
+                            ( + fun dat' =>{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + res)
+                             + + + default_result + + +
+              | + ( + + CaseLet + {" "} + prov name ( + + + Some + + {" "} + typ), res) => +
+                 + + lift_dbrand + {" "} + dat typ +
+                            ( + fun dat' =>{" "} + + + ergo_eval_expr + + +
+                                           ( + + + eval_context_update_local_env + + {" "} + + ctxt + {" "} + name dat') +
+                                            + res)
+                             + + + default_result + + +
+              | + ( + + CaseLetOption + {" "} + prov name ( + + + Some + + {" "} + typ), res) => +
+                 + match dat{" "} + with +
+                |{" "} + + + dleft + + {" "} + dat' => +
+                  + + lift_dbrand + {" "} + dat' typ +
+                             ( + fun dat' =>{" "} + + + ergo_eval_expr + + +
+                                             ( + + + eval_context_update_local_env + + {" "} + + ctxt + {" "} + name dat') +
+                                              + res)
+                              + + + default_result + + +
+                |{" "} + _ =>{" "} + + + default_result + + +
+                 + end +
+               + end)
+            + pes ( + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + default)
+        end +
+
+     |{" "} + + EForeach + {" "} + prov ((name, + arr):: + + nil + + ){" "} + + + None + + {" "} + fn => +
+       match{" "} + + + ergo_eval_expr + + {" "} + + ctxt + {" "} + arr with +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       |{" "} + + + Success + + {" "} + _ _ ( + + + dcoll + + {" "} + arr') => +
+         ( + + elift + {" "} + + + dcoll + + + )
+           ( + + emaplift + +
+              ( + fun elt =>{" "} + + + ergo_eval_expr + + {" "} + ( + + + eval_context_update_local_env + + {" "} + + ctxt + {" "} + name{" "} + + elt + + ) fn)
+               + arr') +
+       |{" "} + + + Success + + {" "} + _ _{" "} + _ =>{" "} + + + eval_foreach_not_on_array_error + + {" "} + prov +
+       end +
+     |{" "} + + EForeach + {" "} + prov _{" "} + _ _ => +
+        + + + complex_foreach_in_calculus_error + + {" "} + prov +
+     end.
+
+   Definition{" "} + + ergoc_eval_decl + +
+              ( + dctxt :{" "} + + + eval_context + + + )
+              ( + decl :{" "} + + + ergoc_declaration + + + )
+     :{" "} + + eresult + {" "} + ( + + + eval_context + + {" "} + *{" "} + + + option + + {" "} + + ergo_data + + ) := +
+     match{" "} + + decl + {" "} + with +
+     |{" "} + + DCExpr + {" "} + prov expr => +
+        + + elift + {" "} + (fun x => ( + + dctxt + + ,{" "} + + + Some + + {" "} + + x + + )) ( + + + ergo_eval_expr + + {" "} + + dctxt + {" "} + expr)
+     |{" "} + + DCConstant + {" "} + prov name{" "} + ta expr => +
+       let{" "} + expr' :={" "} + + + ergo_eval_expr + + {" "} + + dctxt + {" "} + expr in +
+        + + eolift + {" "} + (fun val =>{" "} + + esuccess + {" "} + ( + + + eval_context_update_global_env + + {" "} + + dctxt + {" "} + name{" "} + + val + + ,{" "} + + + None + + + )) expr'
+     |{" "} + + DCFunc + {" "} + prov name{" "} + func => +
+        + + esuccess + {" "} + ( + + dctxt + + ,{" "} + + + None + + + )
+     |{" "} + + DCContract + {" "} + prov name{" "} + contr => +
+        + + esuccess + {" "} + ( + + dctxt + + ,{" "} + + + None + + + )
+     end.
+
+ End{" "} + + ErgoC + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.html b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.html deleted file mode 100644 index be636db0..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoC.Lang.ErgoCEvalContext - - - - - - -

Module ErgoSpec.ErgoC.Lang.ErgoCEvalContext

-
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-
-Section ErgoCEvalContext.
-
-  Record eval_context :=
-    mkEvalContext
-      { eval_context_global_env : list (string * ergo_data);
-        eval_context_local_env : list (string * ergo_data);
-      }.
-
-  Definition eval_context_update_global_env
-             (ctxt : eval_context)
-             (name : string)
-             (value : ergo_data) : eval_context :=
-    mkEvalContext ((name, value)::ctxt.(eval_context_global_env))
-                  ctxt.(eval_context_local_env).
-
-  Definition eval_context_update_local_env
-             (ctxt : eval_context)
-             (name : string)
-             (value : ergo_data) : eval_context :=
-    mkEvalContext ctxt.(eval_context_global_env)
-                  ((name, value)::ctxt.(eval_context_local_env)).
-
-  Definition eval_context_set_local_env
-             (ctxt : eval_context)
-             (new_local_env : list (string * ergo_data)) : eval_context :=
-    mkEvalContext ctxt.(eval_context_global_env)
-                  new_local_env.
-
-  Definition empty_eval_context :=
-    mkEvalContext ((current_time, dforeign (ErgoEnhancedModel.enhanceddateTime ErgoEnhancedModel.enhanceddateTime_now))
-                      ::(this_contract, dunit)
-                      ::(this_state, dunit)
-                      ::(this_emit, dcoll nil)
-                      ::nil)
-                   (nil).
-
-End ErgoCEvalContext.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.jsx b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.jsx new file mode 100644 index 00000000..a082bf0e --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCEvalContext.jsx @@ -0,0 +1,426 @@ +
+ + Module ErgoSpec.ErgoC.Lang.ErgoCEvalContext + + +

Module ErgoSpec.ErgoC.Lang.ErgoCEvalContext

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+
+ Section{" "} + + ErgoCEvalContext + + .
+
+   Record{" "} + + eval_context + {" "} + := +
+      + + mkEvalContext + +
+       {"{"}{" "} + + eval_context_global_env + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_data + + ); +
+          + + eval_context_local_env + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_data + + ); +
+       {"}"}.
+
+   Definition{" "} + + + eval_context_update_global_env + + +
+              ( + ctxt :{" "} + + + eval_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergo_data + + ) :{" "} + + + eval_context + + {" "} + := +
+      + + + mkEvalContext + + {" "} + (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + eval_context_global_env + + + )) +
+                    + + ctxt + + .( + + + eval_context_local_env + + + ). +
+
+   Definition{" "} + + eval_context_update_local_env + +
+              ( + ctxt :{" "} + + + eval_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergo_data + + ) :{" "} + + + eval_context + + {" "} + := +
+      + + + mkEvalContext + + {" "} + + ctxt + + .( + + + eval_context_global_env + + + )
+                   (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + eval_context_local_env + + + )). +
+
+   Definition{" "} + + eval_context_set_local_env + +
+              ( + ctxt :{" "} + + + eval_context + + + )
+              ( + new_local_env :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergo_data + + )) :{" "} + + + eval_context + + {" "} + := +
+      + + + mkEvalContext + + {" "} + + ctxt + + .( + + + eval_context_global_env + + + )
+                    + + + new_local_env + + + .
+
+   Definition{" "} + + empty_eval_context + {" "} + := +
+      + + + mkEvalContext + + {" "} + (( + + current_time + + ,{" "} + + + dforeign + + {" "} + ( + + + ErgoEnhancedModel.enhanceddateTime + + {" "} + + + ErgoEnhancedModel.enhanceddateTime_now + + + )) +
+                       ::( + + this_contract + + ,{" "} + + + dunit + + + )
+                       ::( + + this_state + + ,{" "} + + + dunit + + + )
+                       ::( + + this_emit + + ,{" "} + + + dcoll + + {" "} + + nil + + )
+                       :: + + nil + + )
+                    ( + + nil + + ). +
+
+ End{" "} + + + ErgoCEvalContext + + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.html b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.html deleted file mode 100644 index 93c53155..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoC.Lang.ErgoCStdlib - - - - - - -

Module ErgoSpec.ErgoC.Lang.ErgoCStdlib

-
-
-Require Import String.
-Require Import List.
-
-Require Import Qcert.Common.CommonSystem.
-Require Import ErgoSpec.Backend.Model.DateTimeModelPart.
-Require Import ErgoSpec.Backend.Model.ErgoEnhancedModel.
-Require Import ErgoSpec.Backend.ForeignErgo.
-Require Import ErgoSpec.Backend.Model.ErgoBackendModel.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-
-Section ErgoCStdlib.
-  Local Open Scope string.
-
-  Definition empty_sigc prov (params:list string) :=
-    mkSigC
-      (List.map (fun x => (x,ErgoTypeAny prov)) params)
-      (Some (ErgoTypeUnit prov)).
-
-  Definition mk_naked_closure prov (params:list string) (body:ergoc_expr) : ergoc_function :=
-    mkFuncC
-      prov
-      (empty_sigc prov params)
-      (Some body).
-
-  Definition mk_unary prov op : ergoc_function :=
-    mk_naked_closure
-      prov
-      ("p1"::nil)
-      (EUnaryOp prov op (EVar prov "p1")).
-
-  Definition mk_binary_expr prov e : ergoc_function :=
-    mk_naked_closure
-      prov
-      ("p1"::"p2"::nil)
-      e.
-
-  Definition mk_binary prov op : ergoc_function :=
-    mk_binary_expr
-      prov
-      (EBinaryOp prov op (EVar prov "p1") (EVar prov "p2")).
-
-  Definition ergo_stdlib_table : Set := list (string * ergoc_function).
-  
-  Definition backend_compose_table (t1 t2:ergo_stdlib_table) : ergo_stdlib_table :=
-    List.app t1 t2.
-
-  Definition foreign_unary_operator_table prov : ergo_stdlib_table :=
-    ("org.accordproject.ergo.stdlib.dateTime"%string,
-     mk_unary prov (OpForeignUnary (enhanced_unary_date_time_op uop_date_time_from_string)))
-      :: ("org.accordproject.ergo.stdlib.dateTimeDayOfMonth",
-          mk_unary prov (OpForeignUnary (enhanced_unary_date_time_op (uop_date_time_component date_time_DAY))))
-      :: ("org.accordproject.ergo.stdlib.dateTimeMonth",
-          mk_unary prov (OpForeignUnary (enhanced_unary_date_time_op (uop_date_time_component date_time_MONTH))))
-      :: ("org.accordproject.ergo.stdlib.dateTimeQuarter",
-          mk_unary prov (OpForeignUnary (enhanced_unary_date_time_op (uop_date_time_component date_time_QUARTER))))
-      :: ("org.accordproject.ergo.stdlib.dateTimeYear",
-          mk_unary prov (OpForeignUnary (enhanced_unary_date_time_op (uop_date_time_component date_time_YEAR))))
-      :: nil.
-
-  Definition foreign_binary_operator_table prov : ergo_stdlib_table :=
-    ("org.accordproject.ergo.stdlib.dateTimeIsAfter",
-     mk_binary prov (OpForeignBinary (enhanced_binary_date_time_op bop_date_time_gt)))
-  :: ("org.accordproject.ergo.stdlib.dateTimeIsBefore",
-      mk_binary prov (OpForeignBinary (enhanced_binary_date_time_op bop_date_time_lt)))
-  :: ("org.accordproject.ergo.stdlib.dateTimeSubtract",
-      mk_binary prov (OpForeignBinary (enhanced_binary_date_time_op bop_date_time_minus)))
-  :: ("org.accordproject.ergo.stdlib.dateTimeAdd",
-      mk_binary prov (OpForeignBinary (enhanced_binary_date_time_op bop_date_time_plus)))
-  :: ("org.accordproject.ergo.stdlib.dateTimeDiff",
-      mk_binary prov (OpForeignBinary (enhanced_binary_date_time_op bop_date_time_duration)))
-  :: ("org.accordproject.ergo.stdlib.dateTimeDiffDays",
-      mk_binary prov (OpForeignBinary (enhanced_binary_date_time_op bop_date_time_duration_days)))
-  :: ("org.accordproject.ergo.stdlib.dateTimeDiffSeconds",
-      mk_binary prov (OpForeignBinary (enhanced_binary_date_time_op bop_date_time_duration_seconds)))
-  :: nil.
-
-  Definition foreign_function_table prov : ergo_stdlib_table :=
-    ("org.accordproject.ergo.stdlib.dateTimeIsSame",
-     mk_binary_expr
-       prov
-       (EUnaryOp
-          prov
-          OpNeg
-          (EBinaryOp
-             prov
-             (OpForeignBinary (enhanced_binary_date_time_op
-                                 bop_date_time_ne))
-             (EVar prov "p1") (EVar prov "p2"))))
-      :: ("org.accordproject.ergo.stdlib.dateTimeDuration",
-          mk_binary_expr
-            prov
-            (ELet prov
-                  "v1"%string
-                  None
-                  (EUnaryOp prov OpToString (EVar prov "p1"%string))
-                  (ELet prov "v2"%string None
-                        (EBinaryOp prov OpStringConcat
-                                   (EConst prov (dstring "-"%string))
-                                   (EVar prov "p2"%string))
-                        (EUnaryOp prov
-                                  (OpForeignUnary
-                                     (enhanced_unary_date_time_op uop_date_time_duration_from_string))
-                                  (EBinaryOp prov OpStringConcat
-                                             (EVar prov "v1"%string)
-                                             (EVar prov "v2"%string))))))
-      :: nil.
-
-  Definition foreign_table prov : ergo_stdlib_table :=
-    backend_compose_table (foreign_function_table prov)
-                          (backend_compose_table (foreign_unary_operator_table prov)
-                                                 (foreign_binary_operator_table prov)).
-
-  Definition unary_operator_table prov : ergo_stdlib_table :=
-    ("org.accordproject.ergo.stdlib.toString", mk_unary prov OpToString)
-      :: ("org.accordproject.ergo.stdlib.integerAbs", mk_unary prov (OpNatUnary NatAbs))
-      :: ("org.accordproject.ergo.stdlib.integerLog2", mk_unary prov (OpNatUnary NatLog2))
-      :: ("org.accordproject.ergo.stdlib.integerSqrt", mk_unary prov (OpNatUnary NatSqrt))
-      :: ("org.accordproject.ergo.stdlib.integerToDouble", mk_unary prov OpFloatOfNat)
-      :: ("org.accordproject.ergo.stdlib.sqrt", mk_unary prov (OpFloatUnary FloatSqrt))
-      :: ("org.accordproject.ergo.stdlib.exp", mk_unary prov (OpFloatUnary FloatExp))
-      :: ("org.accordproject.ergo.stdlib.log", mk_unary prov (OpFloatUnary FloatLog))
-      :: ("org.accordproject.ergo.stdlib.log10", mk_unary prov (OpFloatUnary FloatLog10))
-      :: ("org.accordproject.ergo.stdlib.ceil", mk_unary prov (OpFloatUnary FloatCeil))
-      :: ("org.accordproject.ergo.stdlib.floor", mk_unary prov (OpFloatUnary FloatFloor))
-      :: ("org.accordproject.ergo.stdlib.abs", mk_unary prov (OpFloatUnary FloatAbs))
-      :: ("org.accordproject.ergo.stdlib.max", mk_unary prov OpFloatBagMax)
-      :: ("org.accordproject.ergo.stdlib.min", mk_unary prov OpFloatBagMin)
-      :: ("org.accordproject.ergo.stdlib.average", mk_unary prov OpFloatMean)
-      :: ("org.accordproject.ergo.stdlib.sum", mk_unary prov OpFloatSum)
-      :: ("org.accordproject.ergo.stdlib.doubleToInteger", mk_unary prov OpFloatTruncate)
-      :: ("org.accordproject.ergo.stdlib.truncate", mk_unary prov OpFloatTruncate)
-      :: ("org.accordproject.ergo.stdlib.distinct", mk_unary prov OpDistinct)
-      :: ("org.accordproject.ergo.stdlib.count", mk_unary prov OpCount)
-      :: ("org.accordproject.ergo.stdlib.flatten", mk_unary prov OpFlatten)
-      :: nil.
-
-    Definition binary_operator_table prov : ergo_stdlib_table :=
-      ("org.accordproject.ergo.stdlib.integerMod", mk_binary prov (OpNatBinary NatRem))
-        :: ("org.accordproject.ergo.stdlib.integerMin", mk_binary prov (OpNatBinary NatMin))
-        :: ("org.accordproject.ergo.stdlib.integerMax", mk_binary prov (OpNatBinary NatMax))
-        :: ("org.accordproject.ergo.stdlib.minPair", mk_binary prov (OpFloatBinary FloatMin))
-        :: ("org.accordproject.ergo.stdlib.maxPair", mk_binary prov (OpFloatBinary FloatMax))
-        :: ("org.accordproject.ergo.stdlib.arrayAdd", mk_binary prov OpBagUnion)
-        :: ("org.accordproject.ergo.stdlib.arraySubstract", mk_binary prov OpBagDiff)
-        :: nil.
-
-    Definition builtin_table prov : ergo_stdlib_table :=
-      ("org.accordproject.ergo.stdlib.now", mk_naked_closure prov nil (EVar prov "now"))
-        :: nil.
-
-    Definition ergoc_stdlib : ergo_stdlib_table :=
-      let prov := dummy_provenance in
-      backend_compose_table (foreign_table prov)
-     (backend_compose_table (builtin_table prov)
-     (backend_compose_table (unary_operator_table prov) (binary_operator_table prov))).
-
-End ErgoCStdlib.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.jsx b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.jsx new file mode 100644 index 00000000..26ac04ae --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCStdlib.jsx @@ -0,0 +1,1815 @@ +
+ + Module ErgoSpec.ErgoC.Lang.ErgoCStdlib + + +

Module ErgoSpec.ErgoC.Lang.ErgoCStdlib

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + Qcert.Common.CommonSystem + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.DateTimeModelPart + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoEnhancedModel + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ForeignErgo + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.Model.ErgoBackendModel + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+
+ Section{" "} + + ErgoCStdlib + + .
+   Local{" "} + Open Scope{" "} + string.
+
+   Definition{" "} + + empty_sigc + {" "} + prov (params: + + + list + + {" "} + + + string + + + ) := +
+      + + mkSigC + +
+       ( + + List.map + {" "} + (fun x => ( + + x + + , + + ErgoTypeAny + {" "} + + prov + + )){" "} + + params + + )
+       ( + + + Some + + {" "} + ( + + + ErgoTypeUnit + + {" "} + + prov + + )). +
+
+   Definition{" "} + + mk_naked_closure + {" "} + prov (params: + + + list + + {" "} + + + string + + + ) (body: + + ergoc_expr + + ) :{" "} + + ergoc_function + {" "} + := +
+      + + mkFuncC + +
+        + + prov + +
+       ( + + empty_sigc + {" "} + + prov + {" "} + + params + + )
+       ( + + + Some + + {" "} + + body + + ). +
+
+   Definition{" "} + + mk_unary + {" "} + prov op :{" "} + + ergoc_function + {" "} + := +
+      + + + mk_naked_closure + + +
+        + + prov + +
+       ("p1":: + + nil + + )
+       ( + + EUnaryOp + {" "} + + prov + {" "} + + op + {" "} + ( + + EVar + {" "} + + prov + {" "} + "p1")). +
+
+   Definition{" "} + + mk_binary_expr + {" "} + prov e :{" "} + + ergoc_function + {" "} + := +
+      + + + mk_naked_closure + + +
+        + + prov + +
+       ("p1"::" + p2":: + + nil + + )
+        + + e + + .
+
+   Definition{" "} + + mk_binary + {" "} + prov op :{" "} + + ergoc_function + {" "} + := +
+      + + + mk_binary_expr + + +
+        + + prov + +
+       ( + + EBinaryOp + {" "} + + prov + {" "} + + op + {" "} + ( + + EVar + {" "} + + prov + {" "} + "p1") ( + + EVar + {" "} + + prov + {" "} + "p2")). +
+
+   Definition{" "} + + ergo_stdlib_table + {" "} + : Set :={" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_function + + ). +
+    +
+   Definition{" "} + + backend_compose_table + {" "} + (t1 t2: + + + ergo_stdlib_table + + + ) :{" "} + + + ergo_stdlib_table + + {" "} + := +
+      + + List.app + {" "} + + t1 + {" "} + + t2 + + .
+
+   Definition{" "} + + foreign_unary_operator_table + {" "} + prov :{" "} + + + ergo_stdlib_table + + {" "} + := +
+     (" + org.accordproject.ergo.stdlib.dateTime"% + string,
+       + + mk_unary + {" "} + + prov + {" "} + ( + + + OpForeignUnary + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + + + uop_date_time_from_string + + + ))) +
+       :: (" + org.accordproject.ergo.stdlib.dateTimeDayOfMonth + ", +
+            + + mk_unary + {" "} + + prov + {" "} + ( + + + OpForeignUnary + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + ( + + + uop_date_time_component + + {" "} + + + date_time_DAY + + + )))) +
+       :: (" + org.accordproject.ergo.stdlib.dateTimeMonth", +
+            + + mk_unary + {" "} + + prov + {" "} + ( + + + OpForeignUnary + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + ( + + + uop_date_time_component + + {" "} + + + date_time_MONTH + + + )))) +
+       :: (" + org.accordproject.ergo.stdlib.dateTimeQuarter", +
+            + + mk_unary + {" "} + + prov + {" "} + ( + + + OpForeignUnary + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + ( + + + uop_date_time_component + + {" "} + + + date_time_QUARTER + + + )))) +
+       :: (" + org.accordproject.ergo.stdlib.dateTimeYear", +
+            + + mk_unary + {" "} + + prov + {" "} + ( + + + OpForeignUnary + + {" "} + ( + + + enhanced_unary_date_time_op + + {" "} + ( + + + uop_date_time_component + + {" "} + + + date_time_YEAR + + + )))) +
+       ::{" "} + + nil + + .
+
+   Definition{" "} + + foreign_binary_operator_table + {" "} + prov :{" "} + + + ergo_stdlib_table + + {" "} + := +
+     (" + org.accordproject.ergo.stdlib.dateTimeIsAfter", +
+       + + mk_binary + {" "} + + prov + {" "} + ( + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_gt + + + ))) +
+   :: (" + org.accordproject.ergo.stdlib.dateTimeIsBefore", +
+        + + mk_binary + {" "} + + prov + {" "} + ( + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_lt + + + ))) +
+   :: (" + org.accordproject.ergo.stdlib.dateTimeSubtract", +
+        + + mk_binary + {" "} + + prov + {" "} + ( + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_minus + + + ))) +
+   :: (" + org.accordproject.ergo.stdlib.dateTimeAdd", +
+        + + mk_binary + {" "} + + prov + {" "} + ( + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_plus + + + ))) +
+   :: (" + org.accordproject.ergo.stdlib.dateTimeDiff", +
+        + + mk_binary + {" "} + + prov + {" "} + ( + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_duration + + + ))) +
+   :: (" + org.accordproject.ergo.stdlib.dateTimeDiffDays", +
+        + + mk_binary + {" "} + + prov + {" "} + ( + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_duration_days + + + ))) +
+   :: (" + + org.accordproject.ergo.stdlib.dateTimeDiffSeconds + + ", +
+        + + mk_binary + {" "} + + prov + {" "} + ( + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + {" "} + + + bop_date_time_duration_seconds + + + ))) +
+   ::{" "} + + nil + + .
+
+   Definition{" "} + + foreign_function_table + {" "} + prov :{" "} + + + ergo_stdlib_table + + {" "} + := +
+     (" + org.accordproject.ergo.stdlib.dateTimeIsSame", +
+       + + + mk_binary_expr + + +
+         + + prov + +
+        ( + + EUnaryOp + +
+            + + prov + +
+            + + + OpNeg + + +
+           ( + + EBinaryOp + +
+               + + prov + +
+              ( + + + OpForeignBinary + + {" "} + ( + + + enhanced_binary_date_time_op + + +
+                                   + + + bop_date_time_ne + + + )) +
+              ( + + EVar + {" "} + + prov + {" "} + "p1") ( + + EVar + {" "} + + prov + {" "} + "p2")))) +
+       :: (" + org.accordproject.ergo.stdlib.dateTimeDuration", +
+            + + + mk_binary_expr + + +
+              + + prov + +
+             ( + + ELet + {" "} + + prov + +
+                   " + v1"%string +
+                    + + + None + + +
+                   ( + + EUnaryOp + {" "} + + prov + {" "} + + + OpToString + + {" "} + ( + + EVar + {" "} + + prov + {" "} + "p1"%string)) +
+                   ( + + ELet + {" "} + + prov + {" "} + "v2"%string{" "} + + + None + + +
+                         ( + + EBinaryOp + {" "} + + prov + {" "} + + + OpStringConcat + + +
+                                    ( + + EConst + {" "} + + prov + {" "} + ( + + + dstring + + {" "} + "-"%string)) +
+                                    ( + + EVar + {" "} + + prov + {" "} + "p2"%string)) +
+                         ( + + EUnaryOp + {" "} + + prov + +
+                                   ( + + + OpForeignUnary + + +
+                                      ( + + + enhanced_unary_date_time_op + + {" "} + + + uop_date_time_duration_from_string + + + )) +
+                                   ( + + EBinaryOp + {" "} + + prov + {" "} + + + OpStringConcat + + +
+                                              ( + + EVar + {" "} + + prov + {" "} + "v1"%string)
+                                              ( + + EVar + {" "} + + prov + {" "} + "v2"%string)))))) +
+       ::{" "} + + nil + + .
+
+   Definition{" "} + + foreign_table + {" "} + prov :{" "} + + + ergo_stdlib_table + + {" "} + := +
+      + + + backend_compose_table + + {" "} + ( + + + foreign_function_table + + {" "} + + prov + + )
+                           ( + + + backend_compose_table + + {" "} + ( + + + foreign_unary_operator_table + + {" "} + + prov + + )
+                                                  ( + + + foreign_binary_operator_table + + {" "} + + prov + + )). +
+
+   Definition{" "} + + unary_operator_table + {" "} + prov :{" "} + + + ergo_stdlib_table + + {" "} + := +
+     (" + org.accordproject.ergo.stdlib.toString",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpToString + + + )
+       :: (" + org.accordproject.ergo.stdlib.integerAbs",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpNatUnary + + {" "} + + + NatAbs + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.integerLog2",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpNatUnary + + {" "} + + + NatLog2 + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.integerSqrt",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpNatUnary + + {" "} + + + NatSqrt + + + )) +
+       :: (" + + org.accordproject.ergo.stdlib.integerToDouble + ",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpFloatOfNat + + + )
+       :: (" + org.accordproject.ergo.stdlib.sqrt",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpFloatUnary + + {" "} + + + FloatSqrt + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.exp",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpFloatUnary + + {" "} + + + FloatExp + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.log",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpFloatUnary + + {" "} + + + FloatLog + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.log10",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpFloatUnary + + {" "} + + + FloatLog10 + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.ceil",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpFloatUnary + + {" "} + + + FloatCeil + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.floor",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpFloatUnary + + {" "} + + + FloatFloor + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.abs",{" "} + + mk_unary + {" "} + + prov + {" "} + ( + + + OpFloatUnary + + {" "} + + + FloatAbs + + + )) +
+       :: (" + org.accordproject.ergo.stdlib.max",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpFloatBagMax + + + )
+       :: (" + org.accordproject.ergo.stdlib.min",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpFloatBagMin + + + )
+       :: (" + org.accordproject.ergo.stdlib.average",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpFloatMean + + + )
+       :: (" + org.accordproject.ergo.stdlib.sum",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpFloatSum + + + )
+       :: (" + + org.accordproject.ergo.stdlib.doubleToInteger + ",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpFloatTruncate + + + )
+       :: (" + org.accordproject.ergo.stdlib.truncate",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpFloatTruncate + + + )
+       :: (" + org.accordproject.ergo.stdlib.distinct",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpDistinct + + + )
+       :: (" + org.accordproject.ergo.stdlib.count",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpCount + + + )
+       :: (" + org.accordproject.ergo.stdlib.flatten",{" "} + + mk_unary + {" "} + + prov + {" "} + + + OpFlatten + + + )
+       ::{" "} + + nil + + .
+
+     Definition{" "} + + binary_operator_table + {" "} + prov :{" "} + + + ergo_stdlib_table + + {" "} + := +
+       (" + org.accordproject.ergo.stdlib.integerMod",{" "} + + mk_binary + {" "} + + prov + {" "} + ( + + + OpNatBinary + + {" "} + + + NatRem + + + )) +
+         :: (" + org.accordproject.ergo.stdlib.integerMin",{" "} + + mk_binary + {" "} + + prov + {" "} + ( + + + OpNatBinary + + {" "} + + + NatMin + + + )) +
+         :: (" + org.accordproject.ergo.stdlib.integerMax",{" "} + + mk_binary + {" "} + + prov + {" "} + ( + + + OpNatBinary + + {" "} + + + NatMax + + + )) +
+         :: (" + org.accordproject.ergo.stdlib.minPair",{" "} + + mk_binary + {" "} + + prov + {" "} + ( + + + OpFloatBinary + + {" "} + + + FloatMin + + + )) +
+         :: (" + org.accordproject.ergo.stdlib.maxPair",{" "} + + mk_binary + {" "} + + prov + {" "} + ( + + + OpFloatBinary + + {" "} + + + FloatMax + + + )) +
+         :: (" + org.accordproject.ergo.stdlib.arrayAdd",{" "} + + mk_binary + {" "} + + prov + {" "} + + + OpBagUnion + + + )
+         :: (" + + org.accordproject.ergo.stdlib.arraySubstract + ",{" "} + + mk_binary + {" "} + + prov + {" "} + + + OpBagDiff + + + )
+         ::{" "} + + nil + + .
+
+     Definition{" "} + + builtin_table + {" "} + prov :{" "} + + + ergo_stdlib_table + + {" "} + := +
+       (" + org.accordproject.ergo.stdlib.now",{" "} + + + mk_naked_closure + + {" "} + + prov + {" "} + + nil + {" "} + ( + + EVar + {" "} + + prov + {" "} + "now")) +
+         ::{" "} + + nil + + .
+
+     Definition{" "} + + ergoc_stdlib + {" "} + :{" "} + + + ergo_stdlib_table + + {" "} + := +
+       let{" "} + prov :={" "} + + + dummy_provenance + + {" "} + in +
+        + + + backend_compose_table + + {" "} + ( + + + foreign_table + + {" "} + + prov + + )
+      ( + + + backend_compose_table + + {" "} + ( + + + builtin_table + + {" "} + + prov + + )
+      ( + + + backend_compose_table + + {" "} + ( + + + unary_operator_table + + {" "} + + prov + + ) ( + + + binary_operator_table + + {" "} + + prov + + ))). +
+
+ End{" "} + + ErgoCStdlib + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.html b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.html deleted file mode 100644 index 96022476..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoC.Lang.ErgoCSugar - - - - - - -

Module ErgoSpec.ErgoC.Lang.ErgoCSugar

-
-
-
Ergo is a language for expressing contract logic.
-
-

Syntactic sugar

-
-Require Import String.
-Require Import List.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section ErgoCSugar.
-  Definition mkResult (prov:provenance) e1 e2 e3 : ergoc_expr :=
-    ERecord prov
-            ((this_response, e1)
-               :: (this_state, e2)
-               :: (this_emit, e3)
-               :: nil).
-
-  Definition setState (prov:provenance) e1 e2 : ergoc_expr :=
-    ELet prov local_state None e1 e2.
-
-  Definition thisContract (prov:provenance) : ergoc_expr :=
-    let prov := ProvThisContract (loc_of_provenance prov) in
-    EVar prov this_contract.
-
-  Definition thisClause (prov:provenance) clause_name : ergoc_expr :=
-    let prov := ProvThisClause (loc_of_provenance prov) in
-    EUnaryOp prov
-             (OpDot clause_name)
-             (EUnaryOp prov OpUnbrand (EVar prov this_contract)).
-
-  Definition thisState (prov:provenance) : ergoc_expr :=
-    let prov := ProvThisState (loc_of_provenance prov) in
-    EVar prov local_state.
-
-  Definition pushEmit (prov:provenance) e1 e2 : ergoc_expr :=
-    ELet prov local_emit None
-         (EBinaryOp prov
-                    OpBagUnion
-                    (EUnaryOp prov OpBag e1)
-                    (EVar prov local_emit))
-         e2.
-
-  Definition ESuccess (prov:provenance) (e:ergoc_expr) : ergoc_expr :=
-    EUnaryOp prov OpLeft e.
-
-  Definition EError (prov:provenance) (e:ergoc_expr) : ergoc_expr :=
-    EUnaryOp prov OpRight e.
-
-End ErgoCSugar.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.jsx b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.jsx new file mode 100644 index 00000000..c66b9500 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCSugar.jsx @@ -0,0 +1,506 @@ +
+ + Module ErgoSpec.ErgoC.Lang.ErgoCSugar + + +

Module ErgoSpec.ErgoC.Lang.ErgoCSugar

+
+
+
+ Ergo is a language for expressing contract logic.{" "} +
+
+

Syntactic sugar

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+
+ Section{" "} + + ErgoCSugar + + .
+   Definition{" "} + + mkResult + {" "} + (prov: + + provenance + + ) e1 e2{" "} + e3 :{" "} + + ergoc_expr + {" "} + := +
+      + + ERecord + {" "} + + prov + +
+             (( + + this_response + + ,{" "} + + e1 + + )
+                :: + ( + + this_state + + ,{" "} + + e2 + + )
+                :: + ( + + this_emit + + ,{" "} + + e3 + + )
+                ::{" "} + + nil + + ). +
+
+   Definition{" "} + + setState + {" "} + (prov: + + provenance + + ) e1 e2 :{" "} + + ergoc_expr + {" "} + := +
+      + + ELet + {" "} + + prov + {" "} + + local_state + {" "} + + + None + + {" "} + + e1 + {" "} + + e2 + + .
+
+   Definition{" "} + + thisContract + {" "} + (prov: + + provenance + + ) :{" "} + + ergoc_expr + {" "} + := +
+     let{" "} + prov :={" "} + + + ProvThisContract + + {" "} + ( + + + loc_of_provenance + + {" "} + + prov + + ) in +
+      + + EVar + {" "} + + prov + {" "} + + this_contract + + .
+
+   Definition{" "} + + thisClause + {" "} + (prov: + + provenance + + ) clause_name :{" "} + + ergoc_expr + {" "} + := +
+     let{" "} + prov :={" "} + + + ProvThisClause + + {" "} + ( + + + loc_of_provenance + + {" "} + + prov + + ) in +
+      + + EUnaryOp + {" "} + + prov + +
+              ( + + + OpDot + + {" "} + + clause_name + + )
+              ( + + EUnaryOp + {" "} + + prov + {" "} + + + OpUnbrand + + {" "} + ( + + EVar + {" "} + + prov + {" "} + + this_contract + + )). +
+
+   Definition{" "} + + thisState + {" "} + (prov: + + provenance + + ) :{" "} + + ergoc_expr + {" "} + := +
+     let{" "} + prov :={" "} + + + ProvThisState + + {" "} + ( + + + loc_of_provenance + + {" "} + + prov + + ) in +
+      + + EVar + {" "} + + prov + {" "} + + local_state + + .
+
+   Definition{" "} + + pushEmit + {" "} + (prov: + + provenance + + ) e1 e2 :{" "} + + ergoc_expr + {" "} + := +
+      + + ELet + {" "} + + prov + {" "} + + local_emit + {" "} + + + None + + +
+          ( + + EBinaryOp + {" "} + + prov + +
+                      + + + OpBagUnion + + +
+                     ( + + EUnaryOp + {" "} + + prov + {" "} + + + OpBag + + {" "} + + e1 + + )
+                     ( + + EVar + {" "} + + prov + {" "} + + local_emit + + )) +
+           + + e2 + + .
+
+   Definition{" "} + + ESuccess + {" "} + (prov: + + provenance + + ) (e: + + ergoc_expr + + ) :{" "} + + ergoc_expr + {" "} + := +
+      + + EUnaryOp + {" "} + + prov + {" "} + + + OpLeft + + {" "} + + e + + .
+
+   Definition{" "} + + EError + {" "} + (prov: + + provenance + + ) (e: + + ergoc_expr + + ) :{" "} + + ergoc_expr + {" "} + := +
+      + + EUnaryOp + {" "} + + prov + {" "} + + + OpRight + + {" "} + + e + + .
+
+ End{" "} + + ErgoCSugar + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.html b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.html deleted file mode 100644 index 164bee39..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.html +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoC.Lang.ErgoCType - - - - - - -

Module ErgoSpec.ErgoC.Lang.ErgoCType

-
-
-Require Import String.
-Require Import List.
-Require Import Basics.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.NamespaceContext.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Common.Utils.PrintTypedData.
-Require Import ErgoSpec.Common.Types.ErgoTypetoErgoCType.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCTypeContext.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-
-Section ErgoCType.
-  Context {m : brand_model}.
-
-  Import ErgoCTypes.
-
-  Definition ergoc_type_join_safe prov (t1 t2:ergoc_type) : eresult ergoc_type :=
-    let jt := ergoc_type_join t1 t2 in
-    if ergoc_type_subtype_dec ttop jt
-    then efailure (ETypeError prov ("Join between types is TOP.")%string)
-    else esuccess jt.
-
-  Definition ergoc_type_meet_safe prov (t1 t2:ergoc_type) : eresult ergoc_type :=
-    let jt := ergoc_type_meet t1 t2 in
-    if ergoc_type_subtype_dec jt tbottom
-    then efailure (ETypeError prov ("Meet between types is BOTTOM.")%string)
-    else esuccess jt.
-
-  Program Definition empty_rec_type : ergoc_type := Rec Closed nil _.
-
-  Definition ergo_format_unop_error nsctxt (op : unary_op) (arg : ergoc_type) : string :=
-    let fmt_easy :=
-        fun name expected actual =>
-          ("Operator `" ++ name ++ "' expected an operand of type `" ++
-                        (ergoc_type_to_string nsctxt expected) ++
-                        "' but received an operand of type `" ++
-                        (ergoc_type_to_string nsctxt actual) ++ "'.")%string
-    in
-    match op with
-    | OpNeg => fmt_easy "!"%string tbool arg
-    | OpFloatUnary FloatNeg => fmt_easy "-"%string tfloat arg
-    | OpDot name => "The field " ++ name ++ " does not belong to type `" ++ (ergoc_type_to_string nsctxt arg) ++ "'"
-    | _ => "This operator received an unexpected argument of type `" ++ (ergoc_type_to_string nsctxt arg) ++ "'"
-    end.
-
-  Definition ergo_format_binop_error nsctxt (op : binary_op) (arg1 : ergoc_type) (arg2 : ergoc_type) : string :=
-    let fmt_easy :=
-        fun name e1 e2 =>
-          ("Operator `" ++ name ++ "' expected operands of type `" ++
-                        (ergoc_type_to_string nsctxt e1) ++ "' and `" ++
-                        (ergoc_type_to_string nsctxt e2) ++
-                        "' but received operands of type `" ++
-                        (ergoc_type_to_string nsctxt arg1) ++ "' and `" ++
-                        (ergoc_type_to_string nsctxt arg2) ++ "'.")%string
-    in
-    match op with
-    | OpAnd => fmt_easy "and"%string tbool tbool
-    | OpOr => fmt_easy "or"%string tbool tbool
-    | OpFloatBinary FloatPlus => fmt_easy "+"%string tfloat tfloat
-    | OpFloatBinary FloatMinus => fmt_easy "-"%string tfloat tfloat
-    | OpFloatBinary FloatMult => fmt_easy "*"%string tfloat tfloat
-    | OpFloatBinary FloatDiv => fmt_easy "/"%string tfloat tfloat
-    | OpFloatBinary FloatPow => fmt_easy "^"%string tfloat tfloat
-    | OpNatBinary NatPlus => fmt_easy "+i"%string tnat tnat
-    | OpNatBinary NatMinus => fmt_easy "-i"%string tnat tnat
-    | OpNatBinary NatMult => fmt_easy "*i"%string tnat tnat
-    | OpNatBinary NatDiv => fmt_easy "/i"%string tnat tnat
-    | OpNatBinary NatPow => fmt_easy "^i"%string tnat tnat
-    | OpFloatCompare FloatLt => fmt_easy "<"%string tfloat tfloat
-    | OpFloatCompare FloatLe => fmt_easy "<="%string tfloat tfloat
-    | OpFloatCompare FloatGt => fmt_easy ">"%string tfloat tfloat
-    | OpFloatCompare FloatGe => fmt_easy ">="%string tfloat tfloat
-    | _ => "This operator received unexpected arguments of type `" ++ (ergoc_type_to_string nsctxt arg1) ++ "' " ++ " and `" ++ (ergoc_type_to_string nsctxt arg2) ++ "'."
-    end.
-
-  Definition ergo_format_new_error nsctxt (name:string) (actual:ergoc_type) : string :=
-    let concept_name := ergoc_type_to_string nsctxt (Brand (name::nil)) in
-    match diff_record_types (name::nil) actual with
-    | None => "Concept name " ++ name ++ " does not match data"
-    | Some (nil, nil) =>
-      match fields_that_are_not_subtype (name::nil) actual with
-      | nil => "Concept " ++ name ++ " doesn't match data (one field is not a subtype)"
-      | (expected_name, expected_type, actual_type) :: _ =>
-        "Field `" ++ expected_name
-                  ++ "' has type `" ++ (ergoc_type_to_string nsctxt actual_type)
-                  ++ "' but should have type `" ++ (ergoc_type_to_string nsctxt expected_type) ++ "'"
-      end
-    | Some (nil, actual_name::nil) =>
-      "Unknown field `" ++ actual_name ++ "' in type `" ++ concept_name ++ "'"
-    | Some (nil, actual_names) =>
-      "Unknown fields `" ++ String.concat "', `" actual_names ++ "' in type `" ++ concept_name ++ "'"
-    | Some (expected_name::nil, _) =>
-      "Missing field `" ++ expected_name ++ "' in type `" ++ concept_name ++ "'"
-    | Some (expected_names, _) =>
-      "Missing fields `" ++ String.concat "', `" expected_names ++ "' in type `" ++ concept_name ++ "'"
-    end.
-
-  Definition ergo_format_clause_return_fallback_error
-             nsctxt
-             (name:string)
-             (actual expected:ergoc_type) : string :=
-    let actual_s := ergoc_type_to_string nsctxt actual in
-    let expected_s := ergoc_type_to_string nsctxt expected in
-    "Clause " ++ name ++ " should return `" ++ expected_s
-              ++ "' but actually returns `" ++ actual_s ++ "'".
-
-  Definition ergo_format_clause_return_component_error
-             nsctxt
-             (name:string)
-             (component1 component2:string)
-             (actual expected:ergoc_type) : string :=
-    let actual_s := ergoc_type_to_string nsctxt actual in
-    let expected_s := ergoc_type_to_string nsctxt expected in
-    "Clause " ++ name ++ " should " ++ component1 ++ " `" ++ expected_s
-              ++ "' but actually " ++ component2 ++ " `" ++ actual_s ++ "'".
-
-  Definition ergo_format_clause_return_normal_error
-             nsctxt
-             (name:string)
-             (actual expected:ergoc_type)
-             (actual_quad expected_quad:ergoc_type * ergoc_type * ergoc_type * ergoc_type)
-    : string :=
-    let '(actual_resp, actual_emit, actual_state, actual_error) := actual_quad in
-    let '(expected_resp, expected_emit, expected_state, expected_error) := expected_quad in
-    if ergoc_type_subtype_dec actual_resp expected_resp
-    then
-      if ergoc_type_subtype_dec actual_emit expected_emit
-      then
-        if ergoc_type_subtype_dec actual_state expected_state
-        then
-          if ergoc_type_subtype_dec actual_error expected_error
-          then
-            ergo_format_clause_return_fallback_error nsctxt name actual expected
-          else
-            ergo_format_clause_return_component_error
-              nsctxt name "fail with" "fails with" actual_error expected_error
-        else
-          ergo_format_clause_return_component_error
-            nsctxt name "set state" "sets state" actual_state expected_state
-      else
-        ergo_format_clause_return_component_error
-          nsctxt name "emit" "emits" actual_emit expected_emit
-    else
-      ergo_format_clause_return_component_error
-        nsctxt name "respond" "responds" actual_resp expected_resp.
-
-  Definition ergo_format_clause_return_error nsctxt (name:string) (actual expected:ergoc_type) : string :=
-    let actual_quad := unpack_output_type nsctxt actual in
-    let expected_quad := unpack_output_type nsctxt expected in
-    let normal_error := ergo_format_clause_return_normal_error nsctxt name actual expected in
-    let fallback_error := fun e => ergo_format_clause_return_fallback_error nsctxt name actual expected in
-    elift2_both
-      normal_error
-      fallback_error
-      actual_quad
-      expected_quad.
-  
-  Definition ergo_format_function_return_error nsctxt (name:string) (actual expected:ergoc_type) : string :=
-    let actual_s := ergoc_type_to_string nsctxt actual in
-    let expected_s := ergoc_type_to_string nsctxt expected in
-    "Function " ++ name ++ " should return `" ++ expected_s ++ "' but actually returns `" ++ actual_s ++ "'".
-  
-  Fixpoint ergo_type_expr nsctxt (ctxt : type_context) (expr : ergoc_expr) : eresult ergoc_type :=
-    match expr with
-    | EThisContract prov => efailure (ESystemError prov "No `this' in ergoc")
-    | EThisClause prov => efailure (ESystemError prov "No `clause' in ergoc")
-    | EThisState prov => efailure (ESystemError prov "No `state' in ergoc")
-    | EVar prov name =>
-      let opt := lookup String.string_dec (ctxt.(type_context_local_env)++ctxt.(type_context_global_env)) name in
-      eresult_of_option opt (ETypeError prov ("Variable `" ++ name ++ "' not found.")%string)
-    | EConst prov d =>
-      eresult_of_option
-        (infer_data_type d)
-        (ETypeError prov "Bad constant.")
-    | ENone prov => esuccess (toption tbottom)
-    | ESome prov e => elift toption (ergo_type_expr nsctxt ctxt e)
-    | EArray prov es =>
-      (elift tcoll)
-        (fold_left
-           (fun T new =>
-              eolift
-                (fun T' =>
-                   elift
-                     (fun new' => ergoc_type_join T' new')
-                     (ergo_type_expr nsctxt ctxt new))
-                T)
-           es (esuccess tbottom))
-    | EUnaryOp prov op e =>
-      match ergo_type_expr nsctxt ctxt e with
-      | Success _ _ t =>
-        match ergoc_type_infer_unary_op op t with
-        | Some (r, _) => esuccess r
-        | None => efailure (ETypeError prov (ergo_format_unop_error nsctxt op t))
-        end
-      | Failure _ _ f => efailure f
-      end
-    | EBinaryOp prov op e1 e2 =>
-      match ergo_type_expr nsctxt ctxt e1 with
-      | Success _ _ t1 =>
-        match ergo_type_expr nsctxt ctxt e2 with
-        | Success _ _ t2 =>
-          match ergoc_type_infer_binary_op op t1 t2 with
-          | Some (r, _, _) => esuccess r
-          | None => efailure (ETypeError prov (ergo_format_binop_error nsctxt op t1 t2))
-          end
-        | Failure _ _ f => efailure f
-        end
-      | Failure _ _ f => efailure f
-      end
-    | EIf prov c t f =>
-      eolift (fun c' =>
-                if ergoc_type_subtype_dec c' tbool then
-                  elift2 ergoc_type_join
-                         (ergo_type_expr nsctxt ctxt t)
-                         (ergo_type_expr nsctxt ctxt f)
-                else efailure (ETypeError prov "'If' condition not boolean."%string))
-             (ergo_type_expr nsctxt ctxt c)
-    | ELet prov n None v e =>
-      (eolift (fun vt =>
-                let ctxt' := type_context_update_local_env ctxt n vt in
-                ergo_type_expr nsctxt ctxt' e)
-             (ergo_type_expr nsctxt ctxt v))
-    | ELet prov n (Some t) v e =>
-      let fmt_err :=
-          fun t' vt =>
-          match prov with
-          | ProvFunc _ fname =>
-            ETypeError prov
-                       ("Function `" ++ fname
-                                     ++ "' expected argument `"
-                                     ++ n
-                                     ++ "' to be of type `"
-                                     ++ (ergoc_type_to_string nsctxt t')
-                                     ++ "' but was given argument of type `"
-                                     ++ (ergoc_type_to_string nsctxt vt)
-                                     ++ "'." )
-          | _ => ETypeError prov
-                            ("The let type annotation `"
-                               ++ (ergoc_type_to_string nsctxt t')
-                               ++ "' for the name `"
-                               ++ n
-                               ++ "' does not match the actual type `"
-                               ++ (ergoc_type_to_string nsctxt vt)
-                               ++ "'.")
-          end
-      in
-      (eolift
-         (fun vt =>
-            let t' := (ergo_type_to_ergoc_type t) in
-            if subtype_dec vt t' then
-              let ctxt' :=
-                  type_context_update_local_env
-                    ctxt n
-                    t'
-              in
-              ergo_type_expr nsctxt ctxt' e
-            else
-              efailure (fmt_err t' vt))
-         (ergo_type_expr nsctxt ctxt v))
-    | ERecord prov rs =>
-      fold_left
-        (fun sofar next =>
-           eolift2
-             (fun sofar' val' =>
-                (elift (compose fst fst))
-                  (eresult_of_option
-                     (ergoc_type_infer_binary_op OpRecConcat sofar' val')
-                     (ETypeError prov "Bad record! Failed to concat."%string)))
-             sofar
-             (eolift (fun val =>
-                        (elift fst)
-                          (eresult_of_option
-                             (ergoc_type_infer_unary_op (OpRec (fst next)) val)
-                             (ETypeError prov "Bad record! Failed to init."%string)))
-                     (ergo_type_expr nsctxt ctxt (snd next))))
-        rs (esuccess empty_rec_type)
-    | ENew prov name rs =>
-      eolift
-        (fun rs' =>
-           (elift fst)
-             (eresult_of_option
-                (infer_brand_strict (name::nil) rs')
-                (ETypeError prov (ergo_format_new_error nsctxt name rs'))))
-        (fold_left
-           (fun sofar next =>
-              eolift2
-                (fun sofar' val' =>
-                   (elift (compose fst fst))
-                     (eresult_of_option
-                        (ergoc_type_infer_binary_op OpRecConcat sofar' val')
-                        (ETypeError prov "Bad record! Failed to concat."%string)))
-                sofar
-                (eolift (fun val =>
-                           (elift fst)
-                             (eresult_of_option
-                                (ergoc_type_infer_unary_op (OpRec (fst next)) val)
-                                (ETypeError prov "Bad record! Failed to init."%string)))
-                        (ergo_type_expr nsctxt ctxt (snd next))))
-           rs (esuccess empty_rec_type))
-    | ECallFun prov fname args => function_not_inlined_error prov fname
-    | ECallFunInGroup prov gname fname args => function_in_group_not_inlined_error prov gname fname
-    | EMatch prov term pes default =>
-      match ergo_type_expr nsctxt ctxt term with
-      | Failure _ _ f => efailure f
-      | Success _ _ t0 =>
-        fold_left
-          (fun default_result pe =>
-             match pe with
-             | (CaseData prov d, res) =>
-               match ergoc_type_infer_data d with
-               | None => efailure (ETypeError prov "Ill-typed data literal!")
-               | Some dt =>
-                 elift2 ergoc_type_join
-                        default_result
-                        (ergo_type_expr nsctxt ctxt res)
-               end
-             | (CaseWildcard prov None, res) =>
-               elift2 ergoc_type_join default_result (ergo_type_expr nsctxt ctxt res)
-             | (CaseLet prov name None, res) =>
-               elift2 ergoc_type_join default_result
-                      (ergo_type_expr nsctxt (type_context_update_local_env ctxt name t0) res)
-             | (CaseLetOption prov name None, res) =>
-               match unteither t0 with
-               | None => default_result
-               | Some (st, ft) =>
-                 elift2 ergoc_type_join default_result
-                        (ergo_type_expr nsctxt (type_context_update_local_env ctxt name st) res)
-               end
-             | (CaseWildcard prov (Some b), res) =>
-               elift2 ergoc_type_join default_result
-                      (ergo_type_expr nsctxt ctxt res)
-
-             | (CaseLet prov name (Some b), res) =>
-               elift2 ergoc_type_join default_result
-                      (ergo_type_expr nsctxt (type_context_update_local_env
-                                         ctxt
-                                         name
-                                         (tbrand (b::nil)))
-                                      res)
-             | (CaseLetOption prov name (Some b), res) =>
-               elift2 ergoc_type_join default_result
-                      (ergo_type_expr nsctxt (type_context_update_local_env
-                                         ctxt
-                                         name
-                                         (tbrand (b::nil)))
-                                      res)
-             end)
-          pes (ergo_type_expr nsctxt ctxt default)
-      end
-    | EForeach prov ((name,arr)::nil) None fn =>
-      eolift (fun arr' =>
-                eolift
-                  (fun typ => (elift tcoll) (ergo_type_expr nsctxt (type_context_update_local_env ctxt name typ) fn))
-                (eresult_of_option
-                  (untcoll arr')
-                  (ETypeError
-                     prov
-                     ("foreach expects an array to iterate over, but was given something of type `" ++ (ergoc_type_to_string nsctxt arr') ++ "'."))))
-            (ergo_type_expr nsctxt ctxt arr)
-            
-    | EForeach prov _ _ _ =>
-      complex_foreach_in_calculus_error prov
-    end.
-
-  Definition ergoc_type_function
-             (nsctxt: namespace_ctxt)
-             (name:string)
-             (dctxt : type_context)
-             (func : ergoc_function) : eresult type_context :=
-    match func.(functionc_body) with
-    | None => esuccess dctxt
-    | Some body =>
-      let tsig :=
-          map (fun x => (fst x, ergo_type_to_ergoc_type (snd x)))
-              func.(functionc_sig).(sigc_params) in
-      eolift
-        (fun outt =>
-           let eoutt := func.(functionc_sig).(sigc_output) in
-           match eoutt with
-           | None => esuccess dctxt
-           | Some eoutt' =>
-             let expectedt := ergo_type_to_ergoc_type eoutt' in
-             if subtype_dec
-                  outt
-                  expectedt
-             then esuccess dctxt
-             else
-               let body_prov := bodyc_annot func in
-               match func.(functionc_annot) with
-               | ProvClause _ name =>
-                 efailure (ETypeError body_prov (ergo_format_clause_return_error nsctxt name outt expectedt))
-               | ProvFunc _ name =>
-                 efailure (ETypeError body_prov (ergo_format_function_return_error nsctxt name outt expectedt))
-               | _ =>
-                 efailure (ETypeError body_prov (ergo_format_function_return_error nsctxt name outt expectedt))
-               end
-           end)
-        (ergo_type_expr nsctxt (type_context_set_local_env dctxt tsig) body)
-    end.
-
-  Definition ergoc_type_clause
-             (nsctxt: namespace_ctxt)
-             (dctxt : type_context)
-             (cl : string * ergoc_function) : eresult type_context :=
-    let (name,body) := cl in
-    ergoc_type_function nsctxt name dctxt body.
-
-  Definition ergoc_type_contract
-             (nsctxt: namespace_ctxt)
-             (dctxt : type_context)
-             (coname: absolute_name)
-             (c : ergoc_contract) : eresult type_context :=
-    elift_fold_left
-      (ergoc_type_clause nsctxt)
-      c.(contractc_clauses)
-      dctxt.
-
-  Definition ergoc_type_decl
-             (nsctxt: namespace_ctxt)
-             (dctxt : type_context)
-             (decl : ergoc_declaration)
-    : eresult (option ergoc_type * type_context) :=
-    match decl with
-    | DCExpr prov expr =>
-      elift (fun x => (Some x, dctxt)) (ergo_type_expr nsctxt dctxt expr)
-    | DCConstant prov name None expr =>
-      let expr' := ergo_type_expr nsctxt dctxt expr in
-      eolift (fun val => esuccess (None, type_context_update_global_env dctxt name val)) expr'
-    | DCConstant prov name (Some t) expr =>
-      let fmt_err :=
-          fun t' vt =>
-            ETypeError prov
-                       ("The type annotation `"
-                          ++ (ergoc_type_to_string nsctxt t')
-                          ++ "' for the constant `"
-                          ++ name
-                          ++ "' does not match its actual type `"
-                          ++ (ergoc_type_to_string nsctxt vt)
-                          ++ "'.")
-      in
-      let expr' := ergo_type_expr nsctxt dctxt expr in
-      eolift (fun vt =>
-                let t' := (ergo_type_to_ergoc_type t) in
-                if subtype_dec vt t' then
-                  let ctxt' :=
-                      type_context_update_global_env dctxt name t'
-                  in
-                  esuccess (None, ctxt')
-            else
-              efailure (fmt_err t' vt)) expr'
-    | DCFunc prov name func =>
-      elift (fun ctxt => (None,ctxt)) (ergoc_type_function nsctxt name dctxt func)
-    | DCContract prov name contr =>
-      elift (fun ctxt => (None,ctxt)) (ergoc_type_contract nsctxt dctxt name contr)
-    end.
-
-  Definition ergoc_type_module
-             (nsctxt: namespace_ctxt)
-             (dctxt : type_context)
-             (mod : ergoc_module)
-    : eresult (ergoc_module * type_context) :=
-    elift (fun x => (mod, snd x))
-          (elift_context_fold_left
-             (ergoc_type_decl nsctxt)
-             mod.(modulec_declarations)
-             dctxt).
-  
-End ErgoCType.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.jsx b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.jsx new file mode 100644 index 00000000..d18e5ba6 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCType.jsx @@ -0,0 +1,4772 @@ +
+ + Module ErgoSpec.ErgoC.Lang.ErgoCType + + +

Module ErgoSpec.ErgoC.Lang.ErgoCType

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + Basics + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.NamespaceContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.PrintTypedData + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoTypetoErgoCType + + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCTypeContext + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+
+ Section{" "} + + ErgoCType + + .
+   Context {"{"} + m :{" "} + + + brand_model + + + {"}"}.
+
+   Import{" "} + ErgoCTypes.
+
+   Definition{" "} + + ergoc_type_join_safe + {" "} + prov (t1{" "} + t2: + + ergoc_type + + ) :{" "} + + eresult + {" "} + + ergoc_type + {" "} + := +
+     let{" "} + jt :={" "} + + + ergoc_type_join + + {" "} + + t1 + {" "} + + t2 + {" "} + in +
+     if{" "} + + + ergoc_type_subtype_dec + + {" "} + + ttop + {" "} + + jt + +
+     then{" "} + + efailure + {" "} + ( + + ETypeError + {" "} + + prov + {" "} + ("Join between{" "} + types is{" "} + TOP.")%string)
+     else{" "} + + esuccess + {" "} + + jt + + .
+
+   Definition{" "} + + ergoc_type_meet_safe + {" "} + prov (t1{" "} + t2: + + ergoc_type + + ) :{" "} + + eresult + {" "} + + ergoc_type + {" "} + := +
+     let{" "} + jt :={" "} + + + ergoc_type_meet + + {" "} + + t1 + {" "} + + t2 + {" "} + in +
+     if{" "} + + + ergoc_type_subtype_dec + + {" "} + + jt + {" "} + + tbottom + +
+     then{" "} + + efailure + {" "} + ( + + ETypeError + {" "} + + prov + {" "} + ("Meet between{" "} + types is{" "} + BOTTOM.")%string) +
+     else{" "} + + esuccess + {" "} + + jt + + .
+
+   Program{" "} + Definition{" "} + + empty_rec_type + {" "} + :{" "} + + ergoc_type + {" "} + :={" "} + + + Rec + + {" "} + + + Closed + + {" "} + + nil + {" "} + _.
+
+   Definition{" "} + + ergo_format_unop_error + {" "} + nsctxt (op :{" "} + + + unary_op + + + ) (arg :{" "} + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + fmt_easy := +
+          + fun name{" "} + expected actual{" "} + => +
+           (" + Operator `" ++{" "} + + name + {" "} + ++ "' expected an{" "} + operand of{" "} + type `" ++ +
+                         ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + expected + + ) ++ +
+                         "'{" "} + but received{" "} + an operand{" "} + of type `" ++ +
+                         ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + actual + + ) ++ "'.")%string +
+     in +
+     match{" "} + + op + {" "} + with +
+     |{" "} + + + OpNeg + + {" "} + =>{" "} + + fmt_easy + {" "} + "!"%string{" "} + + tbool + {" "} + + arg + +
+     |{" "} + + + OpFloatUnary + + {" "} + + + FloatNeg + + {" "} + =>{" "} + + fmt_easy + {" "} + "-"%string{" "} + + tfloat + {" "} + + arg + +
+     |{" "} + + + OpDot + + {" "} + name => "The{" "} + field " ++ name ++ "{" "} + does not{" "} + belong to{" "} + type `" ++ ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + arg + + ) ++ "'" +
+     | _ => " + This operator{" "} + received an{" "} + unexpected argument{" "} + of type `" ++ ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + arg + + ) ++ "'" +
+     end.
+
+   Definition{" "} + + ergo_format_binop_error + {" "} + nsctxt (op :{" "} + + + binary_op + + + ) (arg1 :{" "} + + ergoc_type + + ) (arg2 :{" "} + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + fmt_easy := +
+          + fun name{" "} + e1 e2 => +
+           (" + Operator `" ++{" "} + + name + {" "} + ++ "' expected{" "} + operands of{" "} + type `" ++ +
+                         ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + e1 + + ) ++ "' and `" ++ +
+                         ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + e2 + + ) ++ +
+                         "'{" "} + but received{" "} + operands of{" "} + type `" ++ +
+                         ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + arg1 + + ) ++ "' and `" ++ +
+                         ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + arg2 + + ) ++ "'.")%string +
+     in +
+     match{" "} + + op + {" "} + with +
+     |{" "} + + + OpAnd + + {" "} + =>{" "} + + fmt_easy + {" "} + "and"%string{" "} + + tbool + {" "} + + tbool + +
+     |{" "} + + + OpOr + + {" "} + =>{" "} + + fmt_easy + {" "} + "or"%string{" "} + + tbool + {" "} + + tbool + +
+     |{" "} + + + OpFloatBinary + + {" "} + + + FloatPlus + + {" "} + =>{" "} + + fmt_easy + {" "} + "+"%string{" "} + + tfloat + {" "} + + tfloat + +
+     |{" "} + + + OpFloatBinary + + {" "} + + + FloatMinus + + {" "} + =>{" "} + + fmt_easy + {" "} + "-"%string{" "} + + tfloat + {" "} + + tfloat + +
+     |{" "} + + + OpFloatBinary + + {" "} + + + FloatMult + + {" "} + =>{" "} + + fmt_easy + {" "} + "*"%string{" "} + + tfloat + {" "} + + tfloat + +
+     |{" "} + + + OpFloatBinary + + {" "} + + + FloatDiv + + {" "} + =>{" "} + + fmt_easy + {" "} + "/"%string{" "} + + tfloat + {" "} + + tfloat + +
+     |{" "} + + + OpFloatBinary + + {" "} + + + FloatPow + + {" "} + =>{" "} + + fmt_easy + {" "} + "^"%string{" "} + + tfloat + {" "} + + tfloat + +
+     |{" "} + + + OpNatBinary + + {" "} + + + NatPlus + + {" "} + =>{" "} + + fmt_easy + {" "} + "+i"%string{" "} + + tnat + {" "} + + tnat + +
+     |{" "} + + + OpNatBinary + + {" "} + + + NatMinus + + {" "} + =>{" "} + + fmt_easy + {" "} + "-i"%string{" "} + + tnat + {" "} + + tnat + +
+     |{" "} + + + OpNatBinary + + {" "} + + + NatMult + + {" "} + =>{" "} + + fmt_easy + {" "} + "*i"%string{" "} + + tnat + {" "} + + tnat + +
+     |{" "} + + + OpNatBinary + + {" "} + + + NatDiv + + {" "} + =>{" "} + + fmt_easy + {" "} + "/i"%string{" "} + + tnat + {" "} + + tnat + +
+     |{" "} + + + OpNatBinary + + {" "} + NatPow =>{" "} + + fmt_easy + {" "} + "^i"%string{" "} + + tnat + {" "} + + tnat + +
+     |{" "} + + + OpFloatCompare + + {" "} + + + FloatLt + + {" "} + =>{" "} + + fmt_easy + {" "} + "<"%string{" "} + + tfloat + {" "} + + tfloat + +
+     |{" "} + + + OpFloatCompare + + {" "} + + + FloatLe + + {" "} + =>{" "} + + fmt_easy + {" "} + "<="%string{" "} + + tfloat + {" "} + + tfloat + +
+     |{" "} + + + OpFloatCompare + + {" "} + + + FloatGt + + {" "} + =>{" "} + + fmt_easy + {" "} + ">"%string{" "} + + tfloat + {" "} + + tfloat + +
+     |{" "} + + + OpFloatCompare + + {" "} + + + FloatGe + + {" "} + =>{" "} + + fmt_easy + {" "} + ">="%string{" "} + + tfloat + {" "} + + tfloat + +
+     | _ => " + This operator{" "} + received unexpected{" "} + arguments of{" "} + type `" ++ ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + arg1 + + ) ++ "' " ++ " and `" ++ ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + arg2 + + ) ++ "'." +
+     end.
+
+   Definition{" "} + + ergo_format_new_error + {" "} + nsctxt (name: + + + string + + + ) (actual: + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + concept_name :={" "} + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + ( + + + Brand + + {" "} + ( + + name + + :: + + nil + + )) in +
+     match{" "} + + + diff_record_types + + {" "} + ( + + name + + :: + + nil + + ){" "} + + actual + {" "} + with +
+     |{" "} + + + None + + {" "} + => "Concept name{" "} + " ++{" "} + + name + {" "} + ++ " does not{" "} + match data"
+     |{" "} + + + Some + + {" "} + ( + + nil + + ,{" "} + + nil + + ) => +
+       match{" "} + + + fields_that_are_not_subtype + + {" "} + ( + + name + + :: + + nil + + ){" "} + + actual + {" "} + with +
+       |{" "} + + nil + {" "} + => "Concept " ++{" "} + + name + {" "} + ++ " doesn't{" "} + match data ( + one field{" "} + is not{" "} + a subtype)" +
+       | ( + expected_name,{" "} + expected_type,{" "} + actual_type) :: _{" "} + => +
+         " + Field `" ++{" "} + expected_name +
+                   ++ + "' has type `" ++ ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + actual_type)
+                   ++ + "' but should{" "} + have type `" ++ ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + expected_type) ++ "'" +
+       end +
+     |{" "} + + + Some + + {" "} + ( + + nil + + , actual_name:: + + nil + + ) => +
+       " + Unknown + {" "} + field `" ++{" "} + actual_name ++ "'{" "} + in type `" ++{" "} + + concept_name + {" "} + ++ "'" +
+     |{" "} + + + Some + + {" "} + ( + + nil + + , actual_names) => +
+       " + Unknown + {" "} + fields `" ++{" "} + + + String.concat + + {" "} + "', `" actual_names ++ "'{" "} + in type `" ++{" "} + + concept_name + {" "} + ++ "'" +
+     |{" "} + + + Some + + {" "} + (expected_name:: + + nil + + , _) => +
+       " + Missing + {" "} + field `" ++{" "} + expected_name ++ "'{" "} + in type `" ++{" "} + + concept_name + {" "} + ++ "'" +
+     |{" "} + + + Some + + {" "} + (expected_names, _) + => +
+       " + Missing + {" "} + fields `" ++{" "} + + + String.concat + + {" "} + "', `" expected_names ++ "'{" "} + in type `" ++{" "} + + concept_name + {" "} + ++ "'" +
+     end.
+
+   Definition{" "} + + + ergo_format_clause_return_fallback_error + + +
+               + nsctxt +
+              ( + name: + + + string + + + )
+              ( + actual expected: + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + actual_s :={" "} + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + actual + {" "} + in +
+     let{" "} + expected_s :={" "} + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + expected + {" "} + in +
+     "Clause " ++{" "} + + name + {" "} + ++ " should return{" "} + `" ++{" "} + + expected_s + +
+               ++ + "' but actually{" "} + returns `" ++{" "} + + actual_s + {" "} + ++ "'". +
+
+   Definition{" "} + + + ergo_format_clause_return_component_error + + +
+               + nsctxt +
+              ( + name: + + + string + + + )
+              ( + component1{" "} + component2: + + + string + + + )
+              ( + actual expected: + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + actual_s :={" "} + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + actual + {" "} + in +
+     let{" "} + expected_s :={" "} + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + expected + {" "} + in +
+     "Clause " ++{" "} + + name + {" "} + ++ " should " ++{" "} + + component1 + {" "} + ++ " `" ++{" "} + + expected_s + +
+               ++ + "' but actually " ++{" "} + + component2 + {" "} + ++ " `" ++{" "} + + actual_s + {" "} + ++ "'". +
+
+   Definition{" "} + + + ergo_format_clause_return_normal_error + + +
+               + nsctxt +
+              ( + name: + + + string + + + )
+              ( + actual expected: + + ergoc_type + + )
+              ( + actual_quad{" "} + expected_quad: + + ergoc_type + {" "} + *{" "} + + ergoc_type + {" "} + *{" "} + + ergoc_type + {" "} + *{" "} + + ergoc_type + + )
+     :{" "} + + + string + + {" "} + := +
+     let '( + actual_resp,{" "} + actual_emit,{" "} + actual_state,{" "} + actual_error) :={" "} + + actual_quad + {" "} + in +
+     let '( + expected_resp,{" "} + expected_emit,{" "} + expected_state,{" "} + expected_error) :={" "} + + + expected_quad + + {" "} + in +
+     if{" "} + + + ergoc_type_subtype_dec + + {" "} + actual_resp{" "} + expected_resp +
+     then +
+       if{" "} + + + ergoc_type_subtype_dec + + {" "} + actual_emit{" "} + expected_emit +
+       then +
+          + if{" "} + + + ergoc_type_subtype_dec + + {" "} + actual_state{" "} + expected_state +
+          + then +
+            + if{" "} + + + ergoc_type_subtype_dec + + {" "} + actual_error{" "} + expected_error +
+            + then +
+              + + + ergo_format_clause_return_fallback_error + + {" "} + + nsctxt + {" "} + + name + {" "} + + actual + {" "} + + expected + +
+            + else +
+              + + + ergo_format_clause_return_component_error + + +
+                + + nsctxt + {" "} + + name + {" "} + "fail with" " + fails with"{" "} + actual_error{" "} + expected_error +
+          + else +
+            + + + ergo_format_clause_return_component_error + + +
+              + + nsctxt + {" "} + + name + {" "} + "set state" " + sets state"{" "} + actual_state{" "} + expected_state +
+       else +
+          + + + ergo_format_clause_return_component_error + + +
+            + + nsctxt + {" "} + + name + {" "} + "emit" "emits"{" "} + actual_emit{" "} + expected_emit +
+     else +
+        + + + ergo_format_clause_return_component_error + + +
+          + + nsctxt + {" "} + + name + {" "} + "respond" "responds"{" "} + actual_resp{" "} + expected_resp.
+
+   Definition{" "} + + + ergo_format_clause_return_error + + {" "} + nsctxt (name: + + + string + + + ) (actual expected: + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + actual_quad :={" "} + + + unpack_output_type + + {" "} + + nsctxt + {" "} + + actual + {" "} + in +
+     let{" "} + expected_quad :={" "} + + + unpack_output_type + + {" "} + + nsctxt + {" "} + + expected + {" "} + in +
+     let{" "} + normal_error :={" "} + + + ergo_format_clause_return_normal_error + + {" "} + + nsctxt + {" "} + + name + {" "} + + actual + {" "} + + expected + {" "} + in +
+     let{" "} + fallback_error :={" "} + fun e =>{" "} + + + ergo_format_clause_return_fallback_error + + {" "} + + nsctxt + {" "} + + name + {" "} + + actual + {" "} + + expected + {" "} + in +
+      + + elift2_both + +
+        + + normal_error + +
+        + + + fallback_error + + +
+        + + actual_quad + +
+        + + + expected_quad + + + .
+    +
+   Definition{" "} + + + ergo_format_function_return_error + + {" "} + nsctxt (name: + + + string + + + ) (actual expected: + + ergoc_type + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + actual_s :={" "} + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + actual + {" "} + in +
+     let{" "} + expected_s :={" "} + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + expected + {" "} + in +
+     "Function " ++{" "} + + name + {" "} + ++ " should return{" "} + `" ++{" "} + + expected_s + {" "} + ++ "' but actually{" "} + returns `" ++{" "} + + actual_s + {" "} + ++ "'". +
+    +
+   Fixpoint{" "} + + ergo_type_expr + {" "} + nsctxt (ctxt :{" "} + + + type_context + + + ) (expr :{" "} + + ergoc_expr + + ) :{" "} + + eresult + {" "} + + ergoc_type + {" "} + := +
+     match{" "} + + expr + {" "} + with +
+     |{" "} + + EThisContract + {" "} + prov =>{" "} + + efailure + {" "} + ( + + ESystemError + {" "} + prov "No ` + this' in{" "} + ergoc") +
+     |{" "} + + EThisClause + {" "} + prov =>{" "} + + efailure + {" "} + ( + + ESystemError + {" "} + prov "No ` + clause' in{" "} + ergoc") +
+     |{" "} + + EThisState + {" "} + prov =>{" "} + + efailure + {" "} + ( + + ESystemError + {" "} + prov "No ` + state' in{" "} + ergoc") +
+     |{" "} + + EVar + {" "} + prov name => +
+       let{" "} + opt :={" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + ( + + ctxt + + .( + + + type_context_local_env + + + )++ + + ctxt + + .( + + + type_context_global_env + + + )) name in +
+        + + + eresult_of_option + + {" "} + + opt + {" "} + ( + + ETypeError + {" "} + prov ("Variable `" + ++ name ++ "' not{" "} + found.")%string) +
+     |{" "} + + EConst + {" "} + prov d => +
+        + + + eresult_of_option + + +
+         ( + + + infer_data_type + + {" "} + d)
+         ( + + ETypeError + {" "} + prov "Bad{" "} + constant.") +
+     |{" "} + + ENone + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + toption + {" "} + + tbottom + + )
+     |{" "} + + ESome + {" "} + prov e =>{" "} + + elift + {" "} + + toption + {" "} + ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + e)
+     |{" "} + + EArray + {" "} + prov es => +
+       ( + + elift + {" "} + + tcoll + + )
+         ( + + + fold_left + + +
+            ( + fun T{" "} + new => +
+                + + eolift + +
+                 ( + fun T' => +
+                     + + elift + +
+                      ( + fun new' =>{" "} + + + ergoc_type_join + + {" "} + T' new') +
+                      ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + + new + + )) +
+                  + + T + + )
+             + es ( + + esuccess + {" "} + + tbottom + + )) +
+     |{" "} + + EUnaryOp + {" "} + prov op{" "} + e => +
+       match{" "} + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + e with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + t => +
+          + match{" "} + + + ergoc_type_infer_unary_op + + {" "} + op t{" "} + with +
+         |{" "} + + + Some + + {" "} + (r, _) =>{" "} + + esuccess + {" "} + r +
+         |{" "} + + + None + + {" "} + =>{" "} + + efailure + {" "} + ( + + ETypeError + {" "} + prov ( + + + ergo_format_unop_error + + {" "} + + nsctxt + {" "} + op t)) +
+          + end +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       end +
+     |{" "} + + EBinaryOp + {" "} + prov op{" "} + e1 e2 => +
+       match{" "} + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + e1 with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + t1 => +
+          + match{" "} + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + e2 with +
+         |{" "} + + + Success + + {" "} + _ _{" "} + t2 => +
+            + match{" "} + + + ergoc_type_infer_binary_op + + {" "} + op t1{" "} + t2 with +
+           |{" "} + + + Some + + {" "} + (r, _,{" "} + _) =>{" "} + + esuccess + {" "} + r +
+           |{" "} + + + None + + {" "} + =>{" "} + + efailure + {" "} + ( + + ETypeError + {" "} + prov ( + + + ergo_format_binop_error + + {" "} + + nsctxt + {" "} + op t1{" "} + t2)) +
+            + end +
+         |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+          + end +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       end +
+     |{" "} + + EIf + {" "} + prov c{" "} + t f => +
+        + + eolift + {" "} + (fun c' => +
+                  + if{" "} + + + ergoc_type_subtype_dec + + {" "} + c'{" "} + + tbool + {" "} + then +
+                    + + elift2 + {" "} + + + ergoc_type_join + + +
+                          ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + t)
+                          ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + f)
+                  + else{" "} + + efailure + {" "} + ( + + ETypeError + {" "} + prov "'If'{" "} + condition not{" "} + boolean."%string)) +
+              ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + c)
+     |{" "} + + ELet + {" "} + prov n{" "} + + + None + + {" "} + v e => +
+       ( + + eolift + {" "} + (fun vt => +
+                  + let ctxt' :={" "} + + + type_context_update_local_env + + {" "} + + ctxt + {" "} + n{" "} + + vt + {" "} + in +
+                  + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + ctxt' e)
+              ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + v)) +
+     |{" "} + + ELet + {" "} + prov n ( + + + Some + + {" "} + t) v{" "} + e => +
+       let{" "} + fmt_err := +
+            + fun t'{" "} + vt => +
+            + match prov{" "} + with +
+           |{" "} + + ProvFunc + {" "} + _ fname => +
+              + + ETypeError + {" "} + prov +
+                        (" + Function `" ++ fname +
+                                      ++ + "' + expected + argument `" +
+                                      ++{" "} + n +
+                                      ++ + "' to be{" "} + of type `" +
+                                      ++ + ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + t') +
+                                      ++ + "' but was{" "} + given argument{" "} + of type `" +
+                                      ++ + ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + vt + + )
+                                      ++ + "'." )
+           |{" "} + _ =>{" "} + + ETypeError + {" "} + prov +
+                             (" + The let{" "} + type annotation `" +
+                                ++ + ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + t') +
+                                ++ + "' for the{" "} + name `" +
+                                ++{" "} + n +
+                                ++ + "' does not{" "} + match the{" "} + actual type `" +
+                                ++ + ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + vt + + )
+                                ++ + "'.") +
+            + end +
+       in +
+       ( + + eolift + +
+          ( + fun vt => +
+              + let t' := ( + + + ergo_type_to_ergoc_type + + {" "} + t) in +
+              + if{" "} + + + subtype_dec + + {" "} + + vt + {" "} + t' then +
+                + let ctxt' := +
+                    + + + type_context_update_local_env + + +
+                      + + ctxt + {" "} + n +
+                      + t'
+                + in +
+                + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + ctxt' e +
+              + else +
+                + + efailure + {" "} + ( + + fmt_err + {" "} + t'{" "} + + vt + + )) +
+          ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + v)) +
+     |{" "} + + ERecord + {" "} + prov rs => +
+        + + + fold_left + + +
+         ( + fun sofar{" "} + next => +
+             + + eolift2 + +
+              ( + fun sofar'{" "} + val' => +
+                 ( + + elift + {" "} + ( + + + compose + + {" "} + + fst + {" "} + + fst + + )) +
+                   ( + + + eresult_of_option + + +
+                      ( + + + ergoc_type_infer_binary_op + + {" "} + + + OpRecConcat + + {" "} + sofar' val') +
+                      ( + + ETypeError + {" "} + prov "Bad{" "} + record! Failed{" "} + to concat."% + string))) +
+               + + sofar + +
+              ( + + eolift + {" "} + (fun val => +
+                         ( + + elift + {" "} + + fst + + )
+                           ( + + + eresult_of_option + + +
+                              ( + + + ergoc_type_infer_unary_op + + {" "} + ( + + + OpRec + + {" "} + ( + + fst + {" "} + + next + + )){" "} + + val + + )
+                              ( + + ETypeError + {" "} + prov "Bad{" "} + record! Failed{" "} + to init."% + string))) +
+                      ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + ( + + snd + {" "} + + next + + )))) +
+          + rs ( + + esuccess + {" "} + + + empty_rec_type + + + )
+     |{" "} + + ENew + {" "} + prov name{" "} + rs => +
+        + + eolift + +
+         ( + fun rs' => +
+            ( + + elift + {" "} + + fst + + )
+              ( + + + eresult_of_option + + +
+                 ( + + + infer_brand_strict + + {" "} + (name:: + + nil + + ) rs') +
+                 ( + + ETypeError + {" "} + prov ( + + + ergo_format_new_error + + {" "} + + nsctxt + {" "} + name rs')))) +
+         ( + + + fold_left + + +
+            ( + fun sofar{" "} + next => +
+                + + eolift2 + +
+                 ( + fun sofar'{" "} + val' => +
+                    ( + + elift + {" "} + ( + + + compose + + {" "} + + fst + {" "} + + fst + + )) +
+                      ( + + + eresult_of_option + + +
+                         ( + + + ergoc_type_infer_binary_op + + {" "} + + + OpRecConcat + + {" "} + sofar' val') +
+                         ( + + ETypeError + {" "} + prov "Bad{" "} + record! Failed{" "} + to concat."% + string))) +
+                  + + sofar + +
+                 ( + + eolift + {" "} + (fun val => +
+                            ( + + elift + {" "} + + fst + + )
+                              ( + + + eresult_of_option + + +
+                                 ( + + + ergoc_type_infer_unary_op + + {" "} + ( + + + OpRec + + {" "} + ( + + fst + {" "} + + next + + )){" "} + + val + + )
+                                 ( + + ETypeError + {" "} + prov "Bad{" "} + record! Failed{" "} + to init."% + string))) +
+                         ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + ( + + snd + {" "} + + next + + )))) +
+             + rs ( + + esuccess + {" "} + + + empty_rec_type + + + )) +
+     |{" "} + + ECallFun + {" "} + prov fname{" "} + args =>{" "} + + + function_not_inlined_error + + {" "} + prov fname +
+     |{" "} + + ECallFunInGroup + {" "} + prov gname{" "} + fname args =>{" "} + + + function_in_group_not_inlined_error + + {" "} + prov gname{" "} + fname +
+     |{" "} + + EMatch + {" "} + prov term{" "} + pes default => +
+       match{" "} + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + term with +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       |{" "} + + + Success + + {" "} + _ _{" "} + t0 => +
+          + + + fold_left + + +
+           ( + + fun + default_result{" "} + pe => +
+               + match{" "} + + pe + {" "} + with +
+              | + ( + + CaseData + {" "} + prov d,{" "} + res) =>
+                 + match{" "} + + + ergoc_type_infer_data + + {" "} + d with +
+                |{" "} + + + None + + {" "} + =>{" "} + + efailure + {" "} + ( + + ETypeError + {" "} + prov "Ill- + typed data{" "} + literal!") +
+                |{" "} + + + Some + + {" "} + dt => +
+                   + + elift2 + {" "} + + + ergoc_type_join + + +
+                          + + + default_result + + +
+                         ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + res)
+                 + end +
+              | + ( + + CaseWildcard + {" "} + prov{" "} + + + None + + + , res) => +
+                 + + elift2 + {" "} + + + ergoc_type_join + + {" "} + + + default_result + + {" "} + ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + res)
+              | + ( + + CaseLet + {" "} + prov name{" "} + + + None + + + , res) => +
+                 + + elift2 + {" "} + + + ergoc_type_join + + {" "} + + + default_result + + +
+                       ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + ( + + + type_context_update_local_env + + {" "} + + ctxt + {" "} + name t0){" "} + res)
+              | + ( + + CaseLetOption + {" "} + prov name{" "} + + + None + + + , res) => +
+                 + match{" "} + + + unteither + + {" "} + t0 with +
+                |{" "} + + + None + + {" "} + =>{" "} + + + default_result + + +
+                |{" "} + + + Some + + {" "} + (st, ft) => +
+                   + + elift2 + {" "} + + + ergoc_type_join + + {" "} + + + default_result + + +
+                         ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + ( + + + type_context_update_local_env + + {" "} + + ctxt + {" "} + name st){" "} + res)
+                 + end +
+              | + ( + + CaseWildcard + {" "} + prov ( + + + Some + + {" "} + b), res) => +
+                 + + elift2 + {" "} + + + ergoc_type_join + + {" "} + + + default_result + + +
+                       ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + res)
+
+              | + ( + + CaseLet + {" "} + prov name ( + + + Some + + {" "} + b), res) => +
+                 + + elift2 + {" "} + + + ergoc_type_join + + {" "} + + + default_result + + +
+                       ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + ( + + + type_context_update_local_env + + +
+                                           + + ctxt + +
+                                           + name +
+                                          ( + + tbrand + {" "} + (b:: + + nil + + ))) +
+                                        + res)
+              | + ( + + CaseLetOption + {" "} + prov name ( + + + Some + + {" "} + b), res) => +
+                 + + elift2 + {" "} + + + ergoc_type_join + + {" "} + + + default_result + + +
+                       ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + ( + + + type_context_update_local_env + + +
+                                           + + ctxt + +
+                                           + name +
+                                          ( + + tbrand + {" "} + (b:: + + nil + + ))) +
+                                        + res)
+               + end)
+            + pes ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + default)
+       end +
+     |{" "} + + EForeach + {" "} + prov ((name, + arr):: + + nil + + ){" "} + + + None + + {" "} + fn => +
+        + + eolift + {" "} + (fun arr' => +
+                  + + eolift + +
+                   ( + fun typ => ( + + elift + {" "} + + tcoll + + ) ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + ( + + + type_context_update_local_env + + {" "} + + ctxt + {" "} + name{" "} + + typ + + ) fn)) +
+                 ( + + + eresult_of_option + + +
+                   ( + + untcoll + {" "} + arr') +
+                   ( + + ETypeError + +
+                       + prov +
+                      (" + foreach expects{" "} + an array{" "} + to iterate{" "} + over, but{" "} + was given{" "} + something of{" "} + type `" ++ ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + arr') ++ "'.")))) +
+             ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + ctxt + {" "} + arr)
+              +
+     |{" "} + + EForeach + {" "} + prov _{" "} + _ _ => +
+        + + + complex_foreach_in_calculus_error + + {" "} + prov +
+     end.
+
+   Definition{" "} + + ergoc_type_function + +
+              ( + nsctxt:{" "} + + + namespace_ctxt + + + )
+              ( + name: + + + string + + + )
+              ( + dctxt :{" "} + + + type_context + + + )
+              ( + func :{" "} + + ergoc_function + + ) :{" "} + + eresult + {" "} + + + type_context + + {" "} + := +
+     match{" "} + + func + + .( + + functionc_body + + ) with +
+     |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + dctxt + +
+     |{" "} + + + Some + + {" "} + body => +
+       let{" "} + tsig := +
+            + + map + {" "} + (fun x => ( + + fst + {" "} + + x + + ,{" "} + + + ergo_type_to_ergoc_type + + {" "} + ( + + snd + {" "} + + x + + ))) +
+                + + func + + .( + + functionc_sig + + ).( + + sigc_params + + ) in +
+        + + eolift + +
+         ( + fun outt => +
+             + let eoutt :={" "} + + func + + .( + + functionc_sig + + ).( + + sigc_output + + ) in +
+             + match{" "} + + eoutt + {" "} + with +
+            |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + dctxt + +
+            |{" "} + + + Some + + {" "} + eoutt' => +
+               + let expectedt :={" "} + + + ergo_type_to_ergoc_type + + {" "} + eoutt' in +
+               + if{" "} + + + subtype_dec + + +
+                    + + outt + +
+                    + + expectedt + +
+               + then{" "} + + esuccess + {" "} + + dctxt + +
+               + else +
+                 + let body_prov :={" "} + + bodyc_annot + {" "} + + func + {" "} + in +
+                 + match{" "} + + func + + .( + + + functionc_annot + + + ) with +
+                |{" "} + + ProvClause + {" "} + _ name => +
+                   + + efailure + {" "} + ( + + ETypeError + {" "} + + body_prov + {" "} + ( + + + ergo_format_clause_return_error + + {" "} + + nsctxt + {" "} + + name + {" "} + + outt + {" "} + + expectedt + + )) +
+                |{" "} + + ProvFunc + {" "} + _ name => +
+                   + + efailure + {" "} + ( + + ETypeError + {" "} + + body_prov + {" "} + ( + + + ergo_format_function_return_error + + {" "} + + nsctxt + {" "} + + name + {" "} + + outt + {" "} + + expectedt + + )) +
+                |{" "} + _ => +
+                   + + efailure + {" "} + ( + + ETypeError + {" "} + + body_prov + {" "} + ( + + + ergo_format_function_return_error + + {" "} + + nsctxt + {" "} + + name + {" "} + + outt + {" "} + + expectedt + + )) +
+                 + end +
+             + end)
+         ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + ( + + + type_context_set_local_env + + {" "} + + dctxt + {" "} + + tsig + + ) body)
+     end.
+
+   Definition{" "} + + ergoc_type_clause + +
+              ( + nsctxt:{" "} + + + namespace_ctxt + + + )
+              ( + dctxt :{" "} + + + type_context + + + )
+              ( + cl :{" "} + + + string + + {" "} + *{" "} + + ergoc_function + + ) :{" "} + + eresult + {" "} + + + type_context + + {" "} + := +
+     let ( + name,body) :={" "} + + cl + {" "} + in +
+      + + + ergoc_type_function + + {" "} + + nsctxt + {" "} + + name + {" "} + + dctxt + {" "} + + body + + .
+
+   Definition{" "} + + ergoc_type_contract + +
+              ( + nsctxt:{" "} + + + namespace_ctxt + + + )
+              ( + dctxt :{" "} + + + type_context + + + )
+              ( + coname:{" "} + + absolute_name + + )
+              ( + c :{" "} + + ergoc_contract + + ) :{" "} + + eresult + {" "} + + + type_context + + {" "} + := +
+      + + + elift_fold_left + + +
+       ( + + + ergoc_type_clause + + {" "} + + nsctxt + + )
+        + + c + + .( + + + contractc_clauses + + + )
+        + + dctxt + + .
+
+   Definition{" "} + + ergoc_type_decl + +
+              ( + nsctxt:{" "} + + + namespace_ctxt + + + )
+              ( + dctxt :{" "} + + + type_context + + + )
+              ( + decl :{" "} + + + ergoc_declaration + + + )
+     :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + ergoc_type + {" "} + *{" "} + + + type_context + + + ) := +
+     match{" "} + + decl + {" "} + with +
+     |{" "} + + DCExpr + {" "} + prov expr => +
+        + + elift + {" "} + (fun x => ( + + + Some + + {" "} + + x + + ,{" "} + + dctxt + + )) ( + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + dctxt + {" "} + expr)
+     |{" "} + + DCConstant + {" "} + prov name{" "} + + + None + + {" "} + expr => +
+       let{" "} + expr' :={" "} + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + dctxt + {" "} + expr in +
+        + + eolift + {" "} + (fun val =>{" "} + + esuccess + {" "} + ( + + + None + + + ,{" "} + + + type_context_update_global_env + + {" "} + + dctxt + {" "} + name{" "} + + val + + )) expr'
+     |{" "} + + DCConstant + {" "} + prov name ( + + + Some + + {" "} + t) expr => +
+       let{" "} + fmt_err := +
+            + fun t'{" "} + vt => +
+              + + ETypeError + {" "} + prov +
+                        (" + The type{" "} + annotation `" +
+                           ++ + ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + t') +
+                           ++ + "' for the{" "} + constant `" +
+                           ++{" "} + name +
+                           ++ + "' does not{" "} + match its{" "} + actual type `" +
+                           ++ + ( + + + ergoc_type_to_string + + {" "} + + nsctxt + {" "} + + vt + + )
+                           ++ + "'.") +
+       in +
+       let{" "} + expr' :={" "} + + + ergo_type_expr + + {" "} + + nsctxt + {" "} + + dctxt + {" "} + expr in +
+        + + eolift + {" "} + (fun vt => +
+                  + let t' := ( + + + ergo_type_to_ergoc_type + + {" "} + t) in +
+                  + if{" "} + + + subtype_dec + + {" "} + + vt + {" "} + t' then +
+                    + let ctxt' := +
+                        + + + type_context_update_global_env + + {" "} + + dctxt + {" "} + name t'
+                    + in +
+                    + + esuccess + {" "} + ( + + + None + + + , ctxt') +
+              + else +
+                + + efailure + {" "} + ( + + fmt_err + {" "} + t'{" "} + + vt + + )) expr'
+     |{" "} + + DCFunc + {" "} + prov name{" "} + func => +
+        + + elift + {" "} + (fun ctxt => ( + + + None + + + , + + ctxt + + )) ( + + + ergoc_type_function + + {" "} + + nsctxt + {" "} + name{" "} + + dctxt + {" "} + func)
+     |{" "} + + DCContract + {" "} + prov name{" "} + contr => +
+        + + elift + {" "} + (fun ctxt => ( + + + None + + + , + + ctxt + + )) ( + + + ergoc_type_contract + + {" "} + + nsctxt + {" "} + + dctxt + {" "} + name contr)
+     end.
+
+   Definition{" "} + + ergoc_type_module + +
+              ( + nsctxt:{" "} + + + namespace_ctxt + + + )
+              ( + dctxt :{" "} + + + type_context + + + )
+              ( + mod :{" "} + + ergoc_module + + )
+     :{" "} + + eresult + {" "} + ( + + ergoc_module + {" "} + *{" "} + + + type_context + + + ) := +
+      + + elift + {" "} + (fun x => ( + + mod + + ,{" "} + + snd + {" "} + + x + + )) +
+           ( + + + elift_context_fold_left + + +
+              ( + + + ergoc_type_decl + + {" "} + + nsctxt + + )
+               + + mod + + .( + + + modulec_declarations + + + )
+               + + dctxt + + ). +
+    +
+ End{" "} + + ErgoCType + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.html b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.html deleted file mode 100644 index 8db865be..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoC.Lang.ErgoCTypeContext - - - - - - -

Module ErgoSpec.ErgoC.Lang.ErgoCTypeContext

-
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-
-Section ErgoCTypeContext.
-  Context {br : brand_relation}.
-  Import ErgoCTypes.
-
-  Record type_context :=
-    mkEvalContext
-      { type_context_global_env : list (string * ergoc_type);
-        type_context_local_env : list (string * ergoc_type);
-      }.
-
-  Definition type_context_update_global_env
-             (ctxt : type_context)
-             (name : string)
-             (value : ergoc_type) : type_context :=
-    mkEvalContext ((name, value)::ctxt.(type_context_global_env))
-                  ctxt.(type_context_local_env).
-
-  Definition type_context_update_local_env
-             (ctxt : type_context)
-             (name : string)
-             (value : ergoc_type) : type_context :=
-    mkEvalContext ctxt.(type_context_global_env)
-                  ((name, value)::ctxt.(type_context_local_env)).
-
-  Definition type_context_set_local_env
-             (ctxt : type_context)
-             (new_local_env : list (string * ergoc_type)) : type_context :=
-    mkEvalContext ctxt.(type_context_global_env)
-                  new_local_env.
-
-  Definition empty_type_context :=
-    mkEvalContext ((current_time,tdateTime)
-                      ::(this_contract,tunit)
-                      ::(this_state,tunit)
-                      ::(this_emit,tcoll tbottom)
-                      ::nil)
-                   (nil).
-  
-End ErgoCTypeContext.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.jsx b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.jsx new file mode 100644 index 00000000..0bd9f9d5 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoC.Lang.ErgoCTypeContext.jsx @@ -0,0 +1,413 @@ +
+ + Module ErgoSpec.ErgoC.Lang.ErgoCTypeContext + + +

Module ErgoSpec.ErgoC.Lang.ErgoCTypeContext

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+
+ Section{" "} + + ErgoCTypeContext + + .
+   Context {"{"} + br :{" "} + + + brand_relation + + + {"}"}.
+   Import{" "} + ErgoCTypes.
+
+   Record{" "} + + type_context + {" "} + := +
+      + + mkEvalContext + +
+       {"{"}{" "} + + type_context_global_env + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_type + + ); +
+          + + type_context_local_env + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_type + + ); +
+       {"}"}.
+
+   Definition{" "} + + + type_context_update_global_env + + +
+              ( + ctxt :{" "} + + + type_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_type + + ) :{" "} + + + type_context + + {" "} + := +
+      + + + mkEvalContext + + {" "} + (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + type_context_global_env + + + )) +
+                    + + ctxt + + .( + + + type_context_local_env + + + ). +
+
+   Definition{" "} + + type_context_update_local_env + +
+              ( + ctxt :{" "} + + + type_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_type + + ) :{" "} + + + type_context + + {" "} + := +
+      + + + mkEvalContext + + {" "} + + ctxt + + .( + + + type_context_global_env + + + )
+                   (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + type_context_local_env + + + )). +
+
+   Definition{" "} + + type_context_set_local_env + +
+              ( + ctxt :{" "} + + + type_context + + + )
+              ( + new_local_env :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_type + + )) :{" "} + + + type_context + + {" "} + := +
+      + + + mkEvalContext + + {" "} + + ctxt + + .( + + + type_context_global_env + + + )
+                    + + + new_local_env + + + .
+
+   Definition{" "} + + empty_type_context + {" "} + := +
+      + + + mkEvalContext + + {" "} + (( + + current_time + + , + + + tdateTime + + + )
+                       ::( + + this_contract + + , + + tunit + + )
+                       ::( + + this_state + + , + + tunit + + )
+                       ::( + + this_emit + + , + + tcoll + {" "} + + tbottom + + )
+                       :: + + nil + + )
+                    ( + + nil + + ). +
+    +
+ End{" "} + + + ErgoCTypeContext + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.html b/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.html deleted file mode 100644 index 4dc3c68c..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoNNRC.Lang.ErgoNNRC - - - - - - -

Module ErgoSpec.ErgoNNRC.Lang.ErgoNNRC

-
-
-
ErgoNNRC is an IL with function tables where the body is written in NNRC. It is the main IL interfacing with Q*cert for code-generation.
-
-

Abstract Syntax

-
-Require Import String.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section ErgoNNRC.
-
-  Section Syntax.
-
-
Expression
-    Definition nnrc_expr := ErgoCodeGen.nnrc_expr.
-    Definition nnrc_type := laergo_type.
-
-    Record lambdan :=
-      mkLambdaN
-        { lambdan_params: list (string * nnrc_type);
-          lambdan_output : option nnrc_type;
-          lambdan_body : nnrc_expr; }.
-
-
Function
-    Record nnrc_function :=
-      mkFuncN
-        { functionn_name : string;
-          functionn_lambda : lambdan; }.
-
-
Function table
-    Record nnrc_function_table :=
-      mkFuncTableN
-        { function_tablen_name : string;
-          function_tablen_funs : list nnrc_function; }.
-
-
Declaration
-    Inductive nnrc_declaration :=
-    | DNExpr : nnrc_expr -> nnrc_declaration
-    | DNConstant : string -> nnrc_expr -> nnrc_declaration
-    | DNFunc : nnrc_function -> nnrc_declaration
-    | DNFuncTable : nnrc_function_table -> nnrc_declaration.
-
-
Module.
-    Record nnrc_module :=
-      mkModuleN
-        { modulen_namespace : string;
-          modulen_declarations : list nnrc_declaration; }.
-
-  End Syntax.
-
-  Section Semantics.
-  End Semantics.
-
-  Section Evaluation.
-  End Evaluation.
-End ErgoNNRC.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.jsx b/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.jsx new file mode 100644 index 00000000..3e9155ec --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.jsx @@ -0,0 +1,365 @@ +
+ + Module ErgoSpec.ErgoNNRC.Lang.ErgoNNRC + + +

Module ErgoSpec.ErgoNNRC.Lang.ErgoNNRC

+
+
+
+ ErgoNNRC is an IL with function tables where the body is written in NNRC. + It is the main IL interfacing with Q*cert for code-generation.{" "} +
+
+

Abstract Syntax

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+
+ Section{" "} + + ErgoNNRC + + .
+
+   Section{" "} + Syntax.
+
+
Expression
+     Definition{" "} + + nnrc_expr + {" "} + :={" "} + + + ErgoCodeGen.nnrc_expr + + + .
+     Definition{" "} + + nnrc_type + {" "} + :={" "} + + laergo_type + + .
+
+     Record{" "} + + lambdan + {" "} + := +
+        + + mkLambdaN + +
+         {"{"}{" "} + + lambdan_params + + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + nnrc_type + + ); +
+            + + lambdan_output + {" "} + :{" "} + + + option + + {" "} + + nnrc_type + + ;
+            + + lambdan_body + {" "} + :{" "} + + nnrc_expr + + ; {"}"}.
+
+
Function
+     Record{" "} + + nnrc_function + {" "} + := +
+        + + mkFuncN + +
+         {"{"}{" "} + + functionn_name + {" "} + :{" "} + + + string + + + ;
+            + + functionn_lambda + {" "} + :{" "} + + lambdan + + ; {"}"}.
+
+
Function table
+     Record{" "} + + nnrc_function_table + {" "} + := +
+        + + mkFuncTableN + +
+         {"{"}{" "} + + function_tablen_name + {" "} + :{" "} + + + string + + + ;
+            + + function_tablen_funs + {" "} + :{" "} + + + list + + {" "} + + + nnrc_function + + + ; {"}"}.
+
+
Declaration
+     Inductive{" "} + + nnrc_declaration + {" "} + := +
+     |{" "} + + DNExpr + {" "} + :{" "} + + nnrc_expr + {" "} + ->{" "} + + + nnrc_declaration + + +
+     |{" "} + + DNConstant + {" "} + :{" "} + + + string + + {" "} + ->{" "} + + nnrc_expr + {" "} + ->{" "} + + + nnrc_declaration + + +
+     |{" "} + + DNFunc + {" "} + :{" "} + + + nnrc_function + + {" "} + ->{" "} + + + nnrc_declaration + + +
+     |{" "} + + DNFuncTable + {" "} + :{" "} + + + nnrc_function_table + + {" "} + ->{" "} + + + nnrc_declaration + + + .
+
+
Module.
+     Record{" "} + + nnrc_module + {" "} + := +
+        + + mkModuleN + +
+         {"{"}{" "} + + modulen_namespace + {" "} + :{" "} + + + string + + + ;
+            + + modulen_declarations + {" "} + :{" "} + + + list + + {" "} + + + nnrc_declaration + + + ; {"}"}.
+
+   End{" "} + Syntax.
+
+   Section{" "} + + Semantics + + .
+   End{" "} + + + Semantics + + + .
+
+   Section{" "} + + Evaluation + + .
+   End{" "} + + + Evaluation + + + .
+ End{" "} + + ErgoNNRC + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.html b/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.html deleted file mode 100644 index 8875cd5a..00000000 --- a/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - -Module ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar - - - - - - -

Module ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar

-
-
-
Ergo is a language for expressing contract logic.
-
-

Syntactic sugar

-
-Require Import String.
-Require Import List.
-Require Import Qcert.NNRC.NNRCRuntime.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section ErgoNNRCSugar.
-  Open Scope string.
-
-
Fresh variables
-  Definition fresh_in_match {A} (eccases:list (A * nnrc_expr)) (ecdefault:nnrc_expr) :=
-    fresh_var
-      "$match"
-      (List.app
-         (List.concat
-            (List.map (fun eccase => nnrc_free_vars (snd eccase)) eccases))
-         (nnrc_free_vars ecdefault)).
-
-  Definition fresh_in_case (pattern_expr:nnrc_expr) (else_expr:nnrc_expr) : string :=
-    fresh_var "$case"
-              (List.app (nnrc_free_vars pattern_expr) (nnrc_free_vars else_expr)).
-
-  Definition fresh_in_lift_error (e:nnrc_expr) :=
-    fresh_var2 "$lifte" "$lifte"
-               (nnrc_free_vars e).
-  Definition fresh_in_lift_optional (e:nnrc_expr) :=
-    fresh_var2 "$lifto" "$lifto"
-               (nnrc_free_vars e).
-
-
New Array
-  Definition new_array (el:list nnrc_expr) : nnrc_expr :=
-    match el with
-    | nil => NNRCConst (dcoll nil)
-    | e1::erest =>
-      fold_left (fun acc e => NNRCBinop OpBagUnion acc (NNRCUnop OpBag e)) erest (NNRCUnop OpBag e1)
-    end.
-
-
new Concept{ field1: expr1, ... fieldn: exprn } creates a record and brands it with the concept name
-  Definition new_expr (brand:string) (struct_expr:nnrc_expr) : nnrc_expr :=
-    NNRCUnop (OpBrand (brand :: nil)) struct_expr.
-
-  Section Examples.
-    Definition el1 := (NNRCConst (dnat 1))::(NNRCConst (dnat 2))::(NNRCConst (dnat 3))::nil.
-
-  End Examples.
-End ErgoNNRCSugar.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.jsx b/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.jsx new file mode 100644 index 00000000..16de6fe0 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.jsx @@ -0,0 +1,504 @@ +
+ + Module ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar + + +

Module ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar

+
+
+
+ Ergo is a language for expressing contract logic.{" "} +
+
+

Syntactic sugar

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + Qcert.NNRC.NNRCRuntime + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoNNRC.Lang.ErgoNNRC + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+
+ Section{" "} + + ErgoNNRCSugar + + .
+   Open{" "} + Scope string.
+
+
Fresh variables
+   Definition{" "} + + fresh_in_match + {" "} + {"{"} + A + {"}"} (eccases: + + + list + + {" "} + ( + + A + {" "} + *{" "} + + nnrc_expr + + )) (ecdefault: + + nnrc_expr + + ) := +
+      + + + fresh_var + + +
+       "$match" +
+       ( + + List.app + +
+          ( + + + List.concat + + +
+             ( + + List.map + {" "} + (fun eccase =>{" "} + + + nnrc_free_vars + + {" "} + ( + + snd + {" "} + + eccase + + )){" "} + + eccases + + )) +
+          ( + + + nnrc_free_vars + + {" "} + + + ecdefault + + + )). +
+
+   Definition{" "} + + fresh_in_case + {" "} + (pattern_expr: + + nnrc_expr + + ) (else_expr: + + nnrc_expr + + ) :{" "} + + + string + + {" "} + := +
+      + + + fresh_var + + {" "} + "$case"
+               ( + + List.app + {" "} + ( + + + nnrc_free_vars + + {" "} + + + pattern_expr + + + ) ( + + + nnrc_free_vars + + {" "} + + + else_expr + + + )). +
+
+   Definition{" "} + + fresh_in_lift_error + {" "} + (e: + + nnrc_expr + + ) := +
+      + + + fresh_var2 + + {" "} + "$lifte" "$lifte" +
+                ( + + + nnrc_free_vars + + {" "} + + e + + ). +
+   Definition{" "} + + fresh_in_lift_optional + {" "} + (e: + + nnrc_expr + + ) := +
+      + + + fresh_var2 + + {" "} + "$lifto" "$lifto" +
+                ( + + + nnrc_free_vars + + {" "} + + e + + ). +
+
+
New Array
+   Definition{" "} + + new_array + {" "} + (el: + + + list + + {" "} + + nnrc_expr + + ) :{" "} + + nnrc_expr + {" "} + := +
+     match{" "} + + el + {" "} + with +
+     |{" "} + + nil + {" "} + =>{" "} + + + NNRCConst + + {" "} + ( + + + dcoll + + {" "} + + nil + + )
+     | e1:: + erest => +
+        + + + fold_left + + {" "} + (fun acc{" "} + e =>{" "} + + + NNRCBinop + + {" "} + + + OpBagUnion + + {" "} + + acc + {" "} + ( + + + NNRCUnop + + {" "} + + + OpBag + + {" "} + + e + + )) erest ( + + + NNRCUnop + + {" "} + + + OpBag + + {" "} + e1)
+     end.
+
+
+ + new Concept + {"{"} field1:{" "} + expr1, ...{" "} + fieldn: exprn{" "} + {"}"} + {" "} + creates a record and brands it with the concept name{" "} +
+   Definition{" "} + + new_expr + {" "} + (brand: + + + string + + + ) (struct_expr: + + nnrc_expr + + ) :{" "} + + nnrc_expr + {" "} + := +
+      + + + NNRCUnop + + {" "} + ( + + + OpBrand + + {" "} + ( + + brand + {" "} + ::{" "} + + nil + + )){" "} + + + struct_expr + + + .
+
+   Section{" "} + + Examples + + .
+     Definition{" "} + + el1 + {" "} + := ( + + + NNRCConst + + {" "} + ( + + + dnat + + {" "} + 1))::( + + + NNRCConst + + {" "} + ( + + + dnat + + {" "} + 2))::( + + + NNRCConst + + {" "} + ( + + + dnat + + {" "} + 3)):: + + nil + + .
+
+   End{" "} + + + Examples + + + .
+ End{" "} + + + ErgoNNRCSugar + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Tests.HelloWorld.html b/docs/assets/specification/ErgoSpec.Tests.HelloWorld.html deleted file mode 100644 index 43cc62e6..00000000 --- a/docs/assets/specification/ErgoSpec.Tests.HelloWorld.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - -Module ErgoSpec.Tests.HelloWorld - - - - - - -

Module ErgoSpec.Tests.HelloWorld

-
-
-Require Import String.
-Require Import List.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.CTO.CTO.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.Compiler.ErgoCompiler.
-Require Import ErgoSpec.Translation.CTOtoErgo.
-Require Import ErgoSpec.Translation.ErgoNameResolve.
-
-Section HelloWorld.
-  Open Scope string_scope.
-  
-
-  Definition cl1 : lrergo_clause :=
-    mkClause dummy_provenance
-             "helloworld"
-             (mkErgoTypeSignature
-                dummy_provenance
-                (("request", ErgoTypeClassRef dummy_provenance (None,"Request"))::nil)
-                (Some (ErgoTypeClassRef dummy_provenance (None,"Response")))
-                None)
-             (Some (SReturn dummy_provenance (EVar dummy_provenance "request"))).
-
-  Definition c1 : lrergo_contract :=
-    mkContract dummy_provenance
-               (ErgoTypeClassRef dummy_provenance (None,"TemplateModel"))
-               None
-               (cl1::nil).
-  
-  Definition ergo_funcd1 : lrergo_function :=
-    mkFunc
-      dummy_provenance
-      (mkErgoTypeSignature
-         dummy_provenance
-         (("req",ErgoTypeBoolean dummy_provenance)::nil)
-         (Some (ErgoTypeBoolean dummy_provenance))
-         None)
-      None.
-    
-  Definition ergo_funcd2 : lrergo_function :=
-    mkFunc
-      dummy_provenance
-      (mkErgoTypeSignature
-         dummy_provenance
-         nil
-         (Some (ErgoTypeBoolean dummy_provenance))
-         None)
-      (Some (ECallFun dummy_provenance "addFee" nil)).
-
-  Definition ergo_clause2 : lrergo_clause :=
-    mkClause
-      dummy_provenance
-      "addFee2"
-      (mkErgoTypeSignature
-         dummy_provenance
-         (("request", ErgoTypeClassRef dummy_provenance (None,"Request"))::nil)
-         (Some (ErgoTypeClassRef dummy_provenance (None,"Response")))
-         None)
-      (Some (SReturn dummy_provenance (ECallFun dummy_provenance "addFee" nil))).
-
-  Definition ergo_contractd1 : lrergo_contract :=
-    mkContract
-      dummy_provenance
-      (ErgoTypeBoolean dummy_provenance)
-      None
-      (ergo_clause2::nil).
-
-  Definition p1 : lrergo_module :=
-    mkModule dummy_provenance
-             ""
-             "org.accordproject.helloworld"
-             (DFunc dummy_provenance "addFee" ergo_funcd1
-                    ::DContract dummy_provenance "HelloWorld" c1
-                    ::DContract dummy_provenance "MyContract" ergo_contractd1::nil).
-
-  Definition cto_typed_tm : lrcto_declaration :=
-    mkCTODeclaration
-      dummy_provenance
-      "TemplateModel"
-      (CTOConcept
-         false
-         None
-         (("x",(CTOBoolean dummy_provenance))::nil)).
-  Definition cto_typed_rq : lrcto_declaration :=
-    mkCTODeclaration
-      dummy_provenance
-      "Request"
-      (CTOConcept
-         false
-         None
-         (("x",(CTOBoolean dummy_provenance))::nil)).
-  Definition cto_typed_rs : lrcto_declaration :=
-    mkCTODeclaration
-      dummy_provenance
-      "Response"
-      (CTOConcept
-         false
-         None
-         (("x",(CTOBoolean dummy_provenance))::nil)).
-  Definition cto_model : lrcto_package :=
-    mkCTOPackage
-      dummy_provenance
-      ""
-      hyperledger_namespace
-      nil
-      (cto_typed_tm::cto_typed_rq::cto_typed_rs::nil).
-
-  Definition cto_typed_top : lrcto_declaration :=
-    mkCTODeclaration
-      dummy_provenance
-      "top"
-      (CTOConcept
-         false
-         None
-         (("x",(CTOBoolean dummy_provenance))::nil)).
-  Definition cto_hl : lrcto_package :=
-    mkCTOPackage
-      dummy_provenance
-      ""
-      hyperledger_namespace
-      nil
-      (cto_typed_top::nil).
-  Definition ctos : list lrcto_package := cto_hl::cto_model::nil.
-  
-  Definition ergo_stdlib : lrergo_module :=
-    mkModule
-      dummy_provenance "" stdlib_namespace (DType dummy_provenance ergo_typed_top::nil).
-  Definition mls:= ergo_stdlib :: nil.
-
-End HelloWorld.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Tests.HelloWorld.jsx b/docs/assets/specification/ErgoSpec.Tests.HelloWorld.jsx new file mode 100644 index 00000000..f7248c23 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Tests.HelloWorld.jsx @@ -0,0 +1,1170 @@ +
+ + Module ErgoSpec.Tests.HelloWorld + + +

Module ErgoSpec.Tests.HelloWorld

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.CTO.CTO + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + + ErgoSpec.Compiler.ErgoCompiler + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.CTOtoErgo + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoNameResolve + + + .
+
+ Section{" "} + + HelloWorld + + .
+   Open{" "} + Scope string_scope. +
+    +
+
+   Definition{" "} + + cl1 + {" "} + :{" "} + + lrergo_clause + {" "} + := +
+      + + mkClause + {" "} + + + dummy_provenance + + +
+              " + helloworld"
+              ( + + + mkErgoTypeSignature + + +
+                  + + + dummy_provenance + + +
+                 ((" + request",{" "} + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + ( + + + None + + + ,"Request")):: + + nil + + )
+                 ( + + + Some + + {" "} + ( + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + ( + + + None + + + ,"Response"))) +
+                  + + + None + + + )
+              ( + + + Some + + {" "} + ( + + SReturn + {" "} + + + dummy_provenance + + {" "} + ( + + EVar + {" "} + + + dummy_provenance + + {" "} + "request"))). +
+
+   Definition{" "} + + c1 + {" "} + :{" "} + + lrergo_contract + {" "} + := +
+      + + mkContract + {" "} + + + dummy_provenance + + +
+                ( + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + ( + + + None + + + ,"TemplateModel")) +
+                 + + + None + + +
+                ( + + cl1 + + :: + + nil + + ). +
+    +
+   Definition{" "} + + ergo_funcd1 + {" "} + :{" "} + + lrergo_function + {" "} + := +
+      + + mkFunc + +
+        + + + dummy_provenance + + +
+       ( + + + mkErgoTypeSignature + + +
+           + + + dummy_provenance + + +
+          ((" + req", + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + ):: + + nil + + )
+          ( + + + Some + + {" "} + ( + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )) +
+           + + + None + + + )
+        + + + None + + + .
+      +
+   Definition{" "} + + ergo_funcd2 + {" "} + :{" "} + + lrergo_function + {" "} + := +
+      + + mkFunc + +
+        + + + dummy_provenance + + +
+       ( + + + mkErgoTypeSignature + + +
+           + + + dummy_provenance + + +
+           + + nil + +
+          ( + + + Some + + {" "} + ( + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )) +
+           + + + None + + + )
+       ( + + + Some + + {" "} + ( + + ECallFun + {" "} + + + dummy_provenance + + {" "} + "addFee"{" "} + + nil + + )). +
+
+   Definition{" "} + + ergo_clause2 + {" "} + :{" "} + + lrergo_clause + {" "} + := +
+      + + mkClause + +
+        + + + dummy_provenance + + +
+       "addFee2" +
+       ( + + + mkErgoTypeSignature + + +
+           + + + dummy_provenance + + +
+          ((" + request",{" "} + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + ( + + + None + + + ,"Request")):: + + nil + + )
+          ( + + + Some + + {" "} + ( + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + ( + + + None + + + ,"Response"))) +
+           + + + None + + + )
+       ( + + + Some + + {" "} + ( + + SReturn + {" "} + + + dummy_provenance + + {" "} + ( + + ECallFun + {" "} + + + dummy_provenance + + {" "} + "addFee"{" "} + + nil + + ))). +
+
+   Definition{" "} + + ergo_contractd1 + {" "} + :{" "} + + lrergo_contract + {" "} + := +
+      + + mkContract + +
+        + + + dummy_provenance + + +
+       ( + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )
+        + + + None + + +
+       ( + + ergo_clause2 + + :: + + nil + + ). +
+
+   Definition{" "} + + p1 + {" "} + :{" "} + + lrergo_module + {" "} + := +
+      + + mkModule + {" "} + + + dummy_provenance + + +
+              "" +
+              " + org.accordproject.helloworld"
+              ( + + DFunc + {" "} + + + dummy_provenance + + {" "} + "addFee"{" "} + + ergo_funcd1 + +
+                     :: + + DContract + {" "} + + + dummy_provenance + + {" "} + "HelloWorld"{" "} + + c1 + +
+                     :: + + DContract + {" "} + + + dummy_provenance + + {" "} + "MyContract"{" "} + + + ergo_contractd1 + + + :: + + nil + + ). +
+
+   Definition{" "} + + cto_typed_tm + {" "} + :{" "} + + + lrcto_declaration + + {" "} + := +
+      + + + mkCTODeclaration + + +
+        + + + dummy_provenance + + +
+       " + TemplateModel"
+       ( + + CTOConcept + +
+           + + + false + + +
+           + + + None + + +
+          ((" + x",( + + CTOBoolean + {" "} + + + dummy_provenance + + + )):: + + nil + + )). +
+   Definition{" "} + + cto_typed_rq + {" "} + :{" "} + + + lrcto_declaration + + {" "} + := +
+      + + + mkCTODeclaration + + +
+        + + + dummy_provenance + + +
+       "Request" +
+       ( + + CTOConcept + +
+           + + + false + + +
+           + + + None + + +
+          ((" + x",( + + CTOBoolean + {" "} + + + dummy_provenance + + + )):: + + nil + + )). +
+   Definition{" "} + + cto_typed_rs + {" "} + :{" "} + + + lrcto_declaration + + {" "} + := +
+      + + + mkCTODeclaration + + +
+        + + + dummy_provenance + + +
+       "Response" +
+       ( + + CTOConcept + +
+           + + + false + + +
+           + + + None + + +
+          ((" + x",( + + CTOBoolean + {" "} + + + dummy_provenance + + + )):: + + nil + + )). +
+   Definition{" "} + + cto_model + {" "} + :{" "} + + lrcto_package + {" "} + := +
+      + + mkCTOPackage + +
+        + + + dummy_provenance + + +
+       "" +
+        + + + hyperledger_namespace + + +
+        + + nil + +
+       ( + + cto_typed_tm + + :: + + cto_typed_rq + + :: + + cto_typed_rs + + :: + + nil + + ). +
+
+   Definition{" "} + + cto_typed_top + {" "} + :{" "} + + + lrcto_declaration + + {" "} + := +
+      + + + mkCTODeclaration + + +
+        + + + dummy_provenance + + +
+       "top"
+       ( + + CTOConcept + +
+           + + + false + + +
+           + + + None + + +
+          ((" + x",( + + CTOBoolean + {" "} + + + dummy_provenance + + + )):: + + nil + + )). +
+   Definition{" "} + + cto_hl + {" "} + :{" "} + + lrcto_package + {" "} + := +
+      + + mkCTOPackage + +
+        + + + dummy_provenance + + +
+       "" +
+        + + + hyperledger_namespace + + +
+        + + nil + +
+       ( + + cto_typed_top + + :: + + nil + + ). +
+   Definition{" "} + + ctos + {" "} + :{" "} + + + list + + {" "} + + lrcto_package + {" "} + :={" "} + + cto_hl + + :: + + cto_model + + :: + + nil + + .
+    +
+   Definition{" "} + + ergo_stdlib + {" "} + :{" "} + + lrergo_module + {" "} + := +
+      + + mkModule + +
+        + + + dummy_provenance + + {" "} + ""{" "} + + + stdlib_namespace + + {" "} + ( + + DType + {" "} + + + dummy_provenance + + {" "} + + + ergo_typed_top + + + :: + + nil + + ). +
+   Definition{" "} + + mls + + :={" "} + + ergo_stdlib + {" "} + ::{" "} + + nil + + .
+
+ End{" "} + + HelloWorld + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.html b/docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.html deleted file mode 100644 index ec9ed782..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.CTOtoErgo - - - - - - -

Module ErgoSpec.Translation.CTOtoErgo

-
-
-
Translates a CTO to an Ergo module
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Common.CTO.CTO.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-
-Section CTOtoErgo.
-
-  Fixpoint cto_type_to_ergo_type (ctd:lrcto_type) : lrergo_type :=
-    match ctd with
-    | CTOBoolean loc => ErgoTypeBoolean loc
-    | CTOString loc => ErgoTypeString loc
-    | CTODouble loc => ErgoTypeDouble loc
-    | CTOLong loc => ErgoTypeLong loc
-    | CTOInteger loc => ErgoTypeInteger loc
-    | CTODateTime loc => ErgoTypeDateTime loc
-    | CTOClassRef loc n => ErgoTypeClassRef loc n
-    | CTOOption loc ct1 => ErgoTypeOption loc (cto_type_to_ergo_type ct1)
-    | CTOArray loc ct1 => ErgoTypeArray loc (cto_type_to_ergo_type ct1)
-    end.
-
-  Definition cto_declaration_desc_to_ergo_type_declaration_desc
-             (dk:lrcto_declaration_desc) : lrergo_type_declaration_desc :=
-    match dk with
-    | CTOEnum ls => ErgoTypeEnum ls
-    | CTOTransaction on isabs crec =>
-      ErgoTypeTransaction on isabs (map (fun xy => (fst xy, cto_type_to_ergo_type (snd xy))) crec)
-    | CTOConcept on isabs crec =>
-      ErgoTypeConcept on isabs (map (fun xy => (fst xy, cto_type_to_ergo_type (snd xy))) crec)
-    | CTOEvent on isabs crec =>
-      ErgoTypeEvent on isabs (map (fun xy => (fst xy, cto_type_to_ergo_type (snd xy))) crec)
-    | CTOAsset on isabs crec =>
-      ErgoTypeAsset on isabs (map (fun xy => (fst xy, cto_type_to_ergo_type (snd xy))) crec)
-    | CTOParticipant on isabs crec =>
-      ErgoTypeParticipant on isabs (map (fun xy => (fst xy, cto_type_to_ergo_type (snd xy))) crec)
-    end.
-
-  Definition cto_declaration_to_ergo_type_declaration (d:lrcto_declaration) : lrergo_type_declaration :=
-    mkErgoTypeDeclaration
-      d.(cto_declaration_annot)
-      d.(cto_declaration_name)
-      (cto_declaration_desc_to_ergo_type_declaration_desc d.(cto_declaration_type)).
-
-  Definition cto_declaration_to_ergo_declaration (d:lrcto_declaration) : lrergo_declaration :=
-    DType d.(cto_declaration_annot) (cto_declaration_to_ergo_type_declaration d).
-  Definition cto_import_to_ergo_declaration (d:import_decl) : lrergo_declaration :=
-    DImport (import_annot d) d.
-
-  Definition cto_package_to_ergo_module (p:lrcto_package) : lrergo_module :=
-    mkModule
-      p.(cto_package_annot)
-      p.(cto_package_file)
-      p.(cto_package_namespace)
-      ((map cto_import_to_ergo_declaration p.(cto_package_imports))
-       ++ (map cto_declaration_to_ergo_declaration p.(cto_package_declarations))).
-
-End CTOtoErgo.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.jsx b/docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.jsx new file mode 100644 index 00000000..7491110f --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.CTOtoErgo.jsx @@ -0,0 +1,714 @@ +
+ + Module ErgoSpec.Translation.CTOtoErgo + + +

Module ErgoSpec.Translation.CTOtoErgo

+
+
+
Translates a CTO to an Ergo module
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + ErgoSpec.Common.CTO.CTO + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+
+ Section{" "} + + CTOtoErgo + + .
+
+   Fixpoint{" "} + + cto_type_to_ergo_type + {" "} + (ctd: + + lrcto_type + + ) :{" "} + + lrergo_type + {" "} + := +
+     match{" "} + + ctd + {" "} + with +
+     |{" "} + + CTOBoolean + {" "} + loc =>{" "} + + + ErgoTypeBoolean + + {" "} + loc +
+     |{" "} + + CTOString + {" "} + loc =>{" "} + + + ErgoTypeString + + {" "} + loc +
+     |{" "} + + CTODouble + {" "} + loc =>{" "} + + + ErgoTypeDouble + + {" "} + loc +
+     |{" "} + + CTOLong + {" "} + loc =>{" "} + + + ErgoTypeLong + + {" "} + loc +
+     |{" "} + + CTOInteger + {" "} + loc =>{" "} + + + ErgoTypeInteger + + {" "} + loc +
+     |{" "} + + CTODateTime + {" "} + loc =>{" "} + + + ErgoTypeDateTime + + {" "} + loc +
+     |{" "} + + CTOClassRef + {" "} + loc n =>{" "} + + + ErgoTypeClassRef + + {" "} + loc n +
+     |{" "} + + CTOOption + {" "} + loc ct1 =>{" "} + + + ErgoTypeOption + + {" "} + loc ( + + + cto_type_to_ergo_type + + {" "} + ct1)
+     |{" "} + + CTOArray + {" "} + loc ct1 =>{" "} + + + ErgoTypeArray + + {" "} + loc ( + + + cto_type_to_ergo_type + + {" "} + ct1)
+     end.
+
+   Definition{" "} + + + cto_declaration_desc_to_ergo_type_declaration_desc + + +
+              ( + dk: + + + lrcto_declaration_desc + + + ) :{" "} + + + lrergo_type_declaration_desc + + {" "} + := +
+     match{" "} + + dk + {" "} + with +
+     |{" "} + + CTOEnum + {" "} + ls =>{" "} + + + ErgoTypeEnum + + {" "} + ls +
+     |{" "} + + CTOTransaction + {" "} + on isabs{" "} + crec => +
+        + + + ErgoTypeTransaction + + {" "} + on isabs ( + + map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + cto_type_to_ergo_type + + {" "} + ( + + snd + {" "} + + xy + + ))) crec)
+     |{" "} + + CTOConcept + {" "} + on isabs{" "} + crec => +
+        + + + ErgoTypeConcept + + {" "} + on isabs ( + + map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + cto_type_to_ergo_type + + {" "} + ( + + snd + {" "} + + xy + + ))) crec)
+     |{" "} + + CTOEvent + {" "} + on isabs{" "} + crec => +
+        + + + ErgoTypeEvent + + {" "} + on isabs ( + + map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + cto_type_to_ergo_type + + {" "} + ( + + snd + {" "} + + xy + + ))) crec)
+     |{" "} + + CTOAsset + {" "} + on isabs{" "} + crec => +
+        + + + ErgoTypeAsset + + {" "} + on isabs ( + + map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + cto_type_to_ergo_type + + {" "} + ( + + snd + {" "} + + xy + + ))) crec)
+     |{" "} + + CTOParticipant + {" "} + on isabs{" "} + crec => +
+        + + + ErgoTypeParticipant + + {" "} + on isabs ( + + map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + cto_type_to_ergo_type + + {" "} + ( + + snd + {" "} + + xy + + ))) crec)
+     end.
+
+   Definition{" "} + + + cto_declaration_to_ergo_type_declaration + + {" "} + (d: + + + lrcto_declaration + + + ) :{" "} + + + lrergo_type_declaration + + {" "} + := +
+      + + + mkErgoTypeDeclaration + + +
+        + + d + + .( + + + cto_declaration_annot + + + )
+        + + d + + .( + + + cto_declaration_name + + + )
+       ( + + + cto_declaration_desc_to_ergo_type_declaration_desc + + {" "} + + d + + .( + + + cto_declaration_type + + + )). +
+
+   Definition{" "} + + + cto_declaration_to_ergo_declaration + + {" "} + (d: + + + lrcto_declaration + + + ) :{" "} + + + lrergo_declaration + + {" "} + := +
+      + + DType + {" "} + + d + + .( + + + cto_declaration_annot + + + ) ( + + + cto_declaration_to_ergo_type_declaration + + {" "} + + d + + ). +
+   Definition{" "} + + + cto_import_to_ergo_declaration + + {" "} + (d: + + import_decl + + ) :{" "} + + + lrergo_declaration + + {" "} + := +
+      + + DImport + {" "} + ( + + import_annot + {" "} + + d + + ){" "} + + d + + .
+
+   Definition{" "} + + cto_package_to_ergo_module + {" "} + (p: + + lrcto_package + + ) :{" "} + + lrergo_module + {" "} + := +
+      + + mkModule + +
+        + + p + + .( + + + cto_package_annot + + + )
+        + + p + + .( + + + cto_package_file + + + )
+        + + p + + .( + + + cto_package_namespace + + + )
+       (( + + map + {" "} + + + cto_import_to_ergo_declaration + + {" "} + + p + + .( + + + cto_package_imports + + + )) +
+        ++ ( + + map + {" "} + + + cto_declaration_to_ergo_declaration + + {" "} + + p + + .( + + + cto_package_declarations + + + ))). +
+
+ End{" "} + + CTOtoErgo + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoCInline.html b/docs/assets/specification/ErgoSpec.Translation.ErgoCInline.html deleted file mode 100644 index e1099193..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.ErgoCInline.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.ErgoCInline - - - - - - -

Module ErgoSpec.Translation.ErgoCInline

-
-
-Require Import String.
-Require Import List.
-Require Import Basics.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Types.ErgoType.
-
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.Ergo.Lang.ErgoMap.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCStdlib.
-
-Require Import ErgoSpec.Translation.ErgoCompContext.
-
-Definition ergo_expr := Ergo.laergo_expr.
-Definition ergo_stmt := Ergo.laergo_stmt.
-Definition ergo_function := Ergo.laergo_function.
-Definition ergo_clause := Ergo.laergo_clause.
-Definition ergo_contract := Ergo.laergo_contract.
-Definition ergo_declaration := Ergo.laergo_declaration.
-Definition ergo_module := Ergo.laergo_module.
-
-Section ErgoCInline.
-  Context {bm:brand_model}.
-
-  Definition ergo_map_expr_sane ctxt fn expr :=
-    @ergo_map_expr provenance absolute_name compilation_context ctxt
-                   (fun ctxt name expr => compilation_context_update_local_env ctxt name expr)
-                   fn expr.
-
-  Definition ergo_inline_foreach' (ctxt : compilation_context) (expr : ergo_expr) :=
-    match expr with
-    | EForeach prov rs whr fn =>
-      (compose Some esuccess)
-        (fold_right
-           (fun rcd ker => (EUnaryOp prov OpFlatten) (EForeach prov (rcd::nil) whr ker))
-           (match whr with
-            | Some whr' => (EIf prov whr' (EArray prov (fn::nil)) (EArray prov nil))
-            | None => (EArray prov (fn::nil))
-            end)
-           rs)
-    | _ => None
-    end.
-
-  Definition ergo_inline_foreach ctxt := ergo_map_expr_sane ctxt ergo_inline_foreach'.
-
-  Fixpoint ergo_letify_function'
-           (prov : provenance)
-           (body : ergo_expr)
-           (args : list (string * option laergo_type * ergo_expr)) : ergo_expr :=
-    match args with
-    | nil => body
-    | (n,t,v)::rest => ELet prov n t v (ergo_letify_function' prov body rest)
-    end.
-
-  Definition keep_param_types (params:list (string * laergo_type)) : list (string * option laergo_type) :=
-    map (fun xy => (fst xy, Some (snd xy))) params.
-  Definition discard_param_types (params:list (string * laergo_type)) : list (string * option laergo_type) :=
-    map (fun xy => (fst xy, None)) params.
-  
-  Definition ergo_letify_function (prov : provenance) (fname:string) (fn : ergoc_function) (args : list ergo_expr) :=
-    let fndesc :=
-        match fn.(functionc_body) with
-        | None =>
-          match lookup String.string_dec ergoc_stdlib fname with
-          | Some fn => esuccess (fn.(functionc_body), discard_param_types fn.(functionc_sig).(sigc_params))
-          | None => built_in_function_not_found_error prov fname
-          end
-        | Some _ => esuccess (fn.(functionc_body), keep_param_types fn.(functionc_sig).(sigc_params))
-        end
-    in
-    eolift
-      (fun fndesc : option ergoc_expr * (list (string * option laergo_type)) =>
-         let (fnbody, fnparams) := fndesc in
-         match fnbody with
-         | None => built_in_function_without_body_error prov fname
-         | Some body =>
-           match zip fnparams args with
-           | Some args' =>
-             esuccess (ergo_letify_function' (ProvFunc (loc_of_provenance prov) fname) body args')
-           | None =>
-             call_params_error prov fname
-           end
-         end) fndesc.
-
-  Definition ergo_inline_functions' (ctxt : compilation_context) (expr : ergo_expr) :=
-  match expr with
-  | ECallFun prov fname args => Some
-      match lookup String.string_dec ctxt.(compilation_context_function_env) fname with
-      | Some fn => ergo_letify_function prov fname fn args
-      | None => function_not_found_error prov fname
-      end
-  | ECallFunInGroup prov gname fname args => Some
-      match lookup String.string_dec ctxt.(compilation_context_function_group_env) gname with
-      | Some t =>
-        match lookup String.string_dec t fname with
-        | Some fn => ergo_letify_function prov fname fn args
-        | None => function_not_found_error prov fname
-        end
-      | None => function_not_found_error prov fname
-      end
-  | _ => None
-  end.
-  Definition ergo_inline_functions ctxt := ergo_map_expr_sane ctxt ergo_inline_functions'.
-
-  Definition ergo_inline_expr := ergo_inline_functions.
-
-  Definition ergo_inline_globals'
-           (ctxt : compilation_context)
-           (expr : ergoc_expr) :=
-    match expr with
-    | EVar loc name => Some
-      match lookup String.string_dec (ctxt.(compilation_context_local_env)) name with
-      | Some _ => esuccess expr
-      | None =>
-        if in_dec String.string_dec name (ctxt.(compilation_context_params_env))
-        then esuccess expr
-        else
-          match lookup String.string_dec (ctxt.(compilation_context_global_env)) name with
-          | Some val => esuccess val
-          | None => esuccess expr
-          end
-      end
-    | _ => None
-    end.
-  Definition ergo_inline_globals ctxt := ergo_map_expr_sane ctxt ergo_inline_globals'.
-
-  Definition ergo_inline_function
-             (ctxt : compilation_context)
-             (fn : ergoc_function) : eresult ergoc_function :=
-    let params := map fst fn.(functionc_sig).(sigc_params) in
-    let ctxt := compilation_context_set_params_env ctxt params in
-    match fn.(functionc_body) with
-    | None => esuccess fn
-    | Some expr =>
-      match eolift (ergo_inline_expr ctxt) (ergo_inline_globals ctxt expr) with
-      | Success _ _ new_body =>
-        esuccess (mkFuncC fn.(functionc_annot)
-                               fn.(functionc_sig)
-                                    (Some new_body))
-      | Failure _ _ f => efailure f
-      end
-    end.
-
-  Definition ergoc_inline_clause
-             (coname : string)
-             (ctxt : compilation_context)
-             (clause : string * ergoc_function)
-    : eresult ((string * ergoc_function) * compilation_context) :=
-    let (clname, fn) := clause in
-    elift (fun x =>
-             ((clname,x), compilation_context_update_function_group_env ctxt coname clname x))
-          (ergo_inline_function ctxt fn).
-
-  Definition ergo_inline_contract
-             (coname:string)
-             (ctxt : compilation_context)
-             (contract : ergoc_contract)
-    : eresult (ergoc_contract * compilation_context) :=
-    let clauses :=
-        elift_context_fold_left
-          (ergoc_inline_clause coname)
-          contract.(contractc_clauses)
-          ctxt
-    in
-    elift
-      (fun xy =>
-         (mkContractC contract.(contractc_annot) (fst xy), snd xy))
-      clauses.
-      
-  Definition ergoc_inline_declaration
-             (ctxt : compilation_context)
-             (decl : ergoc_declaration)
-    : eresult (ergoc_declaration * compilation_context) :=
-    match decl with
-    | DCExpr prov expr =>
-      elift (fun x => (DCExpr prov x, ctxt)) (ergo_inline_expr ctxt expr)
-    | DCConstant prov name ta expr =>
-      elift (fun x =>
-               (DCConstant prov name ta x, compilation_context_update_global_env ctxt name x))
-            (ergo_inline_expr ctxt expr)
-    | DCFunc prov name fn =>
-      elift (fun x =>
-               (DCFunc prov name x, compilation_context_update_function_env ctxt name x))
-            (ergo_inline_function ctxt fn)
-    | DCContract prov name c =>
-      elift (fun xy =>
-               (DCContract prov name (fst xy), snd xy))
-            (ergo_inline_contract name ctxt c)
-    end.
-
-  Definition ergoc_inline_declarations
-             (ctxt : compilation_context)
-             (decls : list ergoc_declaration)
-    : eresult (list ergoc_declaration * compilation_context) :=
-    elift_context_fold_left
-      ergoc_inline_declaration
-      decls
-      ctxt.
-      
-  Definition ergoc_inline_module
-             (ctxt : compilation_context)
-             (mod : ergoc_module)
-    : eresult (ergoc_module * compilation_context) :=
-    elift
-      (fun res : (list ergoc_declaration * compilation_context) =>
-         (mkModuleC
-            mod.(modulec_annot)
-            mod.(modulec_namespace)
-            (fst res),
-          snd res))
-      (ergoc_inline_declarations ctxt mod.(modulec_declarations)).
-
-End ErgoCInline.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoCInline.jsx b/docs/assets/specification/ErgoSpec.Translation.ErgoCInline.jsx new file mode 100644 index 00000000..cb5d71e7 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.ErgoCInline.jsx @@ -0,0 +1,2231 @@ +
+ + Module ErgoSpec.Translation.ErgoCInline + + +

Module ErgoSpec.Translation.ErgoCInline

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + Basics + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.ErgoMap + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCStdlib + + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoCompContext + + + .
+
+ Definition{" "} + + ergo_expr + {" "} + :={" "} + + Ergo.laergo_expr + + .
+ Definition{" "} + + ergo_stmt + {" "} + :={" "} + + Ergo.laergo_stmt + + .
+ Definition{" "} + + ergo_function + {" "} + :={" "} + + + Ergo.laergo_function + + + .
+ Definition{" "} + + ergo_clause + {" "} + :={" "} + + + Ergo.laergo_clause + + + .
+ Definition{" "} + + ergo_contract + {" "} + :={" "} + + + Ergo.laergo_contract + + + .
+ Definition{" "} + + ergo_declaration + {" "} + :={" "} + + + Ergo.laergo_declaration + + + .
+ Definition{" "} + + ergo_module + {" "} + :={" "} + + + Ergo.laergo_module + + + .
+
+ Section{" "} + + ErgoCInline + + .
+   Context {"{"} + bm: + + + brand_model + + + {"}"}.
+
+   Definition{" "} + + ergo_map_expr_sane + {" "} + ctxt fn{" "} + expr := +
+     @ + + ergo_map_expr + {" "} + + provenance + {" "} + + absolute_name + {" "} + + + compilation_context + + {" "} + + ctxt + +
+                    ( + fun ctxt{" "} + name expr =>{" "} + + + compilation_context_update_local_env + + {" "} + + ctxt + {" "} + + name + {" "} + + expr + + )
+                     + + fn + {" "} + + expr + + .
+
+   Definition{" "} + ergo_inline_foreach' ( + ctxt :{" "} + + + compilation_context + + + ) (expr :{" "} + + ergo_expr + + ) := +
+     match{" "} + + expr + {" "} + with +
+     |{" "} + + EForeach + {" "} + prov rs{" "} + whr fn => +
+       ( + + + compose + + {" "} + + + Some + + {" "} + + esuccess + + )
+         ( + + + fold_right + + +
+            ( + fun rcd{" "} + ker => ( + + EUnaryOp + {" "} + prov{" "} + + + OpFlatten + + + ) ( + + EForeach + {" "} + prov ( + + rcd + + :: + + nil + + ) whr{" "} + + ker + + )) +
+            ( + match whr{" "} + with +
+             |{" "} + + + Some + + {" "} + whr' => ( + + EIf + {" "} + prov whr' ( + + EArray + {" "} + prov (fn:: + + nil + + )) ( + + EArray + {" "} + prov{" "} + + nil + + )) +
+             |{" "} + + + None + + {" "} + => ( + + EArray + {" "} + prov (fn:: + + nil + + )) +
+              + end)
+             + rs)
+     | _ =>{" "} + + + None + + +
+     end.
+
+   Definition{" "} + + ergo_inline_foreach + {" "} + ctxt :={" "} + + + ergo_map_expr_sane + + {" "} + + ctxt + {" "} + ergo_inline_foreach'. +
+
+   Fixpoint{" "} + ergo_letify_function'
+            ( + prov :{" "} + + provenance + + )
+            ( + body :{" "} + + ergo_expr + + )
+            ( + args :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + option + + {" "} + + laergo_type + {" "} + *{" "} + + ergo_expr + + )) :{" "} + + ergo_expr + {" "} + := +
+     match{" "} + + args + {" "} + with +
+     |{" "} + + nil + {" "} + =>{" "} + + body + +
+     | (n, + t,v):: + rest =>{" "} + + ELet + {" "} + + prov + {" "} + n t{" "} + v ( + ergo_letify_function'{" "} + + prov + {" "} + + body + {" "} + rest)
+     end.
+
+   Definition{" "} + + keep_param_types + {" "} + (params: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_type + + )) :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + option + + {" "} + + laergo_type + + ) := +
+      + + map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + Some + + {" "} + ( + + snd + {" "} + + xy + + ))){" "} + + params + + .
+   Definition{" "} + + discard_param_types + {" "} + (params: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_type + + )) :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + option + + {" "} + + laergo_type + + ) := +
+      + + map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + None + + + )){" "} + + params + + .
+    +
+   Definition{" "} + + ergo_letify_function + {" "} + (prov :{" "} + + provenance + + ) (fname: + + + string + + + ) (fn :{" "} + + ergoc_function + + ) (args :{" "} + + + list + + {" "} + + ergo_expr + + ) := +
+     let{" "} + fndesc := +
+          + match{" "} + + fn + + .( + + functionc_body + + ) with +
+         |{" "} + + + None + + {" "} + => +
+            + match{" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + + + ergoc_stdlib + + {" "} + + fname + {" "} + with +
+           |{" "} + + + Some + + {" "} + fn =>{" "} + + esuccess + {" "} + ( + + fn + + .( + + functionc_body + + ),{" "} + + + discard_param_types + + {" "} + + fn + + .( + + functionc_sig + + ).( + + sigc_params + + )) +
+           |{" "} + + + None + + {" "} + =>{" "} + + + built_in_function_not_found_error + + {" "} + + prov + {" "} + + fname + +
+            + end +
+         |{" "} + + + Some + + {" "} + _ =>{" "} + + esuccess + {" "} + ( + + fn + + .( + + functionc_body + + ),{" "} + + + keep_param_types + + {" "} + + fn + + .( + + functionc_sig + + ).( + + sigc_params + + )) +
+          + end +
+     in +
+      + + eolift + +
+       (fun{" "} + fndesc :{" "} + + + option + + {" "} + + ergoc_expr + {" "} + * ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + option + + {" "} + + laergo_type + + )) => +
+           + let (fnbody,{" "} + fnparams) :={" "} + + fndesc + {" "} + in +
+           + match{" "} + + fnbody + {" "} + with +
+          |{" "} + + + None + + {" "} + =>{" "} + + + built_in_function_without_body_error + + {" "} + + prov + {" "} + + fname + +
+          |{" "} + + + Some + + {" "} + body => +
+             + match{" "} + + zip + {" "} + + fnparams + {" "} + + args + {" "} + with +
+            |{" "} + + + Some + + {" "} + args' => +
+               + + esuccess + {" "} + (ergo_letify_function' ( + + ProvFunc + {" "} + ( + + + loc_of_provenance + + {" "} + + prov + + ){" "} + + fname + + ) body args') +
+            |{" "} + + + None + + {" "} + => +
+               + + + call_params_error + + {" "} + + prov + {" "} + + fname + +
+             + end +
+           + end){" "} + + fndesc + + .
+
+   Definition{" "} + ergo_inline_functions' ( + ctxt :{" "} + + + compilation_context + + + ) (expr :{" "} + + ergo_expr + + ) := +
+   match{" "} + + expr + {" "} + with +
+   |{" "} + + ECallFun + {" "} + prov fname{" "} + args =>{" "} + + + Some + + +
+       match{" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + + ctxt + + .( + + + compilation_context_function_env + + + ) fname with +
+       |{" "} + + + Some + + {" "} + fn =>{" "} + + + ergo_letify_function + + {" "} + prov fname{" "} + fn args +
+       |{" "} + + + None + + {" "} + =>{" "} + + + function_not_found_error + + {" "} + prov fname +
+       end +
+   |{" "} + + ECallFunInGroup + {" "} + prov gname{" "} + fname args =>{" "} + + + Some + + +
+       match{" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + + ctxt + + .( + + + compilation_context_function_group_env + + + ) gname with +
+       |{" "} + + + Some + + {" "} + t => +
+          + match{" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + t fname{" "} + with +
+         |{" "} + + + Some + + {" "} + fn =>{" "} + + + ergo_letify_function + + {" "} + prov fname{" "} + fn args +
+         |{" "} + + + None + + {" "} + =>{" "} + + + function_not_found_error + + {" "} + prov fname +
+          + end +
+       |{" "} + + + None + + {" "} + =>{" "} + + + function_not_found_error + + {" "} + prov fname +
+       end +
+   | _ =>{" "} + + + None + + +
+   end.
+   Definition{" "} + + ergo_inline_functions + {" "} + ctxt :={" "} + + + ergo_map_expr_sane + + {" "} + + ctxt + {" "} + ergo_inline_functions'. +
+
+   Definition{" "} + + ergo_inline_expr + {" "} + :={" "} + + + ergo_inline_functions + + + .
+
+   Definition{" "} + ergo_inline_globals'
+            ( + ctxt :{" "} + + + compilation_context + + + )
+            ( + expr :{" "} + + ergoc_expr + + ) := +
+     match{" "} + + expr + {" "} + with +
+     |{" "} + + EVar + {" "} + loc name =>{" "} + + + Some + + +
+       match{" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + ( + + ctxt + + .( + + + compilation_context_local_env + + + )) name with +
+       |{" "} + + + Some + + {" "} + _ =>{" "} + + esuccess + {" "} + + expr + +
+       |{" "} + + + None + + {" "} + => +
+          + if{" "} + + + in_dec + + {" "} + + + String.string_dec + + {" "} + name ( + + ctxt + + .( + + + compilation_context_params_env + + + )) +
+          + then{" "} + + esuccess + {" "} + + expr + +
+          + else +
+            + match{" "} + + + lookup + + {" "} + + + String.string_dec + + {" "} + ( + + ctxt + + .( + + + compilation_context_global_env + + + )) name with +
+           |{" "} + + + Some + + {" "} + val =>{" "} + + esuccess + {" "} + val +
+           |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + expr + +
+            + end +
+       end +
+     | _ =>{" "} + + + None + + +
+     end.
+   Definition{" "} + + ergo_inline_globals + {" "} + ctxt :={" "} + + + ergo_map_expr_sane + + {" "} + + ctxt + {" "} + ergo_inline_globals'. +
+
+   Definition{" "} + + ergo_inline_function + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + fn :{" "} + + ergoc_function + + ) :{" "} + + eresult + {" "} + + ergoc_function + {" "} + := +
+     let{" "} + params :={" "} + + map + {" "} + + fst + {" "} + + fn + + .( + + functionc_sig + + ).( + + sigc_params + + ) in +
+     let{" "} + ctxt :={" "} + + + compilation_context_set_params_env + + {" "} + + ctxt + {" "} + + params + {" "} + in +
+     match{" "} + + fn + + .( + + functionc_body + + ) with +
+     |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + fn + +
+     |{" "} + + + Some + + {" "} + expr => +
+       match{" "} + + eolift + {" "} + ( + + + ergo_inline_expr + + {" "} + + ctxt + + ) ( + + + ergo_inline_globals + + {" "} + + ctxt + {" "} + expr) with +
+       |{" "} + + + Success + + {" "} + _ _{" "} + new_body => +
+          + + esuccess + {" "} + ( + + mkFuncC + {" "} + + fn + + .( + + + functionc_annot + + + )
+                                 + + fn + + .( + + functionc_sig + + )
+                                     ( + + + Some + + {" "} + new_body)) +
+       |{" "} + + + Failure + + {" "} + _ _{" "} + f =>{" "} + + efailure + {" "} + f +
+       end +
+     end.
+
+   Definition{" "} + + ergoc_inline_clause + +
+              ( + coname :{" "} + + + string + + + )
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + clause :{" "} + + + string + + {" "} + *{" "} + + ergoc_function + + )
+     :{" "} + + eresult + {" "} + (( + + + string + + {" "} + *{" "} + + ergoc_function + + ) *{" "} + + + compilation_context + + + ) := +
+     let ( + clname, fn) :={" "} + + clause + {" "} + in +
+      + + elift + {" "} + (fun x => +
+              (( + + clname + + , + + x + + ),{" "} + + + compilation_context_update_function_group_env + + {" "} + + ctxt + {" "} + + coname + {" "} + + clname + {" "} + + x + + )) +
+           ( + + + ergo_inline_function + + {" "} + + ctxt + {" "} + + fn + + ). +
+
+   Definition{" "} + + ergo_inline_contract + +
+              ( + coname: + + + string + + + )
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + contract :{" "} + + ergoc_contract + + )
+     :{" "} + + eresult + {" "} + ( + + ergoc_contract + {" "} + *{" "} + + + compilation_context + + + ) := +
+     let{" "} + clauses := +
+          + + + elift_context_fold_left + + +
+           ( + + + ergoc_inline_clause + + {" "} + + coname + + )
+            + + contract + + .( + + + contractc_clauses + + + )
+            + + ctxt + +
+     in +
+      + + elift + +
+       (fun{" "} + xy => +
+          ( + + mkContractC + {" "} + + contract + + .( + + + contractc_annot + + + ) ( + + fst + {" "} + + xy + + ),{" "} + + snd + {" "} + + xy + + )) +
+        + + clauses + + .
+        +
+   Definition{" "} + + ergoc_inline_declaration + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + decl :{" "} + + + ergoc_declaration + + + )
+     :{" "} + + eresult + {" "} + ( + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) := +
+     match{" "} + + decl + {" "} + with +
+     |{" "} + + DCExpr + {" "} + prov expr => +
+        + + elift + {" "} + (fun x => ( + + DCExpr + {" "} + prov{" "} + + x + + ,{" "} + + ctxt + + )) ( + + + ergo_inline_expr + + {" "} + + ctxt + {" "} + expr)
+     |{" "} + + DCConstant + {" "} + prov name{" "} + ta expr => +
+        + + elift + {" "} + (fun x => +
+                ( + + DCConstant + {" "} + prov name{" "} + ta{" "} + + x + + ,{" "} + + + compilation_context_update_global_env + + {" "} + + ctxt + {" "} + name{" "} + + x + + )) +
+             ( + + + ergo_inline_expr + + {" "} + + ctxt + {" "} + expr)
+     |{" "} + + DCFunc + {" "} + prov name{" "} + fn => +
+        + + elift + {" "} + (fun x => +
+                ( + + DCFunc + {" "} + prov name{" "} + + x + + ,{" "} + + + compilation_context_update_function_env + + {" "} + + ctxt + {" "} + name{" "} + + x + + )) +
+             ( + + + ergo_inline_function + + {" "} + + ctxt + {" "} + fn)
+     |{" "} + + DCContract + {" "} + prov name{" "} + c => +
+        + + elift + {" "} + (fun xy => +
+                ( + + DCContract + {" "} + prov name ( + + fst + {" "} + + xy + + ),{" "} + + snd + {" "} + + xy + + )) +
+             ( + + + ergo_inline_contract + + {" "} + name{" "} + + ctxt + {" "} + c)
+     end.
+
+   Definition{" "} + + ergoc_inline_declarations + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + decls :{" "} + + + list + + {" "} + + + ergoc_declaration + + + )
+     :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) := +
+      + + + elift_context_fold_left + + +
+        + + + ergoc_inline_declaration + + +
+        + + decls + +
+        + + ctxt + + .
+        +
+   Definition{" "} + + ergoc_inline_module + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + mod :{" "} + + ergoc_module + + )
+     :{" "} + + eresult + {" "} + ( + + ergoc_module + {" "} + *{" "} + + + compilation_context + + + ) := +
+      + + elift + +
+       (fun{" "} + res : ( + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) => +
+          ( + + mkModuleC + +
+              + + mod + + .( + + modulec_annot + + )
+              + + mod + + .( + + + modulec_namespace + + + )
+             ( + + fst + {" "} + + res + + ), +
+            + + snd + {" "} + + res + + )) +
+       ( + + + ergoc_inline_declarations + + {" "} + + ctxt + {" "} + + mod + + .( + + + modulec_declarations + + + )). +
+
+ End{" "} + + + ErgoCInline + + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.html b/docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.html deleted file mode 100644 index f554df6d..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.ErgoCompContext - - - - - - -

Module ErgoSpec.Translation.ErgoCompContext

-
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.NamespaceContext.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCTypeContext.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCStdlib.
-Require Import ErgoSpec.Translation.ErgoNameResolve.
-
-Section ErgoCompContext.
-  Context {bm : brand_model}.
-
-  Definition function_group_env : Set := list (string * list (string * ergoc_function)).
-  
-  Record compilation_context : Set :=
-    mkCompCtxt {
-        compilation_context_namespace: namespace_ctxt; (* for name resolution *)
-        compilation_context_function_env : list (string * ergoc_function); (* functions in scope *)
-        compilation_context_function_group_env : function_group_env; (* functions groups in scope *)
-        compilation_context_global_env : list (string * ergoc_expr); (* global variables in scope *)
-        compilation_context_local_env : list (string * ergoc_expr); (* local variables in scope *)
-        compilation_context_params_env : list string; (* function parameters in scope *)
-        compilation_context_current_contract : option string; (* current contract in scope if any *)
-        compilation_context_current_clause : option string; (* current clause in scope if any *)
-        compilation_context_type_ctxt : type_context; (* the type context *)
-        compilation_context_type_decls : list laergo_type_declaration; (* type declarations *)
-        compilation_context_new_type_decls : list laergo_type_declaration; (* type declarations *)
-      }.
-
-  Definition namespace_ctxt_of_compilation_context (ctxt:compilation_context) : namespace_ctxt :=
-    ctxt.(compilation_context_namespace).
-
-  Definition compilation_context_update_namespace
-             (ctxt:compilation_context) (nsctxt:namespace_ctxt) : compilation_context :=
-    mkCompCtxt nsctxt
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-         
-  Definition compilation_context_update_function_env
-             (ctxt : compilation_context)
-             (name : string)
-             (value : ergoc_function) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ((name, value)::ctxt.(compilation_context_function_env))
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition update_function_group_env
-             (gname:string)
-             (fname:string)
-             (fn:ergoc_function)
-             (fg_env:function_group_env) : function_group_env :=
-    match lookup string_dec fg_env gname with
-    | Some t => update_first string_dec fg_env gname ((fname,fn)::t)
-    | None => (gname,((fname,fn)::nil)) :: fg_env
-    end.
-
-  Definition compilation_context_update_function_group_env
-             (ctxt : compilation_context)
-             (coname : string)
-             (clname : string)
-             (value : ergoc_function) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               (update_function_group_env coname clname value ctxt.(compilation_context_function_group_env))
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition compilation_context_update_global_env
-             (ctxt : compilation_context)
-             (name : string)
-             (value : ergoc_expr) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ((name, value)::ctxt.(compilation_context_global_env))
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition compilation_context_update_local_env
-             (ctxt : compilation_context)
-             (name : string)
-             (value : ergoc_expr) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ((name, value)::ctxt.(compilation_context_local_env))
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition compilation_context_set_local_env
-             (ctxt : compilation_context)
-             (new_local_env : list (string * ergoc_expr)) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               new_local_env
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition compilation_context_update_params_env
-             (ctxt : compilation_context)
-             (param : string) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               (param::ctxt.(compilation_context_params_env))
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition compilation_context_set_params_env
-             (ctxt : compilation_context)
-             (params : list string) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               params
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition set_namespace_in_compilation_context
-             (ns:namespace_name)
-             (ctxt:compilation_context)
-    : eresult compilation_context :=
-    elift
-      (compilation_context_update_namespace
-         ctxt)
-      (new_ergo_module_namespace
-         (namespace_ctxt_of_compilation_context ctxt)
-         ns).
-
-  Definition set_current_contract (ctxt:compilation_context) (cname:string) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               (Some cname)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-  
-  Definition set_current_clause (ctxt:compilation_context) (cname:string) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               (Some cname)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition compilation_context_update_type_ctxt
-             (ctxt: compilation_context)
-             (nctxt: type_context) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               nctxt
-               ctxt.(compilation_context_type_decls)
-               ctxt.(compilation_context_new_type_decls).
-
-  Definition compilation_context_update_type_declarations
-             (ctxt: compilation_context)
-             (old_decls:list laergo_type_declaration)
-             (new_decls:list laergo_type_declaration) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               old_decls
-               new_decls.
-  
-  Definition compilation_context_add_new_type_declaration
-             (ctxt: compilation_context)
-             (decl:laergo_type_declaration) : compilation_context :=
-    mkCompCtxt ctxt.(compilation_context_namespace)
-               ctxt.(compilation_context_function_env)
-               ctxt.(compilation_context_function_group_env)
-               ctxt.(compilation_context_global_env)
-               ctxt.(compilation_context_local_env)
-               ctxt.(compilation_context_params_env)
-               ctxt.(compilation_context_current_contract)
-               ctxt.(compilation_context_current_clause)
-               ctxt.(compilation_context_type_ctxt)
-               ctxt.(compilation_context_type_decls)
-               (ctxt.(compilation_context_new_type_decls) ++ (decl::nil)).
-  
-  Definition init_compilation_context nsctxt : compilation_context :=
-    mkCompCtxt nsctxt nil nil nil nil nil None None ErgoCTypeContext.empty_type_context nil nil.
-
-  Definition is_abstract_class
-             (ctxt: compilation_context)
-             (n:string) :=
-    if in_dec string_dec n ctxt.(compilation_context_namespace).(namespace_ctxt_abstract)
-    then true
-    else false.
-  
-End ErgoCompContext.
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.jsx b/docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.jsx new file mode 100644 index 00000000..5c6ef985 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.ErgoCompContext.jsx @@ -0,0 +1,2874 @@ +
+ + Module ErgoSpec.Translation.ErgoCompContext + + +

Module ErgoSpec.Translation.ErgoCompContext

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.NamespaceContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCTypeContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCStdlib + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoNameResolve + + + .
+
+ Section{" "} + + ErgoCompContext + + .
+   Context {"{"} + bm :{" "} + + + brand_model + + + {"}"}.
+
+   Definition{" "} + + function_group_env + {" "} + : Set :={" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_function + + )). +
+    +
+   Record{" "} + + compilation_context + {" "} + : Set := +
+      + + mkCompCtxt + {" "} + {"{"} +
+          + + compilation_context_namespace + + :{" "} + + + namespace_ctxt + + + ; (* for name resolution *) +
+          + + + compilation_context_function_env + + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_function + + ); (* functions in scope *) +
+          + + + compilation_context_function_group_env + + {" "} + :{" "} + + + function_group_env + + + ; (* functions groups in scope *) +
+          + + + compilation_context_global_env + + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_expr + + ); (* global variables in scope *) +
+          + + compilation_context_local_env + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_expr + + ); (* local variables in scope *) +
+          + + + compilation_context_params_env + + {" "} + :{" "} + + + list + + {" "} + + + string + + + ; (* function parameters in scope *) +
+          + + + compilation_context_current_contract + + {" "} + :{" "} + + + option + + {" "} + + + string + + + ; (* current contract in scope if any *) +
+          + + + compilation_context_current_clause + + {" "} + :{" "} + + + option + + {" "} + + + string + + + ; (* current clause in scope if any *) +
+          + + compilation_context_type_ctxt + {" "} + :{" "} + + + type_context + + + ; (* the type context *) +
+          + + + compilation_context_type_decls + + {" "} + :{" "} + + + list + + {" "} + + + laergo_type_declaration + + + ; (* type declarations *) +
+          + + + compilation_context_new_type_decls + + {" "} + :{" "} + + + list + + {" "} + + + laergo_type_declaration + + + ; (* type declarations *) +
+       {"}"}.
+
+   Definition{" "} + + + namespace_ctxt_of_compilation_context + + {" "} + (ctxt: + + + compilation_context + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + ctxt + + .( + + + compilation_context_namespace + + + ). +
+
+   Definition{" "} + + + compilation_context_update_namespace + + +
+              ( + ctxt: + + + compilation_context + + + ) (nsctxt: + + + namespace_ctxt + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + nsctxt + +
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+           +
+   Definition{" "} + + + compilation_context_update_function_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_function + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + compilation_context_function_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + update_function_group_env + +
+              ( + gname: + + + string + + + )
+              ( + fname: + + + string + + + )
+              ( + fn: + + ergoc_function + + )
+              ( + fg_env: + + + function_group_env + + + ) :{" "} + + + function_group_env + + {" "} + := +
+     match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + fg_env + {" "} + + gname + {" "} + with +
+     |{" "} + + + Some + + {" "} + t =>{" "} + + + update_first + + {" "} + + + string_dec + + {" "} + + fg_env + {" "} + + gname + {" "} + (( + + fname + + , + + fn + + )::t)
+     |{" "} + + + None + + {" "} + => ( + + gname + + ,(( + + fname + + , + + fn + + ):: + + nil + + )) ::{" "} + + fg_env + +
+     end.
+
+   Definition{" "} + + + compilation_context_update_function_group_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + coname :{" "} + + + string + + + )
+              ( + clname :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_function + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                ( + + + update_function_group_env + + {" "} + + coname + {" "} + + clname + {" "} + + value + {" "} + + ctxt + + .( + + + compilation_context_function_group_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_global_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_expr + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + compilation_context_global_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_local_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_expr + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + compilation_context_local_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_set_local_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + new_local_env :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_expr + + )) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + + new_local_env + + +
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_params_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + param :{" "} + + + string + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                ( + + param + + :: + + ctxt + + .( + + + compilation_context_params_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_set_params_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + params :{" "} + + + list + + {" "} + + + string + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + params + +
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + set_namespace_in_compilation_context + + +
+              ( + ns: + + + namespace_name + + + )
+              ( + ctxt: + + + compilation_context + + + )
+     :{" "} + + eresult + {" "} + + + compilation_context + + {" "} + := +
+      + + elift + +
+       ( + + + compilation_context_update_namespace + + +
+           + + ctxt + + )
+       ( + + + new_ergo_module_namespace + + +
+          ( + + + namespace_ctxt_of_compilation_context + + {" "} + + ctxt + + )
+           + + ns + + ). +
+
+   Definition{" "} + + set_current_contract + {" "} + (ctxt: + + + compilation_context + + + ) (cname: + + + string + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                ( + + + Some + + {" "} + + cname + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+    +
+   Definition{" "} + + set_current_clause + {" "} + (ctxt: + + + compilation_context + + + ) (cname: + + + string + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                ( + + + Some + + {" "} + + cname + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_type_ctxt + + +
+              ( + ctxt:{" "} + + + compilation_context + + + )
+              ( + nctxt:{" "} + + + type_context + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + nctxt + +
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_type_declarations + + +
+              ( + ctxt:{" "} + + + compilation_context + + + )
+              ( + old_decls: + + + list + + {" "} + + + laergo_type_declaration + + + )
+              ( + new_decls: + + + list + + {" "} + + + laergo_type_declaration + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + + old_decls + + +
+                 + + + new_decls + + + .
+    +
+   Definition{" "} + + + compilation_context_add_new_type_declaration + + +
+              ( + ctxt:{" "} + + + compilation_context + + + )
+              ( + decl: + + + laergo_type_declaration + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                ( + + ctxt + + .( + + + compilation_context_new_type_decls + + + ) ++ ( + + decl + + :: + + nil + + )). +
+    +
+   Definition{" "} + + init_compilation_context + {" "} + nsctxt :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + nsctxt + {" "} + + nil + {" "} + + nil + {" "} + + nil + {" "} + + nil + {" "} + + nil + {" "} + + + None + + {" "} + + + None + + {" "} + + + ErgoCTypeContext.empty_type_context + + {" "} + + nil + {" "} + + nil + + .
+
+   Definition{" "} + + is_abstract_class + +
+              ( + ctxt:{" "} + + + compilation_context + + + )
+              ( + n: + + + string + + + ) := +
+     if{" "} + + + in_dec + + {" "} + + + string_dec + + {" "} + + n + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + ).( + + + namespace_ctxt_abstract + + + )
+     then{" "} + + + true + + +
+     else{" "} + + + false + + + .
+    +
+ End{" "} + + + ErgoCompContext + + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.html b/docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.html deleted file mode 100644 index c2c208b9..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.ErgoCtoErgoNNRC - - - - - - -

Module ErgoSpec.Translation.ErgoCtoErgoNNRC

-
-
-
Translates contract logic to calculus
-
-Require Import String.
-Require Import List.
-
-Require Import Qcert.NNRC.NNRCRuntime.
-
-Require Import ErgoSpec.Backend.ForeignErgo.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-Require Import ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.
-Require Import ErgoSpec.ErgoNNRC.Lang.ErgoNNRCSugar.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section ErgoCtoErgoNNRC.
-  Definition ergo_pattern_to_nnrc (input_expr:nnrc_expr) (p:laergo_pattern) : (list string * nnrc_expr) :=
-    match p with
-    | CaseData prov d =>
-      (nil, NNRCIf (NNRCBinop OpEqual input_expr (NNRCConst d))
-                   (NNRCUnop OpLeft (NNRCConst (drec nil)))
-                   (NNRCUnop OpRight (NNRCConst dunit)))
-    | CaseWildcard prov None =>
-      (nil, NNRCUnop OpLeft (NNRCConst (drec nil)))
-    | CaseWildcard prov (Some type_name) =>
-      let (v1,v2) := fresh_var2 "$case" "$case" nil in
-      (nil, NNRCEither
-              (NNRCUnop (OpCast (type_name::nil)) input_expr)
-              v1 (NNRCUnop OpLeft (NNRCConst (drec nil)))
-              v2 (NNRCUnop OpRight (NNRCConst dunit)))
-    | CaseLet prov v None =>
-      (v::nil, NNRCUnop OpLeft (NNRCUnop (OpRec v) input_expr))
-    | CaseLet prov v (Some type_name) =>
-      let (v1,v2) := fresh_var2 "$case" "$case" nil in
-      (v::nil, NNRCEither
-                 (NNRCUnop (OpCast (type_name::nil)) input_expr)
-                 v1 (NNRCUnop OpLeft (NNRCUnop (OpRec v) (NNRCVar v1)))
-                 v2 (NNRCUnop OpRight (NNRCConst dunit)))
-    | CaseLetOption prov v None =>
-      let v1 := fresh_var "$case" nil in
-      (v::nil, (NNRCLet v1 input_expr
-                        (NNRCIf
-                           (NNRCBinop OpEqual (NNRCVar v1) (NNRCConst dunit))
-                           (NNRCUnop OpRight (NNRCConst dunit))
-                           (NNRCUnop OpLeft (NNRCUnop (OpRec v) (NNRCVar v1))))))
-    | CaseLetOption prov v (Some type_name) =>
-      let (v1,v2) := fresh_var2 "$case" "$case" nil in
-      (v::nil, (NNRCLet v1 input_expr
-                        (NNRCIf
-                           (NNRCBinop OpEqual (NNRCVar v1) (NNRCConst dunit))
-                           (NNRCUnop OpRight (NNRCConst dunit))
-                           (NNRCEither
-                              (NNRCUnop (OpCast (type_name::nil)) (NNRCVar v1))
-                              v1 (NNRCUnop OpLeft (NNRCUnop (OpRec v) (NNRCVar v1)))
-                              v2 (NNRCUnop OpRight (NNRCConst dunit))))))
-    end.
-
-  Definition pack_pattern
-             (vars:list string)
-             (pattern_expr:nnrc_expr)
-             (else_expr:nnrc_expr)
-             (cont_expr:nnrc_expr)
-    : nnrc_expr :=
-    let v_rec := fresh_in_case pattern_expr else_expr in
-    let init_expr := else_expr in
-    let proc_one (acc:nnrc_expr) (v:string) :=
-        NNRCLet v (NNRCUnop (OpDot v) (NNRCVar v_rec)) acc
-    in
-    let inner_expr :=
-        fold_left proc_one vars init_expr
-    in
-    let (v1,v2) := fresh_var2 "$case" "$case" nil in
-    NNRCEither
-      pattern_expr
-      v1 (NNRCLet v_rec
-                  (NNRCVar v1)
-                  inner_expr)
-      v2 cont_expr
-  .
-
-
Translate calculus expressions to NNRC
-  Fixpoint ergoc_expr_to_nnrc
-           (env:list string) (e:ergoc_expr) : eresult nnrc_expr :=
-    match e with
-    | EThisContract prov => contract_in_calculus_error prov
-    | EThisClause prov => clause_in_calculus_error prov
-    | EThisState prov => state_in_calculus_error prov
-    | EVar prov v =>
-      if in_dec string_dec v env
-      then esuccess (NNRCGetConstant v)
-      else esuccess (NNRCVar v)
-    | EConst prov d =>
-      esuccess (NNRCConst d)
-    | ENone prov => esuccess (NNRCConst dunit)
-    | ESome prov e => ergoc_expr_to_nnrc env e
-    | EArray prov el =>
-      let init_el := esuccess nil in
-      let proc_one (e:ergo_expr) (acc:eresult (list nnrc_expr)) : eresult (list nnrc_expr) :=
-          elift2
-            cons
-            (ergoc_expr_to_nnrc env e)
-            acc
-      in
-      elift new_array (fold_right proc_one init_el el)
-    | EUnaryOp prov u e =>
-      elift (NNRCUnop u)
-            (ergoc_expr_to_nnrc env e)
-    | EBinaryOp prov b e1 e2 =>
-      elift2 (NNRCBinop b)
-             (ergoc_expr_to_nnrc env e1)
-             (ergoc_expr_to_nnrc env e2)
-    | EIf prov e1 e2 e3 =>
-      elift3 NNRCIf
-        (ergoc_expr_to_nnrc env e1)
-        (ergoc_expr_to_nnrc env e2)
-        (ergoc_expr_to_nnrc env e3)
-    | ELet prov v None e1 e2 =>
-      elift2 (NNRCLet v)
-              (ergoc_expr_to_nnrc env e1)
-              (ergoc_expr_to_nnrc env e2)
-    | ELet prov v (Some t1) e1 e2 =>
-      elift2 (NNRCLet v)
-              (ergoc_expr_to_nnrc env e1)
-              (ergoc_expr_to_nnrc env e2)
-    | ENew prov cr nil =>
-      esuccess (new_expr cr (NNRCConst (drec nil)))
-    | ENew prov cr ((s0,init)::rest) =>
-      let init_rec : eresult nnrc :=
-          elift (NNRCUnop (OpRec s0)) (ergoc_expr_to_nnrc env init)
-      in
-      let proc_one (acc:eresult nnrc) (att:string * ergo_expr) : eresult nnrc :=
-          let attname := fst att in
-          let e := ergoc_expr_to_nnrc env (snd att) in
-          elift2 (NNRCBinop OpRecConcat)
-                 acc (elift (NNRCUnop (OpRec attname)) e)
-      in
-      elift (new_expr cr) (fold_left proc_one rest init_rec)
-    | ERecord prov nil =>
-      esuccess (NNRCConst (drec nil))
-    | ERecord prov ((s0,init)::rest) =>
-      let init_rec : eresult nnrc :=
-          elift (NNRCUnop (OpRec s0)) (ergoc_expr_to_nnrc env init)
-      in
-      let proc_one (acc:eresult nnrc) (att:string * ergo_expr) : eresult nnrc :=
-          let attname := fst att in
-          let e := ergoc_expr_to_nnrc env (snd att) in
-          elift2 (NNRCBinop OpRecConcat)
-                 acc (elift (NNRCUnop (OpRec attname)) e)
-      in
-      fold_left proc_one rest init_rec
-    | ECallFun prov fname _ => function_not_inlined_error prov fname
-    | ECallFunInGroup prov gname fname _ => function_in_group_not_inlined_error prov gname fname
-    | EMatch prov e0 ecases edefault =>
-      let ec0 := ergoc_expr_to_nnrc env e0 in
-      let eccases :=
-          let proc_one acc ecase :=
-              eolift
-                (fun acc =>
-                   elift (fun x => (fst ecase, x)::acc)
-                         (ergoc_expr_to_nnrc env (snd ecase))) acc
-          in
-          fold_left proc_one ecases (esuccess nil)
-      in
-      let ecdefault := ergoc_expr_to_nnrc env edefault in
-      eolift
-        (fun ec0 : nnrc_expr =>
-           eolift
-             (fun eccases =>
-                eolift
-                  (fun ecdefault =>
-                     let v0 : string := fresh_in_match eccases ecdefault in
-                     let proc_one_case
-                           (acc:eresult nnrc_expr)
-                           (ecase:ergo_pattern * nnrc_expr)
-                         : eresult nnrc_expr :=
-                         let (vars, pattern_expr) := ergo_pattern_to_nnrc (NNRCVar v0) (fst ecase) in
-                         elift
-                           (fun cont_expr : nnrc_expr =>
-                              pack_pattern
-                                vars
-                                pattern_expr
-                                (snd ecase)
-                                cont_expr)
-                           acc
-                     in
-                     let eccases_folded : eresult nnrc_expr :=
-                         fold_left proc_one_case eccases (esuccess ecdefault)
-                     in
-                     elift (NNRCLet v0 ec0) eccases_folded)
-                  ecdefault) eccases) ec0
-    | EForeach loc ((v,e1)::nil) None e2 =>
-      elift2
-        (NNRCFor v)
-        (ergoc_expr_to_nnrc env e1)
-        (ergoc_expr_to_nnrc env e2)
-    | EForeach prov _ _ _ =>
-      complex_foreach_in_calculus_error prov
-    end.
-
-
Translate a function to function+calculus
-  Definition functionc_to_nnrc
-             (fn:absolute_name)
-             (f:ergoc_function) : eresult nnrc_function :=
-    let env := List.map fst f.(functionc_sig).(sigc_params) in
-    match f.(functionc_body) with
-    | Some body =>
-      elift
-        (mkFuncN fn)
-        (elift
-           (mkLambdaN
-              f.(functionc_sig).(sigc_params)
-              f.(functionc_sig).(sigc_output))
-           (ergoc_expr_to_nnrc env body))
-    | None => function_not_inlined_error dummy_provenance fn
-    end.
-
-
Translate a declaration to a declaration+calculus
-  Definition clausec_declaration_to_nnrc
-             (fn:absolute_name)
-             (f:ergoc_function) : eresult nnrc_function :=
-    functionc_to_nnrc fn f.
-
-
Translate a contract to a contract+calculus
-
For a contract, add 'contract' and 'now' to the translation_context
-  Definition contractc_to_nnrc
-             (cn:local_name)
-             (c:ergoc_contract) : eresult nnrc_function_table :=
-    let init := esuccess nil in
-    let proc_one
-          (acc:eresult (list nnrc_function))
-          (s:absolute_name * ergoc_function)
-        : eresult (list nnrc_function) :=
-        eolift
-          (fun acc : list nnrc_function =>
-             elift (fun news : nnrc_function => news::acc)
-                   (clausec_declaration_to_nnrc (fst s) (snd s)))
-          acc
-    in
-    elift
-      (mkFuncTableN cn)
-      (List.fold_left proc_one c.(contractc_clauses) init).
-
-
Translate a statement to a statement+calculus
-  Definition declaration_to_nnrc (s:ergoc_declaration) : eresult nnrc_declaration :=
-    match s with
-    | DCExpr prov e =>
-      elift
-        DNExpr
-        (ergoc_expr_to_nnrc nil e)
-    | DCConstant prov v _ e =>
-      elift
-        (DNConstant v)
-        (ergoc_expr_to_nnrc nil e)
-    | DCFunc prov fn f =>
-      elift
-        DNFunc
-        (functionc_to_nnrc fn f)
-    | DCContract prov cn c =>
-      elift DNFuncTable
-            (contractc_to_nnrc cn c)
-    end.
-
-
Translate a module to a module+calculus
-  Definition declarations_calculus_with_table (dl:list ergoc_declaration)
-    : eresult (list nnrc_declaration) :=
-    let init := esuccess nil in
-    let proc_one
-          (acc:eresult (list nnrc_declaration))
-          (s:ergoc_declaration)
-        : eresult (list nnrc_declaration) :=
-        eolift
-          (fun acc : list nnrc_declaration =>
-             let edecl := declaration_to_nnrc s in
-             elift (fun news : nnrc_declaration => news::acc)
-                   edecl)
-          acc
-    in
-    List.fold_left proc_one dl init.
-
-
Translate a module to a module+calculus
-  Definition module_to_nnrc_with_table (p:ergoc_module) : eresult nnrc_module :=
-    elift
-      (mkModuleN p.(modulec_namespace))
-      (declarations_calculus_with_table p.(modulec_declarations)).
-
-  Definition ergoc_module_to_nnrc (m:ergoc_module) : eresult nnrc_module :=
-    module_to_nnrc_with_table m.
-
-  Section Examples.
-    Open Scope string.
-    Definition env0 : list string := nil.
-
-    Definition input1 := dnat 2.
-    
-    Example j1 : ergoc_expr :=
-      EMatch dummy_provenance
-             (EConst dummy_provenance input1)
-             ((CaseData dummy_provenance (dnat 1), EConst dummy_provenance (dstring "1"))
-                :: (CaseData dummy_provenance (dnat 2), EConst dummy_provenance (dstring "2"))
-                :: nil)
-             (EConst dummy_provenance (dstring "lots")).
-    Definition jc1 := ergoc_expr_to_nnrc env0 j1.
-
-    Example j1' : laergo_expr :=
-      EMatch dummy_provenance
-             (EConst dummy_provenance input1)
-             ((CaseData dummy_provenance (dnat 1), EConst dummy_provenance (dstring "1"))
-                :: (CaseLet dummy_provenance "v2" None, EVar dummy_provenance "v2")
-                :: nil)
-             (EConst dummy_provenance (dstring "lots")).
-    Definition jc1' := ergoc_expr_to_nnrc env0 j1'.
-
-    Definition input2 :=
-      dbrand ("C2"::nil) (dnat 1).
-    
-    Example j2 : laergo_expr :=
-      EMatch dummy_provenance
-             (EConst dummy_provenance input2)
-             ((CaseLet dummy_provenance "v1" (Some "C1"), EConst dummy_provenance (dstring "1"))
-                :: (CaseLet dummy_provenance "v2" (Some "C2"), EConst dummy_provenance (dstring "2"))
-                :: nil)
-             (EConst dummy_provenance (dstring "lots")).
-
-    Definition jc2 := ergoc_expr_to_nnrc env0 j2.
-
-    Definition input3 :=
-      dsome (dnat 1).
-    
-    Definition input3none :=
-      dnone.
-    
-    Example j3 input : laergo_expr :=
-      EMatch dummy_provenance
-             (EConst dummy_provenance input)
-             ((CaseLetOption dummy_provenance "v1" None, EConst dummy_provenance (dstring "1"))
-                :: nil)
-             (EConst dummy_provenance (dstring "nothing")).
-
-    Definition jc3 := ergoc_expr_to_nnrc env0 (j3 input3).
-    Definition jc3none := ergoc_expr_to_nnrc env0 (j3 input3none).
-
-    Example j4 : laergo_expr :=
-      EForeach dummy_provenance
-               (("x", EConst dummy_provenance (dcoll (dnat 1::dnat 2::dnat 3::nil)))
-                  :: ("y", EConst dummy_provenance (dcoll (dnat 4::dnat 5::dnat 6::nil)))
-                  :: nil)
-               None
-               (ERecord dummy_provenance
-                        (("a",EVar dummy_provenance "x")
-                           ::("b",EVar dummy_provenance "y")
-                           ::nil)).
-    Definition jc4 := ergoc_expr_to_nnrc env0 j4.
-
-    Example j5 : laergo_expr :=
-      EForeach dummy_provenance
-               (("x", EConst dummy_provenance (dcoll (dnat 1::dnat 2::dnat 3::nil)))
-                  :: ("y", EConst dummy_provenance (dcoll (dnat 4::dnat 5::dnat 6::nil)))
-                  :: nil)
-               None
-               (ENew dummy_provenance
-                     "person"
-                     (("a",EVar dummy_provenance "x")
-                        ::("b",EVar dummy_provenance "y")
-                        ::nil)).
-    Definition jc5 := ergoc_expr_to_nnrc env0 j5.
-
-  End Examples.
-
-End ErgoCtoErgoNNRC.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.jsx b/docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.jsx new file mode 100644 index 00000000..5c6ef985 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.ErgoCtoErgoNNRC.jsx @@ -0,0 +1,2874 @@ +
+ + Module ErgoSpec.Translation.ErgoCompContext + + +

Module ErgoSpec.Translation.ErgoCompContext

+
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.NamespaceContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCTypeContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCStdlib + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoNameResolve + + + .
+
+ Section{" "} + + ErgoCompContext + + .
+   Context {"{"} + bm :{" "} + + + brand_model + + + {"}"}.
+
+   Definition{" "} + + function_group_env + {" "} + : Set :={" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_function + + )). +
+    +
+   Record{" "} + + compilation_context + {" "} + : Set := +
+      + + mkCompCtxt + {" "} + {"{"} +
+          + + compilation_context_namespace + + :{" "} + + + namespace_ctxt + + + ; (* for name resolution *) +
+          + + + compilation_context_function_env + + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_function + + ); (* functions in scope *) +
+          + + + compilation_context_function_group_env + + {" "} + :{" "} + + + function_group_env + + + ; (* functions groups in scope *) +
+          + + + compilation_context_global_env + + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_expr + + ); (* global variables in scope *) +
+          + + compilation_context_local_env + {" "} + :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_expr + + ); (* local variables in scope *) +
+          + + + compilation_context_params_env + + {" "} + :{" "} + + + list + + {" "} + + + string + + + ; (* function parameters in scope *) +
+          + + + compilation_context_current_contract + + {" "} + :{" "} + + + option + + {" "} + + + string + + + ; (* current contract in scope if any *) +
+          + + + compilation_context_current_clause + + {" "} + :{" "} + + + option + + {" "} + + + string + + + ; (* current clause in scope if any *) +
+          + + compilation_context_type_ctxt + {" "} + :{" "} + + + type_context + + + ; (* the type context *) +
+          + + + compilation_context_type_decls + + {" "} + :{" "} + + + list + + {" "} + + + laergo_type_declaration + + + ; (* type declarations *) +
+          + + + compilation_context_new_type_decls + + {" "} + :{" "} + + + list + + {" "} + + + laergo_type_declaration + + + ; (* type declarations *) +
+       {"}"}.
+
+   Definition{" "} + + + namespace_ctxt_of_compilation_context + + {" "} + (ctxt: + + + compilation_context + + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + ctxt + + .( + + + compilation_context_namespace + + + ). +
+
+   Definition{" "} + + + compilation_context_update_namespace + + +
+              ( + ctxt: + + + compilation_context + + + ) (nsctxt: + + + namespace_ctxt + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + nsctxt + +
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+           +
+   Definition{" "} + + + compilation_context_update_function_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_function + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + compilation_context_function_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + update_function_group_env + +
+              ( + gname: + + + string + + + )
+              ( + fname: + + + string + + + )
+              ( + fn: + + ergoc_function + + )
+              ( + fg_env: + + + function_group_env + + + ) :{" "} + + + function_group_env + + {" "} + := +
+     match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + fg_env + {" "} + + gname + {" "} + with +
+     |{" "} + + + Some + + {" "} + t =>{" "} + + + update_first + + {" "} + + + string_dec + + {" "} + + fg_env + {" "} + + gname + {" "} + (( + + fname + + , + + fn + + )::t)
+     |{" "} + + + None + + {" "} + => ( + + gname + + ,(( + + fname + + , + + fn + + ):: + + nil + + )) ::{" "} + + fg_env + +
+     end.
+
+   Definition{" "} + + + compilation_context_update_function_group_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + coname :{" "} + + + string + + + )
+              ( + clname :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_function + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                ( + + + update_function_group_env + + {" "} + + coname + {" "} + + clname + {" "} + + value + {" "} + + ctxt + + .( + + + compilation_context_function_group_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_global_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_expr + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + compilation_context_global_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_local_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + name :{" "} + + + string + + + )
+              ( + value :{" "} + + ergoc_expr + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                (( + + name + + ,{" "} + + value + + ):: + + ctxt + + .( + + + compilation_context_local_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_set_local_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + new_local_env :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_expr + + )) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + + new_local_env + + +
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_params_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + param :{" "} + + + string + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                ( + + param + + :: + + ctxt + + .( + + + compilation_context_params_env + + + )) +
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_set_params_env + + +
+              ( + ctxt :{" "} + + + compilation_context + + + )
+              ( + params :{" "} + + + list + + {" "} + + + string + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + params + +
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + set_namespace_in_compilation_context + + +
+              ( + ns: + + + namespace_name + + + )
+              ( + ctxt: + + + compilation_context + + + )
+     :{" "} + + eresult + {" "} + + + compilation_context + + {" "} + := +
+      + + elift + +
+       ( + + + compilation_context_update_namespace + + +
+           + + ctxt + + )
+       ( + + + new_ergo_module_namespace + + +
+          ( + + + namespace_ctxt_of_compilation_context + + {" "} + + ctxt + + )
+           + + ns + + ). +
+
+   Definition{" "} + + set_current_contract + {" "} + (ctxt: + + + compilation_context + + + ) (cname: + + + string + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                ( + + + Some + + {" "} + + cname + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+    +
+   Definition{" "} + + set_current_clause + {" "} + (ctxt: + + + compilation_context + + + ) (cname: + + + string + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                ( + + + Some + + {" "} + + cname + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_type_ctxt + + +
+              ( + ctxt:{" "} + + + compilation_context + + + )
+              ( + nctxt:{" "} + + + type_context + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + nctxt + +
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                 + + ctxt + + .( + + + compilation_context_new_type_decls + + + ). +
+
+   Definition{" "} + + + compilation_context_update_type_declarations + + +
+              ( + ctxt:{" "} + + + compilation_context + + + )
+              ( + old_decls: + + + list + + {" "} + + + laergo_type_declaration + + + )
+              ( + new_decls: + + + list + + {" "} + + + laergo_type_declaration + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + + old_decls + + +
+                 + + + new_decls + + + .
+    +
+   Definition{" "} + + + compilation_context_add_new_type_declaration + + +
+              ( + ctxt:{" "} + + + compilation_context + + + )
+              ( + decl: + + + laergo_type_declaration + + + ) :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + )
+                 + + ctxt + + .( + + + compilation_context_function_env + + + )
+                 + + ctxt + + .( + + + compilation_context_function_group_env + + + )
+                 + + ctxt + + .( + + + compilation_context_global_env + + + )
+                 + + ctxt + + .( + + + compilation_context_local_env + + + )
+                 + + ctxt + + .( + + + compilation_context_params_env + + + )
+                 + + ctxt + + .( + + + compilation_context_current_contract + + + )
+                 + + ctxt + + .( + + + compilation_context_current_clause + + + )
+                 + + ctxt + + .( + + + compilation_context_type_ctxt + + + )
+                 + + ctxt + + .( + + + compilation_context_type_decls + + + )
+                ( + + ctxt + + .( + + + compilation_context_new_type_decls + + + ) ++ ( + + decl + + :: + + nil + + )). +
+    +
+   Definition{" "} + + init_compilation_context + {" "} + nsctxt :{" "} + + + compilation_context + + {" "} + := +
+      + + + mkCompCtxt + + {" "} + + nsctxt + {" "} + + nil + {" "} + + nil + {" "} + + nil + {" "} + + nil + {" "} + + nil + {" "} + + + None + + {" "} + + + None + + {" "} + + + ErgoCTypeContext.empty_type_context + + {" "} + + nil + {" "} + + nil + + .
+
+   Definition{" "} + + is_abstract_class + +
+              ( + ctxt:{" "} + + + compilation_context + + + )
+              ( + n: + + + string + + + ) := +
+     if{" "} + + + in_dec + + {" "} + + + string_dec + + {" "} + + n + {" "} + + ctxt + + .( + + + compilation_context_namespace + + + ).( + + + namespace_ctxt_abstract + + + )
+     then{" "} + + + true + + +
+     else{" "} + + + false + + + .
+    +
+ End{" "} + + + ErgoCompContext + + + .
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.html b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.html deleted file mode 100644 index e030b1c5..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.ErgoNNRCtoJava - - - - - - -

Module ErgoSpec.Translation.ErgoNNRCtoJava

-
-
-
Translates ErgoNNRC to Java
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section ErgoNNRCtoJava.
-  Local Open Scope string_scope.
-
-
Top-level expression
-  Definition java_of_expression
-             (e:nnrc_expr)
-             (t : nat)
-             (i : nat)
-             (eol:string)
-             (quotel:string)
-    : ErgoCodeGen.java
-      * ErgoCodeGen.java_data
-      * nat
-    := ErgoCodeGen.nnrc_expr_java_unshadow e t i eol quotel nil nil.
-
-
Top-level constant
-  Definition java_of_constant
-             (v:string)
-             (bind:nnrc_expr)
-             (t : nat)
-             (i : nat)
-             (eol:string)
-             (quotel:string)
-    : ErgoCodeGen.java
-      * ErgoCodeGen.java_data
-      * nat
-    :=
-      let '(s1, e1, t2) := ErgoCodeGen.nnrc_expr_to_java bind t i eol quotel nil in
-      let v0 := "v" ++ v in
-      (s1 ++ (ErgoCodeGen.java_indent i) ++ "var " ++ v0 ++ " = " ++ (ErgoCodeGen.from_java_data e1) ++ ";" ++ eol,
-       ErgoCodeGen.mk_java_data v0,
-       t2).
-
-
Single method
-  Definition java_method_of_body
-             (e:nnrc_expr)
-             (fname:string)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.java :=
-    let input_v := "context" in
-    ErgoCodeGen.nnrc_expr_to_java_method input_v e 1 eol quotel ((input_v, input_v)::nil) fname.
-
-  Definition java_method_of_nnrc_function
-             (f:nnrc_function)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.java :=
-    let fname := f.(functionn_name) in
-    java_method_of_body f.(functionn_lambda).(lambdan_body) fname eol quotel.
-    
-  Definition java_methods_of_nnrc_functions
-             (fl:list nnrc_function)
-             (tname:string)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.java :=
-    multi_append eol (fun f => java_method_of_nnrc_function f eol quotel) fl.
-
-  Definition java_class_of_nnrc_function_table
-             (ft:nnrc_function_table)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.java :=
-    let tname := ft.(function_tablen_name) in
-    "class " ++ tname ++ " {" ++ eol
-             ++ (java_methods_of_nnrc_functions ft.(function_tablen_funs) tname eol quotel) ++ eol
-             ++ "}" ++ eol.
-
-  Definition preamble (eol:string) := eol.
-
-  Definition postamble (eol:string) := eol.
-    
-  Definition java_of_declaration
-             (s : nnrc_declaration)
-             (t : nat)
-             (i : nat)
-             (eol : string)
-             (quotel : string)
-    : ErgoCodeGen.java
-      * ErgoCodeGen.java_data
-      * nat
-    :=
-      match s with
-      | DNExpr e => java_of_expression e t i eol quotel
-      | DNConstant v e => java_of_constant v e t i eol quotel
-      | DNFunc f => ("",ErgoCodeGen.mk_java_data "",t)
-      | DNFuncTable ft => (java_class_of_nnrc_function_table ft eol quotel,ErgoCodeGen.mk_java_data "null",t)
-      end.
-
-  Definition java_of_declarations
-             (sl : list nnrc_declaration)
-             (t : nat)
-             (i : nat)
-             (eol : string)
-             (quotel : string)
-    : ErgoCodeGen.java
-    := let proc_one
-             (s:nnrc_declaration)
-             (acc:ErgoCodeGen.java * nat) : ErgoCodeGen.java * nat :=
-           let '(s0, t0) := acc in
-           let '(s1, e1, t1) := java_of_declaration s t0 i eol quotel in
-           (s0 ++ s1,
-            t1)
-       in
-       let '(sn, tn) := fold_right proc_one ("",t) sl in
-       sn.
-
-  Definition nnrc_module_to_java
-             (p:nnrc_module)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.java :=
-    (preamble eol) ++ eol
-                   ++ (java_of_declarations p.(modulen_declarations) 0 0 eol quotel)
-                   ++ (postamble eol).
-
-  Definition nnrc_module_to_java_top
-             (p:nnrc_module) : ErgoCodeGen.java :=
-    nnrc_module_to_java p ErgoCodeGen.java_eol_newline ErgoCodeGen.java_quotel_double.
-
-End ErgoNNRCtoJava.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.jsx b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.jsx new file mode 100644 index 00000000..c34a739c --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJava.jsx @@ -0,0 +1,1130 @@ +
+ + Module ErgoSpec.Translation.ErgoNNRCtoJava + + +

Module ErgoSpec.Translation.ErgoNNRCtoJava

+
+
+
Translates ErgoNNRC to Java
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoNNRC.Lang.ErgoNNRC + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+
+ Section{" "} + + ErgoNNRCtoJava + + .
+   Local{" "} + Open Scope{" "} + string_scope.
+
+
Top-level expression
+   Definition{" "} + + java_of_expression + +
+              ( + e: + + nnrc_expr + + )
+              ( + t :{" "} + + nat + + )
+              ( + i :{" "} + + nat + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + )
+     :{" "} + + + ErgoCodeGen.java + + +
+       *{" "} + + + ErgoCodeGen.java_data + + +
+       *{" "} + + nat + +
+     :={" "} + + + ErgoCodeGen.nnrc_expr_java_unshadow + + {" "} + + e + {" "} + + t + {" "} + + i + {" "} + + eol + {" "} + + quotel + {" "} + + nil + {" "} + + nil + + .
+
+
Top-level constant
+   Definition{" "} + + java_of_constant + +
+              ( + v: + + + string + + + )
+              ( + bind: + + nnrc_expr + + )
+              ( + t :{" "} + + nat + + )
+              ( + i :{" "} + + nat + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + )
+     :{" "} + + + ErgoCodeGen.java + + +
+       *{" "} + + + ErgoCodeGen.java_data + + +
+       *{" "} + + nat + +
+     :=
+       let '( + s1, e1,{" "} + t2) :={" "} + + + ErgoCodeGen.nnrc_expr_to_java + + {" "} + + bind + {" "} + + t + {" "} + + i + {" "} + + eol + {" "} + + quotel + {" "} + + nil + {" "} + in +
+       let{" "} + v0 := "v" ++{" "} + + v + {" "} + in +
+       (s1 ++ ( + + + ErgoCodeGen.java_indent + + {" "} + + i + + ) ++ "var " ++{" "} + + v0 + {" "} + ++ " = " ++ ( + + + ErgoCodeGen.from_java_data + + {" "} + e1) ++ ";" ++{" "} + + eol + + ,
+         + + + ErgoCodeGen.mk_java_data + + {" "} + + v0 + + ,
+        t2). +
+
+
Single method
+   Definition{" "} + + java_method_of_body + +
+              ( + e: + + nnrc_expr + + )
+              ( + fname: + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.java + + {" "} + := +
+     let{" "} + input_v := "context"{" "} + in +
+      + + + ErgoCodeGen.nnrc_expr_to_java_method + + {" "} + + input_v + {" "} + + e + {" "} + 1{" "} + + eol + {" "} + + quotel + {" "} + (( + + input_v + + ,{" "} + + input_v + + ):: + + nil + + ){" "} + + fname + + .
+
+   Definition{" "} + + java_method_of_nnrc_function + +
+              ( + f: + + + nnrc_function + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.java + + {" "} + := +
+     let{" "} + fname :={" "} + + f + + .( + + + functionn_name + + + ) in +
+      + + + java_method_of_body + + {" "} + + f + + .( + + + functionn_lambda + + + ).( + + + lambdan_body + + + ){" "} + + fname + {" "} + + eol + {" "} + + quotel + + .
+      +
+   Definition{" "} + + + java_methods_of_nnrc_functions + + +
+              ( + fl: + + + list + + {" "} + + + nnrc_function + + + )
+              ( + tname: + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.java + + {" "} + := +
+      + + multi_append + {" "} + + eol + {" "} + (fun f =>{" "} + + + java_method_of_nnrc_function + + {" "} + + f + {" "} + + eol + {" "} + + quotel + + ){" "} + + fl + + .
+
+   Definition{" "} + + + java_class_of_nnrc_function_table + + +
+              ( + ft: + + + nnrc_function_table + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.java + + {" "} + := +
+     let{" "} + tname :={" "} + + ft + + .( + + + function_tablen_name + + + ) in +
+     "class " ++{" "} + + tname + {" "} + ++ " {"{"}" ++{" "} + + eol + +
+              ++ + ( + + + java_methods_of_nnrc_functions + + {" "} + + ft + + .( + + + function_tablen_funs + + + ){" "} + + tname + {" "} + + eol + {" "} + + quotel + + ) ++{" "} + + eol + +
+              ++ + "{"}"}" ++{" "} + + eol + + .
+
+   Definition{" "} + + preamble + {" "} + (eol: + + + string + + + ) :={" "} + + eol + + .
+
+   Definition{" "} + + postamble + {" "} + (eol: + + + string + + + ) :={" "} + + eol + + .
+      +
+   Definition{" "} + + java_of_declaration + +
+              ( + s :{" "} + + + nnrc_declaration + + + )
+              ( + t :{" "} + + nat + + )
+              ( + i :{" "} + + nat + + )
+              ( + eol :{" "} + + + string + + + )
+              ( + quotel :{" "} + + + string + + + )
+     :{" "} + + + ErgoCodeGen.java + + {" "} +
+       *{" "} + + + ErgoCodeGen.java_data + + {" "} +
+       *{" "} + + nat + {" "} +
+     := +
+       match{" "} + + s + {" "} + with +
+       |{" "} + + DNExpr + {" "} + e =>{" "} + + + java_of_expression + + {" "} + e{" "} + + t + {" "} + + i + {" "} + + eol + {" "} + + quotel + +
+       |{" "} + + DNConstant + {" "} + v e =>{" "} + + + java_of_constant + + {" "} + v e{" "} + + t + {" "} + + i + {" "} + + eol + {" "} + + quotel + +
+       |{" "} + + DNFunc + {" "} + f => ("", + + + ErgoCodeGen.mk_java_data + + {" "} + "", + + t + + )
+       |{" "} + + DNFuncTable + {" "} + ft => ( + + + java_class_of_nnrc_function_table + + {" "} + ft{" "} + + eol + {" "} + + quotel + + , + + + ErgoCodeGen.mk_java_data + + {" "} + "null", + + t + + )
+       end.
+
+   Definition{" "} + + java_of_declarations + +
+              ( + sl :{" "} + + + list + + {" "} + + + nnrc_declaration + + + )
+              ( + t :{" "} + + nat + + )
+              ( + i :{" "} + + nat + + )
+              ( + eol :{" "} + + + string + + + )
+              ( + quotel :{" "} + + + string + + + )
+     :{" "} + + + ErgoCodeGen.java + + +
+     := let{" "} + proc_one +
+              ( + s: + + + nnrc_declaration + + + )
+              ( + acc: + + + ErgoCodeGen.java + + {" "} + *{" "} + + nat + + ) :{" "} + + + ErgoCodeGen.java + + {" "} + *{" "} + + nat + {" "} + := +
+             + let '(s0,{" "} + t0) :={" "} + + acc + {" "} + in +
+             + let '(s1,{" "} + e1, t1) :={" "} + + + java_of_declaration + + {" "} + + s + {" "} + t0{" "} + + i + {" "} + + eol + {" "} + + quotel + {" "} + in +
+            ( + s0 ++ s1,
+              + t1)
+        in +
+         + let + {" "} + '(sn, tn) :={" "} + + + fold_right + + {" "} + + proc_one + {" "} + ("", + + t + + ){" "} + + sl + {" "} + in +
+        sn. +
+
+   Definition{" "} + + nnrc_module_to_java + +
+              ( + p: + + nnrc_module + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.java + + {" "} + := +
+     ( + + preamble + {" "} + + eol + + ) ++{" "} + + eol + +
+                    ++ + ( + + + java_of_declarations + + {" "} + + p + + .( + + + modulen_declarations + + + ) 0 0{" "} + + eol + {" "} + + quotel + + )
+                    ++ + ( + + postamble + {" "} + + eol + + ). +
+
+   Definition{" "} + + nnrc_module_to_java_top + +
+              ( + p: + + nnrc_module + + ) :{" "} + + + ErgoCodeGen.java + + {" "} + := +
+      + + + nnrc_module_to_java + + {" "} + + p + {" "} + + + ErgoCodeGen.java_eol_newline + + {" "} + + + ErgoCodeGen.java_quotel_double + + + .
+
+ End{" "} + + + ErgoNNRCtoJava + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.html b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.html deleted file mode 100644 index fb3cfd44..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.ErgoNNRCtoJavaScript - - - - - - -

Module ErgoSpec.Translation.ErgoNNRCtoJavaScript

-
-
-
Translates ErgoNNRC to JavaScript
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.
-Require Import ErgoSpec.Backend.ErgoBackend.
-
-Section ErgoNNRCtoJavaScript.
-  Local Open Scope string_scope.
-
-
Top-level expression
-  Definition javascript_of_expression
-             (e:nnrc_expr)
-             (t : nat)
-             (i : nat)
-             (eol:string)
-             (quotel:string)
-    : ErgoCodeGen.javascript
-      * ErgoCodeGen.javascript
-      * nat
-    := ErgoCodeGen.nnrc_expr_javascript_unshadow e t i eol quotel nil nil.
-
-
Top-level constant
-  Definition javascript_of_constant
-             (v:string)
-             (bind:nnrc_expr)
-             (t : nat)
-             (i : nat)
-             (eol:string)
-             (quotel:string)
-    : ErgoCodeGen.javascript
-      * ErgoCodeGen.javascript
-      * nat
-    :=
-      let '(s1, e1, t2) := ErgoCodeGen.nnrc_expr_to_javascript bind t i eol quotel nil in
-      let v0 := ErgoCodeGen.javascript_identifier_sanitizer ("v" ++ v) in
-      (s1 ++ (ErgoCodeGen.javascript_indent i) ++ "var " ++ v0 ++ " = " ++ e1 ++ ";" ++ eol,
-       v0,
-       t2).
-
-
Single method
-  Definition javascript_method_of_body
-             (e:nnrc_expr)
-             (fname:string)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    let input_v := "context" in
-    ErgoCodeGen.nnrc_expr_to_javascript_method input_v e 1 eol quotel (input_v::nil)
-                                               (ErgoCodeGen.javascript_identifier_sanitizer fname).
-
-
Single function
-  Definition javascript_function_of_body
-             (e:nnrc_expr)
-             (fname:string)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    let input_v := "context" in
-    let init_indent := 0 in
-    ErgoCodeGen.nnrc_expr_to_javascript_fun_lift e (ErgoCodeGen.javascript_identifier_sanitizer fname) input_v init_indent eol quotel.
-
-  Definition javascript_function_of_nnrc_function
-             (f:nnrc_function)
-             (tname:option string)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    let fname := function_name_in_table tname f.(functionn_name) in
-    javascript_function_of_body f.(functionn_lambda).(lambdan_body) fname eol quotel.
-
-  Definition javascript_method_of_nnrc_function
-             (f:nnrc_function)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    let fname := f.(functionn_name) in
-    javascript_method_of_body f.(functionn_lambda).(lambdan_body) fname eol quotel.
-    
-  Definition javascript_methods_of_nnrc_functions
-             (fl:list nnrc_function)
-             (tname:string)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    multi_append eol (fun f => javascript_method_of_nnrc_function f eol quotel) fl.
-
-  Definition javascript_class_of_nnrc_function_table
-             (ft:nnrc_function_table)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    let tname := ErgoCodeGen.javascript_identifier_sanitizer ft.(function_tablen_name) in
-    "class " ++ tname ++ " {" ++ eol
-             ++ (javascript_methods_of_nnrc_functions ft.(function_tablen_funs) tname eol quotel) ++ eol
-             ++ "}" ++ eol.
-
-  Definition preamble (eol:string) :=
-    "" ++ "'use strict';" ++ eol
-       ++ "/*eslint-disable no-unused-vars*/" ++ eol
-       ++ "/*eslint-disable no-undef*/" ++ eol
-       ++ "/*eslint-disable no-var*/" ++ eol
-       ++ eol.
-
-  Definition postamble (eol:string) :=
-    "" ++ eol
-       ++ "/*eslint-enable no-unused-vars*/" ++ eol
-       ++ "/*eslint-enable no-undef*/" ++ eol
-       ++ eol.
-    
-  Definition javascript_of_declaration
-             (s : nnrc_declaration)
-             (t : nat)
-             (i : nat)
-             (eol : string)
-             (quotel : string)
-    : ErgoCodeGen.javascript
-      * ErgoCodeGen.javascript
-      * nat
-    :=
-      match s with
-      | DNExpr e => javascript_of_expression e t i eol quotel
-      | DNConstant v e => javascript_of_constant v e t i eol quotel
-      | DNFunc f => (javascript_function_of_nnrc_function f None eol quotel,"null",t)
-      | DNFuncTable ft => (javascript_class_of_nnrc_function_table ft eol quotel,"null",t)
-      end.
-
-  Definition javascript_of_declarations
-             (sl : list nnrc_declaration)
-             (t : nat)
-             (i : nat)
-             (eol : string)
-             (quotel : string)
-    : ErgoCodeGen.javascript
-    := let proc_one
-             (s:nnrc_declaration)
-             (acc:ErgoCodeGen.javascript * nat) : ErgoCodeGen.javascript * nat :=
-           let '(s0, t0) := acc in
-           let '(s1, e1, t1) := javascript_of_declaration s t0 i eol quotel in
-           (s0 ++ s1,
-            t1)
-       in
-       let '(sn, tn) := fold_right proc_one ("",t) sl in
-       sn.
-
-  Definition nnrc_module_to_javascript
-             (p:nnrc_module)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    (preamble eol) ++ eol
-                   ++ (javascript_of_declarations p.(modulen_declarations) 0 0 eol quotel)
-                   ++ (postamble eol).
-
-  Definition nnrc_module_to_javascript_top
-             (p:nnrc_module) : ErgoCodeGen.javascript :=
-    nnrc_module_to_javascript p ErgoCodeGen.javascript_eol_newline ErgoCodeGen.javascript_quotel_double.
-
-End ErgoNNRCtoJavaScript.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.jsx b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.jsx new file mode 100644 index 00000000..f3475e06 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScript.jsx @@ -0,0 +1,1395 @@ +
+ + Module ErgoSpec.Translation.ErgoNNRCtoJavaScript + + +

Module ErgoSpec.Translation.ErgoNNRCtoJavaScript

+
+
+
Translates ErgoNNRC to JavaScript
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoNNRC.Lang.ErgoNNRC + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+
+ Section{" "} + + ErgoNNRCtoJavaScript + + .
+   Local{" "} + Open Scope{" "} + string_scope.
+
+
Top-level expression
+   Definition{" "} + + javascript_of_expression + +
+              ( + e: + + nnrc_expr + + )
+              ( + t :{" "} + + nat + + )
+              ( + i :{" "} + + nat + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + )
+     :{" "} + + + ErgoCodeGen.javascript + + +
+       *{" "} + + + ErgoCodeGen.javascript + + +
+       *{" "} + + nat + +
+     :={" "} + + + ErgoCodeGen.nnrc_expr_javascript_unshadow + + {" "} + + e + {" "} + + t + {" "} + + i + {" "} + + eol + {" "} + + quotel + {" "} + + nil + {" "} + + nil + + .
+
+
Top-level constant
+   Definition{" "} + + javascript_of_constant + +
+              ( + v: + + + string + + + )
+              ( + bind: + + nnrc_expr + + )
+              ( + t :{" "} + + nat + + )
+              ( + i :{" "} + + nat + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + )
+     :{" "} + + + ErgoCodeGen.javascript + + +
+       *{" "} + + + ErgoCodeGen.javascript + + +
+       *{" "} + + nat + +
+     :=
+       let '( + s1, e1,{" "} + t2) :={" "} + + + ErgoCodeGen.nnrc_expr_to_javascript + + {" "} + + bind + {" "} + + t + {" "} + + i + {" "} + + eol + {" "} + + quotel + {" "} + + nil + {" "} + in +
+       let{" "} + v0 :={" "} + + + ErgoCodeGen.javascript_identifier_sanitizer + + {" "} + ("v" ++{" "} + + v + + ) in +
+       (s1 ++ ( + + + ErgoCodeGen.javascript_indent + + {" "} + + i + + ) ++ "var " ++{" "} + + v0 + {" "} + ++ " = " ++ e1 ++ ";" ++{" "} + + eol + + ,
+         + + v0 + + ,
+        t2). +
+
+
Single method
+   Definition{" "} + + javascript_method_of_body + +
+              ( + e: + + nnrc_expr + + )
+              ( + fname: + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+     let{" "} + input_v := "context"{" "} + in +
+      + + + ErgoCodeGen.nnrc_expr_to_javascript_method + + {" "} + + + input_v + + {" "} + + e + {" "} + 1{" "} + + eol + {" "} + + quotel + {" "} + ( + + + input_v + + + :: + + nil + + )
+                                                ( + + + ErgoCodeGen.javascript_identifier_sanitizer + + {" "} + + fname + + ). +
+
+
Single function
+   Definition{" "} + + javascript_function_of_body + +
+              ( + e: + + nnrc_expr + + )
+              ( + fname: + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+     let{" "} + input_v := "context"{" "} + in +
+     let{" "} + init_indent := 0 in +
+      + + + ErgoCodeGen.nnrc_expr_to_javascript_fun_lift + + {" "} + + e + {" "} + ( + + + ErgoCodeGen.javascript_identifier_sanitizer + + {" "} + + fname + + ){" "} + + + input_v + + {" "} + + + init_indent + + {" "} + + eol + {" "} + + quotel + + .
+
+   Definition{" "} + + + javascript_function_of_nnrc_function + + +
+              ( + f: + + + nnrc_function + + + )
+              ( + tname: + + + option + + {" "} + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+     let{" "} + fname :={" "} + + + function_name_in_table + + {" "} + + tname + {" "} + + f + + .( + + + functionn_name + + + ) in +
+      + + + javascript_function_of_body + + {" "} + + f + + .( + + + functionn_lambda + + + ).( + + + lambdan_body + + + ){" "} + + fname + {" "} + + eol + {" "} + + quotel + + .
+
+   Definition{" "} + + + javascript_method_of_nnrc_function + + +
+              ( + f: + + + nnrc_function + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+     let{" "} + fname :={" "} + + f + + .( + + + functionn_name + + + ) in +
+      + + + javascript_method_of_body + + {" "} + + f + + .( + + + functionn_lambda + + + ).( + + + lambdan_body + + + ){" "} + + fname + {" "} + + eol + {" "} + + quotel + + .
+      +
+   Definition{" "} + + + javascript_methods_of_nnrc_functions + + +
+              ( + fl: + + + list + + {" "} + + + nnrc_function + + + )
+              ( + tname: + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+      + + multi_append + {" "} + + eol + {" "} + (fun f =>{" "} + + + javascript_method_of_nnrc_function + + {" "} + + f + {" "} + + eol + {" "} + + quotel + + ){" "} + + fl + + .
+
+   Definition{" "} + + + javascript_class_of_nnrc_function_table + + +
+              ( + ft: + + + nnrc_function_table + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+     let{" "} + tname :={" "} + + + ErgoCodeGen.javascript_identifier_sanitizer + + {" "} + + ft + + .( + + + function_tablen_name + + + ) in +
+     "class " ++{" "} + + tname + {" "} + ++ " {"{"}" ++{" "} + + eol + +
+              ++ + ( + + + javascript_methods_of_nnrc_functions + + {" "} + + ft + + .( + + + function_tablen_funs + + + ){" "} + + tname + {" "} + + eol + {" "} + + quotel + + ) ++{" "} + + eol + +
+              ++ + "{"}"}" ++{" "} + + eol + + .
+
+   Definition{" "} + + preamble + {" "} + (eol: + + + string + + + ) := +
+     "" ++ "'use{" "} + strict';" ++{" "} + + eol + +
+        ++ "/* + eslint-disable{" "} + no-unused- + vars*/" ++{" "} + + eol + +
+        ++ "/* + eslint-disable{" "} + no-undef*/" ++{" "} + + eol + +
+        ++ "/* + eslint-disable{" "} + no-var*/" ++{" "} + + eol + +
+        ++{" "} + + eol + + .
+
+   Definition{" "} + + postamble + {" "} + (eol: + + + string + + + ) := +
+     "" ++{" "} + + eol + +
+        ++ "/* + eslint-enable{" "} + no-unused- + vars*/" ++{" "} + + eol + +
+        ++ "/* + eslint-enable{" "} + no-undef*/" ++{" "} + + eol + +
+        ++{" "} + + eol + + .
+      +
+   Definition{" "} + + javascript_of_declaration + +
+              ( + s :{" "} + + + nnrc_declaration + + + )
+              ( + t :{" "} + + nat + + )
+              ( + i :{" "} + + nat + + )
+              ( + eol :{" "} + + + string + + + )
+              ( + quotel :{" "} + + + string + + + )
+     :{" "} + + + ErgoCodeGen.javascript + + {" "} +
+       *{" "} + + + ErgoCodeGen.javascript + + {" "} +
+       *{" "} + + nat + {" "} +
+     := +
+       match{" "} + + s + {" "} + with +
+       |{" "} + + DNExpr + {" "} + e =>{" "} + + + javascript_of_expression + + {" "} + e{" "} + + t + {" "} + + i + {" "} + + eol + {" "} + + quotel + +
+       |{" "} + + DNConstant + {" "} + v e =>{" "} + + + javascript_of_constant + + {" "} + v e{" "} + + t + {" "} + + i + {" "} + + eol + {" "} + + quotel + +
+       |{" "} + + DNFunc + {" "} + f => ( + + + javascript_function_of_nnrc_function + + {" "} + f{" "} + + + None + + {" "} + + eol + {" "} + + quotel + + ,"null", + + t + + )
+       |{" "} + + DNFuncTable + {" "} + ft => ( + + + javascript_class_of_nnrc_function_table + + {" "} + ft{" "} + + eol + {" "} + + quotel + + ,"null", + + t + + )
+       end.
+
+   Definition{" "} + + javascript_of_declarations + +
+              ( + sl :{" "} + + + list + + {" "} + + + nnrc_declaration + + + )
+              ( + t :{" "} + + nat + + )
+              ( + i :{" "} + + nat + + )
+              ( + eol :{" "} + + + string + + + )
+              ( + quotel :{" "} + + + string + + + )
+     :{" "} + + + ErgoCodeGen.javascript + + +
+     := let{" "} + proc_one +
+              ( + s: + + + nnrc_declaration + + + )
+              ( + acc: + + + ErgoCodeGen.javascript + + {" "} + *{" "} + + nat + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + *{" "} + + nat + {" "} + := +
+             + let '(s0,{" "} + t0) :={" "} + + acc + {" "} + in +
+             + let '(s1,{" "} + e1, t1) :={" "} + + + javascript_of_declaration + + {" "} + + s + {" "} + t0{" "} + + i + {" "} + + eol + {" "} + + quotel + {" "} + in +
+            ( + s0 ++ s1,
+              + t1)
+        in +
+         + let + {" "} + '(sn, tn) :={" "} + + + fold_right + + {" "} + + + proc_one + + {" "} + ("", + + t + + ){" "} + + sl + {" "} + in +
+        sn. +
+
+   Definition{" "} + + nnrc_module_to_javascript + +
+              ( + p: + + nnrc_module + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+     ( + + + preamble + + {" "} + + eol + + ) ++{" "} + + eol + +
+                    ++ + ( + + + javascript_of_declarations + + {" "} + + p + + .( + + + modulen_declarations + + + ) 0 0{" "} + + eol + {" "} + + quotel + + )
+                    ++ + ( + + + postamble + + {" "} + + eol + + ). +
+
+   Definition{" "} + + nnrc_module_to_javascript_top + +
+              ( + p: + + nnrc_module + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+      + + + nnrc_module_to_javascript + + {" "} + + p + {" "} + + + ErgoCodeGen.javascript_eol_newline + + {" "} + + + ErgoCodeGen.javascript_quotel_double + + + .
+
+ End{" "} + + + ErgoNNRCtoJavaScript + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.html b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.html deleted file mode 100644 index 92669821..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero - - - - - - -

Module ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero

-
-
-
Translates contract logic to calculus
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.ErgoNNRC.Lang.ErgoNNRC.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Translation.ErgoNNRCtoJavaScript.
-
-Section ErgoNNRCtoJavaScriptCicero.
-  Local Open Scope string_scope.
-
-  Definition accord_annotation
-             (clause_name:string)
-             (request_type:string)
-             (response_type:string)
-             (emit_type:string)
-             (state_type:string)
-             (eol:string)
-             (quotel:string) :=
-    "/**" ++ eol
-          ++ " * Execute the smart clause" ++ eol
-          ++ " * @param {Context} context - the Accord context" ++ eol
-          ++ " * @param {" ++ request_type ++ "} context.request - the incoming request" ++ eol
-          ++ " * @param {" ++ response_type ++ "} context.response - the response" ++ eol
-          ++ " * @param {" ++ emit_type ++ "} context.emit - the emitted events" ++ eol
-          ++ " * @param {" ++ state_type ++ "} context.state - the state" ++ eol
-          ++ (if string_dec clause_name clause_init_name then " * @AccordClauseLogicInit" ++ eol else "")
-          ++ " * @AccordClauseLogic" ++ eol
-          ++ " */" ++ eol.
-
-
Note: this adjusts the external interface to that currently expected in Cicero. Namely: -
    -
  • - This serialized/deserialized ErgoType objects to/from JSON -
  • -
  • - This applies the result from the functional call to the call as effects to the input context -
  • -
  • - This turns an error response into a JavaScript exception -
  • -
-
-  Definition wrapper_function
-             (fun_name:string)
-             (request_type:string)
-             (response_type:string)
-             (emit_type:string)
-             (state_type:string)
-             (contract_name:string)
-             (clause_name:string)
-             (eol:string)
-             (quotel:string) : string :=
-    let state_init :=
-        if string_dec clause_name clause_init_name
-        then
-          "{ '$class': 'org.accordproject.cicero.contract.AccordContractState', 'stateId' : 'org.accordproject.cicero.contract.AccordContractState#1' }"
-        else
-          "serializer.toJSON(context.state,{permitResourcesForRelationships:true})"
-    in
-    (accord_annotation
-       clause_name
-       request_type
-       response_type
-       emit_type
-       state_type
-       eol
-       quotel)
-      ++ "function " ++ fun_name ++ "(context) {" ++ eol
-      ++ " let pcontext = { 'request' : serializer.toJSON(context.request,{permitResourcesForRelationships:true}), 'state': " ++ state_init ++ ", 'contract': serializer.toJSON(context.contract,{permitResourcesForRelationships:true}), 'emit': context.emit, 'now': context.now};" ++ eol
-      ++ " //logger.info('ergo context: '+JSON.stringify(pcontext))" ++ eol
-      ++ " let result = new " ++ ErgoCodeGen.javascript_identifier_sanitizer contract_name ++ "()." ++ ErgoCodeGen.javascript_identifier_sanitizer clause_name ++ "(pcontext);" ++ eol
-      ++ " if (result.hasOwnProperty('left')) {" ++ eol
-      ++ " //logger.info('ergo result: '+JSON.stringify(result))" ++ eol
-      ++ " context.response = serializer.fromJSON(result.left.response, {validate: false, acceptResourcesForRelationships: true},{permitResourcesForRelationships:true});" ++ eol
-      ++ " context.state = serializer.fromJSON(result.left.state, {validate: false, acceptResourcesForRelationships: true});" ++ eol
-      ++ " let emitResult = [];" ++ eol
-      ++ " for (let i = 0; i < result.left.emit.length; i++) {" ++ eol
-      ++ " emitResult.push(serializer.fromJSON(result.left.emit[i], {validate: false, acceptResourcesForRelationships: true}));" ++ eol
-      ++ " }" ++ eol
-      ++ " context.emit = emitResult;" ++ eol
-      ++ " return context;" ++ eol
-      ++ " } else {" ++ eol
-      ++ " throw new Error(result.right.message);" ++ eol
-      ++ " }" ++ eol
-      ++ "}" ++ eol.
-
-  Definition apply_wrapper_function
-             (contract_name:string)
-             (contract_state_type:string)
-             (signature:string * string * string * string)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    let '(clause_name, request_type, response_type, emit_type) := signature in
-    let fun_name := ErgoCodeGen.javascript_identifier_sanitizer contract_name ++ "_" ++ ErgoCodeGen.javascript_identifier_sanitizer clause_name in
-    wrapper_function
-      fun_name request_type response_type emit_type contract_state_type contract_name clause_name eol quotel.
-  
-  Definition wrapper_functions
-             (contract_name:string)
-             (signatures:list (string * string * string * string) * string)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    String.concat eol
-                  (List.map (fun sig => apply_wrapper_function
-                                          contract_name
-                                          (snd signatures)
-                                          sig
-                                          eol
-                                          quotel) (fst signatures)).
-
-  Definition javascript_of_module_with_dispatch
-             (contract_name:string)
-             (signatures:list (string * string * string * string) * string)
-             (p:nnrc_module)
-             (eol:string)
-             (quotel:string) : ErgoCodeGen.javascript :=
-    (preamble eol) ++ eol
-                   ++ (wrapper_functions contract_name signatures eol quotel)
-                   ++ (javascript_of_declarations p.(modulen_declarations) 0 0 eol quotel)
-                   ++ (postamble eol).
-
-  Fixpoint filter_signatures
-           (namespace:string)
-           (sigs:list (string * laergo_type_signature))
-    : list (string * string * string * string) :=
-    match sigs with
-    | nil => nil
-    | (fname,sig) :: rest =>
-      if (string_dec fname clause_main_name)
-      then
-        filter_signatures namespace rest
-      else
-        let params := sig.(type_signature_params) in
-        let outtype := sig.(type_signature_output) in
-        let emitstype := sig.(type_signature_emits) in
-        match params with
-        | nil => filter_signatures namespace rest
-        | (_,reqtype)::nil =>
-          match reqtype, outtype, emitstype with
-          | ErgoTypeClassRef _ reqname, Some (ErgoTypeClassRef _ outname), Some (ErgoTypeClassRef _ emitsname) =>
-            (fname,reqname,outname,emitsname) :: (filter_signatures namespace rest)
-          | ErgoTypeClassRef _ reqname, Some (ErgoTypeClassRef _ outname), None =>
-            let emitsname := default_emits_absolute_name in
-            (fname,reqname,outname,emitsname) :: (filter_signatures namespace rest)
-          | _, _, _ =>
-            filter_signatures namespace rest
-          end
-        | _ :: _ => filter_signatures namespace rest
-        end
-    end.
-
-  Definition filter_signatures_with_state
-             (namespace:string)
-             (contract_state_type:option laergo_type)
-             (sigs:list (string * ergo_type_signature))
-    : list (string * string * string * string) * string :=
-    match contract_state_type with
-    | None => (filter_signatures namespace sigs, default_state_absolute_name)
-    | Some (ErgoTypeClassRef _ statename) =>
-      (filter_signatures namespace sigs, statename)
-    | _ =>
-      (nil, "")
-    end.
-
-  Definition ergoc_module_to_javascript_cicero
-             (contract_name:string)
-             (contract_state_type:option ergo_type)
-             (sigs: list (string * ergo_type_signature))
-             (p:nnrc_module) : ErgoCodeGen.javascript :=
-    javascript_of_module_with_dispatch
-      contract_name
-      (filter_signatures_with_state p.(modulen_namespace) contract_state_type sigs)
-      p
-      ErgoCodeGen.javascript_eol_newline
-      ErgoCodeGen.javascript_quotel_double.
-
-End ErgoNNRCtoJavaScriptCicero.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.jsx b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.jsx new file mode 100644 index 00000000..dfce76b9 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero.jsx @@ -0,0 +1,1735 @@ +
+ + Module ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero + + +

+ Module ErgoSpec.Translation.ErgoNNRCtoJavaScriptCicero +

+
+
+
Translates contract logic to calculus
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoNNRC.Lang.ErgoNNRC + + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoNNRCtoJavaScript + + + .
+
+ Section{" "} + + ErgoNNRCtoJavaScriptCicero + + .
+   Local{" "} + Open Scope{" "} + string_scope.
+
+   Definition{" "} + + accord_annotation + +
+              ( + clause_name: + + + string + + + )
+              ( + request_type: + + + string + + + )
+              ( + response_type: + + + string + + + )
+              ( + emit_type: + + + string + + + )
+              ( + state_type: + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) := +
+     "/**" ++{" "} + + eol + +
+           ++ " *{" "} + Execute the{" "} + smart clause" ++{" "} + + eol + +
+           ++ " * @ + param {"{"} + Context + {"}"} context - the{" "} + Accord context" ++{" "} + + eol + +
+           ++ " * @ + param {"{"}" ++{" "} + + + request_type + + {" "} + ++ "{"}"} context.request -{" "} + the incoming{" "} + request" ++{" "} + + eol + +
+           ++ " * @ + param {"{"}" ++{" "} + + + response_type + + {" "} + ++ "{"}"} context.response -{" "} + the response" ++{" "} + + eol + +
+           ++ " * @ + param {"{"}" ++{" "} + + + emit_type + + {" "} + ++ "{"}"} context.emit -{" "} + the emitted{" "} + events" ++{" "} + + eol + +
+           ++ " * @ + param {"{"}" ++{" "} + + + state_type + + {" "} + ++ "{"}"} context.state -{" "} + the state" ++{" "} + + eol + +
+           ++ ( + if{" "} + + + string_dec + + {" "} + + + clause_name + + {" "} + + + clause_init_name + + {" "} + then " * @ + AccordClauseLogicInit" ++{" "} + + eol + {" "} + else "") +
+           ++ " * @ + AccordClauseLogic" ++{" "} + + eol + +
+           ++ " */" ++{" "} + + eol + + .
+
+
+ Note: this adjusts the external interface to that currently expected in + Cicero. Namely: +
    +
  • This serialized/deserialized ErgoType objects to/from JSON
  • +
  • + This applies the result from the functional call to the call as + effects to the input context +
  • +
  • This turns an error response into a JavaScript exception
  • +
+
+   Definition{" "} + + wrapper_function + +
+              ( + fun_name: + + + string + + + )
+              ( + request_type: + + + string + + + )
+              ( + response_type: + + + string + + + )
+              ( + emit_type: + + + string + + + )
+              ( + state_type: + + + string + + + )
+              ( + contract_name: + + + string + + + )
+              ( + clause_name: + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + string + + {" "} + := +
+     let{" "} + state_init := +
+          + if{" "} + + + string_dec + + {" "} + + + clause_name + + {" "} + + + clause_init_name + + +
+          + then +
+           "{"{"} '$ + class': ' + + org.accordproject.cicero.contract.AccordContractState + + ', 'stateId' : ' + + org.accordproject.cicero.contract.AccordContractState + + #1' {"}"}"
+          + else +
+           " + serializer.toJSON( + context.state,{"{"} + permitResourcesForRelationships: + true + {"}"})" +
+     in +
+     ( + + + accord_annotation + + +
+         + + + clause_name + + +
+         + + + request_type + + +
+         + + + response_type + + +
+         + + + emit_type + + +
+         + + + state_type + + +
+         + + eol + +
+         + + + quotel + + + )
+       ++ " + function + {" "} + " ++{" "} + + + fun_name + + {" "} + ++ "(context) {"{"}" ++{" "} + + eol + +
+       ++ " + let + {" "} + pcontext = {"{"} ' + request' :{" "} + serializer.toJSON( + context.request,{"{"} + permitResourcesForRelationships: + true + {"}"}), 'state': " ++{" "} + + + state_init + + {" "} + ++ ", 'contract':{" "} + serializer.toJSON( + context.contract,{"{"} + permitResourcesForRelationships: + true + {"}"}), 'emit':{" "} + context.emit, 'now':{" "} + context.now + {"}"};" ++{" "} + + eol + +
+       ++ " // + logger.info('ergo{" "} + context: '+ + JSON.stringify( + pcontext))" ++{" "} + + eol + +
+       ++ " + let + {" "} + result = new " ++{" "} + + + ErgoCodeGen.javascript_identifier_sanitizer + + {" "} + + + contract_name + + {" "} + ++ "()." ++{" "} + + + ErgoCodeGen.javascript_identifier_sanitizer + + {" "} + + + clause_name + + {" "} + ++ "(pcontext);" ++{" "} + + eol + +
+       ++ " if ( + result.hasOwnProperty(' + left')) {"{"}" ++{" "} + + eol + +
+       ++ " // + logger.info('ergo{" "} + result: '+ + JSON.stringify( + result))" ++{" "} + + eol + +
+       ++ "{" "} + context.response ={" "} + serializer.fromJSON( + result.left.response, {"{"} + validate: false,{" "} + acceptResourcesForRelationships:{" "} + true + {"}"},{"{"} + permitResourcesForRelationships: + true + {"}"});" ++{" "} + + eol + +
+       ++ "{" "} + context.state ={" "} + serializer.fromJSON( + result.left.state, {"{"} + validate: false,{" "} + acceptResourcesForRelationships:{" "} + true + {"}"});" ++{" "} + + eol + +
+       ++ " + let + {" "} + emitResult = [];" ++{" "} + + eol + +
+       ++ " for ( + let i = 0;{" "} + i <{" "} + result.left.emit.length;{" "} + i++) {"{"}" ++{" "} + + eol + +
+       ++ "{" "} + emitResult.push( + serializer.fromJSON( + result.left.emit[i],{" "} + {"{"} + validate: false,{" "} + acceptResourcesForRelationships:{" "} + true + {"}"}));" ++{" "} + + eol + +
+       ++ " {"}"}" ++{" "} + + eol + +
+       ++ "{" "} + context.emit ={" "} + emitResult;" ++{" "} + + eol + +
+       ++ " + return + {" "} + context;" ++{" "} + + eol + +
+       ++ " {"}"}{" "} + else {"{"}" ++{" "} + + eol + +
+       ++ " + throw + {" "} + new Error( + result.right.message);" ++{" "} + + eol + +
+       ++ " {"}"}" ++{" "} + + eol + +
+       ++ "{"}"}" ++{" "} + + eol + + .
+
+   Definition{" "} + + apply_wrapper_function + +
+              ( + contract_name: + + + string + + + )
+              ( + contract_state_type: + + + string + + + )
+              ( + signature: + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+     let '( + clause_name,{" "} + request_type,{" "} + response_type,{" "} + emit_type) :={" "} + + + signature + + {" "} + in +
+     let{" "} + fun_name :={" "} + + + ErgoCodeGen.javascript_identifier_sanitizer + + {" "} + + + contract_name + + {" "} + ++ "_" ++{" "} + + + ErgoCodeGen.javascript_identifier_sanitizer + + {" "} + clause_name in +
+      + + + wrapper_function + + +
+        + + + fun_name + + {" "} + request_type{" "} + response_type{" "} + emit_type{" "} + + + contract_state_type + + {" "} + + + contract_name + + {" "} + clause_name{" "} + + eol + {" "} + + + quotel + + + .
+    +
+   Definition{" "} + + wrapper_functions + +
+              ( + contract_name: + + + string + + + )
+              ( + signatures: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + + ) *{" "} + + + string + + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+      + + + String.concat + + {" "} + + eol + +
+                   ( + + List.map + {" "} + (fun sig =>{" "} + + + apply_wrapper_function + + +
+                                            + + + contract_name + + +
+                                           ( + + snd + {" "} + + + signatures + + + )
+                                            + + sig + +
+                                            + + eol + +
+                                            + + + quotel + + + ) ( + + fst + {" "} + + + signatures + + + )). +
+
+   Definition{" "} + + + javascript_of_module_with_dispatch + + +
+              ( + contract_name: + + + string + + + )
+              ( + signatures: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + + ) *{" "} + + + string + + + )
+              ( + p: + + nnrc_module + + )
+              ( + eol: + + + string + + + )
+              ( + quotel: + + + string + + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+     ( + + + preamble + + {" "} + + eol + + ) ++{" "} + + eol + +
+                    ++ + ( + + + wrapper_functions + + {" "} + + + contract_name + + {" "} + + + signatures + + {" "} + + eol + {" "} + + + quotel + + + )
+                    ++ + ( + + + javascript_of_declarations + + {" "} + + p + + .( + + + modulen_declarations + + + ) 0 0{" "} + + eol + {" "} + + + quotel + + + )
+                    ++ + ( + + + postamble + + {" "} + + eol + + ). +
+
+   Fixpoint{" "} + + filter_signatures + +
+            ( + namespace: + + + string + + + )
+            ( + sigs: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + laergo_type_signature + + + )) +
+     :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + + ) := +
+     match{" "} + + + sigs + + {" "} + with +
+     |{" "} + + nil + {" "} + =>{" "} + + nil + +
+     | (fname, + sig) :: rest => +
+       if ( + + + string_dec + + {" "} + fname{" "} + + + clause_main_name + + + )
+       then +
+          + + + filter_signatures + + {" "} + + + namespace + + {" "} + rest +
+       else +
+          + let params :={" "} + sig.( + + + type_signature_params + + + ) in +
+          + let outtype :={" "} + sig.( + + + type_signature_output + + + ) in +
+          + let emitstype :={" "} + sig.( + + + type_signature_emits + + + ) in +
+          + match{" "} + + + params + + {" "} + with +
+         |{" "} + + nil + {" "} + =>{" "} + + + filter_signatures + + {" "} + + + namespace + + {" "} + rest +
+         | ( + _,reqtype):: + + nil + {" "} + => +
+            + match reqtype,{" "} + + + outtype + + + ,{" "} + + + emitstype + + {" "} + with +
+           |{" "} + + + ErgoTypeClassRef + + {" "} + _ reqname,{" "} + + + Some + + {" "} + ( + + + ErgoTypeClassRef + + {" "} + _ outname),{" "} + + + Some + + {" "} + ( + + + ErgoTypeClassRef + + {" "} + _ emitsname) => +
+             ( + fname,reqname, + outname,emitsname) + :: ( + + + filter_signatures + + {" "} + + + namespace + + {" "} + rest)
+           |{" "} + + + ErgoTypeClassRef + + {" "} + _ reqname,{" "} + + + Some + + {" "} + ( + + + ErgoTypeClassRef + + {" "} + _ outname),{" "} + + + None + + {" "} + => +
+              + let emitsname :={" "} + + + default_emits_absolute_name + + {" "} + in +
+             ( + fname,reqname, + outname, + + + emitsname + + + ) :: ( + + + filter_signatures + + {" "} + + + namespace + + {" "} + rest)
+           |{" "} + _, _,{" "} + _ => +
+              + + + filter_signatures + + {" "} + + + namespace + + {" "} + rest +
+            + end +
+         |{" "} + _ :: _ =>{" "} + + + filter_signatures + + {" "} + + + namespace + + {" "} + rest +
+          + end +
+     end.
+
+   Definition{" "} + + filter_signatures_with_state + +
+              ( + namespace: + + + string + + + )
+              ( + contract_state_type: + + + option + + {" "} + + laergo_type + + )
+              ( + sigs: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + ergo_type_signature + + + )) +
+     :{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + {" "} + *{" "} + + + string + + + ) *{" "} + + + string + + {" "} + := +
+     match{" "} + + + contract_state_type + + {" "} + with +
+     |{" "} + + + None + + {" "} + => ( + + + filter_signatures + + {" "} + + + namespace + + {" "} + + + sigs + + + ,{" "} + + + default_state_absolute_name + + + )
+     |{" "} + + + Some + + {" "} + ( + + + ErgoTypeClassRef + + {" "} + _ statename) => +
+       ( + + + filter_signatures + + {" "} + + + namespace + + {" "} + + + sigs + + + , statename)
+     | _ => +
+       ( + + nil + + , "") +
+     end.
+
+   Definition{" "} + + + ergoc_module_to_javascript_cicero + + +
+              ( + contract_name: + + + string + + + )
+              ( + contract_state_type: + + + option + + {" "} + + ergo_type + + )
+              ( + sigs:{" "} + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + ergo_type_signature + + + )) +
+              ( + p: + + nnrc_module + + ) :{" "} + + + ErgoCodeGen.javascript + + {" "} + := +
+      + + + javascript_of_module_with_dispatch + + +
+        + + + contract_name + + +
+       ( + + + filter_signatures_with_state + + {" "} + + p + + .( + + + modulen_namespace + + + ){" "} + + + contract_state_type + + {" "} + + + sigs + + + )
+        + + p + +
+        + + + ErgoCodeGen.javascript_eol_newline + + +
+        + + + ErgoCodeGen.javascript_quotel_double + + + .
+
+ End{" "} + + + ErgoNNRCtoJavaScriptCicero + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.html b/docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.html deleted file mode 100644 index 69be25fd..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.html +++ /dev/null @@ -1,891 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.ErgoNameResolve - - - - - - -

Module ErgoSpec.Translation.ErgoNameResolve

-
-
-
Ergo is a language for expressing contract logic.
-
-

Abstract Syntax

-
-Require Import String.
-Require Import List.
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.NamespaceContext.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Utils.Ast.
-Require Import ErgoSpec.Common.CTO.CTO.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.Translation.CTOtoErgo.
-
-Section ErgoNameResolution.
-
-  Fixpoint namespace_ctxt_of_ergo_decls
-           (ctxt:namespace_ctxt)
-           (ns:namespace_name)
-           (dls:list lrergo_declaration) : (namespace_name * namespace_ctxt) :=
-    match dls with
-    | nil => (ns, ctxt)
-    | DNamespace _ ns' :: rest =>
-      (ns', ctxt)
-    | DImport _ _ :: rest =>
-      namespace_ctxt_of_ergo_decls ctxt ns rest
-    | DType tname td :: rest =>
-      let ln := td.(type_declaration_name) in
-      let an := absolute_name_of_local_name ns ln in
-      let ectxt := ctxt.(namespace_ctxt_enums) in
-      let ctxt :=
-          if type_declaration_is_enum td.(type_declaration_type)
-          then update_namespace_context_enums ctxt (an::ectxt)
-          else ctxt
-      in
-      let (ns, ctxt) := namespace_ctxt_of_ergo_decls ctxt ns rest in
-      (ns, add_type_to_namespace_ctxt ctxt ns ln an)
-    | DStmt _ _ :: rest =>
-      let ctxt := namespace_ctxt_of_ergo_decls ctxt ns rest in
-      ctxt
-    | DConstant _ ln ta cd :: rest =>
-      let an := absolute_name_of_local_name ns ln in
-      let (ns, ctxt) := namespace_ctxt_of_ergo_decls ctxt ns rest in
-      (ns, add_constant_to_namespace_ctxt ctxt ns ln an)
-    | DFunc _ ln fd :: rest =>
-      let an := absolute_name_of_local_name ns ln in
-      let (ns, ctxt) := namespace_ctxt_of_ergo_decls ctxt ns rest in
-      (ns, add_function_to_namespace_ctxt ctxt ns ln an)
-    | DContract _ ln _ :: rest =>
-      let an := absolute_name_of_local_name ns ln in
-      let (ns, ctxt) := namespace_ctxt_of_ergo_decls ctxt ns rest in
-      (ns, add_contract_to_namespace_ctxt ctxt ns ln an)
-    | DSetContract _ ln _ :: rest =>
-      namespace_ctxt_of_ergo_decls ctxt ns rest
-    end.
-
-  Definition namespace_ctxt_of_ergo_module (ctxt:namespace_ctxt) (m:lrergo_module) : namespace_ctxt :=
-    snd (namespace_ctxt_of_ergo_decls ctxt m.(module_namespace) m.(module_declarations)).
-
-  Definition namespace_ctxt_of_ergo_modules (ctxt:namespace_ctxt) (ml:list lrergo_module) : namespace_ctxt :=
-    fold_left namespace_ctxt_of_ergo_module ml ctxt.
-
-  Definition namespace_ctxt_of_cto_packages (ctxt:namespace_ctxt) (ctos:list cto_package) : namespace_ctxt :=
-    let mls := map cto_package_to_ergo_module ctos in
-    fold_left namespace_ctxt_of_ergo_module mls ctxt.
-
-  Section ResolveImports.
-
This applies imports
-    Definition lookup_one_import
-               (ctxt:namespace_ctxt)
-               (ic:limport_decl) : eresult namespace_table :=
-      match ic with
-      | ImportAll prov ns =>
-        match lookup string_dec ctxt.(namespace_ctxt_modules) ns with
-        | Some tbl => esuccess tbl
-        | None => import_not_found_error prov ns
-        end
-      | ImportSelf prov ns =>
-        match lookup string_dec ctxt.(namespace_ctxt_modules) ns with
-        | Some tbl => esuccess tbl
-        | None => esuccess empty_namespace_table
-        end
-      | ImportName prov ns ln =>
-        match lookup string_dec ctxt.(namespace_ctxt_modules) ns with
-        | Some tbl =>
-          match lookup string_dec tbl.(namespace_table_types) ln with
-          | None => import_name_not_found_error prov ns ln
-          | Some an => esuccess (one_type_to_namespace_table ln an)
-          end
-        | None => import_not_found_error prov ns
-        end
-      end.
-
-    Definition resolve_one_import
-               (ctxt:namespace_ctxt)
-               (ic:limport_decl) : eresult namespace_ctxt :=
-      elift (fun tbl =>
-               mkNamespaceCtxt
-                 ctxt.(namespace_ctxt_modules)
-                 ctxt.(namespace_ctxt_namespace)
-                 ctxt.(namespace_ctxt_current_module)
-                 (namespace_table_app ctxt.(namespace_ctxt_current_in_scope) tbl)
-                 ctxt.(namespace_ctxt_enums)
-                 ctxt.(namespace_ctxt_abstract))
-            (lookup_one_import ctxt ic).
-
-    Definition is_builtin_import (ns:namespace_name) : bool :=
-      if string_dec ns hyperledger_namespace
-      then true
-      else if string_dec ns stdlib_namespace
-           then true
-           else false.
-
-  End ResolveImports.
-
-  Section NameResolution.
-
Name resolution for type declarations
-    Fixpoint resolve_ergo_type
-             (ectxt: enum_ctxt)
-             (tbl:namespace_table)
-             (t:lrergo_type) : eresult laergo_type :=
-      match t with
-      | ErgoTypeAny prov => esuccess (ErgoTypeAny prov)
-      | ErgoTypeNothing prov => esuccess (ErgoTypeNothing prov)
-      | ErgoTypeUnit prov => esuccess (ErgoTypeUnit prov)
-      | ErgoTypeBoolean prov => esuccess (ErgoTypeBoolean prov)
-      | ErgoTypeString prov => esuccess (ErgoTypeString prov)
-      | ErgoTypeDouble prov => esuccess (ErgoTypeDouble prov)
-      | ErgoTypeLong prov => esuccess (ErgoTypeLong prov)
-      | ErgoTypeInteger prov => esuccess (ErgoTypeInteger prov)
-      | ErgoTypeDateTime prov => esuccess (ErgoTypeDateTime prov)
-      | ErgoTypeClassRef prov rn =>
-        let an := resolve_type_name prov tbl rn in
-        elift (fun an =>
-                 if in_dec string_dec an ectxt
-                 then ErgoTypeString prov
-                 else ErgoTypeClassRef prov an)
-              an
-      | ErgoTypeOption prov t =>
-        elift (ErgoTypeOption prov) (resolve_ergo_type ectxt tbl t)
-      | ErgoTypeRecord prov r =>
-        let initial_map := map (fun xy => (fst xy, resolve_ergo_type ectxt tbl (snd xy))) r in
-        let lifted_map := emaplift (fun xy => elift (fun t => (fst xy, t)) (snd xy)) initial_map in
-        elift (ErgoTypeRecord prov) lifted_map
-      | ErgoTypeArray prov t =>
-        elift (ErgoTypeArray prov) (resolve_ergo_type ectxt tbl t)
-      | ErgoTypeSum prov t1 t2 =>
-        elift2 (ErgoTypeSum prov)
-               (resolve_ergo_type ectxt tbl t1)
-               (resolve_ergo_type ectxt tbl t2)
-      end.
-
-    Definition resolve_ergo_type_struct
-               (ectxt: enum_ctxt)
-               (tbl:namespace_table)
-               (t:list (string * lrergo_type)) : eresult (list (string * laergo_type)) :=
-      emaplift (fun xy =>
-                  elift (fun t => (fst xy, t)) (resolve_ergo_type ectxt tbl (snd xy))) t.
-
-    Definition resolve_type_annotation
-               (prov:provenance)
-               (tbl:namespace_table)
-               (en:option relative_name) : eresult (option absolute_name) :=
-      match en with
-      | None => esuccess None
-      | Some rn => elift Some (resolve_type_name prov tbl rn)
-      end.
-
-    Definition resolve_extends
-               (prov:provenance)
-               (tbl:namespace_table)
-               (en:rextends) : eresult aextends :=
-      resolve_type_annotation prov tbl en.
-
-    Definition resolve_ergo_type_signature
-               (ectxt: enum_ctxt)
-               (tbl:namespace_table)
-               (sig:lrergo_type_signature) : eresult laergo_type_signature :=
-      let params_types := resolve_ergo_type_struct ectxt tbl (sig.(type_signature_params)) in
-      let output_type : eresult (option laergo_type) :=
-          match sig.(type_signature_output) with
-          | None => esuccess None
-          | Some out_ty =>
-            elift Some (resolve_ergo_type ectxt tbl out_ty)
-          end
-      in
-      let emits_type : eresult (option laergo_type) :=
-          match sig.(type_signature_emits) with
-          | None => esuccess None
-          | Some emits_ty =>
-            elift Some (resolve_ergo_type ectxt tbl emits_ty)
-          end
-      in
-      elift3 (mkErgoTypeSignature
-                sig.(type_signature_annot))
-             params_types
-             output_type
-             emits_type.
-
-    Definition resolve_ergo_type_clauses
-               (ectxt: enum_ctxt)
-               (tbl:namespace_table)
-               (cls:list (string * lrergo_type_signature)) : eresult (list (string * laergo_type_signature)) :=
-      emaplift (fun xy => elift (fun r => (fst xy, r))
-                                (resolve_ergo_type_signature ectxt tbl (snd xy))) cls.
-
-    Definition resolve_ergo_type_declaration_desc
-               (prov:provenance)
-               (ectxt: enum_ctxt)
-               (tbl:namespace_table)
-               (d:lrergo_type_declaration_desc)
-      : eresult laergo_type_declaration_desc :=
-      match d with
-      | ErgoTypeEnum l => esuccess (ErgoTypeEnum l)
-      | ErgoTypeTransaction isabs extends_name ergo_type_struct =>
-        elift2 (ErgoTypeTransaction isabs)
-               (resolve_extends prov tbl extends_name)
-               (resolve_ergo_type_struct ectxt tbl ergo_type_struct)
-      | ErgoTypeConcept isabs extends_name ergo_type_struct =>
-        elift2 (ErgoTypeConcept isabs)
-               (resolve_extends prov tbl extends_name)
-               (resolve_ergo_type_struct ectxt tbl ergo_type_struct)
-      | ErgoTypeEvent isabs extends_name ergo_type_struct =>
-        elift2 (ErgoTypeEvent isabs)
-               (resolve_extends prov tbl extends_name)
-               (resolve_ergo_type_struct ectxt tbl ergo_type_struct)
-      | ErgoTypeAsset isabs extends_name ergo_type_struct =>
-        elift2 (ErgoTypeAsset isabs)
-               (resolve_extends prov tbl extends_name)
-               (resolve_ergo_type_struct ectxt tbl ergo_type_struct)
-      | ErgoTypeParticipant isabs extends_name ergo_type_struct =>
-        elift2 (ErgoTypeParticipant isabs)
-               (resolve_extends prov tbl extends_name)
-               (resolve_ergo_type_struct ectxt tbl ergo_type_struct)
-      | ErgoTypeGlobal ergo_type =>
-        elift ErgoTypeGlobal (resolve_ergo_type ectxt tbl ergo_type)
-      | ErgoTypeFunction ergo_type_signature =>
-        elift ErgoTypeFunction
-              (resolve_ergo_type_signature ectxt tbl ergo_type_signature)
-      | ErgoTypeContract template_type state_type clauses_sigs =>
-        elift3 ErgoTypeContract
-               (resolve_ergo_type ectxt tbl template_type)
-               (resolve_ergo_type ectxt tbl state_type)
-               (resolve_ergo_type_clauses ectxt tbl clauses_sigs)
-      end.

-    Definition resolve_ergo_type_declaration
-               (module_ns:namespace_name)
-               (tbl:namespace_table)
-               (decl: enum_ctxt * abstract_ctxt * lrergo_type_declaration)
-      : eresult (enum_ctxt * abstract_ctxt * laergo_type_declaration) :=
-      let '(ectxt,actxt,decl) := decl in
-      let name := absolute_name_of_local_name module_ns decl.(type_declaration_name) in
-      let ectxt :=
-          if type_declaration_is_enum decl.(type_declaration_type)
-          then name :: ectxt
-          else ectxt
-      in
-      let actxt :=
-          if type_declaration_is_abstract decl.(type_declaration_type)
-          then name :: actxt
-          else actxt
-      in
-      let edecl_desc :=
-          resolve_ergo_type_declaration_desc
-            decl.(type_declaration_annot) ectxt tbl decl.(type_declaration_type)
-      in
-      elift (fun k => (ectxt, actxt, mkErgoTypeDeclaration decl.(type_declaration_annot) name k)) edecl_desc.
-
-    Definition resolve_ergo_pattern
-               (tbl:namespace_table)
-               (p:lrergo_pattern) : eresult (laergo_pattern) :=
-      match p with
-      | CaseData prov d => esuccess (CaseData prov d)
-      | CaseWildcard prov ta => elift (CaseWildcard prov) (resolve_type_annotation prov tbl ta)
-      | CaseLet prov v ta => elift (CaseLet prov v) (resolve_type_annotation prov tbl ta)
-      | CaseLetOption prov v ta => elift (CaseLetOption prov v) (resolve_type_annotation prov tbl ta)
-      end.
-    
-
Name resolution for expressions
-    Fixpoint resolve_ergo_expr
-             (ectxt: enum_ctxt)
-             (tbl:namespace_table)
-             (e:lrergo_expr) : eresult laergo_expr :=
-      match e with
-      | EThisContract prov => esuccess (EThisContract prov)
-      | EThisClause prov => esuccess (EThisClause prov)
-      | EThisState prov => esuccess (EThisState prov)
-      | EVar prov v => esuccess (EVar prov v)
-      | EConst prov d => esuccess (EConst prov d)
-      | ENone prov => esuccess (ENone prov)
-      | ESome prov e =>
-        elift (ESome prov)
-              (resolve_ergo_expr ectxt tbl e)
-      | EArray prov el =>
-        let init_el := esuccess nil in
-        let proc_one (e:lrergo_expr) (acc:eresult (list laergo_expr)) : eresult (list laergo_expr) :=
-            elift2
-              cons
-              (resolve_ergo_expr ectxt tbl e)
-              acc
-        in
-        elift (EArray prov) (fold_right proc_one init_el el)
-      | EUnaryOp prov u e =>
-        elift (EUnaryOp prov u)
-              (resolve_ergo_expr ectxt tbl e)
-      | EBinaryOp prov b e1 e2 =>
-        elift2 (EBinaryOp prov b)
-               (resolve_ergo_expr ectxt tbl e1)
-               (resolve_ergo_expr ectxt tbl e2)
-      | EIf prov e1 e2 e3 =>
-        elift3 (EIf prov)
-               (resolve_ergo_expr ectxt tbl e1)
-               (resolve_ergo_expr ectxt tbl e2)
-               (resolve_ergo_expr ectxt tbl e3)
-      | ELet prov v ta e1 e2 =>
-        let rta :=
-            match ta with
-            | None => esuccess None
-            | Some ta => elift Some (resolve_ergo_type ectxt tbl ta)
-            end
-        in
-        elift3 (ELet prov v)
-               rta
-               (resolve_ergo_expr ectxt tbl e1)
-               (resolve_ergo_expr ectxt tbl e2)
-      | ENew prov cr el =>
-        let rcr := resolve_type_name prov tbl cr in
-        let init_rec := esuccess nil in
-        let proc_one (att:string * lrergo_expr) (acc:eresult (list (string * laergo_expr))) :=
-            let attname := fst att in
-            let e := resolve_ergo_expr ectxt tbl (snd att) in
-            elift2 (fun e => fun acc => (attname,e)::acc) e acc
-        in
-        elift2 (ENew prov) rcr (fold_right proc_one init_rec el)
-      | ERecord prov el =>
-        let init_rec := esuccess nil in
-        let proc_one (att:string * lrergo_expr) (acc:eresult (list (string * laergo_expr))) :=
-            let attname := fst att in
-            let e := resolve_ergo_expr ectxt tbl (snd att) in
-            elift2 (fun e => fun acc => (attname,e)::acc) e acc
-        in
-        elift (ERecord prov) (fold_right proc_one init_rec el)
-      | ECallFun prov fname el =>
-        let rfname := resolve_function_name prov tbl (None,fname) in
-        let init_el := esuccess nil in
-        let proc_one (e:lrergo_expr) (acc:eresult (list laergo_expr)) : eresult (list laergo_expr) :=
-            elift2
-              cons
-              (resolve_ergo_expr ectxt tbl e)
-              acc
-        in
-        elift2 (ECallFun prov) rfname (fold_right proc_one init_el el)
-      | ECallFunInGroup prov gname fname el =>
-        let rgname := resolve_contract_name prov tbl gname in
-        let init_el := esuccess nil in
-        let proc_one (e:lrergo_expr) (acc:eresult (list laergo_expr)) : eresult (list laergo_expr) :=
-            elift2
-              cons
-              (resolve_ergo_expr ectxt tbl e)
-              acc
-        in
-        elift3 (ECallFunInGroup prov) rgname (esuccess fname) (fold_right proc_one init_el el)
-      | EMatch prov e0 ecases edefault =>
-        let ec0 := resolve_ergo_expr ectxt tbl e0 in
-        let eccases :=
-            let proc_one acc (ecase : lrergo_pattern * lrergo_expr) :=
-                let (pcase, pe) := ecase in
-                let apcase := resolve_ergo_pattern tbl pcase in
-                eolift (fun apcase =>
-                          eolift
-                            (fun acc =>
-                               elift (fun x => (apcase, x)::acc)
-                                     (resolve_ergo_expr ectxt tbl pe)) acc)
-                       apcase
-            in
-            fold_left proc_one ecases (esuccess nil)
-        in
-        let ecdefault := resolve_ergo_expr ectxt tbl edefault in
-        eolift
-          (fun ec0 : laergo_expr =>
-             eolift
-               (fun eccases : list (laergo_pattern * laergo_expr) =>
-                  elift
-                    (fun ecdefault : laergo_expr =>
-                    EMatch prov ec0 eccases ecdefault)
-                    ecdefault) eccases) ec0
-      | EForeach prov foreachs econd e2 =>
-        let re2 := resolve_ergo_expr ectxt tbl e2 in
-        let recond :=
-            match econd with
-            | None => esuccess None
-            | Some econd => elift Some (resolve_ergo_expr ectxt tbl econd)
-            end
-        in
-        let init_e := esuccess nil in
-        let proc_one
-              (foreach:string * lrergo_expr)
-              (acc:eresult (list (string * laergo_expr)))
-            : eresult (list (string * laergo_expr)) :=
-            let v := fst foreach in
-            let e := resolve_ergo_expr ectxt tbl (snd foreach) in
-            elift2 (fun e => fun acc => (v,e)::acc)
-                 e
-                 acc
-        in
-        elift3 (EForeach prov)
-               (fold_right proc_one init_e foreachs)
-               recond
-               re2
-      end.
-
-
Name resolution for statements
-    Fixpoint resolve_ergo_stmt
-             (ectxt: enum_ctxt)
-             (tbl:namespace_table)
-             (e:lrergo_stmt) : eresult laergo_stmt :=
-      match e with
-      | SReturn prov e => elift (SReturn prov) (resolve_ergo_expr ectxt tbl e)
-      | SFunReturn prov e => elift (SFunReturn prov) (resolve_ergo_expr ectxt tbl e)
-      | SThrow prov e => elift (SThrow prov) (resolve_ergo_expr ectxt tbl e)
-      | SCallClause prov e0 fname el =>
-        let init_el := esuccess nil in
-        let proc_one (e:lrergo_expr) (acc:eresult (list laergo_expr)) : eresult (list laergo_expr) :=
-            elift2
-              cons
-              (resolve_ergo_expr ectxt tbl e)
-              acc
-        in
-        elift3 (SCallClause prov)
-               (resolve_ergo_expr ectxt tbl e0)
-               (esuccess fname)
-               (fold_right proc_one init_el el)
-      | SSetState prov e1 s2 =>
-        elift2 (SSetState prov)
-               (resolve_ergo_expr ectxt tbl e1)
-               (resolve_ergo_stmt ectxt tbl s2)
-      | SEmit prov e1 s2 =>
-        elift2 (SEmit prov)
-               (resolve_ergo_expr ectxt tbl e1)
-               (resolve_ergo_stmt ectxt tbl s2)
-      | SLet prov v ta e1 s2 =>
-        let rta :=
-            match ta with
-            | None => esuccess None
-            | Some ta => elift Some (resolve_ergo_type ectxt tbl ta)
-            end
-        in
-        elift3 (SLet prov v)
-               rta
-               (resolve_ergo_expr ectxt tbl e1)
-               (resolve_ergo_stmt ectxt tbl s2)
-      | SIf prov e1 s2 s3 =>
-        elift3 (SIf prov)
-               (resolve_ergo_expr ectxt tbl e1)
-               (resolve_ergo_stmt ectxt tbl s2)
-               (resolve_ergo_stmt ectxt tbl s3)
-      | SEnforce prov e1 os2 s3 =>
-        let rs2 :=
-            match os2 with
-            | None => esuccess None
-            | Some s2 => elift Some (resolve_ergo_stmt ectxt tbl s2)
-            end
-        in
-        elift3 (SEnforce prov)
-               (resolve_ergo_expr ectxt tbl e1)
-               rs2
-               (resolve_ergo_stmt ectxt tbl s3)
-      | SMatch prov e0 scases sdefault =>
-        let ec0 := resolve_ergo_expr ectxt tbl e0 in
-        let sccases :=
-            let proc_one acc (scase : lrergo_pattern * lrergo_stmt) :=
-                let (pcase, pe) := scase in
-                let apcase := resolve_ergo_pattern tbl pcase in
-                eolift (fun apcase =>
-                          eolift
-                            (fun acc =>
-                               elift (fun x => (apcase, x)::acc)
-                                     (resolve_ergo_stmt ectxt tbl pe)) acc)
-                       apcase
-            in
-            fold_left proc_one scases (esuccess nil)
-        in
-        let scdefault := resolve_ergo_stmt ectxt tbl sdefault in
-        eolift
-          (fun ec0 : laergo_expr =>
-             eolift
-               (fun sccases : list (laergo_pattern * laergo_stmt) =>
-                  elift
-                    (fun scdefault : laergo_stmt =>
-                    SMatch prov ec0 sccases scdefault)
-                    scdefault) sccases) ec0
-      end.
-
-
Name resolution for lambdas
-
-    Definition resolve_ergo_function
-               (module_ns:namespace_name)
-               (ectxt: enum_ctxt)
-               (tbl:namespace_table)
-               (f:lrergo_function) : eresult laergo_function :=
-      let prov := f.(function_annot) in
-      let rbody :=
-          match f.(function_body) with
-          | None => esuccess None
-          | Some body => elift Some (resolve_ergo_expr ectxt tbl body)
-          end
-      in
-      elift2 (mkFunc prov)
-             (resolve_ergo_type_signature ectxt tbl f.(function_sig))
-             rbody.
-    
-    Definition resolve_ergo_clause
-               (module_ns:namespace_name)
-               (ectxt: enum_ctxt)
-               (tbl:namespace_table)
-               (c:ergo_clause) : eresult laergo_clause :=
-      let prov := c.(clause_annot) in
-      let rcname := c.(clause_name) in
-      let rbody :=
-          match c.(clause_body) with
-          | None => esuccess None
-          | Some body => elift Some (resolve_ergo_stmt ectxt tbl body)
-          end
-      in
-      elift2 (mkClause prov rcname)
-             (resolve_ergo_type_signature ectxt tbl c.(clause_sig))
-             rbody.
-
-    Definition resolve_ergo_clauses
-               (module_ns:namespace_name)
-               (ectxt: enum_ctxt)
-               (tbl:namespace_table)
-               (cl:list ergo_clause) : eresult (list laergo_clause) :=
-      emaplift (resolve_ergo_clause module_ns ectxt tbl) cl.
-
-    Definition resolve_ergo_contract
-               (module_ns:namespace_name)
-               (ectxt: enum_ctxt)
-               (tbl:namespace_table)
-               (c:lrergo_contract) : eresult laergo_contract :=
-      let prov := c.(contract_annot) in
-      let rtemplate := resolve_ergo_type ectxt tbl c.(contract_template) in
-      let rstate :=
-          match c.(contract_state) with
-          | None => esuccess None
-          | Some state => elift Some (resolve_ergo_type ectxt tbl state)
-          end
-      in
-      elift3 (mkContract prov)
-             rtemplate
-             rstate
-             (resolve_ergo_clauses module_ns ectxt tbl c.(contract_clauses)).
-
-    Definition resolve_ergo_declaration
-               (ctxt:namespace_ctxt)
-               (d:lrergo_declaration)
-      : eresult (laergo_declaration * namespace_ctxt) :=
-      let module_ns : namespace_name := ctxt.(namespace_ctxt_namespace) in
-      let ectxt := ctxt.(namespace_ctxt_enums) in
-      let actxt := ctxt.(namespace_ctxt_abstract) in
-      let tbl : namespace_table := ctxt.(namespace_ctxt_current_in_scope) in
-      match d with
-      | DNamespace prov ns =>
-        esuccess (DNamespace prov ns, local_namespace_scope ctxt ns)
-      | DImport prov id =>
-        elift (fun x => (DImport prov id, x)) (resolve_one_import ctxt id)
-      | DType prov td =>
-        let ln := td.(type_declaration_name) in
-        let an := absolute_name_of_local_name module_ns ln in
-        let ctxt := add_type_to_namespace_ctxt_current ctxt ln an in
-        elift (fun xy : enum_ctxt * abstract_ctxt * laergo_type_declaration =>
-                 let '(ectxt,actxt,x) := xy in
-                 let ctxt := update_namespace_context_enums ctxt ectxt in
-                 let ctxt := update_namespace_context_abstract ctxt actxt in
-                 (DType prov x, ctxt))
-              (resolve_ergo_type_declaration module_ns tbl (ectxt, actxt, td))
-      | DStmt prov st =>
-        elift (fun x => (DStmt prov x, ctxt)) (resolve_ergo_stmt ectxt tbl st)
-      | DConstant prov ln ta e =>
-        let an := absolute_name_of_local_name module_ns ln in
-        let rta :=
-            match ta with
-            | None => esuccess None
-            | Some ta => elift Some (resolve_ergo_type ectxt tbl ta)
-            end
-        in
-        let ctxt := add_constant_to_namespace_ctxt_current ctxt ln an in
-        elift2 (fun ta x => (DConstant prov ln ta x, ctxt))
-               rta
-               (resolve_ergo_expr ectxt tbl e)
-      | DFunc prov ln fd =>
-        let an := absolute_name_of_local_name module_ns ln in
-        let ctxt := add_function_to_namespace_ctxt_current ctxt ln an in
-        elift (fun x => (DFunc prov an x, ctxt)) (resolve_ergo_function module_ns ectxt tbl fd)
-      | DContract prov ln c =>
-        let an := absolute_name_of_local_name module_ns ln in
-        let ctxt := add_contract_to_namespace_ctxt_current ctxt ln an in
-        elift (fun x => (DContract prov an x, ctxt)) (resolve_ergo_contract module_ns ectxt tbl c)
-      | DSetContract prov rn e1 =>
-        eolift (fun an =>
-                  elift (fun x => (DSetContract prov an x, ctxt))
-                        (resolve_ergo_expr ectxt tbl e1))
-               (resolve_contract_name prov tbl rn)
-      end.
-
-    Definition resolve_ergo_declarations
-               (ctxt:namespace_ctxt)
-               (decls: list lrergo_declaration)
-      : eresult (list ergo_declaration * namespace_ctxt) :=
-      elift_context_fold_left
-        resolve_ergo_declaration
-        decls
-        ctxt.
-
-    Definition silently_resolve_ergo_declarations
-               (ctxt:namespace_ctxt)
-               (decls: list lrergo_declaration)
-      : eresult namespace_ctxt :=
-      elift snd (resolve_ergo_declarations ctxt decls).
-
-  End NameResolution.
-
-  Section Top.
-    Definition init_namespace_ctxt : namespace_ctxt :=
-      empty_namespace_ctxt no_namespace.
-
-    Definition patch_cto_imports
-               (ctxt_ns:namespace_name)
-               (decls: list lrergo_declaration) : list lrergo_declaration :=
-      if is_builtin_import ctxt_ns
-      then (DImport dummy_provenance (ImportSelf dummy_provenance ctxt_ns)) :: decls
-      else
-        (DImport dummy_provenance (ImportAll dummy_provenance hyperledger_namespace))
-          :: (DImport dummy_provenance (ImportSelf dummy_provenance ctxt_ns))
-          :: decls.
-
-    Definition patch_ergo_imports
-               (ctxt_ns:namespace_name)
-               (decls: list lrergo_declaration) : list lrergo_declaration :=
-      if is_builtin_import ctxt_ns
-      then app decls (DImport dummy_provenance (ImportSelf dummy_provenance ctxt_ns) :: nil)
-      else
-        (DImport dummy_provenance (ImportAll dummy_provenance hyperledger_namespace))
-          ::(DImport dummy_provenance (ImportAll dummy_provenance stdlib_namespace))
-          ::(DImport dummy_provenance (ImportSelf dummy_provenance ctxt_ns))
-          :: decls.
-      
-    Definition new_cto_package_namespace
-               (ctxt:namespace_ctxt)
-               (ns:namespace_name)
-               (m:lrergo_module)
-      : eresult namespace_ctxt :=
-      if is_builtin_import ns
-      then esuccess ctxt
-      else
-        let builtin_cto_imports :=
-            (DImport dummy_provenance (ImportAll dummy_provenance hyperledger_namespace))
-              :: (DImport dummy_provenance (ImportSelf dummy_provenance ns))
-              :: nil
-        in
-        let ctxt := new_namespace_scope ctxt ns in
-        let ctxt := namespace_ctxt_of_ergo_module ctxt m in
-        silently_resolve_ergo_declarations ctxt builtin_cto_imports.
-
-    Definition new_ergo_module_namespace
-               (ctxt:namespace_ctxt)
-               (ns:namespace_name)
-      : eresult namespace_ctxt :=
-      if is_builtin_import ns
-      then esuccess ctxt
-      else
-        let builtin_cto_imports :=
-            (DImport dummy_provenance (ImportAll dummy_provenance hyperledger_namespace))
-              ::(DImport dummy_provenance (ImportAll dummy_provenance stdlib_namespace))
-              ::(DImport dummy_provenance (ImportSelf dummy_provenance ns))
-              :: nil
-        in
-        let ctxt := new_namespace_scope ctxt ns in
-        silently_resolve_ergo_declarations ctxt builtin_cto_imports.
-
-    Definition resolve_cto_package
-               (ctxt:namespace_ctxt)
-               (cto:lrcto_package) : eresult (laergo_module * namespace_ctxt) :=
-      let m := cto_package_to_ergo_module cto in
-      let module_ns := m.(module_namespace) in
-      let ctxt := new_namespace_scope ctxt module_ns in
-      let ctxt := namespace_ctxt_of_ergo_module ctxt m in
-      let declarations := m.(module_declarations) in
-      let ctxt_ns := ctxt.(namespace_ctxt_namespace) in
-      elift
-        (fun nc =>
-           (mkModule
-              m.(module_annot)
-              m.(module_file)
-              module_ns
-              (fst nc), snd nc))
-        (resolve_ergo_declarations
-           ctxt
-           (patch_cto_imports module_ns declarations)).
-
-    Definition resolve_ergo_module
-               (ctxt:namespace_ctxt)
-               (m:lrergo_module) : eresult (laergo_module * namespace_ctxt) :=
-      let module_ns := m.(module_namespace) in
-      let ctxt := new_namespace_scope ctxt module_ns in
-      let declarations := m.(module_declarations) in
-      let ctxt_ns := ctxt.(namespace_ctxt_namespace) in
-      elift
-        (fun nc =>
-           (mkModule
-              m.(module_annot)
-              m.(module_file)
-              module_ns
-              (fst nc), snd nc))
-        (resolve_ergo_declarations
-           ctxt
-           (patch_ergo_imports module_ns declarations)).
-
-    Definition resolve_ergo_modules
-               (ctxt:namespace_ctxt)
-               (ml:list lrergo_module) : eresult (list laergo_module * namespace_ctxt) :=
-      elift_context_fold_left
-        resolve_ergo_module
-        ml
-        ctxt.
-
-    Definition resolve_cto_packages
-               (ctxt:namespace_ctxt)
-               (ctos:list lrcto_package) : eresult (list laergo_module * namespace_ctxt) :=
-      let ctxt := namespace_ctxt_of_cto_packages ctxt ctos in
-      elift_context_fold_left
-        resolve_cto_package
-        ctos
-        ctxt.
-
-    Fixpoint split_ctos_and_ergos (inputs:list lrergo_input)
-      : (list lrcto_package * list lrergo_module * option lrergo_module) :=
-      match inputs with
-      | nil => (nil, nil, None)
-      | InputCTO cto :: rest =>
-        let '(ctos', rest', p') := split_ctos_and_ergos rest in
-        (cto :: ctos', rest', p')
-      | InputErgo ml :: rest =>
-        let '(ctos', rest', p') := split_ctos_and_ergos rest in
-        match p' with
-        | None =>
-          if is_builtin_import ml.(module_namespace)
-          then (ctos', ml :: rest', None)
-          else (ctos', rest', Some ml)
-        | Some _ => (ctos', ml :: rest', p')
-        end
-      end.
-
-  End Top.
-
-  Section Examples.
-    Local Open Scope string.
-    Definition ergo_typed1 : lrergo_type_declaration :=
-      mkErgoTypeDeclaration
-        dummy_provenance
-        "c1"
-        (ErgoTypeConcept
-           false
-           None
-           (("a", ErgoTypeBoolean dummy_provenance)
-              ::("b", (ErgoTypeClassRef dummy_provenance (None, "c3")))::nil)).
-
-    Definition ergo_typed2 : lrergo_type_declaration :=
-      mkErgoTypeDeclaration
-        dummy_provenance
-        "c2"
-        (ErgoTypeConcept
-           false
-           None
-           (("c", ErgoTypeBoolean dummy_provenance)
-              ::("d", (ErgoTypeClassRef dummy_provenance (None, "c1")))::nil)).
-
-    Definition ergo_funcd1 : lrergo_function :=
-      mkFunc
-        dummy_provenance
-        (mkErgoTypeSignature
-           dummy_provenance
-           nil
-           (Some (ErgoTypeBoolean dummy_provenance))
-           None)
-        None.
-    
-    Definition ergo_funcd2 : lrergo_function :=
-      mkFunc
-        dummy_provenance
-        (mkErgoTypeSignature
-           dummy_provenance
-           nil
-           (Some (ErgoTypeBoolean dummy_provenance))
-           None)
-        (Some (ECallFun dummy_provenance "addFee" nil)).
-
-    Definition ergo_clause2 : lrergo_clause :=
-      mkClause
-        dummy_provenance
-        "addFee2"
-        (mkErgoTypeSignature
-           dummy_provenance
-           nil
-           (Some (ErgoTypeBoolean dummy_provenance))
-           None)
-        (Some (SReturn dummy_provenance (ECallFun dummy_provenance "addFee" nil))).
-
-    Definition ergo_contractd1 : lrergo_contract :=
-      mkContract
-        dummy_provenance
-        (ErgoTypeBoolean dummy_provenance)
-        None
-        (ergo_clause2::nil).
-    
-    Definition ergo_module1 : lrergo_module :=
-      mkModule
-        dummy_provenance
-        ""
-        "n1"
-        (DImport dummy_provenance (ImportAll dummy_provenance "n2")
-        ::DFunc dummy_provenance "addFee" ergo_funcd1
-        ::DContract dummy_provenance "MyContract" ergo_contractd1
-        ::DType dummy_provenance ergo_typed1
-        ::DType dummy_provenance ergo_typed2::nil).
-    
-    Definition ergo_typed3 : lrergo_type_declaration :=
-      mkErgoTypeDeclaration
-        dummy_provenance
-        "c3"
-        (ErgoTypeConcept
-           false
-           None
-           (("a", ErgoTypeBoolean dummy_provenance)
-              ::("b", ErgoTypeString dummy_provenance)::nil)).
-
-    Definition ergo_typed_top : lrergo_type_declaration :=
-      mkErgoTypeDeclaration
-        dummy_provenance
-        "top"
-        (ErgoTypeGlobal
-           (ErgoTypeAny dummy_provenance)).
-
-    Definition ergo_module2 : lrergo_module :=
-      mkModule
-        dummy_provenance "" "n2" (DType dummy_provenance ergo_typed3::nil).
-
-    Definition ergo_hl : lrergo_module :=
-      mkModule
-        dummy_provenance "" hyperledger_namespace (DType dummy_provenance ergo_typed_top::nil).
-
-    Definition ergo_stdlib : lrergo_module :=
-      mkModule
-        dummy_provenance "" stdlib_namespace (DType dummy_provenance ergo_typed_top::nil).
-
-    Definition ml1 : list lrergo_module := ergo_hl :: ergo_stdlib :: ergo_module2 :: ergo_module1 :: nil.
-    Definition aml1 := resolve_ergo_modules (empty_namespace_ctxt "TEST") ml1.
-
-    Definition ml2 : list lrergo_module := ergo_hl :: ergo_stdlib :: ergo_module2 :: nil.
-    Definition aml2 := resolve_ergo_modules (empty_namespace_ctxt "TEST") ml2.
-
-    Definition aml3 := elift (fun mc => resolve_ergo_module (snd mc) ergo_module1) aml2.
-  End Examples.
-  
-End ErgoNameResolution.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.jsx b/docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.jsx new file mode 100644 index 00000000..367c7702 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.ErgoNameResolve.jsx @@ -0,0 +1,9296 @@ +
+ + Module ErgoSpec.Translation.ErgoNameResolve + + +

Module ErgoSpec.Translation.ErgoNameResolve

+
+
+
+ Ergo is a language for expressing contract logic.{" "} +
+
+

Abstract Syntax

+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.NamespaceContext + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Ast + + .
+ + Require + Import{" "} + + ErgoSpec.Common.CTO.CTO + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.CTOtoErgo + + + .
+
+ Section{" "} + + ErgoNameResolution + + .
+
+   Fixpoint{" "} + + namespace_ctxt_of_ergo_decls + +
+            ( + ctxt: + + + namespace_ctxt + + + )
+            ( + ns: + + + namespace_name + + + )
+            ( + dls: + + + list + + {" "} + + + lrergo_declaration + + + ) : ( + + + namespace_name + + {" "} + *{" "} + + + namespace_ctxt + + + ) := +
+     match{" "} + + dls + {" "} + with +
+     |{" "} + + nil + {" "} + => ( + + ns + + ,{" "} + + ctxt + + )
+     |{" "} + + DNamespace + {" "} + _ ns' ::{" "} + rest => +
+       (ns',{" "} + + ctxt + + )
+     |{" "} + + DImport + {" "} + _ _ ::{" "} + rest => +
+        + + + namespace_ctxt_of_ergo_decls + + {" "} + + ctxt + {" "} + + ns + {" "} + rest +
+     |{" "} + + DType + {" "} + tname td ::{" "} + rest => +
+       let{" "} + ln := td.( + + + type_declaration_name + + + ) in +
+       let{" "} + an :={" "} + + + absolute_name_of_local_name + + {" "} + + ns + {" "} + + ln + {" "} + in +
+       let{" "} + ectxt :={" "} + + ctxt + + .( + + + namespace_ctxt_enums + + + ) in +
+       let{" "} + ctxt := +
+            + if{" "} + + + type_declaration_is_enum + + {" "} + td.( + + + type_declaration_type + + + )
+            + then{" "} + + + update_namespace_context_enums + + {" "} + + ctxt + {" "} + ( + + an + + :: + + ectxt + + )
+            + else{" "} + + ctxt + +
+       in +
+       let ( + ns, ctxt) :={" "} + + + namespace_ctxt_of_ergo_decls + + {" "} + + ctxt + {" "} + + ns + {" "} + rest in +
+       ( + + ns + + ,{" "} + + + add_type_to_namespace_ctxt + + {" "} + + ctxt + {" "} + + ns + {" "} + + ln + {" "} + + an + + )
+     |{" "} + + DStmt + {" "} + _ _ ::{" "} + rest => +
+       let{" "} + ctxt :={" "} + + + namespace_ctxt_of_ergo_decls + + {" "} + + ctxt + {" "} + + ns + {" "} + rest in +
+        + + ctxt + +
+     |{" "} + + DConstant + {" "} + _ ln{" "} + ta cd ::{" "} + rest => +
+       let{" "} + an :={" "} + + + absolute_name_of_local_name + + {" "} + + ns + {" "} + ln in +
+       let ( + ns, ctxt) :={" "} + + + namespace_ctxt_of_ergo_decls + + {" "} + + ctxt + {" "} + + ns + {" "} + rest in +
+       ( + + ns + + ,{" "} + + + add_constant_to_namespace_ctxt + + {" "} + + ctxt + {" "} + + ns + {" "} + ln{" "} + + an + + )
+     |{" "} + + DFunc + {" "} + _ ln{" "} + fd :: rest => +
+       let{" "} + an :={" "} + + + absolute_name_of_local_name + + {" "} + + ns + {" "} + ln in +
+       let ( + ns, ctxt) :={" "} + + + namespace_ctxt_of_ergo_decls + + {" "} + + ctxt + {" "} + + ns + {" "} + rest in +
+       ( + + ns + + ,{" "} + + + add_function_to_namespace_ctxt + + {" "} + + ctxt + {" "} + + ns + {" "} + ln{" "} + + an + + )
+     |{" "} + + DContract + {" "} + _ ln{" "} + _ :: rest => +
+       let{" "} + an :={" "} + + + absolute_name_of_local_name + + {" "} + + ns + {" "} + ln in +
+       let ( + ns, ctxt) :={" "} + + + namespace_ctxt_of_ergo_decls + + {" "} + + ctxt + {" "} + + ns + {" "} + rest in +
+       ( + + ns + + ,{" "} + + + add_contract_to_namespace_ctxt + + {" "} + + ctxt + {" "} + + ns + {" "} + ln{" "} + + an + + )
+     |{" "} + + DSetContract + {" "} + _ ln{" "} + _ :: rest => +
+        + + + namespace_ctxt_of_ergo_decls + + {" "} + + ctxt + {" "} + + ns + {" "} + rest +
+     end.
+
+   Definition{" "} + + namespace_ctxt_of_ergo_module + {" "} + (ctxt: + + + namespace_ctxt + + + ) (m: + + lrergo_module + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + snd + {" "} + ( + + + namespace_ctxt_of_ergo_decls + + {" "} + + ctxt + {" "} + + m + + .( + + + module_namespace + + + ){" "} + + m + + .( + + + module_declarations + + + )). +
+
+   Definition{" "} + + + namespace_ctxt_of_ergo_modules + + {" "} + (ctxt: + + + namespace_ctxt + + + ) (ml: + + + list + + {" "} + + lrergo_module + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+      + + + fold_left + + {" "} + + + namespace_ctxt_of_ergo_module + + {" "} + + ml + {" "} + + ctxt + + .
+
+   Definition{" "} + + + namespace_ctxt_of_cto_packages + + {" "} + (ctxt: + + + namespace_ctxt + + + ) (ctos: + + + list + + {" "} + + cto_package + + ) :{" "} + + + namespace_ctxt + + {" "} + := +
+     let{" "} + mls :={" "} + + map + {" "} + + + cto_package_to_ergo_module + + {" "} + + ctos + {" "} + in +
+      + + + fold_left + + {" "} + + + namespace_ctxt_of_ergo_module + + {" "} + + mls + {" "} + + ctxt + + .
+
+   Section{" "} + + ResolveImports + + .
+
This applies imports
+     Definition{" "} + + lookup_one_import + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + ic: + + limport_decl + + ) :{" "} + + eresult + {" "} + + + namespace_table + + {" "} + := +
+       match{" "} + + ic + {" "} + with +
+       |{" "} + + ImportAll + {" "} + prov ns => +
+          + match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + ) ns with +
+         |{" "} + + + Some + + {" "} + tbl =>{" "} + + esuccess + {" "} + tbl +
+         |{" "} + + + None + + {" "} + =>{" "} + + + import_not_found_error + + {" "} + prov ns +
+          + end +
+       |{" "} + + ImportSelf + {" "} + prov ns => +
+          + match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + ) ns with +
+         |{" "} + + + Some + + {" "} + tbl =>{" "} + + esuccess + {" "} + tbl +
+         |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + empty_namespace_table + + +
+          + end +
+       |{" "} + + ImportName + {" "} + prov ns{" "} + ln => +
+          + match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + + ctxt + + .( + + + namespace_ctxt_modules + + + ) ns with +
+         |{" "} + + + Some + + {" "} + tbl => +
+            + match{" "} + + + lookup + + {" "} + + + string_dec + + {" "} + tbl.( + + + namespace_table_types + + + ) ln with +
+           |{" "} + + + None + + {" "} + =>{" "} + + + import_name_not_found_error + + {" "} + prov ns{" "} + ln +
+           |{" "} + + + Some + + {" "} + an =>{" "} + + esuccess + {" "} + ( + + + one_type_to_namespace_table + + {" "} + ln an)
+            + end +
+         |{" "} + + + None + + {" "} + =>{" "} + + + import_not_found_error + + {" "} + prov ns +
+          + end +
+       end.
+
+     Definition{" "} + + resolve_one_import + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + ic: + + limport_decl + + ) :{" "} + + eresult + {" "} + + + namespace_ctxt + + {" "} + := +
+        + + elift + {" "} + (fun tbl => +
+                 + + + mkNamespaceCtxt + + +
+                   + + ctxt + + .( + + + namespace_ctxt_modules + + + )
+                   + + ctxt + + .( + + + namespace_ctxt_namespace + + + )
+                   + + ctxt + + .( + + + namespace_ctxt_current_module + + + )
+                  ( + + + namespace_table_app + + {" "} + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + ){" "} + + tbl + + )
+                   + + ctxt + + .( + + + namespace_ctxt_enums + + + )
+                   + + ctxt + + .( + + + namespace_ctxt_abstract + + + )) +
+             ( + + + lookup_one_import + + {" "} + + ctxt + {" "} + + ic + + ). +
+
+     Definition{" "} + + is_builtin_import + {" "} + (ns: + + + namespace_name + + + ) :{" "} + + + bool + + {" "} + := +
+       if{" "} + + + string_dec + + {" "} + + ns + {" "} + + + hyperledger_namespace + + +
+       then{" "} + + + true + + +
+       else{" "} + if{" "} + + + string_dec + + {" "} + + ns + {" "} + + + stdlib_namespace + + +
+             + then{" "} + + + true + + +
+             + else{" "} + + + false + + + .
+
+   End{" "} + + + ResolveImports + + + .
+
+   Section{" "} + + NameResolution + + .
+
Name resolution for type declarations
+     Fixpoint{" "} + + resolve_ergo_type + +
+              ( + ectxt:{" "} + + + enum_ctxt + + + )
+              ( + tbl: + + + namespace_table + + + )
+              ( + t: + + lrergo_type + + ) :{" "} + + eresult + {" "} + + laergo_type + {" "} + := +
+       match{" "} + + t + {" "} + with +
+       |{" "} + + ErgoTypeAny + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + ErgoTypeAny + {" "} + prov)
+       |{" "} + + + ErgoTypeNothing + + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeNothing + + {" "} + prov)
+       |{" "} + + + ErgoTypeUnit + + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeUnit + + {" "} + prov)
+       |{" "} + + + ErgoTypeBoolean + + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeBoolean + + {" "} + prov)
+       |{" "} + + + ErgoTypeString + + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeString + + {" "} + prov)
+       |{" "} + + + ErgoTypeDouble + + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeDouble + + {" "} + prov)
+       |{" "} + + + ErgoTypeLong + + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeLong + + {" "} + prov)
+       |{" "} + + + ErgoTypeInteger + + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeInteger + + {" "} + prov)
+       |{" "} + + + ErgoTypeDateTime + + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeDateTime + + {" "} + prov)
+       |{" "} + + + ErgoTypeClassRef + + {" "} + prov rn => +
+          + let an :={" "} + + + resolve_type_name + + {" "} + prov{" "} + + tbl + {" "} + rn in +
+          + + elift + {" "} + (fun an => +
+                   + if{" "} + + + in_dec + + {" "} + + + string_dec + + {" "} + + an + {" "} + + ectxt + {" "} +
+                   + then{" "} + + + ErgoTypeString + + {" "} + prov +
+                   + else{" "} + + + ErgoTypeClassRef + + {" "} + prov{" "} + + an + + )
+                + + an + +
+       |{" "} + + + ErgoTypeOption + + {" "} + prov t => +
+          + + elift + {" "} + ( + + + ErgoTypeOption + + {" "} + prov) ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + + t + + )
+       |{" "} + + + ErgoTypeRecord + + {" "} + prov r => +
+          + + let + initial_map :={" "} + + map + {" "} + (fun xy => ( + + fst + {" "} + + xy + + ,{" "} + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + ( + + snd + {" "} + + xy + + ))) r in +
+          + let lifted_map :={" "} + + emaplift + {" "} + (fun xy =>{" "} + + elift + {" "} + (fun t => ( + + fst + {" "} + + xy + + ,{" "} + + t + + )) ( + + snd + {" "} + + xy + + )){" "} + + + initial_map + + {" "} + in +
+          + + elift + {" "} + ( + + + ErgoTypeRecord + + {" "} + prov){" "} + + + lifted_map + + +
+       |{" "} + + + ErgoTypeArray + + {" "} + prov t => +
+          + + elift + {" "} + ( + + + ErgoTypeArray + + {" "} + prov) ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + + t + + )
+       |{" "} + + ErgoTypeSum + {" "} + prov t1{" "} + t2 => +
+          + + elift2 + {" "} + ( + + ErgoTypeSum + {" "} + prov)
+                ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + t1)
+                ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + t2)
+       end.
+
+     Definition{" "} + + resolve_ergo_type_struct + +
+                ( + ectxt:{" "} + + + enum_ctxt + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + t: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + lrergo_type + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_type + + )) := +
+        + + emaplift + {" "} + (fun xy => +
+                    + + elift + {" "} + (fun t => ( + + fst + {" "} + + xy + + ,{" "} + + t + + )) ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + ( + + snd + {" "} + + xy + + ))){" "} + + t + + .
+
+     Definition{" "} + + resolve_type_annotation + +
+                ( + prov: + + provenance + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + en: + + + option + + {" "} + + relative_name + + ) :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + absolute_name + + ) := +
+       match{" "} + + en + {" "} + with +
+       |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+       |{" "} + + + Some + + {" "} + rn =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_type_name + + {" "} + + prov + {" "} + + tbl + {" "} + rn)
+       end.
+
+     Definition{" "} + + resolve_extends + +
+                ( + prov: + + provenance + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + en: + + rextends + + ) :{" "} + + eresult + {" "} + + aextends + {" "} + := +
+        + + + resolve_type_annotation + + {" "} + + prov + {" "} + + tbl + {" "} + + en + + .
+
+     Definition{" "} + + resolve_ergo_type_signature + +
+                ( + ectxt:{" "} + + + enum_ctxt + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + sig: + + + lrergo_type_signature + + + ) :{" "} + + eresult + {" "} + + + laergo_type_signature + + {" "} + := +
+       let{" "} + params_types :={" "} + + + resolve_ergo_type_struct + + {" "} + + ectxt + {" "} + + tbl + {" "} + ( + + sig + + .( + + + type_signature_params + + + )) in +
+       let{" "} + output_type :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + laergo_type + + ) := +
+            + match{" "} + + sig + + .( + + + type_signature_output + + + ) with +
+           |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+           |{" "} + + + Some + + {" "} + out_ty => +
+              + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + out_ty)
+            + end +
+       in +
+       let{" "} + emits_type :{" "} + + eresult + {" "} + ( + + + option + + {" "} + + laergo_type + + ) := +
+            + match{" "} + + sig + + .( + + + type_signature_emits + + + ) with +
+           |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+           |{" "} + + + Some + + {" "} + emits_ty => +
+              + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + emits_ty)
+            + end +
+       in +
+        + + elift3 + {" "} + ( + + + mkErgoTypeSignature + + +
+                  + + sig + + .( + + + type_signature_annot + + + )) +
+               + + + params_types + + +
+               + + + output_type + + +
+               + + + emits_type + + + .
+
+     Definition{" "} + + resolve_ergo_type_clauses + +
+                ( + ectxt:{" "} + + + enum_ctxt + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + cls: + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + lrergo_type_signature + + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + + laergo_type_signature + + + )) := +
+        + + emaplift + {" "} + (fun xy =>{" "} + + elift + {" "} + (fun r => ( + + fst + {" "} + + xy + + ,{" "} + + r + + )) +
+                                 ( + + + resolve_ergo_type_signature + + {" "} + + ectxt + {" "} + + tbl + {" "} + ( + + snd + {" "} + + xy + + ))){" "} + + cls + + .
+
+     Definition{" "} + + + resolve_ergo_type_declaration_desc + + +
+                ( + prov: + + provenance + + )
+                ( + ectxt:{" "} + + + enum_ctxt + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + d: + + + lrergo_type_declaration_desc + + + )
+       :{" "} + + eresult + {" "} + + + laergo_type_declaration_desc + + {" "} + := +
+       match{" "} + + d + {" "} + with +
+       |{" "} + + + ErgoTypeEnum + + {" "} + l =>{" "} + + esuccess + {" "} + ( + + + ErgoTypeEnum + + {" "} + l)
+       |{" "} + + + ErgoTypeTransaction + + {" "} + isabs extends_name{" "} + ergo_type_struct => +
+          + + elift2 + {" "} + ( + + + ErgoTypeTransaction + + {" "} + isabs)
+                ( + + + resolve_extends + + {" "} + + prov + {" "} + + tbl + {" "} + extends_name)
+                ( + + + resolve_ergo_type_struct + + {" "} + + ectxt + {" "} + + tbl + {" "} + ergo_type_struct)
+       |{" "} + + + ErgoTypeConcept + + {" "} + isabs extends_name{" "} + ergo_type_struct => +
+          + + elift2 + {" "} + ( + + + ErgoTypeConcept + + {" "} + isabs)
+                ( + + + resolve_extends + + {" "} + + prov + {" "} + + tbl + {" "} + extends_name)
+                ( + + + resolve_ergo_type_struct + + {" "} + + ectxt + {" "} + + tbl + {" "} + ergo_type_struct)
+       |{" "} + + + ErgoTypeEvent + + {" "} + isabs extends_name{" "} + ergo_type_struct => +
+          + + elift2 + {" "} + ( + + + ErgoTypeEvent + + {" "} + isabs)
+                ( + + + resolve_extends + + {" "} + + prov + {" "} + + tbl + {" "} + extends_name)
+                ( + + + resolve_ergo_type_struct + + {" "} + + ectxt + {" "} + + tbl + {" "} + ergo_type_struct)
+       |{" "} + + + ErgoTypeAsset + + {" "} + isabs extends_name{" "} + ergo_type_struct => +
+          + + elift2 + {" "} + ( + + + ErgoTypeAsset + + {" "} + isabs)
+                ( + + + resolve_extends + + {" "} + + prov + {" "} + + tbl + {" "} + extends_name)
+                ( + + + resolve_ergo_type_struct + + {" "} + + ectxt + {" "} + + tbl + {" "} + ergo_type_struct)
+       |{" "} + + + ErgoTypeParticipant + + {" "} + isabs extends_name{" "} + ergo_type_struct => +
+          + + elift2 + {" "} + ( + + + ErgoTypeParticipant + + {" "} + isabs)
+                ( + + + resolve_extends + + {" "} + + prov + {" "} + + tbl + {" "} + extends_name)
+                ( + + + resolve_ergo_type_struct + + {" "} + + ectxt + {" "} + + tbl + {" "} + ergo_type_struct)
+       |{" "} + + + ErgoTypeGlobal + + {" "} + ergo_type => +
+          + + elift + {" "} + + + ErgoTypeGlobal + + {" "} + ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + ergo_type)
+       |{" "} + + + ErgoTypeFunction + + {" "} + ergo_type_signature => +
+          + + elift + {" "} + + + ErgoTypeFunction + + +
+               ( + + + resolve_ergo_type_signature + + {" "} + + ectxt + {" "} + + tbl + {" "} + ergo_type_signature)
+       |{" "} + + + ErgoTypeContract + + {" "} + template_type{" "} + state_type{" "} + clauses_sigs => +
+          + + elift3 + {" "} + + + ErgoTypeContract + + +
+                ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + template_type)
+                ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + state_type)
+                ( + + + resolve_ergo_type_clauses + + {" "} + + ectxt + {" "} + + tbl + {" "} + clauses_sigs)
+       end.
+   +
+     Definition{" "} + + resolve_ergo_type_declaration + +
+                ( + module_ns: + + + namespace_name + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + decl:{" "} + + + enum_ctxt + + {" "} + *{" "} + + + abstract_ctxt + + {" "} + *{" "} + + + lrergo_type_declaration + + + )
+       :{" "} + + eresult + {" "} + ( + + + enum_ctxt + + {" "} + *{" "} + + + abstract_ctxt + + {" "} + *{" "} + + + laergo_type_declaration + + + ) := +
+       let '( + ectxt,actxt, + decl) :={" "} + + decl + {" "} + in +
+       let{" "} + name :={" "} + + + absolute_name_of_local_name + + {" "} + + + module_ns + + {" "} + + decl + + .( + + + type_declaration_name + + + ) in +
+       let{" "} + ectxt := +
+            + if{" "} + + + type_declaration_is_enum + + {" "} + + decl + + .( + + + type_declaration_type + + + )
+            + then{" "} + + name + {" "} + :: ectxt +
+            + else ectxt +
+       in +
+       let{" "} + actxt := +
+            + if{" "} + + + type_declaration_is_abstract + + {" "} + + decl + + .( + + + type_declaration_type + + + )
+            + then{" "} + + name + {" "} + :: actxt +
+            + else actxt +
+       in +
+       let{" "} + edecl_desc := +
+            + + + resolve_ergo_type_declaration_desc + + +
+              + + decl + + .( + + + type_declaration_annot + + + ){" "} + + ectxt + {" "} + + tbl + {" "} + + decl + + .( + + + type_declaration_type + + + )
+       in +
+        + + elift + {" "} + (fun k => ( + + ectxt + + ,{" "} + + actxt + + ,{" "} + + + mkErgoTypeDeclaration + + {" "} + + decl + + .( + + + type_declaration_annot + + + ){" "} + + name + {" "} + + k + + )){" "} + + + edecl_desc + + + .
+
+     Definition{" "} + + resolve_ergo_pattern + +
+                ( + tbl: + + + namespace_table + + + )
+                ( + p: + + lrergo_pattern + + ) :{" "} + + eresult + {" "} + ( + + laergo_pattern + + ) := +
+       match{" "} + + p + {" "} + with +
+       |{" "} + + CaseData + {" "} + prov d =>{" "} + + esuccess + {" "} + ( + + CaseData + {" "} + prov d)
+       |{" "} + + CaseWildcard + {" "} + prov ta =>{" "} + + elift + {" "} + ( + + CaseWildcard + {" "} + prov) ( + + + resolve_type_annotation + + {" "} + prov{" "} + + tbl + {" "} + ta)
+       |{" "} + + CaseLet + {" "} + prov v{" "} + ta =>{" "} + + elift + {" "} + ( + + CaseLet + {" "} + prov v) ( + + + resolve_type_annotation + + {" "} + prov{" "} + + tbl + {" "} + ta)
+       |{" "} + + CaseLetOption + {" "} + prov v{" "} + ta =>{" "} + + elift + {" "} + ( + + CaseLetOption + {" "} + prov v) ( + + + resolve_type_annotation + + {" "} + prov{" "} + + tbl + {" "} + ta)
+       end.
+      +
+
Name resolution for expressions
+     Fixpoint{" "} + + resolve_ergo_expr + +
+              ( + ectxt:{" "} + + + enum_ctxt + + + )
+              ( + tbl: + + + namespace_table + + + )
+              ( + e: + + lrergo_expr + + ) :{" "} + + eresult + {" "} + + laergo_expr + {" "} + := +
+       match{" "} + + e + {" "} + with +
+       |{" "} + + EThisContract + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + EThisContract + {" "} + prov)
+       |{" "} + + EThisClause + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + EThisClause + {" "} + prov)
+       |{" "} + + EThisState + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + EThisState + {" "} + prov)
+       |{" "} + + EVar + {" "} + prov v =>{" "} + + esuccess + {" "} + ( + + EVar + {" "} + prov v)
+       |{" "} + + EConst + {" "} + prov d =>{" "} + + esuccess + {" "} + ( + + EConst + {" "} + prov d)
+       |{" "} + + ENone + {" "} + prov =>{" "} + + esuccess + {" "} + ( + + ENone + {" "} + prov)
+       |{" "} + + ESome + {" "} + prov e => +
+          + + elift + {" "} + ( + + ESome + {" "} + prov)
+               ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+       |{" "} + + EArray + {" "} + prov el => +
+          + let init_el :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+          + let proc_one ( + e: + + lrergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + + laergo_expr + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_expr + + ) := +
+              + + elift2 + +
+                + + + cons + + +
+               ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+                + + acc + +
+          + in +
+          + + elift + {" "} + ( + + EArray + {" "} + prov) ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_el + {" "} + el)
+       |{" "} + + EUnaryOp + {" "} + prov u{" "} + e => +
+          + + elift + {" "} + ( + + EUnaryOp + {" "} + prov u)
+               ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+       |{" "} + + EBinaryOp + {" "} + prov b{" "} + e1 e2 => +
+          + + elift2 + {" "} + ( + + EBinaryOp + {" "} + prov b)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e2)
+       |{" "} + + EIf + {" "} + prov e1{" "} + e2 e3 => +
+          + + elift3 + {" "} + ( + + EIf + {" "} + prov)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e2)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e3)
+       |{" "} + + ELet + {" "} + prov v{" "} + ta e1{" "} + e2 => +
+          + let rta := +
+              + match ta{" "} + with +
+             |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+             |{" "} + + + Some + + {" "} + ta =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + ta)
+              + end +
+          + in +
+          + + elift3 + {" "} + ( + + ELet + {" "} + prov v)
+                 + + rta + +
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e2)
+       |{" "} + + ENew + {" "} + prov cr{" "} + el => +
+          + let rcr :={" "} + + + resolve_type_name + + {" "} + prov{" "} + + tbl + {" "} + cr in +
+          + let init_rec :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+          + let proc_one ( + att: + + + string + + {" "} + *{" "} + + lrergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_expr + + ))) := +
+              + let attname :={" "} + + fst + {" "} + + att + {" "} + in +
+              + let e :={" "} + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + ( + + snd + {" "} + + att + + ) in +
+              + + elift2 + {" "} + (fun e =>{" "} + fun acc => ( + + attname + + , + + e + + ):: + + acc + + ){" "} + + e + {" "} + + acc + +
+          + in +
+          + + elift2 + {" "} + ( + + ENew + {" "} + prov){" "} + + rcr + {" "} + ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_rec + {" "} + el)
+       |{" "} + + ERecord + {" "} + prov el => +
+          + let init_rec :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+          + let proc_one ( + att: + + + string + + {" "} + *{" "} + + lrergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_expr + + ))) := +
+              + let attname :={" "} + + fst + {" "} + + att + {" "} + in +
+              + let e :={" "} + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + ( + + snd + {" "} + + att + + ) in +
+              + + elift2 + {" "} + (fun e =>{" "} + fun acc => ( + + attname + + , + + e + + ):: + + acc + + ){" "} + + e + {" "} + + acc + +
+          + in +
+          + + elift + {" "} + ( + + ERecord + {" "} + prov) ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_rec + {" "} + el)
+       |{" "} + + ECallFun + {" "} + prov fname{" "} + el => +
+          + let rfname :={" "} + + + resolve_function_name + + {" "} + prov{" "} + + tbl + {" "} + ( + + + None + + + ,fname) in +
+          + let init_el :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+          + let proc_one ( + e: + + lrergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + + laergo_expr + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_expr + + ) := +
+              + + elift2 + +
+                + + + cons + + +
+               ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+                + + acc + +
+          + in +
+          + + elift2 + {" "} + ( + + ECallFun + {" "} + prov){" "} + + rfname + {" "} + ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_el + {" "} + el)
+       |{" "} + + ECallFunInGroup + {" "} + prov gname{" "} + fname el => +
+          + let rgname :={" "} + + + resolve_contract_name + + {" "} + prov{" "} + + tbl + {" "} + gname in +
+          + let init_el :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+          + let proc_one ( + e: + + lrergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + + laergo_expr + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_expr + + ) := +
+              + + elift2 + +
+                + + + cons + + +
+               ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+                + + acc + +
+          + in +
+          + + elift3 + {" "} + ( + + ECallFunInGroup + {" "} + prov){" "} + + rgname + {" "} + ( + + esuccess + {" "} + fname) ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_el + {" "} + el)
+       |{" "} + + EMatch + {" "} + prov e0{" "} + ecases edefault{" "} + => +
+          + let ec0 :={" "} + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e0 in +
+          + let eccases := +
+              + let proc_one{" "} + acc (ecase :{" "} + + lrergo_pattern + {" "} + *{" "} + + lrergo_expr + + ) := +
+                  + let (pcase,{" "} + pe) :={" "} + + ecase + {" "} + in +
+                  + let apcase :={" "} + + + resolve_ergo_pattern + + {" "} + + tbl + {" "} + + pcase + {" "} + in +
+                  + + eolift + {" "} + (fun apcase => +
+                            + + eolift + +
+                             ( + fun acc => +
+                                 + + elift + {" "} + (fun x => ( + + apcase + + ,{" "} + + x + + ):: + + acc + + )
+                                      ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + pe + + )){" "} + + acc + + )
+                         + + apcase + +
+              + in +
+              + + + fold_left + + {" "} + + proc_one + {" "} + ecases ( + + esuccess + {" "} + + nil + + )
+          + in +
+          + let ecdefault :={" "} + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + edefault in +
+          + + eolift + +
+           ( + fun ec0 :{" "} + + laergo_expr + {" "} + => +
+               + + eolift + +
+                ( + fun eccases :{" "} + + + list + + {" "} + ( + + laergo_pattern + {" "} + *{" "} + + laergo_expr + + ) => +
+                    + + elift + +
+                     ( + fun ecdefault :{" "} + + laergo_expr + {" "} + => +
+                      + + EMatch + {" "} + prov{" "} + + ec0 + {" "} + + eccases + {" "} + + + ecdefault + + + )
+                      + + + ecdefault + + + ){" "} + + eccases + + ){" "} + + ec0 + +
+       |{" "} + + EForeach + {" "} + prov foreachs{" "} + econd e2 => +
+          + let re2 :={" "} + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e2 in +
+          + let recond := +
+              + match econd{" "} + with +
+             |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+             |{" "} + + + Some + + {" "} + econd =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + econd)
+              + end +
+          + in +
+          + let init_e :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+          + let proc_one +
+               ( + foreach: + + + string + + {" "} + *{" "} + + lrergo_expr + + )
+               ( + acc: + + eresult + {" "} + ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_expr + + ))) +
+             :{" "} + + eresult + {" "} + ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + laergo_expr + + )) := +
+              + let v :={" "} + + fst + {" "} + + foreach + {" "} + in +
+              + let e :={" "} + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + ( + + snd + {" "} + + foreach + + ) in +
+              + + elift2 + {" "} + (fun e =>{" "} + fun acc => ( + + v + + , + + e + + ):: + + acc + + )
+                   + + e + +
+                   + + acc + +
+          + in +
+          + + elift3 + {" "} + ( + + EForeach + {" "} + prov)
+                ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_e + {" "} + foreachs)
+                 + + recond + +
+                 + + re2 + +
+       end.
+
+
Name resolution for statements
+     Fixpoint{" "} + + resolve_ergo_stmt + +
+              ( + ectxt:{" "} + + + enum_ctxt + + + )
+              ( + tbl: + + + namespace_table + + + )
+              ( + e: + + lrergo_stmt + + ) :{" "} + + eresult + {" "} + + laergo_stmt + {" "} + := +
+       match{" "} + + e + {" "} + with +
+       |{" "} + + SReturn + {" "} + prov e =>{" "} + + elift + {" "} + ( + + SReturn + {" "} + prov) ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+       |{" "} + + SFunReturn + {" "} + prov e =>{" "} + + elift + {" "} + ( + + SFunReturn + {" "} + prov) ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+       |{" "} + + SThrow + {" "} + prov e =>{" "} + + elift + {" "} + ( + + SThrow + {" "} + prov) ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+       |{" "} + + SCallClause + {" "} + prov e0{" "} + fname el => +
+          + let init_el :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+          + let proc_one ( + e: + + lrergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + + laergo_expr + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_expr + + ) := +
+              + + elift2 + +
+                + + + cons + + +
+               ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + + e + + )
+                + + acc + +
+          + in +
+          + + elift3 + {" "} + ( + + SCallClause + {" "} + prov)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e0)
+                ( + + esuccess + {" "} + fname)
+                ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_el + {" "} + el)
+       |{" "} + + SSetState + {" "} + prov e1{" "} + s2 => +
+          + + elift2 + {" "} + ( + + SSetState + {" "} + prov)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)
+                ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + s2)
+       |{" "} + + SEmit + {" "} + prov e1{" "} + s2 => +
+          + + elift2 + {" "} + ( + + SEmit + {" "} + prov)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)
+                ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + s2)
+       |{" "} + + SLet + {" "} + prov v{" "} + ta e1{" "} + s2 => +
+          + let rta := +
+              + match ta{" "} + with +
+             |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+             |{" "} + + + Some + + {" "} + ta =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + ta)
+              + end +
+          + in +
+          + + elift3 + {" "} + ( + + SLet + {" "} + prov v)
+                 + + rta + +
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)
+                ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + s2)
+       |{" "} + + SIf + {" "} + prov e1{" "} + s2 s3 => +
+          + + elift3 + {" "} + ( + + SIf + {" "} + prov)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)
+                ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + s2)
+                ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + s3)
+       |{" "} + + SEnforce + {" "} + prov e1{" "} + os2 s3 => +
+          + let rs2 := +
+              + match os2{" "} + with +
+             |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+             |{" "} + + + Some + + {" "} + s2 =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + s2)
+              + end +
+          + in +
+          + + elift3 + {" "} + ( + + SEnforce + {" "} + prov)
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)
+                 + + rs2 + +
+                ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + s3)
+       |{" "} + + SMatch + {" "} + prov e0{" "} + scases sdefault{" "} + => +
+          + let ec0 :={" "} + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e0 in +
+          + let sccases := +
+              + let proc_one{" "} + acc (scase :{" "} + + lrergo_pattern + {" "} + *{" "} + + lrergo_stmt + + ) := +
+                  + let (pcase,{" "} + pe) :={" "} + + scase + {" "} + in +
+                  + let apcase :={" "} + + + resolve_ergo_pattern + + {" "} + + tbl + {" "} + + pcase + {" "} + in +
+                  + + eolift + {" "} + (fun apcase => +
+                            + + eolift + +
+                             ( + fun acc => +
+                                 + + elift + {" "} + (fun x => ( + + apcase + + ,{" "} + + x + + ):: + + acc + + )
+                                      ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + + pe + + )){" "} + + acc + + )
+                         + + apcase + +
+              + in +
+              + + + fold_left + + {" "} + + proc_one + {" "} + scases ( + + esuccess + {" "} + + nil + + )
+          + in +
+          + let scdefault :={" "} + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + sdefault in +
+          + + eolift + +
+           ( + fun ec0 :{" "} + + laergo_expr + {" "} + => +
+               + + eolift + +
+                ( + fun sccases :{" "} + + + list + + {" "} + ( + + laergo_pattern + {" "} + *{" "} + + laergo_stmt + + ) => +
+                    + + elift + +
+                     ( + fun scdefault :{" "} + + laergo_stmt + {" "} + => +
+                      + + SMatch + {" "} + prov{" "} + + ec0 + {" "} + + sccases + {" "} + + + scdefault + + + )
+                      + + + scdefault + + + ){" "} + + sccases + + ){" "} + + ec0 + +
+       end.
+
+
Name resolution for lambdas
+
+     Definition{" "} + + resolve_ergo_function + +
+                ( + module_ns: + + + namespace_name + + + )
+                ( + ectxt:{" "} + + + enum_ctxt + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + f: + + lrergo_function + + ) :{" "} + + eresult + {" "} + + laergo_function + {" "} + := +
+       let{" "} + prov :={" "} + + f + + .( + + function_annot + + ) in +
+       let{" "} + rbody := +
+            + match{" "} + + f + + .( + + function_body + + ) with +
+           |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+           |{" "} + + + Some + + {" "} + body =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + body)
+            + end +
+       in +
+        + + elift2 + {" "} + ( + + mkFunc + {" "} + + prov + + )
+              ( + + + resolve_ergo_type_signature + + {" "} + + ectxt + {" "} + + tbl + {" "} + + f + + .( + + function_sig + + )) +
+               + + rbody + + .
+      +
+     Definition{" "} + + resolve_ergo_clause + +
+                ( + module_ns: + + + namespace_name + + + )
+                ( + ectxt:{" "} + + + enum_ctxt + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + c: + + ergo_clause + + ) :{" "} + + eresult + {" "} + + laergo_clause + {" "} + := +
+       let{" "} + prov :={" "} + + c + + .( + + clause_annot + + ) in +
+       let{" "} + rcname :={" "} + + c + + .( + + clause_name + + ) in +
+       let{" "} + rbody := +
+            + match{" "} + + c + + .( + + clause_body + + ) with +
+           |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+           |{" "} + + + Some + + {" "} + body =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + body)
+            + end +
+       in +
+        + + elift2 + {" "} + ( + + mkClause + {" "} + + prov + {" "} + + rcname + + )
+              ( + + + resolve_ergo_type_signature + + {" "} + + ectxt + {" "} + + tbl + {" "} + + c + + .( + + clause_sig + + )) +
+               + + rbody + + .
+
+     Definition{" "} + + resolve_ergo_clauses + +
+                ( + module_ns: + + + namespace_name + + + )
+                ( + ectxt:{" "} + + + enum_ctxt + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + cl: + + + list + + {" "} + + ergo_clause + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_clause + + ) := +
+        + + emaplift + {" "} + ( + + + resolve_ergo_clause + + {" "} + + + module_ns + + {" "} + + ectxt + {" "} + + tbl + + ){" "} + + cl + + .
+
+     Definition{" "} + + resolve_ergo_contract + +
+                ( + module_ns: + + + namespace_name + + + )
+                ( + ectxt:{" "} + + + enum_ctxt + + + )
+                ( + tbl: + + + namespace_table + + + )
+                ( + c: + + lrergo_contract + + ) :{" "} + + eresult + {" "} + + laergo_contract + {" "} + := +
+       let{" "} + prov :={" "} + + c + + .( + + contract_annot + + ) in +
+       let{" "} + rtemplate :={" "} + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + + c + + .( + + + contract_template + + + ) in +
+       let{" "} + rstate := +
+            + match{" "} + + c + + .( + + contract_state + + ) with +
+           |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+           |{" "} + + + Some + + {" "} + state =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + state)
+            + end +
+       in +
+        + + elift3 + {" "} + ( + + mkContract + {" "} + + prov + + )
+               + + + rtemplate + + +
+               + + rstate + +
+              ( + + + resolve_ergo_clauses + + {" "} + + + module_ns + + {" "} + + ectxt + {" "} + + tbl + {" "} + + c + + .( + + + contract_clauses + + + )). +
+
+     Definition{" "} + + resolve_ergo_declaration + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + d: + + + lrergo_declaration + + + )
+       :{" "} + + eresult + {" "} + ( + + + laergo_declaration + + {" "} + *{" "} + + + namespace_ctxt + + + ) := +
+       let{" "} + module_ns :{" "} + + + namespace_name + + {" "} + :={" "} + + ctxt + + .( + + + namespace_ctxt_namespace + + + ) in +
+       let{" "} + ectxt :={" "} + + ctxt + + .( + + + namespace_ctxt_enums + + + ) in +
+       let{" "} + actxt :={" "} + + ctxt + + .( + + + namespace_ctxt_abstract + + + ) in +
+       let{" "} + tbl :{" "} + + + namespace_table + + {" "} + :={" "} + + ctxt + + .( + + + namespace_ctxt_current_in_scope + + + ) in +
+       match{" "} + + d + {" "} + with +
+       |{" "} + + DNamespace + {" "} + prov ns => +
+          + + esuccess + {" "} + ( + + DNamespace + {" "} + prov ns,{" "} + + + local_namespace_scope + + {" "} + + ctxt + {" "} + ns)
+       |{" "} + + DImport + {" "} + prov id => +
+          + + elift + {" "} + (fun x => ( + + DImport + {" "} + prov id,{" "} + + x + + )) ( + + + resolve_one_import + + {" "} + + ctxt + {" "} + id)
+       |{" "} + + DType + {" "} + prov td => +
+          + let ln :={" "} + td.( + + + type_declaration_name + + + ) in +
+          + let an :={" "} + + + absolute_name_of_local_name + + {" "} + + + module_ns + + {" "} + + ln + {" "} + in +
+          + let ctxt :={" "} + + + add_type_to_namespace_ctxt_current + + {" "} + + ctxt + {" "} + + ln + {" "} + + an + {" "} + in +
+          + + elift + {" "} + (fun xy :{" "} + + + enum_ctxt + + {" "} + *{" "} + + + abstract_ctxt + + {" "} + *{" "} + + + laergo_type_declaration + + {" "} + => +
+                   + let '(ectxt, + actxt,x) :={" "} + + xy + {" "} + in +
+                   + let ctxt :={" "} + + + update_namespace_context_enums + + {" "} + + ctxt + {" "} + + ectxt + {" "} + in +
+                   + let ctxt :={" "} + + + update_namespace_context_abstract + + {" "} + + ctxt + {" "} + + actxt + {" "} + in +
+                  ( + + DType + {" "} + prov x,{" "} + + ctxt + + )) +
+               ( + + + resolve_ergo_type_declaration + + {" "} + + + module_ns + + {" "} + + tbl + {" "} + ( + + ectxt + + ,{" "} + + actxt + + , td)) +
+       |{" "} + + DStmt + {" "} + prov st => +
+          + + elift + {" "} + (fun x => ( + + DStmt + {" "} + prov{" "} + + x + + ,{" "} + + ctxt + + )) ( + + + resolve_ergo_stmt + + {" "} + + ectxt + {" "} + + tbl + {" "} + st)
+       |{" "} + + DConstant + {" "} + prov ln{" "} + ta e => +
+          + let an :={" "} + + + absolute_name_of_local_name + + {" "} + + + module_ns + + {" "} + ln in +
+          + let rta := +
+              + match ta{" "} + with +
+             |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+             |{" "} + + + Some + + {" "} + ta =>{" "} + + elift + {" "} + + + Some + + {" "} + ( + + + resolve_ergo_type + + {" "} + + ectxt + {" "} + + tbl + {" "} + ta)
+              + end +
+          + in +
+          + let ctxt :={" "} + + + add_constant_to_namespace_ctxt_current + + {" "} + + ctxt + {" "} + ln{" "} + + an + {" "} + in +
+          + + elift2 + {" "} + (fun ta{" "} + x => ( + + DConstant + {" "} + prov ln{" "} + + ta + {" "} + + x + + ,{" "} + + ctxt + + )) +
+                 + + rta + +
+                ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e)
+       |{" "} + + DFunc + {" "} + prov ln{" "} + fd => +
+          + let an :={" "} + + + absolute_name_of_local_name + + {" "} + + + module_ns + + {" "} + ln in +
+          + let ctxt :={" "} + + + add_function_to_namespace_ctxt_current + + {" "} + + ctxt + {" "} + ln{" "} + + an + {" "} + in +
+          + + elift + {" "} + (fun x => ( + + DFunc + {" "} + prov{" "} + + an + {" "} + + x + + ,{" "} + + ctxt + + )) ( + + + resolve_ergo_function + + {" "} + + + module_ns + + {" "} + + ectxt + {" "} + + tbl + {" "} + fd)
+       |{" "} + + DContract + {" "} + prov ln{" "} + c => +
+          + let an :={" "} + + + absolute_name_of_local_name + + {" "} + + + module_ns + + {" "} + ln in +
+          + let ctxt :={" "} + + + add_contract_to_namespace_ctxt_current + + {" "} + + ctxt + {" "} + ln{" "} + + an + {" "} + in +
+          + + elift + {" "} + (fun x => ( + + DContract + {" "} + prov{" "} + + an + {" "} + + x + + ,{" "} + + ctxt + + )) ( + + + resolve_ergo_contract + + {" "} + + + module_ns + + {" "} + + ectxt + {" "} + + tbl + {" "} + c)
+       |{" "} + + DSetContract + {" "} + prov rn{" "} + e1 => +
+          + + eolift + {" "} + (fun an => +
+                    + + elift + {" "} + (fun x => ( + + DSetContract + {" "} + prov{" "} + + an + {" "} + + x + + ,{" "} + + ctxt + + )) +
+                         ( + + + resolve_ergo_expr + + {" "} + + ectxt + {" "} + + tbl + {" "} + e1)) +
+                ( + + + resolve_contract_name + + {" "} + prov{" "} + + tbl + {" "} + rn)
+       end.
+
+     Definition{" "} + + resolve_ergo_declarations + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + decls:{" "} + + + list + + {" "} + + + lrergo_declaration + + + )
+       :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + + ergo_declaration + + {" "} + *{" "} + + + namespace_ctxt + + + ) := +
+        + + + elift_context_fold_left + + +
+          + + + resolve_ergo_declaration + + +
+          + + decls + +
+          + + ctxt + + .
+
+     Definition{" "} + + + silently_resolve_ergo_declarations + + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + decls:{" "} + + + list + + {" "} + + + lrergo_declaration + + + )
+       :{" "} + + eresult + {" "} + + + namespace_ctxt + + {" "} + := +
+        + + elift + {" "} + + snd + {" "} + ( + + + resolve_ergo_declarations + + {" "} + + ctxt + {" "} + + decls + + ). +
+
+   End{" "} + + + NameResolution + + + .
+
+   Section{" "} + + Top + + .
+     Definition{" "} + + init_namespace_ctxt + {" "} + :{" "} + + + namespace_ctxt + + {" "} + := +
+        + + + empty_namespace_ctxt + + {" "} + + no_namespace + + .
+
+     Definition{" "} + + patch_cto_imports + +
+                ( + ctxt_ns: + + + namespace_name + + + )
+                ( + decls:{" "} + + + list + + {" "} + + + lrergo_declaration + + + ) :{" "} + + + list + + {" "} + + + lrergo_declaration + + {" "} + := +
+       if{" "} + + + is_builtin_import + + {" "} + + ctxt_ns + +
+       then ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportSelf + {" "} + + + dummy_provenance + + {" "} + + ctxt_ns + + )) ::{" "} + + decls + +
+       else +
+         ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportAll + {" "} + + + dummy_provenance + + {" "} + + + hyperledger_namespace + + + )) +
+           :: ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportSelf + {" "} + + + dummy_provenance + + {" "} + + ctxt_ns + + )) +
+           ::{" "} + + decls + + .
+
+     Definition{" "} + + patch_ergo_imports + +
+                ( + ctxt_ns: + + + namespace_name + + + )
+                ( + decls:{" "} + + + list + + {" "} + + + lrergo_declaration + + + ) :{" "} + + + list + + {" "} + + + lrergo_declaration + + {" "} + := +
+       if{" "} + + + is_builtin_import + + {" "} + + ctxt_ns + +
+       then{" "} + + app + {" "} + + decls + {" "} + ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportSelf + {" "} + + + dummy_provenance + + {" "} + + ctxt_ns + + ) ::{" "} + + nil + + )
+       else +
+         ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportAll + {" "} + + + dummy_provenance + + {" "} + + + hyperledger_namespace + + + )) +
+           ::( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportAll + {" "} + + + dummy_provenance + + {" "} + + + stdlib_namespace + + + )) +
+           ::( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportSelf + {" "} + + + dummy_provenance + + {" "} + + ctxt_ns + + )) +
+           ::{" "} + + decls + + .
+        +
+     Definition{" "} + + new_cto_package_namespace + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + ns: + + + namespace_name + + + )
+                ( + m: + + lrergo_module + + )
+       :{" "} + + eresult + {" "} + + + namespace_ctxt + + {" "} + := +
+       if{" "} + + + is_builtin_import + + {" "} + + ns + +
+       then{" "} + + esuccess + {" "} + + ctxt + +
+       else +
+          + let{" "} + builtin_cto_imports := +
+             ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportAll + {" "} + + + dummy_provenance + + {" "} + + + hyperledger_namespace + + + )) +
+               :: + ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportSelf + {" "} + + + dummy_provenance + + {" "} + + ns + + )) +
+               ::{" "} + + nil + +
+          + in +
+          + let ctxt :={" "} + + + new_namespace_scope + + {" "} + + ctxt + {" "} + + ns + {" "} + in +
+          + let ctxt :={" "} + + + namespace_ctxt_of_ergo_module + + {" "} + + ctxt + {" "} + + m + {" "} + in
+          + + + silently_resolve_ergo_declarations + + {" "} + + ctxt + {" "} + + + builtin_cto_imports + + + .
+
+     Definition{" "} + + new_ergo_module_namespace + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + ns: + + + namespace_name + + + )
+       :{" "} + + eresult + {" "} + + + namespace_ctxt + + {" "} + := +
+       if{" "} + + + is_builtin_import + + {" "} + + ns + +
+       then{" "} + + esuccess + {" "} + + ctxt + +
+       else +
+          + let{" "} + builtin_cto_imports := +
+             ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportAll + {" "} + + + dummy_provenance + + {" "} + + + hyperledger_namespace + + + )) +
+               ::( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportAll + {" "} + + + dummy_provenance + + {" "} + + + stdlib_namespace + + + )) +
+               ::( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportSelf + {" "} + + + dummy_provenance + + {" "} + + ns + + )) +
+               ::{" "} + + nil + +
+          + in +
+          + let ctxt :={" "} + + + new_namespace_scope + + {" "} + + ctxt + {" "} + + ns + {" "} + in +
+          + + + silently_resolve_ergo_declarations + + {" "} + + ctxt + {" "} + + + builtin_cto_imports + + + .
+
+     Definition{" "} + + resolve_cto_package + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + cto: + + lrcto_package + + ) :{" "} + + eresult + {" "} + ( + + laergo_module + {" "} + *{" "} + + + namespace_ctxt + + + ) := +
+       let{" "} + m :={" "} + + + cto_package_to_ergo_module + + {" "} + + cto + {" "} + in +
+       let{" "} + module_ns :={" "} + + m + + .( + + + module_namespace + + + ) in +
+       let{" "} + ctxt :={" "} + + + new_namespace_scope + + {" "} + + ctxt + {" "} + + + module_ns + + {" "} + in +
+       let{" "} + ctxt :={" "} + + + namespace_ctxt_of_ergo_module + + {" "} + + ctxt + {" "} + + m + {" "} + in
+       let{" "} + declarations :={" "} + + m + + .( + + + module_declarations + + + ) in +
+       let{" "} + ctxt_ns :={" "} + + ctxt + + .( + + + namespace_ctxt_namespace + + + ) in +
+        + + elift + +
+         ( + fun nc => +
+            ( + + mkModule + +
+                + + m + + .( + + module_annot + + )
+                + + m + + .( + + module_file + + )
+                + + + module_ns + + +
+               ( + + fst + {" "} + + nc + + ),{" "} + + snd + {" "} + + nc + + )) +
+         ( + + + resolve_ergo_declarations + + +
+             + + ctxt + +
+            ( + + + patch_cto_imports + + {" "} + + + module_ns + + {" "} + + + declarations + + + )). +
+
+     Definition{" "} + + resolve_ergo_module + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + m: + + lrergo_module + + ) :{" "} + + eresult + {" "} + ( + + laergo_module + {" "} + *{" "} + + + namespace_ctxt + + + ) := +
+       let{" "} + module_ns :={" "} + + m + + .( + + + module_namespace + + + ) in +
+       let{" "} + ctxt :={" "} + + + new_namespace_scope + + {" "} + + ctxt + {" "} + + + module_ns + + {" "} + in +
+       let{" "} + declarations :={" "} + + m + + .( + + + module_declarations + + + ) in +
+       let{" "} + ctxt_ns :={" "} + + ctxt + + .( + + + namespace_ctxt_namespace + + + ) in +
+        + + elift + +
+         ( + fun nc => +
+            ( + + mkModule + +
+                + + m + + .( + + module_annot + + )
+                + + m + + .( + + module_file + + )
+                + + + module_ns + + +
+               ( + + fst + {" "} + + nc + + ),{" "} + + snd + {" "} + + nc + + )) +
+         ( + + + resolve_ergo_declarations + + +
+             + + ctxt + +
+            ( + + + patch_ergo_imports + + {" "} + + + module_ns + + {" "} + + + declarations + + + )). +
+
+     Definition{" "} + + resolve_ergo_modules + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + ml: + + + list + + {" "} + + lrergo_module + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_module + {" "} + *{" "} + + + namespace_ctxt + + + ) := +
+        + + + elift_context_fold_left + + +
+          + + + resolve_ergo_module + + +
+          + + ml + +
+          + + ctxt + + .
+
+     Definition{" "} + + resolve_cto_packages + +
+                ( + ctxt: + + + namespace_ctxt + + + )
+                ( + ctos: + + + list + + {" "} + + lrcto_package + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + laergo_module + {" "} + *{" "} + + + namespace_ctxt + + + ) := +
+       let{" "} + ctxt :={" "} + + + namespace_ctxt_of_cto_packages + + {" "} + + ctxt + {" "} + + ctos + {" "} + in
+        + + + elift_context_fold_left + + +
+          + + + resolve_cto_package + + +
+          + + ctos + +
+          + + ctxt + + .
+
+     Fixpoint{" "} + + split_ctos_and_ergos + {" "} + (inputs: + + + list + + {" "} + + lrergo_input + + )
+       : ( + + + list + + {" "} + + lrcto_package + {" "} + *{" "} + + + list + + {" "} + + lrergo_module + {" "} + *{" "} + + + option + + {" "} + + lrergo_module + + ) := +
+       match{" "} + + inputs + {" "} + with +
+       |{" "} + + nil + {" "} + => ( + + nil + + ,{" "} + + nil + + ,{" "} + + + None + + + )
+       |{" "} + + InputCTO + {" "} + cto :: rest => +
+          + let '(ctos',{" "} + rest', p') :={" "} + + + split_ctos_and_ergos + + {" "} + rest in +
+         ( + cto :: ctos',{" "} + rest', p') +
+       |{" "} + + InputErgo + {" "} + ml :: rest => +
+          + let '(ctos',{" "} + rest', p') :={" "} + + + split_ctos_and_ergos + + {" "} + rest in +
+          + match p'{" "} + with +
+         |{" "} + + + None + + {" "} + => +
+            + if{" "} + + + is_builtin_import + + {" "} + ml.( + + + module_namespace + + + )
+            + then (ctos',{" "} + ml :: rest',{" "} + + + None + + + )
+            + else (ctos',{" "} + rest',{" "} + + + Some + + {" "} + ml)
+         |{" "} + + + Some + + {" "} + _ => (ctos',{" "} + ml :: rest',{" "} + p') +
+          + end +
+       end.
+
+   End{" "} + + + Top + + + .
+
+   Section{" "} + + Examples + + .
+     Local{" "} + Open Scope{" "} + string.
+     Definition{" "} + + ergo_typed1 + {" "} + :{" "} + + + lrergo_type_declaration + + {" "} + := +
+        + + + mkErgoTypeDeclaration + + +
+          + + + dummy_provenance + + +
+         " + c1"
+         ( + + + ErgoTypeConcept + + +
+             + + + false + + +
+             + + + None + + +
+            ((" + a",{" "} + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )
+               ::(" + b", ( + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + ( + + + None + + + , "c3"))):: + + nil + + )). +
+
+     Definition{" "} + + ergo_typed2 + {" "} + :{" "} + + + lrergo_type_declaration + + {" "} + := +
+        + + + mkErgoTypeDeclaration + + +
+          + + + dummy_provenance + + +
+         " + c2"
+         ( + + + ErgoTypeConcept + + +
+             + + + false + + +
+             + + + None + + +
+            ((" + c",{" "} + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )
+               ::(" + d", ( + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + ( + + + None + + + , "c1"))):: + + nil + + )). +
+
+     Definition{" "} + + ergo_funcd1 + {" "} + :{" "} + + lrergo_function + {" "} + := +
+        + + mkFunc + +
+          + + + dummy_provenance + + +
+         ( + + + mkErgoTypeSignature + + +
+             + + + dummy_provenance + + +
+             + + nil + +
+            ( + + + Some + + {" "} + ( + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )) +
+             + + + None + + + )
+          + + + None + + + .
+      +
+     Definition{" "} + + ergo_funcd2 + {" "} + :{" "} + + lrergo_function + {" "} + := +
+        + + mkFunc + +
+          + + + dummy_provenance + + +
+         ( + + + mkErgoTypeSignature + + +
+             + + + dummy_provenance + + +
+             + + nil + +
+            ( + + + Some + + {" "} + ( + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )) +
+             + + + None + + + )
+         ( + + + Some + + {" "} + ( + + ECallFun + {" "} + + + dummy_provenance + + {" "} + "addFee"{" "} + + nil + + )). +
+
+     Definition{" "} + + ergo_clause2 + {" "} + :{" "} + + lrergo_clause + {" "} + := +
+        + + mkClause + +
+          + + + dummy_provenance + + +
+         " + addFee2"
+         ( + + + mkErgoTypeSignature + + +
+             + + + dummy_provenance + + +
+             + + nil + +
+            ( + + + Some + + {" "} + ( + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )) +
+             + + + None + + + )
+         ( + + + Some + + {" "} + ( + + SReturn + {" "} + + + dummy_provenance + + {" "} + ( + + ECallFun + {" "} + + + dummy_provenance + + {" "} + "addFee"{" "} + + nil + + ))). +
+
+     Definition{" "} + + ergo_contractd1 + {" "} + :{" "} + + lrergo_contract + {" "} + := +
+        + + mkContract + +
+          + + + dummy_provenance + + +
+         ( + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )
+          + + + None + + +
+         ( + + + ergo_clause2 + + + :: + + nil + + ). +
+      +
+     Definition{" "} + + ergo_module1 + {" "} + :{" "} + + lrergo_module + {" "} + := +
+        + + mkModule + +
+          + + + dummy_provenance + + +
+         "" +
+         " + n1"
+         ( + + DImport + {" "} + + + dummy_provenance + + {" "} + ( + + ImportAll + {" "} + + + dummy_provenance + + {" "} + "n2") +
+         :: + + DFunc + {" "} + + + dummy_provenance + + {" "} + "addFee"{" "} + + + ergo_funcd1 + + +
+         :: + + DContract + {" "} + + + dummy_provenance + + {" "} + "MyContract"{" "} + + + ergo_contractd1 + + +
+         :: + + DType + {" "} + + + dummy_provenance + + {" "} + + + ergo_typed1 + + +
+         :: + + DType + {" "} + + + dummy_provenance + + {" "} + + + ergo_typed2 + + + :: + + nil + + ). +
+      +
+     Definition{" "} + + ergo_typed3 + {" "} + :{" "} + + + lrergo_type_declaration + + {" "} + := +
+        + + + mkErgoTypeDeclaration + + +
+          + + + dummy_provenance + + +
+         " + c3"
+         ( + + + ErgoTypeConcept + + +
+             + + + false + + +
+             + + + None + + +
+            ((" + a",{" "} + + + ErgoTypeBoolean + + {" "} + + + dummy_provenance + + + )
+               ::(" + b",{" "} + + + ErgoTypeString + + {" "} + + + dummy_provenance + + + ):: + + nil + + )). +
+
+     Definition{" "} + + ergo_typed_top + {" "} + :{" "} + + + lrergo_type_declaration + + {" "} + := +
+        + + + mkErgoTypeDeclaration + + +
+          + + + dummy_provenance + + +
+         " + top"
+         ( + + + ErgoTypeGlobal + + +
+            ( + + ErgoTypeAny + {" "} + + + dummy_provenance + + + )). +
+
+     Definition{" "} + + ergo_module2 + {" "} + :{" "} + + lrergo_module + {" "} + := +
+        + + mkModule + +
+          + + + dummy_provenance + + {" "} + "" "n2" ( + + DType + {" "} + + + dummy_provenance + + {" "} + + + ergo_typed3 + + + :: + + nil + + ). +
+
+     Definition{" "} + + ergo_hl + {" "} + :{" "} + + lrergo_module + {" "} + := +
+        + + mkModule + +
+          + + + dummy_provenance + + {" "} + ""{" "} + + + hyperledger_namespace + + {" "} + ( + + DType + {" "} + + + dummy_provenance + + {" "} + + + ergo_typed_top + + + :: + + nil + + ). +
+
+     Definition{" "} + + ergo_stdlib + {" "} + :{" "} + + lrergo_module + {" "} + := +
+        + + mkModule + +
+          + + + dummy_provenance + + {" "} + ""{" "} + + + stdlib_namespace + + {" "} + ( + + DType + {" "} + + + dummy_provenance + + {" "} + + + ergo_typed_top + + + :: + + nil + + ). +
+
+     Definition{" "} + + ml1 + {" "} + :{" "} + + + list + + {" "} + + lrergo_module + {" "} + :={" "} + + ergo_hl + {" "} + ::{" "} + + + ergo_stdlib + + {" "} + ::{" "} + + + ergo_module2 + + {" "} + ::{" "} + + + ergo_module1 + + {" "} + ::{" "} + + nil + + .
+     Definition{" "} + + aml1 + {" "} + :={" "} + + + resolve_ergo_modules + + {" "} + ( + + + empty_namespace_ctxt + + {" "} + "TEST"){" "} + + ml1 + + .
+
+     Definition{" "} + + ml2 + {" "} + :{" "} + + + list + + {" "} + + lrergo_module + {" "} + :={" "} + + ergo_hl + {" "} + ::{" "} + + + ergo_stdlib + + {" "} + ::{" "} + + + ergo_module2 + + {" "} + ::{" "} + + nil + + .
+     Definition{" "} + + aml2 + {" "} + :={" "} + + + resolve_ergo_modules + + {" "} + ( + + + empty_namespace_ctxt + + {" "} + "TEST"){" "} + + ml2 + + .
+
+     Definition{" "} + + aml3 + {" "} + :={" "} + + elift + {" "} + (fun mc =>{" "} + + + resolve_ergo_module + + {" "} + ( + + snd + {" "} + + mc + + ){" "} + + + ergo_module1 + + + ){" "} + + aml2 + + .
+   End{" "} + + + Examples + + + .
+    +
+ End{" "} + + + ErgoNameResolution + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.html b/docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.html deleted file mode 100644 index 7db66421..00000000 --- a/docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.html +++ /dev/null @@ -1,523 +0,0 @@ - - - - - - -Module ErgoSpec.Translation.ErgotoErgoC - - - - - - -

Module ErgoSpec.Translation.ErgotoErgoC

-
-
-
Translates contract logic to calculus
-
-Require Import String.
-Require Import List.
-
-Require Import ErgoSpec.Backend.ErgoBackend.
-Require Import ErgoSpec.Common.Utils.Misc.
-Require Import ErgoSpec.Common.Utils.Provenance.
-Require Import ErgoSpec.Common.Utils.Names.
-Require Import ErgoSpec.Common.Utils.Result.
-Require Import ErgoSpec.Common.Types.ErgoType.
-Require Import ErgoSpec.Ergo.Lang.Ergo.
-Require Import ErgoSpec.ErgoC.Lang.ErgoC.
-Require Import ErgoSpec.ErgoC.Lang.ErgoCSugar.
-Require Import ErgoSpec.Translation.ErgoCompContext.
-
-Section ErgotoErgoC.
-  Context {bm:brand_model}.
-
-
Translate Ergo expression to calculus
-  Fixpoint ergo_expr_to_ergoc_expr (ctxt:compilation_context) (e:laergo_expr) : eresult ergoc_expr :=
-    match e with
-    | EThisContract prov =>
-      match ctxt.(compilation_context_current_contract) with
-      | None => use_contract_not_in_contract_error prov
-      | Some _ => esuccess (thisContract prov)
-      end
-    | EThisClause prov =>
-      match ctxt.(compilation_context_current_clause) with
-      | None => not_in_clause_error prov
-      | Some clause_name =>
-        esuccess (thisClause prov clause_name)
-      end
-    | EThisState prov =>
-      esuccess (thisState prov)
-    | EVar prov v =>
-      esuccess (EVar prov v)
-    | EConst prov d =>
-      esuccess (EConst prov d)
-    | ENone prov =>
-      esuccess (ENone prov)
-    | ESome prov e =>
-      elift
-        (ESome prov)
-        (ergo_expr_to_ergoc_expr ctxt e)
-    | EArray prov el =>
-      let init_el := esuccess nil in
-      let proc_one (e:laergo_expr) (acc:eresult (list ergoc_expr)) : eresult (list ergoc_expr) :=
-          elift2
-            cons
-            (ergo_expr_to_ergoc_expr ctxt e)
-            acc
-      in
-      elift (EArray prov) (fold_right proc_one init_el el)
-    | EUnaryOp prov u e =>
-      elift
-        (EUnaryOp prov u)
-        (ergo_expr_to_ergoc_expr ctxt e)
-    | EBinaryOp prov b e1 e2 =>
-      elift2 (EBinaryOp prov b)
-             (ergo_expr_to_ergoc_expr ctxt e1)
-             (ergo_expr_to_ergoc_expr ctxt e2)
-    | EIf prov e1 e2 e3 =>
-      elift3 (EIf prov)
-             (ergo_expr_to_ergoc_expr ctxt e1)
-             (ergo_expr_to_ergoc_expr ctxt e2)
-             (ergo_expr_to_ergoc_expr ctxt e3)
-    | ELet prov v ta e1 e2 =>
-      elift2 (ELet prov v ta)
-             (ergo_expr_to_ergoc_expr ctxt e1)
-             (ergo_expr_to_ergoc_expr ctxt e2)
-    | ENew prov cr el =>
-      if is_abstract_class ctxt cr
-      then
-        efailure (ECompilationError prov ("Cannot create instance of abstract type `" ++ cr ++ "'"))
-      else
-        let init_rec := esuccess nil in
-        let proc_one (att:string * laergo_expr) (acc:eresult (list (string * ergoc_expr))) :=
-            let attname := fst att in
-            let e := ergo_expr_to_ergoc_expr ctxt (snd att) in
-            elift2 (fun e => fun acc => (attname,e)::acc) e acc
-        in
-        elift (ENew prov cr) (fold_right proc_one init_rec el)
-    | ERecord prov el =>
-      let init_rec := esuccess nil in
-      let proc_one (att:string * laergo_expr) (acc:eresult (list (string * ergoc_expr))) :=
-          let attname := fst att in
-          let e := ergo_expr_to_ergoc_expr ctxt (snd att) in
-          elift2 (fun e => fun acc => (attname,e)::acc) e acc
-      in
-      elift (ERecord prov) (fold_right proc_one init_rec el)
-    | ECallFun prov fname el =>
-      let init_el := esuccess nil in
-      let proc_one (e:laergo_expr) (acc:eresult (list ergoc_expr)) : eresult (list ergoc_expr) :=
-          elift2
-            cons
-            (ergo_expr_to_ergoc_expr ctxt e)
-            acc
-      in
-      elift (ECallFun prov fname) (fold_right proc_one init_el el)
-    | ECallFunInGroup prov gname fname el =>
-      let init_el := esuccess nil in
-      let proc_one (e:laergo_expr) (acc:eresult (list ergoc_expr)) : eresult (list ergoc_expr) :=
-          elift2
-            cons
-            (ergo_expr_to_ergoc_expr ctxt e)
-            acc
-      in
-      elift (ECallFunInGroup prov gname fname) (fold_right proc_one init_el el)
-    | EMatch prov e0 ecases edefault =>
-        let ec0 := ergo_expr_to_ergoc_expr ctxt e0 in
-        let eccases :=
-            let proc_one acc ecase :=
-                eolift
-                  (fun acc =>
-                     elift (fun x => (fst ecase, x)::acc)
-                           (ergo_expr_to_ergoc_expr ctxt (snd ecase))) acc
-            in
-            fold_left proc_one ecases (esuccess nil)
-        in
-        let ecdefault := ergo_expr_to_ergoc_expr ctxt edefault in
-        eolift
-          (fun ec0 : ergoc_expr =>
-             eolift
-               (fun eccases =>
-                  elift
-                    (fun ecdefault : ergoc_expr =>
-                       EMatch prov ec0 eccases ecdefault)
-                    ecdefault) eccases) ec0
-    | EForeach prov foreachs econd e2 =>
-      let init_e2 := elift (EUnaryOp prov OpBag) (ergo_expr_to_ergoc_expr ctxt e2) in
-      let init_e :=
-          match econd with
-          | Some econd =>
-            elift2
-              (fun econd e2 =>
-                 EIf prov
-                     econd
-                     e2
-                     (EConst prov (dcoll nil)))
-              (ergo_expr_to_ergoc_expr ctxt econd)
-              init_e2
-          | None => init_e2
-          end
-      in
-      let proc_one (foreach:string * laergo_expr) (acc:eresult ergoc_expr) : eresult ergoc_expr :=
-          let v := fst foreach in
-          let e := ergo_expr_to_ergoc_expr ctxt (snd foreach) in
-          elift (EUnaryOp prov OpFlatten)
-                (eolift (fun single =>
-                           elift
-                             (EForeach prov
-                                       ((v,single)::nil)
-                                       None) acc)
-                        e)
-      in
-      fold_right proc_one init_e foreachs
-    end.
-
-
Translate an Ergo statement to an Ergo expression
-  Fixpoint ergo_stmt_to_expr (ctxt:compilation_context) (s:laergo_stmt) : eresult ergoc_expr :=
-    match s with
-    | SReturn prov e =>
-      elift (fun e =>
-               ESuccess prov
-                        (mkResult
-                           prov
-                           e
-                           (EVar prov local_state)
-                           (EVar prov local_emit)))
-            (ergo_expr_to_ergoc_expr ctxt e)
-    | SFunReturn prov e =>
-      ergo_expr_to_ergoc_expr ctxt e
-    | SThrow prov e =>
-      elift (EError prov)
-            (ergo_expr_to_ergoc_expr ctxt e)
-    | SCallClause prov (EThisContract _) clname el =>
-      match ctxt.(compilation_context_current_contract) with
-      | None => call_clause_not_in_contract_error prov clname
-      | Some coname =>
-        let params :=
-            if string_dec clname clause_init_name
-            then
-              ((EVar prov current_time)
-                 ::(thisContract prov)
-                 ::(EConst prov dunit)
-                 ::(EVar prov local_emit)
-                 ::el)
-            else
-              ((EVar prov current_time)
-                 ::(thisContract prov)
-                 ::(EVar prov local_state)
-                 ::(EVar prov local_emit)
-                 ::el)
-        in
-        let el := emaplift (ergo_expr_to_ergoc_expr ctxt) el in
-        elift (fun el =>
-                 ECallFunInGroup
-                   prov
-                   coname
-                   clname
-                   params) el
-      end
-    | SCallClause _ e0 _ _ =>
-      clause_call_not_on_contract_error (expr_annot e0)
-    | SSetState prov e1 s2 =>
-      elift2 (setState prov)
-             (ergo_expr_to_ergoc_expr ctxt e1)
-             (ergo_stmt_to_expr ctxt s2)
-    | SEmit prov e1 s2 =>
-      elift2 (pushEmit prov)
-             (ergo_expr_to_ergoc_expr ctxt e1)
-             (ergo_stmt_to_expr ctxt s2)
-    | SLet prov vname vtype e1 s2 =>
-      elift2
-        (ELet prov vname vtype)
-        (ergo_expr_to_ergoc_expr ctxt e1)
-        (ergo_stmt_to_expr ctxt s2)
-    | SIf prov e1 s2 s3 =>
-      elift3
-        (EIf prov)
-             (ergo_expr_to_ergoc_expr ctxt e1)
-             (ergo_stmt_to_expr ctxt s2)
-             (ergo_stmt_to_expr ctxt s3)
-    | SEnforce prov e1 None s3 =>
-      elift3 (EIf prov)
-             (elift (EUnaryOp prov OpNeg) (ergo_expr_to_ergoc_expr ctxt e1))
-             (esuccess (EError prov
-                               (EConst prov (enforce_error_content prov ""))))
-             (ergo_stmt_to_expr ctxt s3)
-    | SEnforce prov e1 (Some s2) s3 =>
-      elift3 (EIf prov)
-             (elift (EUnaryOp prov OpNeg) (ergo_expr_to_ergoc_expr ctxt e1))
-             (ergo_stmt_to_expr ctxt s2)
-             (ergo_stmt_to_expr ctxt s3)
-    | SMatch prov e0 scases sdefault =>
-      let ec0 := ergo_expr_to_ergoc_expr ctxt e0 in
-      let sccases :=
-          let proc_one acc scase :=
-              eolift
-                (fun acc =>
-                   elift (fun x => (fst scase, x)::acc)
-                         (ergo_stmt_to_expr ctxt (snd scase))) acc
-          in
-          fold_left proc_one scases (esuccess nil)
-      in
-      let scdefault := ergo_stmt_to_expr ctxt sdefault in
-      eolift
-        (fun ec0 : ergoc_expr =>
-           eolift
-             (fun sccases =>
-                elift
-                  (fun scdefault : ergoc_expr =>
-                     EMatch prov ec0 sccases scdefault)
-                  scdefault) sccases) ec0
-    end.
-
-  Definition ergo_stmt_to_expr_top (ctxt:compilation_context) (prov:provenance) (e:ergo_stmt) : eresult ergoc_expr :=
-    elift (fun e =>
-             ELet prov
-                  local_state
-                  None
-                  (EVar prov this_state)
-                  (ELet prov local_emit None
-                        (EVar prov this_emit)
-                        e))
-          (ergo_stmt_to_expr ctxt e).
-
-
Translate a clause to clause+calculus
-
-  Definition clause_to_calculus
-             (ctxt:compilation_context)
-             (tem:laergo_type)
-             (sta:option laergo_type)
-             (c:laergo_clause) : eresult (local_name * ergoc_function) :=
-    let ctxt : compilation_context := set_current_clause ctxt c.(clause_name) in
-    let prov := ProvClause (loc_of_provenance c.(clause_annot)) c.(clause_name) in
-    let emit_type := lift_default_emits_type prov c.(clause_sig).(type_signature_emits) in
-    let state_type := lift_default_state_type prov sta in
-    let throw_type := default_throws_type prov in
-    let output_type :=
-        let response_type' := c.(clause_sig).(type_signature_output) in
-        match response_type' with
-        | None => None
-        | Some response_type =>
-          let success_type := mk_success_type prov response_type state_type emit_type in
-          let error_type := mk_error_type prov throw_type in
-          Some (mk_output_type prov success_type error_type)
-        end
-    in
-    let body :=
-        match c.(clause_body) with
-        | None => esuccess None
-        | Some stmt =>
-          elift Some (ergo_stmt_to_expr_top ctxt prov stmt)
-        end
-    in
-    let clname := c.(clause_name) in
-    let params :=
-        if string_dec clname clause_init_name
-        then
-          ((current_time, (ErgoTypeDateTime prov))
-             ::(this_contract, tem)
-             ::(this_state, ErgoTypeUnit prov)
-             ::(this_emit, ErgoTypeArray prov (ErgoTypeNothing prov))
-             ::c.(clause_sig).(type_signature_params))
-        else
-          ((current_time, (ErgoTypeDateTime prov))
-             ::(this_contract, tem)
-             ::(this_state, state_type)
-             ::(this_emit, ErgoTypeArray prov (ErgoTypeNothing prov))
-             ::c.(clause_sig).(type_signature_params))
-    in
-    elift
-      (fun body =>
-         (clname,
-          mkFuncC
-            prov
-            (mkSigC
-               params
-               output_type)
-            body))
-      body.
-
-
Translate a function to function+calculus
-  Definition function_to_calculus
-             (ctxt:compilation_context)
-             (f:laergo_function) : eresult ergoc_function :=
-    let prov := f.(function_annot) in
-    let body :=
-        match f.(function_body) with
-        | None => esuccess None
-        | Some e =>
-          elift Some (ergo_expr_to_ergoc_expr ctxt e)
-        end
-    in
-    elift
-      (mkFuncC
-        f.(function_annot)
-        (mkSigC
-          f.(function_sig).(type_signature_params)
-          f.(function_sig).(type_signature_output)))
-      body.
-
-
Translate a contract to a contract+calculus
-
For a contract, add 'contract' and 'now' to the comp_context
-
-  Definition contract_to_calculus
-             (ctxt:compilation_context)
-             (c:laergo_contract) : eresult ergoc_contract :=
-    let clauses :=
-        emaplift (clause_to_calculus ctxt c.(contract_template) c.(contract_state)) c.(contract_clauses)
-    in
-    elift
-      (mkContractC
-         c.(contract_annot))
-      clauses.
-
-
Translate a statement to a statement+calculus
-  Definition declaration_to_calculus
-             (ctxt:compilation_context)
-             (d:laergo_declaration) : eresult (list ergoc_declaration * compilation_context) :=
-    match d with
-    | DNamespace prov ns => esuccess (nil, ctxt)
-    | DImport prov import => esuccess (nil, ctxt)
-    | DType prov ergo_type =>
-      let name := ergo_type.(type_declaration_name) in
-      if in_dec string_dec name (map type_declaration_name
-                            (ctxt.(compilation_context_new_type_decls) ++
-                             ctxt.(compilation_context_type_decls))) then
-        efailure (ECompilationError prov ("Cannot redefine type `" ++ name ++ "'"))
-      else
-        esuccess (nil, compilation_context_add_new_type_declaration ctxt ergo_type)
-    | DStmt prov s =>
-      elift
-        (fun x => (x::nil, ctxt))
-        (elift (DCExpr prov) (ergo_stmt_to_expr_top ctxt prov s))
-    | DConstant prov v ta e =>
-      elift
-        (fun x => (x::nil, ctxt))
-        (elift (DCConstant prov v ta) (ergo_expr_to_ergoc_expr ctxt e))
-    | DFunc prov fn f =>
-      elift
-        (fun x => (x::nil, ctxt))
-        (elift (DCFunc prov fn) (function_to_calculus ctxt f))
-    | DContract prov cn c =>
-      elift
-        (fun x => (x::nil, ctxt))
-        (elift (DCContract prov cn)
-               (let ctxt := set_current_contract ctxt cn in
-                contract_to_calculus ctxt c))
-    | DSetContract prov cn e1 =>
-      let ctxt := set_current_contract ctxt cn in
-      elift
-        (fun x => (x :: (DCConstant prov this_state None (EConst prov dunit)) :: nil,ctxt))
-        (elift (DCConstant prov this_contract None)
-               (ergo_expr_to_ergoc_expr ctxt e1))
-    end.
-
-
Translate a module to a module+calculus
-  Definition declarations_calculus
-             (ctxt:compilation_context)
-             (dl:list ergo_declaration) : eresult (list ergoc_declaration * compilation_context) :=
-    let proc_one
-          (acc:eresult (list ergoc_declaration * compilation_context))
-          (d:ergo_declaration)
-        : eresult (list ergoc_declaration * compilation_context) :=
-        eolift
-          (fun acc : list ergoc_declaration * compilation_context =>
-             let (acc, ctxt) := acc in
-             elift (fun decls : list ergoc_declaration * compilation_context =>
-                      let (decls, ctxt) := decls in
-                      (acc ++ decls, ctxt))
-                   (declaration_to_calculus ctxt d))
-          acc
-    in
-    fold_left proc_one dl (esuccess (nil, ctxt)).
-
-
Translate a module to a module+calculus
-  Definition ergo_module_to_calculus
-             (ctxt:compilation_context)
-             (p:laergo_module) : eresult (ergoc_module * compilation_context) :=
-    elift
-      (fun res : list ergoc_declaration * compilation_context =>
-         let (decls, ctxt) := res in
-         (mkModuleC
-            p.(module_annot)
-            p.(module_namespace)
-            decls, ctxt))
-      (declarations_calculus ctxt p.(module_declarations)).
-
-  Definition ergo_modules_to_calculus
-             (ctxt:compilation_context)
-             (pl:list laergo_module) : eresult (list ergoc_module * compilation_context) :=
-    elift_context_fold_left
-      ergo_module_to_calculus
-      pl
-      ctxt.
-
-  Section Examples.
-    Definition f1 : laergo_function :=
-      mkFunc dummy_provenance
-             (mkErgoTypeSignature
-                dummy_provenance
-                (("rate"%string, ErgoTypeDouble dummy_provenance)::nil)
-                (Some (ErgoTypeAny dummy_provenance))
-                None)
-             (Some (EConst dummy_provenance (dfloat float_one))).
-    Definition f2 : laergo_function :=
-      mkFunc dummy_provenance
-             (mkErgoTypeSignature
-                dummy_provenance
-                (("rate"%string, ErgoTypeDouble dummy_provenance)::nil)
-                (Some (ErgoTypeAny dummy_provenance))
-                None)
-             (Some (EThisContract dummy_provenance)).
-    Definition cl1 : laergo_clause :=
-      mkClause dummy_provenance
-               "volumediscount"%string
-               (mkErgoTypeSignature
-                  dummy_provenance
-                  (("request"%string, ErgoTypeClassRef dummy_provenance default_request_absolute_name)::nil)
-                  (Some (ErgoTypeAny dummy_provenance))
-                  None)
-               (Some (SReturn
-                        dummy_provenance
-                        (ECallFun dummy_provenance "addFee"
-                                  (EConst dummy_provenance (dfloat float_zero)::nil)))).
-    Definition cl2 : laergo_clause :=
-      mkClause dummy_provenance
-               "volumediscount"%string
-               (mkErgoTypeSignature
-                  dummy_provenance
-                  (("request"%string, ErgoTypeClassRef dummy_provenance default_request_absolute_name)::nil)
-                  (Some (ErgoTypeAny dummy_provenance))
-                  None)
-               (Some (SReturn
-                        dummy_provenance
-                        (ECallFun dummy_provenance "addFee"
-                                  (EThisContract dummy_provenance::nil)))).
-    Definition co1 : laergo_contract :=
-      mkContract
-        dummy_provenance
-        (ErgoTypeClassRef dummy_provenance "TemplateModel"%string)
-        None
-        (cl1::cl2::nil).
-
-    Definition dl1 : list laergo_declaration :=
-      (DFunc dummy_provenance "addFee"%string f1)
-        :: (DContract dummy_provenance "VolumeDiscount"%string co1)
-        :: nil.
-
-    Definition dl2 : list laergo_declaration :=
-      (DFunc dummy_provenance "addFee"%string f1)
-        :: (DFunc dummy_provenance "addFee2"%string f2)
-        :: (DContract dummy_provenance "VolumeDiscount"%string co1)
-        :: nil.
-
-  End Examples.
-
-End ErgotoErgoC.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.jsx b/docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.jsx new file mode 100644 index 00000000..0bcca53b --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Translation.ErgotoErgoC.jsx @@ -0,0 +1,4848 @@ +
+ + Module ErgoSpec.Translation.ErgotoErgoC + + +

Module ErgoSpec.Translation.ErgotoErgoC

+
+
+
Translates contract logic to calculus
+
+ + Require + Import{" "} + +
String + + .
+ + Require + Import{" "} + + List + + .
+
+ + Require + Import{" "} + + + ErgoSpec.Backend.ErgoBackend + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Misc + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Provenance + + + .
+ + Require + Import{" "} + + ErgoSpec.Common.Utils.Names + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Utils.Result + + + .
+ + Require + Import{" "} + + + ErgoSpec.Common.Types.ErgoType + + + .
+ + Require + Import{" "} + + ErgoSpec.Ergo.Lang.Ergo + + .
+ + Require + Import{" "} + + ErgoSpec.ErgoC.Lang.ErgoC + + .
+ + Require + Import{" "} + + + ErgoSpec.ErgoC.Lang.ErgoCSugar + + + .
+ + Require + Import{" "} + + + ErgoSpec.Translation.ErgoCompContext + + + .
+
+ Section{" "} + + ErgotoErgoC + + .
+   Context {"{"} + bm: + + + brand_model + + + {"}"}.
+
+
Translate Ergo expression to calculus
+   Fixpoint{" "} + + ergo_expr_to_ergoc_expr + {" "} + (ctxt: + + + compilation_context + + + ) (e: + + laergo_expr + + ) :{" "} + + eresult + {" "} + + ergoc_expr + {" "} + := +
+     match{" "} + + e + {" "} + with +
+     |{" "} + + EThisContract + {" "} + prov => +
+       match{" "} + + ctxt + + .( + + + compilation_context_current_contract + + + ) with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + use_contract_not_in_contract_error + + {" "} + prov +
+       |{" "} + + + Some + + {" "} + _ =>{" "} + + esuccess + {" "} + ( + + + thisContract + + {" "} + prov)
+       end +
+     |{" "} + + EThisClause + {" "} + prov =>
+       match{" "} + + ctxt + + .( + + + compilation_context_current_clause + + + ) with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + not_in_clause_error + + {" "} + prov +
+       |{" "} + + + Some + + {" "} + clause_name => +
+          + + esuccess + {" "} + ( + + thisClause + {" "} + prov clause_name) +
+       end +
+     |{" "} + + EThisState + {" "} + prov => +
+        + + esuccess + {" "} + ( + + thisState + {" "} + prov)
+     |{" "} + + EVar + {" "} + prov v => +
+        + + esuccess + {" "} + ( + + EVar + {" "} + prov v)
+     |{" "} + + EConst + {" "} + prov d => +
+        + + esuccess + {" "} + ( + + EConst + {" "} + prov d)
+     |{" "} + + ENone + {" "} + prov => +
+        + + esuccess + {" "} + ( + + ENone + {" "} + prov)
+     |{" "} + + ESome + {" "} + prov e => +
+        + + elift + +
+         ( + + ESome + {" "} + prov)
+         ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + + e + + )
+     |{" "} + + EArray + {" "} + prov el => +
+       let{" "} + init_el :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+       let{" "} + proc_one (e: + + laergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + + ergoc_expr + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + ergoc_expr + + ) := +
+            + + elift2 + +
+              + + + cons + + +
+             ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + + e + + )
+              + + acc + +
+       in +
+        + + elift + {" "} + ( + + EArray + {" "} + prov) ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_el + {" "} + el)
+     |{" "} + + EUnaryOp + {" "} + prov u{" "} + e => +
+        + + elift + +
+         ( + + EUnaryOp + {" "} + prov u)
+         ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + + e + + )
+     |{" "} + + EBinaryOp + {" "} + prov b{" "} + e1 e2 => +
+        + + elift2 + {" "} + ( + + EBinaryOp + {" "} + prov b)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e2)
+     |{" "} + + EIf + {" "} + prov e1{" "} + e2 e3 => +
+        + + elift3 + {" "} + ( + + EIf + {" "} + prov)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e2)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e3)
+     |{" "} + + ELet + {" "} + prov v{" "} + ta e1{" "} + e2 => +
+        + + elift2 + {" "} + ( + + ELet + {" "} + prov v{" "} + ta)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e2)
+     |{" "} + + ENew + {" "} + prov cr{" "} + el => +
+       if{" "} + + + is_abstract_class + + {" "} + + ctxt + {" "} + cr +
+       then +
+          + + efailure + {" "} + ( + + + ECompilationError + + {" "} + prov ("Cannot{" "} + create instance{" "} + of abstract{" "} + type `" ++ cr ++ + "'")) +
+       else +
+          + let init_rec :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+          + let proc_one ( + att: + + + string + + {" "} + *{" "} + + laergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_expr + + ))) := +
+              + let attname :={" "} + + fst + {" "} + + att + {" "} + in +
+              + let e :={" "} + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + ( + + snd + {" "} + + att + + ) in +
+              + + elift2 + {" "} + (fun e =>{" "} + fun acc => ( + + attname + + , + + e + + ):: + + acc + + ){" "} + + e + {" "} + + acc + +
+          + in +
+          + + elift + {" "} + ( + + ENew + {" "} + prov cr) ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_rec + {" "} + el)
+     |{" "} + + ERecord + {" "} + prov el => +
+       let{" "} + init_rec :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+       let{" "} + proc_one (att: + + + string + + {" "} + *{" "} + + laergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + ( + + + string + + {" "} + *{" "} + + ergoc_expr + + ))) := +
+            + let attname :={" "} + + fst + {" "} + + att + {" "} + in +
+            + let e :={" "} + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + ( + + snd + {" "} + + att + + ) in +
+            + + elift2 + {" "} + (fun e =>{" "} + fun acc => ( + + attname + + , + + e + + ):: + + acc + + ){" "} + + e + {" "} + + acc + +
+       in +
+        + + elift + {" "} + ( + + ERecord + {" "} + prov) ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_rec + {" "} + el)
+     |{" "} + + ECallFun + {" "} + prov fname{" "} + el => +
+       let{" "} + init_el :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+       let{" "} + proc_one (e: + + laergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + + ergoc_expr + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + ergoc_expr + + ) := +
+            + + elift2 + +
+              + + + cons + + +
+             ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + + e + + )
+              + + acc + +
+       in +
+        + + elift + {" "} + ( + + ECallFun + {" "} + prov fname) ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_el + {" "} + el)
+     |{" "} + + ECallFunInGroup + {" "} + prov gname{" "} + fname el => +
+       let{" "} + init_el :={" "} + + esuccess + {" "} + + nil + {" "} + in +
+       let{" "} + proc_one (e: + + laergo_expr + + ) (acc: + + eresult + {" "} + ( + + + list + + {" "} + + ergoc_expr + + )) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + ergoc_expr + + ) := +
+            + + elift2 + +
+              + + + cons + + +
+             ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + + e + + )
+              + + acc + +
+       in +
+        + + elift + {" "} + ( + + ECallFunInGroup + {" "} + prov gname{" "} + fname) ( + + + fold_right + + {" "} + + proc_one + {" "} + + init_el + {" "} + el)
+     |{" "} + + EMatch + {" "} + prov e0{" "} + ecases edefault{" "} + => +
+          + let ec0 :={" "} + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e0 in +
+          + let eccases := +
+              + let proc_one{" "} + acc ecase := +
+                  + + eolift + +
+                   ( + fun acc => +
+                       + + elift + {" "} + (fun x => ( + + fst + {" "} + + ecase + + ,{" "} + + x + + ):: + + acc + + )
+                            ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + ( + + snd + {" "} + + ecase + + ))){" "} + + acc + +
+              + in +
+              + + + fold_left + + {" "} + + proc_one + {" "} + ecases ( + + esuccess + {" "} + + nil + + )
+          + in +
+          + let ecdefault :={" "} + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + edefault in +
+          + + eolift + +
+           ( + fun ec0 :{" "} + + ergoc_expr + {" "} + => +
+               + + eolift + +
+                ( + fun eccases => +
+                    + + elift + +
+                     ( + fun ecdefault :{" "} + + ergoc_expr + {" "} + => +
+                         + + EMatch + {" "} + prov{" "} + + ec0 + {" "} + + eccases + {" "} + + ecdefault + + )
+                      + + ecdefault + + ){" "} + + eccases + + ){" "} + + ec0 + +
+     |{" "} + + EForeach + {" "} + prov foreachs{" "} + econd e2 => +
+       let{" "} + init_e2 :={" "} + + elift + {" "} + ( + + EUnaryOp + {" "} + prov{" "} + + + OpBag + + + ) ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e2) in +
+       let{" "} + init_e := +
+            + match econd{" "} + with +
+           |{" "} + + + Some + + {" "} + econd => +
+              + + elift2 + +
+               ( + fun econd{" "} + e2 => +
+                   + + EIf + {" "} + prov +
+                       + + econd + +
+                       + + e2 + +
+                      ( + + EConst + {" "} + prov ( + + + dcoll + + {" "} + + nil + + ))) +
+               ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + econd)
+                + + init_e2 + +
+           |{" "} + + + None + + {" "} + =>{" "} + + init_e2 + +
+            + end +
+       in +
+       let{" "} + proc_one (foreach: + + + string + + {" "} + *{" "} + + laergo_expr + + ) (acc: + + eresult + {" "} + + ergoc_expr + + ) :{" "} + + eresult + {" "} + + ergoc_expr + {" "} + := +
+            + let v :={" "} + + fst + {" "} + + foreach + {" "} + in +
+            + let e :={" "} + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + ( + + snd + {" "} + + foreach + + ) in +
+            + + elift + {" "} + ( + + EUnaryOp + {" "} + prov{" "} + + + OpFlatten + + + )
+                 ( + + eolift + {" "} + (fun single => +
+                             + + elift + +
+                              ( + + EForeach + {" "} + prov +
+                                        (( + + v + + , + + single + + ):: + + nil + + )
+                                         + + + None + + + ){" "} + + acc + + )
+                          + + e + + )
+       in +
+        + + + fold_right + + {" "} + + proc_one + {" "} + + init_e + {" "} + foreachs +
+     end.
+
+
+ Translate an Ergo statement to an Ergo expression{" "} +
+   Fixpoint{" "} + + ergo_stmt_to_expr + {" "} + (ctxt: + + + compilation_context + + + ) (s: + + laergo_stmt + + ) :{" "} + + eresult + {" "} + + ergoc_expr + {" "} + := +
+     match{" "} + + s + {" "} + with +
+     |{" "} + + SReturn + {" "} + prov e => +
+        + + elift + {" "} + (fun e => +
+                 + + ESuccess + {" "} + prov +
+                         ( + + mkResult + +
+                             + prov +
+                             + + e + +
+                            ( + + EVar + {" "} + prov{" "} + + local_state + + )
+                            ( + + EVar + {" "} + prov{" "} + + local_emit + + ))) +
+             ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e)
+     |{" "} + + SFunReturn + {" "} + prov e =>
+        + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e +
+     |{" "} + + SThrow + {" "} + prov e => +
+        + + elift + {" "} + ( + + EError + {" "} + prov)
+             ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e)
+     |{" "} + + SCallClause + {" "} + prov ( + + EThisContract + {" "} + _) clname{" "} + el => +
+       match{" "} + + ctxt + + .( + + + compilation_context_current_contract + + + ) with +
+       |{" "} + + + None + + {" "} + =>{" "} + + + call_clause_not_in_contract_error + + {" "} + prov clname +
+       |{" "} + + + Some + + {" "} + coname => +
+          + let params := +
+              + if{" "} + + + string_dec + + {" "} + clname{" "} + + + clause_init_name + + +
+              + then +
+               (( + + EVar + {" "} + prov{" "} + + current_time + + )
+                  ::( + + + thisContract + + {" "} + prov)
+                  ::( + + EConst + {" "} + prov{" "} + + + dunit + + + )
+                  ::( + + EVar + {" "} + prov{" "} + + local_emit + + )
+                  :: + el)
+              + else +
+               (( + + EVar + {" "} + prov{" "} + + current_time + + )
+                  ::( + + + thisContract + + {" "} + prov)
+                  ::( + + EVar + {" "} + prov{" "} + + local_state + + )
+                  ::( + + EVar + {" "} + prov{" "} + + local_emit + + )
+                  :: + el)
+          + in +
+          + let el :={" "} + + emaplift + {" "} + ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + + ) el in +
+          + + elift + {" "} + (fun el => +
+                   + + ECallFunInGroup + +
+                     + prov +
+                     + coname +
+                     + clname +
+                     + + params + + ){" "} + + el + +
+       end +
+     |{" "} + + SCallClause + {" "} + _ e0{" "} + _ _ => +
+        + + + clause_call_not_on_contract_error + + {" "} + ( + + expr_annot + {" "} + e0)
+     |{" "} + + SSetState + {" "} + prov e1{" "} + s2 => +
+        + + elift2 + {" "} + ( + + setState + {" "} + prov)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)
+              ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + s2)
+     |{" "} + + SEmit + {" "} + prov e1{" "} + s2 => +
+        + + elift2 + {" "} + ( + + pushEmit + {" "} + prov)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)
+              ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + s2)
+     |{" "} + + SLet + {" "} + prov vname{" "} + vtype e1{" "} + s2 => +
+        + + elift2 + +
+         ( + + ELet + {" "} + prov vname{" "} + vtype)
+         ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)
+         ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + s2)
+     |{" "} + + SIf + {" "} + prov e1{" "} + s2 s3 => +
+        + + elift3 + +
+         ( + + EIf + {" "} + prov)
+              ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)
+              ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + s2)
+              ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + s3)
+     |{" "} + + SEnforce + {" "} + prov e1{" "} + + + None + + {" "} + s3 => +
+        + + elift3 + {" "} + ( + + EIf + {" "} + prov)
+              ( + + elift + {" "} + ( + + EUnaryOp + {" "} + prov{" "} + + + OpNeg + + + ) ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)) +
+              ( + + esuccess + {" "} + ( + + EError + {" "} + prov +
+                                ( + + EConst + {" "} + prov ( + + + enforce_error_content + + {" "} + prov "")))) +
+              ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + s3)
+     |{" "} + + SEnforce + {" "} + prov e1 ( + + + Some + + {" "} + s2) s3 => +
+        + + elift3 + {" "} + ( + + EIf + {" "} + prov)
+              ( + + elift + {" "} + ( + + EUnaryOp + {" "} + prov{" "} + + + OpNeg + + + ) ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)) +
+              ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + s2)
+              ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + s3)
+     |{" "} + + SMatch + {" "} + prov e0{" "} + scases sdefault{" "} + => +
+       let{" "} + ec0 :={" "} + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e0 in +
+       let{" "} + sccases := +
+            + let proc_one{" "} + acc scase := +
+                + + eolift + +
+                 ( + fun acc => +
+                     + + elift + {" "} + (fun x => ( + + fst + {" "} + + scase + + ,{" "} + + x + + ):: + + acc + + )
+                          ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + ( + + snd + {" "} + + scase + + ))){" "} + + acc + +
+            + in +
+            + + + fold_left + + {" "} + + proc_one + {" "} + scases ( + + esuccess + {" "} + + nil + + )
+       in +
+       let{" "} + scdefault :={" "} + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + sdefault in +
+        + + eolift + +
+         ( + fun ec0 :{" "} + + ergoc_expr + {" "} + => +
+             + + eolift + +
+              ( + fun sccases => +
+                  + + elift + +
+                   ( + fun scdefault :{" "} + + ergoc_expr + {" "} + => +
+                       + + EMatch + {" "} + prov{" "} + + ec0 + {" "} + + sccases + {" "} + + scdefault + + )
+                    + + scdefault + + ){" "} + + sccases + + ){" "} + + ec0 + +
+     end.
+
+   Definition{" "} + + ergo_stmt_to_expr_top + {" "} + (ctxt: + + + compilation_context + + + ) (prov: + + provenance + + ) (e: + + ergo_stmt + + ) :{" "} + + eresult + {" "} + + ergoc_expr + {" "} + := +
+      + + elift + {" "} + (fun e => +
+               + + ELet + {" "} + + prov + +
+                    + + local_state + +
+                    + + + None + + +
+                   ( + + EVar + {" "} + + prov + {" "} + + this_state + + )
+                   ( + + ELet + {" "} + + prov + {" "} + + local_emit + {" "} + + + None + + +
+                         ( + + EVar + {" "} + + prov + {" "} + + this_emit + + )
+                          + + e + + )) +
+           ( + + + ergo_stmt_to_expr + + {" "} + + ctxt + {" "} + + e + + ). +
+
+
Translate a clause to clause+calculus
+
+   Definition{" "} + + clause_to_calculus + +
+              ( + ctxt: + + + compilation_context + + + )
+              ( + tem: + + laergo_type + + )
+              ( + sta: + + + option + + {" "} + + laergo_type + + )
+              ( + c: + + laergo_clause + + ) :{" "} + + eresult + {" "} + ( + + local_name + {" "} + *{" "} + + ergoc_function + + ) := +
+     let{" "} + ctxt :{" "} + + + compilation_context + + {" "} + :={" "} + + + set_current_clause + + {" "} + + ctxt + {" "} + + c + + .( + + clause_name + + ) in +
+     let{" "} + prov :={" "} + + ProvClause + {" "} + ( + + + loc_of_provenance + + {" "} + + c + + .( + + clause_annot + + )){" "} + + c + + .( + + clause_name + + ) in +
+     let{" "} + emit_type :={" "} + + + lift_default_emits_type + + {" "} + + prov + {" "} + + c + + .( + + clause_sig + + ).( + + + type_signature_emits + + + ) in +
+     let{" "} + state_type :={" "} + + + lift_default_state_type + + {" "} + + prov + {" "} + + sta + {" "} + in +
+     let{" "} + throw_type :={" "} + + + default_throws_type + + {" "} + + prov + {" "} + in +
+     let{" "} + output_type := +
+          + let response_type' + :={" "} + + c + + .( + + clause_sig + + ).( + + + type_signature_output + + + ) in +
+          + match response_type + ' with +
+         |{" "} + + + None + + {" "} + =>{" "} + + + None + + +
+         |{" "} + + + Some + + {" "} + response_type => +
+            + + let + success_type :={" "} + + + mk_success_type + + {" "} + + prov + {" "} + response_type{" "} + + state_type + {" "} + + emit_type + {" "} + in +
+            + let error_type :={" "} + + + mk_error_type + + {" "} + + prov + {" "} + + throw_type + {" "} + in +
+            + + + Some + + {" "} + ( + + + mk_output_type + + {" "} + + prov + {" "} + + + success_type + + {" "} + + error_type + + )
+          + end +
+     in +
+     let{" "} + body := +
+          + match{" "} + + c + + .( + + clause_body + + ) with +
+         |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+         |{" "} + + + Some + + {" "} + stmt => +
+            + + elift + {" "} + + + Some + + {" "} + ( + + + ergo_stmt_to_expr_top + + {" "} + + ctxt + {" "} + + prov + {" "} + stmt)
+          + end +
+     in +
+     let{" "} + clname :={" "} + + c + + .( + + clause_name + + ) in +
+     let{" "} + params := +
+          + if{" "} + + + string_dec + + {" "} + + clname + {" "} + + + clause_init_name + + +
+          + then +
+           (( + + current_time + + , ( + + + ErgoTypeDateTime + + {" "} + + prov + + )) +
+              ::( + + this_contract + + ,{" "} + + tem + + )
+              ::( + + this_state + + ,{" "} + + + ErgoTypeUnit + + {" "} + + prov + + )
+              ::( + + this_emit + + ,{" "} + + + ErgoTypeArray + + {" "} + + prov + {" "} + ( + + + ErgoTypeNothing + + {" "} + + prov + + )) +
+              :: + + c + + .( + + clause_sig + + ).( + + + type_signature_params + + + )) +
+          + else +
+           (( + + current_time + + , ( + + + ErgoTypeDateTime + + {" "} + + prov + + )) +
+              ::( + + this_contract + + ,{" "} + + tem + + )
+              ::( + + this_state + + ,{" "} + + state_type + + )
+              ::( + + this_emit + + ,{" "} + + + ErgoTypeArray + + {" "} + + prov + {" "} + ( + + + ErgoTypeNothing + + {" "} + + prov + + )) +
+              :: + + c + + .( + + clause_sig + + ).( + + + type_signature_params + + + )) +
+     in +
+      + + elift + +
+       (fun{" "} + body => +
+          ( + + clname + + ,
+            + + mkFuncC + +
+              + + prov + +
+             ( + + mkSigC + +
+                 + + params + +
+                 + + + output_type + + + )
+              + + body + + )) +
+        + + body + + .
+
+
Translate a function to function+calculus
+   Definition{" "} + + function_to_calculus + +
+              ( + ctxt: + + + compilation_context + + + )
+              ( + f: + + laergo_function + + ) :{" "} + + eresult + {" "} + + ergoc_function + {" "} + := +
+     let{" "} + prov :={" "} + + f + + .( + + function_annot + + ) in +
+     let{" "} + body := +
+          + match{" "} + + f + + .( + + function_body + + ) with +
+         |{" "} + + + None + + {" "} + =>{" "} + + esuccess + {" "} + + + None + + +
+         |{" "} + + + Some + + {" "} + e => +
+            + + elift + {" "} + + + Some + + {" "} + ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e)
+          + end +
+     in +
+      + + elift + +
+       ( + + mkFuncC + +
+          + + f + + .( + + function_annot + + )
+         ( + + mkSigC + +
+            + + f + + .( + + function_sig + + ).( + + + type_signature_params + + + )
+            + + f + + .( + + function_sig + + ).( + + + type_signature_output + + + ))) +
+        + + body + + .
+
+
Translate a contract to a contract+calculus
+
+ For a contract, add 'contract' and 'now' to the comp_context{" "} +
+
+   Definition{" "} + + contract_to_calculus + +
+              ( + ctxt: + + + compilation_context + + + )
+              ( + c: + + laergo_contract + + ) :{" "} + + eresult + {" "} + + ergoc_contract + {" "} + := +
+     let{" "} + clauses := +
+          + + emaplift + {" "} + ( + + + clause_to_calculus + + {" "} + + ctxt + {" "} + + c + + .( + + + contract_template + + + ){" "} + + c + + .( + + contract_state + + )){" "} + + c + + .( + + + contract_clauses + + + )
+     in +
+      + + elift + +
+       ( + + mkContractC + +
+           + + c + + .( + + contract_annot + + )) +
+        + + clauses + + .
+
+
Translate a statement to a statement+calculus
+   Definition{" "} + + declaration_to_calculus + +
+              ( + ctxt: + + + compilation_context + + + )
+              ( + d: + + + laergo_declaration + + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) := +
+     match{" "} + + d + {" "} + with +
+     |{" "} + + DNamespace + {" "} + prov ns =>{" "} + + esuccess + {" "} + ( + + nil + + ,{" "} + + ctxt + + )
+     |{" "} + + DImport + {" "} + prov import =>{" "} + + esuccess + {" "} + ( + + nil + + ,{" "} + + ctxt + + )
+     |{" "} + + DType + {" "} + prov ergo_type => +
+       let{" "} + name := ergo_type.( + + + type_declaration_name + + + ) in +
+       if{" "} + + + in_dec + + {" "} + + + string_dec + + {" "} + + name + {" "} + ( + + map + {" "} + + + type_declaration_name + + +
+                             ( + + ctxt + + .( + + + compilation_context_new_type_decls + + + ) ++ +
+                               + + ctxt + + .( + + + compilation_context_type_decls + + + ))) then +
+          + + efailure + {" "} + ( + + + ECompilationError + + {" "} + prov ("Cannot{" "} + redefine type `" ++{" "} + + name + {" "} + ++ "'")) +
+       else +
+          + + esuccess + {" "} + ( + + nil + + ,{" "} + + + compilation_context_add_new_type_declaration + + {" "} + + ctxt + {" "} + ergo_type)
+     |{" "} + + DStmt + {" "} + prov s => +
+        + + elift + +
+         ( + fun x => ( + + x + + :: + + nil + + ,{" "} + + ctxt + + )) +
+         ( + + elift + {" "} + ( + + DCExpr + {" "} + prov) ( + + + ergo_stmt_to_expr_top + + {" "} + + ctxt + {" "} + prov s)) +
+     |{" "} + + DConstant + {" "} + prov v{" "} + ta e => +
+        + + elift + +
+         ( + fun x => ( + + x + + :: + + nil + + ,{" "} + + ctxt + + )) +
+         ( + + elift + {" "} + ( + + DCConstant + {" "} + prov v{" "} + ta) ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e)) +
+     |{" "} + + DFunc + {" "} + prov fn{" "} + f => +
+        + + elift + +
+         ( + fun x => ( + + x + + :: + + nil + + ,{" "} + + ctxt + + )) +
+         ( + + elift + {" "} + ( + + DCFunc + {" "} + prov fn) ( + + + function_to_calculus + + {" "} + + ctxt + {" "} + f)) +
+     |{" "} + + DContract + {" "} + prov cn{" "} + c => +
+        + + elift + +
+         ( + fun x => ( + + x + + :: + + nil + + ,{" "} + + ctxt + + )) +
+         ( + + elift + {" "} + ( + + DCContract + {" "} + prov cn)
+                ( + let ctxt :={" "} + + + set_current_contract + + {" "} + + ctxt + {" "} + cn in +
+                  + + + contract_to_calculus + + {" "} + + ctxt + {" "} + c)) +
+     |{" "} + + DSetContract + {" "} + prov cn{" "} + e1 => +
+       let{" "} + ctxt :={" "} + + + set_current_contract + + {" "} + + ctxt + {" "} + cn in +
+        + + elift + +
+         ( + fun x => ( + + x + {" "} + :: ( + + DCConstant + {" "} + prov{" "} + + this_state + {" "} + + + None + + {" "} + ( + + EConst + {" "} + prov{" "} + + + dunit + + + )) ::{" "} + + nil + + , + + ctxt + + )) +
+         ( + + elift + {" "} + ( + + DCConstant + {" "} + prov{" "} + + this_contract + {" "} + + + None + + + )
+                ( + + + ergo_expr_to_ergoc_expr + + {" "} + + ctxt + {" "} + e1)) +
+     end.
+
+
Translate a module to a module+calculus
+   Definition{" "} + + declarations_calculus + +
+              ( + ctxt: + + + compilation_context + + + )
+              ( + dl: + + + list + + {" "} + + + ergo_declaration + + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) := +
+     let{" "} + proc_one +
+           ( + acc: + + eresult + {" "} + ( + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + )) +
+           ( + d: + + + ergo_declaration + + + )
+         :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + + ) := +
+          + + eolift + +
+           ( + fun acc :{" "} + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + {" "} + => +
+               + let (acc,{" "} + ctxt) :={" "} + + acc + {" "} + in +
+               + + elift + {" "} + (fun decls :{" "} + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + {" "} + => +
+                        + let (decls,{" "} + ctxt) :={" "} + + decls + {" "} + in +
+                       ( + + acc + {" "} + ++{" "} + + decls + + ,{" "} + + ctxt + + )) +
+                    ( + + + declaration_to_calculus + + {" "} + + ctxt + {" "} + + d + + )) +
+            + + acc + +
+     in +
+      + + + fold_left + + {" "} + + proc_one + {" "} + + dl + {" "} + ( + + esuccess + {" "} + ( + + nil + + ,{" "} + + ctxt + + )). +
+
+
Translate a module to a module+calculus
+   Definition{" "} + + ergo_module_to_calculus + +
+              ( + ctxt: + + + compilation_context + + + )
+              ( + p: + + laergo_module + + ) :{" "} + + eresult + {" "} + ( + + ergoc_module + {" "} + *{" "} + + + compilation_context + + + ) := +
+      + + elift + +
+       (fun{" "} + res :{" "} + + + list + + {" "} + + + ergoc_declaration + + {" "} + *{" "} + + + compilation_context + + {" "} + => +
+           + let (decls,{" "} + ctxt) :={" "} + + res + {" "} + in +
+          ( + + mkModuleC + +
+              + + p + + .( + + module_annot + + )
+              + + p + + .( + + + module_namespace + + + )
+              + + decls + + ,{" "} + + ctxt + + )) +
+       ( + + + declarations_calculus + + {" "} + + ctxt + {" "} + + p + + .( + + + module_declarations + + + )). +
+
+   Definition{" "} + + ergo_modules_to_calculus + +
+              ( + ctxt: + + + compilation_context + + + )
+              ( + pl: + + + list + + {" "} + + laergo_module + + ) :{" "} + + eresult + {" "} + ( + + + list + + {" "} + + ergoc_module + {" "} + *{" "} + + + compilation_context + + + ) := +
+      + + + elift_context_fold_left + + +
+        + + + ergo_module_to_calculus + + +
+        + + pl + +
+        + + ctxt + + .
+
+   Section{" "} + + Examples + + .
+     Definition{" "} + + f1 + {" "} + :{" "} + + laergo_function + {" "} + := +
+        + + mkFunc + {" "} + + + dummy_provenance + + +
+              ( + + + mkErgoTypeSignature + + +
+                  + + + dummy_provenance + + +
+                 ((" + rate"%string,{" "} + + + ErgoTypeDouble + + {" "} + + + dummy_provenance + + + ):: + + nil + + )
+                 ( + + + Some + + {" "} + ( + + ErgoTypeAny + {" "} + + + dummy_provenance + + + )) +
+                  + + + None + + + )
+              ( + + + Some + + {" "} + ( + + EConst + {" "} + + + dummy_provenance + + {" "} + ( + + + dfloat + + {" "} + + + float_one + + + ))). +
+     Definition{" "} + + f2 + {" "} + :{" "} + + laergo_function + {" "} + := +
+        + + mkFunc + {" "} + + + dummy_provenance + + +
+              ( + + + mkErgoTypeSignature + + +
+                  + + + dummy_provenance + + +
+                 ((" + rate"%string,{" "} + + + ErgoTypeDouble + + {" "} + + + dummy_provenance + + + ):: + + nil + + )
+                 ( + + + Some + + {" "} + ( + + ErgoTypeAny + {" "} + + + dummy_provenance + + + )) +
+                  + + + None + + + )
+              ( + + + Some + + {" "} + ( + + EThisContract + {" "} + + + dummy_provenance + + + )). +
+     Definition{" "} + + cl1 + {" "} + :{" "} + + laergo_clause + {" "} + := +
+        + + mkClause + {" "} + + + dummy_provenance + + +
+                " + volumediscount"% + string +
+                ( + + + mkErgoTypeSignature + + +
+                    + + + dummy_provenance + + +
+                   ((" + request"%string,{" "} + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + + + default_request_absolute_name + + + ):: + + nil + + )
+                   ( + + + Some + + {" "} + ( + + ErgoTypeAny + {" "} + + + dummy_provenance + + + )) +
+                    + + + None + + + )
+                ( + + + Some + + {" "} + ( + + SReturn + +
+                          + + + dummy_provenance + + +
+                         ( + + ECallFun + {" "} + + + dummy_provenance + + {" "} + "addFee"
+                                   ( + + EConst + {" "} + + + dummy_provenance + + {" "} + ( + + + dfloat + + {" "} + + + float_zero + + + ):: + + nil + + )))). +
+     Definition{" "} + + cl2 + {" "} + :{" "} + + laergo_clause + {" "} + := +
+        + + mkClause + {" "} + + + dummy_provenance + + +
+                " + volumediscount"% + string +
+                ( + + + mkErgoTypeSignature + + +
+                    + + + dummy_provenance + + +
+                   ((" + request"%string,{" "} + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + + + default_request_absolute_name + + + ):: + + nil + + )
+                   ( + + + Some + + {" "} + ( + + ErgoTypeAny + {" "} + + + dummy_provenance + + + )) +
+                    + + + None + + + )
+                ( + + + Some + + {" "} + ( + + SReturn + +
+                          + + + dummy_provenance + + +
+                         ( + + ECallFun + {" "} + + + dummy_provenance + + {" "} + "addFee"
+                                   ( + + EThisContract + {" "} + + + dummy_provenance + + + :: + + nil + + )))). +
+     Definition{" "} + + co1 + {" "} + :{" "} + + laergo_contract + {" "} + := +
+        + + mkContract + +
+          + + + dummy_provenance + + +
+         ( + + + ErgoTypeClassRef + + {" "} + + + dummy_provenance + + {" "} + "TemplateModel"% + string)
+          + + + None + + +
+         ( + + cl1 + + :: + + cl2 + + :: + + nil + + ). +
+
+     Definition{" "} + + dl1 + {" "} + :{" "} + + + list + + {" "} + + + laergo_declaration + + {" "} + := +
+       ( + + DFunc + {" "} + + + dummy_provenance + + {" "} + "addFee"%string{" "} + + f1 + + )
+         :: ( + + DContract + {" "} + + + dummy_provenance + + {" "} + "VolumeDiscount"% + string{" "} + + co1 + + )
+         ::{" "} + + nil + + .
+
+     Definition{" "} + + dl2 + {" "} + :{" "} + + + list + + {" "} + + + laergo_declaration + + {" "} + := +
+       ( + + DFunc + {" "} + + + dummy_provenance + + {" "} + "addFee"%string{" "} + + f1 + + )
+         :: ( + + DFunc + {" "} + + + dummy_provenance + + {" "} + "addFee2"%string{" "} + + f2 + + )
+         :: ( + + DContract + {" "} + + + dummy_provenance + + {" "} + "VolumeDiscount"% + string{" "} + + co1 + + )
+         ::{" "} + + nil + + .
+
+   End{" "} + + + Examples + + + .
+
+ End{" "} + + + ErgotoErgoC + + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/assets/specification/ErgoSpec.Version.html b/docs/assets/specification/ErgoSpec.Version.html deleted file mode 100644 index f8c0d127..00000000 --- a/docs/assets/specification/ErgoSpec.Version.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - -Module ErgoSpec.Version - - - - - - -

Module ErgoSpec.Version

-
-
-
This module defines Ergo version number
-
-Require Import String.
-
-Section Version.
-    Definition ergo_version := "0.4.0"%string.
-
-End Version.
-
- -
- - - diff --git a/docs/assets/specification/ErgoSpec.Version.jsx b/docs/assets/specification/ErgoSpec.Version.jsx new file mode 100644 index 00000000..4424d7e5 --- /dev/null +++ b/docs/assets/specification/ErgoSpec.Version.jsx @@ -0,0 +1,46 @@ +
+ + Module ErgoSpec.Version + + +

Module ErgoSpec.Version

+
+
+
This module defines Ergo version number
+
+ + Require + Import{" "} + +
String + + .
+
+ Section{" "} + + Version + + .
+     Definition{" "} + + ergo_version + {" "} + := "0.4.0"%string.
+
+ End{" "} + + Version + + .
+
+
+
+
+ Generated by coq2html +
+ +
; + \ No newline at end of file diff --git a/docs/ergo-tutorial.md b/docs/ergo-tutorial.md index 70213160..d1a219ad 100644 --- a/docs/ergo-tutorial.md +++ b/docs/ergo-tutorial.md @@ -1,249 +1,249 @@ ---- -id: ergo-tutorial -title: Ergo: A Tutorial ---- - -## Overview of Accord - -Cicero is an Open Source implementation of the Accord Project Template Specification. It defines the structure of natural language templates, bound to a data model, that can be executed using Ergo and request/response JSON messages. You can read the latest user documentation here: http://docs.accordproject.org. - -In short, with the Accord Project you can take a classic contract, e.g. Word document and use Cicero to define natural language contract and clause templates that can be executed by an event driven computer program (aka Smart contract). For the tutorial, Cicero will be used to define natural language contract and clause templates. These clause templates handle the syllogistic language of contracts. - -For example, -```md - if the goods are more than [{DAYS}] late, - then notify the supplier of the goods, with the message [{MESSAGE}]. -``` -DAYS and MESSAGE are variables - -You can browse the library of Open Source Cicero contract and clause templates at: https://templates.accordproject.org. - -So how goes the contract get executed? That is where Ergo comes in Ergo is a strongly-typed functional programming language designed to capture the legal intent of legal contracts and clauses. We will use Ergo to create the contract logic consisting of a contract class with executable embedded clauses. Note: prior to the emergence of Ergo, the Cicero JavaScript component was primary to the execution of code. - -Ergo obviates the Cicero JavaScript component for the execution phase with a new more comprehensive language which we explore in this tutorial. - -## Cicero - -The Open Source Cicero project defines the format of clause and contract templates based on to the Cicero Template Specification. The templates are the link between the natural language of contracts usually composed in a Word document and the specification of a machine executable transaction. Cicero templates define the API by specifying request and response elements for the logic associated with functional transaction executed by Ergo. - -Cicero templates are composed of two elements: -* Template Grammar (the natural language text for the template), -* Template Model (the data model that includes the variables contained within the template). -* The Logic (the executable business logic for the template) will be handled by Ergo. - -When combined these three elements allow templates to be edited, analyzed, queried and executed. - -## Setup Ergo Development environment - -Before you can build Ergo, you must install and configure the following dependencies on your machine: - -### Git - -* Git: The [Github Guide to Installing Git][git-setup] is a good source of information. - -### Node.js - -* Node.js (LTS): We use Node to generate the documentation, run a development web server, run tests, and generate distributable files. Depending on your system, you can install Node either from source or as a pre-packaged bundle. -> Tip: Use nvm (or nvm-windows) to manage and install Node.js, This facilitates a version change of Node.js per project. -* Lerna: This is a tool which helps when handling multiple npm packages in the Ergo repository. To install: -npm install -g lerna@^3.15.0 - -### Visual Studio Code - -Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript and Node.js and has a rich ecosystem of extensions for other languages (such Ergo). - -Follow the platform specific guides below: -See, https://code.visualstudio.com/docs/setup/ -* macOS -* Linux -* Windows - -#### Install Ergo VisualStudio Plugin - -### Validate Development Environment and Toolset - -Clone https://github.com/accordproject/ergo to your local machine - -### Getting started - -Install Ergo - -The easiest way to install Ergo is as a Node.js package. Once you have Node.js installed on your machine, you can get the Ergo compiler and command-line using the Node.js package manager by typing the following in a terminal: -$ npm install -g @accordproject/ergo-cli@0.20 - -This will install the compiler itself (ergoc) and a command-line tool (ergo) to execute Ergo code. You can check that both have been installed and print the version number by typing the following in a terminal: -```sh -$ ergoc --version -$ ergo --version -``` -Then, to get command line help: -``` -$ ergoc --help -$ ergo execute --help -``` -Compiling your first contract -```ergo -namespace org.accordproject.volumediscount - -contract VolumeDiscount over VolumeDiscountContract { - // Clause for volume discount - clause volumediscount(request : VolumeDiscountRequest) : VolumeDiscountResponse { - if request.netAnnualChargeVolume < contract.firstVolume - then return VolumeDiscountResponse{ discountRate: contract.firstRate } - else if request.netAnnualChargeVolume < contract.secondVolume - then return VolumeDiscountResponse{ discountRate: contract.secondRate } - else return VolumeDiscountResponse{ discountRate: contract.thirdRate } - } -} -``` - -To compile your first Ergo contract to JavaScript , within Visual Studio code -* Open the folder where you cloned https://github.com/accordproject/ergo -* Use View/Terminal to run the Ergo compiler: -```sh -$ ergoc ./examples/volumediscount/model.cto ./examples/volumediscount/logic.ergo -Compiling Ergo './examples/volumediscount/logic.ergo' -- creating './examples/volumediscount/logic.js' -``` - -By default, Ergo compiles to JavaScript for execution. This may change in the future to support other languages. The compiled code for the result in stored as `./examples/volumediscount/logic.js` - -### Execute a contract -To execute a contract, we pass the necessary parameters including the CTO, Ergo files, the name of a contract and the json files containing request and contract state -ergorun [ctos] [ergos] --contractname [file] --contract [file] --state [file] --request [file] - -So for example we use ergorun with : -```sh -$ ergorun ./examples/volumediscount/model.cto ./examples/volumediscount/logic.ergo ---contractname org.accordproject.volumediscount.VolumeDiscount ---contract ./examples/volumediscount/contract.json ---request ./examples/volumediscount/request.json ---state ./examples/volumediscount/state.json -``` - -Here contract.json contains the following values -```json -{ - "$class": "org.accordproject.volumediscount.VolumeDiscountContract", - "parties": null, - "contractId": "cr1", - "firstVolume": 1, - "secondVolume": 10, - "firstRate": 3, - "secondRate": 2.9, - "thirdRate": 2.8 -} -``` - -Request.json contains -```json -{ - "$class": "org.accordproject.volumediscount.VolumeDiscountRequest", - "netAnnualChargeVolume": 10.4 -} -``` - -logic.ergo contains: -```ergo -namespace org.accordproject.volumediscount - -contract VolumeDiscount over VolumeDiscountContract { - // Clause for volume discount - clause volumediscount(request : VolumeDiscountRequest) : VolumeDiscountResponse { - if request.netAnnualChargeVolume < contract.firstVolume - then return VolumeDiscountResponse{ discountRate: contract.firstRate } - else if request.netAnnualChargeVolume < contract.secondVolume - then return VolumeDiscountResponse{ discountRate: contract.secondRate } - else return VolumeDiscountResponse{ discountRate: contract.thirdRate } - } -} -``` - -Here netAnnualCharge Volume equals 10.4 which is not less than firstVolume and secondVolume which are equal to 1 and 10 respectively so the logic for the volumediscount clause returns thirdRate which equals 2.8 - -``` -7:31:58 PM - info: Logging initialized. 2018-09-27T23:31:58.623Z -7:31:59 PM - info: {"response":{"discountRate":2.8,"$class":"org.accordproject.volumediscount.VolumeDiscountResponse"},"state":{"$class":"org.accordproject.cicero.contract.AccordContractState","stateId":"1"},"emit":[]} -``` - -PS D:\Users\jbambara\Github\ergo> - -## Ergo Development - -Create Template -Start with basic agreement in natural language and locate the variables -Here in the example see the bold -Volume-Based Card Acceptance Agreement [Abbreviated] -This Agreement is by and between ………..you agree to be bound by the Agreement. -Discount means an amount that we charge you for accepting the Card, which amount is: -(i) a percentage (Discount Rate) of the face amount of the Charge that you submit, or a flat per- -Transaction fee, or a combination of both; and/or -(ii) a Monthly Flat Fee (if you meet our requirements). - -Transaction Processing and Payments. ………………… less all applicable deductions, rejections, and withholdings, which include: -…………………………. - -SETTLEMENT -a) Settlement Amount. Our agent will pay you according to your payment plan, ……………………..which include: - (i) the Discount, -………………………………………….. -b) Discount. The Discount is determined according to the following table: - -| Annual Dollar Volume | Discount | -| Less than $1 million | 3.00% | -| $1 million to $10 million | 2.90% | -| Greater than $10 million | 2.80% | -Identify the request variables and contract instance variables -Codify the variables with $[{request}] or [{contract instance}] -| Annual Dollar Volume | Discount | -| Less than $[{firstVolume}] million | [{firstRate}]% | -| $[{firstVolume}] million to $[{secondVolume}] million | [{secondRate}]% | -| Greater than $[{secondVolume}] million | [{thirdRate}]% | - -Create Model -Define the model asset which contains the contract instance variables and the transaction request and response. Defines the data model for the VolumeDiscount template. This defines the structure that the parser for the template generates from input source text. See model.cto below: - namespace org.accordproject.volumediscount -import org.accordproject.cicero.contract.* from https://models.accordproject.org/cicero/contract.cto -import org.accordproject.cicero.runtime.* from https://models.accordproject.org/cicero/runtime.cto -asset VolumeDiscountContract extends AccordContract { - o Double firstVolume - o Double secondVolume - o Double firstRate - o Double secondRate - o Double thirdRate -} -transaction VolumeDiscountRequest { - o Double netAnnualChargeVolume -} -transaction VolumeDiscountResponse { - o Double discountRate -} - -Create Logic -The contract logic is accomplished by coding ERGO statements and expressions to consume the request and use contract instance variables to produce the desired response. In our example, request.netAnnualChargeVolume is tested against contract rates to produce the result. -namespace org.accordproject.volumediscount - -define the contract -contract VolumeDiscount over VolumeDiscountContract { - -define the contract clause and request : response - - clause volumediscount(request : VolumeDiscountRequest) : VolumeDiscountResponse { - -define the logic ; here we use if /then /else statement to test request parameter against contract instance variable - and return - - if request.netAnnualChargeVolume < contract.firstVolume - then return VolumeDiscountResponse{ discountRate: contract.firstRate } - else if request.netAnnualChargeVolume < contract.secondVolume - then return VolumeDiscountResponse{ discountRate: contract.secondRate } - else return VolumeDiscountResponse{ discountRate: contract.thirdRate } - } - -Ergo Language -As you have seen in this tutorial, Ergo is a domain-specific language (DSL) that captures the execution logic of legal contracts. In this simple example, you see that Ergo aims to have contracts and clauses as first-class elements of the language. To accommodate the maturation of distributed ledger implementations, Ergo will be blockchain neutral, i.e., the same contract logic can be executed either on and off chain on distributed ledger technologies like HyperLedger Fabric. Most importantly, Ergo is consistent with the Accord Protocol Template Specification. Follow the links below to learn more about -Introduction to Ergo -Ergo Language Guide -Ergo Reference Guide - - -October 12, 2018 +--- +id: ergo-tutorial +title: "Ergo: A Tutorial" +--- + +## Overview of Accord + +Cicero is an Open Source implementation of the Accord Project Template Specification. It defines the structure of natural language templates, bound to a data model, that can be executed using Ergo and request/response JSON messages. You can read the latest user documentation here: http://docs.accordproject.org. + +In short, with the Accord Project you can take a classic contract, e.g. Word document and use Cicero to define natural language contract and clause templates that can be executed by an event driven computer program (aka Smart contract). For the tutorial, Cicero will be used to define natural language contract and clause templates. These clause templates handle the syllogistic language of contracts. + +For example, +```md + if the goods are more than [{DAYS}] late, + then notify the supplier of the goods, with the message [{MESSAGE}]. +``` +DAYS and MESSAGE are variables + +You can browse the library of Open Source Cicero contract and clause templates at: https://templates.accordproject.org. + +So how goes the contract get executed? That is where Ergo comes in Ergo is a strongly-typed functional programming language designed to capture the legal intent of legal contracts and clauses. We will use Ergo to create the contract logic consisting of a contract class with executable embedded clauses. Note: prior to the emergence of Ergo, the Cicero JavaScript component was primary to the execution of code. + +Ergo obviates the Cicero JavaScript component for the execution phase with a new more comprehensive language which we explore in this tutorial. + +## Cicero + +The Open Source Cicero project defines the format of clause and contract templates based on to the Cicero Template Specification. The templates are the link between the natural language of contracts usually composed in a Word document and the specification of a machine executable transaction. Cicero templates define the API by specifying request and response elements for the logic associated with functional transaction executed by Ergo. + +Cicero templates are composed of two elements: +* Template Grammar (the natural language text for the template), +* Template Model (the data model that includes the variables contained within the template). +* The Logic (the executable business logic for the template) will be handled by Ergo. + +When combined these three elements allow templates to be edited, analyzed, queried and executed. + +## Setup Ergo Development environment + +Before you can build Ergo, you must install and configure the following dependencies on your machine: + +### Git + +* Git: The [Github Guide to Installing Git][git-setup] is a good source of information. + +### Node.js + +* Node.js (LTS): We use Node to generate the documentation, run a development web server, run tests, and generate distributable files. Depending on your system, you can install Node either from source or as a pre-packaged bundle. +> Tip: Use nvm (or nvm-windows) to manage and install Node.js, This facilitates a version change of Node.js per project. +* Lerna: This is a tool which helps when handling multiple npm packages in the Ergo repository. To install: +npm install -g lerna@^3.15.0 + +### Visual Studio Code + +Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript and Node.js and has a rich ecosystem of extensions for other languages (such Ergo). + +Follow the platform specific guides below: +See, https://code.visualstudio.com/docs/setup/ +* macOS +* Linux +* Windows + +#### Install Ergo VisualStudio Plugin + +### Validate Development Environment and Toolset + +Clone https://github.com/accordproject/ergo to your local machine + +### Getting started + +Install Ergo + +The easiest way to install Ergo is as a Node.js package. Once you have Node.js installed on your machine, you can get the Ergo compiler and command-line using the Node.js package manager by typing the following in a terminal: +$ npm install -g @accordproject/ergo-cli@0.20 + +This will install the compiler itself (ergoc) and a command-line tool (ergo) to execute Ergo code. You can check that both have been installed and print the version number by typing the following in a terminal: +```sh +$ ergoc --version +$ ergo --version +``` +Then, to get command line help: +``` +$ ergoc --help +$ ergo execute --help +``` +Compiling your first contract +```ergo +namespace org.accordproject.volumediscount + +contract VolumeDiscount over VolumeDiscountContract { + // Clause for volume discount + clause volumediscount(request : VolumeDiscountRequest) : VolumeDiscountResponse { + if request.netAnnualChargeVolume < contract.firstVolume + then return VolumeDiscountResponse{ discountRate: contract.firstRate } + else if request.netAnnualChargeVolume < contract.secondVolume + then return VolumeDiscountResponse{ discountRate: contract.secondRate } + else return VolumeDiscountResponse{ discountRate: contract.thirdRate } + } +} +``` + +To compile your first Ergo contract to JavaScript , within Visual Studio code +* Open the folder where you cloned https://github.com/accordproject/ergo +* Use View/Terminal to run the Ergo compiler: +```sh +$ ergoc ./examples/volumediscount/model.cto ./examples/volumediscount/logic.ergo +Compiling Ergo './examples/volumediscount/logic.ergo' -- creating './examples/volumediscount/logic.js' +``` + +By default, Ergo compiles to JavaScript for execution. This may change in the future to support other languages. The compiled code for the result in stored as `./examples/volumediscount/logic.js` + +### Execute a contract +To execute a contract, we pass the necessary parameters including the CTO, Ergo files, the name of a contract and the json files containing request and contract state +ergorun [ctos] [ergos] --contractname [file] --contract [file] --state [file] --request [file] + +So for example we use ergorun with : +```sh +$ ergorun ./examples/volumediscount/model.cto ./examples/volumediscount/logic.ergo +--contractname org.accordproject.volumediscount.VolumeDiscount +--contract ./examples/volumediscount/contract.json +--request ./examples/volumediscount/request.json +--state ./examples/volumediscount/state.json +``` + +Here contract.json contains the following values +```json +{ + "$class": "org.accordproject.volumediscount.VolumeDiscountContract", + "parties": null, + "contractId": "cr1", + "firstVolume": 1, + "secondVolume": 10, + "firstRate": 3, + "secondRate": 2.9, + "thirdRate": 2.8 +} +``` + +Request.json contains +```json +{ + "$class": "org.accordproject.volumediscount.VolumeDiscountRequest", + "netAnnualChargeVolume": 10.4 +} +``` + +logic.ergo contains: +```ergo +namespace org.accordproject.volumediscount + +contract VolumeDiscount over VolumeDiscountContract { + // Clause for volume discount + clause volumediscount(request : VolumeDiscountRequest) : VolumeDiscountResponse { + if request.netAnnualChargeVolume < contract.firstVolume + then return VolumeDiscountResponse{ discountRate: contract.firstRate } + else if request.netAnnualChargeVolume < contract.secondVolume + then return VolumeDiscountResponse{ discountRate: contract.secondRate } + else return VolumeDiscountResponse{ discountRate: contract.thirdRate } + } +} +``` + +Here netAnnualCharge Volume equals 10.4 which is not less than firstVolume and secondVolume which are equal to 1 and 10 respectively so the logic for the volumediscount clause returns thirdRate which equals 2.8 + +``` +7:31:58 PM - info: Logging initialized. 2018-09-27T23:31:58.623Z +7:31:59 PM - info: {"response":{"discountRate":2.8,"$class":"org.accordproject.volumediscount.VolumeDiscountResponse"},"state":{"$class":"org.accordproject.cicero.contract.AccordContractState","stateId":"1"},"emit":[]} +``` + +PS D:\Users\jbambara\Github\ergo> + +## Ergo Development + +Create Template +Start with basic agreement in natural language and locate the variables +Here in the example see the bold +Volume-Based Card Acceptance Agreement [Abbreviated] +This Agreement is by and between ………..you agree to be bound by the Agreement. +Discount means an amount that we charge you for accepting the Card, which amount is: +(i) a percentage (Discount Rate) of the face amount of the Charge that you submit, or a flat per- +Transaction fee, or a combination of both; and/or +(ii) a Monthly Flat Fee (if you meet our requirements). + +Transaction Processing and Payments. ………………… less all applicable deductions, rejections, and withholdings, which include: +…………………………. + +SETTLEMENT +a) Settlement Amount. Our agent will pay you according to your payment plan, ……………………..which include: + (i) the Discount, +………………………………………….. +b) Discount. The Discount is determined according to the following table: + +| Annual Dollar Volume | Discount | +| Less than $1 million | 3.00% | +| $1 million to $10 million | 2.90% | +| Greater than $10 million | 2.80% | +Identify the request variables and contract instance variables +Codify the variables with $[{request}] or [{contract instance}] +| Annual Dollar Volume | Discount | +| Less than $[{firstVolume}] million | [{firstRate}]% | +| $[{firstVolume}] million to $[{secondVolume}] million | [{secondRate}]% | +| Greater than $[{secondVolume}] million | [{thirdRate}]% | + +Create Model +Define the model asset which contains the contract instance variables and the transaction request and response. Defines the data model for the VolumeDiscount template. This defines the structure that the parser for the template generates from input source text. See model.cto below: + namespace org.accordproject.volumediscount +import org.accordproject.cicero.contract.* from https://models.accordproject.org/cicero/contract.cto +import org.accordproject.cicero.runtime.* from https://models.accordproject.org/cicero/runtime.cto +asset VolumeDiscountContract extends AccordContract { + o Double firstVolume + o Double secondVolume + o Double firstRate + o Double secondRate + o Double thirdRate +} +transaction VolumeDiscountRequest { + o Double netAnnualChargeVolume +} +transaction VolumeDiscountResponse { + o Double discountRate +} + +Create Logic +The contract logic is accomplished by coding ERGO statements and expressions to consume the request and use contract instance variables to produce the desired response. In our example, request.netAnnualChargeVolume is tested against contract rates to produce the result. +namespace org.accordproject.volumediscount + +define the contract +contract VolumeDiscount over VolumeDiscountContract { + +define the contract clause and request : response + + clause volumediscount(request : VolumeDiscountRequest) : VolumeDiscountResponse { + +define the logic ; here we use if /then /else statement to test request parameter against contract instance variable + and return + + if request.netAnnualChargeVolume < contract.firstVolume + then return VolumeDiscountResponse{ discountRate: contract.firstRate } + else if request.netAnnualChargeVolume < contract.secondVolume + then return VolumeDiscountResponse{ discountRate: contract.secondRate } + else return VolumeDiscountResponse{ discountRate: contract.thirdRate } + } + +Ergo Language +As you have seen in this tutorial, Ergo is a domain-specific language (DSL) that captures the execution logic of legal contracts. In this simple example, you see that Ergo aims to have contracts and clauses as first-class elements of the language. To accommodate the maturation of distributed ledger implementations, Ergo will be blockchain neutral, i.e., the same contract logic can be executed either on and off chain on distributed ledger technologies like HyperLedger Fabric. Most importantly, Ergo is consistent with the Accord Protocol Template Specification. Follow the links below to learn more about +Introduction to Ergo +Ergo Language Guide +Ergo Reference Guide + + +October 12, 2018 diff --git a/docs/markup-preliminaries.md b/docs/markup-preliminaries.md index 7740baaa..a6e3d708 100644 --- a/docs/markup-preliminaries.md +++ b/docs/markup-preliminaries.md @@ -101,17 +101,17 @@ More information and examples can be found in the [TemplateMark](markup-template You can test your template or contract text using the [TemplateMark Dingus](https://templatemark-dingus.netlify.app), an online tool which lets you edit the markdown and see it rendered as HTML, or as a document object model. -![TemplateMark Dingus](assets/dingus1.png) +![TemplateMark Dingus](/docs/assets/dingus1.png) You can select whether to parse your text as pure CommonMark (i.e., according to the CommonMark specification), or with the CiceroMark or TemplateMark extensions. -![TemplateMark Dingus](assets/dingus2.png) +![TemplateMark Dingus](/docs/assets/dingus2.png) You can also inspect the HTML source, or the document object model (abstract syntax tree or AST). -![TemplateMark Dingus](assets/dingus3.png) +![TemplateMark Dingus](/docs/assets/dingus3.png) For instance, you can open the TemplateMark from the loan example on this page by clicking [this link](https://templatemark-dingus.netlify.app/#md3=%7B%22source%22%3A%22%23%20Loan%20agreement%5Cn%5CnThis%20is%20a%20loan%20agreement%20between%20%7B%7Bborrower%7D%7D%20and%20%7B%7Blender%7D%7D%2C%20which%20shall%20be%20entered%20into%5Cnby%20the%20parties%20on%20%7B%7Bdate%20as%20%5C%22MMMMM%20DD%2C%20YYYY%20-%20hhA%5C%22%7D%7D%7B%7B%23if%20forceMajeure%7D%7D%2C%20except%20in%20the%20event%20of%20a%20force%20majeure%7B%7B%2Fif%7D%7D.%5Cn%5Cn%7B%7B%23clause%20fixedRate%7D%7D%5Cn%23%23%20Fixed%20rate%20loan%5Cn%5CnThis%20is%20a%20_fixed%20interest_%20loan%20to%20the%20amount%20of%20%7B%7BloanAmount%20as%20%5C%22K0%2C0.00%5C%22%7D%7D%5Cnat%20the%20yearly%20interest%20rate%20of%20%7B%7Brate%7D%7D%25%5Cnwith%20a%20loan%20term%20of%20%7B%7BloanDuration%7D%7D%2C%5Cnand%20monthly%20payments%20of%20%7B%7B%25%20monthlyPaymentFormula%28loanAmount%2Crate%2CloanDuration%29%20as%20%5C%22K0%2C0.00%5C%22%20%25%7D%7D%5Cn%7B%7B%2Fclause%7D%7D%5Cn%22%2C%22defaults%22%3A%7B%22templateMark%22%3Atrue%2C%22ciceroMark%22%3Afalse%2C%22html%22%3Atrue%2C%22_highlight%22%3Atrue%2C%22_strict%22%3Afalse%2C%22_view%22%3A%22html%22%7D%7D). -![TemplateMark Dingus](assets/dingus4.png) +![TemplateMark Dingus](/docs/assets/dingus4.png) diff --git a/docs/ref-cicero-api.md b/docs/ref-cicero-api.md index a0394e48..a5a1aa48 100644 --- a/docs/ref-cicero-api.md +++ b/docs/ref-cicero-api.md @@ -1105,7 +1105,7 @@ the name, version and description of the template). | Param | Type | Default | Description | | --- | --- | --- | --- | | path | String | | to a local directory | -| [options] | Object | | an optional set of options to configure the instance. | +| [options] | Object | | an optional set of options to configure the instance. | @@ -1118,7 +1118,7 @@ Create a template from an archive. | Param | Type | Default | Description | | --- | --- | --- | --- | | buffer | Buffer | | the buffer to a Cicero Template Archive (cta) file | -| [options] | Object | | an optional set of options to configure the instance. | +| [options] | Object | | an optional set of options to configure the instance. | @@ -1131,7 +1131,7 @@ Create a template from an URL. | Param | Type | Default | Description | | --- | --- | --- | --- | | url | String | | the URL to a Cicero Template Archive (cta) file | -| [options] | Object | | an optional set of options to configure the instance. | +| [options] | Object | | an optional set of options to configure the instance. | diff --git a/docs/ref-ergo-spec.md b/docs/ref-ergo-spec.md index 2f317a73..71fd24bb 100644 --- a/docs/ref-ergo-spec.md +++ b/docs/ref-ergo-spec.md @@ -219,15 +219,15 @@ Table of operators in Ergo with their associativity and precedence from highest **Order** | **Operator(s)** | **Description** | **Associativity** --- | --- | --- | --- -1 | .
?. | field access
field access of optional type | left to right +1 | .
?. | field access
field access of optional type | left to right 2 | [] | array index access | right to left 3 | ! | logical not | right to left 4 | \- | arithmetic negation | right to left 5 | ++ | string concatenation | left to right 6 | ^ | floating point number power | left to right -7 | \*
/
% | multiplication
division
remainder | left to right -8 | \+
- | addition
subtraction | left to right +7 | \*
/
% | multiplication
division
remainder | left to right +8 | \+
- | addition
subtraction | left to right 9 | ?? | default value of optional type | left to right 10 | and | logical conjunction | left to right 11 | or | logical disjunction | left to right -12 | <
>
<=
>=
=
!= | less than
greater than
less or equal
greater or equal
equal
not equal | left to right +12 | <
>
<=
>=
=
!= | less than
greater than
less or equal
greater or equal
equal
not equal | left to right diff --git a/docs/ref-errors.md b/docs/ref-errors.md index a212e662..be10ba99 100644 --- a/docs/ref-errors.md +++ b/docs/ref-errors.md @@ -9,7 +9,7 @@ title: Errors The hierarchy of errors (or exceptions) is shown on the following diagram: - ![Error Hierarchy](assets/exceptions.png) + ![Error Hierarchy](/docs/assets/exceptions.png) ## Errors Model diff --git a/docs/tutorial-studio.md b/docs/tutorial-studio.md index ef77b88f..49881968 100644 --- a/docs/tutorial-studio.md +++ b/docs/tutorial-studio.md @@ -1,266 +1,266 @@ ---- -id: tutorial-studio -title: With Template Studio ---- - -This tutorial will walk you through the steps of editing a clause template in [Template Studio](https://studio.accordproject.org/). - -We start with a very simple _Late Penalty and Delivery_ Clause and gradually make it more complex, adding both legal text to it and the corresponding business logic in Ergo. - -## Initial Late Delivery Clause - -### Load the Template - -To get started, head to the `minilatedeliveryandpenalty` template in the Accord Project Template Library at [Mini Late Delivery And Penalty](https://templates.accordproject.org/minilatedeliveryandpenalty@0.5.0.html) and click the "Open In Template Studio" button. - -![Advanced-Late-1](assets/advanced/late1.png) - -Begin by inspecting the `README` and `package.json` tabs within the `Metadata` section. Feel free to change the name of the template to one you like. - -### The Contract Text - -Then click on the `Text` Section on the left, which should show a `Grammar` tab, for the the natural language of the template. - -![Advanced-Late-2](assets/advanced/late2.png) - -When the text in the `Grammar` tab is in sync with the text in the `Sample` tab, this means the sample is a valid with respect to the grammar, and data is extracted, showing in `Contract Data` tab. The contract data is represented using the JSON format and contains the value of the variables declared in the contract template. For instance, the value for the `buyer` variable is `Betty Buyer`, highlighted in red: - -![Advanced-Late-3](assets/advanced/late3.png) - -Changes to the variables in the `Sample` are reflected in the `Contract Data` tab in real time, and vice versa. For instance, change `Betty Buyer` to a different name in the contract text to see the `partyId` change in the contract data. - -If you edit part of the text which is not a variable in the template, this results in an error when parsing the `Sample`. The error will be shown in red in the status bar at the bottom of the page. For instance, the following image shows the parsing error obtained when changing the word `delayed` to the word `timely` in the contract text. - -![Advanced-Late-4](assets/advanced/late4.png) - -This is because the `Sample` relies on the `Grammar` text as a source of truth. This mechanism ensures that the actual contract always reflects the template, and remains faithful to the original legal text. You can, however, edit the `Grammar` itself to change the legal text. - -Revert your changes, changing the word `timely` back to the original word `delayed` and the parsing error will disappear. - -### The Model - -Moving along to the `Model` section, you will find the data model for the template variables (the `MiniLateDeliveryClause` type), as well as for the requests (the `LateRequest` type) and response (the `LateResponse` type) for the late delivery and penalty clause. - -![Advanced-Late-5](assets/advanced/late5.png) - -Note that a `namespace` is declared at the beginning of the file for the model, and that several existing models are being imported (using e.g., `import org.accordproject.cicero.contract.*`). Those imports are needed to access the definition for several types used in the model: -- `AccordClause` which is a generic type for all Accord Project clause templates, and is defined in the `org.accordproject.contract` namespace; -- `Request` and `Response` which are generic types for responses and requests, and are defined in the `org.accordproject.runtime` namespace; -- `Duration` which is defined in the `org.accordproject.time` namespace. - -### The Logic - -The final part of the template is the `Ergo` tab of the `Logic` section, which describes the business logic. - -![Advanced-Late-6](assets/advanced/late6.png) - -Thanks to the `namespace` at the beginning of this file, the Ergo engine can know the definition for the `MiniLateDeliveryClause`, as well as the `LateRequest`, and `LateResponse` types defined in the `Model` tab. - -To test the template execution, go to the `Request` tab in the `Logic` section. It should be already populated with a valid request. Press the `Trigger` button to trigger the clause. - -![Advanced-Late-7](assets/advanced/late7.png) - -Since the value of the `deliveredAt` parameter in the request is after the value of the `agreedDelivery` parameter in the request, this should return a new response which includes the calculated penalty. - -Changing the date for the `deliveredAt` parameter in the request and triggering the contract again will result in a different penalty. - -![Advanced-Late-8](assets/advanced/late8.png) - -Note that the clause will return an error if it is called for a timely delivery. - -![Advanced-Late-9](assets/advanced/late9.png) - -## Add a Penalty Cap - -We can now start building a more advanced clause. Let us first take a moment to notice that there is no limitation to the penalty resulting from a late delivery. Trigger the contract using the following request in the `Request` tab in `Logic`: -```json -{ - "$class": "org.accordproject.minilatedeliveryandpenalty.LateRequest", - "agreedDelivery": "2019-04-10T12:00:00-05:00", - "deliveredAt": "2019-04-20T03:24:00-05:00", - "goodsValue": 200 -} -``` -The penalty should be rather low. Now send this other request: -```json -{ - "$class": "org.accordproject.minilatedeliveryandpenalty.LateRequest", - "agreedDelivery": "2005-04-01T12:00:00-05:00", - "deliveredAt": "2019-04-20T03:24:00-05:00", - "goodsValue": 200 -} -``` -Notice that the penalty is now quite a large value. It is not unusual to cap a penalty to a maximum amount. Let us now look at how to change the template to add such a cap based on a percentage of the total value of the delivered goods. - -### Update the Legal Text - -To implement this, we first go to the `Grammar` tab in the `Text` section and add a sentence indicating: `The total amount of penalty shall not, however, exceed {{capPercentage}}% of the total value of the delayed goods.` - -For convenience, you can copy-paste the new template text from here: -```tem -Late Delivery and Penalty. - -In case of delayed delivery of Goods, {{seller}} shall pay to -{{buyer}} a penalty amounting to {{penaltyPercentage}}% of the total -value of the Goods for every {{penaltyDuration}} of delay. The total -amount of penalty shall not, however, exceed {{capPercentage}}% of the -total value of the delayed goods. If the delay is more than -{{maximumDelay}}, the Buyer is entitled to terminate this Contract. - -``` -This should immediately result in an error when parsing the contract text: - -![Advanced-Late-10](assets/advanced/late10.png) - -As explained in the error message, this is because the new template text uses a variable `capPercentage` which has not been declared in the model. - -### Update the Model - -To define this new variable, go to the `Model` tab, and change the `MiniLateDeliveryClause` type to include `o Double capPercentage`. - -![Advanced-Late-11](assets/advanced/late11.png) - -For convenience, you can copy-paste the new `MiniLateDeliveryClause` type from here: -```ergo -asset MiniLateDeliveryClause extends AccordClause { - o AccordParty buyer // Party to the contract (buyer) - o AccordParty seller // Party to the contract (seller) - o Duration penaltyDuration // Length of time resulting in penalty - o Double penaltyPercentage // Penalty percentage - o Double capPercentage // Maximum penalty percentage - o Duration maximumDelay // Maximum delay before termination -} -``` - -This results in a new error, this time on the sample contract: - -![Advanced-Late-12](assets/advanced/late12.png) - -To fix it, we need to add that same line we added to the template, replacing the `capPercentage` by a value in the `Test Contract`: `The total amount of penalty shall not, however, exceed 52% of the total value of the delayed goods.` - -For convenience, you can copy-paste the new test contract from here: -```md -Late Delivery and Penalty. - -In case of delayed delivery of Goods, "Steve Seller" shall pay to -"Betty Buyer" a penalty amounting to 10.5% of the total -value of the Goods for every 2 days of delay. The total -amount of penalty shall not, however, exceed 52% of the -total value of the delayed goods. If the delay is more than -15 days, the Buyer is entitled to terminate this Contract. - -``` - -Great, now the edited template should have no more errors, and the contract data should now include the value for the new `capPercentage` variable. - -![Advanced-Late-13](assets/advanced/late13.png) - -Note that the `Current Template` Tab indicates that the template has been changed. - -### Update the Logic - -At this point, executing the logic will still result in large penalties. This is because the logic does not take advantage of the new `capPercentage` variable. Edit the `logic.ergo` code to do so. After step `// 2. Penalty formula` in the logic, apply the penalty cap by adding some logic as follows: -```ergo - // 3. Capped Penalty - let cap = contract.capPercentage / 100.0 * request.goodsValue; - - let cappedPenalty = - if penalty > cap - then cap - else penalty; - -``` -Do not forget to also change the value of the penalty in the returned `LateResponse` to use the new variable `cappedPenalty`: -```ergo - // 5. Return the response - return LateResponse{ - penalty: cappedPenalty, - buyerMayTerminate: termination - } -``` -The logic should now look as follows: - -![Advanced-Late-14](assets/advanced/late14.png) - -### Run the new Logic - -As a final test of the new template, you should try again to run the contract with a long delay in delivery. This should now result in a much smaller penalty, which is capped to 52% of the total value of the goods, or 104 USD. - -![Advanced-Late-15](assets/advanced/late15.png) - -:::tip -A full version of the template after those changes have been applied can be found as the [Mini Late Delivery And Penalty Capped](https://templates.accordproject.org/minilatedeliveryandpenalty-capped@0.5.0.html) in the Template Library. -::: - -## Emit a Payment Obligation. - -As a final extension to this template, we can modify it to emit a Payment Obligation. This first requires us to switch from a Clause template to a Contract template. - -### Switch to a Contract Template - -The first place to change is in the metadata for the template. This can be done easily with the `full contract` button in the `Current Template` tab. This will immediately result in an error indicating that the model does not contain an `AccordContract` type. - -![Advanced-Late-16](assets/advanced/late16.png) - -### Update the Model - -To fix this, change the model to reflect that we are now editing a contract template, and change the type `AccordClause` to `AccordContract` in the type definition for the template variables: -```ergo -asset MiniLateDeliveryContract extends AccordContract { - o AccordParty buyer // Party to the contract (buyer) - o AccordParty seller // Party to the contract (seller) - o Duration penaltyDuration // Length of time resulting in penalty - o Double penaltyPercentage // Penalty percentage - o Double capPercentage // Maximum penalty percentage - o Duration maximumDelay // Maximum delay before termination -} -``` - -The next error is in the logic, since it still uses the old `MiniLateDeliveryClause` type which does not exist anymore. - -### Update the Logic - -The `Logic` error that occurs here is: -```bash -Compilation error (at file lib/logic.ergo line 19 col 31). Cannot find type with name 'MiniLateDeliveryClause' -contract MiniLateDelivery over MiniLateDeliveryClause { - ^^^^^^^^^^^^^^^^^^^^^^ -``` -Update the logic to use the the new `MiniLateDeliveryContract` type instead, as follows: -```ergo -contract MiniLateDelivery over MiniLateDeliveryContract { -``` - -The template should now be without errors. - -### Add a Payment Obligation - -Our final task is to emit a `PaymentObligation` to indicate that the buyer should pay the seller in the amount of the calculated penalty. - -To do so, first import a couple of standard models: for the Cicero's [runtime model](https://models.accordproject.org/cicero/runtime.html) (which contains the definition of a `PaymentObligation`), and for the Accord Project's [money model](https://models.accordproject.org/money.html) (which contains the definition of a `MonetaryAmount`). The `import` statements at the top of your logic should look as follows: -```ergo -import org.accordproject.time.* -import org.accordproject.cicero.runtime.* -import org.accordproject.money.MonetaryAmount - -``` - -Lastly, add a new step between steps `// 4.` and `// 5.` in the logic to emit a payment obligation in USD: -```ergo - emit PaymentObligation{ - contract: contract, - promisor: some(contract.seller), - promisee: some(contract.buyer), - deadline: none, - amount: MonetaryAmount{ doubleValue: cappedPenalty, currencyCode: USD }, - description: contract.seller.partyId ++ " should pay penalty amount to " ++ contract.buyer.partyId - }; - -``` -That's it! You can observe in the `Request` tab that an `Obligation` is now being emitted. Try out adjusting values and continuing to send requests and getting responses and obligations. - -![Advanced-Late-17](assets/advanced/late17.png) - -:::tip -A full version of the template after those changes have been applied can be found as the [Mini-Late Delivery and Penalty Payment](https://templates.accordproject.org/minilatedeliveryandpenalty-payment@0.5.0.html) in the Template Library. -::: +--- +id: tutorial-studio +title: With Template Studio +--- + +This tutorial will walk you through the steps of editing a clause template in [Template Studio](https://studio.accordproject.org/). + +We start with a very simple _Late Penalty and Delivery_ Clause and gradually make it more complex, adding both legal text to it and the corresponding business logic in Ergo. + +## Initial Late Delivery Clause + +### Load the Template + +To get started, head to the `minilatedeliveryandpenalty` template in the Accord Project Template Library at [Mini Late Delivery And Penalty](https://templates.accordproject.org/minilatedeliveryandpenalty@0.5.0.html) and click the "Open In Template Studio" button. + +![Advanced-Late-1](/docs/assets/advanced/late1.png) + +Begin by inspecting the `README` and `package.json` tabs within the `Metadata` section. Feel free to change the name of the template to one you like. + +### The Contract Text + +Then click on the `Text` Section on the left, which should show a `Grammar` tab, for the the natural language of the template. + +![Advanced-Late-2](/docs/assets/advanced/late2.png) + +When the text in the `Grammar` tab is in sync with the text in the `Sample` tab, this means the sample is a valid with respect to the grammar, and data is extracted, showing in `Contract Data` tab. The contract data is represented using the JSON format and contains the value of the variables declared in the contract template. For instance, the value for the `buyer` variable is `Betty Buyer`, highlighted in red: + +![Advanced-Late-3](/docs/assets/advanced/late3.png) + +Changes to the variables in the `Sample` are reflected in the `Contract Data` tab in real time, and vice versa. For instance, change `Betty Buyer` to a different name in the contract text to see the `partyId` change in the contract data. + +If you edit part of the text which is not a variable in the template, this results in an error when parsing the `Sample`. The error will be shown in red in the status bar at the bottom of the page. For instance, the following image shows the parsing error obtained when changing the word `delayed` to the word `timely` in the contract text. + +![Advanced-Late-4](/docs/assets/advanced/late4.png) + +This is because the `Sample` relies on the `Grammar` text as a source of truth. This mechanism ensures that the actual contract always reflects the template, and remains faithful to the original legal text. You can, however, edit the `Grammar` itself to change the legal text. + +Revert your changes, changing the word `timely` back to the original word `delayed` and the parsing error will disappear. + +### The Model + +Moving along to the `Model` section, you will find the data model for the template variables (the `MiniLateDeliveryClause` type), as well as for the requests (the `LateRequest` type) and response (the `LateResponse` type) for the late delivery and penalty clause. + +![Advanced-Late-5](/docs/assets/advanced/late5.png) + +Note that a `namespace` is declared at the beginning of the file for the model, and that several existing models are being imported (using e.g., `import org.accordproject.cicero.contract.*`). Those imports are needed to access the definition for several types used in the model: +- `AccordClause` which is a generic type for all Accord Project clause templates, and is defined in the `org.accordproject.contract` namespace; +- `Request` and `Response` which are generic types for responses and requests, and are defined in the `org.accordproject.runtime` namespace; +- `Duration` which is defined in the `org.accordproject.time` namespace. + +### The Logic + +The final part of the template is the `Ergo` tab of the `Logic` section, which describes the business logic. + +![Advanced-Late-6](/docs/assets/advanced/late6.png) + +Thanks to the `namespace` at the beginning of this file, the Ergo engine can know the definition for the `MiniLateDeliveryClause`, as well as the `LateRequest`, and `LateResponse` types defined in the `Model` tab. + +To test the template execution, go to the `Request` tab in the `Logic` section. It should be already populated with a valid request. Press the `Trigger` button to trigger the clause. + +![Advanced-Late-7](/docs/assets/advanced/late7.png) + +Since the value of the `deliveredAt` parameter in the request is after the value of the `agreedDelivery` parameter in the request, this should return a new response which includes the calculated penalty. + +Changing the date for the `deliveredAt` parameter in the request and triggering the contract again will result in a different penalty. + +![Advanced-Late-8](/docs/assets/advanced/late8.png) + +Note that the clause will return an error if it is called for a timely delivery. + +![Advanced-Late-9](/docs/assets/advanced/late9.png) + +## Add a Penalty Cap + +We can now start building a more advanced clause. Let us first take a moment to notice that there is no limitation to the penalty resulting from a late delivery. Trigger the contract using the following request in the `Request` tab in `Logic`: +```json +{ + "$class": "org.accordproject.minilatedeliveryandpenalty.LateRequest", + "agreedDelivery": "2019-04-10T12:00:00-05:00", + "deliveredAt": "2019-04-20T03:24:00-05:00", + "goodsValue": 200 +} +``` +The penalty should be rather low. Now send this other request: +```json +{ + "$class": "org.accordproject.minilatedeliveryandpenalty.LateRequest", + "agreedDelivery": "2005-04-01T12:00:00-05:00", + "deliveredAt": "2019-04-20T03:24:00-05:00", + "goodsValue": 200 +} +``` +Notice that the penalty is now quite a large value. It is not unusual to cap a penalty to a maximum amount. Let us now look at how to change the template to add such a cap based on a percentage of the total value of the delivered goods. + +### Update the Legal Text + +To implement this, we first go to the `Grammar` tab in the `Text` section and add a sentence indicating: `The total amount of penalty shall not, however, exceed {{capPercentage}}% of the total value of the delayed goods.` + +For convenience, you can copy-paste the new template text from here: +```tem +Late Delivery and Penalty. + +In case of delayed delivery of Goods, {{seller}} shall pay to +{{buyer}} a penalty amounting to {{penaltyPercentage}}% of the total +value of the Goods for every {{penaltyDuration}} of delay. The total +amount of penalty shall not, however, exceed {{capPercentage}}% of the +total value of the delayed goods. If the delay is more than +{{maximumDelay}}, the Buyer is entitled to terminate this Contract. + +``` +This should immediately result in an error when parsing the contract text: + +![Advanced-Late-10](/docs/assets/advanced/late10.png) + +As explained in the error message, this is because the new template text uses a variable `capPercentage` which has not been declared in the model. + +### Update the Model + +To define this new variable, go to the `Model` tab, and change the `MiniLateDeliveryClause` type to include `o Double capPercentage`. + +![Advanced-Late-11](/docs/assets/advanced/late11.png) + +For convenience, you can copy-paste the new `MiniLateDeliveryClause` type from here: +```ergo +asset MiniLateDeliveryClause extends AccordClause { + o AccordParty buyer // Party to the contract (buyer) + o AccordParty seller // Party to the contract (seller) + o Duration penaltyDuration // Length of time resulting in penalty + o Double penaltyPercentage // Penalty percentage + o Double capPercentage // Maximum penalty percentage + o Duration maximumDelay // Maximum delay before termination +} +``` + +This results in a new error, this time on the sample contract: + +![Advanced-Late-12](/docs/assets/advanced/late12.png) + +To fix it, we need to add that same line we added to the template, replacing the `capPercentage` by a value in the `Test Contract`: `The total amount of penalty shall not, however, exceed 52% of the total value of the delayed goods.` + +For convenience, you can copy-paste the new test contract from here: +```md +Late Delivery and Penalty. + +In case of delayed delivery of Goods, "Steve Seller" shall pay to +"Betty Buyer" a penalty amounting to 10.5% of the total +value of the Goods for every 2 days of delay. The total +amount of penalty shall not, however, exceed 52% of the +total value of the delayed goods. If the delay is more than +15 days, the Buyer is entitled to terminate this Contract. + +``` + +Great, now the edited template should have no more errors, and the contract data should now include the value for the new `capPercentage` variable. + +![Advanced-Late-13](/docs/assets/advanced/late13.png) + +Note that the `Current Template` Tab indicates that the template has been changed. + +### Update the Logic + +At this point, executing the logic will still result in large penalties. This is because the logic does not take advantage of the new `capPercentage` variable. Edit the `logic.ergo` code to do so. After step `// 2. Penalty formula` in the logic, apply the penalty cap by adding some logic as follows: +```ergo + // 3. Capped Penalty + let cap = contract.capPercentage / 100.0 * request.goodsValue; + + let cappedPenalty = + if penalty > cap + then cap + else penalty; + +``` +Do not forget to also change the value of the penalty in the returned `LateResponse` to use the new variable `cappedPenalty`: +```ergo + // 5. Return the response + return LateResponse{ + penalty: cappedPenalty, + buyerMayTerminate: termination + } +``` +The logic should now look as follows: + +![Advanced-Late-14](/docs/assets/advanced/late14.png) + +### Run the new Logic + +As a final test of the new template, you should try again to run the contract with a long delay in delivery. This should now result in a much smaller penalty, which is capped to 52% of the total value of the goods, or 104 USD. + +![Advanced-Late-15](/docs/assets/advanced/late15.png) + +:::tip +A full version of the template after those changes have been applied can be found as the [Mini Late Delivery And Penalty Capped](https://templates.accordproject.org/minilatedeliveryandpenalty-capped@0.5.0.html) in the Template Library. +::: + +## Emit a Payment Obligation. + +As a final extension to this template, we can modify it to emit a Payment Obligation. This first requires us to switch from a Clause template to a Contract template. + +### Switch to a Contract Template + +The first place to change is in the metadata for the template. This can be done easily with the `full contract` button in the `Current Template` tab. This will immediately result in an error indicating that the model does not contain an `AccordContract` type. + +![Advanced-Late-16](/docs/assets/advanced/late16.png) + +### Update the Model + +To fix this, change the model to reflect that we are now editing a contract template, and change the type `AccordClause` to `AccordContract` in the type definition for the template variables: +```ergo +asset MiniLateDeliveryContract extends AccordContract { + o AccordParty buyer // Party to the contract (buyer) + o AccordParty seller // Party to the contract (seller) + o Duration penaltyDuration // Length of time resulting in penalty + o Double penaltyPercentage // Penalty percentage + o Double capPercentage // Maximum penalty percentage + o Duration maximumDelay // Maximum delay before termination +} +``` + +The next error is in the logic, since it still uses the old `MiniLateDeliveryClause` type which does not exist anymore. + +### Update the Logic + +The `Logic` error that occurs here is: +```bash +Compilation error (at file lib/logic.ergo line 19 col 31). Cannot find type with name 'MiniLateDeliveryClause' +contract MiniLateDelivery over MiniLateDeliveryClause { + ^^^^^^^^^^^^^^^^^^^^^^ +``` +Update the logic to use the the new `MiniLateDeliveryContract` type instead, as follows: +```ergo +contract MiniLateDelivery over MiniLateDeliveryContract { +``` + +The template should now be without errors. + +### Add a Payment Obligation + +Our final task is to emit a `PaymentObligation` to indicate that the buyer should pay the seller in the amount of the calculated penalty. + +To do so, first import a couple of standard models: for the Cicero's [runtime model](https://models.accordproject.org/cicero/runtime.html) (which contains the definition of a `PaymentObligation`), and for the Accord Project's [money model](https://models.accordproject.org/money.html) (which contains the definition of a `MonetaryAmount`). The `import` statements at the top of your logic should look as follows: +```ergo +import org.accordproject.time.* +import org.accordproject.cicero.runtime.* +import org.accordproject.money.MonetaryAmount + +``` + +Lastly, add a new step between steps `// 4.` and `// 5.` in the logic to emit a payment obligation in USD: +```ergo + emit PaymentObligation{ + contract: contract, + promisor: some(contract.seller), + promisee: some(contract.buyer), + deadline: none, + amount: MonetaryAmount{ doubleValue: cappedPenalty, currencyCode: USD }, + description: contract.seller.partyId ++ " should pay penalty amount to " ++ contract.buyer.partyId + }; + +``` +That's it! You can observe in the `Request` tab that an `Obligation` is now being emitted. Try out adjusting values and continuing to send requests and getting responses and obligations. + +![Advanced-Late-17](/docs/assets/advanced/late17.png) + +:::tip +A full version of the template after those changes have been applied can be found as the [Mini-Late Delivery and Penalty Payment](https://templates.accordproject.org/minilatedeliveryandpenalty-payment@0.5.0.html) in the Template Library. +::: diff --git a/log/trace.log b/log/trace.log new file mode 100644 index 00000000..e69de29b diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 00000000..b52c4a85 --- /dev/null +++ b/website/.gitignore @@ -0,0 +1 @@ +.docusaurus diff --git a/website/blog/2018-05-18-blog-post.md b/website/blog/2018-05-18-blog-post.md index fee522d1..ccbd035d 100755 --- a/website/blog/2018-05-18-blog-post.md +++ b/website/blog/2018-05-18-blog-post.md @@ -1,7 +1,7 @@ --- title: Welcome! author: Dan Selman -authorURL: http://twitter.com/danielselman +authorURL: "http://twitter.com/danielselman" --- This is a test. diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js new file mode 100644 index 00000000..bfad46c4 --- /dev/null +++ b/website/docusaurus.config.js @@ -0,0 +1,163 @@ +module.exports={ + "title": "Accord Project", + "tagline": "Documentation", + "url": "https://docs.accordproject.org", + "baseUrl": "/", + "organizationName": "accordproject", + "projectName": "techdocs", + "scripts": [ + "https://buttons.github.io/buttons.js", + "https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js", + "/js/code-block-buttons.js" + ], + "favicon": "img/favicon.png", + "customFields": { + "taglineLead": "Open Source", + "users": [ + { + "caption": "Clause Inc.", + "image": "img/clause-logo-sm.png", + "infoLink": "http://clause.io", + "pinned": true + }, + { + "caption": "ContractPen", + "image": "img/contractpen-logo-sm.png", + "infoLink": "https://contractpen.com", + "pinned": true + }, + { + "caption": 'REIV SmartVicForms', + "image": 'https://smartvicforms.com.au/assets/Logo/reiv-smartVicforms%20logo-Full%20Colour.svg', + "infoLink": 'https://smartvicforms.com.au', + "pinned": true, + }, + { + "caption": 'beNEXT', + "image": 'https://smartvicforms.com.au/assets/Logo/beNext_orange-darkgreen-logo.svg', + "infoLink": 'https://www.benext.io', + "pinned": true, + }, + ], + "markdownPlugins": [ + null + ], + "repoUrl": "https://github.com/accordproject/cicero" + }, + "onBrokenLinks": "log", + "presets": [ + [ + "@docusaurus/preset-classic", + { + "debug": true, + "docs": { + "homePageId": "accordproject", + "showLastUpdateAuthor": true, + "showLastUpdateTime": true, + "path": "../docs", + "remarkPlugins": [ + [require('@docusaurus/remark-plugin-npm2yarn'), {sync: true}], + ], + "sidebarPath": require.resolve("./sidebars.json") + }, + "blog": { + "path": "blog" + }, + "pages": { + "remarkPlugins": [require('@docusaurus/remark-plugin-npm2yarn')], + }, + "theme": { + "customCss": [require.resolve("./src/css/customTheme.css")] + } + } + ] + ], + "plugins": [ + [ + "@docusaurus/plugin-client-redirects", + { + "fromExtensions": [ + "html" + ] + } + ] + ], + "themeConfig": { + "hideableSidebar": true, + "colorMode": { + "defaultMode": 'light', + "disableSwitch": false, + "respectPrefersColorScheme": true, + }, + "prism": { + "theme": require('prism-react-renderer/themes/github'), + "darkTheme": require('prism-react-renderer/themes/dracula'), + }, + "navbar": { + "title": "Accord Project", + "hideOnScroll": true, + "logo": { + "alt": 'Accord Project Logo', + "src": 'img/accord_icon.png', + "srcDark": 'img/accord_icon_white.png', + }, + "items": [ + { + "to": "docs/", + "label": "Documentation", + "position": "left" + }, + { + "href": "https://studio.accordproject.org", + "label": "Try Online!", + "position": "left" + }, + { + "href": "https://github.com/accordproject", + "label": "GitHub", + "position": "left" + }, + { + "label": "Version", + "to": "docs", + "position": "right", + "items": [ + { + "label": "0.21", + "to": "docs/", + "activeBaseRegex": "docs/(?!0.12|0.13|0.20|0.21|next)" + }, + { + "label": "0.20", + "to": "docs/0.20/" + }, + { + "label": "0.13", + "to": "docs/0.13/" + }, + { + "label": "0.12", + "to": "docs/0.12/" + }, + ] + } + ] + }, + "image": "img/docusaurus.png", + "footer": { + "style": 'dark', + "links": [], + "copyright": 'Copyright © 2018-' + new Date().getFullYear() + ' Accord Project, LLC.', + "logo": { + "alt": 'Accord Project Logo', + "src": 'img/accord_icon_white.png', + "href": 'https://accordproject.org"', + }, + }, + "algolia": { + "apiKey": "1679802ddfc315329d6b5f4616b30e51", + "indexName": "accordproject_api", + "algoliaOptions": {} + } + } +} \ No newline at end of file diff --git a/website/i18n/en.json b/website/i18n/en.json deleted file mode 100644 index 3a48dc1b..00000000 --- a/website/i18n/en.json +++ /dev/null @@ -1,624 +0,0 @@ -{ - "_comment": "This file is auto-generated by write-translations.js", - "localized-strings": { - "next": "Next", - "previous": "Previous", - "tagline": "Documentation", - "docs": { - "accordproject-faq": { - "title": "FAQ" - }, - "accordproject-slc": { - "title": "Smart Legal Contracts" - }, - "accordproject-template": { - "title": "Accord Project Templates" - }, - "accordproject-tour": { - "title": "Online Tour" - }, - "accordproject": { - "title": "Overview" - }, - "ergo-tutorial": { - "title": "Ergo: A Tutorial" - }, - "example-eatapple": { - "title": "A Healthy Clause" - }, - "logic-advanced-expr": { - "title": "Advanced Expressions" - }, - "logic-complex-type": { - "title": "Complex Values & Types" - }, - "logic-decl": { - "title": "Declarations" - }, - "logic-ergo": { - "title": "Ergo Overview" - }, - "logic-module": { - "title": "Modules" - }, - "logic-simple-expr": { - "title": "Simple Expressions" - }, - "logic-simple-type": { - "title": "Introducing Types" - }, - "logic-stmt": { - "title": "Statements" - }, - "markup-ciceromark": { - "title": "CiceroMark" - }, - "markup-commonmark": { - "title": "CommonMark" - }, - "markup-preliminaries": { - "title": "Preliminaries" - }, - "markup-templatemark": { - "title": "TemplateMark" - }, - "model-api": { - "title": "Using the API" - }, - "model-classes": { - "title": "Classes" - }, - "model-concerto": { - "title": "Concerto Overview" - }, - "model-decorators": { - "title": "Decorators" - }, - "model-enums": { - "title": "Enumerations" - }, - "model-namespaces": { - "title": "Namespaces" - }, - "model-properties": { - "title": "Properties" - }, - "model-relationships": { - "title": "Relationships" - }, - "ref-cicero-api": { - "title": "Node.js API" - }, - "ref-cicero-cli": { - "title": "Command Line" - }, - "ref-cicero-testing": { - "title": "Template Testing" - }, - "ref-concerto-api": { - "title": "Node.js API" - }, - "ref-concerto-cli": { - "title": "Command Line" - }, - "ref-concerto-decorators": { - "title": "Decorators" - }, - "ref-ergo-api": { - "title": "Node.js API" - }, - "ref-ergo-cli": { - "title": "Command Line" - }, - "ref-ergo-repl": { - "title": "Read-Eval-Print Loop" - }, - "ref-ergo-spec": { - "title": "Specification" - }, - "ref-ergo-stdlib": { - "title": "Standard Library" - }, - "ref-errors": { - "title": "Errors" - }, - "ref-glossary": { - "title": "Glossary" - }, - "ref-markus-cli": { - "title": "Command Line" - }, - "ref-migrate-0.13-0.20": { - "title": "0.13 to 0.20" - }, - "ref-migrate-0.20-0.21": { - "title": "0.20 to 0.21" - }, - "ref-web-components-overview": { - "title": "Overview" - }, - "started-hello": { - "title": "Hello World Template" - }, - "started-installation": { - "title": "Install Cicero" - }, - "started-resources": { - "title": "Resources" - }, - "tutorial-create": { - "title": "Template Generator" - }, - "tutorial-hyperledger": { - "title": "With Hyperledger Fabric" - }, - "tutorial-library": { - "title": "Template Library" - }, - "tutorial-nodejs": { - "title": "With Node.js" - }, - "tutorial-studio": { - "title": "With Template Studio" - }, - "tutorial-templates": { - "title": "Templates Deep Dive" - }, - "tutorial-vscode": { - "title": "With VS Code" - }, - "version-0.12/version-0.12-accordproject-installation": { - "title": "Installation" - }, - "version-0.12/version-0.12-accordproject-models": { - "title": "Standard Models" - }, - "version-0.12/version-0.12-accordproject-resources": { - "title": "Learning Resources" - }, - "version-0.12/version-0.12-accordproject-studio": { - "title": "Template Studio" - }, - "version-0.12/version-0.12-accordproject-templates": { - "title": "Open Source Templates" - }, - "version-0.12/version-0.12-accordproject-tooling": { - "title": "Developers Tools" - }, - "version-0.12/version-0.12-accordproject": { - "title": "Getting Started with Accord Project" - }, - "version-0.12/version-0.12-advanced-hyperledger": { - "title": "Deploying on Hyperledger Fabric" - }, - "version-0.12/version-0.12-advanced-latedelivery": { - "title": "Authoring in Template Studio" - }, - "version-0.12/version-0.12-advanced-nodejs": { - "title": "Working with Node.js" - }, - "version-0.12/version-0.12-basic-create": { - "title": "Creating a New Template" - }, - "version-0.12/version-0.12-basic-library": { - "title": "Publishing a Template" - }, - "version-0.12/version-0.12-basic-templates": { - "title": "Take a Look Inside" - }, - "version-0.12/version-0.12-basic-use": { - "title": "How to Use a Template" - }, - "version-0.12/version-0.12-cicero-api": { - "title": "Cicero API" - }, - "version-0.12/version-0.12-cicero-cli": { - "title": "Cicero CLI" - }, - "version-0.12/version-0.12-ergo-api": { - "title": "Ergo API" - }, - "version-0.12/version-0.12-ergo-cli": { - "title": "Ergo CLI" - }, - "version-0.12/version-0.12-ergo-tutorial": { - "title": "Ergo: A Tutorial" - }, - "version-0.12/version-0.12-example-eatapple": { - "title": "A Healthy Clause" - }, - "version-0.12/version-0.12-logic-advanced-expr": { - "title": "Advanced Expressions" - }, - "version-0.12/version-0.12-logic-complex-type": { - "title": "Complex Values & Types" - }, - "version-0.12/version-0.12-logic-decl": { - "title": "Declarations" - }, - "version-0.12/version-0.12-logic-ergo": { - "title": "Overview" - }, - "version-0.12/version-0.12-logic-module": { - "title": "Modularity" - }, - "version-0.12/version-0.12-logic-simple-expr": { - "title": "Simple Expressions" - }, - "version-0.12/version-0.12-logic-simple-type": { - "title": "Introducing Types" - }, - "version-0.12/version-0.12-logic-stmt": { - "title": "Statements" - }, - "version-0.12/version-0.12-ref-logic-specification": { - "title": "Ergo Compiler" - }, - "version-0.12/version-0.12-ref-logic-stdlib": { - "title": "Ergo Libraries" - }, - "version-0.12/version-0.12-ref-logic": { - "title": "Ergo Language Reference" - }, - "version-0.12/version-0.12-ref-markup": { - "title": "Markup Reference" - }, - "version-0.12/version-0.12-ref-testing": { - "title": "Testing Reference" - }, - "version-0.12/version-0.12-spec-concepts": { - "title": "Concepts and High-level Architecture" - }, - "version-0.12/version-0.12-spec-example": { - "title": "Example: Late Delivery Clause" - }, - "version-0.12/version-0.12-spec-execution": { - "title": "Contract Execution" - }, - "version-0.12/version-0.12-spec-instance": { - "title": "Template Instantiation" - }, - "version-0.12/version-0.12-spec-overview": { - "title": "Overview" - }, - "version-0.12/version-0.12-spec-packaging": { - "title": "Packaging" - }, - "version-0.12/version-0.12-spec-template": { - "title": "Template Structure" - }, - "version-0.13/version-0.13-accordproject-installation": { - "title": "Installation" - }, - "version-0.13/version-0.13-basic-create": { - "title": "Creating a New Template" - }, - "version-0.13/version-0.13-basic-use": { - "title": "How to Use a Template" - }, - "version-0.13/version-0.13-ergo-cli": { - "title": "Ergo CLI" - }, - "version-0.13/version-0.13-ergo-tutorial": { - "title": "Ergo: A Tutorial" - }, - "version-0.13/version-0.13-logic-complex-type": { - "title": "Complex Values & Types" - }, - "version-0.13/version-0.13-logic-stmt": { - "title": "Statements" - }, - "version-0.13/version-0.13-ref-errors": { - "title": "Errors Reference" - }, - "version-0.13/version-0.13-ref-logic-stdlib": { - "title": "Ergo Libraries" - }, - "version-0.13/version-0.13-spec-packaging": { - "title": "Packaging" - }, - "version-0.20/version-0.20-accordproject-business": { - "title": "For Business" - }, - "version-0.20/version-0.20-accordproject-concepts": { - "title": "Key Concepts" - }, - "version-0.20/version-0.20-accordproject-developers": { - "title": "For Developers" - }, - "version-0.20/version-0.20-accordproject": { - "title": "Overview" - }, - "version-0.20/version-0.20-cicero-api": { - "title": "Cicero API" - }, - "version-0.20/version-0.20-cicero-cli": { - "title": "Cicero CLI" - }, - "version-0.20/version-0.20-concerto-api": { - "title": "Concerto API" - }, - "version-0.20/version-0.20-concerto-cli": { - "title": "Concerto CLI" - }, - "version-0.20/version-0.20-ergo-api": { - "title": "Ergo API" - }, - "version-0.20/version-0.20-ergo-cli": { - "title": "Ergo CLI" - }, - "version-0.20/version-0.20-ergo-repl": { - "title": "Ergo REPL" - }, - "version-0.20/version-0.20-ergo-tutorial": { - "title": "Ergo: A Tutorial" - }, - "version-0.20/version-0.20-example-eatapple": { - "title": "A Healthy Clause" - }, - "version-0.20/version-0.20-logic-advanced-expr": { - "title": "Advanced Expressions" - }, - "version-0.20/version-0.20-logic-complex-type": { - "title": "Complex Values & Types" - }, - "version-0.20/version-0.20-logic-decl": { - "title": "Declarations" - }, - "version-0.20/version-0.20-logic-ergo": { - "title": "Ergo Overview" - }, - "version-0.20/version-0.20-logic-module": { - "title": "Modules" - }, - "version-0.20/version-0.20-logic-simple-expr": { - "title": "Simple Expressions" - }, - "version-0.20/version-0.20-logic-simple-type": { - "title": "Introducing Types" - }, - "version-0.20/version-0.20-logic-stmt": { - "title": "Statements" - }, - "version-0.20/version-0.20-markup-blocks": { - "title": "Block Expressions" - }, - "version-0.20/version-0.20-markup-cicero": { - "title": "CiceroMark Overview" - }, - "version-0.20/version-0.20-markup-commonmark": { - "title": "Rich Text Markdown" - }, - "version-0.20/version-0.20-markup-ergo": { - "title": "Ergo Expressions" - }, - "version-0.20/version-0.20-markup-variables": { - "title": "Variable Expressions" - }, - "version-0.20/version-0.20-markus-cli": { - "title": "Markdown Transform CLI" - }, - "version-0.20/version-0.20-model-api": { - "title": "Using the API" - }, - "version-0.20/version-0.20-model-classes": { - "title": "Classes" - }, - "version-0.20/version-0.20-model-concerto": { - "title": "Concerto Overview" - }, - "version-0.20/version-0.20-model-decorators": { - "title": "Decorators" - }, - "version-0.20/version-0.20-model-enums": { - "title": "Enumerations" - }, - "version-0.20/version-0.20-model-namespaces": { - "title": "Namespaces" - }, - "version-0.20/version-0.20-model-properties": { - "title": "Properties" - }, - "version-0.20/version-0.20-model-relationships": { - "title": "Relationships" - }, - "version-0.20/version-0.20-ref-cicero-ui": { - "title": "Cicero UI Reference" - }, - "version-0.20/version-0.20-ref-glossary": { - "title": "Glossary" - }, - "version-0.20/version-0.20-ref-logic-specification": { - "title": "Ergo Compiler" - }, - "version-0.20/version-0.20-ref-logic-stdlib": { - "title": "Ergo Standard Library" - }, - "version-0.20/version-0.20-ref-logic": { - "title": "Ergo Language Reference" - }, - "version-0.20/version-0.20-ref-migrate-0.13-0.20": { - "title": "0.13 to 0.20" - }, - "version-0.20/version-0.20-ref-testing": { - "title": "Testing Reference" - }, - "version-0.20/version-0.20-started-hello": { - "title": "Hello World Template" - }, - "version-0.20/version-0.20-started-installation": { - "title": "Install Cicero" - }, - "version-0.20/version-0.20-started-resources": { - "title": "Resources" - }, - "version-0.20/version-0.20-started-studio": { - "title": "Online Tour" - }, - "version-0.20/version-0.20-tutorial-create": { - "title": "Template Generator" - }, - "version-0.20/version-0.20-tutorial-hyperledger": { - "title": "Deploying on Hyperledger Fabric" - }, - "version-0.20/version-0.20-tutorial-latedelivery": { - "title": "Editing a Late Delivery Clause" - }, - "version-0.20/version-0.20-tutorial-library": { - "title": "Template Library" - }, - "version-0.20/version-0.20-tutorial-nodejs": { - "title": "Working with Node.js" - }, - "version-0.20/version-0.20-tutorial-templates": { - "title": "Templates Deep Dive" - }, - "version-0.21/version-0.21-accordproject-faq": { - "title": "FAQ" - }, - "version-0.21/version-0.21-accordproject-slc": { - "title": "Smart Legal Contracts" - }, - "version-0.21/version-0.21-accordproject-template": { - "title": "Accord Project Templates" - }, - "version-0.21/version-0.21-accordproject-tour": { - "title": "Online Tour" - }, - "version-0.21/version-0.21-accordproject": { - "title": "Overview" - }, - "version-0.21/version-0.21-ergo-tutorial": { - "title": "Ergo: A Tutorial" - }, - "version-0.21/version-0.21-logic-advanced-expr": { - "title": "Advanced Expressions" - }, - "version-0.21/version-0.21-logic-stmt": { - "title": "Statements" - }, - "version-0.21/version-0.21-markup-ciceromark": { - "title": "CiceroMark" - }, - "version-0.21/version-0.21-markup-commonmark": { - "title": "CommonMark" - }, - "version-0.21/version-0.21-markup-preliminaries": { - "title": "Preliminaries" - }, - "version-0.21/version-0.21-markup-templatemark": { - "title": "TemplateMark" - }, - "version-0.21/version-0.21-model-api": { - "title": "Using the API" - }, - "version-0.21/version-0.21-model-classes": { - "title": "Classes" - }, - "version-0.21/version-0.21-model-decorators": { - "title": "Decorators" - }, - "version-0.21/version-0.21-model-properties": { - "title": "Properties" - }, - "version-0.21/version-0.21-model-relationships": { - "title": "Relationships" - }, - "version-0.21/version-0.21-ref-cicero-api": { - "title": "Node.js API" - }, - "version-0.21/version-0.21-ref-cicero-cli": { - "title": "Command Line" - }, - "version-0.21/version-0.21-ref-cicero-testing": { - "title": "Template Testing" - }, - "version-0.21/version-0.21-ref-concerto-api": { - "title": "Node.js API" - }, - "version-0.21/version-0.21-ref-concerto-cli": { - "title": "Command Line" - }, - "version-0.21/version-0.21-ref-concerto-decorators": { - "title": "Decorators" - }, - "version-0.21/version-0.21-ref-ergo-api": { - "title": "Node.js API" - }, - "version-0.21/version-0.21-ref-ergo-cli": { - "title": "Command Line" - }, - "version-0.21/version-0.21-ref-ergo-repl": { - "title": "Read-Eval-Print Loop" - }, - "version-0.21/version-0.21-ref-ergo-spec": { - "title": "Specification" - }, - "version-0.21/version-0.21-ref-ergo-stdlib": { - "title": "Standard Library" - }, - "version-0.21/version-0.21-ref-errors": { - "title": "Errors" - }, - "version-0.21/version-0.21-ref-markus-cli": { - "title": "Command Line" - }, - "version-0.21/version-0.21-ref-migrate-0.13-0.20": { - "title": "0.13 to 0.20" - }, - "version-0.21/version-0.21-ref-migrate-0.20-0.21": { - "title": "0.20 to 0.21" - }, - "version-0.21/version-0.21-ref-web-components-overview": { - "title": "Overview" - }, - "version-0.21/version-0.21-started-hello": { - "title": "Hello World Template" - }, - "version-0.21/version-0.21-started-installation": { - "title": "Install Cicero" - }, - "version-0.21/version-0.21-tutorial-create": { - "title": "Template Generator" - }, - "version-0.21/version-0.21-tutorial-hyperledger": { - "title": "With Hyperledger Fabric" - }, - "version-0.21/version-0.21-tutorial-library": { - "title": "Template Library" - }, - "version-0.21/version-0.21-tutorial-studio": { - "title": "With Template Studio" - }, - "version-0.21/version-0.21-tutorial-templates": { - "title": "Templates Deep Dive" - }, - "version-0.21/version-0.21-tutorial-vscode": { - "title": "With VS Code" - } - }, - "links": { - "Documentation": "Documentation", - "Try Online!": "Try Online!", - "GitHub": "GitHub" - }, - "categories": { - "Introduction": "Introduction", - "Getting Started": "Getting Started", - "Template Guides": "Template Guides", - "Tutorials": "Tutorials", - "Reference Manual": "Reference Manual", - "User Tutorials": "User Tutorials", - "Developers Tutorials": "Developers Tutorials", - "Basic Tutorials": "Basic Tutorials", - "Advanced Tutorials": "Advanced Tutorials", - "Ergo Language Guide": "Ergo Language Guide", - "Template Specification": "Template Specification" - } - }, - "pages-strings": { - "Help Translate|recruit community translators for your project": "Help Translate", - "Edit this Doc|recruitment message asking to edit the doc source": "Edit", - "Translate this Doc|recruitment message asking to translate the docs": "Translate" - } -} diff --git a/website/package-lock.json b/website/package-lock.json index 417d9469..4935a0c0 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -2,6 +2,121 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "@algolia/cache-browser-local-storage": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.6.0.tgz", + "integrity": "sha512-3ObeNwZ5gfDvKPp9NXdtbBrCtz/yR1oyDu/AReG73Oanua3y30Y11p7VQzzpLe2R/gDCLOGdRgr17h11lGy1Hg==", + "requires": { + "@algolia/cache-common": "4.6.0" + } + }, + "@algolia/cache-common": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.6.0.tgz", + "integrity": "sha512-mEedrPb2O3WwtiIHggFoIhTbHVCMNikxMiiN9kqmwZkdDfClfxm435OUGZfAl67rBZfc0DNs/jmPM2mUoefM9A==" + }, + "@algolia/cache-in-memory": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.6.0.tgz", + "integrity": "sha512-J7ayGokVWEFkuLxzgrIsPS4k1/ZndyGVpG/qPrG9RHVrs7ZogEhUSY1tbEyUlW3mGy7diIh+/52dtohDL/nbGQ==", + "requires": { + "@algolia/cache-common": "4.6.0" + } + }, + "@algolia/client-account": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.6.0.tgz", + "integrity": "sha512-0t2yU6wNBNJgAmrARHrM1llhANyPT4Q/1wu6yEzv2WfPXlfsHwMhtKYNti4/k8eswwUt9wAri10WFV6TJI48rg==", + "requires": { + "@algolia/client-common": "4.6.0", + "@algolia/client-search": "4.6.0", + "@algolia/transporter": "4.6.0" + } + }, + "@algolia/client-analytics": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.6.0.tgz", + "integrity": "sha512-7yfn9pabA21Uw2iZjW1MNN4IJUT5y/YSg+ZJ+3HqBB6SgzOOqY0N3fATsPeGuN9EqSfVnqvnIrJMS8mI0b5FzQ==", + "requires": { + "@algolia/client-common": "4.6.0", + "@algolia/client-search": "4.6.0", + "@algolia/requester-common": "4.6.0", + "@algolia/transporter": "4.6.0" + } + }, + "@algolia/client-common": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.6.0.tgz", + "integrity": "sha512-60jK0LK5H+6q6HyyMyoBBD0fIs8zZzJt6BiyJGQG90o3gUV/SnjiNxO9Bx0RRlqdkE5s0OYFu1L7P9Y5TX7oAw==", + "requires": { + "@algolia/requester-common": "4.6.0", + "@algolia/transporter": "4.6.0" + } + }, + "@algolia/client-recommendation": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/client-recommendation/-/client-recommendation-4.6.0.tgz", + "integrity": "sha512-j+Yb1z5QeIRDCCO+9hS9oZS3KNqRogPHDbJJsLTt6pkrs4CG2UVLVV67M977B1nzJ9OzaEki3VbpGQhRhPGNfQ==", + "requires": { + "@algolia/client-common": "4.6.0", + "@algolia/requester-common": "4.6.0", + "@algolia/transporter": "4.6.0" + } + }, + "@algolia/client-search": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.6.0.tgz", + "integrity": "sha512-+qA1NA88YnXvuCKifegfgts1RQs8IzcwccQqyurz8ins4hypZL1tXN2BkrOqqDIgvYIrUvFyhv+gLO6U9PpDUA==", + "requires": { + "@algolia/client-common": "4.6.0", + "@algolia/requester-common": "4.6.0", + "@algolia/transporter": "4.6.0" + } + }, + "@algolia/logger-common": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.6.0.tgz", + "integrity": "sha512-F+0HTGSQzJfWsX/cJq2l4eG2Y5JA6pqZ0YETyo5XJhZX4JaDrGszVKuOqp8kovZF/Ifebywxb8JdCiSUskmbig==" + }, + "@algolia/logger-console": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.6.0.tgz", + "integrity": "sha512-ers7OhfU6qBQl6s7MOe5gNUkcpa7LGrhEzDWnD0cUwLSd5BvWt7zEN69O2CZVbvAUZYlZ5zJTzMMa49s0VXrKQ==", + "requires": { + "@algolia/logger-common": "4.6.0" + } + }, + "@algolia/requester-browser-xhr": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.6.0.tgz", + "integrity": "sha512-ugrJT25VUkoKrl5vJVFclMdogbhTiDZ38Gss4xfTiSsP/SGE/0ei5VEOMEcj/bjkurJjPky1HfJZ3ykJhIsfCA==", + "requires": { + "@algolia/requester-common": "4.6.0" + } + }, + "@algolia/requester-common": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.6.0.tgz", + "integrity": "sha512-DJ5iIGBGrRudimaaFnpBFM19pv8SsXiMYuukn9q1GgQh2mPPBCBBJiezKc7+OzE1UyCVrAFBpR/hrJnflZnRdQ==" + }, + "@algolia/requester-node-http": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.6.0.tgz", + "integrity": "sha512-MPZK3oZz0jSBsqrGiPxv7LOKMUNknlaRNyRDy0v/ASIYG+GvLhGTdEzG5Eyw5tgSvBr8CWrWM5tDC31EH40Ndw==", + "requires": { + "@algolia/requester-common": "4.6.0" + } + }, + "@algolia/transporter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.6.0.tgz", + "integrity": "sha512-xp+HI8sB8gLCvP00scaOVPQEk5H7nboWUxrwLKyVUvtUO4o003bOfFPsH86NRyu5Dv7fzX9b8EH3rVxcLOhjqg==", + "requires": { + "@algolia/cache-common": "4.6.0", + "@algolia/logger-common": "4.6.0", + "@algolia/requester-common": "4.6.0" + } + }, "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", @@ -11,28 +126,23 @@ } }, "@babel/compat-data": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz", - "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==", - "requires": { - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz", + "integrity": "sha512-DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==" }, "@babel/core": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", - "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.6", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.5", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.5", - "@babel/types": "^7.11.5", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -43,19 +153,19 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==" + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, "@babel/generator": { - "version": "7.11.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", - "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "requires": { - "@babel/types": "^7.11.5", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -87,48 +197,53 @@ } }, "@babel/helper-builder-react-jsx-experimental": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz", - "integrity": "sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==", + "version": "7.12.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz", + "integrity": "sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og==", "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/types": "^7.11.5" + "@babel/helper-module-imports": "^7.12.1", + "@babel/types": "^7.12.1" } }, "@babel/helper-compilation-targets": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz", - "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", "requires": { - "@babel/compat-data": "^7.10.4", - "browserslist": "^4.12.0", - "invariant": "^2.2.4", - "levenary": "^1.1.1", + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz", - "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", "requires": { "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-member-expression-to-functions": "^7.12.1", "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", "@babel/helper-split-export-declaration": "^7.10.4" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", - "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", + "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-regex": "^7.10.4", - "regexpu-core": "^4.7.0" + "regexpu-core": "^4.7.1" } }, "@babel/helper-define-map": { @@ -142,11 +257,11 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz", - "integrity": "sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.1" } }, "@babel/helper-function-name": { @@ -176,32 +291,34 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz", + "integrity": "sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==", "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.1" } }, "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", "lodash": "^4.17.19" } }, @@ -227,42 +344,40 @@ } }, "@babel/helper-remap-async-to-generator": { - "version": "7.11.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz", - "integrity": "sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-wrap-function": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.1" } }, "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.1" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz", - "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { @@ -278,10 +393,15 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" }, + "@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==" + }, "@babel/helper-wrap-function": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", - "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", "requires": { "@babel/helper-function-name": "^7.10.4", "@babel/template": "^7.10.4", @@ -290,13 +410,13 @@ } }, "@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "requires": { "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { @@ -318,136 +438,131 @@ "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } - }, - "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=" } } }, "@babel/parser": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.1.tgz", - "integrity": "sha512-u9QMIRdKVF7hfEkb3nu2LgZDIzCQPv+yHD9Eg6ruoJLjkrQ9fFz4IBSlF/9XwoNri9+2F1IY+dYuOfZrXq8t3w==" + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==" }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", - "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz", - "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-create-class-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", - "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz", - "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", - "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.0" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz", - "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz", - "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz", - "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz", + "integrity": "sha512-UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", - "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.10.4" + "@babel/plugin-transform-parameters": "^7.12.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", - "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz", - "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz", - "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-create-class-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", - "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-create-regexp-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, @@ -460,9 +575,9 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", - "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -492,9 +607,9 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", - "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -548,385 +663,418 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", - "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz", + "integrity": "sha512-UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", - "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", - "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", "requires": { - "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-module-imports": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.10.4" + "@babel/helper-remap-async-to-generator": "^7.12.1" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", - "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz", - "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-classes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", - "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-define-map": "^7.10.4", "@babel/helper-function-name": "^7.10.4", "@babel/helper-optimise-call-expression": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", - "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", - "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", - "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-create-regexp-features-plugin": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", - "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", - "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", "requires": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-for-of": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", - "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", - "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", "requires": { "@babel/helper-function-name": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", - "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", - "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", - "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", "requires": { - "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-module-transforms": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", - "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", "requires": { - "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", - "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", "requires": { "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-module-transforms": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", - "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", "requires": { - "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", - "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.1" } }, "@babel/plugin-transform-new-target": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", - "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", - "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4" + "@babel/helper-replace-supers": "^7.12.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", - "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", "requires": { - "@babel/helper-get-function-arity": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-property-literals": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", - "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.1.tgz", + "integrity": "sha512-KOHd0tIRLoER+J+8f9DblZDa1fLGPwaaN1DI1TVHuQFOpjHV22C3CUB3obeC4fexHY9nx+fH0hQNvLFFfA1mxA==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz", - "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz", + "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz", - "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.5.tgz", + "integrity": "sha512-2xkcPqqrYiOQgSlM/iwto1paPijjsDbUynN13tI6bosDz/jOW3CRzYguIE8wKX32h+msbBM22Dv5fwrFkUOZjQ==", "requires": { "@babel/helper-builder-react-jsx": "^7.10.4", - "@babel/helper-builder-react-jsx-experimental": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/plugin-syntax-jsx": "^7.12.1" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz", - "integrity": "sha512-cImAmIlKJ84sDmpQzm4/0q/2xrXlDezQoixy3qoz1NJeZL/8PRon6xZtluvr4H4FzwlDGI5tCcFupMnXGtr+qw==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.5.tgz", + "integrity": "sha512-1JJusg3iPgsZDthyWiCr3KQiGs31ikU/mSf2N2dSYEAO0GEImmVUbWf0VoSDGDFTAn5Dj4DUiR6SdIXHY7tELA==", "requires": { - "@babel/helper-builder-react-jsx-experimental": "^7.11.5", + "@babel/helper-builder-react-jsx-experimental": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/plugin-syntax-jsx": "^7.12.1" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz", - "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.1.tgz", + "integrity": "sha512-FbpL0ieNWiiBB5tCldX17EtXgmzeEZjFrix72rQYeq9X6nUK38HCaxexzVQrZWXanxKJPKVVIU37gFjEQYkPkA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz", - "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.1.tgz", + "integrity": "sha512-keQ5kBfjJNRc6zZN1/nVHCd6LLIHq4aUKcVnvE/2l+ZZROSbqoiGFRtT5t3Is89XJxBQaP7NLZX2jgGHdZvvFQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.10.4" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz", - "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", + "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", "requires": { "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-regenerator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", - "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", - "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, + "@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", - "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz", - "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0" + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", - "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz", + "integrity": "sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", "@babel/helper-regex": "^7.10.4" } }, "@babel/plugin-transform-template-literals": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", - "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", - "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz", - "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==", + "@babel/plugin-transform-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz", + "integrity": "sha512-VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-typescript": "^7.12.1" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", - "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.10.4", "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/polyfill": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.11.5.tgz", - "integrity": "sha512-FunXnE0Sgpd61pKSj2OSOs1D44rKTD3pGOfGilZ6LGrrIH0QEtJlTjqOqdF8Bs98JmjfGhni2BBkTfv9KcKJ9g==", + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", "requires": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/preset-env": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz", - "integrity": "sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", "requires": { - "@babel/compat-data": "^7.11.0", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-export-namespace-from": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.11.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.11.0", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-class-properties": "^7.12.1", "@babel/plugin-syntax-dynamic-import": "^7.8.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.0", @@ -936,46 +1084,50 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.0", "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.11.0", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.11.5", - "browserslist": "^4.12.0", + "@babel/types": "^7.12.1", "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } } }, "@babel/preset-modules": { @@ -991,36 +1143,42 @@ } }, "@babel/preset-react": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz", - "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.5.tgz", + "integrity": "sha512-jcs++VPrgyFehkMezHtezS2BpnUlR7tQFAyesJn1vGTO9aTFZrgIQrA5YydlTwxbcjMwkFY6i04flCigRRr3GA==", "requires": { "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-transform-react-display-name": "^7.10.4", - "@babel/plugin-transform-react-jsx": "^7.10.4", - "@babel/plugin-transform-react-jsx-development": "^7.10.4", - "@babel/plugin-transform-react-jsx-self": "^7.10.4", - "@babel/plugin-transform-react-jsx-source": "^7.10.4", - "@babel/plugin-transform-react-pure-annotations": "^7.10.4" + "@babel/plugin-transform-react-display-name": "^7.12.1", + "@babel/plugin-transform-react-jsx": "^7.12.5", + "@babel/plugin-transform-react-jsx-development": "^7.12.5", + "@babel/plugin-transform-react-jsx-self": "^7.12.1", + "@babel/plugin-transform-react-jsx-source": "^7.12.1", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" } }, - "@babel/register": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz", - "integrity": "sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==", + "@babel/preset-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz", + "integrity": "sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==", "requires": { - "find-cache-dir": "^2.0.0", - "lodash": "^4.17.19", - "make-dir": "^2.1.0", - "pirates": "^4.0.0", - "source-map-support": "^0.5.16" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.12.1" } }, "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", + "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", "requires": { + "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, @@ -1035,1880 +1193,1714 @@ } }, "@babel/traverse": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", - "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "requires": { "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.5", + "@babel/generator": "^7.12.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.5", - "@babel/types": "^7.11.5", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/parser": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", - "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==" - } } }, "@babel/types": { - "version": "7.11.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", - "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "requires": { "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" }, - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" + "@docsearch/css": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-1.0.0-alpha.28.tgz", + "integrity": "sha512-1AhRzVdAkrWwhaxTX6/R7SnFHz8yLz1W8I/AldlTrfbNvZs9INk1FZiEFTJdgHaP68nhgQNWSGlQiDiI3y2RYg==" }, - "@types/cheerio": { - "version": "0.22.22", - "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.22.tgz", - "integrity": "sha512-05DYX4zU96IBfZFY+t3Mh88nlwSMtmmzSYaQkKN48T495VV1dkHSah6qYyDTN5ngaS0i0VonH37m+RuzSM0YiA==", + "@docsearch/react": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-1.0.0-alpha.28.tgz", + "integrity": "sha512-XjJOnCBXn+UZmtuDmgzlVIHnnvh6yHVwG4aFq8AXN6xJEIX3f180FvGaowFWAxgdtHplJxFGux0Xx4piHqBzIw==", "requires": { - "@types/node": "*" + "@docsearch/css": "^1.0.0-alpha.28", + "@francoischalifour/autocomplete-core": "^1.0.0-alpha.28", + "@francoischalifour/autocomplete-preset-algolia": "^1.0.0-alpha.28", + "algoliasearch": "^4.0.0" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/node": { - "version": "14.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.2.tgz", - "integrity": "sha512-jiE3QIxJ8JLNcb1Ps6rDbysDhN4xa8DJJvuC9prr6w+1tIh+QAbYyNF3tyiZNLDBIuBCf4KEcV2UvQm/V60xfA==" - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "@docusaurus/core": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-alpha.66.tgz", + "integrity": "sha512-9HKqObYoyArpzSTIDguyUXm7z54bpV3dSWSc0PbKGu0Us6zP1TiOuhRDX1diFsKyvjNy7VbCe8XH8LJIdKi5dQ==", "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "@babel/core": "^7.9.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1", + "@babel/plugin-proposal-optional-chaining": "^7.10.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "@babel/preset-react": "^7.9.4", + "@babel/preset-typescript": "^7.9.0", + "@babel/runtime": "^7.9.2", + "@babel/runtime-corejs3": "^7.10.4", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@endiliey/static-site-generator-webpack-plugin": "^4.0.0", + "@hapi/joi": "^17.1.1", + "@svgr/webpack": "^5.4.0", + "babel-loader": "^8.1.0", + "babel-plugin-dynamic-import-node": "^2.3.0", + "boxen": "^4.2.0", + "cache-loader": "^4.1.0", + "chalk": "^3.0.0", + "chokidar": "^3.3.0", + "commander": "^4.0.1", + "copy-webpack-plugin": "^6.0.3", + "core-js": "^2.6.5", + "css-loader": "^3.4.2", + "del": "^5.1.0", + "detect-port": "^1.3.0", + "eta": "^1.1.1", + "express": "^4.17.1", + "file-loader": "^6.0.0", + "fs-extra": "^8.1.0", + "globby": "^10.0.1", + "html-minifier-terser": "^5.0.5", + "html-tags": "^3.1.0", + "html-webpack-plugin": "^4.0.4", + "import-fresh": "^3.2.1", + "inquirer": "^7.2.0", + "is-root": "^2.1.0", + "leven": "^3.1.0", + "lodash": "^4.5.2", + "lodash.flatmap": "^4.5.0", + "lodash.has": "^4.5.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "mini-css-extract-plugin": "^0.8.0", + "nprogress": "^0.2.0", + "null-loader": "^3.0.0", + "optimize-css-assets-webpack-plugin": "^5.0.3", + "pnp-webpack-plugin": "^1.6.4", + "postcss-loader": "^3.0.0", + "postcss-preset-env": "^6.7.0", + "react-dev-utils": "^10.2.1", + "react-helmet": "^6.0.0-beta", + "react-loadable": "^5.5.0", + "react-loadable-ssr-addon": "^0.3.0", + "react-router": "^5.1.2", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.1.2", + "resolve-pathname": "^3.0.0", + "semver": "^6.3.0", + "serve-handler": "^6.1.3", + "shelljs": "^0.8.4", + "std-env": "^2.2.1", + "terser-webpack-plugin": "^4.1.0", + "update-notifier": "^4.1.0", + "url-loader": "^4.1.0", + "wait-file": "^1.0.5", + "webpack": "^4.44.1", + "webpack-bundle-analyzer": "^3.6.1", + "webpack-dev-server": "^3.11.0", + "webpack-merge": "^4.2.2", + "webpackbar": "^4.0.0" + } + }, + "@docusaurus/mdx-loader": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-alpha.66.tgz", + "integrity": "sha512-IvtrTNeAaynEGgfCbC4CeBgO76Mu76cGogBGv8a84bYeyCOtlxOJoH6JHkJ7T/v5D6lM16qzwx5oqesZ0kZuzA==", + "requires": { + "@babel/parser": "^7.9.4", + "@babel/traverse": "^7.9.0", + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@mdx-js/mdx": "^1.5.8", + "@mdx-js/react": "^1.5.8", + "escape-html": "^1.0.3", + "file-loader": "^6.0.0", + "fs-extra": "^8.1.0", + "github-slugger": "^1.3.0", + "gray-matter": "^4.0.2", + "loader-utils": "^1.2.3", + "mdast-util-to-string": "^1.1.0", + "remark-emoji": "^2.1.0", + "stringify-object": "^3.3.0", + "unist-util-visit": "^2.0.2", + "url-loader": "^4.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } } }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" - }, - "ajv": { - "version": "6.12.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", - "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", + "@docusaurus/plugin-client-redirects": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-2.0.0-alpha.66.tgz", + "integrity": "sha512-0p2QmDmDN4Ul6t2TMNe6e/7mQqb/RqjmSoz2RaQoxtCVj3lz+WRtQvXEKERlyu6smfQisXE9Ikd/o/bXoJqB9w==", "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "^17.1.1", + "@types/hapi__joi": "^17.1.2", + "chalk": "^3.0.0", + "eta": "^1.1.1", + "fs-extra": "^8.1.0", + "globby": "^10.0.1", + "lodash": "^4.17.15" } }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "ansi-escape-sequences": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", - "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "@docusaurus/plugin-content-blog": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-alpha.66.tgz", + "integrity": "sha512-voK5ZUZcUn5blIDakYNKQ42wPMZLfrZnvEJuwh/8S/W1oNbPN935NBu9vL23fHEmp9L2MGykAdaCmev0Su04yQ==", "requires": { - "array-back": "^3.0.1" + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/mdx-loader": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "^17.1.1", + "chalk": "^3.0.0", + "feed": "^4.1.0", + "fs-extra": "^8.1.0", + "globby": "^10.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.5.2", + "reading-time": "^1.2.0", + "remark-admonitions": "^1.2.1", + "webpack": "^4.44.1" }, "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } } } }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-red": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "@docusaurus/plugin-content-docs": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-alpha.66.tgz", + "integrity": "sha512-jvFKJR7BgjIq6xdmPg+7d2DS1fBeuIfmRTtB/apgfIW8NWO5N0DRYXOj0lgpw/ICwW//o8cLbrN+jkLlzTV/eg==", "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/mdx-loader": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "17.1.1", + "chalk": "^3.0.0", + "execa": "^3.4.0", + "fs-extra": "^8.1.0", + "globby": "^10.0.1", + "import-fresh": "^3.2.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.19", + "lodash.flatmap": "^4.5.0", + "lodash.groupby": "^4.6.0", + "lodash.pick": "^4.4.0", + "lodash.pickby": "^4.6.0", + "lodash.sortby": "^4.6.0", + "remark-admonitions": "^1.2.1", + "shelljs": "^0.8.4", + "utility-types": "^3.10.0", + "webpack": "^4.44.1" }, "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "requires": { - "remove-trailing-separator": "^1.0.1" + "path-key": "^3.0.0" } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" } } }, - "arch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz", - "integrity": "sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==" - }, - "archive-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", - "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "@docusaurus/plugin-content-pages": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-alpha.66.tgz", + "integrity": "sha512-mY26Aeb/Wf+NFLy70YvXgdLTB+2iPN0SKOVKYwgg6ZN7Nm2kPwEpSVRq2iwiqlWk2G/vOM+ADm99Gxvm3kS61A==", "requires": { - "file-type": "^4.2.0" + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/mdx-loader": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "17.1.1", + "globby": "^10.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "remark-admonitions": "^1.2.1", + "slash": "^3.0.0", + "webpack": "^4.44.1" }, "dependencies": { - "file-type": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", - "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } } } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@docusaurus/plugin-debug": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-alpha.66.tgz", + "integrity": "sha512-9AZaEUxaY0CDOCWXQMfY3TzG79HkquZlVeJOZaA6IvCoK/Oq3B58TMNLiQyA6TA2DYf5ZYQorLJaMd02x5qBQw==", "requires": { - "sprintf-js": "~1.0.2" + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "react-json-view": "^1.19.1" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "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==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-back": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", - "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==" + "@docusaurus/plugin-google-analytics": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-alpha.66.tgz", + "integrity": "sha512-HVWRLHtlQYpVqH3MHloUmktJMXt7oMDQzBlKzrwAMiWUK1oXFX35DrKjTt2SE2SADpObnwWFjo0E71YT0ApQLw==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66" + } }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + "@docusaurus/plugin-google-gtag": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-alpha.66.tgz", + "integrity": "sha512-MVnzApLSQaC38nVS+A/WkXEV4kHeX6Q/KM2DqkLeovNWLBtkQ0aHL3bvn1clAEmB33Pia0v93mzG+I1+9mrquA==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66" + } }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "@docusaurus/plugin-sitemap": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-alpha.66.tgz", + "integrity": "sha512-ztDevVIREyq8g+QhSGpDqscVqtubcPnEE3a4JwWSALQ2D6JscIxg897axwZSZNUMxrHBuXRjOEYOtVb/O/stVg==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@hapi/joi": "17.1.1", + "fs-extra": "^8.1.0", + "sitemap": "^3.2.2" + } + }, + "@docusaurus/preset-classic": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-alpha.66.tgz", + "integrity": "sha512-FjxjchzUS6vOUSr9Pc5kqOSQAnc+cAYsR4pTlqwD2uOJcZMr2vQ6jeKbJnhEmUYwAvzdKOVnCndnxbA+Ii8L3w==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/plugin-content-blog": "2.0.0-alpha.66", + "@docusaurus/plugin-content-docs": "2.0.0-alpha.66", + "@docusaurus/plugin-content-pages": "2.0.0-alpha.66", + "@docusaurus/plugin-debug": "2.0.0-alpha.66", + "@docusaurus/plugin-google-analytics": "2.0.0-alpha.66", + "@docusaurus/plugin-google-gtag": "2.0.0-alpha.66", + "@docusaurus/plugin-sitemap": "2.0.0-alpha.66", + "@docusaurus/theme-classic": "2.0.0-alpha.66", + "@docusaurus/theme-search-algolia": "2.0.0-alpha.66" + } + }, + "@docusaurus/remark-plugin-npm2yarn": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/remark-plugin-npm2yarn/-/remark-plugin-npm2yarn-2.0.0-alpha.66.tgz", + "integrity": "sha512-SarcbrcnsPb8mIiRH75VrbwZVStlIad8kjVyBodae8H3hC4IRdaTROtBagL048o0A7HC/noi7PKvqJPlrXUYyw==", + "requires": { + "npm-to-yarn": "^1.0.1" + } + }, + "@docusaurus/theme-classic": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-alpha.66.tgz", + "integrity": "sha512-WsWqzfzA2gIF5TUMGSbiAeDeNZtKvsgymTQzalcwyhyT/QI0ywcag+03Bmjeq4H3PTC3qU+tkhddO2Rh5w/YCw==", + "requires": { + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/plugin-content-blog": "2.0.0-alpha.66", + "@docusaurus/plugin-content-docs": "2.0.0-alpha.66", + "@docusaurus/plugin-content-pages": "2.0.0-alpha.66", + "@docusaurus/types": "2.0.0-alpha.66", + "@docusaurus/utils-validation": "2.0.0-alpha.66", + "@hapi/joi": "^17.1.1", + "@mdx-js/mdx": "^1.5.8", + "@mdx-js/react": "^1.5.8", + "@types/react-toggle": "^4.0.2", + "clsx": "^1.1.1", + "copy-text-to-clipboard": "^2.2.0", + "infima": "0.2.0-alpha.13", + "lodash": "^4.17.19", + "parse-numeric-range": "^0.0.2", + "prism-react-renderer": "^1.1.0", + "prismjs": "^1.20.0", + "prop-types": "^15.7.2", + "react-router-dom": "^5.1.2", + "react-toggle": "^4.1.1" + } + }, + "@docusaurus/theme-search-algolia": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-alpha.66.tgz", + "integrity": "sha512-5k/Fwt81Gyjv9vPE+gO8mraEHx5IqEmHLwqld5yXj7yix5XrxywkaanHqC0cFJG4MFUBgF6vNjJC8CtfLnT4Tw==", + "requires": { + "@docsearch/react": "^1.0.0-alpha.27", + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/utils": "2.0.0-alpha.66", + "@hapi/joi": "^17.1.1", + "algoliasearch": "^4.0.0", + "algoliasearch-helper": "^3.1.1", + "clsx": "^1.1.1", + "eta": "^1.1.1", + "lodash": "^4.17.19" + } }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "@docusaurus/types": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-alpha.66.tgz", + "integrity": "sha512-Zd2Kguw0+3faifr83ruIV4i/+KqfqM+zK3DpqCBxdtkP+ORLKbgsIQ48fJ40OOhQrvl38Ay4E+1w7USrrkj4Qg==", "requires": { - "array-uniq": "^1.0.1" + "@types/webpack": "^4.41.0", + "commander": "^4.0.1", + "querystring": "0.2.0", + "webpack-merge": "^4.2.2" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + "@docusaurus/utils": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-alpha.66.tgz", + "integrity": "sha512-47jGB+Z3YVM6Xf1hxyNbJLMmc1qoTLmfwSf7NseKSkpjucbc5Ueivr+oVYp5yWoZw5sT5bObmdJYfJoD/RrbOg==", + "requires": { + "escape-string-regexp": "^2.0.0", + "fs-extra": "^8.1.0", + "gray-matter": "^4.0.2", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "resolve-pathname": "^3.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "@docusaurus/utils-validation": { + "version": "2.0.0-alpha.66", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-alpha.66.tgz", + "integrity": "sha512-vlenwY3THondey21x1qAUZyDz9qiG7ec2CBM9HgY1Ns8XhrKah9zz7TEGXjqM9lhqMQQRkvcCcveti9EXR0fcA==", + "requires": { + "@docusaurus/utils": "2.0.0-alpha.66", + "@hapi/joi": "17.1.1", + "chalk": "^3.0.0" + } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "@endiliey/static-site-generator-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@endiliey/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-3MBqYCs30qk1OBRC697NqhGouYbs71D1B8hrk/AFJC6GwF2QaJOQZtA1JYAaGSe650sZ8r5ppRTtCRXepDWlng==", "requires": { - "safer-buffer": "~2.1.0" + "bluebird": "^3.7.1", + "cheerio": "^0.22.0", + "eval": "^0.1.4", + "url": "^0.11.0", + "webpack-sources": "^1.4.3" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "@francoischalifour/autocomplete-core": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-core/-/autocomplete-core-1.0.0-alpha.28.tgz", + "integrity": "sha512-rL9x+72btViw+9icfBKUJjZj87FgjFrD2esuTUqtj4RAX3s4AuVZiN8XEsfjQBSc6qJk31cxlvqZHC/BIyYXgg==" }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "@francoischalifour/autocomplete-preset-algolia": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/@francoischalifour/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.0.0-alpha.28.tgz", + "integrity": "sha512-bprfNmYt1opFUFEtD2XfY/kEsm13bzHQgU80uMjhuK0DJ914IjolT1GytpkdM6tJ4MBvyiJPP+bTtWO+BZ7c7w==" }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "@hapi/address": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-4.1.0.tgz", + "integrity": "sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==", "requires": { - "lodash": "^4.17.14" + "@hapi/hoek": "^9.0.0" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "@hapi/formula": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-2.0.0.tgz", + "integrity": "sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==" }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "@hapi/hoek": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz", + "integrity": "sha512-i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==" }, - "autolinker": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", - "integrity": "sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=", + "@hapi/joi": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-17.1.1.tgz", + "integrity": "sha512-p4DKeZAoeZW4g3u7ZeRo+vCDuSDgSvtsB/NpfjXEHTUjSeINAi/RrVOWiVQ1isaoLzMvFEhe8n5065mQq1AdQg==", "requires": { - "gulp-header": "^1.7.1" + "@hapi/address": "^4.0.1", + "@hapi/formula": "^2.0.0", + "@hapi/hoek": "^9.0.0", + "@hapi/pinpoint": "^2.0.0", + "@hapi/topo": "^5.0.0" } }, - "autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "@hapi/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==" + }, + "@hapi/topo": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.0.0.tgz", + "integrity": "sha512-tFJlT47db0kMqVm3H4nQYgn6Pwg10GTZHb1pwmSiv1K4ks6drQOtfEF5ZnPjkvC+y4/bUPHK+bc87QvLcL+WMw==", "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" + "@hapi/hoek": "^9.0.0" } }, - "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=" + "@material-ui/core": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.0.tgz", + "integrity": "sha512-bYo9uIub8wGhZySHqLQ833zi4ZML+XCBE1XwJ8EuUVSpTWWG57Pm+YugQToJNFsEyiKFhPh8DPD0bgupz8n01g==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/styles": "^4.10.0", + "@material-ui/system": "^4.9.14", + "@material-ui/types": "^5.1.0", + "@material-ui/utils": "^4.10.2", + "@types/react-transition-group": "^4.2.0", + "clsx": "^1.0.4", + "hoist-non-react-statics": "^3.3.2", + "popper.js": "1.16.1-lts", + "prop-types": "^15.7.2", + "react-is": "^16.8.0", + "react-transition-group": "^4.4.0" + } }, - "aws4": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", - "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==" + "@material-ui/styles": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.10.0.tgz", + "integrity": "sha512-XPwiVTpd3rlnbfrgtEJ1eJJdFCXZkHxy8TrdieaTvwxNYj42VnnCyFzxYeNW9Lhj4V1oD8YtQ6S5Gie7bZDf7Q==", + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/hash": "^0.8.0", + "@material-ui/types": "^5.1.0", + "@material-ui/utils": "^4.9.6", + "clsx": "^1.0.4", + "csstype": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.0.3", + "jss-plugin-camel-case": "^10.0.3", + "jss-plugin-default-unit": "^10.0.3", + "jss-plugin-global": "^10.0.3", + "jss-plugin-nested": "^10.0.3", + "jss-plugin-props-sort": "^10.0.3", + "jss-plugin-rule-value-function": "^10.0.3", + "jss-plugin-vendor-prefixer": "^10.0.3", + "prop-types": "^15.7.2" + }, + "dependencies": { + "csstype": { + "version": "2.6.13", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz", + "integrity": "sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==" + } + } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "@material-ui/system": { + "version": "4.9.14", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.9.14.tgz", + "integrity": "sha512-oQbaqfSnNlEkXEziDcJDDIy8pbvwUmZXWNqlmIwDqr/ZdCK8FuV3f4nxikUh7hvClKV2gnQ9djh5CZFTHkZj3w==", "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.9.6", + "csstype": "^2.5.2", + "prop-types": "^15.7.2" }, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "csstype": { + "version": "2.6.13", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz", + "integrity": "sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==" + } + } + }, + "@material-ui/types": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" + }, + "@material-ui/utils": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.10.2.tgz", + "integrity": "sha512-eg29v74P7W5r6a4tWWDAAfZldXIzfyO1am2fIsC39hdUUHm/33k6pGOKPbgDjg/U/4ifmgAePy/1OjkKN6rFRw==", + "requires": { + "@babel/runtime": "^7.4.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0" + } + }, + "@mdx-js/mdx": { + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.19.tgz", + "integrity": "sha512-L3eLhEFnV/2bcb9XwOegsRmLHd1oEDQPtTBVezhptQ5U1YM+/WQNzx1apjzVTAyukwOanUXnTUMjRUtqJNgFCg==", + "requires": { + "@babel/core": "7.11.6", + "@babel/plugin-syntax-jsx": "7.10.4", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.19", + "babel-plugin-apply-mdx-type-prop": "1.6.19", + "babel-plugin-extract-import-names": "1.6.19", + "camelcase-css": "2.0.1", + "detab": "2.0.3", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "9.1.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.19", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "dependencies": { + "@babel/core": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", + "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.6", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.5", + "@babel/types": "^7.11.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", "requires": { - "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" + "@babel/helper-plugin-utils": "^7.10.4" } }, - "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=" - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "@mdx-js/react": { + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.19.tgz", + "integrity": "sha512-RS37Tagqyp2R0XFPoUZeSbZC5uJQRPhqOHWeT1LEwxESjMWb3VORHz7E827ldeQr3UW6VEQEyq/THegu+bLj6A==" + }, + "@mdx-js/util": { + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.19.tgz", + "integrity": "sha512-bkkQNSHz3xSr3KRHUQ2Qk2XhewvvXAOUqjIUKwcQuL4ijOA4tUHZfUgXExi5CpMysrX7izcsyICtXjZHlfJUjg==" + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "requires": { - "object.assign": "^4.1.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "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=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", "requires": { - "tweetnacl": "^0.14.3" + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" } }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "bin-build": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz", - "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==", - "requires": { - "decompress": "^4.0.0", - "download": "^6.2.2", - "execa": "^0.7.0", - "p-map-series": "^1.0.0", - "tempfile": "^2.0.0" - } + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" }, - "bin-check": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", - "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", "requires": { - "execa": "^0.7.0", - "executable": "^4.1.0" + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" } }, - "bin-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz", - "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==", + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", "requires": { - "execa": "^1.0.0", - "find-versions": "^3.0.0" + "mkdirp": "^1.0.4" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" } } }, - "bin-version-check": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz", - "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==", - "requires": { - "bin-version": "^3.0.0", - "semver": "^5.6.0", - "semver-truncate": "^1.1.2" - } + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, - "bin-wrapper": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", - "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==", - "requires": { - "bin-check": "^4.1.0", - "bin-version-check": "^4.0.0", - "download": "^7.1.0", - "import-lazy": "^3.1.0", - "os-filter-obj": "^2.0.0", - "pify": "^4.0.1" - }, - "dependencies": { - "download": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", - "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", - "requires": { - "archive-type": "^4.0.0", - "caw": "^2.0.1", - "content-disposition": "^0.5.2", - "decompress": "^4.2.0", - "ext-name": "^5.0.0", - "file-type": "^8.1.0", - "filenamify": "^2.0.0", - "get-stream": "^3.0.0", - "got": "^8.3.1", - "make-dir": "^1.2.0", - "p-event": "^2.1.0", - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "file-type": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", - "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==" - }, - "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" - }, - "p-event": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", - "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", - "requires": { - "p-timeout": "^2.0.1" - } - }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "requires": { - "p-finally": "^1.0.0" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - } - } + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz", + "integrity": "sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A==" + }, + "@svgr/babel-preset": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz", + "integrity": "sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A==", "requires": { - "file-uri-to-path": "1.0.0" + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.4.0" } }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "@svgr/core": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz", + "integrity": "sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ==", "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "@svgr/plugin-jsx": "^5.4.0", + "camelcase": "^6.0.0", + "cosmiconfig": "^6.0.0" } }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "body": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", - "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "@svgr/hast-util-to-babel-ast": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz", + "integrity": "sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg==", "requires": { - "continuable-cache": "^0.3.1", - "error": "^7.0.0", - "raw-body": "~1.1.0", - "safe-json-parse": "~1.0.1" - }, - "dependencies": { - "bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=" - }, - "raw-body": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", - "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", - "requires": { - "bytes": "1", - "string_decoder": "0.10" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } + "@babel/types": "^7.9.5" } }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "@svgr/plugin-jsx": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz", + "integrity": "sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw==", "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - } + "@babel/core": "^7.7.5", + "@svgr/babel-preset": "^5.4.0", + "@svgr/hast-util-to-babel-ast": "^5.4.0", + "svg-parser": "^2.0.2" } }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "@svgr/plugin-svgo": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz", + "integrity": "sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA==", "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "cosmiconfig": "^6.0.0", + "merge-deep": "^3.0.2", + "svgo": "^1.2.2" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "@svgr/webpack": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz", + "integrity": "sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg==", "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.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "@babel/core": "^7.9.0", + "@babel/plugin-transform-react-constant-elements": "^7.9.0", + "@babel/preset-env": "^7.9.5", + "@babel/preset-react": "^7.9.4", + "@svgr/core": "^5.4.0", + "@svgr/plugin-jsx": "^5.4.0", + "@svgr/plugin-svgo": "^5.4.0", + "loader-utils": "^2.0.0" } }, - "browserslist": { - "version": "4.14.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", - "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "requires": { - "caniuse-lite": "^1.0.30001135", - "electron-to-chromium": "^1.3.571", - "escalade": "^3.1.0", - "node-releases": "^1.1.61" + "defer-to-connect": "^1.0.1" } }, - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "@types/minimatch": "*", + "@types/node": "*" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "@types/hapi__joi": { + "version": "17.1.6", + "resolved": "https://registry.npmjs.org/@types/hapi__joi/-/hapi__joi-17.1.6.tgz", + "integrity": "sha512-y3A1MzNC0FmzD5+ys59RziE1WqKrL13nxtJgrSzjoO7boue5B7zZD2nZLPwrSuUviFjpKFQtgHYSvhDGfIE4jA==" + }, + "@types/hast": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz", + "integrity": "sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q==", "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" + "@types/unist": "*" } }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + "@types/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==" }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + "@types/mdast": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz", + "integrity": "sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==", + "requires": { + "@types/unist": "*" + } }, - "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==" + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + "@types/node": { + "version": "14.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz", + "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==" }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/react": { + "version": "16.9.56", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.56.tgz", + "integrity": "sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ==", "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" + "@types/prop-types": "*", + "csstype": "^3.0.2" } }, - "cache-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-1.0.0.tgz", - "integrity": "sha512-ZqrZp9Hi5Uq7vfSGmNP2bUT/9DzZC2Y/GXjHB8rUJN1a+KLmbV05+vxHipNsg8+CSVgjcVVzLV8VZms6w8ZeRw==", + "@types/react-toggle": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/react-toggle/-/react-toggle-4.0.2.tgz", + "integrity": "sha512-sHqfoKFnL0YU2+OC4meNEC8Ptx9FE8/+nFeFvNcdBa6ANA8KpAzj3R9JN8GtrvlLgjKDoYgI7iILgXYcTPo2IA==", "requires": { - "array-back": "^4.0.0", - "fs-then-native": "^2.0.0", - "mkdirp2": "^1.0.4" + "@types/react": "*" } }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "@types/react-transition-group": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz", + "integrity": "sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==", + "requires": { + "@types/react": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==" + }, + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", + "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==" + }, + "@types/uglify-js": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz", + "integrity": "sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==", "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" + "source-map": "^0.6.1" }, "dependencies": { - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + "@types/unist": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", + "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" + }, + "@types/webpack": { + "version": "4.41.24", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.24.tgz", + "integrity": "sha512-1A0MXPwZiMOD3DPMuOKUKcpkdPo8Lq33UGggZ7xio6wJ/jV1dAu5cXDrOfGDnldUroPIRLsr/DT43/GqOA4RFQ==", + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } }, - "caller-callsite": { + "@types/webpack-sources": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.0.0.tgz", + "integrity": "sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg==", "requires": { - "callsites": "^2.0.0" + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } } }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "requires": { - "caller-callsite": "^2.0.0" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "@webassemblyjs/wast-printer": "1.9.0" } }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "@webassemblyjs/ast": "1.9.0" } }, - "caniuse-lite": { - "version": "1.0.30001137", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001137.tgz", - "integrity": "sha512-54xKQZTqZrKVHmVz0+UvdZR6kQc7pJDgfhsMYDG19ID1BWoNnDMFm5Q3uSBSU401pBvKYMsHAt9qhEDcxmk8aw==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" }, - "catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "requires": { - "lodash": "^4.17.14" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "caw": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", - "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "requires": { - "get-proxy": "^2.0.0", - "isurl": "^1.0.0-alpha5", - "tunnel-agent": "^0.6.0", - "url-to-options": "^1.0.1" + "@xtuc/ieee754": "^1.2.0" } }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } + "@xtuc/long": "4.2.2" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" }, - "cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" - }, - "dependencies": { - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "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==", + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "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=", + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "requires": { - "restore-cursor": "^2.0.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" - }, - "clipboard": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", - "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "optional": true, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "requires": { - "mimic-response": "^1.0.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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=" - } - } + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, - "coffee-script": { - "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", - "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, - "collect-all": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.3.tgz", - "integrity": "sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA==", + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "stream-connect": "^1.0.2", - "stream-via": "^1.0.4" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" }, - "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==", + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "requires": { - "color-name": "1.1.3" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" }, - "command-line-args": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", - "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", + "algoliasearch": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.6.0.tgz", + "integrity": "sha512-f4QVfUYnWIGZwOupZh0RAqW8zEfpZAcZG6ZT0p6wDMztEyKBrjjbTXBk9p9uEaJqoIhFUm6TtApOxodTdHbqvw==", + "requires": { + "@algolia/cache-browser-local-storage": "4.6.0", + "@algolia/cache-common": "4.6.0", + "@algolia/cache-in-memory": "4.6.0", + "@algolia/client-account": "4.6.0", + "@algolia/client-analytics": "4.6.0", + "@algolia/client-common": "4.6.0", + "@algolia/client-recommendation": "4.6.0", + "@algolia/client-search": "4.6.0", + "@algolia/logger-common": "4.6.0", + "@algolia/logger-console": "4.6.0", + "@algolia/requester-browser-xhr": "4.6.0", + "@algolia/requester-common": "4.6.0", + "@algolia/requester-node-http": "4.6.0", + "@algolia/transporter": "4.6.0" + } + }, + "algoliasearch-helper": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.2.2.tgz", + "integrity": "sha512-/3XvE33R+gQKaiPdy3nmHYqhF8hqIu8xnlOicVxb1fD6uMFmxW8rGLzzrRfsPfxgAfm+c1NslLb3TzQVIB8aVA==", "requires": { - "array-back": "^3.0.1", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "events": "^1.1.1" }, "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" - }, - "typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" } } }, - "command-line-tool": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", - "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "command-line-args": "^5.0.0", - "command-line-usage": "^4.1.0", - "typical": "^2.6.1" + "string-width": "^3.0.0" }, "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "typical": "^2.6.1" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } } } }, - "command-line-usage": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "ansi-escape-sequences": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", - "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", "requires": { - "ansi-escape-sequences": "^4.0.0", - "array-back": "^2.0.0", - "table-layout": "^0.4.2", - "typical": "^2.6.1" + "array-back": "^3.0.1" }, "dependencies": { "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "requires": { - "typical": "^2.6.1" - } + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" } } }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" - }, - "common-sequence": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.0.tgz", - "integrity": "sha512-f0QqPLpRTgMQn/pQIynf+SdE73Lw5Q1jn4hjirHLgH/NJ71TiHjXusV16BmOyuK5rRQ1W2f++II+TFZbQOh4hA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "requires": { - "source-map": "^0.6.1" + "type-fest": "^0.11.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" } } }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "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==", "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "color-convert": "^1.9.0" } }, - "config-master": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", - "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "requires": { - "walk-back": "^2.0.1" - }, - "dependencies": { - "walk-back": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", - "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=" - } + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, - "console-stream": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", - "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=" + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "safe-buffer": "5.1.2" + "sprintf-js": "~1.0.2" } }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, - "continuable-cache": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", - "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=" + "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==" }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "array-back": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz", + "integrity": "sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==" }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "core-js-compat": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", - "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", - "requires": { - "browserslist": "^4.8.5", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "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=" - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, - "crowdin-cli": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/crowdin-cli/-/crowdin-cli-0.3.0.tgz", - "integrity": "sha1-6smYmm/n/qrzMJA5evwYfGe0YZE=", - "requires": { - "request": "^2.53.0", - "yamljs": "^0.2.1", - "yargs": "^2.3.0" - } + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" + "object-assign": "^4.1.1", + "util": "0.10.3" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } } } }, - "css-what": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", - "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" + "lodash": "^4.17.14" } }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", "requires": { - "postcss": "^7.0.0" + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" } }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "css-tree": "1.0.0-alpha.39" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" + "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" } }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", "requires": { - "array-find-index": "^1.0.1" + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "babel-plugin-apply-mdx-type-prop": { + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.19.tgz", + "integrity": "sha512-zAuL11EaBbeNpfTqsa9xP7mkvX3V4LaEV6M9UUaI4zQtTqN5JwvDyhNsALQs5Ud7WFQSXtoqU74saTgE+rgZOw==", "requires": { - "assert-plus": "^1.0.0" + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.19" } }, - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "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=" - }, - "decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "requires": { - "mimic-response": "^1.0.0" + "object.assign": "^4.1.0" } }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "babel-plugin-extract-import-names": { + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.19.tgz", + "integrity": "sha512-5kbSEhQdg1ybR9OnxybbyR1PXw51z6T6ZCtX3vYSU6t1pC/+eBlSzWXyU2guStbwQgJyxS+mHWSNnL7PUdzAlw==", "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "dependencies": { - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" - } + "@babel/helper-plugin-utils": "7.10.4" } }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" - } - } + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "dependencies": { - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" - } - } + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" + "is-descriptor": "^1.0.0" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "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", @@ -2937,34 +2929,67 @@ } } }, - "delayed-stream": { + "base16": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", + "integrity": "sha1-4pf2DX7BAUp6lxo568ipjAtoHnA=" }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "optional": true + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "dependencies": { "debug": { @@ -2982,851 +3007,752 @@ } } }, - "diacritics-map": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", - "integrity": "sha1-bfwP+dAQAKLt8oZTccrDFulJd68=" - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + } } }, - "dmd": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/dmd/-/dmd-4.0.6.tgz", - "integrity": "sha512-7ZYAnFQ6jGm4SICArwqNPylJ83PaOdPTAkds3Z/s1ueFqSc5ilJ2F0b7uP+35W1PUbemH++gn5/VlC3KwEgiHQ==", + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "requires": { - "array-back": "^4.0.1", - "cache-point": "^1.0.0", - "common-sequence": "^2.0.0", - "file-set": "^3.0.0", - "handlebars": "^4.5.3", - "marked": "^0.7.0", - "object-get": "^2.1.0", - "reduce-flatten": "^3.0.0", - "reduce-unique": "^2.0.1", - "reduce-without": "^1.0.1", - "test-value": "^3.0.0", - "walk-back": "^4.0.0" + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { - "reduce-flatten": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.0.tgz", - "integrity": "sha512-eczl8wAYBxJ6Egl6I1ECIF+8z6sHu+KE7BzaEDZTpPXKXfy9SUDQlVYwkRcNTjJLC3Iakxbhss50KuT/R6SYfg==" + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" } } }, - "docusaurus": { - "version": "1.14.6", - "resolved": "https://registry.npmjs.org/docusaurus/-/docusaurus-1.14.6.tgz", - "integrity": "sha512-Hpo6xqYIHwazwuhXW25AKYv/os+dWoJ87qql/m1j1xp83h/BnfYV2l8PA8zLggF1wGUbJQbTx7GWo6QvD8z+4Q==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "@babel/core": "^7.9.0", - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.0", - "@babel/polyfill": "^7.8.7", - "@babel/preset-env": "^7.9.0", - "@babel/preset-react": "^7.9.4", - "@babel/register": "^7.9.0", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "autoprefixer": "^9.7.5", - "babylon": "^6.18.0", - "chalk": "^3.0.0", - "classnames": "^2.2.6", - "commander": "^4.0.1", - "crowdin-cli": "^0.3.0", - "cssnano": "^4.1.10", - "escape-string-regexp": "^2.0.0", - "express": "^4.17.1", - "feed": "^4.0.0", - "fs-extra": "^8.1.0", - "gaze": "^1.1.3", - "github-slugger": "^1.2.1", - "glob": "^7.1.6", - "highlight.js": "^9.16.2", - "imagemin": "^6.0.0", - "imagemin-gifsicle": "^6.0.1", - "imagemin-jpegtran": "^6.0.0", - "imagemin-optipng": "^6.0.0", - "imagemin-svgo": "^7.0.0", - "lodash": "^4.17.15", - "markdown-toc": "^1.2.0", - "mkdirp": "^0.5.1", - "portfinder": "^1.0.25", - "postcss": "^7.0.23", - "prismjs": "^1.17.1", - "react": "^16.8.4", - "react-dev-utils": "^9.1.0", - "react-dom": "^16.8.4", - "remarkable": "^2.0.0", - "request": "^2.88.0", - "shelljs": "^0.8.4", - "sitemap": "^3.2.2", - "tcp-port-used": "^1.0.1", - "tiny-lr": "^1.1.1", - "tree-node-cli": "^1.2.5", - "truncate-html": "^1.0.3" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", - "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==" - } + "fill-range": "^7.0.1" } }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "domelementtype": "1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "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==", "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "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==", "requires": { - "is-obj": "^2.0.0" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "download": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", - "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "caw": "^2.0.0", - "content-disposition": "^0.5.2", - "decompress": "^4.0.0", - "ext-name": "^5.0.0", - "file-type": "5.2.0", - "filenamify": "^2.0.0", - "get-stream": "^3.0.0", - "got": "^7.0.0", - "make-dir": "^1.0.0", - "p-event": "^1.0.0", - "pify": "^3.0.0" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" }, "dependencies": { - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" } } }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.576", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.576.tgz", - "integrity": "sha512-uSEI0XZ//5ic+0NdOqlxp0liCD44ck20OAGyLMSymIWTEAtHKVJi6JM18acOnRgUgX7Q65QqnI+sNncNvIy8ew==" - }, - "emoji-regex": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", - "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" - }, - "error": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/error/-/error-7.2.1.tgz", - "integrity": "sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA==", + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "requires": { - "string-template": "~0.2.1" + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "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==", "requires": { - "is-arrayish": "^0.2.1" + "pako": "~1.0.5" } }, - "es-abstract": { - "version": "1.18.0-next.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz", - "integrity": "sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==", + "browserslist": { + "version": "4.14.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.6.tgz", + "integrity": "sha512-zeFYcUo85ENhc/zxHbiIp0LGzzTrE2Pv2JhxvS7kpUb9Q9D38kUX6Bie7pGutJ/5iF5rOxE7CepAuWD56xJ33A==", "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "caniuse-lite": "^1.0.30001154", + "electron-to-chromium": "^1.3.585", + "escalade": "^3.1.1", + "node-releases": "^1.1.65" } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, - "escalade": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.0.tgz", - "integrity": "sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig==" + "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==" }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" }, - "escape-string-regexp": { + "buffer-json": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz", + "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==" }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "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=" }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "requires": { - "original": "^1.0.0" - } + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, - "exec-buffer": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", - "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", - "requires": { - "execa": "^0.7.0", - "p-finally": "^1.0.0", - "pify": "^3.0.0", - "rimraf": "^2.5.4", - "tempfile": "^2.0.0" + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" } } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { - "pify": "^2.2.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } + "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" } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "cache-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz", + "integrity": "sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==", "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "buffer-json": "^2.0.0", + "find-cache-dir": "^3.0.0", + "loader-utils": "^1.2.3", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "schema-utils": "^2.0.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "requires": { - "ms": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "is-descriptor": "^0.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "is-extendable": "^0.1.0" + "minimist": "^1.2.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" } }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "kind-of": "^3.0.2" + "p-locate": "^4.1.0" } }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "requires": { - "isarray": "1.0.0" + "semver": "^6.0.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "is-buffer": "^1.1.5" + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" } } } }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "cache-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-1.0.0.tgz", + "integrity": "sha512-ZqrZp9Hi5Uq7vfSGmNP2bUT/9DzZC2Y/GXjHB8rUJN1a+KLmbV05+vxHipNsg8+CSVgjcVVzLV8VZms6w8ZeRw==", "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "array-back": "^4.0.0", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.4" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { - "ms": "2.0.0" + "pump": "^3.0.0" } }, - "ms": { + "lowercase-keys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" } } }, - "ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "requires": { - "mime-db": "^1.28.0" - } - }, - "ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", "requires": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "callsites": "^2.0.0" }, "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==", - "requires": { - "is-plain-object": "^2.0.4" - } + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" } } }, - "external-editor": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001156", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001156.tgz", + "integrity": "sha512-z7qztybA2eFZTB6Z3yvaQBIoJpQtsewRD74adw2UbRWwsRq3jIPvgrQGawBMbfafekQaD21FWuXNcywtTDGGCw==" + }, + "catharsis": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", + "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", + "requires": { + "lodash": "^4.17.14" + } + }, + "ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "is-descriptor": "^1.0.0" + "color-convert": "^2.0.1" } }, - "extend-shallow": { + "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "is-extendable": "^0.1.0" + "color-name": "~1.1.4" } }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "has-flag": "^4.0.0" } } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==" + }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", "requires": { - "websocket-driver": ">=0.5.1" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" } }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "requires": { - "pend": "~1.2.0" + "tslib": "^1.9.0" } }, - "feed": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz", - "integrity": "sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg==", + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + }, + "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==", "requires": { - "xml-js": "^1.6.11" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "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==", "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { - "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=" + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } } } }, - "file-set": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-3.0.0.tgz", - "integrity": "sha512-B/SdeSIeRv7VlOgIjtH3dkxMI+tEy5m+OeCXfAUsirBoVoY+bGtsmvmmTFPm/G23TBY4RiTtjpcgePCfwXRjqA==", - "requires": { - "array-back": "^4.0.0", - "glob": "^7.1.5" - } - }, - "file-type": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", - "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==" + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } }, - "filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, - "filenamify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", - "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "requires": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" + "restore-cursor": "^3.1.0" } }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==" }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", + "optional": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.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=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "ms": "2.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", "requires": { - "array-back": "^3.0.1" + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" }, "dependencies": { - "array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } } } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "find-versions": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", - "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "requires": { - "semver-regex": "^2.0.0" + "mimic-response": "^1.0.0" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" }, - "fork-ts-checker-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "requires": { - "babel-code-frame": "^6.22.0", + "@types/q": "^1.5.1", "chalk": "^2.4.1", - "chokidar": "^2.0.4", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" + "q": "^1.1.2" }, "dependencies": { "chalk": { @@ -3838,3910 +3764,4422 @@ "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } - }, - "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=" } } }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "collect-all": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" } }, - "fs-constants": { + "collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, - "fs-then-native": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", - "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" + "color-convert": "^1.9.1", + "color-string": "^1.5.4" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "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==", "requires": { - "globule": "^1.0.0" + "color-name": "1.1.3" } }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "get-proxy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", - "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", "requires": { - "npm-conf": "^1.1.0" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "command-line-args": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", + "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", "requires": { - "assert-plus": "^1.0.0" + "array-back": "^3.0.1", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" + }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" + } } }, - "gifsicle": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-4.0.1.tgz", - "integrity": "sha512-A/kiCLfDdV+ERV/UB+2O41mifd+RxH8jlRG8DMxZO84Bma/Fw0htqZ+hY2iaalLRNyUu7tYZQslqUBJxBggxbg==", + "command-line-tool": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", "requires": { - "bin-build": "^3.0.0", - "bin-wrapper": "^4.0.0", - "execa": "^1.0.0", - "logalot": "^2.0.0" + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" }, "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "requires": { - "pump": "^3.0.0" + "typical": "^2.6.1" } } } }, - "github-slugger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", - "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", - "requires": { - "emoji-regex": ">=6.0.0 <=6.1.1" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" }, "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", "requires": { - "is-extglob": "^2.1.0" + "typical": "^2.6.1" } } } }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" }, - "global-modules": { + "common-sequence": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.0.tgz", + "integrity": "sha512-f0QqPLpRTgMQn/pQIynf+SdE73Lw5Q1jn4hjirHLgH/NJ71TiHjXusV16BmOyuK5rRQ1W2f++II+TFZbQOh4hA==" }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" + "mime-db": ">= 1.43.0 < 2" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" }, "dependencies": { - "pify": { + "bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, - "globule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", - "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "optional": true, - "requires": { - "delegate": "^3.1.2" - } - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "gray-matter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz", - "integrity": "sha1-MELZrewqHe1qdwep7SOA+KF6Qw4=", + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "ansi-red": "^0.1.1", - "coffee-script": "^1.12.4", - "extend-shallow": "^2.0.1", - "js-yaml": "^3.8.1", - "toml": "^2.3.2" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", "requires": { - "is-extendable": "^0.1.0" + "safe-buffer": "~5.1.0" } } } }, - "gulp-header": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz", - "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==", - "requires": { - "concat-with-sourcemaps": "*", - "lodash.template": "^4.4.0", - "through2": "^2.0.0" - } - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" + "walk-back": "^2.0.1" + }, + "dependencies": { + "walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=" + } } }, - "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } } } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } + "consola": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.0.tgz", + "integrity": "sha512-vlcSGgdYS26mPf7qNi+dCisbhiyDnrN1zaRbw3CSuc2wGOMEGGPsp46PdRG5gqXwgtJfjxDkxRNAgRPr1B77vQ==" }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", "requires": { - "ansi-regex": "^2.0.0" + "safe-buffer": "5.1.2" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "requires": { - "has-symbol-support-x": "^1.4.1" + "safe-buffer": "~5.1.1" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, - "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=", + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" }, "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "is-buffer": "^1.1.5" + "glob": "^7.1.3" } } } }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" - }, - "highlight.js": { - "version": "9.18.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz", - "integrity": "sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ==" - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" + "copy-text-to-clipboard": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-2.2.0.tgz", + "integrity": "sha512-WRvoIdnTs1rgPMkgA2pUOa/M4Enh2uzCwdKsOMYNAJiz/4ZvEJgmbF4OmninPmlFdAWisfeh0tH+Cpf7ni3RqQ==" + }, + "copy-webpack-plugin": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.3.0.tgz", + "integrity": "sha512-kQ2cGGQLO6Ov2fe7rEGVxObI17dPeFkv8bRGnUAGZehOcrrObyAR9yWYlFGlJsyWM4EeuC/ytQNQkXxjYotMzg==", + "requires": { + "cacache": "^15.0.5", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" }, "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } } } }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "core-js-compat": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz", + "integrity": "sha512-V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==", "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" + "browserslist": "^4.14.6", + "semver": "7.0.0" }, "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" } } }, - "http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==" + "core-js-pure": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.7.0.tgz", + "integrity": "sha512-EZD2ckZysv8MMt4J6HSvS9K2GdtlZtdBncKAmF9lr2n0c9dJUaUN88PSTjvgwCgQPWKTkERXITgS6JJRAnljtg==" }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.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=" }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" } }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "imagemin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz", - "integrity": "sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==", + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "requires": { - "file-type": "^10.7.0", - "globby": "^8.0.1", - "make-dir": "^1.0.0", - "p-pipe": "^1.1.0", - "pify": "^4.0.1", - "replace-ext": "^1.0.0" + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" }, "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" } } }, - "imagemin-gifsicle": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-6.0.1.tgz", - "integrity": "sha512-kuu47c6iKDQ6R9J10xCwL0lgs0+sMz3LRHqRcJ2CRBWdcNmo3T5hUaM8hSZfksptZXJLGKk8heSAvwtSdB1Fng==", + "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==", "requires": { - "exec-buffer": "^3.0.0", - "gifsicle": "^4.0.0", - "is-gif": "^3.0.0" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "imagemin-jpegtran": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-6.0.0.tgz", - "integrity": "sha512-Ih+NgThzqYfEWv9t58EItncaaXIHR0u9RuhKa8CtVBlMBvY0dCIxgQJQCfwImA4AV1PMfmUKlkyIHJjb7V4z1g==", + "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==", "requires": { - "exec-buffer": "^3.0.0", - "is-jpg": "^2.0.0", - "jpegtran-bin": "^4.0.0" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "imagemin-optipng": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-6.0.0.tgz", - "integrity": "sha512-FoD2sMXvmoNm/zKPOWdhKpWdFdF9qiJmKC17MxZJPH42VMAp17/QENI/lIuP7LCUnLVAloO3AUoTSNzfhpyd8A==", + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.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==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", "requires": { - "exec-buffer": "^3.0.0", - "is-png": "^1.0.0", - "optipng-bin": "^5.0.0" + "postcss": "^7.0.5" } }, - "imagemin-svgo": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz", - "integrity": "sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg==", + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", "requires": { - "is-svg": "^4.2.1", - "svgo": "^1.3.2" + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" }, "dependencies": { - "is-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.2.1.tgz", - "integrity": "sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A==", + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "requires": { - "html-comment-regex": "^1.1.2" + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } }, - "immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } } }, - "import-lazy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", - "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==" - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", "requires": { - "repeating": "^2.0.0" + "postcss": "^7.0.5" } }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" }, - "inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "mdn-data": "2.0.4", + "source-map": "^0.6.1" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-vendor": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", + "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", + "requires": { + "@babel/runtime": "^7.8.3", + "is-in-browser": "^1.0.2" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" + }, + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" } }, - "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=" - }, - "figures": { + "import-fresh": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "requires": { - "escape-string-regexp": "^1.0.5" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "ansi-regex": "^4.1.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" } } }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "requires": { + "postcss": "^7.0.0" + } }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" }, - "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=", + "csso": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.1.0.tgz", + "integrity": "sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg==", "requires": { - "kind-of": "^3.0.2" + "css-tree": "^1.0.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "css-tree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0.tgz", + "integrity": "sha512-CdVYz/Yuqw0VdKhXPBIgi8DO3NicJVYZNWeX9XcIuSp9ZoFT5IcleVRW07O5rMjdcx1mb+MEJPknTTEW7DdsYw==", "requires": { - "is-buffer": "^1.1.5" + "mdn-data": "2.0.12", + "source-map": "^0.6.1" } + }, + "mdn-data": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.12.tgz", + "integrity": "sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "csstype": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz", + "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA==" }, - "is-binary-path": { + "cyclist": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "requires": { - "binary-extensions": "^1.0.0" + "ms": "2.1.2" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" + "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=" }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" + "mimic-response": "^1.0.0" } }, - "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=", + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.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==" - } + "execa": "^1.0.0", + "ip-regex": "^2.1.0" } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" - }, - "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=" - }, - "is-gif": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz", - "integrity": "sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw==", - "requires": { - "file-type": "^10.4.0" - } - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-extglob": "^2.1.1" + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "is-jpg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", - "integrity": "sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc=" - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" - }, - "is-negative-zero": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", - "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "del": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", + "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", "requires": { - "kind-of": "^3.0.2" + "globby": "^10.0.1", + "graceful-fs": "^4.2.2", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.1", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "is-buffer": "^1.1.5" + "aggregate-error": "^3.0.0" } } } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "optional": true }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, - "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==", + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "requires": { - "isobject": "^3.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "is-png": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", - "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=" + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "detab": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.3.tgz", + "integrity": "sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A==", "requires": { - "has-symbols": "^1.0.1" + "repeat-string": "^1.5.4" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + "detect-port": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", + "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "requires": { - "html-comment-regex": "^1.1.0" + "path-type": "^4.0.0" } }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dmd": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-4.0.6.tgz", + "integrity": "sha512-7ZYAnFQ6jGm4SICArwqNPylJ83PaOdPTAkds3Z/s1ueFqSc5ilJ2F0b7uP+35W1PUbemH++gn5/VlC3KwEgiHQ==", "requires": { - "has-symbols": "^1.0.1" + "array-back": "^4.0.1", + "cache-point": "^1.0.0", + "common-sequence": "^2.0.0", + "file-set": "^3.0.0", + "handlebars": "^4.5.3", + "marked": "^0.7.0", + "object-get": "^2.1.0", + "reduce-flatten": "^3.0.0", + "reduce-unique": "^2.0.1", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^4.0.0" + }, + "dependencies": { + "reduce-flatten": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.0.tgz", + "integrity": "sha512-eczl8wAYBxJ6Egl6I1ECIF+8z6sHu+KE7BzaEDZTpPXKXfy9SUDQlVYwkRcNTjJLC3Iakxbhss50KuT/R6SYfg==" + } } }, - "is-typedarray": { + "dns-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "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==" + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } }, - "is2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz", - "integrity": "sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==", + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "requires": { - "deep-is": "^0.1.3", - "ip-regex": "^2.1.0", - "is-url": "^1.2.2" + "utila": "~0.4" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "dom-helpers": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", + "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "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==" }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" + "domelementtype": "1" } }, - "jpegtran-bin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-4.0.0.tgz", - "integrity": "sha512-2cRl1ism+wJUoYAYFt6O/rLBfpXNWG2dUWbgcEkTt5WGMnqI46eEro8T4C5zGROxKRqyKpCBSdHPvt5UYCtxaQ==", + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { - "bin-build": "^3.0.0", - "bin-wrapper": "^4.0.0", - "logalot": "^2.0.0" + "dom-serializer": "0", + "domelementtype": "1" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dot-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", + "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "no-case": "^3.0.3", + "tslib": "^1.10.0" } }, - "js2xmlparser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", - "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "requires": { - "xmlcreate": "^2.0.3" + "is-obj": "^2.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" }, - "jsdoc": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.5.tgz", - "integrity": "sha512-SbY+i9ONuxSK35cgVHaI8O9senTE4CDYAmGSDJ5l3+sfe62Ff4gy96osy6OW84t4K4A8iGnMrlRrsSItSNp3RQ==", + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "requires": { - "@babel/parser": "^7.9.4", - "bluebird": "^3.7.2", - "catharsis": "^0.8.11", - "escape-string-regexp": "^2.0.0", - "js2xmlparser": "^4.0.1", - "klaw": "^3.0.0", - "markdown-it": "^10.0.0", - "markdown-it-anchor": "^5.2.7", - "marked": "^0.8.2", - "mkdirp": "^1.0.4", - "requizzle": "^0.2.3", - "strip-json-comments": "^3.1.0", - "taffydb": "2.6.2", - "underscore": "~1.10.2" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" }, "dependencies": { - "marked": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", - "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==" + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } } } }, - "jsdoc-api": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-5.0.4.tgz", - "integrity": "sha512-1KMwLnfo0FyhF06TQKzqIm8BiY1yoMIGICxRdJHUjzskaHMzHMmpLlmNFgzoa4pAC8t1CDPK5jWuQTvv1pBsEQ==", + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" + }, + "electron-to-chromium": { + "version": "1.3.589", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.589.tgz", + "integrity": "sha512-rQItBTFnol20HaaLm26UgSUduX7iGerwW7pEYX17MB1tI6LzFajiLV7iZ7LVcUcsN/7HrZUoCLrBauChy/IqEg==" + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "emoticon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", + "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "requires": { - "array-back": "^4.0.0", - "cache-point": "^1.0.0", - "collect-all": "^1.0.3", - "file-set": "^2.0.1", - "fs-then-native": "^2.0.0", - "jsdoc": "^3.6.3", - "object-to-spawn-args": "^1.1.1", - "temp-path": "^1.0.0", - "walk-back": "^3.0.1" + "iconv-lite": "^0.6.2" }, "dependencies": { - "file-set": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/file-set/-/file-set-2.0.1.tgz", - "integrity": "sha512-XgOUUpgR6FbbfYcniLw0qm1Am7PnNYIAkd+eXxRt42LiYhjaso0WiuQ+VmrNdtwotyM+cLCfZ56AZrySP3QnKA==", + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", "requires": { - "array-back": "^2.0.0", - "glob": "^7.1.3" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "requires": { - "typical": "^2.6.1" - } - } + "safer-buffer": ">= 2.1.2 < 3.0.0" } - }, - "walk-back": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-3.0.1.tgz", - "integrity": "sha512-umiNB2qLO731Sxbp6cfZ9pwURJzTnftxE4Gc7hq8n/ehkuXC//s9F65IEIJA2ZytQZ1ZOsm/Fju4IWx0bivkUQ==" } } }, - "jsdoc-parse": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-4.0.1.tgz", - "integrity": "sha512-qIObw8yqYZjrP2qxWROB5eLQFLTUX2jRGLhW9hjo2CC2fQVlskidCIzjCoctwsDvauBp2a/lR31jkSleczSo8Q==", + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "array-back": "^4.0.0", - "lodash.omit": "^4.5.0", - "lodash.pick": "^4.4.0", - "reduce-extract": "^1.0.0", - "sort-array": "^2.0.0", - "test-value": "^3.0.0" + "once": "^1.4.0" } }, - "jsdoc-to-markdown": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-5.0.3.tgz", - "integrity": "sha512-tQv5tBV0fTYidRQtE60lJKxE98mmuLcYuITFDKQiDPE9hGccpeEGUNFcVkInq1vigyuPnZmt79bQ8wv2GKjY0Q==", + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", "requires": { - "array-back": "^4.0.1", - "command-line-tool": "^0.8.0", - "config-master": "^3.1.0", - "dmd": "^4.0.5", - "jsdoc-api": "^5.0.4", - "jsdoc-parse": "^4.0.1", - "walk-back": "^4.0.0" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "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==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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==" - }, - "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=" - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { - "minimist": "^1.2.5" + "prr": "~1.0.1" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "graceful-fs": "^4.1.6" + "is-arrayish": "^0.2.1" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "requires": { - "json-buffer": "3.0.0" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, - "klaw": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", - "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", - "requires": { - "graceful-fs": "^4.1.9" - } + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" }, - "lazy-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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=" + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "requires": { - "set-getter": "^0.1.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "requires": { - "leven": "^3.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } } }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "eta": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-1.11.0.tgz", + "integrity": "sha512-lfqIE6qD55WFYT6E0phTBUe0sapHJhfvRDB7jSpXxFGwzDaP69kQqRyF7krBe8I1QzF5nE1yAByiIOLB630x4Q==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eval": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.4.tgz", + "integrity": "sha512-npGsebJejyjMRnLdFu+T/97dnigqIU0Ov3IGrZ8ygd1v7RL1vGkEKtvyWZobqUH1AQgKlg0Yqqe2BtMA9/QZLw==", "requires": { - "uc.micro": "^1.0.1" + "require-like": ">= 0.1.1" } }, - "list-item": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz", - "integrity": "sha1-DGXQDih8tmPMs8s4Sad+iewmilY=", + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", "requires": { - "expand-range": "^1.8.1", - "extend-shallow": "^2.0.1", - "is-number": "^2.1.0", - "repeat-string": "^1.5.2" + "original": "^1.0.0" + } + }, + "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==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { - "is-extendable": "^0.1.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "kind-of": "^3.0.2" + "shebang-regex": "^1.0.0" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "is-buffer": "^1.1.5" + "isexe": "^2.0.0" } } } }, - "livereload-js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", - "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==" - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "error-ex": "^1.2.0" + "ms": "2.0.0" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "minimist": "^1.2.0" + "ms": "2.0.0" } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "is-extendable": "^0.1.0" } }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } }, - "lodash.assignin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^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=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } }, - "lodash.bind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } }, - "lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.filter": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" - }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=" - }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=" - }, - "lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "requires": { + "punycode": "^1.3.2" + } }, - "lodash.reject": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "requires": { + "reusify": "^1.0.4" + } }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + "fbemitter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-2.1.1.tgz", + "integrity": "sha1-Uj4U/a9SSIBbsC9i78M75wP1GGU=", + "requires": { + "fbjs": "^0.8.4" + } }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } } }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "feed": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.1.tgz", + "integrity": "sha512-l28KKcK1J/u3iq5dRDmmoB2p7dtBfACC2NqJh4dI2kFptxH0asfjmOfcxqh5Sv8suAlVa73gZJ4REY5RrafVvg==", "requires": { - "lodash._reinterpolate": "^3.0.0" + "xml-js": "^1.6.11" } }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" }, - "logalot": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", - "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { - "figures": "^1.3.5", - "squeak": "^1.0.0" + "escape-string-regexp": "^1.0.5" } }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "file-set": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-3.0.0.tgz", + "integrity": "sha512-B/SdeSIeRv7VlOgIjtH3dkxMI+tEy5m+OeCXfAUsirBoVoY+bGtsmvmmTFPm/G23TBY4RiTtjpcgePCfwXRjqA==", "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "array-back": "^4.0.0", + "glob": "^7.1.5" } }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "filesize": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", + "integrity": "sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg==" }, - "lpad-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", - "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { - "get-stdin": "^4.0.1", - "indent-string": "^2.1.0", - "longest": "^1.0.0", - "meow": "^3.3.0" + "to-regex-range": "^5.0.1" } }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, - "make-dir": { + "find-cache-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", "requires": { - "object-visit": "^1.0.0" + "array-back": "^3.0.1" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" + } } }, - "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "locate-path": "^3.0.0" } }, - "markdown-it-anchor": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", - "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==" - }, - "markdown-link": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz", - "integrity": "sha1-MsXGUZmmRXMWMi0eQinRNAfIx88=" + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" }, - "markdown-toc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz", - "integrity": "sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg==", - "requires": { - "concat-stream": "^1.5.2", - "diacritics-map": "^0.1.0", - "gray-matter": "^2.1.0", - "lazy-cache": "^2.0.2", - "list-item": "^1.1.1", - "markdown-link": "^0.1.1", - "minimist": "^1.2.0", - "mixin-deep": "^1.1.3", - "object.pick": "^1.2.0", - "remarkable": "^1.7.1", - "repeat-string": "^1.6.1", - "strip-color": "^0.1.0" + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" }, "dependencies": { - "remarkable": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", - "integrity": "sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==", + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", "requires": { - "argparse": "^1.0.10", - "autolinker": "~0.28.0" + "safe-buffer": "~5.1.0" } } } }, - "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" + "flux": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/flux/-/flux-3.1.3.tgz", + "integrity": "sha1-0jvtUVp5oi2TOrU6tK2hnQWy8Io=", + "requires": { + "fbemitter": "^2.0.0", + "fbjs": "^0.8.0" + } }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" } }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "fork-ts-checker-webpack-plugin": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", + "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^3.3.0", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "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.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "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=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "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.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "map-cache": "^0.2.2" } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { - "mime-db": "1.44.0" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.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==" - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "brace-expansion": "^1.1.7" + "minipass": "^3.0.0" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=" }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "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=", "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" }, "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==", + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", "requires": { - "is-plain-object": "^2.0.4" + "safe-buffer": "~5.1.0" } } } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "mkdirp2": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.4.tgz", - "integrity": "sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw==" + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "optional": true + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", "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.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" } }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" - }, - "node-releases": { - "version": "1.1.61", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", - "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "pump": "^3.0.0" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, - "npm-conf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "github-slugger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", + "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", "requires": { - "config-chain": "^1.1.11", - "pify": "^3.0.0" + "emoji-regex": ">=6.0.0 <=6.1.1" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "emoji-regex": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", + "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" } } }, - "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=", + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { - "path-key": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "requires": { - "boolbase": "~1.0.0" + "is-glob": "^4.0.1" } }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "requires": { + "ini": "^1.3.5" + } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.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=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "is-buffer": "^1.1.5" + "isexe": "^2.0.0" } } } }, - "object-get": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", - "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==" + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + "globby": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "optional": true, + "requires": { + "delegate": "^3.1.2" + } }, - "object-to-spawn-args": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz", - "integrity": "sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U=" + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "gray-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", + "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", "requires": { - "isobject": "^3.0.0" + "js-yaml": "^3.11.0", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" } }, - "object.assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", - "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.0", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "duplexer": "^0.1.1", + "pify": "^4.0.1" } }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" }, "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "isobject": "^3.0.1" + "function-bind": "^1.1.1" } }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "ansi-regex": "^2.0.0" }, "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" } } }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "ee-first": "1.1.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "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=", "requires": { - "mimic-fn": "^1.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "requires": { - "is-wsl": "^1.1.0" - } + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" }, - "optipng-bin": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz", - "integrity": "sha512-9baoqZTNNmXQjq/PQTWEXbVV3AMO2sI/GaaqZJZ8SExfAzjijeAP7FEeT+TtyumSw7gr0PZtSUYB/Ke7iHQVKA==", + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "requires": { - "bin-build": "^3.0.0", - "bin-wrapper": "^4.0.0", - "logalot": "^2.0.0" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "url-parse": "^1.4.3" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "os-filter-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", - "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", + "hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", "requires": { - "arch": "^2.1.0" + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.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=" - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, - "p-event": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", - "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", + "hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", "requires": { - "p-timeout": "^1.1.1" + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" } }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "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=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } + "hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" }, - "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==", + "hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "requires": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", "requires": { - "p-limit": "^2.0.0" + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" } }, - "p-map-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", - "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", + "hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", "requires": { - "p-reduce": "^1.0.0" + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" } }, - "p-pipe": { + "he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", - "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=" + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", "requires": { - "p-finally": "^1.0.0" + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "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=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "requires": { - "pify": "^3.0.0" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } } } }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==" }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", "requires": { - "pinkie": "^2.0.0" + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" } }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "requires": { - "node-modules-regexp": "^1.0.0" - } + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "requires": { - "find-up": "^3.0.0" - } + "html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "requires": { - "find-up": "^2.1.0" + "html-webpack-plugin": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz", + "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==", + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.15", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" }, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "minimist": "^1.2.0" } }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "requires": { - "p-try": "^1.0.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" } }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "requires": { - "p-limit": "^1.1.0" + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" } } }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" } }, - "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=" + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "has-flag": "^3.0.0" + "is-extendable": "^0.1.0" } } } }, - "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=" + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "has-flag": "^3.0.0" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "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.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "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=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, - "postcss-calc": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.4.tgz", - "integrity": "sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.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=" }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "postcss": "^7.0.0" + "safer-buffer": ">= 2.1.2 < 3" } }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", "requires": { - "postcss": "^7.0.0" + "postcss": "^7.0.14" } }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + }, + "immer": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", + "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "requires": { - "postcss": "^7.0.0" + "import-from": "^2.1.0" } }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "import-fresh": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "requires": { - "postcss": "^7.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" + "resolve-from": "^3.0.0" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" } } }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" } }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "infima": { + "version": "0.2.0-alpha.13", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.13.tgz", + "integrity": "sha512-BxCZ1pMcUF0PcL4WV07l/lvaeBBdUUw7uVqNyyeGAutzDpkDyFOl5gOv9wFAJKLo5yerPNFXxFPgDitNjctqIA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } + "once": "^1.3.0", + "wrappy": "1" } }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } } } }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "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=", + "requires": { + "kind-of": "^3.0.2" }, "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "is-buffer": "^1.1.5" } } } }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "requires": { - "postcss": "^7.0.0" + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" } }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } + "binary-extensions": "^2.0.0" } }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "ci-info": "^2.0.0" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" } } }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" } }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } + "has": "^1.0.3" } }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "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=", "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "kind-of": "^3.0.2" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } } } }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "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==" } } }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "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=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } + "is-extglob": "^2.1.1" } }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "is-path-inside": "^2.1.0" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "requires": { + "path-is-inside": "^1.0.2" + } } } }, - "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - } + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "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==", "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } + "isobject": "^3.0.1" } }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" + "has-symbols": "^1.0.1" } }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, - "prismjs": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz", - "integrity": "sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==", - "requires": { - "clipboard": "^2.0.0" - } + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "html-comment-regex": "^1.1.0" } }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" + "has-symbols": "^1.0.1" } }, - "pseudomap": { + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + }, + "is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "is-docker": "^2.0.0" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" }, "dependencies": { - "is-number": { + "has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } } } }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "js2xmlparser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", + "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "xmlcreate": "^2.0.3" } }, - "react-dev-utils": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", - "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", + "jsdoc": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.6.tgz", + "integrity": "sha512-znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ==", "requires": { - "@babel/code-frame": "7.5.5", - "address": "1.1.2", - "browserslist": "4.7.0", - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "1.0.5", - "filesize": "3.6.1", - "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.5.0", - "global-modules": "2.0.0", - "globby": "8.0.2", - "gzip-size": "5.1.1", - "immer": "1.10.0", - "inquirer": "6.5.0", - "is-root": "2.1.0", - "loader-utils": "1.2.3", - "open": "^6.3.0", - "pkg-up": "2.0.0", - "react-error-overlay": "^6.0.3", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "sockjs-client": "1.4.0", - "strip-ansi": "5.2.0", - "text-table": "0.2.0" + "@babel/parser": "^7.9.4", + "bluebird": "^3.7.2", + "catharsis": "^0.8.11", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.1", + "klaw": "^3.0.0", + "markdown-it": "^10.0.0", + "markdown-it-anchor": "^5.2.7", + "marked": "^0.8.2", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.10.2" }, "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", - "requires": { - "caniuse-lite": "^1.0.30000989", - "electron-to-chromium": "^1.3.247", - "node-releases": "^1.1.29" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } + "marked": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", + "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==" }, - "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=" + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" } } }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-error-overlay": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", - "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "jsdoc-api": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-5.0.4.tgz", + "integrity": "sha512-1KMwLnfo0FyhF06TQKzqIm8BiY1yoMIGICxRdJHUjzskaHMzHMmpLlmNFgzoa4pAC8t1CDPK5jWuQTvv1pBsEQ==", "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "array-back": "^4.0.0", + "cache-point": "^1.0.0", + "collect-all": "^1.0.3", + "file-set": "^2.0.1", + "fs-then-native": "^2.0.0", + "jsdoc": "^3.6.3", + "object-to-spawn-args": "^1.1.1", + "temp-path": "^1.0.0", + "walk-back": "^3.0.1" }, "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "file-set": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-2.0.1.tgz", + "integrity": "sha512-XgOUUpgR6FbbfYcniLw0qm1Am7PnNYIAkd+eXxRt42LiYhjaso0WiuQ+VmrNdtwotyM+cLCfZ56AZrySP3QnKA==", "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-back": "^2.0.0", + "glob": "^7.1.3" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "requires": { + "typical": "^2.6.1" + } + } } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "walk-back": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-3.0.1.tgz", + "integrity": "sha512-umiNB2qLO731Sxbp6cfZ9pwURJzTnftxE4Gc7hq8n/ehkuXC//s9F65IEIJA2ZytQZ1ZOsm/Fju4IWx0bivkUQ==" } } }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "jsdoc-parse": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-4.0.1.tgz", + "integrity": "sha512-qIObw8yqYZjrP2qxWROB5eLQFLTUX2jRGLhW9hjo2CC2fQVlskidCIzjCoctwsDvauBp2a/lR31jkSleczSo8Q==", "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - } + "array-back": "^4.0.0", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "reduce-extract": "^1.0.0", + "sort-array": "^2.0.0", + "test-value": "^3.0.0" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "jsdoc-to-markdown": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-5.0.3.tgz", + "integrity": "sha512-tQv5tBV0fTYidRQtE60lJKxE98mmuLcYuITFDKQiDPE9hGccpeEGUNFcVkInq1vigyuPnZmt79bQ8wv2GKjY0Q==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "array-back": "^4.0.1", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^4.0.5", + "jsdoc-api": "^5.0.4", + "jsdoc-parse": "^4.0.1", + "walk-back": "^4.0.0" } }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "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==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "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==" + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "requires": { - "minimatch": "3.0.4" + "minimist": "^1.2.5" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "graceful-fs": "^4.1.6" } }, - "reduce-extract": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", - "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", + "jss": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.4.0.tgz", + "integrity": "sha512-l7EwdwhsDishXzqTc3lbsbyZ83tlUl5L/Hb16pHCvZliA9lRDdNBZmHzeJHP0sxqD0t1mrMmMR8XroR12JBYzw==", "requires": { - "test-value": "^1.0.1" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", - "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", - "requires": { - "array-back": "^1.0.2", - "typical": "^2.4.2" - } - } + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" } }, - "reduce-flatten": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", - "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=" - }, - "reduce-unique": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", - "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==" - }, - "reduce-without": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", - "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", + "jss-plugin-camel-case": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.4.0.tgz", + "integrity": "sha512-9oDjsQ/AgdBbMyRjc06Kl3P8lDCSEts2vYZiPZfGAxbGCegqE4RnMob3mDaBby5H9vL9gWmyyImhLRWqIkRUCw==", "requires": { - "test-value": "^2.0.0" - }, - "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "requires": { - "typical": "^2.6.0" - } - }, - "test-value": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", - "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", - "requires": { - "array-back": "^1.0.3", - "typical": "^2.6.0" - } - } + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.4.0" } }, - "regenerate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", - "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "jss-plugin-default-unit": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.4.0.tgz", + "integrity": "sha512-BYJ+Y3RUYiMEgmlcYMLqwbA49DcSWsGgHpVmEEllTC8MK5iJ7++pT9TnKkKBnNZZxTV75ycyFCR5xeLSOzVm4A==", "requires": { - "regenerate": "^1.4.0" + "@babel/runtime": "^7.3.1", + "jss": "10.4.0" } }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "jss-plugin-global": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.4.0.tgz", + "integrity": "sha512-b8IHMJUmv29cidt3nI4bUI1+Mo5RZE37kqthaFpmxf5K7r2aAegGliAw4hXvA70ca6ckAoXMUl4SN/zxiRcRag==", "requires": { - "@babel/runtime": "^7.8.4" + "@babel/runtime": "^7.3.1", + "jss": "10.4.0" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "jss-plugin-nested": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.4.0.tgz", + "integrity": "sha512-cKgpeHIxAP0ygeWh+drpLbrxFiak6zzJ2toVRi/NmHbpkNaLjTLgePmOz5+67ln3qzJiPdXXJB1tbOyYKAP4Pw==", "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "@babel/runtime": "^7.3.1", + "jss": "10.4.0", + "tiny-warning": "^1.0.2" } }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "jss-plugin-props-sort": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.4.0.tgz", + "integrity": "sha512-j/t0R40/2fp+Nzt6GgHeUFnHVY2kPGF5drUVlgkcwYoHCgtBDOhTTsOfdaQFW6sHWfoQYgnGV4CXdjlPiRrzwA==", "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" + "@babel/runtime": "^7.3.1", + "jss": "10.4.0" } }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "jss-plugin-rule-value-function": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.4.0.tgz", + "integrity": "sha512-w8504Cdfu66+0SJoLkr6GUQlEb8keHg8ymtJXdVHWh0YvFxDG2l/nS93SI5Gfx0fV29dO6yUugXnKzDFJxrdFQ==", "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } + "@babel/runtime": "^7.3.1", + "jss": "10.4.0", + "tiny-warning": "^1.0.2" } }, - "remarkable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz", - "integrity": "sha512-YJyMcOH5lrR+kZdmB0aJJ4+93bEojRZ1HGDn9Eagu6ibg7aVZhc3OWbbShRid+Q5eAfsEqWxpe+g5W5nYNfNiA==", + "jss-plugin-vendor-prefixer": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.4.0.tgz", + "integrity": "sha512-DpF+/a+GU8hMh/948sBGnKSNfKkoHg2p9aRFUmyoyxgKjOeH9n74Ht3Yt8lOgdZsuWNJbPrvaa3U4PXKwxVpTQ==", "requires": { - "argparse": "^1.0.10", - "autolinker": "^3.11.0" - }, - "dependencies": { - "autolinker": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-3.14.1.tgz", - "integrity": "sha512-yvsRHIaY51EYDml6MGlbqyJGfl4n7zezGYf+R7gvM8c5LNpRGc4SISkvgAswSS8SWxk/OrGCylKV9mJyVstz7w==", - "requires": { - "tslib": "^1.9.3" - } - } + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.8", + "jss": "10.4.0" } }, - "remarkable-admonitions": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/remarkable-admonitions/-/remarkable-admonitions-0.2.2.tgz", - "integrity": "sha512-CcMTEcLYmJLXX3IVMk4LyW4oFD2NQxh5FeLzn4k89TAPpyWIeVix/B/g/gDbZAUpCNY9l6heovR5NNIktf8X5A==" - }, - "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=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "requires": { - "is-finite": "^1.0.0" + "json-buffer": "3.0.0" } }, - "replace-ext": { + "killable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "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.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" }, - "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "requires": { - "lodash": "^4.17.14" - } + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", "requires": { - "path-parse": "^1.0.6" + "graceful-fs": "^4.1.9" } }, - "resolve-from": { + "last-call-webpack-plugin": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", "requires": { - "lowercase-keys": "^1.0.0" + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" } }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "package-json": "^6.3.0" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", "requires": { - "glob": "^7.1.3" + "uc.micro": "^1.0.1" } }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "requires": { - "tslib": "^1.9.0" + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "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-json-parse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", - "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "ret": "~0.1.10" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.chunk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", + "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=" + }, + "lodash.curry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", + "integrity": "sha1-JI42By7ekGUB11lmIAqG2riyMXA=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" + }, + "lodash.flatmap": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz", + "integrity": "sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.flow": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", + "integrity": "sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=" + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" + }, + "lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=" + }, + "lodash.has": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", + "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=" + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=" + }, + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "lodash.pickby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz", + "integrity": "sha1-feoh2MGNdwOifHBMFdO4SmfjOv8=" + }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" } }, - "seek-bzip": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", - "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "requires": { - "commander": "^2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } + "lodash._reinterpolate": "^3.0.0" } }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", - "optional": true + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, - "semver-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==" + "loglevel": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", + "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==" }, - "semver-truncate": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", - "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "semver": "^5.3.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } + "tslib": "^1.10.0" } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, - "set-getter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", - "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "to-object-path": "^0.3.0" + "yallist": "^4.0.0" } }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "pify": "^4.0.1", + "semver": "^5.6.0" }, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^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=" }, - "shebang-regex": { + "map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "object-visit": "^1.0.0" } }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "markdown-it": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", "requires": { - "is-arrayish": "^0.3.1" + "argparse": "^1.0.7", + "entities": "~2.0.0", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" }, "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" } } }, - "sitemap": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", - "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", + "markdown-it-anchor": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==" + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "lodash.chunk": "^4.2.0", - "lodash.padstart": "^4.6.1", - "whatwg-url": "^7.0.0", - "xmlbuilder": "^13.0.0" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + "mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "requires": { + "unist-util-remove": "^2.0.0" + } }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "mdast-util-definitions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-3.0.1.tgz", + "integrity": "sha512-BAv2iUm/e6IK/b2/t+Fx69EL/AGcq/IG2S+HxHjDJGfLJtd6i9SZUS76aC9cig+IEucsqxKTR0ot3m933R3iuA==", "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } + "unist-util-visit": "^2.0.0" } }, - "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==", + "mdast-util-to-hast": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-9.1.1.tgz", + "integrity": "sha512-vpMWKFKM2mnle+YbNgDXxx95vv0CoLU0v/l3F5oFAG5DV7qwkZVWA206LsAdOnEVyf5vQcLnb3cWJywu7mUxsQ==", "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.3", + "mdast-util-definitions": "^3.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-to-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", + "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "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=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.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=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.0" + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "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==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "safe-buffer": "~5.1.0" } } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "merge-deep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", + "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", "requires": { - "kind-of": "^3.2.0" + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7754,1071 +8192,6575 @@ } } }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, - "sort-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz", - "integrity": "sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI=", + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "array-back": "^1.0.4", - "object-get": "^2.1.0", - "typical": "^2.6.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" }, "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", - "requires": { - "typical": "^2.6.0" - } + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" } } }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, - "sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "sort-keys": "^1.0.0" + "mime-db": "1.44.0" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", "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" + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" } }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "mini-css-extract-plugin": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", + "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.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=" + "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==" }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "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=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "brace-expansion": "^1.1.7" } }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "yallist": "^4.0.0" } }, - "spdx-license-ids": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", - "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==" - }, - "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==", + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { - "extend-shallow": "^3.0.0" + "minipass": "^3.0.0" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "squeak": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", - "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { - "chalk": "^1.0.0", - "console-stream": "^0.1.1", - "lpad-align": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "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" - } - }, - "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=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "minipass": "^3.0.0" } }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "minipass": "^3.0.0" } }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "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=", - "requires": { - "is-descriptor": "^0.1.0" - } - } + "minipass": "^3.0.0", + "yallist": "^4.0.0" } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } }, - "stream-connect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", - "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { - "array-back": "^1.0.2" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { - "array-back": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", - "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "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==", "requires": { - "typical": "^2.6.0" + "is-plain-object": "^2.0.4" } } } }, - "stream-via": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", - "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" } } }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "minimist": "^1.2.5" } }, - "string.prototype.trimstart": { + "mkdirp2": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.4.tgz", + "integrity": "sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw==" + }, + "move-concurrently": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" }, "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "glob": "^7.1.3" } } } }, - "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==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "requires": { - "safe-buffer": "~5.1.0" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "is-utf8": "^0.2.0" + "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.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "strip-color": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz", - "integrity": "sha1-EG9l09PmotlAHKwOsM6LinArT3s=" + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "no-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", "requires": { - "is-natural-number": "^4.0.1" + "lower-case": "^2.0.1", + "tslib": "^1.10.0" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "requires": { + "lodash.toarray": "^4.4.0" + } }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "get-stdin": "^4.0.1" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "requires": { - "escape-string-regexp": "^1.0.2" + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" }, "dependencies": { - "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=" + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } } } }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "node-releases": { + "version": "1.1.65", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.65.tgz", + "integrity": "sha512-YpzJOe2WFIW0V4ZkJQd/DGR/zdVwc/pI4Nl1CZrBO19FdRcSTmsuhdttw9rsTzzJLrNcSloLiBbEYx1C4f6gpA==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.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=", + "requires": { + "path-key": "^2.0.0" }, "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" } } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "npm-to-yarn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-to-yarn/-/npm-to-yarn-1.0.1.tgz", + "integrity": "sha512-bp8T8oNMfLW+N/fE0itFfSu7RReytwhqNd9skbkfHfzGYC+5CCdzS2HnaXz6JiG4AlK2eA0qlT6NJN1SoFvcWQ==" + }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "requires": { - "has-flag": "^3.0.0" + "boolbase": "~1.0.0" } }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "null-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz", + "integrity": "sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==", "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" + "loader-utils": "^1.2.3", + "schema-utils": "^1.0.0" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "minimist": "^1.2.0" } }, - "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=" + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } } } }, - "table-layout": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", - "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "array-back": "^2.0.0", - "deep-extend": "~0.6.0", - "lodash.padend": "^4.6.1", - "typical": "^2.6.1", - "wordwrapjs": "^3.0.0" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "typical": "^2.6.1" + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" } } } }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + "object-get": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", + "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==" }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, - "tcp-port-used": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz", - "integrity": "sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q==", + "object-is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", "requires": { - "debug": "4.1.0", - "is2": "2.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" }, "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", "requires": { - "ms": "^2.1.1" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } } } }, - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" - }, - "temp-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", - "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=" + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, - "tempfile": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", - "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", + "object-to-spawn-args": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz", + "integrity": "sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U=" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "temp-dir": "^1.0.0", - "uuid": "^3.0.1" + "isobject": "^3.0.0" } }, - "test-value": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", - "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "requires": { - "array-back": "^2.0.0", - "typical": "^2.6.1" - }, - "dependencies": { - "array-back": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", - "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", - "requires": { - "typical": "^2.6.1" - } - } + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "optional": true + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, - "tiny-lr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", - "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "body": "^5.1.0", - "debug": "^3.1.0", - "faye-websocket": "~0.10.0", - "livereload-js": "^2.3.0", - "object-assign": "^4.1.0", - "qs": "^6.4.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "requires": { - "websocket-driver": ">=0.5.1" - } - } + "wrappy": "1" } }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "requires": { - "os-tmpdir": "~1.0.2" + "mimic-fn": "^2.1.0" } }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + "open": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" }, - "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=", + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "requires": { - "kind-of": "^3.0.2" + "is-wsl": "^1.1.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" } } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "optimize-css-assets-webpack-plugin": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz", + "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==", "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.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=", + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "url-parse": "^1.4.3" } }, - "toidentifier": { + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "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=" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "toml": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==" + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "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==", "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "p-limit": "^2.0.0" } }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "requires": { - "punycode": "^2.1.0" + "aggregate-error": "^3.0.0" } }, - "tree-node-cli": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/tree-node-cli/-/tree-node-cli-1.4.0.tgz", - "integrity": "sha512-hBc/cp7rTSHFSFvaTzmHNYyJv87UJBsxsfCoq2DtDQuMES4vhnLuvXZit/asGtZG8edWTCydWeFWoBz9LYkJdQ==", + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", "requires": { - "commander": "^5.0.0" - }, - "dependencies": { - "commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" - } + "retry": "^0.12.0" } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "requires": { - "escape-string-regexp": "^1.0.2" + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" }, "dependencies": { - "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=" + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } } } }, - "truncate-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.3.tgz", - "integrity": "sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ==", + "param-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", "requires": { - "@types/cheerio": "^0.22.8", - "cheerio": "0.22.0" + "dot-case": "^3.0.3", + "tslib": "^1.10.0" } }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "requires": { - "safe-buffer": "^5.0.1" + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "parse-numeric-range": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz", + "integrity": "sha1-tPCdQTx6282Yf26SM8e0shDJOOQ=" }, - "typical": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", - "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=" + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, - "uglify-js": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.1.tgz", - "integrity": "sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==", - "optional": true + "pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } }, - "unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "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=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "underscore": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", - "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "pinkie": "^2.0.0" } }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + } }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "ts-pnp": "^1.1.6" } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + "popper.js": { + "version": "1.16.1-lts", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", + "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "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=" }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-initial": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", + "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", + "requires": { + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", + "requires": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-not": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", + "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" + }, + "prism-react-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.1.1.tgz", + "integrity": "sha512-MgMhSdHuHymNRqD6KM3eGS0PNqgK9q4QF5P0yoQQvpB6jNjeSAi3jcSAz0Sua/t9fa4xDOMar9HJbLa08gl9ug==" + }, + "prismjs": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz", + "integrity": "sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==", + "requires": { + "clipboard": "^2.0.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "requires": { + "xtend": "^4.0.0" + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "requires": { + "escape-goat": "^2.0.0" + } + }, + "pure-color": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", + "integrity": "sha1-H+Bk+wrIUfDeYTIKi/eWg2Qi8z4=" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-base16-styling": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", + "integrity": "sha1-7yFW1mz0E5aVyKFniGy2nqZgeSw=", + "requires": { + "base16": "^1.0.0", + "lodash.curry": "^4.0.1", + "lodash.flow": "^3.3.0", + "pure-color": "^1.2.0" + } + }, + "react-dev-utils": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz", + "integrity": "sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ==", + "requires": { + "@babel/code-frame": "7.8.3", + "address": "1.1.2", + "browserslist": "4.10.0", + "chalk": "2.4.2", + "cross-spawn": "7.0.1", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "2.0.0", + "filesize": "6.0.1", + "find-up": "4.1.0", + "fork-ts-checker-webpack-plugin": "3.1.1", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "7.0.4", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^7.0.2", + "pkg-up": "3.1.0", + "react-error-overlay": "^6.0.7", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "strip-ansi": "6.0.0", + "text-table": "0.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "browserslist": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", + "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", + "requires": { + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "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=" + } + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "inquirer": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", + "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.2.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "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.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + } + } + }, + "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=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-error-overlay": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.8.tgz", + "integrity": "sha512-HvPuUQnLp5H7TouGq3kzBeioJmXms1wHy9EGjz2OURWBp4qZO6AfGEcnxts1D/CbwPLRAgTMPCEgYhA3sEM4vw==" + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, + "react-helmet": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz", + "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.1.1", + "react-side-effect": "^2.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-json-view": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.19.1.tgz", + "integrity": "sha512-u5e0XDLIs9Rj43vWkKvwL8G3JzvXSl6etuS5G42a8klMohZuYFQzSN6ri+/GiBptDqlrXPTdExJVU7x9rrlXhg==", + "requires": { + "flux": "^3.1.3", + "react-base16-styling": "^0.6.0", + "react-lifecycles-compat": "^3.0.4", + "react-textarea-autosize": "^6.1.0" + } + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-loadable": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-loadable/-/react-loadable-5.5.0.tgz", + "integrity": "sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg==", + "requires": { + "prop-types": "^15.5.0" + } + }, + "react-loadable-ssr-addon": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon/-/react-loadable-ssr-addon-0.3.0.tgz", + "integrity": "sha512-E+lnmDakV0k6ut6R2J77vurwCOwTKEwKlHs9S62G8ez+ujecLPcqjt3YAU8M58kIGjp2QjFlZ7F9QWkq/mr6Iw==", + "requires": { + "@babel/runtime": "^7.10.3" + } + }, + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-side-effect": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.1.tgz", + "integrity": "sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==" + }, + "react-textarea-autosize": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-6.1.0.tgz", + "integrity": "sha512-F6bI1dgib6fSvG8so1HuArPUv+iVEfPliuLWusLF+gAKz0FbB4jLrWUrTAeq1afnPT2c9toEZYUdz/y1uKMy4A==", + "requires": { + "prop-types": "^15.6.0" + } + }, + "react-toggle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz", + "integrity": "sha512-+wXlMcSpg8SmnIXauMaZiKpR+r2wp2gMUteroejp2UTSqGTVvZLN+m9EhMzFARBKEw7KpQOwzCyfzeHeAndQGw==", + "requires": { + "classnames": "^2.2.5" + } + }, + "react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "reading-time": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.2.0.tgz", + "integrity": "sha512-5b4XmKK4MEss63y0Lw0vn0Zn6G5kiHP88mUnD8UeEsyORj3sh1ghTH0/u6m1Ax9G2F4wUZrknlp6WlIsCvoXVA==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + } + }, + "reduce-extract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", + "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", + "requires": { + "test-value": "^1.0.1" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", + "requires": { + "array-back": "^1.0.2", + "typical": "^2.4.2" + } + } + } + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=" + }, + "reduce-unique": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", + "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==" + }, + "reduce-without": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", + "requires": { + "test-value": "^2.0.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "requires": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + } + } + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "registry-auth-token": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", + "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "rehype-parse": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz", + "integrity": "sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==", + "requires": { + "hast-util-from-parse5": "^5.0.0", + "parse5": "^5.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "hast-util-from-parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", + "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", + "requires": { + "ccount": "^1.0.3", + "hastscript": "^5.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.1.2", + "xtend": "^4.0.1" + } + }, + "hastscript": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", + "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", + "requires": { + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remark-admonitions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/remark-admonitions/-/remark-admonitions-1.2.1.tgz", + "integrity": "sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow==", + "requires": { + "rehype-parse": "^6.0.2", + "unified": "^8.4.2", + "unist-util-visit": "^2.0.1" + }, + "dependencies": { + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "unified": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", + "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + } + } + }, + "remark-emoji": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.1.0.tgz", + "integrity": "sha512-lDddGsxXURV01WS9WAiS9rO/cedO1pvr9tahtLhr6qCGFhHG4yZSJW3Ha4Nw9Uk1hLNmUBtPC0+m45Ms+xEitg==", + "requires": { + "emoticon": "^3.2.0", + "node-emoji": "^1.10.0", + "unist-util-visit": "^2.0.2" + } + }, + "remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" + }, + "remark-mdx": { + "version": "1.6.19", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.19.tgz", + "integrity": "sha512-UKK1CFatVPNhgjsIlNQ3GjVl3+6O7x7Hag6oyntFTg8s7sgq+rhWaSfM/6lW5UWU6hzkj520KYBuBlsaSriGtA==", + "requires": { + "@babel/core": "7.11.6", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.11.0", + "@babel/plugin-syntax-jsx": "7.10.4", + "@mdx-js/util": "1.6.19", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.11.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", + "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.6", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.5", + "@babel/types": "^7.11.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz", + "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "requires": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "requires": { + "mdast-squeeze-paragraphs": "^4.0.0" + } + }, + "remarkable-admonitions": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/remarkable-admonitions/-/remarkable-admonitions-0.2.2.tgz", + "integrity": "sha512-CcMTEcLYmJLXX3IVMk4LyW4oFD2NQxh5FeLzn4k89TAPpyWIeVix/B/g/gDbZAUpCNY9l6heovR5NNIktf8X5A==" + }, + "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=" + }, + "renderkid": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz", + "integrity": "sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==", + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "requires": { + "lodash": "^4.17.14" + } + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "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==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "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==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "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=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "optional": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "requires": { + "semver": "^6.3.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-handler": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", + "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", + "requires": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.0.4", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "~1.33.0" + } + }, + "path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + } + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, + "sitemap": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", + "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", + "requires": { + "lodash.chunk": "^4.2.0", + "lodash.padstart": "^4.6.1", + "whatwg-url": "^7.0.0", + "xmlbuilder": "^13.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "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==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "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=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "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==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-2.0.0.tgz", + "integrity": "sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI=", + "requires": { + "array-back": "^1.0.4", + "object-get": "^2.1.0", + "typical": "^2.6.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "requires": { + "typical": "^2.6.0" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "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-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "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-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "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==", + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "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=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "std-env": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.2.1.tgz", + "integrity": "sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ==", + "requires": { + "ci-info": "^1.6.0" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", + "requires": { + "array-back": "^1.0.2" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "requires": { + "typical": "^2.6.0" + } + } + } + }, + "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==", + "requires": { + "end-of-stream": "^1.1.0", + "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==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "stream-via": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + } + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "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=" + }, + "style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "requires": { + "inline-style-parser": "0.1.1" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, + "table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "requires": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=" + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "temp-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=" + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "terser": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.8.tgz", + "integrity": "sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + } + } + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "requires": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "optional": true + }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "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=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "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=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + }, + "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==" + } + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==" + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=" + }, + "ua-parser-js": { + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==" + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "uglify-js": { + "version": "3.11.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.5.tgz", + "integrity": "sha512-btvv/baMqe7HxP7zJSF7Uc16h1mSfuuSplT0/qdjxseesDU+yYzH33eHBH+eMdeRXwujXspaCTooWHQVVBh09w==", + "optional": true + }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + }, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "requires": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + } + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" + }, + "unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==" + }, + "unist-util-is": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.3.tgz", + "integrity": "sha512-bTofCFVx0iQM8Jqb1TBDVRIQW03YkD3p66JOd/aCWuqzlLyUtx1ZAGw/u+Zw+SttKvSVcvTiKYbfrtLoLefykw==" + }, + "unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" + }, + "unist-util-remove": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.0.1.tgz", + "integrity": "sha512-YtuetK6o16CMfG+0u4nndsWpujgsHDHHLyE0yGpJLLn5xSjKeyGyzEBOI2XbmoUHCYabmNgX52uxlWoQhcvR7Q==", + "requires": { + "unist-util-is": "^4.0.0" + } + }, + "unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "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=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + } + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "requires": { + "punycode": "^2.1.0" + }, + "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==" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + }, + "vfile": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz", + "integrity": "sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + } + } + }, + "vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "wait-file": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/wait-file/-/wait-file-1.0.5.tgz", + "integrity": "sha512-udLpJY/eOxlrMm3+XD1RLuF2oT9B7J7wiyR5/9xrvQymS6YR6trWvVhzOldHrVbLwyiRmLj9fcvsjzpSXeZHkw==", + "requires": { + "@hapi/joi": "^15.1.0", + "fs-extra": "^8.1.0", + "rx": "^4.1.0" + }, + "dependencies": { + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + } + } + }, + "walk-back": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-4.0.0.tgz", + "integrity": "sha512-kudCA8PXVQfrqv2mFTG72vDBRi8BKWxGgFLwPpzHcpZnSwZk93WMwUDVcLHWNsnm+Y0AC4Vb6MUNRgaHfyV2DQ==" + }, + "watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "optional": 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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "optional": 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==", + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.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=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "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=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "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.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "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==", + "optional": true, + "requires": { + "safe-buffer": "~5.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=", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "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.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.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=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "webpack-bundle-analyzer": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.19", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==" + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.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=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" + }, + "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=", "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" }, "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "isarray": "1.0.0" + "is-buffer": "^1.1.5" } } } }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "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.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.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==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.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=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } } } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "requires": { - "punycode": "^2.1.0" + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "lodash": "^4.17.15" } }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "requires": { - "prepend-http": "^1.0.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } } }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "webpackbar": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-4.0.0.tgz", + "integrity": "sha512-k1qRoSL/3BVuINzngj09nIwreD8wxV4grcuhHTD8VJgUbGcy8lQSPqv+bM00B7F+PffwIsQ8ISd4mIwRbr23eQ==", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "consola": "^2.10.0", + "figures": "^3.0.0", + "pretty-time": "^1.1.0", + "std-env": "^2.2.1", + "text-table": "^0.2.0", + "wrap-ansi": "^6.0.0" }, "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + } } } } }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "walk-back": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-4.0.0.tgz", - "integrity": "sha512-kudCA8PXVQfrqv2mFTG72vDBRi8BKWxGgFLwPpzHcpZnSwZk93WMwUDVcLHWNsnm+Y0AC4Vb6MUNRgaHfyV2DQ==" - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, @@ -8827,6 +14769,11 @@ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" }, + "whatwg-fetch": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz", + "integrity": "sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A==" + }, "whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", @@ -8838,17 +14785,30 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "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=" + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" + } + }, "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, "wordwrapjs": { "version": "3.0.0", @@ -8859,6 +14819,14 @@ "typical": "^2.6.1" } }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "requires": { + "errno": "~0.1.7" + } + }, "worker-rpc": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", @@ -8867,11 +14835,57 @@ "microevent.ts": "~0.1.1" } }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + }, "xml-js": { "version": "1.6.11", "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", @@ -8895,36 +14909,70 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, + "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==" + }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "yamljs": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz", - "integrity": "sha1-SBzHwlynOvWfWR8MluPOVsdXpA8=", - "requires": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - } + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" }, "yargs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-2.3.0.tgz", - "integrity": "sha1-6QDIclDsXNCA22AJ/j3WMVbx1/s=", - "requires": { - "wordwrap": "0.0.2" + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + }, + "dependencies": { + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } } }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } } + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" } } } diff --git a/website/package.json b/website/package.json index 7010a8ea..f58a5061 100644 --- a/website/package.json +++ b/website/package.json @@ -1,13 +1,16 @@ { "scripts": { "examples": "docusaurus-examples", - "start": "docusaurus-start", - "build": "docusaurus-build", + "start": "docusaurus start --host 0.0.0.0", + "build": "docusaurus build", "build:api": "./scripts/build_api_md.sh", "publish-gh-pages": "docusaurus-publish", "write-translations": "docusaurus-write-translations", "version": "docusaurus-version", - "rename-version": "docusaurus-rename-version" + "rename-version": "docusaurus-rename-version", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "docusaurus": "docusaurus" }, "description": "Technical Documentation for the Accord Project", "license": "Apache-2.0", @@ -16,8 +19,15 @@ "url": "https://github.com/accordproject/techdocs.git" }, "dependencies": { - "docusaurus": "^1.14.6", + "@docusaurus/core": "2.0.0-alpha.66", + "@docusaurus/plugin-client-redirects": "2.0.0-alpha.66", + "@docusaurus/preset-classic": "2.0.0-alpha.66", + "@docusaurus/remark-plugin-npm2yarn": "^2.0.0-alpha.66", + "@material-ui/core": "^4.11.0", + "clsx": "^1.1.1", "jsdoc-to-markdown": "^5.0.3", + "react": "^16.10.2", + "react-dom": "^16.10.2", "remarkable-admonitions": "^0.2.2" } } diff --git a/website/pages/en/help.js b/website/pages/en/help.js deleted file mode 100755 index de3ed8c8..00000000 --- a/website/pages/en/help.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -const CompLibrary = require('../../core/CompLibrary.js'); -const Container = CompLibrary.Container; -const GridBlock = CompLibrary.GridBlock; - -const siteConfig = require(process.cwd() + '/siteConfig.js'); - -function docUrl(doc, language) { - return siteConfig.baseUrl + 'docs/' + (language ? language + '/' : '') + doc; -} - -class Help extends React.Component { - render() { - let language = this.props.language || ''; - const supportLinks = [ - { - content: `Learn more using the [documentation on this site.](${docUrl( - 'accordproject.html', - language - )})`, - title: 'Browse Docs', - }, - { - content: 'Ask questions about the documentation and project', - title: 'Join the community', - }, - { - content: "Find out what's new with this project", - title: 'Stay up to date', - }, - ]; - - return ( -
- -
-
-

Need help?

-
-

This project is maintained by a dedicated group of people.

- -
-
-
- ); - } -} - -module.exports = Help; diff --git a/website/pages/en/index.js b/website/pages/en/index.js deleted file mode 100755 index 6b4f5f7b..00000000 --- a/website/pages/en/index.js +++ /dev/null @@ -1,272 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -const CompLibrary = require('../../core/CompLibrary.js'); -const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */ -const Container = CompLibrary.Container; -const GridBlock = CompLibrary.GridBlock; - -const siteConfig = require(process.cwd() + '/siteConfig.js'); - -function imgUrl(img) { - return siteConfig.baseUrl + 'img/' + img; -} - -function docUrl(doc, language) { - return siteConfig.baseUrl + 'docs/' + (language ? language + '/' : '') + doc; -} - -function pageUrl(page, language) { - return siteConfig.baseUrl + (language ? language + '/' : '') + page; -} - -class Button extends React.Component { - render() { - return ( - - ); - } -} - -Button.defaultProps = { - target: '_self', -}; - -const SplashContainer = props => ( -
-
-
{props.children}
-
-
-); - -const Logo = props => ( -
- Accord Project -
-); - -const ProjectTitle = props => ( -

- {siteConfig.taglineLead} {siteConfig.tagline} -

-); - -const PromoSection = props => ( -
-
-
{props.children}
-
-
-); - -class HomeSplash extends React.Component { - render() { - let language = this.props.language || ''; - return ( - - -
- - - - - - -
-
- ); - } -} - -const Block = props => ( - - - -); - -const Features = props => ( - - {[ - { - content: `Create templates for human-readable and machine-executable contracts using Open Source [Cicero](${siteConfig.baseUrl}docs/started-installation.html).`, - title: `[![Cicero](${imgUrl('cicero-logo.svg')})](${siteConfig.baseUrl}docs/started-installation.html)`, - }, - { - content: `Write executable business logic for legal contracts using the [Ergo](${siteConfig.baseUrl}docs/logic-ergo.html) domain-specific language.`, - title: `[![Ergo](${imgUrl('ergo-logo.svg')})](${siteConfig.baseUrl}docs/logic-ergo.html)`, - }, - { - content: `Model the data for your contracts in a platform neutral format with the [Concerto](${siteConfig.baseUrl}docs/model-concerto.html) schema language.`, - title: `[Concerto](${siteConfig.baseUrl}docs/model-concerto.html)`, - }, - { - content: `Find user-contributed open source templates in the [Template Library](https://templates.accordproject.org/).`, - title: `[Template Library](https://templates.accordproject.org/)`, - }, - { - content: `Use models from the [Model Repository](https://models.accordproject.org/) to ensure interoperability between your templates.`, - title: `[Model Repository](https://models.accordproject.org/)`, - }, - ]} - -); - -const FeatureCallout = props => ( - - {[ - { - content: "
Use open source tools from the Accord Project to digitize new or existing legal contracts, connect them to web services and deploy them to the cloud or a blockchain platform. The projects comprise all of the software necessary to author, edit and execute smart legal contracts in a standardized fashion.
", - title: 'Digitize Legal Contracts', - } - ]} -
-); - -const Templates = props => ( - - {[ - { - content: - "
Accord Project Templates are composed of three elements: the Text (the natural language), the Model (the data model), and the Logic (the executable business logic). When combined these three elements allow Accord Project templates to be both human-readable and machine-executable.
", - image: imgUrl("../docs/assets/020/template.png"), - imageAlt: - "The three elements of Accord Project templates: Text, Model, Logic. These elements form a triangle.", - imageAlign: "right", - title: "Templates" - } - ]} -
-); - - -const Grammar = props => ( - - {[ - { - content: - '
CiceroMark lets you capture the data in a natural language clause or contract text through template variables. And it supports rich text markdown to ensure that your contracts look professional.
', - image: imgUrl("../docs/assets/020/grammar.png"), - imageAlt: - "An example of an Accord Project template text. There are 3 paragraphs of a contract with variables in each paragraphs and markdown annotations for formatting", - imageAlign: "left", - title: 'Text' - } - ]} -
-); - -const Model = props => ( - - {[ - { - content: - '
Concerto lets you model the data used in your templates in a flexible and expressive way. Models can be written in a modular and portable way so they can be reused in a variety of contracts.
', - image: imgUrl("model-uml.png"), - imageAlt: "A diagram with an example of a Concerto model", - imageAlign: "right", - title: "Model" - } - ]} -
-); - -const Logic = props => ( - - {[ - { - content: - '
Ergo is a strongly-typed domain specific language designed to capture computational aspects of legal contracts and clauses. Use Ergo to create safe smart legal contract logic.
', - image: imgUrl("../docs/assets/020/ergo.png"), - imageAlt: "Example of an Ergo file", - imageAlign: "left", - title: "Logic" - } - ]} -
-); - -const TryOut = props => ( - - {[ - { - content: - '
You can author and test templates online in the Accord Project Template Studio. Search for existing templates, edit the contract text and execute the logic.
', - image: imgUrl("../docs/assets/020/studio.png"), - imageAlt: - "An example a template being edited. There is an option to edit the full contract or a single clause. There is also a search bar at the top center for users to search for specific templates.", - imageAlign: "right", - title: 'Author and Edit' - } - ]} -
-); - -const Showcase = props => { - if ((siteConfig.users || []).length === 0) { - return null; - } - const showcase = siteConfig.users - .filter(user => { - return user.pinned; - }) - .map((user, i) => { - return ( - - {user.caption} - - ); - }); - - return ( -
- -

{"Who's"} {"Using This?"}

-

This project is used by the following companies

-
{showcase}
- -
- ); -}; - -class Index extends React.Component { - render() { - let language = this.props.language || ''; - - return ( -
-
- - -
-
- - - - - - -
-
- ); - } -} - -module.exports = Index; diff --git a/website/pages/en/users.js b/website/pages/en/users.js deleted file mode 100644 index 2cd5bc3a..00000000 --- a/website/pages/en/users.js +++ /dev/null @@ -1,49 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -const CompLibrary = require('../../core/CompLibrary.js'); -const Container = CompLibrary.Container; - -const siteConfig = require(process.cwd() + '/siteConfig.js'); - -class Users extends React.Component { - render() { - if ((siteConfig.users || []).length === 0) { - return null; - } - const editUrl = 'https://github.com/accordproject/techdocs/edit/master/website/siteConfig.js'; - const showcase = siteConfig.users.map((user, i) => { - return ( - - {user.caption} - - ); - }); - - return ( -
- -
-
-

Who's Using This?

-

This project is used by the following companies

-
-
{showcase}
-

Are you using this project?

- - Add your company - -
-
-
- ); - } -} - -module.exports = Users; diff --git a/website/pages/en/versions.js b/website/pages/en/versions.js deleted file mode 100644 index eb4cfb0e..00000000 --- a/website/pages/en/versions.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -const CompLibrary = require('../../core/CompLibrary'); -const Container = CompLibrary.Container; -const GridBlock = CompLibrary.GridBlock; - -const CWD = process.cwd(); - -const siteConfig = require(CWD + '/siteConfig.js'); -const versions = require(CWD + '/versions.json'); -const ciceroGitHub = 'https://github.com/accordproject/cicero/releases'; - -const toGitHubRelease = (version) => { - const minorMatch = version.match(/^\d+\.\d+/); - const patchMatch = version.match(/^\d+\.\d+\.\d+/); - if (patchMatch) { - return ciceroGitHub + '/v' + patchMatch[0]; - } else if (minorMatch) { - // XXX Only points to the initial release notes - return ciceroGitHub + '/v' + minorMatch[0] + '.0'; - } else { - return ciceroGitHub; - } -} - -class Versions extends React.Component { - render() { - const latestVersion = versions[0]; - return ( -
- -
-
-

{siteConfig.title + ' Versions'}

-
-

New versions of Accord Project are released regularly on GitHub.

-

Current Version (Stable)

- - - - - - - - -
{latestVersion} - Documentation - - Release Notes -
-

- This is the documentation for the latest stable version. -

-

Pre-release Versions

- - - - - - - - -
unstable - Documentation - - Release Notes -
-

This is the available documentation for any pre-release version.

-

Past Versions

- - - {versions.map( - version => - version !== latestVersion && ( - - - - - - ) - )} - -
{version} - Documentation - - Release Notes -
-

- You can find older versions of Accord Project on GitHub. -

-
-
-
- ); - } -} - -module.exports = Versions; diff --git a/website/sidebars.json b/website/sidebars.json index 2ee7c3d7..cc0414c7 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -4,73 +4,73 @@ "Getting Started": ["started-installation", "started-hello", "started-resources"], "Template Guides": [ { - "type": "subcategory", + "type": "category", "label": "Markdown Text", - "ids": ["markup-preliminaries", "markup-commonmark", "markup-ciceromark", "markup-templatemark"] + "items": ["markup-preliminaries", "markup-commonmark", "markup-ciceromark", "markup-templatemark"] }, { - "type": "subcategory", + "type": "category", "label": "Concerto Model", - "ids": ["model-concerto", "model-namespaces", "model-classes", "model-enums", "model-properties", "model-relationships", "model-decorators", "model-api"] + "items": ["model-concerto", "model-namespaces", "model-classes", "model-enums", "model-properties", "model-relationships", "model-decorators", "model-api"] }, { - "type": "subcategory", + "type": "category", "label": "Ergo Logic", - "ids": ["logic-ergo", "logic-simple-expr", "logic-simple-type", "logic-complex-type", "logic-advanced-expr", "logic-stmt", "logic-decl", "logic-module"] + "items": ["logic-ergo", "logic-simple-expr", "logic-simple-type", "logic-complex-type", "logic-advanced-expr", "logic-stmt", "logic-decl", "logic-module"] } ], "Tutorials": [ { - "type": "subcategory", + "type": "category", "label": "Using Cicero", - "ids": ["tutorial-templates", "tutorial-library", "tutorial-create"] + "items": ["tutorial-templates", "tutorial-library", "tutorial-create"] }, { - "type": "subcategory", + "type": "category", "label": "Template Authoring", - "ids": ["tutorial-studio","tutorial-vscode"] + "items": ["tutorial-studio","tutorial-vscode"] }, { - "type": "subcategory", + "type": "category", "label": "Template Execution", - "ids": ["tutorial-nodejs", "tutorial-hyperledger"] + "items": ["tutorial-nodejs", "tutorial-hyperledger"] } ], "Reference Manual": [ { - "type": "subcategory", + "type": "category", "label": "General", - "ids": ["ref-glossary", "ref-errors"] + "items": ["ref-glossary", "ref-errors"] }, { - "type": "subcategory", + "type": "category", "label": "Template Migration", - "ids": ["ref-migrate-0.13-0.20","ref-migrate-0.20-0.21"] + "items": ["ref-migrate-0.13-0.20","ref-migrate-0.20-0.21"] }, { - "type": "subcategory", + "type": "category", "label": "Cicero Reference", - "ids": ["ref-cicero-cli", "ref-cicero-api", "ref-cicero-testing"] + "items": ["ref-cicero-cli", "ref-cicero-api", "ref-cicero-testing"] }, { - "type": "subcategory", + "type": "category", "label": "Markdown Transform Reference", - "ids": ["ref-markus-cli"] + "items": ["ref-markus-cli"] }, { - "type": "subcategory", + "type": "category", "label": "Concerto Reference", - "ids": ["ref-concerto-decorators", "ref-concerto-cli", "ref-concerto-api"] + "items": ["ref-concerto-decorators", "ref-concerto-cli", "ref-concerto-api"] }, { - "type": "subcategory", + "type": "category", "label": "Ergo Reference", - "ids": ["ref-ergo-stdlib", "ref-ergo-cli", "ref-ergo-repl", "ref-ergo-api", "ref-ergo-spec"] + "items": ["ref-ergo-stdlib", "ref-ergo-cli", "ref-ergo-repl", "ref-ergo-api", "ref-ergo-spec"] }, { - "type": "subcategory", + "type": "category", "label": "Web Components Reference", - "ids": ["ref-web-components-overview"] + "items": ["ref-web-components-overview"] } ] } diff --git a/website/siteConfig.js b/website/siteConfig.js deleted file mode 100644 index 3ecf0b02..00000000 --- a/website/siteConfig.js +++ /dev/null @@ -1,216 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -// See https://docusaurus.io/docs/site-config.html for all the possible -// site configuration options. - -/* List of projects/orgs using your project for the users page */ -const users = [ - { - caption: 'Clause Inc.', - // You will need to prepend the image path with your baseUrl - // if it is not '/', like: '/test-site/img/accord_logo.png'. - image: 'img/clause-logo-sm.png', - infoLink: 'http://clause.io', - pinned: true, - }, - { - caption: 'ContractPen', - // You will need to prepend the image path with your baseUrl - // if it is not '/', like: '/test-site/img/accord_logo.png'. - image: 'img/contractpen-logo-sm.png', - infoLink: 'https://contractpen.com', - pinned: true, - }, -]; - -const siteConfig = { - title: 'Accord Project' /* title for your website */, - taglineLead: 'Open Source', - tagline:'Documentation', - url: 'https://docs.accordproject.org' /* your website url */, - baseUrl: '/' /* base url for your project */, - // For github.io type URLs, you would set the url and baseUrl like: - // url: 'https://facebook.github.io', - // baseUrl: '/test-site/', - - // Used for publishing and more - projectName: 'techdocs', - organizationName: 'accordproject', - // For top-level user or org sites, the organization is still the same. - // e.g., for the https://JoelMarcey.github.io site, it would be set like... - // organizationName: 'JoelMarcey' - - // For no header links in the top nav bar -> headerLinks: [], - headerLinks: [ - { doc: 'accordproject', label: 'Documentation' }, - { href: "https://studio.accordproject.org", label: "Try Online!"}, - { href: "https://github.com/accordproject", label: "GitHub" }, - { search: true }, - ], - - // If you have users set above, you add it here: - users, - - /* path to images for header/footer */ - headerIcon: 'img/A-MARK-ACCORDPROJECT-ONELINE-white.svg', - footerIcon: 'img/accord_icon_white.png', - favicon: 'img/favicon.png', - - /* colors for website */ - colors: { - primaryColor: '#1b2540', - secondaryColor: '#19C6C6', - }, - - /* custom fonts for website */ - /*fonts: { - myFont: [ - "Times New Roman", - "Serif" - ], - myOtherFont: [ - "-apple-system", - "system-ui" - ] - },*/ - - // This copyright info is used in /core/Footer.js and blog rss/atom feeds. - copyright: - 'Copyright © 2018-' + - new Date().getFullYear() + - ' Accord Project, LLC.', - - highlight: { - theme: 'ir-black', - hljs: function(hljs) { - // highlighting for Ergo logic - hljs.registerLanguage('ergo', function(hljs) { - var ERGO_KEYWORDS = { - keyword: 'namespace import define function transaction concept event asset ' + - 'participant enum extends contract over clause throws emits state call ' + - 'enforce if then else let foreach return in where throw '+ - 'constant match set emit with or and ', - literal: 'true false unit none', - built_in: 'flatten now dateTimeIsSame dateTimeIsBefore dateTimeIsAfter ' + - 'dateTimeDiffDays dateTimeDiffSeconds min max average ' - }; - - var TYPE = { - className: 'type', - begin: '\\b[A-Z]([\\w\']*|{)', - relevance: 0 - }; - var BLOCK_COMMENT = hljs.COMMENT( - '/\\*', - '\\*/', - { - contains: ['self'] - } - ); - var SUBST = { - className: 'subst', - begin: /\\\(/, end: '\\)', - keywords: ERGO_KEYWORDS, - contains: [] // assigned later - }; - var NUMBERS = { - className: 'number', - begin: '\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b', - relevance: 0 - }; - var TAGS = { - className: 'template-variable', - begin: '\{\{\%|\%\}\}', - relevance: 0 - }; - var QUOTE_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { - contains: [SUBST, hljs.BACKSLASH_ESCAPE] - }); - SUBST.contains = [NUMBERS]; - - return { - keywords: ERGO_KEYWORDS, - contains: [ - QUOTE_STRING_MODE, - hljs.C_LINE_COMMENT_MODE, - BLOCK_COMMENT, - TYPE, - NUMBERS, - TAGS - ] - }; - }); - // highlighting for template grammar - hljs.registerLanguage('tem', function(hljs) { - var BUILT_INS = {'keyword': 'foreach with if else ulist olist kind as clause'}; - var QUOTE_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { - contains: [hljs.BACKSLASH_ESCAPE] - }); - var IDENT = { - className: 'template-tag', - begin: '[a-zA-Z\.-]+', - keywords: BUILT_INS - }; - return { - aliases: ['tem.md'], - case_insensitive: true, - subLanguage: 'markdown', - contains: [ - hljs.COMMENT('{{!(--)?', '(--)?}}'), - QUOTE_STRING_MODE, - { - begin: /\{\{\%/, end: /\%\}\}/, - subLanguage: 'ergo', - relevance: 0 - }, - { - className: 'template-variable', - begin: /\{\{[#\/]?/, end: /\}\}/, - contains: [IDENT,QUOTE_STRING_MODE] - } - ] - }; - }); - } - }, - - algolia: { - apiKey: '1679802ddfc315329d6b5f4616b30e51', - indexName: 'accordproject_api', - algoliaOptions: {} // Optional, if provided by Algolia - }, - - // Add custom scripts here that would be placed in