From 1638a6b46f87da14df16a2ae15a5e786999fc72d Mon Sep 17 00:00:00 2001 From: Amaury Joly Date: Tue, 23 Mar 2021 13:50:31 +0100 Subject: [PATCH] Youtube listener done + somes tests --- package-lock.json | 2646 ++++++++++++++++++++++++- src/index.ts | 1 - src/youtube-listener-rss.ts | 14 +- tests/RessourcesTest/youtube_feed.rss | 1178 ++++++----- tests/index-spec.ts | 309 ++- 5 files changed, 3584 insertions(+), 564 deletions(-) delete mode 100644 src/index.ts diff --git a/package-lock.json b/package-lock.json index 817cdf5..34db879 100644 --- a/package-lock.json +++ b/package-lock.json @@ -740,11 +740,6 @@ "ansi-colors": "^4.1.1" } }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -1607,10 +1602,2619 @@ } }, "listener-rss": { - "version": "git+https://zeteo.me/gitea/Outils-PeerTube/listener-rss.git#67907d7cfba6009814447175738bbfeb70dd5991", - "from": "git+https://zeteo.me/gitea/Outils-PeerTube/listener-rss.git", + "version": "file:../listener-rss", "requires": { "rss-parser": "3.11.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/highlight": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.12.13.tgz", + "integrity": "sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.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" + } + } + } + }, + "@eslint/eslintrc": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.20", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@sinonjs/commons": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", + "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@sinonjs/samsam": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "requires": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" + }, + "@types/chai": { + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.14.tgz", + "integrity": "sha512-G+ITQPXkwTrslfG5L/BksmbLUA0M1iybEsmCWPqzSxsRRhJZimBKJkoMi8fr/CPygPTj4zO5pJH7I2/cm9M7SQ==" + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "@types/mocha": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz", + "integrity": "sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==" + }, + "@types/node": { + "version": "14.14.25", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", + "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==" + }, + "@types/sinon": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.10.tgz", + "integrity": "sha512-/faDC0erR06wMdybwI/uR8wEKV/E83T0k4sepIpB7gXuy2gzx2xiOjmztq6a2Y6rIGJ04D+6UU0VBmWy+4HEMA==", + "requires": { + "@types/sinonjs__fake-timers": "*" + } + }, + "@types/sinon-chai": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.5.tgz", + "integrity": "sha512-bKQqIpew7mmIGNRlxW6Zli/QVyc3zikpGzCa797B/tRnD9OtHvZ/ts8sYXV+Ilj9u3QRaUEM8xrjgd1gwm1BpQ==", + "requires": { + "@types/chai": "*", + "@types/sinon": "*" + } + }, + "@types/sinonjs__fake-timers": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz", + "integrity": "sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.2.tgz", + "integrity": "sha512-uMGfG7GFYK/nYutK/iqYJv6K/Xuog/vrRRZX9aEP4Zv1jsYXuvFUMDFLhUnc8WFv3D2R5QhNQL3VYKmvLS5zsQ==", + "requires": { + "@typescript-eslint/experimental-utils": "4.14.2", + "@typescript-eslint/scope-manager": "4.14.2", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.2.tgz", + "integrity": "sha512-mV9pmET4C2y2WlyHmD+Iun8SAEqkLahHGBkGqDVslHkmoj3VnxnGP4ANlwuxxfq1BsKdl/MPieDbohCEQgKrwA==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.14.2", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/typescript-estree": "4.14.2", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.2.tgz", + "integrity": "sha512-ipqSP6EuUsMu3E10EZIApOJgWSpcNXeKZaFeNKQyzqxnQl8eQCbV+TSNsl+s2GViX2d18m1rq3CWgnpOxDPgHg==", + "requires": { + "@typescript-eslint/scope-manager": "4.14.2", + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/typescript-estree": "4.14.2", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.2.tgz", + "integrity": "sha512-cuV9wMrzKm6yIuV48aTPfIeqErt5xceTheAgk70N1V4/2Ecj+fhl34iro/vIssJlb7XtzcaD07hWk7Jk0nKghg==", + "requires": { + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2" + } + }, + "@typescript-eslint/types": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.2.tgz", + "integrity": "sha512-LltxawRW6wXy4Gck6ZKlBD05tCHQUj4KLn4iR69IyRiDHX3d3NCAhO+ix5OR2Q+q9bjCrHE/HKt+riZkd1At8Q==" + }, + "@typescript-eslint/typescript-estree": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.2.tgz", + "integrity": "sha512-ESiFl8afXxt1dNj8ENEZT12p+jl9PqRur+Y19m0Z/SPikGL6rqq4e7Me60SU9a2M28uz48/8yct97VQYaGl0Vg==", + "requires": { + "@typescript-eslint/types": "4.14.2", + "@typescript-eslint/visitor-keys": "4.14.2", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.2.tgz", + "integrity": "sha512-KBB+xLBxnBdTENs/rUgeUKO0UkPBRs2vD09oMRRIkj5BEN8PX1ToXV532desXfpQnZsYTyLLviS7JrPhdL154w==", + "requires": { + "@typescript-eslint/types": "4.14.2", + "eslint-visitor-keys": "^2.0.0" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==" + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "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": "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" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-includes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", + "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "get-intrinsic": "^1.0.1", + "is-string": "^1.0.5" + } + }, + "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==" + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "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==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chai": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.0.tgz", + "integrity": "sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA==", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "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" + }, + "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" + } + }, + "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" + } + } + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.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" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "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==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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=" + }, + "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" + } + }, + "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" + } + } + } + }, + "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": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "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=" + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "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" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "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==" + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "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": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + } + }, + "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": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "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": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.19.0.tgz", + "integrity": "sha512-CGlMgJY56JZ9ZSYhJuhow61lMPPjUzWmChFya71Z/jilVos7mR/jPgaEfVGgMBY5DshbKdG8Ezb8FDCHcoMEMg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.3.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.20", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + } + } + }, + "eslint-config-airbnb-base": { + "version": "14.2.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz", + "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==", + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.2" + } + }, + "eslint-config-prettier": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", + "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==" + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "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=" + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^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==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.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" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-plugin-mocha": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-8.0.0.tgz", + "integrity": "sha512-n67etbWDz6NQM+HnTwZHyBwz/bLlYPOxUbw7bPuCyFujv7ZpaT/Vn6KTAbT02gf7nRljtYIjWcTxK/n8a57rQQ==", + "requires": { + "eslint-utils": "^2.1.0", + "ramda": "^0.27.1" + } + }, + "eslint-plugin-prettier": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", + "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "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": { + "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==" + } + } + }, + "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==" + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "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==" + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "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" + } + }, + "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==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastq": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.1.tgz", + "integrity": "sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA==", + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz", + "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", + "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", + "requires": { + "is-object": "~1.0.1", + "merge-descriptors": "~1.0.0" + } + }, + "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": { + "to-regex-range": "^5.0.1" + } + }, + "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" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "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==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.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": "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": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "requires": { + "type-fest": "^0.8.1" + } + }, + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "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" + } + }, + "graceful-fs": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.5.tgz", + "integrity": "sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw==" + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" + }, + "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" + } + }, + "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==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "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==" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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": { + "binary-extensions": "^2.0.0" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "requires": { + "has": "^1.0.3" + } + }, + "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==" + }, + "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": "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==" + }, + "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": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, + "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==" + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "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": { + "has-symbols": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "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.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "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-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "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" + } + }, + "just-extend": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.1.tgz", + "integrity": "sha512-aWgeGFW67BP3e5181Ep1Fv2v8z//iBJfrvyTnq8wG86vEESwmonn1zPBJ0VfmT9CJq2FIT0VsETtrNFm2a+SHA==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "requires": { + "chalk": "^4.0.0" + } + }, + "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": { + "yallist": "^4.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" + }, + "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==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mocha": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", + "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.4.3", + "debug": "4.2.0", + "diff": "4.0.2", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.1.6", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.14.0", + "log-symbols": "4.0.0", + "minimatch": "3.0.4", + "ms": "2.1.2", + "nanoid": "3.1.12", + "serialize-javascript": "5.0.1", + "strip-json-comments": "3.1.1", + "supports-color": "7.2.0", + "which": "2.0.2", + "wide-align": "1.1.3", + "workerpool": "6.0.2", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "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" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.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==" + }, + "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": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "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==" + }, + "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" + } + } + } + }, + "module-not-found-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", + "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "nanoid": { + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", + "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "nise": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/nise/-/nise-4.0.4.tgz", + "integrity": "sha512-bTTRUNlemx6deJa+ZyoCUTRvH3liK5+N6VQZ4NIw90AgDXY6iPnsqplNFf6STcj+ePk0H/xqxnP75Lr0J0Fq3A==", + "requires": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node-cleanup": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", + "integrity": "sha1-esGavSl+Caf3KnFUXZUbUX5N3iw=" + }, + "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==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "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": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "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" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "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": "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": "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" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "requires": { + "through": "~2.3" + } + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "requires": { + "fast-diff": "^1.1.2" + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "proxyquire": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz", + "integrity": "sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==", + "requires": { + "fill-keys": "^1.0.2", + "module-not-found-error": "^1.0.1", + "resolve": "^1.11.1" + } + }, + "ps-tree": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", + "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", + "requires": { + "event-stream": "=3.3.4" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, + "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" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "dependencies": { + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + } + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "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" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "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==" + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "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==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "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" + } + }, + "rss-parser": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.11.0.tgz", + "integrity": "sha512-oTLoYW+bNqNwkz8OpGinBU9s3As0sdczQjETIZFgyAdi7AopyhoVFGPIyFMYXXEY8hayKzD5CH+4CtmiPtJ89g==", + "requires": { + "entities": "^2.0.3", + "xml2js": "^0.4.19" + } + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" + }, + "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==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "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==" + }, + "sinon": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", + "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", + "requires": { + "@sinonjs/commons": "^1.8.1", + "@sinonjs/fake-timers": "^6.0.1", + "@sinonjs/samsam": "^5.3.1", + "diff": "^4.0.2", + "nise": "^4.0.4", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "sinon-chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.5.0.tgz", + "integrity": "sha512-IifbusYiQBpUxxFJkR3wTU68xzBN0+bxCScEaKMjBvAQERg6FnTTc1F17rseLb1tjmkJ23730AXpFI0c47FgAg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.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" + } + }, + "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==" + } + } + }, + "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-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" + } + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "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==" + }, + "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==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "requires": { + "through": "2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "requires": { + "duplexer": "~0.1.1" + } + }, + "string-argv": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.1.2.tgz", + "integrity": "sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==" + }, + "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" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "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" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "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==" + }, + "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" + } + }, + "table": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "requires": { + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.4.tgz", + "integrity": "sha512-xzzzaqgEQfmuhbhAoqjJ8T/1okb6gAzXn/eQRNpAN1AEUoHJTNF9xCDRTtf/s3SKldtZfa+RJeTs+BQq+eZ/sw==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "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=" + }, + "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" + } + }, + "ts-mock-imports": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/ts-mock-imports/-/ts-mock-imports-1.3.3.tgz", + "integrity": "sha512-zCAcb89Y+f3Bhw5VaHrHMh5tiuwAQEl5D3e0r5ELCdLl9EnZpb8Oeei/S60Qf4LORIfmJEXb3TpR5kxtL6j2cg==" + }, + "ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "ts-sinon": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-sinon/-/ts-sinon-2.0.1.tgz", + "integrity": "sha512-uI5huDCY6Gw6Yczmyd/Jcu8gZZYtWO0HakPShvDmlrgcywLyFZ7lgWt1y+gd/x79ReHh+rhMAJkhQkGRnPNikw==", + "requires": { + "@types/node": "^14.6.1", + "@types/sinon": "^9.0.5", + "@types/sinon-chai": "^3.2.4", + "sinon": "^9.0.3" + } + }, + "tsc-watch": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/tsc-watch/-/tsc-watch-4.2.9.tgz", + "integrity": "sha512-DlTaoDs74+KUpyWr7dCGhuscAUKCz6CiFduBN7R9RbLJSSN1moWdwoCLASE7+zLgGvV5AwXfYDiEMAsPGaO+Vw==", + "requires": { + "cross-spawn": "^7.0.3", + "node-cleanup": "^2.1.2", + "ps-tree": "^1.2.0", + "string-argv": "^0.1.1", + "strip-ansi": "^6.0.0" + } + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsutils": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", + "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "typescript": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==" + }, + "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" + } + }, + "which": { + "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=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "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=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "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" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "workerpool": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", + "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==" + }, + "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": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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=" + }, + "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" + } + }, + "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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "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": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "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" + } + }, + "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=" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "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" + } + }, + "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": { + "p-limit": "^2.0.0" + } + }, + "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==" + }, + "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" + } + }, + "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" + } + } + } + }, + "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": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" + } + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + } } }, "load-json-file": { @@ -2291,15 +4895,6 @@ "glob": "^7.1.3" } }, - "rss-parser": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.11.0.tgz", - "integrity": "sha512-oTLoYW+bNqNwkz8OpGinBU9s3As0sdczQjETIZFgyAdi7AopyhoVFGPIyFMYXXEY8hayKzD5CH+4CtmiPtJ89g==", - "requires": { - "entities": "^2.0.3", - "xml2js": "^0.4.19" - } - }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -2315,11 +4910,6 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, "semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", @@ -2914,20 +5504,6 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, "y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index d022cd1..0000000 --- a/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { YoutubeListenerRss } from "./youtube-listener-rss"; diff --git a/src/youtube-listener-rss.ts b/src/youtube-listener-rss.ts index ce9b97b..01ad39b 100644 --- a/src/youtube-listener-rss.ts +++ b/src/youtube-listener-rss.ts @@ -1,17 +1,19 @@ -import { ListenerRss } from "listener-rss/src"; +import { ListenerRss } from "listener-rss"; export class YoutubeListenerRss extends ListenerRss { - constructor(idChaine: string, timeloop?: number) { + constructor( + idChaine: string, + timeloop?: number, + lastEntriesLinks?: string[] + ) { super({ - name: "", timeloop: timeloop, - address: "https://www.youtube.com/feeds/videos.xml?channel_id=".concat( - idChaine - ), + address: `https://www.youtube.com/feeds/videos.xml?channel_id=${idChaine}`, customfields: { description: ["media:group", "media:description"], icon: ["media:group", "media:thumbnail"], }, + lastEntriesLinks: lastEntriesLinks, }); } } diff --git a/tests/RessourcesTest/youtube_feed.rss b/tests/RessourcesTest/youtube_feed.rss index 986c409..e5d2f7e 100644 --- a/tests/RessourcesTest/youtube_feed.rss +++ b/tests/RessourcesTest/youtube_feed.rss @@ -1,471 +1,707 @@ - - -yt:channel:UCh2YBKhYIy-_LtfCIn2Jycg -UCh2YBKhYIy-_LtfCIn2Jycg -Mr. Sam - Point d'interrogation - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2013-06-28T23:17:09+00:00 - -yt:video:g7m5-auOUDM -g7m5-auOUDM -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ Introduction à l'alternative sceptique • Méthode Z #1 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2021-03-19T16:48:35+00:00 -2021-03-19T18:31:01+00:00 - - -❓ Introduction à l'alternative sceptique • Méthode Z #1 - - - - -Les médias traditionnels comme les médias alternatifs déçoivent par leur manque de fiabilité. Et s'il existait une 3ème alternative ? P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ 0:00 Intro 0:57 État des lieux 1:58 La troisième alternative, incomprise 3:50 Définition de ce qu'est la communauté sceptique 4:33 Le sceptique idéal 5:30 Les dangers de la méthode populaire 6:08 Les informations contrôlées (illustration) 7:03 Quand on ne connait pas l'autodéfense intellectuelle 7:37 Vrai et faux sceptique ? 8:08 Les sceptiques sur les réseaux sociaux 9:05 Le scepticisme antique 10:44 C'est quoi la communauté sceptique alors ? 11:54 Aucun sceptique n'a raison 12:07 Un peu trop peu 12:59 Ce que ça change dans la vie 13:35 Ce qui intéresse le sceptique idéal 14:19 Outro E R R A T U M Jusqu'ici, tout va bien :) S O U R C E S Les sources potentiellement contrôlées: https://en.wikipedia.org/wiki/Warranting_theory https://journals.sagepub.com/doi/abs/10.1177/0093650215573862 https://doi.org/10.1016/S0306-4573(02)00032-8 Biais et heuristiques https://fr.wikipedia.org/wiki/Heuristique_de_jugement#Exemples Le scepticisme philosophique https://fr.wikipedia.org/wiki/Scepticisme_(philosophie) #mrsam144 #methodeZ #zetetique - - - - - - - - -yt:video:2-cGksQf-w8 -2-cGksQf-w8 -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ Comment ce complotiste a-t-il commencé à changer d'avis ? • Le Petit Point d'? - 6 janvier 2021 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2021-01-06T17:13:32+00:00 -2021-01-11T20:34:58+00:00 - - -❓ Comment ce complotiste a-t-il commencé à changer d'avis ? • Le Petit Point d'? - 6 janvier 2021 - - - - -Un fervent partisant de Raoult et de France Soir a amorcé un tournant à 180° suite à une conversation particulière avec Doc Primum. Comment cela a-t-il été rendu possible ? PENSEZ À ACTIVER LES SOUS-TITRES ZOULOU POUR VOIR LES ÉVENTUELLES CORRECTIONS EN COURS DE VIDÉO ! AIDE ET SOUTIEN Vous souhaitez faire le point sur votre situation, être soutenu, avoir un avis neutre sur vos engagements ? N'hésitez pas à contacter ces associations, elles existent pour ça. La véritable honte, c'est de ne pas oser demander de l'aide : https://www.ccmm.asso.fr/ https://www.gemppi.org/ P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M La comparaison entre la virulence de l'alternosphère et la bienveillance de la comu sceptique est ici biaisée car asymétrique. La juste comparaison peut se faire plutôt en comparant le moment ou la personne a déclaré avoir changé d'avis à l'alternosphère, face au moment où le lendemain elle prétendait avoir voulu piéger les sceptiques. Dans ce cas un peu plus comparable, effectivement les sceptiques se sont montrés beaucoup moins virulents. S O U R C E S Un résumé par Acermendax: https://twitter.com/Acermendax/status/1346392488504913921 Doc Primum: https://www.youtube.com/channel/UC9BnGZLT4iPaJtDOXYwQuHQ L'entretien épistémique, conférence: https://www.youtube.com/watch?v=f3RNHlgsGf8 #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:z_nA-50GVA0 -z_nA-50GVA0 -UCh2YBKhYIy-_LtfCIn2Jycg - -❗ Unboxing des vinyles du concert synthwave S-cape pour les 100k abonnés. - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-12-15T17:57:33+00:00 -2020-12-15T18:23:19+00:00 - - -❗ Unboxing des vinyles du concert synthwave S-cape pour les 100k abonnés. - - - - -Lien vers le live: https://www.youtube.com/watch?v=Fy30ZZGnZWg P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M Jusqu'ici, tout va bien :) S O U R C E S #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:U_BRQCtC44M -U_BRQCtC44M -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ Bigard, l'interview qui aurait dû déraper comme ça • ON SE TUTO ? #1 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-12-01T17:31:38+00:00 -2020-12-04T22:12:13+00:00 - - -❓ Bigard, l'interview qui aurait dû déraper comme ça • ON SE TUTO ? #1 - - - - -Parodie de l'interview de Jean-Marie Bigard sur France Bleu. Hey Jean-Marie, c'est pas pour vous emmerder, c'est juste parce que j'aurais aimé que les réponses d'en face soient celles-là ;) P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M -Selon la méthode de calcul, on obtient les chiffres de JMB ou les miens (ratio infection/mortalité belge: 580.000 infectés pour 16.000 décès), j'ai donc tort de lui dire qu'il se trompe. Tout dépend si on considère les cas infectés depuis le début de la crise, si on exclu les personnes à risque, si on ne compte que les gens testés, etc... Détails ici : https://ourworldindata.org/mortality-risk-covid -580.000 infectés ne donne pas 580.000 personnes hospitalisées. -Galilée a été défendu toute sa vie par le pape Urbain VIII. C’est uniquement quand il a commencé à se moquer publiquement de la hiérarchie ecclésiastique qu’il a été condamné. Rien à voir avec la Science. Cependant, tout porte à croire que si l'on avait appliqué les critères actuels de la "méthode scientifique" aux travaux de Gallillée sa théorie, qui était pleine d'hypothèses spéculatives et ne contenait au final que peu d'éléments empiriques, n'aurait probablement jamais été prise au sérieux. En réalité, à son époque, ses thèses sont très loin d'être consensuelles, même au sein des spécialistes de la question, et il faudra de nombreuses années (et de nombreuses découvertes scientifiques) pour qu'elles finissent par être acceptées. Le mythe d'un Gallilée précurseur (et défenseur) des sciences face à l'obscurantisme religieux ne s'est construit que bien plus tard. Merci à Sapere Aude et Alex Rochegude pour ces précisions. S O U R C E S https://www.francebleu.fr/emissions/dans-le-retro/dans-le-retro-jean-marie-bigard-0 #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:uah30aSs-GA -uah30aSs-GA -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ SCOOP: Ils ont FABRIQUÉ l'opinion publique de toute pièce • Le Petit Point d'? - 27 novembre 2020 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-11-27T16:39:24+00:00 -2020-12-05T14:18:37+00:00 - - -❓ SCOOP: Ils ont FABRIQUÉ l'opinion publique de toute pièce • Le Petit Point d'? - 27 novembre 2020 - - - - -Récit d'une personne qui a réussi à s'infiltrer jusqu'aux plus hautes sphères de la communauté Raoult/Hold-Up/Reinfocovid/BonSens etc... P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M Jusqu'ici, tout va bien :) S O U R C E S Wlad Tepes https://twitter.com/wladtepes #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:Rkk76tM6OBk -Rkk76tM6OBk -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ L'ERREUR fondamentale des JOURNALISTES • Le Petit Point d'? - 13 novembre 2020 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-11-13T17:33:03+00:00 -2020-12-31T01:36:34+00:00 - - -❓ L'ERREUR fondamentale des JOURNALISTES • Le Petit Point d'? - 13 novembre 2020 - - - - -Un documentaire choc, un livre plein de révélations, une vidéo présentant des preuves... Tous contenant le même ingrédient fondamental : des experts. Mais qui a mis ces ingrédients sous les projecteurs en premier ? P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ R E C O M M A N D A T I O N Hygiène Mentale "Avoir raison pour de mauvaises raisons" https://www.youtube.com/watch?v=VnbhrwNXry0 E R R A T U M Le glyphosathe est bien un pesticide, je voulais dire insecticide (rapport aux abeilles tout ça...) C'est le mot "empire" et non pas "empirique" qui a pour étymologie imperium/impero. Le mot empirique n'a donc pas la même origine qu'empire. S O U R C E S HOLD UP DEBUNK https://captainfact.io/videos/4Y7d https://docs.google.com/document/d/1UU2Gp_YH4NnJ2tRYPD1-pFli-F7TM1PtO_Ll95J2LQI/edit?fbclid=IwAR1V8r82ozqq-YGs_T1drGW8USeBPfbfeZc75tskbXUjGISXJB6ndSVt5dw Le bio https://www.youtube.com/watch?v=2P4Pw1V_ou0 https://docs.google.com/document/d/1CyYikPhQKvjWn1sPIaMuQST4dc8TqEkiOu-nenD5RF8/edit Sondage IPSOS vaccin https://www.ipsos.com/en/global-attitudes-covid-19-vaccine-october-2020 Michel Onfray https://twitter.com/MonsieurPhi/status/1325733310333657089?s=20 L'AFIS https://www.pseudo-sciences.org/ Le livre Foucard/Horel/Laurens https://www.pseudo-sciences.org/Le-livre-Les-gardiens-de-la-raison-fausses-affirmations-cherry-picking https://twitter.com/fmbreon/status/1325013988481052672?s=20 https://blogs.mediapart.fr/yann-kindo/blog/301020/les-gardiens-de-la-deraison https://www.lemonde.fr/idees/article/2019/04/13/l-affaire-du-levothyrox-illustre-une-confusion-entre-consensus-scientifique-et-consensus-reglementaire_5449630_3232.html http://www.festivaldeslibertes.be/2019/fase6?event=19021&_Debat__Quest-ce-quun-fait-?-__#19021 https://www.youtube.com/watch?v=pC4ptlfqS5E Seralini https://fr.wikipedia.org/wiki/Affaire_S%C3%A9ralini Louis Fouché https://twitter.com/Tipuncho/status/1326176991276634115 https://twitter.com/tristanmf/status/1326101311377510400 https://twitter.com/WhatsUpDoc_mag/status/1324630731289743360 Raoult poursuivi: https://www.leparisien.fr/societe/sante/le-professeur-didier-raoult-poursuivi-par-l-ordre-des-medecins-12-11-2020-8407949.php 9 mois de prédictions correctes sur Raoult: https://www.youtube.com/watch?v=h18tSEYukqE&list=PLHvR7ldCNjytFrViu2V79qVuiWNjViv_6 Raoult recommande c19study https://www.youtube.com/watch?v=ngaRgZDENOg C19study, source de fake: https://www.newsguardtech.com/fr/coronavirus-misinformation-tracking-center/ https://fr.wikipedia.org/wiki/Discussion:Hydroxychloroquine https://www.newsguardtech.com/wp-content/uploads/2020/09/CovidAnalysis.pdf Etymologie du mot empire : https://fr.m.wiktionary.org/wiki/empire #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:aYJphssoEUE -aYJphssoEUE -UCh2YBKhYIy-_LtfCIn2Jycg - -❓IL FAUT ENSEIGNER LA MÉTHODE SCIENTIFIQUE À L'ÉCOLE • Le Grand Procès de la Science • ép.7 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-11-02T16:57:57+00:00 -2020-11-17T22:11:45+00:00 - - -❓IL FAUT ENSEIGNER LA MÉTHODE SCIENTIFIQUE À L'ÉCOLE • Le Grand Procès de la Science • ép.7 - - - - -LE GRAND PROCÈS DE LA SCIENCE, épisode 7. #LGPScience Invité: Pleen le Jeune de la chaîne EduKey, abonnez-vous en suivant ce lien: https://www.youtube.com/channel/UC6wF0stG_iXMO4mIXM9g3YQ REGARDEZ CETTE VIDÉO: https://www.youtube.com/watch?v=6KCGT1cn-E8 L'association Ephiscience et ma boite de prod Sunday Pistols Studio s'associent pour produire une vraie série-documentaire. Mais tout ceci n'est peut-être que la première étape d'un complot gigantesque... Rendez-vous sur https://edukey.fr avec le code #MRSAM pour participer à une soirée débat EXCLUSIVE à ce code promo, avec des membres de l'équipe, des chercheurs et moi-même ! Offre valable jusqu'au 6 novembre 2020. R E C O M M A N D A T I O N S M.Phi - Merci Captain Ad Hoc ! | Grain de philo #23 https://www.youtube.com/watch?v=meNQnNqHjes M.Phi - La théorie peut-elle réfuter l'expérience ? | Grain de philo #22 https://www.youtube.com/watch?v=SXLHijQeYok Billes de sciences #0 : David Louapre - La mise en évidence de l'air https://www.youtube.com/watch?v=Fxfv0Yb37XA S O U R C E S Fasce, A., & Picó, A. (2019). Science as a Vaccine: The Relation between Scientific Literacy and Unwarranted Beliefs. Science & Education, 28(1–2), 109–125. https://doi.org/10.1007/s11191-018-00022-0 Johnson, M., & Pigliucci, M. (2004). Is Knowledge of Science Associated with Higher Skepticism of Pseudoscientific Claims? 10. Lederman, J., Lederman, N., Bartels, S., Jimenez, J., Akubo, M., Aly, S., Bao, C., Blanquet, E., Blonder, R., Bologna Soares de Andrade, M., Buntting, C., Cakir, M., EL-Deghaidy, H., ElZorkani, A., Gaigher, E., Guo, S., Hakanen, A., Hamed Al-Lal, S., Han-Tosunoglu, C., … Zhou, Q. (2019). An international collaborative investigation of beginning seventh grade students’ understandings of scientific inquiry: Establishing a baseline. Journal of Research in Science Teaching, 56(4), 486–515. https://doi.org/10.1002/tea.21512 Walker, W. R., Hoekstra, S. J., & Vogl, R. J. (2002). Science education is no guarantee of skepticism. Skeptic (Altadena, CA), 9(3), 24-29. P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ #LGPScience #edukey #mrsam - - - - - - - - -yt:video:L7QKQT7gfNo -L7QKQT7gfNo -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ Qu'est-ce que c'est que ce CIRQUE • Le Petit Point d'? - 30 octobre 2020 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-10-30T17:21:58+00:00 -2020-11-24T14:16:35+00:00 - - -❓ Qu'est-ce que c'est que ce CIRQUE • Le Petit Point d'? - 30 octobre 2020 - - - - -Le bilan du professeur, le point sur un nouveau remède, les avengers du bon sens, pas de doute, #lepetitpoint est de retour et il sort les canines ! P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M Jusqu'ici, tout va bien :) P R O M O N'oubliez pas d'aller jeter un coup d'oeil au crowdfunding https://edukey.fr ! Un grand projet qui cartonne dont j'ai la chance de faire partie :) S O U R C E S Le grand bêtisier de Didier Raoult https://www.youtube.com/watch?v=BvwnuO2Eg0A Pas de réanimation à l'IHU https://actu.orange.fr/france/marseille-l-ihu-de-didier-raoult-ne-dispose-pas-de-lits-de-reanimation-pour-les-patients-atteints-d-une-forme-grave-du-covid-19-magic-CNT000001tUzB0.html Allocution complète de Macron https://www.youtube.com/watch?v=A5QXbo0a8wQ Étienne Klein https://www.youtube.com/watch?v=LOLhjRdK1Pg À propos de France Soir https://www.franceinter.fr/emissions/l-edito-m/l-edito-m-21-octobre-2019 Le doigt dans le nez https://www.sciencesetavenir.fr/sante/question-du-jour-pourquoi-se-cure-t-on-le-nez_28511 Bon sens https://bonsens.info/ Gérard Guillaume et la seconde vague https://www.youtube.com/watch?v=9Mi5n2YR7Hs Martine Wonner https://www.liberation.fr/france/2020/10/16/la-deputee-martine-wonner-quitte-l-association-bonsens-qu-elle-venait-de-cofonder_1802627 https://www.bfmtv.com/replay-emissions/22h-max/le-choix-de-max-les-affirmations-de-martine-wonner-sur-l-hydroxychloroquine-et-le-masque-sont-erronees-06-10_VN-202010070005.html https://www.tf1.fr/tmc/quotidien-avec-yann-barthes/videos/quotidien-deuxieme-partie-3-mai-2019.html #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:3B6ITwGcLNA -3B6ITwGcLNA -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ VLOG: Éduquer à l'Esprit Critique • Le Petit Point d'? - 9 octobre 2020 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-10-09T16:32:35+00:00 -2020-10-10T03:30:41+00:00 - - -❓ VLOG: Éduquer à l'Esprit Critique • Le Petit Point d'? - 9 octobre 2020 - - - - -L'association Ephiscience et ma boite de prod Sunday Pistols Studio s'associent pour produire une série-documentaire. Mais tout ceci n'est peut-être que la première étape d'un complot gigantesque... Rendez-vous sur https://edukey.fr avec le code #MRSAM ! Offre valable jusqu'au 16 octobre 2020. P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:j5jLkW54JlQ -j5jLkW54JlQ -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ Une incroyable escroquerie scientifique • Le Petit Point d'? - 28 août 2020 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-08-28T15:54:16+00:00 -2020-12-24T00:54:05+00:00 - - -❓ Une incroyable escroquerie scientifique • Le Petit Point d'? - 28 août 2020 - - - - -Le port du masque, l'escroquerie d'une publication scientifique, un test pour mesurer son honnêteté et des recommandations 3 étoiles. POUR LA BD DER FALL DES ADLERS: 1: commandez votre exemplaire sur https://www.sundaypistols.be/derfall 2: envoyez vos noms, prénoms, adresse de livraison et le code "#MRSAM" par email à derfall[at]herosenstock.fr (remplacez [at] par @) RECOMMANDATION "SILENT SPRING" Partie 1: https://www.youtube.com/watch?v=J2HfJGB79hQ Partie 2: https://www.youtube.com/watch?v=fW9vRgjZXHw Abonnez-vous à Lablouse, on s'y sent bien ! https://www.youtube.com/channel/UCZnVzAaoJu37Tkz6YJn4EUQ P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M Bien qu'il soit également un virus à ARN, le sarscov2 n'est pas un rétrovirus. Mais rien ne garantit pour autant qu'un vaccin sera trouvé très prochainement. S O U R C E S Etude sur le masque (merci les Vaxxeuses !) https://pubmed.ncbi.nlm.nih.gov/32663849/ https://jamanetwork.com/journals/jama/fullarticle/2768533 https://pubmed.ncbi.nlm.nih.gov/32576336/ Un médecin teste l'oxygénation à travers le masque https://lactualite.com/sante-et-science/donnez-moi-de-loxygene-2/ Éternuement en slow motion https://www.youtube.com/watch?v=N-gZSKV9koQ L'étude de Violaine Guérin publié dans l'AJMH https://www.journalajmah.com/index.php/AJMAH/article/view/30224 L'historique de l'étude du groupe "laissons les vendeurs de trottinette prescrire" http://www.mimiryudo.com/blog/2020/08/le-meilleur-article-de-tous-les-temps/ La publication factice en français: http://www.mimiryudo.com/blog/wp-content/uploads/2020/08/test.pdf L'article anti-protocole Raoult de Futura Science https://www.futura-sciences.com/sante/actualites/coronavirus-fin-partie-chloroquine-80151/ L'article pro-protocole Raoult de France Soir http://www.francesoir.fr/opinions-entretiens/interview-exclusive-une-etude-italienne-sur-3-451-patients-confirme-lefficacite L'épistémologie selon Raoult analysée par Florian Cova https://medium.com/@florian.cova/l%C3%A9pist%C3%A9mologie-opportuniste-de-didier-raoult-7359ec4a3006 Version augmentée par la Tronche en Biais: https://menace-theoriste.fr/lepistemologie-opportuniste-de-didier-raoult/ #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:thSR2fQLmEA -thSR2fQLmEA -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ Voici la pépite de l'été • Le Petit Point d'? - 6 août 2020 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-08-06T15:47:18+00:00 -2020-12-22T23:27:36+00:00 - - -❓ Voici la pépite de l'été • Le Petit Point d'? - 6 août 2020 - - - - -Étienne Klein, qu'on ne présente plus (rassurez-moi, vous connaissez ?), nous gratifie de son premier ...oserais-je dire pamphlet ? 100% zététique, sans jamais le dire (et probablement sans jamais avoir eu l'intention de se rattacher à ce terme en souffrance il faut bien le dire). Le tube de l'été est un tract de 60 pages mesdames et messieurs. Acheter "LE GOÛT DU VRAI" : http://www.gallimard.fr/Catalogue/GALLIMARD/Tracts/Le-gout-du-vrai https://www.amazon.fr/go%C3%BBt-du-vrai-%C3%89tienne-Klein/dp/2072916712 https://livre.fnac.com/a14857494/Etienne-Klein-Le-gout-du-vrai P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M Jusqu'ici, tout va bien :) S O U R C E S La conférence "Comment faire comprendre à quelqu'un qu'il a tort..." https://www.youtube.com/watch?v=f3RNHlgsGf8 Le live de la Tronche en Biais (et non pas Primum) https://www.youtube.com/watch?v=a6oW35QKC-Q Le groupe Facebook pour le jeu vidéo: https://www.facebook.com/groups/309123867103253/ #mrsam144 #lepetitpoint #zetetique - - - - - - - - -yt:video:RTsySAeTgEs -RTsySAeTgEs -UCh2YBKhYIy-_LtfCIn2Jycg - -❓ VLOG : Votre job d'été + actu de la chaîne • Le Petit Point d'? - 31 juillet 2020 - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-07-31T15:05:36+00:00 -2020-07-31T20:47:24+00:00 - - -❓ VLOG : Votre job d'été + actu de la chaîne • Le Petit Point d'? - 31 juillet 2020 - - - - -Le job d'été le plus geek du monde: Rejoignez-nous pour créer les stages d'un jeu vidéo sur Nintendo NES ! Dead line: 15 septembre 2020 ! LA VIDÉO TUTORIEL (et tous les liens dans sa description) https://www.youtube.com/watch?v=-AXmJQr39bg LA DÉMO DU JEU NES http://www.saturdayman.be Les vinyles sont toujours en vente ici https://www.sundaypistols.be/?post_type=product Et on peut écouter ce que c'est ici https://www.youtube.com/watch?v=Fy30ZZGnZWg P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ #mrsam144 #lepetitpoint #geek - - - - - - - - -yt:video:912_rNE1xmc -912_rNE1xmc -UCh2YBKhYIy-_LtfCIn2Jycg - -❗Petit live entre amis 0% zététique autour de Final Fantasy 7R • LIVE! - - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-07-07T20:33:04+00:00 -2020-07-08T13:30:36+00:00 - - -❗Petit live entre amis 0% zététique autour de Final Fantasy 7R • LIVE! - - - - -Sans aucune autre prétention que l'envie de partager leur passion pour ce grand jeu vidéo qu'est Final Fantasy VII et son remake, Primum Non Nocere et Mr.Sam vous invite à une soirée détente entre ami•e•s. Ce n'est ni pour les vues, ni pour les pourboires, ni pour quoi que ce soit d'autre que le plaisir d'avoir une simple discussion de comptoir autour d'une passion commune. Assoiffés d'érudition scientifique s'abstenir ! P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ #mrsam144 #primumnonnocere #ff7 - - - - - - - - -yt:video:zYbQFDJOH6Y -zYbQFDJOH6Y -UCh2YBKhYIy-_LtfCIn2Jycg -⏪ OPINION OU FAIT ? • vprq #9 - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-06-26T11:48:09+00:00 -2020-06-26T11:48:09+00:00 - -⏪ OPINION OU FAIT ? • vprq #9 - - - -Comment faire la différence entre une opinion et un fait ? Pourquoi la vérité échappe-t-elle à nos sens ? Extrait de Fake 11.1 https://www.youtube.com/watch?v=U44YkyQ51pw P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M Jusqu'ici, tout va bien :) S O U R C E S Veuillez consulter les sources de la vidéo d'origine: https://www.youtube.com/watch?v=U44YkyQ51pw Mr.Sam est membre du https://www.cafe-sciences.org/ et du https://comitepara.be/ #mrsam144 #vprq #zetetique - - - - - - - - -yt:video:fA_re7PdERI -fA_re7PdERI -UCh2YBKhYIy-_LtfCIn2Jycg -⏪ LES ARGUMENTS CYCLIQUES - vprq #8 - - -Mr. Sam - Point d'interrogation - -https://www.youtube.com/channel/UCh2YBKhYIy-_LtfCIn2Jycg - - -2020-06-26T11:48:05+00:00 -2020-06-26T12:10:49+00:00 - -⏪ LES ARGUMENTS CYCLIQUES - vprq #8 - - - -Une des illusions logiques les plus dangereuses ! Extrait de Fake 11.2 https://www.youtube.com/watch?v=7N0e3loWeZQ P O U R B O I R E Tipeee & autres plateformes (Merci à vous !!!) http://www.s-cape.biz/mrsam/index.html https://en.tipeee.com/mrsam https://www.patreon.com/mrsam https://www.utip.io/mrsam http://s-cape.biz/mrsam/btc.html S U I V R E https://www.facebook.com/samuelbuisseret/ https://twitter.com/MrSam144 https://www.instagram.com/Mr.Sam144/ E R R A T U M Jusqu'ici, tout va bien :) S O U R C E S Veuillez consulter les sources de la vidéo d'origine: https://www.youtube.com/watch?v=7N0e3loWeZQ Mr.Sam est membre du https://www.cafe-sciences.org/ et du https://comitepara.be/ #mrsam144 #vprq #zetetique - - - - - - - - \ No newline at end of file + + + + yt:channel:UCeYerYR680Q56i4D1HJcF8Q + UCeYerYR680Q56i4D1HJcF8Q + Méta de Choc + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2019-02-20T18:25:47+00:00 + + yt:video:OYoZgsyu7tw + OYoZgsyu7tw + UCeYerYR680Q56i4D1HJcF8Q + Au pays de Jéhovah, avec Bertrand L'anonyme — SHOCKING ! 19 Part.1/5 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-03-19T17:00:07+00:00 + 2021-03-20T00:09:55+00:00 + + Au pays de Jéhovah, avec Bertrand L'anonyme — SHOCKING ! 19 Part.1/5 + + + Chapitre 1 : Au commencement était le verbe. +Les Témoins de Jéhovah, aux côtés de la scientologie ou des mormons, représentent l’image d’Épinal de la secte, telle que dénoncée par les instances officielles de lutte contre les dérives sectaires dans les années 90, à la suite des suicides collectifs de l’Ordre du Temple solaire en Suisse, en France et au Canada. + +De ce mouvement, on connaît évidemment le prosélytisme insistant, voire collant, de duos propres sur eux, venus sonner à notre porte. On en sourit parfois, mais cette communauté éveille aussi en nous une peur profonde ; celle d’un jour peut-être se laisser séduire et faire partie d’un groupe de personnes au cerveau lavé, refusant les transfusions sanguines même au seuil de la mort, isolées du reste de la société jusqu’à se couper des membres de leur propre famille. + +Pour compléter le tableau, le mouvement a récemment dû s’expliquer sur des affaires de pédophilie qui avaient été étouffées en interne, et en février 2021, le Ministère de l’Intérieur français a alerté sur le prosélytisme abusif qu’il a mené pendant la pandémie de COVID-19. + +T I M E C O D E S +02:23 : La vision du monde des Témoin de Jéhovah : la Bible, Adam et Ève, le créationnisme, la conclusion du système de chose, l’Apocalypse, l’existence de l’âme. +11:29 : Comment reconnaître un Témoin de Jéhovah : les fêtes, le langage, le mode vestimentaire. +13:45 : La vie quotidienne : les réunions, le porte-à-porte, l'étude biblique, le retour de Jésus en 1914, le manuel de réponse aux objections, l’exploitation du malheur des autres. +32:31 : L’enfance dans le mouvement : cursus scolaire, ostracisme, croyance en Jéhovah, difficulté de prendre du recul, soumission sociale, peur de l’apocalypse, peur de l’organisation. + 42:46 : La liste des obligations : réunions, étude des textes, exposés, lecture de la Bible, le texte du jour, la prière, la prédication, le service de pionnier, étude individuelle, étude familiale, la propreté, la délation des fautes graves, l’obéissance à l’organisation. + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : http://bit.ly/3e5abBb +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +LinkedIn : https://bit.ly/3t1kQ4b +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + +#TdJ +#témoignage +#dérives + + + + + + + + yt:video:1qRBteQ6OIY + 1qRBteQ6OIY + UCeYerYR680Q56i4D1HJcF8Q + Éducation positive ? Vraiment ? avec Béatrice Kammerer — SHOCKING 18 Part.4/4 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-03-05T17:00:00+00:00 + 2021-03-07T14:34:47+00:00 + + Éducation positive ? Vraiment ? avec Béatrice Kammerer — SHOCKING 18 Part.4/4 + + + Chapitre 4 : Confusion et bricolage. +Ça a bien piqué la semaine dernière et vous saviez en appuyant sur play aujourd’hui que vous pouviez vous attendre à un bain d’orties. Je ne peux vous donner tort, mais rassurez-vous il y aura aussi des choses réjouissantes dans le quatrième et dernier chapitre de cette épique série. + +T I M E C O D E S +0:00 : Introduction. +01:01 : Le cortisol, hormone du stress, un poison pour le cerveau ? Catherine Gueguen, Isabelle Filliozat, l’ocytocine, hormone de l’amour ? accouchement, allaitement. +08:24 : La fessée : études scientifiques, corrélation / causalité, conséquence et efficacité éducative. +14:03 : Les caprices : arguments sociaux et neurologiques, Daniel Siegel, neurosciences, neuromythes, dramatisation, Catherine Gueguen, effet seuil / effet dose, l’enfant est-il condamné au pire ? injonctions paradoxales. +22:24 : La dérive autoritaire : Maja Mijaelovick, Les lunettes de Maja, influenceuses Instagram, culpabilisation des mères, signalements à la Miviludes. Pouvoir des experts, soignants, gourous, attentes démesurées, vulnérabilité. +29:33 : Quelques solutions : relation parent/enfant, situation de handicap, responsabilité parentale / libre-arbitre de l’enfant, comment évaluer ce qui marche ou pas, obéissance, négociation, esprit critique, égalité mère/père, masculinité toxique. +40:14 : Le bricolage éducatif : créativité éducative, essai et erreur, montrer l’exemple, sacrifice, la journée du Yes, questionner les règles. +46:03 : Se respecter en tant que parent : émotions, bienveillance vis-à-vis de soi, harmonie / dialogue, le conflit, l’effort, différence danger/risque, Michel Fize, crise d’adolescence / crise parentale, transgression et désir d’autonomie. +59:22 : La Minute stupide. + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : http://bit.ly/3e5abBb +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +LinkedIn : https://bit.ly/3t1kQ4b +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + +#éducation +#sciences +#dérives + + + + + + + + yt:video:ClmR-fXkgAo + ClmR-fXkgAo + UCeYerYR680Q56i4D1HJcF8Q + Éducation positive ? Vraiment ? avec Béatrice Kammerer — SHOCKING 18 Part.3/4 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-02-26T17:00:14+00:00 + 2021-03-11T03:21:34+00:00 + + Éducation positive ? Vraiment ? avec Béatrice Kammerer — SHOCKING 18 Part.3/4 + + + Chapitre 3 : Tous neurophiles ! +Béatrice Kammerer nous parle culpabilisation, idéalisation… et science. Autant vous prévenir, nos idées préconçues en prennent un coup ! + +T I M E C O D E S +00:00 : Introduction. +00:42 : La dévalorisation de la compétence parentale : Isabelle Filliozat, Sophie Benkemoun, loi contre les violences éducatives ordinaires (VÉO), violence vis-à-vis des parents, la culpabilité de la mère, critiques de l’entourage. +11:35 : La peur de mal faire : le parent shaming, adultisme, entraide entre parents, place sociale des parents dépolitisée. +17:20 : L’accompagnement de l’enfant : idéalisation de l’enfant, conjuguer inné et culturel, motricité libre (Emmi Pikler), la mère “réservoir émotionnel“, organiser le milieu de l’enfant. +23:51 : Les inégalités parentales : mère coach de la famille, inégalités sociales, classisme, infantilisation des parents, injonctions simplistes, Catherine Dumonteil-Kremmer, non ou stop. +31:13 : La charge mentale des mères : maternage proximal (allaitement, cododo), stéréotypes du rôle de père et de mère, répartition des tâches domestiques et parentales, congé paternité, toute-puissance maternelle. +41:32 : Le burn-out parental : Isabelle Roskam, société individualiste, sur-responsabilisation des parents, famille nucléaire, comparaison avec les primates. +47:10 : Le goût pour l’information scientifique : Catherine Gueguen, argument d’autorité, dramatisation, niveaux de preuve, cherry-picking, impact des fessées, Daniel Siegel, Tina Payne Bryson, Isabelle Filliozat, extrapolations abusives, expériences animales, addiction aux écrans, cerveau droit / cerveau gauche, neuromythes, Conseil scientifique de l’Éducation nationale. +56:18 : Cerveau reptilien et néocortex : l’avis des scientifiques, détournement de la science, neurosciences, les biais de la recherche, la science n’est pas prescriptive, l’amygdale, l’hippocampe, les effets du militantisme. + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + +#culpabilisation +#chargementale +#cerveau + + + + + + + + yt:video:7sxQ2bzuCn8 + 7sxQ2bzuCn8 + UCeYerYR680Q56i4D1HJcF8Q + Éducation positive ? Vraiment ? avec Béatrice Kammerer — SHOCKING 18 Part.2/4 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-02-19T17:00:03+00:00 + 2021-03-07T14:36:47+00:00 + + Éducation positive ? Vraiment ? avec Béatrice Kammerer — SHOCKING 18 Part.2/4 + + + Chapitre 2 : Enfant, qui es-tu ? + +C’est quoi un enfant, finalement ? Du Moyen-Âge au XXe siècle, chaque époque en a eu sa compréhension et donc sa propre façon d’accompagner cet être à part. +Mon entretien avec Béatrice Kammerer, journaliste scientifique spécialiste de l'éducation, se poursuit. + +T I M E C O D E S +00:00 Introduction. +00:48 : La prise en compte de l’enfant du Moyen-Âge au XIXe siècle : injonctions religieuses, père éducateur, mortalité infantile, création de la puériculture et des sages-femmes, vaccination contre la variole, hygiénisme. +12:13 : Scientisme et injonctions contradictoires : mort subite du nourrisson, des parents jugés incompétents. + + 18:55 : La naissance de la parentalité : le choix de procréer, le succès parental, le marché de la puériculture, “J’élève mon enfant“ de Laurence Pernoud, allongement du temps consacré aux enfants. +25:18 : Psychologisation des esprits : Françoise Dolto, psychanalyse, autisme et inceste. +30:44 : Quelques pratiques passées : opium, somnifères, masturbation, lois de protections de l’enfance, bagnes pour enfants, les grands-parents, Victor Hugo. +38:38 : Le mouvement de l’éducation nouvelle : Steiner, Montessori, Freinet, Piaget, l’école de Jules Ferry, les châtiments corporels à l’école. Janusz Korczak, chirurgie des bébés sans anesthésie, Convention internationale pour les droits de l’enfant de l’ONU. +50:05 : Peut-on critiquer l’éducation positive ? Isabelle Filliozat, livres, ateliers, formations de formateurs, positive washing, coaching parental. + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + +#histoire +#psychologie +#pédagogie + + + + + + + + yt:video:6imankh60u4 + 6imankh60u4 + UCeYerYR680Q56i4D1HJcF8Q + Éducation positive ? Vraiment ? avec Béatrice Kammerer — SHOCKING 18 Part.1/4 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-02-12T17:00:06+00:00 + 2021-03-11T03:06:41+00:00 + + Éducation positive ? Vraiment ? avec Béatrice Kammerer — SHOCKING 18 Part.1/4 + + + Quel parent ne souhaite proposer à son enfant un cadre qui lui permettra de devenir un adulte épanoui, capable d’identifier et d’exprimer ses besoins, ses désirs et ses talents ? + + Ces 20 dernières années, l’éducation positive a fait son chemin dans nos esprits, jusqu’à devenir une notion incontournable du paysage de la parentalité. Si cette pratique semble aujourd’hui tomber sous le sens, il m’est apparu important d’aller justement la questionner, la scruter dans ses recoins parfois obscurs, pour que celles et ceux qui y ont recours le fassent en connaissance de cause, hors d’une adhésion de principe à ce qui, il faut bien l’admettre, flirte finalement assez souvent avec les injonctions et le dogme. + + Pour ce faire, je suis allée à Lyon, rencontrer Béatrice Kammerer, journaliste scientifique, spécialiste de l’éducation. + +T I M E C O D E S +00:00 Introduction. +02:08 : Béatrice Kammerer et l’éducation positive : didactique des sciences, blogs parentaux, Les Vendredis intellos, journalisme scientifique, refus de l’infantilisation. + +17:43 : Qu’est-ce que l’éducation positive ? Les violences éducatives ordinaires (VÉO), le parent thérapeute, la différence avec le laxisme, responsabilisation de l’enfant, définition du Conseil de l’Europe. +27:05 : L’émergence du concept: directives de l’Éducation nationale, réseau REAAP de la Sécurité sociale (CAF), programme Triple P, l’éducation négative de Jean-Jacques Rousseau, le positivisme d’Auguste Comte. +33:11 : Les fondements théoriques : Carl Rogers, écoute active de Thomas Gordon, ateliers Faber et Mazlish, communication non-violente (CNV) de Marshall Rosenberg, théories de l’attachement, hospitalisme, le parent suffisamment bon, expérience de la situation étrange, psychologie positive de Martin Seligman, bien-être à l’école. + + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + +#éducationpositive +#parentalité +#positivewashing + + + + + + + + yt:video:yqeIJuZM-Ac + yqeIJuZM-Ac + UCeYerYR680Q56i4D1HJcF8Q + Éducation positive ? Vraiment ? avec Béatrice Kammerer — Shocking ! 18 Teaser + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-02-05T17:00:35+00:00 + 2021-02-05T17:00:35+00:00 + + Éducation positive ? Vraiment ? avec Béatrice Kammerer — Shocking ! 18 Teaser + + + L'éducation positive, c'est mode et ça fait envie ! +La journaliste scientifique, spécialiste de l'éducation, Béatrice Kammerer nous offre un décryptage au-delà des dogmes, pour nous aider à réfléchir à l'éducation que nous voulons offrir à nos enfants. +Une série qui nettoie les bonnes intentions et le “positive washing“ au karcher... Et surtout, qui nous permet de sortir de la culpabilisation ! + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + +#éducationpositive +#parentalité +#bienveillance + + + + + + + + yt:video:bB1JuDaC9Kk + bB1JuDaC9Kk + UCeYerYR680Q56i4D1HJcF8Q + L'Univers a parlé — Scoop ! 6 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-01-29T17:00:13+00:00 + 2021-01-30T12:53:56+00:00 + + L'Univers a parlé — Scoop ! 6 + + + De la spiritualité et du drame. +Des révélations en veux-tu en voilà. + +Les livres de la Collection Méta de Choc : https://www.laroutedelasoie-editions.com/notre-catalogue/méta-de-choc/ + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + +#spiritualité +#drame +#film + + + + + + + + yt:video:dduN7JzTpRk + dduN7JzTpRk + UCeYerYR680Q56i4D1HJcF8Q + Une vie en anthroposophie, le livre — Stream ! 1 REUPLOAD + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-01-27T18:39:34+00:00 + 2021-01-31T05:08:02+00:00 + + Une vie en anthroposophie, le livre — Stream ! 1 REUPLOAD + + + Lancement du livre “Une vie en anthroposophie — La face cachée des écoles Steiner-Waldorf“, co-écrit par Grégoire Perra et Élisabeth Feytit. +Soirée modérée par Richard Monvoisin, didacticien des sciences et spécialiste des théories étranges, auteur de la préface du livre. + +Livre disponible sur : https://www.laroutedelasoie-editions.com/notre-catalogue/méta-de-choc/une-vie-en-anthroposophie/ + +Les écoles Steiner-Waldorf sont souvent présentées comme des lieux d’épanouissement, où l’enfant est pris en compte dans son individualité. Pour le parents en quête d’un cadre éducatif proche de la nature et propice à l’expression de la créativité, elles peuvent sembler un choix idéal. Un ancien élève et professeur Steiner-Waldorf alerte pourtant sur les dangereuses dérives de cette pédagogie et sur ses liens dissimulés avec l’anthroposophie, vaste mouvement où règnent culture du secret et pratiques occultes. + +T I M E C O D E S +00:00 : Introduction d’Élisabeth Feytit et présentation de Richard Monvoisin. +04:30 : La démarche d’Élisabeth Feytit et sa déconversion. +17:57 : L’attrait des écoles Steiner-Waldorf et de l'anthroposophie. +23:50 : La déconversion de Grégoire Perra et la rencontre avec Élisabeth Feytit. +27:02 : Pratiques et organisation de l’anthroposophie. +31:58 : La démission de Grégoire Perra et le procès de 2011. +36:50 : Les croyances anthroposophiques dans le milieu New Age, bibliographie (JB Meybeck, Renaud Marhic). +44:20 : Questions du tchat : procès en cours, la Miviludes, documentaire sur Jessica Schab, les croyances actuelles d’Élisabeth Feytit et Grégoire Perra. +59:40 : Questions du tchat : les anthroposophes et l’argent, le Domaine des possibles de Françoise Nyssen, Edgar Morin, Pierre Rabhi, les prochains livres de la Collection Méta de Choc. +1:11:26 : Résultat du concours de commentaires pour gagner un livre dédicacé, la doctrine steinerienne. +1:18:13 : Questions du tchat : l’article de Jean-Baptiste Mallet, l’anthroposophie, le Covid et la vaccination, les influences politiques sur l’affaiblissement de la Miviludes, les études sur la déconversion, les universitaires anthroposophes. +1:27:54 : Conclusion. + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + + + + + + + + yt:video:NoyfO3lSg6A + NoyfO3lSg6A + UCeYerYR680Q56i4D1HJcF8Q + Les dangers de la pensée positive — Script ! Bonus + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-01-22T17:00:23+00:00 + 2021-01-23T22:00:28+00:00 + + Les dangers de la pensée positive — Script ! Bonus + + + On boucle la boucle en replongeant dans le thème de la Loi de l’attraction, et exceptionnellement, je vais vous donner quelques clés précieuses pour non seulement vous passer de cette fameuse “pensée positive“ mais aussi pour faire beaucoup mieux sans elle ! +Oui, vous avez bien entendu, je vais vous donner des conseils, des tips, des trucs et astuces. C’est juste fou. +Préparez papier et crayons et écoutez bien ce qui suit : une conférence que j’ai donnée au Cercle Zététique de Montpellier en septembre 2020. + +T I M E C O D E S +00:02:13 : Qu’est-ce que la pensée positive ? Loi de l’attraction, développement personnel, responsabilité individuelle. La différence avec la prophétie auto-réalisatrice et la psychologie positive. +00:15:42 : Comment ça marche ? Identifier ses désirs, méditation, affirmations, méthode Coué, gratitude. +00:24:56 : Questions / Réponses : énergies négatives, entités (anges, reptiliens), relativisme, Fédération galactique de Lumière. +00:34:24 : Les effets de la pensée positive : sentiment de maîtrise, joie, ivresse, effets contextuels, cadre de questionnement. +00:38:54 : Les conséquences négatives : vision simpliste, raisonnements faux, fausse impression de contrôle, rejet des émotions négatives, synchronicités, biais de confirmation, intuition, lâcher prise, retard de connaissance, retard de décision, retard de traitement, refus du réel, relativisme, impact collectif. +00:50:00 : Critiques et justifications dans le milieu spirituel : rituels de protection, trouver le juste milieu. +00:56:09 : Les écueils psychologiques : conséquences négatives des affirmations, dépression, obsession, attente, persévérance, vision tronquée de la vie, mensonge, réconfort addictif, escalade d’engagement, dérives et abus. +01:11:40 : Comment faire mieux que la pensée positive ? L’optimisme mène à l'échec, le rêve démotive. Solutions : le contraste mental, l’implémentation des intentions, chercher l’erreur. +01:21:27 : Questions / Réponses : psychologie positive et néolibéralisme, reptiliens et enfants indigo, la notion de Dieu, les dérives sectaires, les scientifiques qui valident la Loi de l’attraction, le mysticisme quantique, comment dialoguer avec un croyant. + + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€ pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + + + + + + + + yt:video:XEV_pfzE4hY + XEV_pfzE4hY + UCeYerYR680Q56i4D1HJcF8Q + Le féminin sacré 2 — Script ! 1.8 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-01-15T17:00:28+00:00 + 2021-01-15T17:00:28+00:00 + + Le féminin sacré 2 — Script ! 1.8 + + + Matriarcat, Déesse-Mère, archétypes, puissance des sorcières… Cette émission nous en apprend un rayon sur les fondements théoriques du concept de “féminin sacré“ ! +Elle analyse aussi en profondeur les effets de pratiques qui ont pour but de servir une cause noble : la création d’espaces d’expression pour une reprise de confiance des femmes. + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€, pour éviter la commission exorbitante de PayPal) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + + + + + + + + yt:video:g1ogJPoBpso + g1ogJPoBpso + UCeYerYR680Q56i4D1HJcF8Q + Le féminin sacré 1 — Script ! 1.8 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-01-08T17:00:15+00:00 + 2021-01-09T04:46:43+00:00 + + Le féminin sacré 1 — Script ! 1.8 + + + Selon l’ésotérisme New Age, l’incarnation humaine se manifeste dans une complémentarité entre les énergies masculine et le féminine. Dans cette émission en deux volets, nous allons évoquer celle dont tout le monde parle en ce moment. + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur : +- Tipeee : https://fr.tipeee.com/meta-de-choc +- PayPal : https://bit.ly/3rnObFH (à partir de 10€) + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + + + + + + + + yt:video:I3KWF81QVak + I3KWF81QVak + UCeYerYR680Q56i4D1HJcF8Q + La géobiologie de l'habitat 3 — Script ! 1.7 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2021-01-02T09:00:03+00:00 + 2021-01-03T20:40:40+00:00 + + La géobiologie de l'habitat 3 — Script ! 1.7 + + + Au vu des témoignages qui louent les bienfaits de la géobiologie, de nombreuses expériences scientifiques ont été menées pour évaluer la fiabilité des diagnostics des radiesthésistes. +Elles ont été conçues en s’assurant d’écarter les facteurs subjectifs et d'isoler les facteurs purement physiques. Voyons ce qu'elles nous disent ! + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur Tipeee : +https://fr.tipeee.com/meta-de-choc + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + + +#radiesthésie +#ressenti +#médecine + + + + + + + + yt:video:ZJxQcYCNai0 + ZJxQcYCNai0 + UCeYerYR680Q56i4D1HJcF8Q + La géobiologie de l'habitat 2 — Script ! 1.7 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2020-12-26T09:00:19+00:00 + 2020-12-27T22:19:15+00:00 + + La géobiologie de l'habitat 2 — Script ! 1.7 + + + Quels sont les fondements de la géobiologie ? Aujourd’hui, nous interrogeons ses prétentions historiques et scientifiques pour vérifier ce que cette pratique a dans le ventre ! + + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur Tipeee : +https://fr.tipeee.com/meta-de-choc + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + + +#géobiologie +#architecture +#élevage + + + + + + + + yt:video:6-Jf_Wphs5Y + 6-Jf_Wphs5Y + UCeYerYR680Q56i4D1HJcF8Q + La géobiologie de l'habitat 1 — Script ! 1.7 + + + Méta de Choc + https://www.youtube.com/channel/UCeYerYR680Q56i4D1HJcF8Q + + 2020-12-19T09:00:02+00:00 + 2020-12-20T23:30:58+00:00 + + La géobiologie de l'habitat 1 — Script ! 1.7 + + + Nous avons parlé dans l’épisode 4 de cette série des soins ayant pour objectif de rééquilibrer les énergies du corps et de l’esprit. Ces dernières années ont également vu grandir un fort engouement pour les soins que l’on peut apporter à nos lieux de vie : la géobiologie de l'habitat. +Cette émission en deux volets vous dit tout ou presque sur une pratique qui a le vent en poupe. + + +S O U T E N I R +Pour que Méta de Choc vive, vous pouvez faire un don sur Tipeee : +https://fr.tipeee.com/meta-de-choc + +R E S S O U R C E S +Retrouvez de nombreuses références sur le site Méta de Choc : +https://www.metadechoc.fr + +S U I V R E +Facebook : https://bit.ly/2yWeVXl +Twitter : https://bit.ly/2xpJ5BH +Instagram : https://bit.ly/2KPLclt +PeerTube : https://bit.ly/3f5qX1b +YouTube : https://bit.ly/35jqGmF + + +#géobiologie +#architecture +#fengshui + + + + + + + diff --git a/tests/index-spec.ts b/tests/index-spec.ts index 3f3437b..c6e46f5 100644 --- a/tests/index-spec.ts +++ b/tests/index-spec.ts @@ -1,7 +1,11 @@ // tested class -import { YoutubeListenerRss } from "./../src/"; +import { YoutubeListenerRss } from "../"; // Unit test +import path from "path"; + +import events from "events"; + import nock from "nock"; import * as chai from "chai"; import sinon from "ts-sinon"; @@ -11,90 +15,122 @@ chai.use(sinonChai); const expect = chai.expect; // default value (more easy when it's aliases) -const default_channel_ID = "UCh2YBKhYIy-_LtfCIn2Jycg"; -const default_timeloop = 15; +const defaultChannelID = "UCh2YBKhYIy-_LtfCIn2Jycg"; +const defaultTimeloop = 15; +const defaultHistory = ["https://www.youtube.com/watch?v=OYoZgsyu7tw"]; // expected value during my test -const expected_default_address = "http://www.youtube.com/feeds/videos.xml?channel_id=".concat( - default_channel_ID -); -const expected_custom_fields = { +const expectedChannelAddress = `https://www.youtube.com/feeds/videos.xml?channel_id=${defaultChannelID}`; +const expectedCustomFields = { description: ["media:group", "media:description"], icon: ["media:group", "media:thumbnail"], }; -const expected_resolve_fetch = {}; // TODO charger le fichier "youtube_feed.rss" + +const expectedElmts = require("./RessourcesTest/expectedElmts.json"); +const expectedFirstElmt = expectedElmts[0]; +const expectedLastElmt = expectedElmts[1]; // let's test describe("test ytbListener_RSS class", function () { describe("test constructor", function () { - it("construct with 2 params", function () { + it("construct with 3 params", function () { // given const listener = new YoutubeListenerRss( - default_channel_ID, - default_timeloop // 15 sec + defaultChannelID, + defaultTimeloop, // 15 sec + defaultHistory ); // assertions - expect(listener.address).to.be.eql(expected_default_address); - expect(listener.timeloop).to.be.eql(default_timeloop); - expect(listener.customfields).to.be.eql(expected_custom_fields); + expect(listener.address).to.be.eql(expectedChannelAddress); + expect(listener.timeloop).to.be.eql(defaultTimeloop); + expect(listener.customfields).to.be.eql(expectedCustomFields); + expect(listener.lastEntriesLinks).to.be.eql(defaultHistory); }); - it("construct with 1 params (without timeloop)", function () { + it("construct with 2 params (without history)", function () { // given const listener = new YoutubeListenerRss( - default_channel_ID, - default_timeloop // 15 sec + defaultChannelID, + defaultTimeloop // 15 sec ); // assertions - expect(listener.address).to.be.eql(expected_default_address); + expect(listener.address).to.be.eql(expectedChannelAddress); + expect(listener.timeloop).to.be.eql(defaultTimeloop); + expect(listener.customfields).to.be.eql(expectedCustomFields); + }); + + it("construct with 1 params (without history and timeloop)", function () { + // given + const listener = new YoutubeListenerRss(defaultChannelID); + + // assertions + expect(listener.address).to.be.eql(expectedChannelAddress); expect(listener.timeloop).to.be.eql(5 * 60); - expect(listener.customfields).to.be.eql(expected_custom_fields); + expect(listener.customfields).to.be.eql(expectedCustomFields); }); }); - describe("test fetch", function () { + describe("integration test", function () { + beforeEach(function () { + nock.disableNetConnect(); + }); + + afterEach(function () { + nock.cleanAll(); + }); + it("fetches", async function () { // given - nock.disableNetConnect(); - - nock("http://www.youtube.com") + nock("https://www.youtube.com") .get("/feeds/videos.xml?channel_id=UCh2YBKhYIy-_LtfCIn2Jycg") - .replyWithFile(200, __dirname + "RessourcesTest/youtube_feed.rss", { - "content-type": "text/xml", - charset: "UTF-8", - }); + .replyWithFile( + 200, + path.join(__dirname, "RessourcesTest/youtube_feed.rss"), + { + "content-type": "text/xml", + charset: "UTF-8", + } + ); const listener = new YoutubeListenerRss( - default_channel_ID, - default_timeloop + defaultChannelID, + defaultTimeloop ); //when const res = await listener.fetchRSS(); // assertion - expect(res).to.be.eql(expected_resolve_fetch); + expect(res.items[0]).to.be.eql(expectedFirstElmt); + expect(res.items[res.items.length - 1]).to.be.eql(expectedLastElmt); }); - }); - describe("start", function () { - it("fetches with start (bad name, find a better)", async function () { + + /** + * This test will test the usage of the librairie with, in the order + * - 1 fetch of the original document (here trigger update and new_entries events) + * - 1 fetch with the original document and a new entry (here trigger update and new_entries events) + * - 1 fetch of the previous document (here trigger update events) + */ + it("fetches with start loop in 3 times", async function () { // given const clock = sinon.useFakeTimers(); - nock.disableNetConnect(); - - nock("http://www.youtube.com") + nock("https://www.youtube.com") .get("/feeds/videos.xml?channel_id=UCh2YBKhYIy-_LtfCIn2Jycg") - .replyWithFile(200, __dirname + "RessourcesTest/youtube_feed.rss", { - "content-type": "text/xml", - charset: "UTF-8", - }); + .replyWithFile( + 200, + path.join(__dirname, "RessourcesTest/youtube_feed.rss"), + { + "content-type": "text/xml", + charset: "UTF-8", + } + ); const listener = new YoutubeListenerRss( - default_channel_ID, - default_timeloop + defaultChannelID, + defaultTimeloop ); // spy @@ -103,29 +139,200 @@ describe("test ytbListener_RSS class", function () { // start timer listener.on("update", updateListenerSpy); - listener.on("newnEntries", newEntriesListenerSpy); + listener.on("newEntries", newEntriesListenerSpy); listener.start(); // when - await clock.tickAsync(1); + await events.once(listener, "update"); // assertion expect(updateListenerSpy).to.have.been.calledOnce; - expect(updateListenerSpy).to.have.been.calledWith(expected_resolve_fetch); + expect(updateListenerSpy.firstCall.args[0]) + .to.have.property("items") + .that.deep.include.members([expectedFirstElmt, expectedLastElmt]); + expect(newEntriesListenerSpy).to.have.been.called; + expect( + newEntriesListenerSpy.firstCall.args[0] + ).that.deep.include.members([expectedFirstElmt, expectedLastElmt]); + expect(updateListenerSpy.firstCall.args[0].items.length).to.be.eql( + newEntriesListenerSpy.firstCall.args[0].length + ); // todo update the rss feed + // Fake RSS entry to simulate an update + const newEntry = expectedElmts[2]; + + nock("https://www.youtube.com") + .get("/feeds/videos.xml?channel_id=UCh2YBKhYIy-_LtfCIn2Jycg") + .replyWithFile( + 200, + path.join(__dirname, "RessourcesTest/youtube_feed_new_entries.rss"), + { + "content-type": "text/xml", + charset: "UTF-8", + } + ); // when - await clock.tickAsync(default_timeloop + 1); + await clock.tickAsync(15000); + await events.once(listener, "update"); // assertion expect(updateListenerSpy).to.have.been.calledTwice; - expect(updateListenerSpy).to.have.been.calledWith(expected_resolve_fetch); - expect(newEntriesListenerSpy).to.have.been.calledOnce; - expect( - newEntriesListenerSpy - ).to.have.been.calledWith(/* Put the added item */); + expect(updateListenerSpy.secondCall.args[0]) + .to.have.property("items") + .that.deep.include.members([ + expectedFirstElmt, + expectedLastElmt, + newEntry, + ]); + expect(newEntriesListenerSpy).to.have.been.calledTwice; + expect(updateListenerSpy.secondCall.args[0]) + .to.have.property("items") + .that.deep.include.members([newEntry]); + + // when + nock("https://www.youtube.com") + .get("/feeds/videos.xml?channel_id=UCh2YBKhYIy-_LtfCIn2Jycg") + .replyWithFile( + 200, + path.join(__dirname, "RessourcesTest/youtube_feed_new_entries.rss"), + { + "content-type": "text/xml", + charset: "UTF-8", + } + ); + + await clock.tickAsync(15000); + await events.once(listener, "update"); + + // assertion + expect(updateListenerSpy).to.have.been.calledThrice; + expect(updateListenerSpy.secondCall.args[0]) + .to.have.property("items") + .that.deep.include.members([ + expectedFirstElmt, + expectedLastElmt, + newEntry, + ]); + expect(newEntriesListenerSpy).to.not.have.been.calledThrice; + + // then + listener.stop(); + }); + + /** + * This test will test the usage of the librairie with, in the order + * - 1 fetch of the original document (here trigger update and new_entries events) + * - 1 fetch with the original document and a new entry (here trigger update and new_entries events) + * - 1 fetch of the previous document (here trigger update events) + */ + it("fetches with start loop in 3 times and history is initialize", async function () { + // given + const clock = sinon.useFakeTimers(); + + nock("https://www.youtube.com") + .get("/feeds/videos.xml?channel_id=UCh2YBKhYIy-_LtfCIn2Jycg") + .replyWithFile( + 200, + path.join(__dirname, "RessourcesTest/youtube_feed.rss"), + { + "content-type": "text/xml", + charset: "UTF-8", + } + ); + + const listener = new YoutubeListenerRss( + defaultChannelID, + defaultTimeloop, + defaultHistory + ); + + // spy + const updateListenerSpy = sinon.spy(); + const newEntriesListenerSpy = sinon.spy(); + + // start timer + listener.on("update", updateListenerSpy); + listener.on("newEntries", newEntriesListenerSpy); + + listener.start(); + + // when + await events.once(listener, "update"); + + // assertion + expect(updateListenerSpy).to.have.been.calledOnce; + expect(updateListenerSpy.firstCall.args[0]) + .to.have.property("items") + .that.deep.include.members([expectedFirstElmt, expectedLastElmt]); + expect(newEntriesListenerSpy).to.have.been.called; + expect(newEntriesListenerSpy.firstCall.args[0]) + .that.deep.include.members([expectedLastElmt]) + .and.that.not.deep.include.members([expectedFirstElmt]); + expect(updateListenerSpy.firstCall.args[0].items.length).to.be.eql( + newEntriesListenerSpy.firstCall.args[0].length + 1 + ); + + // todo update the rss feed + // Fake RSS entry to simulate an update + const newEntry = expectedElmts[2]; + + nock("https://www.youtube.com") + .get("/feeds/videos.xml?channel_id=UCh2YBKhYIy-_LtfCIn2Jycg") + .replyWithFile( + 200, + path.join(__dirname, "RessourcesTest/youtube_feed_new_entries.rss"), + { + "content-type": "text/xml", + charset: "UTF-8", + } + ); + + // when + await clock.tickAsync(15000); + await events.once(listener, "update"); + + // assertion + expect(updateListenerSpy).to.have.been.calledTwice; + expect(updateListenerSpy.secondCall.args[0]) + .to.have.property("items") + .that.deep.include.members([ + expectedFirstElmt, + expectedLastElmt, + newEntry, + ]); + expect(newEntriesListenerSpy).to.have.been.calledTwice; + expect(updateListenerSpy.secondCall.args[0]) + .to.have.property("items") + .that.deep.include.members([newEntry]); + + // when + nock("https://www.youtube.com") + .get("/feeds/videos.xml?channel_id=UCh2YBKhYIy-_LtfCIn2Jycg") + .replyWithFile( + 200, + path.join(__dirname, "RessourcesTest/youtube_feed_new_entries.rss"), + { + "content-type": "text/xml", + charset: "UTF-8", + } + ); + + await clock.tickAsync(15000); + await events.once(listener, "update"); + + // assertion + expect(updateListenerSpy).to.have.been.calledThrice; + expect(updateListenerSpy.secondCall.args[0]) + .to.have.property("items") + .that.deep.include.members([ + expectedFirstElmt, + expectedLastElmt, + newEntry, + ]); + expect(newEntriesListenerSpy).to.not.have.been.calledThrice; // then listener.stop();