diff --git a/package-lock.json b/package-lock.json index 2e804de..f697906 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,1291 @@ { "name": "js-snippets", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "js-snippets", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.3.4", + "@babel/plugin-transform-runtime": "^7.3.4", + "@babel/preset-env": "^7.3.4" + }, + "devDependencies": {} + }, + "node_modules/@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dependencies": { + "@babel/highlight": "^7.0.0" + } + }, + "node_modules/@babel/core": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz", + "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.3.4", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.3.4", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.3.4", + "@babel/types": "^7.3.4", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz", + "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==", + "dependencies": { + "@babel/types": "^7.3.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-call-delegate": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", + "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", + "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", + "dependencies": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dependencies": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", + "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.2.2", + "@babel/types": "^7.2.2", + "lodash": "^4.17.10" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" + }, + "node_modules/@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "dependencies": { + "lodash": "^4.17.10" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.3.4.tgz", + "integrity": "sha512-pvObL9WVf2ADs+ePg0jrqlhHoxRXlOa+SHRHzAXIz2xkYuOHfGl+fKxPMaS4Fq+uje8JQPobnertBBvyrWnQ1A==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.3.4", + "@babel/types": "^7.3.4" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dependencies": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dependencies": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", + "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==", + "dependencies": { + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.3.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dependencies": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz", + "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.4.tgz", + "integrity": "sha512-j7VQmbbkA+qrzNqbKHrBsW3ddFnOeva6wzSe/zB7T+xaxGc+RCpwo44wCmRixAIGRoIpmVgvzFzNJqQcO3/9RA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", + "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.2.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex/node_modules/regexpu-core": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", + "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex/node_modules/regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==" + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex/node_modules/regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.3.4.tgz", + "integrity": "sha512-Y7nCzv2fw/jEZ9f678MuKdMo99MFDJMT/PvD9LisrR5JDFcJH6vYeH6RnjVt3p5tceyGRvTtEN0VOlU+rgHZjA==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.3.4.tgz", + "integrity": "sha512-blRr2O8IOZLAOJklXLV4WhcEzpYafYQKSGT3+R26lWG41u/FODJuBggehtOwilVAcFu393v3OFj+HmaE6tVjhA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.11" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.4.tgz", + "integrity": "sha512-J9fAvCFBkXEvBimgYxCjvaVDzL6thk0j0dBvCeZmIUDBwyt+nv6HfbImsSrWsYXfDNDivyANgJlFXDUWRTZBuA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.3.4", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", + "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", + "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex/node_modules/regexpu-core": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", + "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex/node_modules/regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==" + }, + "node_modules/@babel/plugin-transform-dotall-regex/node_modules/regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", + "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", + "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", + "dependencies": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.3.4.tgz", + "integrity": "sha512-VZ4+jlGOF36S7TjKs8g4ojp4MEI+ebCQZdswWb/T9I4X84j8OtFAyjXjt/M16iIm5RIZn0UMQgg/VgIwo/87vw==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz", + "integrity": "sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw==", + "dependencies": { + "regexp-tree": "^0.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", + "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.3.3.tgz", + "integrity": "sha512-IrIP25VvXWu/VlBWTpsjGptpomtIkYrN/3aDp4UKm7xK6UxZY88kcJ1UwETbzHAlwN21MnNfwlar0u8y3KpiXw==", + "dependencies": { + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.3.4.tgz", + "integrity": "sha512-hvJg8EReQvXT6G9H2MvNPXkv9zK36Vxa1+csAVTpE1J3j0zlHplw76uudEbJxgvqZzAq9Yh45FLD4pk5mKRFQA==", + "dependencies": { + "regenerator-transform": "^0.13.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-transform": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.4.tgz", + "integrity": "sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A==", + "dependencies": { + "private": "^0.1.6" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.3.4.tgz", + "integrity": "sha512-PaoARuztAdd5MgeVjAxnIDAIUet5KpogqaefQvPOmPYCxYoaPhautxDh3aO8a4xHsKgT/b9gSxR0BKK1MIewPA==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", + "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", + "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex/node_modules/regexpu-core": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", + "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex/node_modules/regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==" + }, + "node_modules/@babel/plugin-transform-unicode-regex/node_modules/regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", + "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/browserslist": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.2.tgz", + "integrity": "sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg==", + "dependencies": { + "caniuse-lite": "^1.0.30000939", + "electron-to-chromium": "^1.3.113", + "node-releases": "^1.1.8" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + } + }, + "node_modules/@babel/traverse": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz", + "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.3.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.3.4", + "@babel/types": "^7.3.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/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==" + }, + "node_modules/@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/types/node_modules/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=", + "engines": { + "node": ">=4" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30000947", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000947.tgz", + "integrity": "sha512-ubgBUfufe5Oi3W1+EHyh2C3lfBIEcZ6bTuvl5wNOpIuRB978GF/Z+pQ7pGGUpeYRB0P+8C7i/3lt6xkeu2hwnA==" + }, + "node_modules/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.116", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.116.tgz", + "integrity": "sha512-NKwKAXzur5vFCZYBHpdWjTMO8QptNLNP80nItkSIgUOapPAo9Uia+RvkCaZJtO7fhQaVElSvBPWEc2ku6cKsPA==" + }, + "node_modules/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=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "node_modules/json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "node_modules/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==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "node_modules/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==" + }, + "node_modules/node-releases": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.10.tgz", + "integrity": "sha512-KbUPCpfoBvb3oBkej9+nrU0/7xPlVhmhhUJ1PZqwIP5/1dJkRWKWD3OONjo6M2J7tSCBtDCumLwwqeI+DWWaLQ==", + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/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==" + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.2.tgz", + "integrity": "sha512-SbA/iNrBUf6Pv2zU8Ekv1Qbhv92yxL4hiDa2siuxs4KKn4oOoMDHXjAf7+Nz9qinUQ46B1LcWEi/PhJfPWpZWQ==", + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.5.tgz", + "integrity": "sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ==", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/resolve": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/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==" + }, + "node_modules/semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/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==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "engines": { + "node": ">=4" + } + } + }, "dependencies": { "@babel/code-frame": { "version": "7.0.0", diff --git a/src/exercises/fibonacci.js b/src/exercises/fibonacci.js index dc3319f..e82c0ca 100644 --- a/src/exercises/fibonacci.js +++ b/src/exercises/fibonacci.js @@ -2,3 +2,20 @@ // Berechne die Fibonacci Folge für n Elemente, beginnend bei 0. // Gib alle berechneten Elemente aus. + +{ + let arr1 = [0, 1] + + let arr2 = arr1 + for (let i = 1; i < 11; i++) { + arr2.push(arr1[i] + arr1[i - 1]) + } + console.log(arr2) +} +/* +[ + 0, 1, 1, 2, 3, + 5, 8, 13, 21, 34, + 55, 89 +] +*/ diff --git a/src/exercises/flow-control_Meine.js b/src/exercises/flow-control_Meine.js new file mode 100644 index 0000000..1c4a253 --- /dev/null +++ b/src/exercises/flow-control_Meine.js @@ -0,0 +1,458 @@ +/* +### 1 +Schreibe ein Programm, welches eine Person altersgerecht begrüsst. +Die Begrüssung soll auf der Console ausgegeben werden. + +- Kinder, d.h. bis und mit 10 Jahren: Hoi +- Jugendliche, d.h. ab 11 Jahren bis und mit 18 Jahren: Hallo +- Erwachsene, d.h. ab 19 Jahren bis und mit 100 Jahren: Grüezi +- Alle anderen, d.h. ab 101 Jahren: Grüss Gott + +Schreibe zwei Varianten, +- eine Variante mit "else if", +- eine Variante ohne Verwendung von "else if" + +Tip: && + */ +// let alter = 10 +// let name = 'hans' +// if(alter<=10){ +// console.log("Hoi "+name) +// }else if(alter>=11 && alter<=18){ +// console.log("Hallo "+name) +// }else if(alter>=19 && alter<=100){ +// console.log("Grüezi "+name) +// }else if(alter>=101){ +// console.log("Grüss Gott "+name) +// } +//----------------------------------------------------------------------------------- +// let alter = 10 +// let name = 'hans' +// +// x = (alter >= 101) ? 'Grüess Gott '+name : (alter >= 19) ? 'Grüezi '+name : (alter >= 11) ? 'Hallo '+name : 'Hoi '+name//(alter < 11) ? 'Hallo '+name : 'nicht geboren' +// +// console.log(x) +//---------------------------------------------------------------------------- +/* +### 2 +Schreibe ein Programm, welches den Eintrittspreis abhängig vom Alter bestimmt. +Es gelten folgende Regeln: +- Wer jünger als 5 ist, bekommt Gratiseintritt +- Ab 5 bis 15 Jahren zahlt man 5 Franken +- Ab 16 zahlt man denn Vollpreis von 15 Franken +- Senioren ab 60 bezahlen 10 Franken + +Gib den Betrag in Franken auf die Console aus. + +Schreibe zwei Varianten, +- eine Variante mit "else if", +- eine Variante ohne Verwendung von "else if" + +Tip: && + */ +// let alter = 60 +// +// if(alter<5){ +// console.log("Gratis Eintritt") +// }else if (alter >=5 && alter <=15){ +// console.log("Eintritt ist 5 Franken") +// }else if(alter >= 16 && alter <60){ +// console.log("Eintritt ist 15.-") +// }else if(alter >= 60){ +// console.log("10 Franken für Senioren") +// } + + + + +//---------------------------------------------------------------------------------------------------- +/*### 3 +Schreibe ein Programm, welches entscheidet, wer in den Club darf und wer nicht +- Männer dürfen ab 20 rein, Frauen bereits ab 18. +Gib die Entscheidung auf der Console aus. + +Schreibe zwei Varianten, +- eine Variante mit switch case +- eine Variante mit && und || (ohne ganz ausgeschriebene if) +*/ +// let ausgabe = '' +// function tuerSteher(alter, geschlecht){ +// if((alter>=20&&geschlecht=='m')||(alter>=18&&geschlecht=='f')){ +// ausgabe='Dürfen rein' +// }else{ +// ausgabe = 'Dürfen nicht rein' +// } +// } +// +// tuerSteher(17,'f') +// console.log(ausgabe) +//----------------------------------------------------------------------------------- + +// let alter = 20 +// let geschlecht = 'f' + +// switch (alter, geschlecht){ +// case alter>=18 && geschlecht='f': +// console.log("die Frau darf rein") +// break; +// case alter>=20 && geschlecht='m': +// console.log("Männer über 20 dürfen rein") +// } + +// Logische Verknüpfungen +// && AND +{ + let age = 18 + let sex = 'f' + let canEnter = (age >= 18 && sex === 'f') || (age >= 20 && sex === 'm') + //true + + switch (canEnter) { + case true: + console.log("Eintritt ist gut") + break; + case false: + console.log("geht nicht") + } +} +// var alter = 22 +// var geschlecht = 'm' +// switch (alter, geschlecht) { +// case ((alter>=20 && geschlecht==='m') ): +// console.log('Männlich ab 20 darf in den Club'); +// break; +// case ((alter>=18 && geschlecht==='f')): +// console.log("Frauen ab 18Jahren dürfen in den Club") +// break; +// default: +// console.log('Darf nicht in Cub'); +// //break; +// } + + +//------------------------------------------------------------------------------------------- +//-------------------------------------------------------------------------------------------- +/* +### 0 +Schreibe ein Programm, welches jedes Zeichen eines Strings einzeln ausgibt, Komma getrennt. +z.B. aus `"Pinguin"` wird `"P,i,n,g,u,i,n"` + +Schreibe zwei Varianten: +- eine ohne Schlaufen zu verwenden +- eine mit einer Schlaufe +*/ +// let x = 'Pinguin'; +// console.log(x.split('')); +// //Array(7) [ "P", "i", "n", "g", "u", "i", "n" ] + +// // +// const x = 'Pinguin'; +// let str = ''; +// for (let i = 0; i < x.length - 1; i++) { +// +// str = str + x[i] + ','; +// +// //console.log(str); +// } +// str = str + x.substr(-1); //oder str = str+x.substr(x.length-1); +// console.log(str); +// //P,i,n,g,u,i,n + + + +//------------------------------------------------------------------------------------ +/* +### 1 +Schreibe ein Programm, das alle Zahlen eines Arrays summiert. + +z.B. aus `[1,2,3]` wird `6` + +Versuche drei Varianten zu schreiben, welche jeweils unterschiedliche Schlaufentypen verwenden. +*/ + +// let x = [1, 2, 3]; +// let y = 0; +// +// for (let i = 0; i < x.length; i++) { +// y = y + x[i]; +// } +// +// console.log(y); +// //6 + + +//------------------------------------------------------------------------------------ +/* +### 2 +Schreibe ein Programm, welches einen Array von Zahlen verarbeitet und in einen Array mit Booleans umwandelt. +Das Programm ermittelt für jede Zahl ob diese gerade ist oder nicht. + +z.B. aus `[1,2,3]` wird `[false, true, false]` + */ + +// let arr = [1,2,3,4] +// let arr2 = [] +// +// for(let i = 0; i=0){ +// console.log(arr1[i]) +// } +// } +//------------------------------------------------------------------------------------------ +/*#### 6.3 +Berechne die Quersumme aller Zahlen. + */ + +// let arr1 = [1,2,3,4,5] +// +// let x = 0; +// for (let i = 0; i 0) { +// let einer = rest % 10; +// sum = sum + einer; +// rest = (rest - einer)/10; +// } +// +// console.log(sum) + +//--------------------------------------------------------------------------------------------- +/* +#### 6.4 +Berechne den Durchschnitt (arithmetisches Mittel) aller Zahlen. + */ +// +// let arr1 = [1,2,3,4,5] +// let summerArr = 0; +// for (let i = 0; i= 0; i--) { +// +// str = str + x[i]; +// +// //console.log(str); +// } +// +// console.log(str); +// //niugniP + +//---------------------------------------------------------------------------------- +/* +#### 7.4 +Gib die Wörter der Zeichenkette rückwärts aus. \ +z.B. aus "Hallo du, wie geht es dir?" wird "dir? es geht wie du, Hallo" +*/ +// const x = 'Hallo du, wie geht es dir?'; +// let str = ''; +// let y = x.split(' '); +// +// console.log(y); +// +// str = str + y[y.length - 1] + ' '; +// for (let i = y.length - 2; i >= 1; i--) { +// +// str = str + y[i] + ' '; +// +// //console.log(str); +// } +// +// str = str + y[0]; +// +// console.log(str); + +//Array(6) [ "Hallo", "du,", "wie", "geht", "es", "dir?" ] +//dir? es geht wie du, Hallo diff --git a/src/exercises/functional-imperative_Meine.js b/src/exercises/functional-imperative_Meine.js new file mode 100644 index 0000000..e69de29 diff --git a/src/exercises/functions/basic_Meine.js b/src/exercises/functions/basic_Meine.js new file mode 100644 index 0000000..d59e37f --- /dev/null +++ b/src/exercises/functions/basic_Meine.js @@ -0,0 +1,68 @@ +/* +### 1.1 +Schreibe eine Funktion die einen Namen entgegen +nimmt und "Hallo \" zurück gibt. +*/ +{ + function bekommeNameGebeNameZurueck(name) { + return "Hallo " + '\\<' + name + '\\>'; + } + + console.log(bekommeNameGebeNameZurueck("Hans")) +} +//--------------------------------------------------------------------------------------- +/* +### 1.2 +Verändere die Funktion so, +dass wenn kein Name angegeben wird, +als default Name "Welt" genommen wird. +*/ +{ + function bekommeNameGebeNameZurueck(name) { + + if (name == undefined) { + name = 'Welt' + } + return "Hallo " + '\\<' + name + '\\>'; + } + + console.log(bekommeNameGebeNameZurueck('Erika')) +} +//--------------------------------------------------------------------------------------- +//--------------------------------------------------------------------------------------- +/* +### 1.3 +Verändere die Funktion so, +dass man soviele Namen wie man will mitgeben kann. +Die Ausgabe ist dann "Hallo \, \, ...". +Als default Name soll immer noch Welt gelten. +Versuche zwei Lösungsvarianten zu finden (Hint: Rest-Parameter) +*/ +{ + + function bekommeNameGebeNameZurueck(...name) { + + + let ausgabe = ''; + if(name.length==0){ + ausgabe += "Welt"; + } + + + for (let i = 0; i < name.length; i++) { + let x = ''; + if(name[i]===undefined){ + x='Welt'; + }else{ + x = '\\<' + name[i] + '\\>' + ',' + } + ausgabe = ausgabe + x + //console.log(ausgabe) + } + + return "Hallo " + ausgabe; + } + + console.log(bekommeNameGebeNameZurueck('erika',undefined,'hans','ueli')) + +} \ No newline at end of file diff --git a/src/exercises/functions/closures_Meine.js b/src/exercises/functions/closures_Meine.js new file mode 100644 index 0000000..718a7e0 --- /dev/null +++ b/src/exercises/functions/closures_Meine.js @@ -0,0 +1,70 @@ + +// 1 +// a. Was gibt folgender Code aus? + +for (var i = 0; i < 4; i++) { + setTimeout(() => { + console.log(i) + }, 2000) //wartet mit ausführung des callback, mit 2 sekunden +} +//ausgabe ist 4x eine vier raus +// 4 +// 4 +// 4 +// 4 +// nicht in der zeit + + +//erstes passiert das: +//var i +//for (i = 0; i < 4; i++) { +// setTimeout(() => { +// console.log(i) +// }, 2000)//wartet mit ausführung des callback, mit 2 sekunden +//} + +// + + +// b. Wie kann ich das Programm ändern, damit es tut was es tun sollte. +for (let i = 0; i < 4; i++) { + setTimeout(() => { + console.log(i) + }, 2000) +} + +//var mit let ersetzen + + + + +//---------------------------------------------------------------------------- +// 1 +// a. Was gibt folgender Code aus? +// +// for (var i = 0; i < 4; i++) { +// setTimeout(() => { +// console.log(i) +// }, 2000) +// } +// 4 +// 4 +// 4 +// 4 +// nicht in der zeit + + +// b. Wie kann ich das Programm ändern, damit es tut was es tun sollte. + +{ + setTimeout(() => { + for (var i = 0; i < 4; i++) { + console.log(i) + } + }, 2000) +} +// 0 +// 1 +// 2 +// 3 +// aber gibt alles aufeinmal raus, anstatt wahrscheinlich all zwei sekunden diff --git a/src/exercises/functions/fn-objects-callbacks_Meine.js b/src/exercises/functions/fn-objects-callbacks_Meine.js new file mode 100644 index 0000000..7e38e11 --- /dev/null +++ b/src/exercises/functions/fn-objects-callbacks_Meine.js @@ -0,0 +1,163 @@ +// 1 +// gegeben +// function add(a, b){ +// return a + b +// } +// +// Erstelle eine Funktion namens aPlusb welche einen Parameter p entgegen nimmt, +// und intern immer add mit a=20 aufruft, b soll mit p belegt werden. +// Gib das Ergebnis der Berechnung zurück. +// Versuche zwei Lösungs-Varianten zu finden (Hint: bind). + +// Lösung ohne bind +{ + function add(a, b) { + return a + b; + } + + function aPlusb1(p) { + let a = 20; + let b = p; + return a + b; + } + function aPlusb2(p) { + return add(20, p); + } + + console.log(aPlusb1(2)); // 22 + console.log(aPlusb2(2)); // 22 + +} + +{ + //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*--* + //Lösung mit bind + + function add(a, b) { + return a + b; + //return a.bind(null,b) + } + + function aPlusb(p) { + //return add.bind(20); + //return add.bind(20,p) + return add(20, p); + } + + console.log(aPlusb(2)); // 22 + //console.log(add.bind(aPlusb(2))) // bound add + //console.log(aPlusb().bind(2)) //aplusb is not a function + // newFn = existingFn.bind(desiredThis) + console.log() + //console.log(aPlusb()) + + // Variante 1 +// let addTo10 = add.bind(null, 10) +// addTo10(20) +} + +//---------------------------------------------------------------------- +{ + function aPlusb(p) { + } + + add: function add(a, b){ + return a + b + } + + console.log(aPlusb(2)) // undefinded +} + + + +/* +var aPlusb = function (a, b) { + return a + b; +} + +var partial = aPlusb.bind(null, 10) +partial(6);//output : 16 + */ +{ + var aPlusb = function (a, b) { + return 20 + b; + } + + var partial = aPlusb.bind(null, 0) + console.log(partial(2)); +} + +{ + let person = { + name: "John Smith", + age: 42, + sayHello: function () { + console.log("Hello, " + this.name + ". You are " + this.age + " years old."); + } + }; + console.log(person.sayHello()); // undefined + console.log(person.sayHello.bind(person)) //bound sayHello +} + +{ + let c1 = { + x: 5, + y: 10 + } + + let c2 = { + x: 20, + y: 30 + } + + function printCoordinates(){ + console.log(this.x + ' ' + this.y); + return this.x + ' ' + this.y; + } + + let c1_func = printCoordinates.bind(c1); //keine () + let c2_func = printCoordinates.bind(c2); + + console.log(c1_func); // bound printCoordinates weil hat keine () + console.log(c2_func()); + +} + + +// 2 +// Die gegebene Funktion add aus Aufgabe 1 soll geändert werden. +// Neu möchten wir, dass immer alle Argumente geloggt werden (bevor die Berechnung gemacht wird). +// Der Aufrufer kann selbst entscheiden was für einen Logger er verwenden möchte. +// z.B. console.log oder console.warn wären mögliche Logger. +{ + function add(a, b) { + return a + b; + } + + function add2(a, b, logger) { + console.log(a + b); + console.warn(a + b) + logger2(); + return a + b; + } + + function logger2(x) { + if (x === 0) { + console.log(); + } else if (x === 1) { + console.warn(); + } + } + + + function ablogger(a,b,logger) { + if (logger === 'log') { + console.log(a+b); + } else if (logger === 'warn') { + console.warn(a+b); + } + } + ablogger(1,2,'log') + + +} \ No newline at end of file diff --git a/src/exercises/functions/functional_Meine.js b/src/exercises/functions/functional_Meine.js new file mode 100644 index 0000000..e5ac959 --- /dev/null +++ b/src/exercises/functions/functional_Meine.js @@ -0,0 +1,174 @@ +/* +1 +Schreibe eine Funktion die alle Zahlen eines Arrays summiert. \ +z.B. `sum([1,2,3]) => 6` \ +Schreibe eine funktionale und eine imperative Variante.\ +Schreibe die Signatur als Deklaration. + */ +{//imperativ + //sumFunction::(arr)=>number + //sumFunction(in: arr, (i => sum+i)):sum + //sumFunction(in: arr, (i,sum => sum+i)):sum + function sumFunction(arr) { + let hilfszahl = 0; + for (let i = 0; i < arr.length; i++) { + hilfszahl = hilfszahl + arr[i]; + } + return hilfszahl; + } + + let arr1 = [1, 2, 3] + console.log(sumFunction(arr1)) //6 + +} + +{//funktional lambda, reduse,filter, map, forOf, ForEach + + //Signatur als Dekleration: + // reduce(Array,(Summe,i_Array_currentvalue)=>Summe+i_Array_currentvalue):Summe + // reduce(Array,(sum,i)=>sum+i):sum + + function myfunction(total, arr) { + return total + arr + } + + let arr2 = [1, 2, 3] + console.log(arr2.reduce(myfunction)) //6 + + //oder so + console.log(arr2.reduce((sum, i) => sum + i)) //6 +} + +//-------------------------------------------------------------------------------------------------- +/* 2 +Schreibe eine Funktion die einen Array von Zahlen entgegennimmt und einen Array mit Booleans zurückgibt. \ +Die Funktion ermittelt für jede Zahl ob diese gerade ist oder nicht. \ +z.B. `even([1,2,3]) => [false, true, false]` +*/ + +//imperative +{ + //myfunction::(arr)=>i,Boolean=>arrKopi + //myfunction::(arr)=>arr + let arr1 = [1, 2, 3, 4]; + + function myfunction(arr) { + let result = []; + for (let i = 0; i < arr.length; i++) { + if (arr[i] % 2 === 0) { + result.push(true); + } else { + result.push(false); + } + } + return result; + } + + console.log(myfunction(arr1)); //[false, true, false, true] +} + + +//funktional +{ + //Signatur als Dekleration: + // map(Array,(i=>A)): Array + //`map(in: Array, mapper: (value: A) => B): Array` + + let arr1 = [1, 2, 3, 4]; + + function myfunction(arr) { + return arr.map((i, arr) => i % 2 === 0) + } + + console.log(myfunction(arr1)); //[false, true, false, true] +} +//funktional +{ + // let arr1 = [1,2,3,4]; + // + // function myfunction(arr){ + // let result = arr.filter(i => i%2===0); + // return result; + // } + // + // console.log(myfunction(arr1)); //[2,4] +} + + +//--------------------------------------------------------------------------------------------------- +/* +3.1 +Implementiere eine Funktion `filter(in: Array, predicate: (value: A) => Boolean): Array`. \ +Teste ob diese funktioniert :). + */ +{ + //imperativ + //filter(in: Array, predicate: (value: A) => Boolean): Array` + function filter(arr){ + for(let i = 0; i, predicate: (value: A) => Boolean): Array` + let arr1 = [1,8,3,true,8,2]; + function myfunction(arr){ + return arr.filter(i => i === true)//8 + } + //arr1.filter(function(arr[1]){return true === 1}); + //arr1.filter(Boolean); + console.log(myfunction(arr1));//true + //console.log(arr1); + +} + +{ + let containers = [2, 0, false, "", '12', true]; + + function myInternet(arr) { + let result = containers.filter(function (v) { + return "boolean" === typeof v + }); + return result; + } + + console.log(myInternet(containers)); //[false, true] + +} + +//---------------------------------------------------------------------------------------------------- +/* +3.2 +Implementiere eine Funktion `map(in: Array, mapper: (value: A) => B): Array`. \ +Teste ob diese funktioniert :). // + */ +{ + //imperative + let arr1 = [1,2,3] + function map(arr) { + //let x = 'x' + let arr2neu= []; + for(let i = 0;i= 0; i--) { + console.log(arr1[i]); // 3,2,1 + } + +} + +{ + let arr1 = [1, 2, 3, 4]; + console.log(arr1.reverse()); // [4,3,2,1] +} + +//------------------------------------------------------------- +// 2 +// Schreibe eine Funktion forFun, welche +// - ein Objekt welches Symbol.iterator implementiert +// - und eine callback Funktion +// entgegennimmt. +// +// Iteriere über das iterable Objekt und rufe den Callback für jeden Wert auf, +// solange bis alle Elemente iteriert sind. +{ + /* + for --of(Schlaufe) --> iterator methode --> symbol.iterator + */ + + let str = "Hello"; + let arr = [1, 2, 3]; + let num = 5; + let obj = {name: "Hans"}; + + console.log("For String - " + typeof str[Symbol.iterator]); // For String - function + console.log("For Array - " + typeof arr[Symbol.iterator]); // for Array - function + console.log("For num - " + typeof num[Symbol.iterator]); //for num - undefinded + console.log("For obj - " + typeof obj[Symbol.iterator]); // For obj - undefinded + + //--> forOf Schlaufe geht also scheinbar nicht mit obj und num + + const a = {}; + console.log(a) // {} + // for(let item of a){ // a ist not iterable + // console.log(item) + // } + // let b = {...a} // undefinded + // console.log(b + " kk") + + const c = { + [Symbol.iterator]() { + let value = 1 + return { + next() { + return { + value, + done: value++ > 3 + } + } + } + } + } + + for (let item of c) { + console.log(item) // 1,2,3 + } + + const d = [...c] + console.log(d) // [1,2,3] +} +//----------------------------------------------------------------------------------- +//callback = wie threads, wenn eine funktion ganz lange dauert, wird eine andere ausgeführt (ev mit promises) +//funktion an eine andere funktion übergeben (wenn eine funktion auf einen callback wartet....) +// zb funktion übersetzt was, resumetext... +{ + const obj2 = { + [Symbol.iterator]() { + let value = 1 + return { + next() { + return { + value, + done: value++ > 3 + } + } + } + } + } + + function forFun(obj2, funktionalsErsteStarteAberLangeBrauch) { + + } + + //*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* +} \ No newline at end of file diff --git a/src/exercises/modules/Mensch.mjs b/src/exercises/modules/Mensch.mjs new file mode 100644 index 0000000..130fe37 --- /dev/null +++ b/src/exercises/modules/Mensch.mjs @@ -0,0 +1,51 @@ +export class Mensch{ + constructor(vorname, nachname) { + this.vorname = vorname; + this.nachname = nachname; + } + + sagHallo(){ + console.log("Hallo, mein name ist " + this.vorname); + console.log(`Hallo, mein Name ist ${this.vorname}`); + } + //get Methode + get vollerName(){ + return `${this.vorname} ${this.nachname}`; + } + //setter Methode + set vollerName(name){ + let werte = name.split(" ", 2); + this.vorname = werte[0]; + this.nachname = werte[1]; + } + + static zeitBisGeburt(){ + return "5 Monate"; + } +} + +// console.log(Mensch.zeitBisGeburt());//geht nur solange kein objekt gemacht wurde +// +// let mensch1 = new Mensch("Max","Mustermann"); +// mensch1.sagHallo(); +// +// mensch1.vollerName = "Martin Mustermann"; +// console.log(mensch1.vollerName) + + +class Held extends Mensch{ + + constructor(vorname, nachname, heroname) { + super(vorname, nachname); + this.heroname = heroname; + } + + sagHallo() { + console.log(`Hallo, mein Name ist ${this.vorname} ${this.nachname} + und ich bin ${this.heroname}`); + } +} + +let held1 = new Held("Peter","Parker","Spiderman"); +console.log(held1.sagHallo()); +console.log(held1.vollerName); diff --git a/src/exercises/modules/admin.md b/src/exercises/modules/admin.md index c9f0504..8bda905 100644 --- a/src/exercises/modules/admin.md +++ b/src/exercises/modules/admin.md @@ -24,4 +24,4 @@ Erläuterung zur `findAll`-Signatur: Die Methode `findAll` erwartet als Argument welche als Argument ein item entgegennimmt und ein Boolean retourniert. Eine sogenannte Prädikatfunktion oder einfach nur Prädikat (predicate auf engl.). ### 2 -Schreibe ein Programm client.js, welches einen `Store` verwendet, um Personen darin zu speichern, löschen und suchen. +Schreibe ein Programm client.mjs, welches einen `Store` verwendet, um Personen darin zu speichern, löschen und suchen. diff --git a/src/exercises/modules/client.mjs b/src/exercises/modules/client.mjs new file mode 100644 index 0000000..5316633 --- /dev/null +++ b/src/exercises/modules/client.mjs @@ -0,0 +1,54 @@ +//'use strict'; + +//import {Person,name,vorname} from "../modules/admin/person"; +//import {Mensch} from "./mensch.js" +import {Mensch} from "./mensch.mjs" +//import {person} from "./person"; +//import {Person} from "./person.js"; + + +//only pro-edition suport quokka .... +/* +"C:\Program Files\nodejs\node.exe" "D:\IBW\Java Intellij 2021\Intellij-Projekte 2021\JavaScriptSnippet24042022\src\exercises\modules\client.mjs" +node:internal/errors:464 + ErrorCaptureStackTrace(err); + + + */ + + +console.log(Mensch.zeitBisGeburt()); + +let mensch33 = new Mensch("22","d"); +console.log(mensch33.vollerName + " achsooo"); +console.log("heeelllooo"); +console.log(mensch33.vorname); + +let mensch44 = new Mensch("","ss"); +console.log(mensch44.vollerName+"haölllloooo") + +// console.log("Hallo"); +// +// let p1 = new Person('Meier', 'Hans'); +// console.log(p1.vorname); +// +// console.log(p1.name) +// +// let store1 = new Store(); + +//export Person p2 = new Person("Muster","Doris"); + + +// Objekterzeugung über die Objekt-literal-Schreibweise +const person33 = { + firstname: "hsnii", + lastname: "Mustermann", + talk: function (){ + console.log("hallo"); + } +} + +console.log(person33.firstname); +//console.log(person33[lastname]);//gemäss buch, bibt aber Fehler raus +console.log(person33["lastname"]); +console.log(person33.talk()); \ No newline at end of file diff --git a/src/exercises/modules/index.html b/src/exercises/modules/index.html new file mode 100644 index 0000000..8a6c339 --- /dev/null +++ b/src/exercises/modules/index.html @@ -0,0 +1,13 @@ + + + + + Title + + + + + + + + \ No newline at end of file diff --git a/src/exercises/modules/person.js b/src/exercises/modules/person.js new file mode 100644 index 0000000..11cbb11 --- /dev/null +++ b/src/exercises/modules/person.js @@ -0,0 +1,31 @@ +import {client} from "../solutions/modules/admin/Client"; +'use strict'; + + + + + + +export class person{ + + // name; + // vorname; + + constructor(name, vorname) { + this._name = name; + this._vorname = vorname; + } + + + get name() { + return this._name; + } + + get vorname() { + return this._vorname; + } + + + +} + diff --git a/src/exercises/modules/store.js b/src/exercises/modules/store.js new file mode 100644 index 0000000..f18253a --- /dev/null +++ b/src/exercises/modules/store.js @@ -0,0 +1,28 @@ +'use strict'; + +class Store{ + + //let arrItem = []; + + constructor(item) { + this.item = item; + } + // Store(items) // items kann z.B. ein Array von Personen sein + // Store.add(item) + // Store.remove(item) + // Store.findAll(item => boolean): Array + + + // function addItem(item){ + // + // } + // + // function removeItem(item){ + // + // } + // + // function findAllItem(item){ + // + // } + +} \ No newline at end of file diff --git a/src/exercises/objects-js-vs-json_Meine.js b/src/exercises/objects-js-vs-json_Meine.js new file mode 100644 index 0000000..daa1b9b --- /dev/null +++ b/src/exercises/objects-js-vs-json_Meine.js @@ -0,0 +1,150 @@ +/* +# Objects vs JSON + +# 1 +Definiere ein Array von mehreren User Objekten. Jeder User hat einen Namen und eine Punktezahl. \ +Sortiere den Array anhand der Punktezahl aufsteigend. + +Tip: Dokumentation von Array auf MDN studieren, um herauszufinden wie man sortiert :) + */ +{ + let arrUser = []; + + user1 = { name: "Hans", punkte: 33} + user2 = { name: "Doris", punkte: 46} + user3 = { name: "zororo", punkte: 2} + user4 = { name: "Max", punkte: 64} + + arrUser.push(user1); + arrUser.push(user2); + arrUser.push(user3); + arrUser.push(user4); + + console.log(arrUser); + + arrUser.sort(function(a, b) { + return a.punkte - b.punkte; + }); + console.log(arrUser) + //oder + console.log(arrUser.sort((a, b) => a.punkte - b.punkte)) + + + //---------------------------------------------------------- + /* + # 2 +Erstelle einen JSON String der 3 top Scorer. \ +Finde mehrere Varianten, um die Top 3 auszulesen + */ + + let lastThreeUserArr = arrUser.slice(-3); + console.log(lastThreeUserArr); + + JSON.stringify(lastThreeUserArr); + console.log(lastThreeUserArr) // [{},{},{}] + +/* +# 3 +Wandle den Array der User in ein Array von Objekten in der Form: `{ content: String, length: Number }` um. \ +Wobei content der Username ist und length die länge des Namens. Sortiere den Array aufsteigend nach length. + */ +//prototype ev länge hinzufügen + + var isArr; + isArr = Object.prototype.toString.call(arrUser); + console.log(isArr) // [object Array] + + + + + var arr = [{ + id: 1, + name: 'bill' + }, { + id: 2, + name: 'ted' + }] + + var result = arr.map(person => ({ value: person.id, text: person.name })); + console.log(result) + + + let arrUserNeuStringLength = arrUser.map(user => ({content: typeof user.name, length: user.name.length})); + console.log(arrUserNeuStringLength) + + //arrUserNeuStringLength.sort((a, b) => {a.length - b.length}) + //arrUserNeuStringLength.sort(user.name.length) + arrUserNeuStringLength.sort(function(a, b){ + // ASC -> a.length - b.length //aufsteigend + // DESC -> b.length - a.length //absteigend + return a.length - b.length; + }); + console.log(arrUserNeuStringLength) + + /* + # 4 +Erstelle eine tabellarisch korrekt ausgerichtete Rangliste der 3 top Scorer, im ASCII Format :). + +Format der Ausgabe: +``` +|Name |Score| +|------|-----| +|User 1| 13| +|Maya | 9| +``` + +Eigenschaften der Tabelle: + - Komplett dynamisch generiert, anhand des users Arrays ;) + - Spaltenbreite genau nur so breit, dass der längste Text darin Platz. + - Zeilen absteigend nach Score sortiert + - Score rechts ausgerichtet, Name links ausgerichtet + + */ + + console.log(arrUser); + arrUser.sort(function(a,b){return b.punkte-a.punkte}) + + console.log(arrUser) + //Person.prototype.nationality = "English"; + //arrUser.prototype.length = user.name.length + + let hilfzahl = 0; + for(let i = 0; ihilfzahl){ + hilfzahl = arrUser[i].name.length; + } + } + console.log(hilfzahl + " längster name") +/* + |Name |Score| + |------|-----| + */ + console.log("|Name"); + let str = "|Name"; + for(let i = 0; igrössteZahlScore){ + grössteZahlScore+=hilfszahlScore; + } +} + +console.log("grösster Score-Punkte: "+grössteZahlScore) + +let grössteZahlName = 0; +let hilfszahlName = 0; +for(let i = 0; igrössteZahlName){ + grössteZahlName=hilfszahlName; + } +} + +console.log("grösste Länge-Name: "+grössteZahlName) + + +//-------------------------------------------------------------- +/* + ## 5 +Mache jede Spalte so breit, wie die entsprechende maximale Länge dessen Inhalt. \ +_Achtung_: Der Spaltentitel muss ebenfalls berücksichtigt werden. + Hinweis: Suche auf MDN nach padEnd und repeat +z.B: +``` +|Name |Punkte| +|------|------| +|Hans |8 | +|Martin|12 | +``` + */ + + +// \ No newline at end of file diff --git a/src/exercises/promise_Meine.js b/src/exercises/promise_Meine.js new file mode 100644 index 0000000..e69de29 diff --git a/src/functions.js b/src/functions.js index 120fd9c..7545987 100644 --- a/src/functions.js +++ b/src/functions.js @@ -1,12 +1,14 @@ 'use strict' // Functions in JavaScript let a = 1, b = 2 + // function declaration function sum(a, b){ return a + b } sum(1, 2) + // function expression let multiply = function dkd(a, b){ return a * b @@ -24,10 +26,49 @@ function sum(...b){ } sum(1, 2, 3, 4, 5) +// Rest-parameter aus Buch +function addAllNew(...numbers){ + let result = 0; + for(let i=0;i { return x +x }; //this-binding // arrow functions let summ = (a, b) => a + b @@ -111,3 +153,33 @@ function hoistingDemo(){ let b = 2 f = inner } + + + +//function mit nur zahlen als Typ +function add(number1,number2){ + if( (typeof number1 !== 'number') || (typeof number2 !== 'number') ){ + throw new TypeError('Parameter müssen Zahlen sein'); + } + return number1 + number2; +} + + + +//while +let i = 10; +while (i>0) { + console.log(i); + i--; +} + +//do-while +let i = 10; +do { + console.log(i); + i--; +} while (i>0); + + + + diff --git a/src/oop-es5.js b/src/oop-es5.js index 0197962..7a5e82a 100644 --- a/src/oop-es5.js +++ b/src/oop-es5.js @@ -1,4 +1,17 @@ -'use strict' +'use strict' //seit ECMASript 5 +// macht fehler, wenn variable ohne let, oder var angelegt ist +/* +Strict- mode ( nicht sloopy-mode schlampiger Modus) +'use strict'; als erste anweisung seit ECMAScript 5 nicht jeder Browser… oder "use strict"; ++ code kann schneller ausgeführt werden ++ wandelt einige zuvor still akzeptierte Versehen in ausdrückliche Fehler um. + behandelt diese Versehen als Fehler, so dass sie entdeckt und unverzüglich behoben werden können. + (zb. versehentlich eine globale Variable zu erstellen) ++ verhindert syntaxfehler, zb function sum(a, a, c) { // !!! Syntaxfehler weil 2x a… + */ + + + // singleton let validator = { valid: true, diff --git a/src/operators.js b/src/operators.js index 38e49fd..d88be78 100644 --- a/src/operators.js +++ b/src/operators.js @@ -1,5 +1,11 @@ // == vs === +// == liefert true, wenn die Operanden gleich sind +// === liefert true, wenn die Operanden gleich sind und den gleichen Datentyp haben + +// truthy = true +// falsy = false = null,undefinded,"",0, NAN + // equality let a a = '0' == 0 @@ -11,6 +17,9 @@ a = false == 0 a = new Boolean(false) ? 't' : 'f' a = new Boolean(false) == false + + + // logical // evaluiere solange bis erster true => weisse den zu a = 0 || 200 || alert('hi')